diff --git a/README.md b/README.md
index e9a52ce..4a558ad 100644
--- a/README.md
+++ b/README.md
@@ -48,10 +48,8 @@ TODO: Document /frontend react app running instructions.
- Note the mapping in `tools/__init__.py` to each tool
## TODO
-- The LLM prompts move through 3 mock tools (FindEvents, SearchFlights, CreateInvoice) but I should make them contact real APIs.
-- I should prove this out with other tool definitions (take advantage of my nice DSL).
-- Might need to abstract the json example in the prompt generator to be part of a ToolDefinition (prevent overfitting to the example).
+- Code GenerateInvoice against the Stripe API
+- I should prove this out with other tool definitions outside of the event/flight search case (take advantage of my nice DSL).
- Currently hardcoded to the Temporal dev server at localhost:7233. Need to support options incl Temporal Cloud.
- UI: Make prettier
-- UI: Tool Confirmed state could be better represented
-- UI: 'Start new chat' button needs to handle better
\ No newline at end of file
+- UI: Tool Confirmed state could be better represented
\ No newline at end of file
diff --git a/frontend/src/components/ChatWindow.jsx b/frontend/src/components/ChatWindow.jsx
index a82931b..ec97c2a 100644
--- a/frontend/src/components/ChatWindow.jsx
+++ b/frontend/src/components/ChatWindow.jsx
@@ -19,46 +19,50 @@ export default function ChatWindow({ conversation, loading, onConfirm }) {
}
const filtered = conversation.filter((msg) => {
-
const { actor, response } = msg;
-
+
if (actor === "user") {
return true;
}
if (actor === "agent") {
const parsed = typeof response === "string" ? safeParse(response) : response;
- // Keep if next is "question", "confirm", or "user_confirmed_tool_run".
- // Only skip if next is "done" (or something else).
- // return !["done"].includes(parsed.next);
- return true;
+ return true; // Adjust this logic based on your "next" field.
}
return false;
});
return (
-
- {filtered.map((msg, idx) => {
-
- const { actor, response } = msg;
-
- if (actor === "user") {
- return (
-
- );
- } else if (actor === "agent") {
- const data =
- typeof response === "string" ? safeParse(response) : response;
- return ;
- }
- return null;
- })}
-
- {/* If loading = true, show the spinner at the bottom */}
- {loading && (
-
);
-}
+}
\ No newline at end of file
diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js
index 0764d15..4a7513e 100644
--- a/frontend/tailwind.config.js
+++ b/frontend/tailwind.config.js
@@ -1,7 +1,7 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
- "./public/index.html",
+ "./index.html",
"./src/**/*.{js,jsx,ts,tsx}",
],
darkMode: "class", // enable dark mode by toggling a .dark class
diff --git a/prompts/agent_prompt_generators.py b/prompts/agent_prompt_generators.py
index 76290d6..00cc634 100644
--- a/prompts/agent_prompt_generators.py
+++ b/prompts/agent_prompt_generators.py
@@ -81,7 +81,7 @@ def generate_genai_prompt(
"1) If any required argument is missing, set next='question' and ask the user.\n"
"2) If all required arguments are known, set next='confirm' and specify the tool.\n"
" The user will confirm before the tool is run.\n"
- "3) If no more tools are needed, set next='done' and tool=null.\n"
+ "3) If no more tools are needed (user_confirmed_tool_run has been run for all), set next='done' and tool=null.\n"
"4) response should be short and user-friendly."
)