@mndrk/agx 2.0.26 → 2.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -6
- package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +6 -0
- package/cloud-runtime/standalone/.next/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/.next/required-server-files.json +4 -4
- package/cloud-runtime/standalone/.next/routes-manifest.json +45 -0
- package/cloud-runtime/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/automations/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +7 -4
- package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js +7 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/health/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/history/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/logs/stream/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/participants/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/providers/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/reactions/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/status/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/task-drafts/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +6 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +6 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +6 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/stream/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/stream/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +7 -6
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +7 -6
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +6 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +6 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +7 -6
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +8 -6
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +10 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +5 -2
- package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js +16 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js +16 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/status/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__017f03c3._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0925dd01._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__10940c29._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12afd8a3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12c7e188._.js +29 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__16dd1fd7._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__17c2d68f._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1dd062c1._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20b3baea._.js +55 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2388b2b3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__241a8bcf._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__254e942f._.js +20 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__29ce9c60._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2e596cc8._.js +4 -4
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3198c5c8._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__36d9edbd._.js +14 -14
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__399b2ca9._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4761dc17._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4b1a512c._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c50f159._.js +4 -4
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c8624cc._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4d318eb0._.js +146 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__507a4363._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__50ddd3ce._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__543ba6c4._.js +5 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__59b5d4e5._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5ca87ba0._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5d359afa._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__666f8712._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c187704._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c26221d._.js +7 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6e59b27c._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__74b97f0a._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__75bff965._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7be8f159._.js +8 -8
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__80655727._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__86f7d27b._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__94fa1edc._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98535eb3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9dfaaf72._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a189593a._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ac3c2f7f._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b40c7aab._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b4d05543._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bfcedb7c._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c08bef05._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c5634f17._.js +112 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c5b8ceb7._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ccfcbcd5._.js +42 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ceb02db8._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__da20a0aa._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__dede3dcd._.js +75 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e122cae2._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e1e7dd1e._.js +25 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e446cb39._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e6ad07c3._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f4b70b67._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f5a2358a._.js +7 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f5b93200._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fa0ebee3._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcd3e3b8._.js +15 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fce2cdce._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9c61da._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_05fa3b89._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/_0a767dfe._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_2f3e5ac1._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/_3e0d34cc._.js +97 -0
- package/cloud-runtime/standalone/.next/server/chunks/_4190f170._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a104cda8._.js → _42e9c8d5._.js} +7 -7
- package/cloud-runtime/standalone/.next/server/chunks/_5ca51127._.js +54 -0
- package/cloud-runtime/standalone/.next/server/chunks/_66e1ddec._.js +57 -0
- package/cloud-runtime/standalone/.next/server/chunks/_6bb93816._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/_7011db4f._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_8b9fde82._.js +97 -0
- package/cloud-runtime/standalone/.next/server/chunks/_95ac98db._.js +49 -0
- package/cloud-runtime/standalone/.next/server/chunks/_994414cd._.js +54 -0
- package/cloud-runtime/standalone/.next/server/chunks/_99b78daf._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/_a877d34f._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/_affbdbb0._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/_c31ca6ab._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/_ee99a36b._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/_efc73784._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/_fba13a4a._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_[id]_route_actions_033ac330.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_[id]_signal_route_actions_4b56f1cd.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_route_actions_0c8cd01c.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_threads_knowledge_route_actions_c139bcf7.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_09aac4e7._.js +57 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_cli-runner_ts_dfcf3fda._.js +18 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_db_ts_e06c6085._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +68 -23
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +74 -30
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +70 -31
- package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_3ea4d849._.js +87 -17
- package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_b0b1a9b2._.js +294 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0f808fa3.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_2bdede98.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +50 -43
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_3d31fed0.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_57a073eb.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_69b6b2e1.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7f8022ab.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_84e28f38.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_8ec90680.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_a590fcd6.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_cc6c687d.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_14067235._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_api-route-utils_ts_b7225a0e._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_b63e2d39._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_55c06268._.js +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_a8bc8d58._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__1322ced8._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__47caef59._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__6e83bf83._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__783669c3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8973b16a._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__9166c1d6._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a0a1cb74._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a8a8afdc._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__fca7df40._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_27f9c020._.js → _0061ebd8._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_064370bc._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_0f4e70b1._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_16c45024._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_27cb3359._.js → _5b2b8a85._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_a696e9b3._.js → _68ac991e._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_6de3f1de._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_c838f593._.js → _6fc3736e._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_85ca101b._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a0cc0fe7._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a10eb951._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_cb4d8a23._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6a367524._.js → _ccb409c5._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_cd5e154b._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_d021529a._.js → _fb292eed._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_4b5d7c9b._.js → _ff5799d6._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_next-internal_server_app_projects_[slug]_knowledge_page_actions_1037c40a.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_execution-graph_page_tsx_f854185a._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_graph_[taskId]_page_tsx_d8b1d582._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_knowledge_page_tsx_e2a55cbd._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_welcome_page_tsx_6c79bc59._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/ce889_server_app_projects_[slug]_thread_[threadId]_page_actions_660a8857.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +5 -5
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_e70f9321._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_678fa868._.js +3 -0
- package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/middleware-build-manifest.js +2 -2
- package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/.next/server/next-font-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/next-font-manifest.json +8 -0
- package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{b5bd2eb6e0c7f71a.js → 010aff7b601302de.js} +3 -3
- package/cloud-runtime/standalone/.next/static/chunks/0c467f54bc78a380.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/1f415d0ce7ebbd08.js +8 -0
- package/cloud-runtime/standalone/.next/static/chunks/24a6ee21f430da93.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/27129bea5b512ce8.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{e44264686aa5ecbf.js → 4200b512bdc226bc.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/463edf3533d27a56.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/486bf7ff282b91a6.js +5 -0
- package/cloud-runtime/standalone/.next/static/chunks/{616d66dbec9e4b8b.js → 58025a80caa3629d.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/5cb0c885b085ea6c.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/60c054bb8b2cffa6.css +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{45b4d0ee5c92d45b.js → 6fbe08eab578c7d3.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/7e2edf97bd6c0874.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/8249f202d33d0d95.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{b4e298542d366e31.js → 87f099ea02aa419d.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/8d15ced2dc70090a.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/9f8f719c4aa25e3d.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/a66e1891e808a664.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{3344004561eabdf8.js → bc3cad3c821b169b.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/bc727d3d9993e9be.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/cd308f61797939cd.js +6 -0
- package/cloud-runtime/standalone/.next/static/chunks/d5d6be8239e57c56.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{ee5f1457fbc593e1.js → dfff51033c303fc7.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/e62d5fa120fdf21f.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{turbopack-5b5918f610666d2d.js → turbopack-97e846241a3a64af.js} +1 -1
- package/cloud-runtime/standalone/README.md +3 -3
- package/cloud-runtime/standalone/app/api/chat/route.ts +38 -28
- package/cloud-runtime/standalone/app/api/chat-runs/[id]/route.ts +19 -0
- package/cloud-runtime/standalone/app/api/chat-runs/[id]/signal/route.ts +32 -0
- package/cloud-runtime/standalone/app/api/chat-runs/route.ts +37 -0
- package/cloud-runtime/standalone/app/api/history/route.ts +6 -0
- package/cloud-runtime/standalone/app/api/projects/[id]/memory/route.ts +17 -0
- package/cloud-runtime/standalone/app/api/providers/route.ts +9 -13
- package/cloud-runtime/standalone/app/api/schedules/debug/route.ts +23 -3
- package/cloud-runtime/standalone/app/api/schedules/poll/route.ts +5 -3
- package/cloud-runtime/standalone/app/api/schedules/route.ts +12 -17
- package/cloud-runtime/standalone/app/api/status/route.ts +6 -5
- package/cloud-runtime/standalone/app/api/threads/knowledge/route.ts +91 -0
- package/cloud-runtime/standalone/app/api/threads/route.ts +18 -1
- package/cloud-runtime/standalone/app/globals.css +1 -4
- package/cloud-runtime/standalone/app/projects/[slug]/graph/[taskId]/page.tsx +0 -21
- package/cloud-runtime/standalone/app/projects/[slug]/knowledge/page.tsx +608 -0
- package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +18 -2
- package/cloud-runtime/standalone/app/projects/[slug]/page.tsx +1 -455
- package/cloud-runtime/standalone/app/projects/[slug]/thread/[threadId]/page.tsx +14 -0
- package/cloud-runtime/standalone/app/welcome/page.tsx +329 -107
- package/cloud-runtime/standalone/components/ActionToolbar.tsx +3 -3
- package/cloud-runtime/standalone/components/ConfirmDialog.tsx +133 -0
- package/cloud-runtime/standalone/components/IconButton.tsx +3 -3
- package/cloud-runtime/standalone/components/ProjectModal.tsx +2 -2
- package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +415 -76
- package/cloud-runtime/standalone/components/chat-ui/Composer.tsx +149 -97
- package/cloud-runtime/standalone/components/chat-ui/ThreadView.tsx +73 -34
- package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +51 -23
- package/cloud-runtime/standalone/hooks/useComposerHistory.ts +130 -0
- package/cloud-runtime/standalone/hooks/useGroupChat.ts +24 -1
- package/cloud-runtime/standalone/hooks/useProcessPolling.ts +69 -6
- package/cloud-runtime/standalone/lib/history-store.ts +532 -38
- package/cloud-runtime/standalone/lib/knowledge-notes.ts +251 -0
- package/cloud-runtime/standalone/lib/knowledge-store.ts +233 -0
- package/cloud-runtime/standalone/lib/memory-extractor.ts +76 -60
- package/cloud-runtime/standalone/lib/mesh-core/journal.ts +30 -0
- package/cloud-runtime/standalone/lib/mesh-core/self.ts +94 -0
- package/cloud-runtime/standalone/lib/orchestrator/chat-activities.ts +60 -0
- package/cloud-runtime/standalone/lib/orchestrator/chat-processor.ts +168 -0
- package/cloud-runtime/standalone/lib/orchestrator/chat-types.ts +29 -0
- package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +20 -0
- package/cloud-runtime/standalone/lib/provider-clis.ts +63 -0
- package/cloud-runtime/standalone/lib/queue/boss.ts +2 -1
- package/cloud-runtime/standalone/lib/repo-knowledge.ts +19 -2
- package/cloud-runtime/standalone/lib/sqlite-query-adapter.ts +78 -0
- package/cloud-runtime/standalone/lib/stream-multiplexer.ts +101 -14
- package/cloud-runtime/standalone/lib/task-context.ts +7 -4
- package/cloud-runtime/standalone/lib/thread-knowledge-runs.ts +227 -0
- package/cloud-runtime/standalone/lib/thread-knowledge.ts +419 -0
- package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/README.md +2 -2
- package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/lib/glib-2.0/include/glibconfig.h +9 -8
- package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib → sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3} +0 -0
- package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/package.json +11 -5
- package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
- package/cloud-runtime/standalone/node_modules/@img/{sharp-darwin-arm64 → sharp-linux-x64}/package.json +13 -7
- package/cloud-runtime/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
- package/cloud-runtime/standalone/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/build/Release/better_sqlite3.node +0 -0
- package/cloud-runtime/standalone/package-lock.json +13 -0
- package/cloud-runtime/standalone/package.json +1 -0
- package/cloud-runtime/standalone/server.js +1 -1
- package/cloud-runtime/standalone/src/graph/api-schemas.ts +2 -2
- package/cloud-runtime/standalone/src/graph/executor.ts +9 -7
- package/cloud-runtime/standalone/src/graph/function-executor.ts +4 -1
- package/cloud-runtime/standalone/src/graph/internal-function-dispatcher.ts +174 -0
- package/cloud-runtime/standalone/src/graph/types.ts +3 -3
- package/cloud-runtime/standalone/src/graph/work-dispatcher.ts +5 -1
- package/cloud-runtime/standalone/tsconfig.json +3 -1
- package/cloud-runtime/standalone/worker/index.js +2930 -137
- package/cloud-runtime/standalone/worker/index.ts +8 -1
- package/package.json +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[externals]_child_process_964038fc._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__03a1bf91._.js +0 -6
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__065c5114._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__07dce481._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__09f46c85._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__149bcf6d._.js +0 -115
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__14bad16e._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__14e3bf74._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1632828c._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__24b8ccd3._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__284e1cbe._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__28d6e806._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2bcb75a7._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__32e5f341._.js +0 -4
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3b4a126a._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3c7464e8._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3d82dc78._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__406bdd54._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__40d6458a._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__47ca4946._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__49fb4a12._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5327e395._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__55d75c3a._.js +0 -7
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__592e81f9._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5a6a194c._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5af16b4f._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__60ba5058._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6716441c._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__673aedc6._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6a44c891._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6b680112._.js +0 -55
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7312fad4._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7456196c._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__74d26856._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__772c6fae._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__787ba54b._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__79157eef._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__82d76712._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8311f060._.js +0 -6
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__84e90655._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__90a887dc._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9345d703._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98294450._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__985f0d9f._.js +0 -51
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9b32295e._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a64d978e._.js +0 -6
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__babcd1af._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c16f03fb._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c2767ca5._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c72c6d4a._.js +0 -25
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ca851b15._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d25227df._.js +0 -29
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e06820c3._.js +0 -6
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e429a0bc._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e4397d43._.js +0 -7
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ec8735f4._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ef09ab99._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f366a937._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fdaa8a27._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fddde532._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff53f445._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/_1111d342._.js +0 -101
- package/cloud-runtime/standalone/.next/server/chunks/_4b60ba15._.js +0 -49
- package/cloud-runtime/standalone/.next/server/chunks/_54252651._.js +0 -49
- package/cloud-runtime/standalone/.next/server/chunks/_818a89c4._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/_a4a21d4f._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/_a759d52b._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/_e6b28eae._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/_e868e7c1._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/lib_23509137._.js +0 -196
- package/cloud-runtime/standalone/.next/server/chunks/lib_3273d5f9._.js +0 -196
- package/cloud-runtime/standalone/.next/server/chunks/lib_50ba0b4c._.js +0 -63
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_33963d95.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_56c5acb3.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_888b3578.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_e3bb4da8._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__113d6767._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__6a9d3855._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__942ca438._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ce3b51aa._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_1ec61dee._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_27904584._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_43472af3._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_94effa0f._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_d458d1eb._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_fbced30b._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_page_tsx_e0fabf6e._.js +0 -8
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_a8f86889._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_play_6595a532.js +0 -3
- package/cloud-runtime/standalone/.next/static/chunks/1184bf1bfdf97666.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/4c01a5f19f9e775e.js +0 -8
- package/cloud-runtime/standalone/.next/static/chunks/5ace4b4f4475962a.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/6509f7fecbf44493.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/661090206d8bae9b.css +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/6dbf5940e30fa9c7.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/7e91f395ace1dd2c.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/7f13efe9329d3f97.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/80219bbddcf65109.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/86ace6febb11ad71.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/b079c677d9b39f98.js +0 -5
- package/cloud-runtime/standalone/.next/static/chunks/b88352740262931f.js +0 -6
- package/cloud-runtime/standalone/.next/static/chunks/c5609fd2abb65850.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/d95cd010361834be.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/f7bbf5cfcfed8ba9.js +0 -1
- package/cloud-runtime/standalone/coverage/clover.xml +0 -1208
- package/cloud-runtime/standalone/coverage/coverage-final.json +0 -29
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/route.ts.html +0 -208
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/route.ts.html +0 -166
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/route.ts.html +0 -532
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/route.ts.html +0 -178
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/route.ts.html +0 -262
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/route.ts.html +0 -448
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/route.ts.html +0 -331
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/route.ts.html +0 -505
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/route.ts.html +0 -412
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/route.ts.html +0 -304
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/route.ts.html +0 -202
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/route.ts.html +0 -373
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/route.ts.html +0 -499
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/route.ts.html +0 -349
- package/cloud-runtime/standalone/coverage/lcov-report/base.css +0 -224
- package/cloud-runtime/standalone/coverage/lcov-report/block-navigation.js +0 -87
- package/cloud-runtime/standalone/coverage/lcov-report/components/AuthProvider.tsx.html +0 -259
- package/cloud-runtime/standalone/coverage/lcov-report/components/ChatInterface.tsx.html +0 -1228
- package/cloud-runtime/standalone/coverage/lcov-report/components/KanbanBoard.tsx.html +0 -1024
- package/cloud-runtime/standalone/coverage/lcov-report/components/Layout.tsx.html +0 -211
- package/cloud-runtime/standalone/coverage/lcov-report/components/LearningsPanel.tsx.html +0 -535
- package/cloud-runtime/standalone/coverage/lcov-report/components/LogTimeline.tsx.html +0 -415
- package/cloud-runtime/standalone/coverage/lcov-report/components/SortableTaskCard.tsx.html +0 -358
- package/cloud-runtime/standalone/coverage/lcov-report/components/StagePills.tsx.html +0 -439
- package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCard.tsx.html +0 -514
- package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCardOverlay.tsx.html +0 -256
- package/cloud-runtime/standalone/coverage/lcov-report/components/TaskDetail.tsx.html +0 -622
- package/cloud-runtime/standalone/coverage/lcov-report/components/TaskList.tsx.html +0 -253
- package/cloud-runtime/standalone/coverage/lcov-report/components/index.html +0 -281
- package/cloud-runtime/standalone/coverage/lcov-report/favicon.png +0 -0
- package/cloud-runtime/standalone/coverage/lcov-report/hooks/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/hooks/useTasks.ts.html +0 -1042
- package/cloud-runtime/standalone/coverage/lcov-report/index.html +0 -341
- package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-client.ts.html +0 -202
- package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-server.ts.html +0 -172
- package/cloud-runtime/standalone/coverage/lcov-report/lib/auth.ts.html +0 -265
- package/cloud-runtime/standalone/coverage/lcov-report/lib/db.ts.html +0 -1252
- package/cloud-runtime/standalone/coverage/lcov-report/lib/index.html +0 -131
- package/cloud-runtime/standalone/coverage/lcov-report/lib/orchestrator.ts.html +0 -409
- package/cloud-runtime/standalone/coverage/lcov-report/lib/security.ts.html +0 -1165
- package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase-server.ts.html +0 -175
- package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase.ts.html +0 -157
- package/cloud-runtime/standalone/coverage/lcov-report/prettify.css +0 -1
- package/cloud-runtime/standalone/coverage/lcov-report/prettify.js +0 -2
- package/cloud-runtime/standalone/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/cloud-runtime/standalone/coverage/lcov-report/sorter.js +0 -210
- package/cloud-runtime/standalone/coverage/lcov.info +0 -2386
- package/cloud-runtime/standalone/docs/LIMITS.md +0 -63
- package/cloud-runtime/standalone/docs/architecture/ADR-001-hybrid-to-full-sqlite.md +0 -345
- package/cloud-runtime/standalone/docs/baseline/baseline-report.json +0 -1009
- package/cloud-runtime/standalone/docs/baseline/critical-queries.md +0 -105
- package/cloud-runtime/standalone/docs/baseline/lock-metrics.json +0 -21
- package/cloud-runtime/standalone/docs/baseline/read-latency.json +0 -146
- package/cloud-runtime/standalone/docs/baseline/restore-time.json +0 -10
- package/cloud-runtime/standalone/docs/baseline/write-metrics.json +0 -803
- package/cloud-runtime/standalone/docs/decisions/sqlite-migration-adr.md +0 -327
- package/cloud-runtime/standalone/docs/error-code-mapping.md +0 -74
- package/cloud-runtime/standalone/docs/migration-plan.md +0 -120
- package/cloud-runtime/standalone/docs/migration-spec.md +0 -345
- package/cloud-runtime/standalone/docs/pg-sqlite-compatibility-matrix.md +0 -554
- package/cloud-runtime/standalone/docs/project-agent-migration-status.md +0 -229
- package/cloud-runtime/standalone/docs/runbook-shadow-read.md +0 -66
- package/cloud-runtime/standalone/docs/runbook.md +0 -155
- package/cloud-runtime/standalone/docs/specs/cli-postgres-removal.md +0 -69
- package/cloud-runtime/standalone/docs/specs/thread-mentions.md +0 -53
- package/cloud-runtime/standalone/docs/ux/GlobalChatFlow.storyboard +0 -23
- package/cloud-runtime/standalone/docs/ux/assistant-chat-cli.md +0 -32
- package/cloud-runtime/standalone/mcp/dist/constants.js +0 -66
- package/cloud-runtime/standalone/mcp/dist/db.js +0 -220
- package/cloud-runtime/standalone/mcp/dist/index.js +0 -7
- package/cloud-runtime/standalone/mcp/dist/security.js +0 -18
- package/cloud-runtime/standalone/mcp/dist/server.js +0 -240
- package/cloud-runtime/standalone/mcp/dist/task-context.js +0 -287
- package/cloud-runtime/standalone/mcp/dist/test-client.js +0 -82
- package/cloud-runtime/standalone/mcp/dist/tools/audit.js +0 -69
- package/cloud-runtime/standalone/mcp/dist/tools/learnings.js +0 -88
- package/cloud-runtime/standalone/mcp/dist/tools/queue.js +0 -312
- package/cloud-runtime/standalone/mcp/dist/tools/tasks.js +0 -244
- package/cloud-runtime/standalone/mcp/dist/types.js +0 -74
- package/cloud-runtime/standalone/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
- package/cloud-runtime/standalone/notes/comments-context-demo.md +0 -141
- package/cloud-runtime/standalone/notes/comments-context-plan.md +0 -119
- package/cloud-runtime/standalone/notes/context-audit.md +0 -21
- package/cloud-runtime/standalone/notes/project-layer-plan.md +0 -30
- package/cloud-runtime/standalone/notes/project-layer.md +0 -123
- package/cloud-runtime/standalone/notes/temporal-migration-design.md +0 -199
- package/cloud-runtime/standalone/playwright-report/data/00d55996f37c1506b90144c85493dd85032c13e5.png +0 -0
- package/cloud-runtime/standalone/playwright-report/data/0b9d409e57237ae111d7ba258d3dfe64dc368456.png +0 -0
- package/cloud-runtime/standalone/playwright-report/data/b33d5e80a15bd1deda4415b9d318ef73f581c950.png +0 -0
- package/cloud-runtime/standalone/playwright-report/data/b55684161aa440d0614595e13c91338f0420abbb.md +0 -131
- package/cloud-runtime/standalone/playwright-report/data/b9913957ae07e7565c38ddd71215be79b1ceb017.png +0 -0
- package/cloud-runtime/standalone/playwright-report/data/c3538be8ebbebc9fe4a7df8f12f04483af4a0d91.png +0 -0
- package/cloud-runtime/standalone/playwright-report/data/fe638f64ff5e36f1c30325564565662d3f57da87.md +0 -180
- package/cloud-runtime/standalone/playwright-report/index.html +0 -85
- package/cloud-runtime/standalone/test-results/auth-Authentication-Flow-S-aff25-sion-across-page-navigation-chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/test-results/comments-Task-comments-add-4dc59-nd-persists-it-for-the-task-chromium/error-context.md +0 -131
- package/cloud-runtime/standalone/test-results/comments-Task-comments-add-4dc59-nd-persists-it-for-the-task-chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage--4082a-er-planning-after-ideation--chromium/error-context.md +0 -180
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage--4082a-er-planning-after-ideation--chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage-Columns-displays-all-9-SDLC-stages-chromium/error-context.md +0 -180
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage-Columns-displays-all-9-SDLC-stages-chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-D-b6d98-ys-tasks-in-correct-columns-chromium/error-context.md +0 -180
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-D-b6d98-ys-tasks-in-correct-columns-chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-Display-shows-task-count-per-column-chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/test-results/kanban-Task-Lifecycle-can-advance-task-through-all-stages-chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/tsconfig.tsbuildinfo +0 -1
- /package/cloud-runtime/standalone/.next/static/{AB08MY3MKLsqeJYL8OZ2g → i_9nSHyb52FGkCbRgv7EJ}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/.next/static/{AB08MY3MKLsqeJYL8OZ2g → i_9nSHyb52FGkCbRgv7EJ}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/.next/static/{AB08MY3MKLsqeJYL8OZ2g → i_9nSHyb52FGkCbRgv7EJ}/_ssgManifest.js +0 -0
- /package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/lib/index.js +0 -0
- /package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/versions.json +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import { useEffect, useRef, useState, useCallback, useMemo } from "react";
|
|
4
|
+
import { useSearchParams } from "next/navigation";
|
|
4
5
|
import { useGroupChat } from "@/hooks/useGroupChat";
|
|
5
6
|
import { useProcessPolling } from "@/hooks/useProcessPolling";
|
|
6
7
|
import { useThreadState } from "@/hooks/useThreadState";
|
|
@@ -24,10 +25,12 @@ import {
|
|
|
24
25
|
} from "@/services/userPreferences";
|
|
25
26
|
import type { SlashCommand } from "@/hooks/useCommandAutocomplete";
|
|
26
27
|
import type { Participant, GroupMessage, MessageSearchResponse, MessageSearchResult } from "@/lib/types";
|
|
28
|
+
import type { ThreadStatus } from "@/lib/storage/thread-adapter";
|
|
27
29
|
import type { TaskDraftMessage } from "@/types/tasks";
|
|
28
30
|
import { buildTasks } from "@/services/agxService";
|
|
31
|
+
import ConfirmDialog from "@/components/ConfirmDialog";
|
|
29
32
|
import { useProjectsWithAgents, useProjects } from "@/hooks/useProjects";
|
|
30
|
-
import { Search, ChevronLeft, SquareTerminal, PanelLeftOpen, Moon, Sun } from "lucide-react";
|
|
33
|
+
import { Search, ChevronLeft, SquareTerminal, PanelLeftOpen, Moon, Sun, BookOpen, LoaderCircle } from "lucide-react";
|
|
31
34
|
import { LogPanel } from "./LogPanel";
|
|
32
35
|
import { StatusIndicator } from "./StatusIndicator";
|
|
33
36
|
|
|
@@ -36,6 +39,17 @@ const SUMMARY_MARKER = "<!-- thread-summary -->";
|
|
|
36
39
|
const TASK_DRAFT_MARKER = "<!-- task-draft -->";
|
|
37
40
|
const THEME_STORAGE_KEY = "agx-theme";
|
|
38
41
|
|
|
42
|
+
interface ThreadKnowledgeRun {
|
|
43
|
+
id: string;
|
|
44
|
+
status: "running" | "completed" | "failed";
|
|
45
|
+
requestedScopes: Array<"repo" | "project">;
|
|
46
|
+
repoInsertedCount: number;
|
|
47
|
+
projectInsertedCount: number;
|
|
48
|
+
error: string | null;
|
|
49
|
+
updatedAt: string;
|
|
50
|
+
completedAt: string | null;
|
|
51
|
+
}
|
|
52
|
+
|
|
39
53
|
function stripThoughts(text: string): string {
|
|
40
54
|
return text.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g, "\n").trim();
|
|
41
55
|
}
|
|
@@ -106,6 +120,17 @@ function getTimeAgo(ts: number) {
|
|
|
106
120
|
return new Intl.DateTimeFormat("en-US", { month: "short", day: "numeric" }).format(ts);
|
|
107
121
|
}
|
|
108
122
|
|
|
123
|
+
async function fetchLatestThreadKnowledgeRun(rootMessageId: string): Promise<ThreadKnowledgeRun | null> {
|
|
124
|
+
const response = await fetch(`/api/threads/knowledge?rootMessageId=${encodeURIComponent(rootMessageId)}`, {
|
|
125
|
+
cache: "no-store",
|
|
126
|
+
});
|
|
127
|
+
if (!response.ok) {
|
|
128
|
+
throw new Error("Failed to load thread knowledge run");
|
|
129
|
+
}
|
|
130
|
+
const payload = await response.json().catch(() => null);
|
|
131
|
+
return payload?.run ?? null;
|
|
132
|
+
}
|
|
133
|
+
|
|
109
134
|
function getOrderedParticipantIds(
|
|
110
135
|
participants: Participant[],
|
|
111
136
|
projects: ReturnType<typeof useProjectsWithAgents>["projects"],
|
|
@@ -119,15 +144,15 @@ function getOrderedParticipantIds(
|
|
|
119
144
|
? threadProject.agents.map((agent) => agent.agent_id).filter((id) => participantIdSet.has(id))
|
|
120
145
|
: [];
|
|
121
146
|
|
|
147
|
+
if (threadProject) {
|
|
148
|
+
return routingOrderIds;
|
|
149
|
+
}
|
|
150
|
+
|
|
122
151
|
if (routingOrderIds.length === 0) {
|
|
123
152
|
return participants.map((participant) => participant.id);
|
|
124
153
|
}
|
|
125
154
|
|
|
126
|
-
|
|
127
|
-
const fallbackIds = participants
|
|
128
|
-
.map((participant) => participant.id)
|
|
129
|
-
.filter((id) => !routedIdSet.has(id));
|
|
130
|
-
return [...routingOrderIds, ...fallbackIds];
|
|
155
|
+
return routingOrderIds;
|
|
131
156
|
}
|
|
132
157
|
|
|
133
158
|
function reconcileActiveParticipantIds(
|
|
@@ -181,9 +206,16 @@ interface ChatContainerProps {
|
|
|
181
206
|
projectSlug?: string;
|
|
182
207
|
initialThreadId?: string;
|
|
183
208
|
initialRootMessageId?: string;
|
|
209
|
+
showSidebar?: boolean;
|
|
184
210
|
}
|
|
185
211
|
|
|
186
|
-
export function ChatContainer({
|
|
212
|
+
export function ChatContainer({
|
|
213
|
+
projectSlug,
|
|
214
|
+
initialThreadId,
|
|
215
|
+
initialRootMessageId,
|
|
216
|
+
showSidebar = true,
|
|
217
|
+
}: ChatContainerProps = {}) {
|
|
218
|
+
const searchParams = useSearchParams();
|
|
187
219
|
const {
|
|
188
220
|
threads,
|
|
189
221
|
activeThreadId,
|
|
@@ -202,24 +234,72 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
202
234
|
updateMessageThreadStatus,
|
|
203
235
|
updateMessageOutcomeNote,
|
|
204
236
|
} = useThreadState(initialThreadId);
|
|
205
|
-
const { messages, setMessages, logs, sendMessage, loadHistory, clearLogs, stop, stopThread } =
|
|
237
|
+
const { messages, setMessages, logs, sendMessage, loadHistory, clearLogs, chatRuns, setChatRuns, stop, stopThread } =
|
|
206
238
|
useGroupChat(activeThreadId);
|
|
207
|
-
const { activeAgents: polledActiveAgents, processes: activeProcesses, streaming, poll } = useProcessPolling(
|
|
239
|
+
const { activeAgents: polledActiveAgents, processes: activeProcesses, streaming, chatRuns: polledChatRuns, poll } = useProcessPolling(
|
|
208
240
|
activeThreadId ? { workspaceId: activeThreadId } : null,
|
|
209
241
|
{ messages, setMessages }
|
|
210
242
|
);
|
|
211
|
-
const
|
|
243
|
+
const activeChatRuns = (chatRuns.length > 0 ? chatRuns : polledChatRuns).filter(
|
|
244
|
+
(run) => run.status === "queued" || run.status === "running"
|
|
245
|
+
);
|
|
246
|
+
const composerActivityStatus =
|
|
247
|
+
polledActiveAgents.size > 0 || activeChatRuns.some((run) => run.status === "running")
|
|
248
|
+
? "working"
|
|
249
|
+
: activeChatRuns.some((run) => run.status === "queued")
|
|
250
|
+
? "queued"
|
|
251
|
+
: "ready";
|
|
252
|
+
const loading = composerActivityStatus !== "ready";
|
|
253
|
+
|
|
254
|
+
useEffect(() => {
|
|
255
|
+
if (polledChatRuns.length === 0) return;
|
|
256
|
+
setChatRuns((prev) => {
|
|
257
|
+
const byId = new Map(
|
|
258
|
+
prev
|
|
259
|
+
.filter((run) => typeof run.chatRunId === "string" && run.chatRunId.length > 0)
|
|
260
|
+
.map((run) => [run.chatRunId, run])
|
|
261
|
+
);
|
|
262
|
+
for (const run of polledChatRuns) {
|
|
263
|
+
if (!run?.chatRunId) continue;
|
|
264
|
+
byId.set(run.chatRunId, run);
|
|
265
|
+
}
|
|
266
|
+
return Array.from(byId.values()).sort((a, b) =>
|
|
267
|
+
String(a.chatRunId || "").localeCompare(String(b.chatRunId || ""))
|
|
268
|
+
);
|
|
269
|
+
});
|
|
270
|
+
}, [polledChatRuns, setChatRuns]);
|
|
271
|
+
|
|
272
|
+
const cancelChatRun = useCallback(async (chatRunId: string) => {
|
|
273
|
+
await fetch(`/api/chat-runs/${encodeURIComponent(chatRunId)}/signal`, {
|
|
274
|
+
method: "POST",
|
|
275
|
+
headers: { "Content-Type": "application/json" },
|
|
276
|
+
body: JSON.stringify({ signal: "cancel", reason: "Stopped from chat UI" }),
|
|
277
|
+
}).catch(() => {});
|
|
278
|
+
}, []);
|
|
212
279
|
|
|
213
280
|
// Wrap stop functions to immediately refresh polling state
|
|
214
281
|
const handleStop = useCallback(async () => {
|
|
282
|
+
const latestRun = activeChatRuns[0];
|
|
283
|
+
if (latestRun?.chatRunId) {
|
|
284
|
+
await cancelChatRun(latestRun.chatRunId);
|
|
285
|
+
}
|
|
215
286
|
await stop();
|
|
216
287
|
await poll();
|
|
217
|
-
}, [stop, poll]);
|
|
288
|
+
}, [activeChatRuns, cancelChatRun, stop, poll]);
|
|
218
289
|
|
|
219
290
|
const handleStopThread = useCallback(async (rootMessageId: string) => {
|
|
291
|
+
const matchingRun = activeChatRuns.find((run) => run.rootMessageId === rootMessageId);
|
|
292
|
+
if (matchingRun?.chatRunId) {
|
|
293
|
+
await cancelChatRun(matchingRun.chatRunId);
|
|
294
|
+
}
|
|
220
295
|
await stopThread(rootMessageId);
|
|
221
296
|
await poll();
|
|
222
|
-
}, [stopThread, poll]);
|
|
297
|
+
}, [activeChatRuns, cancelChatRun, stopThread, poll]);
|
|
298
|
+
|
|
299
|
+
const handleStopRef = useRef(handleStop);
|
|
300
|
+
useEffect(() => {
|
|
301
|
+
handleStopRef.current = handleStop;
|
|
302
|
+
}, [handleStop]);
|
|
223
303
|
const {
|
|
224
304
|
projects,
|
|
225
305
|
createProject,
|
|
@@ -240,10 +320,13 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
240
320
|
return document.documentElement.classList.contains("dark") ? "dark" : "light";
|
|
241
321
|
});
|
|
242
322
|
const [workspaceSidebarVisible, setWorkspaceSidebarVisible] = useState(false);
|
|
323
|
+
const workspaceSidebarHydratedRef = useRef(false);
|
|
243
324
|
|
|
244
325
|
// Sync sidebar visibility from localStorage after hydration to avoid SSR mismatch
|
|
245
326
|
useEffect(() => {
|
|
246
|
-
|
|
327
|
+
const stored = loadWorkspaceSidebarVisible();
|
|
328
|
+
workspaceSidebarHydratedRef.current = true;
|
|
329
|
+
setWorkspaceSidebarVisible(stored);
|
|
247
330
|
}, []);
|
|
248
331
|
useEffect(() => {
|
|
249
332
|
if (typeof window === "undefined") return;
|
|
@@ -255,7 +338,10 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
255
338
|
const [logsOpen, setLogsOpen] = useState(false);
|
|
256
339
|
const [autoModeThreads, setAutoModeThreads] = useState<Set<string>>(new Set());
|
|
257
340
|
const [pendingAutoMode, setPendingAutoMode] = useState(false);
|
|
341
|
+
const [knowledgeExtractionPending, setKnowledgeExtractionPending] = useState(false);
|
|
342
|
+
const [threadKnowledgeRun, setThreadKnowledgeRun] = useState<ThreadKnowledgeRun | null>(null);
|
|
258
343
|
const [openThreadId, setOpenThreadId] = useState<string | null>(initialRootMessageId ?? null);
|
|
344
|
+
const routeOpenThreadId = searchParams.get("open")?.trim() || null;
|
|
259
345
|
const autoMode = openThreadId ? autoModeThreads.has(openThreadId) : pendingAutoMode;
|
|
260
346
|
|
|
261
347
|
// Hydrate & poll ship mode from server when a thread is opened
|
|
@@ -313,11 +399,22 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
313
399
|
// Sync URL to reflect the currently open thread
|
|
314
400
|
useEffect(() => {
|
|
315
401
|
if (openThreadId) {
|
|
316
|
-
|
|
402
|
+
const nextPath = projectSlug
|
|
403
|
+
? `/projects/${projectSlug}/thread/${encodeURIComponent(activeThreadId ?? initialThreadId ?? "")}?open=${encodeURIComponent(openThreadId)}`
|
|
404
|
+
: `/thread/${openThreadId}`;
|
|
405
|
+
window.history.replaceState(null, "", nextPath);
|
|
317
406
|
} else {
|
|
318
|
-
window.history.replaceState(null, "", "/");
|
|
407
|
+
window.history.replaceState(null, "", projectSlug ? `/projects/${projectSlug}/thread/${encodeURIComponent(activeThreadId ?? initialThreadId ?? "")}` : "/");
|
|
408
|
+
}
|
|
409
|
+
}, [activeThreadId, initialThreadId, openThreadId, projectSlug]);
|
|
410
|
+
|
|
411
|
+
useEffect(() => {
|
|
412
|
+
if (!projectSlug) {
|
|
413
|
+
return;
|
|
319
414
|
}
|
|
320
|
-
|
|
415
|
+
|
|
416
|
+
setOpenThreadId((current) => (current === routeOpenThreadId ? current : routeOpenThreadId));
|
|
417
|
+
}, [projectSlug, routeOpenThreadId]);
|
|
321
418
|
|
|
322
419
|
// Resolve initialRootMessageId → workspace thread on mount
|
|
323
420
|
useEffect(() => {
|
|
@@ -339,6 +436,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
339
436
|
const [highlightedMessageId, setHighlightedMessageId] = useState<string | null>(null);
|
|
340
437
|
const [summarizingThreads, setSummarizingThreads] = useState<Set<string>>(new Set());
|
|
341
438
|
const [deletingThreadRootId, setDeletingThreadRootId] = useState<string | null>(null);
|
|
439
|
+
const [pendingDelete, setPendingDelete] = useState<{ type: "thread" | "message"; id: string; preview?: string } | null>(null);
|
|
342
440
|
const [taskDrafts, setTaskDraftsRaw] = useState<Record<string, TaskDraftMessage>>({});
|
|
343
441
|
const setTaskDrafts: typeof setTaskDraftsRaw = useCallback((update) => {
|
|
344
442
|
setTaskDraftsRaw((prev) => {
|
|
@@ -453,6 +551,20 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
453
551
|
return text.length > 60 ? text.slice(0, 60) + "..." : text;
|
|
454
552
|
}, [openThreadId, messages]);
|
|
455
553
|
|
|
554
|
+
const activeThreadStatus = useMemo((): { value: ThreadStatus; label: string; color: string } | null => {
|
|
555
|
+
if (!openThreadId) return null;
|
|
556
|
+
const rootMsg = messages.find((m) => m.id === openThreadId);
|
|
557
|
+
const status = rootMsg?.threadStatus ?? "active";
|
|
558
|
+
const map: Record<ThreadStatus, { label: string; color: string }> = {
|
|
559
|
+
active: { label: "Active", color: "#f59e0b" },
|
|
560
|
+
paused: { label: "Paused", color: "#f97316" },
|
|
561
|
+
"in-review": { label: "In Review", color: "#6b7280" },
|
|
562
|
+
done: { label: "Done", color: "#3b82f6" },
|
|
563
|
+
archived: { label: "Archived", color: "#9ca3af" },
|
|
564
|
+
};
|
|
565
|
+
return { value: status, ...map[status] };
|
|
566
|
+
}, [openThreadId, messages]);
|
|
567
|
+
|
|
456
568
|
const clearSearch = useCallback(() => {
|
|
457
569
|
setSearchQuery("");
|
|
458
570
|
setSearchResults([]);
|
|
@@ -494,6 +606,103 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
494
606
|
navigator.clipboard.writeText(md).catch(err => console.error("Failed to copy thread", err));
|
|
495
607
|
}, [messages, participants, taskDrafts]);
|
|
496
608
|
|
|
609
|
+
const handleLearnFromDiscussion = useCallback(async () => {
|
|
610
|
+
if (!openThreadId) return;
|
|
611
|
+
|
|
612
|
+
setKnowledgeExtractionPending(true);
|
|
613
|
+
try {
|
|
614
|
+
const scopes: string[] = ["repo"];
|
|
615
|
+
if (projectSlug) scopes.push("project");
|
|
616
|
+
|
|
617
|
+
const response = await fetch("/api/threads/knowledge", {
|
|
618
|
+
method: "POST",
|
|
619
|
+
headers: { "Content-Type": "application/json" },
|
|
620
|
+
body: JSON.stringify({ rootMessageId: openThreadId, scopes }),
|
|
621
|
+
});
|
|
622
|
+
const payload = await response.json().catch(() => null);
|
|
623
|
+
if (!response.ok) {
|
|
624
|
+
throw new Error(typeof payload?.error === "string" ? payload.error : "Request failed");
|
|
625
|
+
}
|
|
626
|
+
setThreadKnowledgeRun(payload?.run ?? null);
|
|
627
|
+
} catch (error) {
|
|
628
|
+
const message = error instanceof Error ? error.message : "Request failed";
|
|
629
|
+
window.alert(`Failed to extract knowledge: ${message}`);
|
|
630
|
+
} finally {
|
|
631
|
+
setKnowledgeExtractionPending(false);
|
|
632
|
+
}
|
|
633
|
+
}, [openThreadId, projectSlug]);
|
|
634
|
+
|
|
635
|
+
useEffect(() => {
|
|
636
|
+
if (!openThreadId) {
|
|
637
|
+
setThreadKnowledgeRun(null);
|
|
638
|
+
setKnowledgeExtractionPending(false);
|
|
639
|
+
return;
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
let cancelled = false;
|
|
643
|
+
|
|
644
|
+
const load = async () => {
|
|
645
|
+
try {
|
|
646
|
+
const run = await fetchLatestThreadKnowledgeRun(openThreadId);
|
|
647
|
+
if (cancelled) return;
|
|
648
|
+
setThreadKnowledgeRun(run);
|
|
649
|
+
} catch {
|
|
650
|
+
if (!cancelled) {
|
|
651
|
+
setThreadKnowledgeRun(null);
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
};
|
|
655
|
+
|
|
656
|
+
void load();
|
|
657
|
+
return () => {
|
|
658
|
+
cancelled = true;
|
|
659
|
+
};
|
|
660
|
+
}, [openThreadId]);
|
|
661
|
+
|
|
662
|
+
useEffect(() => {
|
|
663
|
+
if (!openThreadId || threadKnowledgeRun?.status !== "running") {
|
|
664
|
+
return;
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
let cancelled = false;
|
|
668
|
+
const pollRun = async () => {
|
|
669
|
+
try {
|
|
670
|
+
const run = await fetchLatestThreadKnowledgeRun(openThreadId);
|
|
671
|
+
if (cancelled) return;
|
|
672
|
+
setThreadKnowledgeRun(run);
|
|
673
|
+
} catch {
|
|
674
|
+
// Preserve the current running state on transient polling failures.
|
|
675
|
+
}
|
|
676
|
+
};
|
|
677
|
+
|
|
678
|
+
void pollRun();
|
|
679
|
+
const interval = window.setInterval(() => {
|
|
680
|
+
void pollRun();
|
|
681
|
+
}, 2000);
|
|
682
|
+
return () => {
|
|
683
|
+
cancelled = true;
|
|
684
|
+
window.clearInterval(interval);
|
|
685
|
+
};
|
|
686
|
+
}, [openThreadId, threadKnowledgeRun?.status]);
|
|
687
|
+
|
|
688
|
+
const isKnowledgeExtractionRunning = threadKnowledgeRun?.status === "running";
|
|
689
|
+
const knowledgeButtonDisabled = knowledgeExtractionPending || isKnowledgeExtractionRunning;
|
|
690
|
+
const latestKnowledgeInsertedCount = (threadKnowledgeRun?.repoInsertedCount ?? 0) + (threadKnowledgeRun?.projectInsertedCount ?? 0);
|
|
691
|
+
const knowledgeStatusText = useMemo(() => {
|
|
692
|
+
if (!threadKnowledgeRun) return null;
|
|
693
|
+
if (threadKnowledgeRun.status === "running") {
|
|
694
|
+
return "Learning in progress";
|
|
695
|
+
}
|
|
696
|
+
if (threadKnowledgeRun.status === "failed") {
|
|
697
|
+
return "Last learning run failed";
|
|
698
|
+
}
|
|
699
|
+
if (latestKnowledgeInsertedCount > 0) {
|
|
700
|
+
const noun = latestKnowledgeInsertedCount === 1 ? "insight" : "insights";
|
|
701
|
+
return `Learned ${latestKnowledgeInsertedCount} ${noun}`;
|
|
702
|
+
}
|
|
703
|
+
return "No new learnings";
|
|
704
|
+
}, [latestKnowledgeInsertedCount, threadKnowledgeRun]);
|
|
705
|
+
|
|
497
706
|
useEffect(() => {
|
|
498
707
|
void reloadParticipants(true);
|
|
499
708
|
}, [reloadParticipants]);
|
|
@@ -552,10 +761,14 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
552
761
|
}
|
|
553
762
|
|
|
554
763
|
const reconciled = reconcileActiveParticipantIds(orderedParticipantIds, storedIds);
|
|
555
|
-
|
|
556
|
-
|
|
764
|
+
const effective = reconciled.length > 0 ? reconciled : orderedParticipantIds;
|
|
765
|
+
if (
|
|
766
|
+
effective.length !== storedIds.length ||
|
|
767
|
+
effective.some((id, index) => storedIds[index] !== id)
|
|
768
|
+
) {
|
|
769
|
+
persistStoredActiveParticipantIds(activeThreadId, effective);
|
|
557
770
|
}
|
|
558
|
-
setActiveParticipantIds(
|
|
771
|
+
setActiveParticipantIds(effective);
|
|
559
772
|
}, [activeThreadId, participants, participantsLoaded, projects]);
|
|
560
773
|
|
|
561
774
|
useEffect(() => {
|
|
@@ -568,6 +781,10 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
568
781
|
if (current === preferences.threadSidebarVisible) {
|
|
569
782
|
return current;
|
|
570
783
|
}
|
|
784
|
+
if (workspaceSidebarHydratedRef.current) {
|
|
785
|
+
void persistWorkspaceSidebarPreferenceRemotely(current);
|
|
786
|
+
return current;
|
|
787
|
+
}
|
|
571
788
|
persistWorkspaceSidebarVisible(preferences.threadSidebarVisible);
|
|
572
789
|
return preferences.threadSidebarVisible;
|
|
573
790
|
});
|
|
@@ -578,7 +795,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
578
795
|
return () => {
|
|
579
796
|
cancelled = true;
|
|
580
797
|
};
|
|
581
|
-
}, [
|
|
798
|
+
}, [persistWorkspaceSidebarPreferenceRemotely]);
|
|
582
799
|
|
|
583
800
|
useEffect(() => {
|
|
584
801
|
if (!threadsLoading && !isCreating && threads.length === 0) {
|
|
@@ -674,7 +891,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
674
891
|
useEffect(() => {
|
|
675
892
|
// Only stop active streams when actually switching threads, not on initial mount.
|
|
676
893
|
if (prevActiveThreadIdRef.current !== null && prevActiveThreadIdRef.current !== activeThreadId) {
|
|
677
|
-
|
|
894
|
+
void handleStopRef.current();
|
|
678
895
|
if (pendingOpenThreadIdRef.current) {
|
|
679
896
|
setOpenThreadId(pendingOpenThreadIdRef.current);
|
|
680
897
|
pendingOpenThreadIdRef.current = null;
|
|
@@ -696,7 +913,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
696
913
|
}
|
|
697
914
|
})
|
|
698
915
|
.catch(() => setTaskDraftsRaw({}));
|
|
699
|
-
}, [activeThreadId, loadHistory
|
|
916
|
+
}, [activeThreadId, loadHistory]);
|
|
700
917
|
|
|
701
918
|
useEffect(() => {
|
|
702
919
|
if (!activeThreadId) return;
|
|
@@ -1087,10 +1304,18 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1087
1304
|
);
|
|
1088
1305
|
|
|
1089
1306
|
const handleDeleteThreadRoot = useCallback(
|
|
1090
|
-
|
|
1307
|
+
(rootMessageId: string) => {
|
|
1091
1308
|
if (!activeThreadId || !rootMessageId) return;
|
|
1092
|
-
const
|
|
1093
|
-
|
|
1309
|
+
const msg = messages.find((m) => m.id === rootMessageId);
|
|
1310
|
+
const preview = msg?.content?.slice(0, 120) || undefined;
|
|
1311
|
+
setPendingDelete({ type: "thread", id: rootMessageId, preview });
|
|
1312
|
+
},
|
|
1313
|
+
[activeThreadId, messages]
|
|
1314
|
+
);
|
|
1315
|
+
|
|
1316
|
+
const executeDeleteThreadRoot = useCallback(
|
|
1317
|
+
async (rootMessageId: string) => {
|
|
1318
|
+
if (!activeThreadId) return;
|
|
1094
1319
|
|
|
1095
1320
|
setDeletingThreadRootId(rootMessageId);
|
|
1096
1321
|
handleStopThread(rootMessageId);
|
|
@@ -1123,6 +1348,55 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1123
1348
|
[activeThreadId, loadHistory, messages, handleStopThread, updateThreadMessages]
|
|
1124
1349
|
);
|
|
1125
1350
|
|
|
1351
|
+
const handleDeleteMessage = useCallback(
|
|
1352
|
+
(messageId: string) => {
|
|
1353
|
+
if (!activeThreadId || !messageId) return;
|
|
1354
|
+
const msg = messages.find((m) => m.id === messageId);
|
|
1355
|
+
const preview = msg?.content?.slice(0, 120) || undefined;
|
|
1356
|
+
setPendingDelete({ type: "message", id: messageId, preview });
|
|
1357
|
+
},
|
|
1358
|
+
[activeThreadId, messages]
|
|
1359
|
+
);
|
|
1360
|
+
|
|
1361
|
+
const executeDeleteMessage = useCallback(
|
|
1362
|
+
async (messageId: string) => {
|
|
1363
|
+
if (!activeThreadId) return;
|
|
1364
|
+
|
|
1365
|
+
try {
|
|
1366
|
+
const params = new URLSearchParams({
|
|
1367
|
+
threadId: activeThreadId,
|
|
1368
|
+
messageId,
|
|
1369
|
+
});
|
|
1370
|
+
const response = await fetch(`/api/history?${params.toString()}`, { method: "DELETE" });
|
|
1371
|
+
if (!response.ok) {
|
|
1372
|
+
console.error("Failed to delete message", await response.text());
|
|
1373
|
+
return;
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
const nextMessages = messages.filter((m) => m.id !== messageId);
|
|
1377
|
+
void updateThreadMessages(activeThreadId, nextMessages);
|
|
1378
|
+
await loadHistory(activeThreadId);
|
|
1379
|
+
} catch (error) {
|
|
1380
|
+
console.error("Failed to delete message", error);
|
|
1381
|
+
}
|
|
1382
|
+
},
|
|
1383
|
+
[activeThreadId, loadHistory, messages, updateThreadMessages]
|
|
1384
|
+
);
|
|
1385
|
+
|
|
1386
|
+
const handleConfirmDelete = useCallback(() => {
|
|
1387
|
+
if (!pendingDelete) return;
|
|
1388
|
+
if (pendingDelete.type === "thread") {
|
|
1389
|
+
void executeDeleteThreadRoot(pendingDelete.id);
|
|
1390
|
+
} else {
|
|
1391
|
+
void executeDeleteMessage(pendingDelete.id);
|
|
1392
|
+
}
|
|
1393
|
+
setPendingDelete(null);
|
|
1394
|
+
}, [pendingDelete, executeDeleteThreadRoot, executeDeleteMessage]);
|
|
1395
|
+
|
|
1396
|
+
const handleCancelDelete = useCallback(() => {
|
|
1397
|
+
setPendingDelete(null);
|
|
1398
|
+
}, []);
|
|
1399
|
+
|
|
1126
1400
|
const slashCommands: SlashCommand[] = useMemo(
|
|
1127
1401
|
() => [
|
|
1128
1402
|
{
|
|
@@ -1154,24 +1428,35 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1154
1428
|
);
|
|
1155
1429
|
|
|
1156
1430
|
const renderReplyComposer = useCallback(
|
|
1157
|
-
(rootMessageId: string) =>
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1431
|
+
(rootMessageId: string) => {
|
|
1432
|
+
const threadActivityStatus =
|
|
1433
|
+
activeProcesses.some((process) => ["spawning", "running"].includes(process.state) && process.threadId === rootMessageId) ||
|
|
1434
|
+
Object.values(streaming).some((entry) => entry.rootMessageId === rootMessageId)
|
|
1435
|
+
? "working"
|
|
1436
|
+
: activeChatRuns.some((run) => run.rootMessageId === rootMessageId && run.status === "queued")
|
|
1437
|
+
? "queued"
|
|
1438
|
+
: "ready";
|
|
1439
|
+
|
|
1440
|
+
return (
|
|
1441
|
+
<Composer
|
|
1442
|
+
onSend={(message, maxRounds, _attachmentIds, _attachments, pinnedParticipantId) =>
|
|
1443
|
+
handleThreadReply(rootMessageId, message, maxRounds, pinnedParticipantId)
|
|
1444
|
+
}
|
|
1445
|
+
onStop={() => handleStopThread(rootMessageId)}
|
|
1446
|
+
loading={threadActivityStatus !== "ready"}
|
|
1447
|
+
activityStatus={threadActivityStatus}
|
|
1448
|
+
participants={activeParticipants}
|
|
1449
|
+
projectGroups={threadProjects}
|
|
1450
|
+
projects={projectMentions}
|
|
1451
|
+
messages={messages}
|
|
1452
|
+
commands={slashCommands}
|
|
1453
|
+
placeholder="Reply — @name to mention, /search, /summarize"
|
|
1454
|
+
autoMode={autoMode}
|
|
1455
|
+
onAutoModeChange={handleAutoModeChange}
|
|
1456
|
+
/>
|
|
1457
|
+
);
|
|
1458
|
+
},
|
|
1459
|
+
[handleThreadReply, handleStopThread, streaming, activeParticipants, threadProjects, projectMentions, slashCommands, messages, autoMode, handleAutoModeChange, activeProcesses, activeChatRuns]
|
|
1175
1460
|
);
|
|
1176
1461
|
|
|
1177
1462
|
const toggleWorkspaceSidebar = useCallback(() => {
|
|
@@ -1298,7 +1583,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1298
1583
|
<div className="border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6">
|
|
1299
1584
|
<div className="mx-auto flex max-w-5xl items-center gap-3">
|
|
1300
1585
|
<div className="flex min-w-0 items-center flex-shrink-0">
|
|
1301
|
-
{!workspaceSidebarVisible && (
|
|
1586
|
+
{showSidebar && !workspaceSidebarVisible && (
|
|
1302
1587
|
<button
|
|
1303
1588
|
type="button"
|
|
1304
1589
|
onClick={toggleWorkspaceSidebar}
|
|
@@ -1372,33 +1657,35 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1372
1657
|
|
|
1373
1658
|
return (
|
|
1374
1659
|
<div className="flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]">
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1660
|
+
{showSidebar ? (
|
|
1661
|
+
<WorkspaceSidebar
|
|
1662
|
+
threads={threads}
|
|
1663
|
+
participants={participants}
|
|
1664
|
+
activeThreadId={activeThreadId}
|
|
1665
|
+
isLoading={threadsLoading}
|
|
1666
|
+
isRestoringActiveThread={isRestoringActiveThread}
|
|
1667
|
+
isCreating={isCreating}
|
|
1668
|
+
deletingThreadId={deletingThreadId}
|
|
1669
|
+
renamingThreadId={renamingThreadId}
|
|
1670
|
+
onSelectThread={selectThread}
|
|
1671
|
+
onCreateThread={createThread}
|
|
1672
|
+
onRenameThread={renameThread}
|
|
1673
|
+
onDeleteThread={handleDeleteThread}
|
|
1674
|
+
activeParticipantIds={activeParticipantIds}
|
|
1675
|
+
onToggleParticipantActive={handleToggleParticipantActive}
|
|
1676
|
+
visible={workspaceSidebarVisible}
|
|
1677
|
+
onToggle={toggleWorkspaceSidebar}
|
|
1678
|
+
projects={projects}
|
|
1679
|
+
onCreateProject={createProject}
|
|
1680
|
+
onUpdateProject={updateProject}
|
|
1681
|
+
onDeleteProject={deleteProject}
|
|
1682
|
+
onAddAgentToProject={addAgentToProject}
|
|
1683
|
+
onRemoveAgentFromProject={removeAgentFromProject}
|
|
1684
|
+
onReorderProjectAgents={reorderProjectAgents}
|
|
1685
|
+
onUpdateParticipant={handleUpdate}
|
|
1686
|
+
onSelectProject={handleSelectProject}
|
|
1687
|
+
/>
|
|
1688
|
+
) : null}
|
|
1402
1689
|
<div className="flex flex-col flex-1 min-w-0 relative">
|
|
1403
1690
|
{
|
|
1404
1691
|
isRestoringActiveThread ? (
|
|
@@ -1409,23 +1696,40 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1409
1696
|
<div className="flex flex-1 min-h-0 bg-transparent relative">
|
|
1410
1697
|
<div className="flex flex-col flex-1 min-w-0">
|
|
1411
1698
|
{openThreadId ? (
|
|
1412
|
-
<div className="border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6">
|
|
1699
|
+
<div className="border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6 transition-colors duration-200 shrink-0">
|
|
1413
1700
|
<div className="mx-auto flex max-w-5xl items-center gap-3 min-w-0">
|
|
1414
1701
|
<button
|
|
1415
1702
|
onClick={() => setOpenThreadId(null)}
|
|
1416
|
-
className="p-1.5 text-[var(--app-shell-muted)] hover:text-
|
|
1703
|
+
className="p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--primary)] hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0"
|
|
1417
1704
|
title="Back to main feed"
|
|
1418
1705
|
>
|
|
1419
1706
|
<ChevronLeft size={20} strokeWidth={2.25} />
|
|
1420
1707
|
</button>
|
|
1421
1708
|
<div className="flex-1 flex flex-col min-w-0">
|
|
1422
|
-
<
|
|
1423
|
-
|
|
1424
|
-
|
|
1709
|
+
<div className="flex items-center gap-2 min-w-0">
|
|
1710
|
+
<h2 className="text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0">
|
|
1711
|
+
{activeThreadTitle}
|
|
1712
|
+
</h2>
|
|
1713
|
+
{activeThreadStatus && (
|
|
1714
|
+
<span
|
|
1715
|
+
className="inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border shrink-0"
|
|
1716
|
+
style={{ borderColor: activeThreadStatus.color + "40", color: activeThreadStatus.color }}
|
|
1717
|
+
>
|
|
1718
|
+
<span className="w-1.5 h-1.5 rounded-full" style={{ backgroundColor: activeThreadStatus.color }} />
|
|
1719
|
+
{activeThreadStatus.label}
|
|
1720
|
+
</span>
|
|
1721
|
+
)}
|
|
1722
|
+
</div>
|
|
1425
1723
|
<div className="flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]">
|
|
1426
1724
|
<span className="opacity-80">{activeThreadParticipants.length} agents</span>
|
|
1427
1725
|
<span className="h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]" />
|
|
1428
1726
|
<span className="opacity-80">Updated {getTimeAgo(lastThreadUpdate)}</span>
|
|
1727
|
+
{knowledgeStatusText && (
|
|
1728
|
+
<>
|
|
1729
|
+
<span className="h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]" />
|
|
1730
|
+
<span className="opacity-80">{knowledgeStatusText}</span>
|
|
1731
|
+
</>
|
|
1732
|
+
)}
|
|
1429
1733
|
</div>
|
|
1430
1734
|
</div>
|
|
1431
1735
|
<div className="flex -space-x-1.5 flex-shrink-0">
|
|
@@ -1440,6 +1744,23 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1440
1744
|
))}
|
|
1441
1745
|
</div>
|
|
1442
1746
|
<div className="ml-auto flex items-center gap-2">
|
|
1747
|
+
<button
|
|
1748
|
+
type="button"
|
|
1749
|
+
onClick={() => void handleLearnFromDiscussion()}
|
|
1750
|
+
disabled={knowledgeButtonDisabled}
|
|
1751
|
+
title={isKnowledgeExtractionRunning ? "Learning is already running for this discussion" : "Learn from this discussion"}
|
|
1752
|
+
className={`inline-flex h-9 items-center gap-1.5 rounded-xl border px-3 text-xs font-medium transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${knowledgeButtonDisabled
|
|
1753
|
+
? "cursor-wait border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"
|
|
1754
|
+
: "border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"
|
|
1755
|
+
}`}
|
|
1756
|
+
>
|
|
1757
|
+
{knowledgeButtonDisabled ? (
|
|
1758
|
+
<LoaderCircle className="h-3.5 w-3.5 animate-spin" strokeWidth={1.75} />
|
|
1759
|
+
) : (
|
|
1760
|
+
<BookOpen className="h-3.5 w-3.5" strokeWidth={1.75} />
|
|
1761
|
+
)}
|
|
1762
|
+
<span className="hidden sm:inline">{isKnowledgeExtractionRunning ? "Learning..." : "Learn from discussion"}</span>
|
|
1763
|
+
</button>
|
|
1443
1764
|
{renderThemeToggleButton()}
|
|
1444
1765
|
<StatusIndicator />
|
|
1445
1766
|
<button
|
|
@@ -1477,10 +1798,12 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1477
1798
|
streaming={streaming}
|
|
1478
1799
|
participants={participants}
|
|
1479
1800
|
rootMessageId={openThreadId}
|
|
1801
|
+
queued={activeChatRuns.some((run) => run.rootMessageId === openThreadId && run.status === "queued")}
|
|
1480
1802
|
onClose={() => setOpenThreadId(null)}
|
|
1481
1803
|
onCopyThread={handleCopyThread}
|
|
1482
1804
|
onAddToChat={handleAddToChat}
|
|
1483
1805
|
onDeleteThreadRoot={handleDeleteThreadRoot}
|
|
1806
|
+
onDeleteMessage={handleDeleteMessage}
|
|
1484
1807
|
highlightedMessageId={highlightedMessageId || undefined}
|
|
1485
1808
|
renderReplyComposer={renderReplyComposer}
|
|
1486
1809
|
activeProcesses={activeProcesses.filter(p => ["spawning", "running"].includes(p.state) && p.threadId === openThreadId)}
|
|
@@ -1523,6 +1846,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1523
1846
|
onSend={handleSend}
|
|
1524
1847
|
onStop={handleStop}
|
|
1525
1848
|
loading={loading}
|
|
1849
|
+
activityStatus={composerActivityStatus}
|
|
1526
1850
|
participants={activeParticipants}
|
|
1527
1851
|
projects={projectMentions}
|
|
1528
1852
|
projectGroups={threadProjects}
|
|
@@ -1542,6 +1866,21 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1542
1866
|
{initialRootMessageId && (
|
|
1543
1867
|
<LogPanel logs={logs} participants={participants} onClear={() => void clearLogs(activeThreadId)} open={logsOpen} onToggle={() => setLogsOpen(false)} />
|
|
1544
1868
|
)}
|
|
1869
|
+
<ConfirmDialog
|
|
1870
|
+
isOpen={pendingDelete !== null}
|
|
1871
|
+
title={pendingDelete?.type === "thread" ? "Delete Thread" : "Delete Message"}
|
|
1872
|
+
message={
|
|
1873
|
+
pendingDelete?.type === "thread"
|
|
1874
|
+
? "This will permanently delete this thread and all of its replies. This action cannot be undone."
|
|
1875
|
+
: "This will permanently delete this message. This action cannot be undone."
|
|
1876
|
+
}
|
|
1877
|
+
preview={pendingDelete?.preview}
|
|
1878
|
+
confirmLabel="Delete"
|
|
1879
|
+
cancelLabel="Cancel"
|
|
1880
|
+
variant="danger"
|
|
1881
|
+
onConfirm={handleConfirmDelete}
|
|
1882
|
+
onCancel={handleCancelDelete}
|
|
1883
|
+
/>
|
|
1545
1884
|
</div >
|
|
1546
1885
|
);
|
|
1547
1886
|
}
|