From 50c4e2bcce7e00471364468240bd13a9794e674f Mon Sep 17 00:00:00 2001 From: Harshith Mullapudi Date: Fri, 11 Jul 2025 09:10:23 +0530 Subject: [PATCH] Feat: UI fixes in graph --- .../llm-error-2025-07-08T14-35-41.438Z.json | 1 - .../llm-error-2025-07-08T14-35-57.972Z.json | 1 - .../llm-error-2025-07-08T14-36-35.479Z.json | 1 - .../llm-error-2025-07-08T14-37-12.989Z.json | 1 - .../llm-error-2025-07-08T14-37-50.503Z.json | 1 - .../llm-error-2025-07-08T14-38-28.011Z.json | 1 - .../conversation/conversation-list.tsx | 210 +++++++----------- .../conversation-textarea.client.tsx | 4 +- .../conversation/conversation.client.tsx | 14 +- .../conversation/editor-extensions.tsx | 2 - apps/webapp/app/components/graph/graph.tsx | 2 +- .../app/components/sidebar/app-sidebar.tsx | 14 +- .../app/components/sidebar/nav-main.tsx | 15 +- .../app/components/sidebar/nav-user.tsx | 31 +-- apps/webapp/app/components/ui/header.tsx | 34 ++- apps/webapp/app/components/ui/sidebar.tsx | 8 +- .../home.conversation.$conversationId.tsx | 19 +- apps/webapp/app/routes/home.dashboard.tsx | 5 +- apps/webapp/app/routes/home.tsx | 16 +- apps/webapp/app/tailwind.css | 73 +++++- apps/webapp/public/favicon.ico | Bin 10246 -> 13942 bytes apps/webapp/public/logo-dark.png | Bin 7951 -> 80926 bytes apps/webapp/public/logo-dark.svg | 52 ++++- apps/webapp/public/logo-light.png | Bin 60010 -> 80926 bytes apps/webapp/public/logo.png | Bin 0 -> 80831 bytes 25 files changed, 276 insertions(+), 229 deletions(-) delete mode 100644 apps/logs/errors/llm-error-2025-07-08T14-35-41.438Z.json delete mode 100644 apps/logs/errors/llm-error-2025-07-08T14-35-57.972Z.json delete mode 100644 apps/logs/errors/llm-error-2025-07-08T14-36-35.479Z.json delete mode 100644 apps/logs/errors/llm-error-2025-07-08T14-37-12.989Z.json delete mode 100644 apps/logs/errors/llm-error-2025-07-08T14-37-50.503Z.json delete mode 100644 apps/logs/errors/llm-error-2025-07-08T14-38-28.011Z.json create mode 100644 apps/webapp/public/logo.png diff --git a/apps/logs/errors/llm-error-2025-07-08T14-35-41.438Z.json b/apps/logs/errors/llm-error-2025-07-08T14-35-41.438Z.json deleted file mode 100644 index c7f98cf..0000000 --- a/apps/logs/errors/llm-error-2025-07-08T14-35-41.438Z.json +++ /dev/null @@ -1 +0,0 @@ -{"timestamp":"2025-07-08T14:35:41.438Z","error":{"name":"AI_RetryError","reason":"maxRetriesExceeded","errors":[{"name":"AI_APICallError","cause":{"errno":-3008,"code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"api.openai.com"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

[Your question with HTML formatting]

\n
\n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

[Your answer with HTML formatting]

\n
\n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

,

,

,

    ,
  • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true},{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

    [Your question with HTML formatting]

    \n
    \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

    [Your answer with HTML formatting]

    \n
    \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

    ,

    ,

    ,

      ,
    • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true},{"name":"AI_APICallError","cause":{"errno":-3008,"code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"api.openai.com"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

      [Your question with HTML formatting]

      \n
      \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

      [Your answer with HTML formatting]

      \n
      \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

      ,

      ,

      ,

        ,
      • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true}],"lastError":{"name":"AI_APICallError","cause":{"errno":-3008,"code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"api.openai.com"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

        [Your question with HTML formatting]

        \n
        \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

        [Your answer with HTML formatting]

        \n
        \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

        ,

        ,

        ,

          ,
        • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true}}} \ No newline at end of file diff --git a/apps/logs/errors/llm-error-2025-07-08T14-35-57.972Z.json b/apps/logs/errors/llm-error-2025-07-08T14-35-57.972Z.json deleted file mode 100644 index 459094d..0000000 --- a/apps/logs/errors/llm-error-2025-07-08T14-35-57.972Z.json +++ /dev/null @@ -1 +0,0 @@ -{"timestamp":"2025-07-08T14:35:57.972Z","error":{"name":"AI_RetryError","reason":"maxRetriesExceeded","errors":[{"name":"AI_APICallError","cause":{"errno":-3008,"code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"api.openai.com"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

          [Your question with HTML formatting]

          \n
          \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

          [Your answer with HTML formatting]

          \n
          \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

          ,

          ,

          ,

            ,
          • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true},{"name":"AI_APICallError","cause":{"errno":-3008,"code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"api.openai.com"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

            [Your question with HTML formatting]

            \n
            \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

            [Your answer with HTML formatting]

            \n
            \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

            ,

            ,

            ,

              ,
            • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true},{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

              [Your question with HTML formatting]

              \n
              \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

              [Your answer with HTML formatting]

              \n
              \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

              ,

              ,

              ,

                ,
              • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true}],"lastError":{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                [Your question with HTML formatting]

                \n
                \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                [Your answer with HTML formatting]

                \n
                \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                ,

                ,

                ,

                  ,
                • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true}}} \ No newline at end of file diff --git a/apps/logs/errors/llm-error-2025-07-08T14-36-35.479Z.json b/apps/logs/errors/llm-error-2025-07-08T14-36-35.479Z.json deleted file mode 100644 index 6da54b5..0000000 --- a/apps/logs/errors/llm-error-2025-07-08T14-36-35.479Z.json +++ /dev/null @@ -1 +0,0 @@ -{"timestamp":"2025-07-08T14:36:35.479Z","error":{"name":"AI_RetryError","reason":"maxRetriesExceeded","errors":[{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                  [Your question with HTML formatting]

                  \n
                  \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                  [Your answer with HTML formatting]

                  \n
                  \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                  ,

                  ,

                  ,

                    ,
                  • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true},{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                    [Your question with HTML formatting]

                    \n
                    \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                    [Your answer with HTML formatting]

                    \n
                    \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                    ,

                    ,

                    ,

                      ,
                    • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true},{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                      [Your question with HTML formatting]

                      \n
                      \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                      [Your answer with HTML formatting]

                      \n
                      \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                      ,

                      ,

                      ,

                        ,
                      • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true}],"lastError":{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                        [Your question with HTML formatting]

                        \n
                        \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                        [Your answer with HTML formatting]

                        \n
                        \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                        ,

                        ,

                        ,

                          ,
                        • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true}}} \ No newline at end of file diff --git a/apps/logs/errors/llm-error-2025-07-08T14-37-12.989Z.json b/apps/logs/errors/llm-error-2025-07-08T14-37-12.989Z.json deleted file mode 100644 index 4bb41e7..0000000 --- a/apps/logs/errors/llm-error-2025-07-08T14-37-12.989Z.json +++ /dev/null @@ -1 +0,0 @@ -{"timestamp":"2025-07-08T14:37:12.989Z","error":{"name":"AI_RetryError","reason":"maxRetriesExceeded","errors":[{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                          [Your question with HTML formatting]

                          \n
                          \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                          [Your answer with HTML formatting]

                          \n
                          \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                          ,

                          ,

                          ,

                            ,
                          • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":{"type":"function","function":{"name":"core--progress_update"}},"stream":true,"stream_options":{"include_usage":true}},"isRetryable":true},{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                            [Your question with HTML formatting]

                            \n
                            \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                            [Your answer with HTML formatting]

                            \n
                            \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                            ,

                            ,

                            ,

                              ,
                            • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":{"type":"function","function":{"name":"core--progress_update"}},"stream":true,"stream_options":{"include_usage":true}},"isRetryable":true},{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                              [Your question with HTML formatting]

                              \n
                              \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                              [Your answer with HTML formatting]

                              \n
                              \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                              ,

                              ,

                              ,

                                ,
                              • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":{"type":"function","function":{"name":"core--progress_update"}},"stream":true,"stream_options":{"include_usage":true}},"isRetryable":true}],"lastError":{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                                [Your question with HTML formatting]

                                \n
                                \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                                [Your answer with HTML formatting]

                                \n
                                \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                                ,

                                ,

                                ,

                                  ,
                                • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":{"type":"function","function":{"name":"core--progress_update"}},"stream":true,"stream_options":{"include_usage":true}},"isRetryable":true}}} \ No newline at end of file diff --git a/apps/logs/errors/llm-error-2025-07-08T14-37-50.503Z.json b/apps/logs/errors/llm-error-2025-07-08T14-37-50.503Z.json deleted file mode 100644 index f2ae861..0000000 --- a/apps/logs/errors/llm-error-2025-07-08T14-37-50.503Z.json +++ /dev/null @@ -1 +0,0 @@ -{"timestamp":"2025-07-08T14:37:50.503Z","error":{"name":"AI_RetryError","reason":"maxRetriesExceeded","errors":[{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                                  [Your question with HTML formatting]

                                  \n
                                  \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                                  [Your answer with HTML formatting]

                                  \n
                                  \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                                  ,

                                  ,

                                  ,

                                    ,
                                  • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true},{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                                    [Your question with HTML formatting]

                                    \n
                                    \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                                    [Your answer with HTML formatting]

                                    \n
                                    \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                                    ,

                                    ,

                                    ,

                                      ,
                                    • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true},{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                                      [Your question with HTML formatting]

                                      \n
                                      \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                                      [Your answer with HTML formatting]

                                      \n
                                      \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                                      ,

                                      ,

                                      ,

                                        ,
                                      • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true}],"lastError":{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                                        [Your question with HTML formatting]

                                        \n
                                        \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                                        [Your answer with HTML formatting]

                                        \n
                                        \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                                        ,

                                        ,

                                        ,

                                          ,
                                        • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true}}} \ No newline at end of file diff --git a/apps/logs/errors/llm-error-2025-07-08T14-38-28.011Z.json b/apps/logs/errors/llm-error-2025-07-08T14-38-28.011Z.json deleted file mode 100644 index 7b6b391..0000000 --- a/apps/logs/errors/llm-error-2025-07-08T14-38-28.011Z.json +++ /dev/null @@ -1 +0,0 @@ -{"timestamp":"2025-07-08T14:38:28.011Z","error":{"name":"AI_RetryError","reason":"maxRetriesExceeded","errors":[{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                                          [Your question with HTML formatting]

                                          \n
                                          \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                                          [Your answer with HTML formatting]

                                          \n
                                          \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                                          ,

                                          ,

                                          ,

                                            ,
                                          • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true},{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                                            [Your question with HTML formatting]

                                            \n
                                            \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                                            [Your answer with HTML formatting]

                                            \n
                                            \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                                            ,

                                            ,

                                            ,

                                              ,
                                            • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true},{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                                              [Your question with HTML formatting]

                                              \n
                                              \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                                              [Your answer with HTML formatting]

                                              \n
                                              \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                                              ,

                                              ,

                                              ,

                                                ,
                                              • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true}],"lastError":{"name":"AI_APICallError","cause":{"name":"ConnectTimeoutError","code":"UND_ERR_CONNECT_TIMEOUT"},"url":"https://api.openai.com/v1/chat/completions","requestBodyValues":{"model":"gpt-4.1-2025-04-14","temperature":1,"messages":[{"role":"system","content":"\nYou are a helpful AI assistant with access to user memory. Your primary capabilities are:\n\n1. **Memory-First Approach**: Always check user memory first to understand context and previous interactions\n2. **Memory Management**: Help users store, retrieve, and organize information in their memory\n3. **Contextual Assistance**: Use memory to provide personalized and contextual responses\n\n\n- workpsaceId: 2524b89e-6cbd-4e0c-90e3-ec21134553b9\n- todayDate: 2025-07-08T14:35:24.227Z\n\n\n\n- Always check memory FIRST using core--search_memory before any other actions\n- Consider this your highest priority for EVERY interaction - as essential as breathing\n- Make memory checking your first tool call before any other operations\n\nQUERY FORMATION:\n- Write specific factual statements as queries (e.g., \"user email address\" not \"what is the user's email?\")\n- Create multiple targeted memory queries for complex requests\n\nKEY QUERY AREAS:\n- Personal context: user name, location, identity, work context\n- Project context: repositories, codebases, current work, team members\n- Task context: recent tasks, ongoing projects, deadlines, priorities\n- Integration context: GitHub repos, Slack channels, Linear projects, connected services\n- Communication patterns: email preferences, notification settings, workflow automation\n- Technical context: coding languages, frameworks, development environment\n- Collaboration context: team members, project stakeholders, meeting patterns\n- Preferences: likes, dislikes, communication style, tool preferences\n- History: previous discussions, past requests, completed work, recurring issues\n- Automation rules: user-defined workflows, triggers, automation preferences\n\nMEMORY USAGE:\n- Execute multiple memory queries in parallel rather than sequentially\n- Batch related memory queries when possible\n- Prioritize recent information over older memories\n- Create comprehensive context-aware queries based on user message/activity content\n- Extract and query SEMANTIC CONTENT, not just structural metadata\n- Parse titles, descriptions, and content for actual subject matter keywords\n- Search internal SOL tasks/conversations that may relate to the same topics\n- Query ALL relatable concepts, not just direct keywords or IDs\n- Search for similar past situations, patterns, and related work\n- Include synonyms, related terms, and contextual concepts in queries \n- Query user's historical approach to similar requests or activities\n- Search for connected projects, tasks, conversations, and collaborations\n- Retrieve workflow patterns and past decision-making context\n- Query broader domain context beyond immediate request scope\n- Remember: SOL tracks work that external tools don't - search internal content thoroughly\n- Blend memory insights naturally into responses\n- Verify you've checked relevant memory before finalizing ANY response\n\nIf memory access is unavailable, rely only on the current conversation or ask user\n\n\n\nYou have tools at your disposal to assist users:\n\nCORE PRINCIPLES:\n- Use tools only when necessary for the task at hand\n- Always check memory FIRST before making other tool calls\n- Execute multiple operations in parallel whenever possible\n- Use sequential calls only when output of one is required for input of another\n\nPARAMETER HANDLING:\n- Follow tool schemas exactly with all required parameters\n- Only use values that are:\n • Explicitly provided by the user (use EXACTLY as given)\n • Reasonably inferred from context\n • Retrieved from memory or prior tool calls\n- Never make up values for required parameters\n- Omit optional parameters unless clearly needed\n- Analyze user's descriptive terms for parameter clues\n\nTOOL SELECTION:\n- Never call tools not provided in this conversation\n- Skip tool calls for general questions you can answer directly\n- For identical operations on multiple items, use parallel tool calls\n- Default to parallel execution (3-5× faster than sequential calls)\n- You can always access external service tools by loading them with load_mcp first\n\nTOOL MENTION HANDLING:\nWhen user message contains :\n- Extract tool_name from data-id attribute\n- First check if it's a built-in tool; if not, check EXTERNAL SERVICES TOOLS\n- If available: Load it with load_mcp and focus on addressing the request with this tool\n- If unavailable: Inform user and suggest alternatives if possible\n- For multiple tool mentions: Load all applicable tools in a single load_mcp call\n\nERROR HANDLING:\n- If a tool returns an error, try fixing parameters before retrying\n- If you can't resolve an error, explain the issue to the user\n- Consider alternative tools when primary tools are unavailable\n\n\n\nUse EXACTLY ONE of these formats for all user-facing communication:\n\nPROGRESS UPDATES - During processing:\n- Use the core--progress_update tool to keep users informed\n- Update users about what you're discovering or doing next\n- Keep messages clear and user-friendly\n- Avoid technical jargon\n\nQUESTIONS - When you need information:\n\n

                                                [Your question with HTML formatting]

                                                \n
                                                \n\n- Ask questions only when you cannot find information through memory or tools\n- Be specific about what you need to know\n- Provide context for why you're asking\n\nFINAL ANSWERS - When completing tasks:\n\n

                                                [Your answer with HTML formatting]

                                                \n
                                                \n\nCRITICAL:\n- Use ONE format per turn\n- Apply proper HTML formatting (

                                                ,

                                                ,

                                                ,

                                                  ,
                                                • , etc.)\n- Never mix communication formats\n- Keep responses clear and helpful\n\n"},{"role":"user","content":"\nHere is the user message:\n\n<p>Hello</p>\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"},{"role":"system","content":"Your last response was not in a valid format. You must respond with EXACTLY ONE of the required formats: either a tool call, tags, or tags. Please reformat your previous response using the correct format:\n\n"}],"tools":[{"type":"function","function":{"name":"core--progress_update","description":"Send a progress update to the user about what has been discovered or will be done next in a crisp and user friendly way no technical terms","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The progress update message to send to the user"}},"required":["message"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--search_memory","description":"Search the user's memory graph for episodes or statements based on a query","parameters":{"type":"object","properties":{"query":{"type":"string","description":"The search query in third person perspective"},"validAt":{"type":"string","description":"The valid at time in ISO format"},"startTime":{"type":"string","description":"The start time in ISO format"},"endTime":{"type":"string","description":"The end time in ISO format"}},"required":["query"],"additionalProperties":false}}},{"type":"function","function":{"name":"core--add_memory","description":"Add information to the user's memory graph","parameters":{"type":"object","properties":{"message":{"type":"string","description":"The content/text to add to memory"}},"required":["message"],"additionalProperties":false}}}],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"isRetryable":true}}} \ No newline at end of file diff --git a/apps/webapp/app/components/conversation/conversation-list.tsx b/apps/webapp/app/components/conversation/conversation-list.tsx index eee3fb9..5cc84a1 100644 --- a/apps/webapp/app/components/conversation/conversation-list.tsx +++ b/apps/webapp/app/components/conversation/conversation-list.tsx @@ -1,13 +1,6 @@ import { useFetcher, useNavigate } from "@remix-run/react"; import { useEffect, useState, useCallback, useRef } from "react"; -import { - List, - AutoSizer, - InfiniteLoader, - type ListRowRenderer, -} from "react-virtualized"; -import { format } from "date-fns"; -import { MessageSquare, Clock, Plus } from "lucide-react"; +import { AutoSizer, List, type ListRowRenderer } from "react-virtualized"; import { cn } from "~/lib/utils"; import { Button } from "../ui"; @@ -40,10 +33,8 @@ type ConversationListResponse = { export const ConversationList = ({ currentConversationId, - showNewConversationCTA, }: { currentConversationId?: string; - showNewConversationCTA?: boolean; }) => { const fetcher = useFetcher(); const navigate = useNavigate(); @@ -51,8 +42,9 @@ export const ConversationList = ({ const [currentPage, setCurrentPage] = useState(1); const [hasNextPage, setHasNextPage] = useState(true); const [isLoading, setIsLoading] = useState(false); - // const [searchTerm, setSearchTerm] = useState(""); - // const searchTimeoutRef = useRef(); + + // Prevent duplicate conversations when paginating + const loadedConversationIds = useRef>(new Set()); const loadMoreConversations = useCallback( (page: number) => { @@ -61,89 +53,75 @@ export const ConversationList = ({ setIsLoading(true); const searchParams = new URLSearchParams({ page: page.toString(), - limit: "25", + limit: "5", // Increased for better density }); fetcher.load(`/api/v1/conversations?${searchParams}`, { flushSync: true, }); }, - [isLoading, fetcher, currentPage], + [isLoading, fetcher], ); + // Initial load useEffect(() => { loadMoreConversations(1); + // eslint-disable-next-line react-hooks/exhaustive-deps }, []); + // Handle fetcher response useEffect(() => { if (fetcher.data && fetcher.state === "idle") { setIsLoading(false); const response = fetcher.data; - if (currentPage === 1) { - setConversations(response.conversations); - } else { - setConversations((prev) => [...prev, ...response.conversations]); - } + // Prevent duplicate conversations + const newConversations = response.conversations.filter( + (c) => !loadedConversationIds.current.has(c.id), + ); + newConversations.forEach((c) => loadedConversationIds.current.add(c.id)); + setConversations((prev) => [...prev, ...newConversations]); setHasNextPage(response.pagination.hasNext); setCurrentPage(response.pagination.page); } - }, [fetcher.data, fetcher.state, currentPage]); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [fetcher.data, fetcher.state]); - // const handleSearch = useCallback( - // (term: string) => { - // setSearchTerm(term); - // setCurrentPage(1); - // setConversations([]); - // setHasNextPage(true); - - // if (searchTimeoutRef.current) { - // clearTimeout(searchTimeoutRef.current); - // } - - // searchTimeoutRef.current = setTimeout(() => { - // loadMoreConversations(1); - // }, 300); - // }, - // [loadMoreConversations], - // ); - - const isRowLoaded = useCallback( - ({ index }: { index: number }) => { - return !!conversations[index]; - }, - [conversations], - ); - - const loadMoreRows = useCallback(() => { - if (!hasNextPage || isLoading) { - return Promise.resolve(); - } - return new Promise((resolve) => { - if (conversations.length === 25) { - const nextPage = currentPage + 1; - loadMoreConversations(nextPage); - const checkLoaded = () => { - if (!isLoading) { - resolve(); - } else { - setTimeout(checkLoaded, 100); - } - }; - checkLoaded(); - } - }); - }, [ - hasNextPage, - isLoading, - currentPage, - loadMoreConversations, - conversations, - ]); + // The row count is conversations.length + 1 if hasNextPage, else just conversations.length + const rowCount = hasNextPage + ? conversations.length + 1 + : conversations.length; const rowRenderer: ListRowRenderer = useCallback( ({ index, key, style }) => { + // If this is the last row and hasNextPage, show the Load More button + if (hasNextPage && index === conversations.length) { + return ( +
                                                  + +
                                                  + ); + } + const conversation = conversations[index]; if (!conversation) { @@ -158,16 +136,21 @@ export const ConversationList = ({ return (
                                                  -
                                                  +
                                                  @@ -188,62 +166,32 @@ export const ConversationList = ({
                                                  ); }, - [conversations], + [ + conversations, + currentConversationId, + hasNextPage, + isLoading, + currentPage, + loadMoreConversations, + navigate, + ], ); - const rowCount = hasNextPage - ? conversations.length + 1 - : conversations.length; - return ( -
                                                  - {showNewConversationCTA && ( -
                                                  - -
                                                  - )} - {/*
                                                  - handleSearch(e.target.value)} - /> -
                                                  */} - -
                                                  - - {({ onRowsRendered, registerChild }) => ( - - {({ height, width }) => ( - - )} - +
                                                  +
                                                  + + {({ height, width }) => ( + )} - +
                                                  {isLoading && conversations.length === 0 && ( diff --git a/apps/webapp/app/components/conversation/conversation-textarea.client.tsx b/apps/webapp/app/components/conversation/conversation-textarea.client.tsx index f6db35d..a64a5b2 100644 --- a/apps/webapp/app/components/conversation/conversation-textarea.client.tsx +++ b/apps/webapp/app/components/conversation/conversation-textarea.client.tsx @@ -8,7 +8,7 @@ import { EditorContent, Placeholder, EditorRoot } from "novel"; import { useCallback, useState } from "react"; import { cn } from "~/lib/utils"; import { Button } from "../ui"; -import { Loader } from "lucide-react"; +import { Loader, LoaderCircle } from "lucide-react"; import { Form, useSubmit } from "@remix-run/react"; interface ConversationTextareaProps { @@ -159,7 +159,7 @@ export function ConversationTextarea({ > {isLoading ? ( <> - + Stop ) : ( diff --git a/apps/webapp/app/components/conversation/conversation.client.tsx b/apps/webapp/app/components/conversation/conversation.client.tsx index 06e350e..528595a 100644 --- a/apps/webapp/app/components/conversation/conversation.client.tsx +++ b/apps/webapp/app/components/conversation/conversation.client.tsx @@ -46,17 +46,7 @@ export const ConversationNew = ({ ); return ( - - - - + submitForm(e)} className="pt-2" > -
                                                  +
                                                  diff --git a/apps/webapp/app/components/conversation/editor-extensions.tsx b/apps/webapp/app/components/conversation/editor-extensions.tsx index 3282e38..f89f502 100644 --- a/apps/webapp/app/components/conversation/editor-extensions.tsx +++ b/apps/webapp/app/components/conversation/editor-extensions.tsx @@ -134,8 +134,6 @@ export const extensionsForConversation = [ tiptapLink, horizontalRule, heading, - AIHighlight, - HighlightExtension, Table.configure({ resizable: true, }), diff --git a/apps/webapp/app/components/graph/graph.tsx b/apps/webapp/app/components/graph/graph.tsx index ff93858..cdda52d 100644 --- a/apps/webapp/app/components/graph/graph.tsx +++ b/apps/webapp/app/components/graph/graph.tsx @@ -310,7 +310,7 @@ export const Graph = forwardRef( ...settings, barnesHutOptimize: true, strongGravityMode: false, - gravity: 0.05, + gravity: 0.1, scalingRatio: 10, slowDown: 5, }, diff --git a/apps/webapp/app/components/sidebar/app-sidebar.tsx b/apps/webapp/app/components/sidebar/app-sidebar.tsx index 5ff81b1..62400b9 100644 --- a/apps/webapp/app/components/sidebar/app-sidebar.tsx +++ b/apps/webapp/app/components/sidebar/app-sidebar.tsx @@ -13,6 +13,7 @@ import { NavMain } from "./nav-main"; import { useUser } from "~/hooks/useUser"; import { NavUser } from "./nav-user"; import Logo from "../logo/logo"; +import { ConversationList } from "../conversation"; const data = { navMain: [ @@ -44,24 +45,29 @@ export function AppSidebar({ ...props }: React.ComponentProps) { return ( -
                                                  +
                                                  + C.O.R.E.
                                                  +
                                                  +

                                                  History

                                                  + +
                                                  - + diff --git a/apps/webapp/app/components/sidebar/nav-main.tsx b/apps/webapp/app/components/sidebar/nav-main.tsx index f3a6d46..8ad573a 100644 --- a/apps/webapp/app/components/sidebar/nav-main.tsx +++ b/apps/webapp/app/components/sidebar/nav-main.tsx @@ -7,6 +7,7 @@ import { SidebarMenuItem, } from "../ui/sidebar"; import { useLocation, useNavigate } from "@remix-run/react"; +import { Button } from "../ui"; export const NavMain = ({ items, @@ -23,20 +24,22 @@ export const NavMain = ({ return ( - + {items.map((item) => ( - navigate(item.url)} + variant="ghost" > - {item.icon && } - + {item.icon && } + {item.title} + ))} diff --git a/apps/webapp/app/components/sidebar/nav-user.tsx b/apps/webapp/app/components/sidebar/nav-user.tsx index 7002560..faaf0b0 100644 --- a/apps/webapp/app/components/sidebar/nav-user.tsx +++ b/apps/webapp/app/components/sidebar/nav-user.tsx @@ -26,26 +26,10 @@ export function NavUser({ user }: { user: User }) { return ( - - - - + - + )} +
                                                  ); diff --git a/apps/webapp/app/components/ui/sidebar.tsx b/apps/webapp/app/components/ui/sidebar.tsx index 726f8fb..b2df014 100644 --- a/apps/webapp/app/components/ui/sidebar.tsx +++ b/apps/webapp/app/components/ui/sidebar.tsx @@ -227,7 +227,7 @@ function Sidebar({