Skip to content

Update assistant #8

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Jun 1, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,23 @@ test:
run-dev:
mvn quarkus:dev

.PHONY: promptfoo
.PHONY: run-mcp
run-mcp:
(cd mcp && mvn quarkus:dev)


.PHONY: run-mcp-docker
run-mcp-docker:
(cd mcp && \
mvn -Dquarkus.container-image.group=sample \
-Dquarkus.container-image.tag=latest \
quarkus:image-build && \
docker run --rm -i -p 8090:8090 sample/mcp-time \
)

.PHONY: promptfoo
promptfoo:
(cd promptfoo && promptfoo eval --watch --output output.yml --no-progress-bar --suggest-prompts 2 --env-file ./.env)
(cd promptfoo && promptfoo eval --watch --output output.yml --no-progress-bar --env-file ./.env)

.PHONY: promptfoo-ui
promptfoo-ui:
Expand Down
48 changes: 48 additions & 0 deletions catalog/easytrade-starter-portfolio.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# The "EasyTrade Starter Portfolio™"

The **EasyTrade Starter Portfolio™** makes investing and stock trading simple and accessible for everyone, especially those just beginning their financial journey.

## Account Details

No monthly fees on balances above $100.

The minimum starting investment is just $25.

Available to all individuals 18 and older, with no prior investing experience required.

## How It Works

With the **EasyTrade Starter Portfolio™**, you'll enjoy a stress-free introduction to investing and trading. Our straightforward platform lets you build wealth through both managed portfolios and individual stock picks, all while learning the basics of financial markets at your own pace.

## Key Features

* Simple all-in-one diversified portfolio option
* Individual stock trading with $0 commission
* Fractional shares available - invest with as little as $5 per stock
* Automatic micro-investing rounds up your everyday purchases
* Low 0.25% annual fee on managed portfolios (free for self-directed trading)
* Regular saving boosts with optional weekly or monthly deposits
* User-friendly mobile app with jargon-free explanations
* Real-time market data simplified for beginners
* One-click deposit and withdrawal with no penalties

## Trading Features

* Simplified stock search with beginner-friendly company profiles
* "Stock of the Week" educational spotlight
* Basic limit and market orders explained in plain language
* Pre-built watchlists for different industries and interests
* Risk level indicators for all stocks and funds
* Price alerts and notifications customized to your holdings
* Simple tax reporting and gain/loss tracking

## Beginner Benefits

* Free "Investing & Trading 101" video course
* Stock simulator to practice before using real money
* Clear goal setting tools with visual tracking
* Community forums to connect with other new investors
* Bite-sized weekly financial tips via text or email
* Human support team available 7 days a week

The **EasyTrade Starter Portfolio™** — Your First Step to Financial Independence.
Binary file added catalog/elite-money-market-account.odt
Binary file not shown.
194 changes: 194 additions & 0 deletions catalog/horizon-financial-brochure.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Horizon Financial - Complete Financial Solutions</title>
<style>
body {
font-family: 'Segoe UI', Arial, sans-serif;
color: #333;
line-height: 1.6;
margin: 0;
padding: 0;
background-color: #f9f9f9;
}
.container {
max-width: 1000px;
margin: 0 auto;
background-color: white;
padding: 30px;
box-shadow: 0 0 20px rgba(0,0,0,0.05);
}
.header {
text-align: center;
border-bottom: 3px solid #0056b3;
padding-bottom: 20px;
margin-bottom: 30px;
}
h1 {
color: #0056b3;
margin: 0;
font-size: 36px;
}
h2 {
color: #0056b3;
font-size: 24px;
border-bottom: 1px solid #eee;
padding-bottom: 10px;
margin-top: 40px;
}
h3 {
color: #0078d4;
margin-bottom: 5px;
font-size: 20px;
}
.tagline {
font-style: italic;
color: #666;
margin-top: 10px;
font-size: 18px;
}
.product-grid {
display: flex;
flex-wrap: wrap;
gap: 20px;
margin-top: 20px;
}
.product-card {
flex: 1 0 300px;
padding: 20px;
background-color: #f5f9ff;
border-radius: 8px;
box-shadow: 0 3px 6px rgba(0,0,0,0.08);
transition: transform 0.2s, box-shadow 0.2s;
}
.product-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 15px rgba(0,0,0,0.1);
}
.product-card h3 {
margin-top: 0;
border-bottom: 2px solid rgba(0,120,212,0.2);
padding-bottom: 8px;
}
.product-highlight {
font-weight: bold;
color: #0056b3;
}
.section {
margin-bottom: 40px;
}
.contact-grid {
display: flex;
flex-wrap: wrap;
gap: 30px;
margin-top: 30px;
}
.contact-card {
flex: 1 0 250px;
background-color: #f5f9ff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 3px 6px rgba(0,0,0,0.08);
}
.footer {
margin-top: 50px;
padding-top: 20px;
border-top: 2px solid #0056b3;
text-align: center;
font-size: 14px;
color: #666;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>HORIZON FINANCIAL</h1>
<p class="tagline">Your Journey to Financial Freedom Starts Here</p>
</div>

<div class="section">
<h2>WELCOME TO HORIZON FINANCIAL</h2>
<p>At Horizon Financial, we believe everyone deserves a clear path to financial success. Founded in 2015, we've been serving our community with personalized banking solutions that grow with you. Our mission is simple: provide accessible, transparent financial services that help you achieve your dreams.</p>
</div>

<div class="section">
<h2>OUR BANKING SOLUTIONS</h2>

<div class="product-grid">
<div class="product-card">
<h3>SMART CHECKING</h3>
<p><span class="product-highlight">Banking Made Simple</span></p>
<p>The perfect everyday account with no hidden costs. Enjoy easy, fast and secure banking that fits your lifestyle.</p>
<p>Ask our representatives about how to get started with this hassle-free account option.</p>
</div>

<div class="product-card">
<h3>STANDARD SAVINGS</h3>
<p><span class="product-highlight">Start Your Saving Journey</span></p>
<p>Ideal for first-time savers and those looking to build their financial foundation with a hassle-free approach to saving.</p>
<p>Visit a branch to discover how we can help you establish good saving habits.</p>
</div>

<div class="product-card">
<h3>ELITE MONEY MARKET</h3>
<p><span class="product-highlight">Watch Your Money Grow</span></p>
<p>Enjoy competitive yields while maintaining access to your funds with our tiered interest rate structure.</p>
<p>Speak to our team to learn about our rates and how they can benefit your financial goals.</p>
</div>

<div class="product-card">
<h3>RETIREMENT MONEY MARKET</h3>
<p><span class="product-highlight">Secure Your Future</span></p>
<p>Tax-advantaged savings designed specifically for retirement planning with maximum flexibility and growth potential.</p>
<p>Consult with our financial advisors about planning for your retirement with this specialized account.</p>
</div>

<div class="product-card">
<h3>EASYTRADE STARTER PORTFOLIO™</h3>
<p><span class="product-highlight">Your First Step to Investing</span></p>
<p>Makes investing and stock trading simple and accessible for everyone, especially beginners. Build wealth through both managed portfolios and individual stock picks.</p>
<p>Meet with our investment specialists to explore how to begin your investing journey.</p>
</div>
</div>
</div>

<div class="section">
<h2>DIGITAL BANKING</h2>
<p>Access your accounts anytime, anywhere with our secure digital banking solutions that include online banking, mobile app, digital wallet compatibility, and real-time alerts. Our technology puts banking at your fingertips while maintaining the highest security standards.</p>
</div>

<div class="section">
<h2>COMMUNITY COMMITMENT</h2>
<p>Horizon Financial is proud to support local initiatives through financial literacy workshops, community development grants, small business mentorship programs, environmental sustainability projects, and annual scholarship programs.</p>
</div>

<div class="contact-grid">
<div class="contact-card">
<h2>CONTACT US</h2>
<p><strong>Main Branch:</strong><br>
1234 Financial Way<br>
Prosperity Heights, ZZ 98765</p>
<p><strong>Phone:</strong> (555) 123-4567<br>
<strong>Email:</strong> info@horizonfinancial.example<br>
<strong>Website:</strong> www.horizonfinancial.example</p>
</div>
<div class="contact-card">
<h2>HOURS</h2>
<p><strong>Monday-Friday:</strong> 9:00 AM - 5:00 PM<br>
<strong>Saturday:</strong> 9:00 AM - 12:00 PM<br>
<strong>Sunday:</strong> Closed</p>
<p><strong>Customer Service:</strong><br>
Available 24/7 at (555) 987-6543</p>
</div>
</div>

<div class="footer">
<p>Horizon Financial is a fictional financial institution. FDIC insured. Equal Housing Lender.</p>
<p>Rates and terms subject to change without notice. Please contact us for current information about our products and services.</p>
</div>
</div>
</body>
</html>
4 changes: 4 additions & 0 deletions catalog/retirement-money-market.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
The "Retirement Money Market" saving account offers individual retirement account holders tax advantages and diversification.

The is no monthly maintenance fee.
The minimum deposit to open an account is $100, or a 25$ automatic monthly deposit.
Binary file added catalog/smart-checking-account.pdf
Binary file not shown.
11 changes: 11 additions & 0 deletions catalog/standard-saving-account.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
The "Standard savings account" offers a first-time savers and those with low balances a hassle-free way to save.
The monthly maintenance fee is waived for the first 12 months. After that, the fee is waived if you maintain a minimum daily balance of $300 or more, or if you set up an automatic transfer of $25 or more from a checking account to your savings account each month.
The minimum opening deposit is $25.

The "Standard savings account" offers the following benefits:

* $0 ATM transaction and surcharge fees
* $0 overdraft protection transfer fees made from an eligible linked checking account
* Account alerts: Set up email or text message reminders about low balances, transactions, payments and more
* Automated savings options: Link your saving accounts to another bank account and set up recurring transfers
* E-Statements: quickly access your saving account statement online anytime. They are automatically archived and they are free.
4 changes: 4 additions & 0 deletions mcp/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@
<artifactId>kotlinx-datetime-jvm</artifactId>
<version>${kotlinx-datetime.version}</version>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-container-image-jib</artifactId>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/kotlin</sourceDirectory>
Expand Down
98 changes: 98 additions & 0 deletions mcp/src/main/docker/Dockerfile.jvm
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
####
# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode
#
# Before building the container image run:
#
# ./mvnw package
#
# Then, build the image with:
#
# docker build -f src/main/docker/Dockerfile.jvm -t quarkus/weather-kotlin-jvm .
#
# Then run the container using:
#
# docker run -i --rm -p 8080:8080 quarkus/weather-kotlin-jvm
#
# If you want to include the debug port into your docker image
# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005.
# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005
# when running the container
#
# Then run the container using :
#
# docker run -i --rm -p 8080:8080 quarkus/weather-kotlin-jvm
#
# This image uses the `run-java.sh` script to run the application.
# This scripts computes the command line to execute your Java application, and
# includes memory/GC tuning.
# You can configure the behavior using the following environment properties:
# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") - Be aware that this will override
# the default JVM options, use `JAVA_OPTS_APPEND` to append options
# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options
# in JAVA_OPTS (example: "-Dsome.property=foo")
# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is
# used to calculate a default maximal heap memory based on a containers restriction.
# If used in a container without any memory constraints for the container then this
# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio
# of the container available memory as set here. The default is `50` which means 50%
# of the available memory is used as an upper boundary. You can skip this mechanism by
# setting this value to `0` in which case no `-Xmx` option is added.
# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This
# is used to calculate a default initial heap memory based on the maximum heap memory.
# If used in a container without any memory constraints for the container then this
# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio
# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx`
# is used as the initial heap size. You can skip this mechanism by setting this value
# to `0` in which case no `-Xms` option is added (example: "25")
# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS.
# This is used to calculate the maximum value of the initial heap memory. If used in
# a container without any memory constraints for the container then this option has
# no effect. If there is a memory constraint then `-Xms` is limited to the value set
# here. The default is 4096MB which means the calculated value of `-Xms` never will
# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096")
# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output
# when things are happening. This option, if set to true, will set
# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true").
# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example:
# true").
# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787").
# - CONTAINER_CORE_LIMIT: A calculated core limit as described in
# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2")
# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024").
# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion.
# (example: "20")
# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking.
# (example: "40")
# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection.
# (example: "4")
# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus
# previous GC times. (example: "90")
# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20")
# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100")
# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should
# contain the necessary JRE command-line options to specify the required GC, which
# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC).
# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080")
# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080")
# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be
# accessed directly. (example: "foo.example.com,bar.example.com")
#
###
FROM registry.access.redhat.com/ubi9/openjdk-21:1.22-1.1747241889

ENV LANGUAGE='en_US:en'


# We make four distinct layers so if there are application changes the library layers can be re-used
COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/
COPY --chown=185 target/quarkus-app/*.jar /deployments/
COPY --chown=185 target/quarkus-app/app/ /deployments/app/
COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/

EXPOSE 8080
USER 185
ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"

ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ]

Loading
Loading