@mndrk/agx 2.0.34 → 2.0.38
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/cloud-runtime/standalone/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/.next/required-server-files.json +0 -3
- 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_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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- 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 +4 -4
- 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 +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_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 +5 -5
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +5 -5
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +1 -1
- 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 +3 -3
- 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]/messages/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/messages/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +3 -3
- 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 +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/attachments/[id]/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/attachments/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +3 -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 +1 -1
- 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 +4 -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.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js.nft.json +1 -1
- 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 +1 -1
- 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 +3 -3
- 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 +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 +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/knowledge-notes/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +3 -3
- 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 +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 +1 -1
- 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 +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 +1 -1
- 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 +1 -1
- 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 +2 -2
- 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 +2 -2
- 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 +4 -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 +3 -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 +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/processes/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/processes/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +4 -4
- 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 +2 -2
- 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 +2 -2
- 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 +3 -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 +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/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 +3 -3
- 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 +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 +1 -1
- 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 +2 -2
- 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 +1 -1
- 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 +2 -2
- 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 +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/skills/assign/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/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 +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 +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 +4 -4
- 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 +2 -2
- 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 +3 -3
- 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 +1 -1
- 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 +3 -3
- 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 +2 -2
- 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 +2 -2
- 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 +1 -1
- 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 +4 -4
- 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 +3 -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 +3 -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 +4 -4
- 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 +4 -4
- 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 +3 -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 +1 -1
- 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 +1 -1
- 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 +3 -3
- 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 -4
- 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 +1 -1
- 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 +2 -2
- 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 +5 -5
- 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 +5 -5
- 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 +5 -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 +5 -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 +5 -5
- 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 +6 -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 -4
- 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 +3 -3
- 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 +4 -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 +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/upload/[id]/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/upload/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/upload/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/upload/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +3 -3
- 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_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 +5 -5
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +5 -5
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +1 -1
- 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_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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +4 -4
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +1 -1
- 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_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 +5 -5
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +5 -5
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +1 -1
- 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 +5 -5
- 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 +5 -5
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +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]/automations/page_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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 +5 -5
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +5 -5
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +1 -1
- 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_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 +5 -5
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +5 -5
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
- 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_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 +5 -5
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +5 -5
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/skills.rsc +5 -5
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +5 -5
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +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 +5 -5
- package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +5 -5
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +1 -1
- 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_client-reference-manifest.js +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 +5 -5
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +5 -5
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +1 -1
- 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/chunks/{[externals]__cf9f18a6._.js → [externals]__986fcdb7._.js} +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__01cd082e._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b500f1bf._.js → [root-of-the-server]__0936925d._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0c3dd73b._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0cc3f3b7._.js +18 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d4126e05._.js → [root-of-the-server]__1b0bb735._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4d865017._.js → [root-of-the-server]__1c86bf6e._.js} +6 -6
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1dce6c15._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__0bb52353._.js → [root-of-the-server]__20c58b41._.js} +18 -18
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2126c763._.js +42 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__255b11f2._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__26817611._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__277ed37d._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__294fceef._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2f06f568._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__30bd0c87._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__314d5c41._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__352dad6d._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__374cd94c._.js +42 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3785024c._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__379604d4._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3c8f1de6._.js +15 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3d0df5a8._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__0b3b6a47._.js → [root-of-the-server]__4014ed70._.js} +20 -20
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42fcb81c._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4a3cd6ac._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4a4265e0._.js +22 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c99509c2._.js → [root-of-the-server]__4bce7db7._.js} +17 -17
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c5c536d._.js +18 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4e522535._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__50c24784._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__50ddd3ce._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__529a6e1c._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__59d1cdd8._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5a1fd688._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5d359afa._.js +18 -18
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__628d686b._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__005b3c82._.js → [root-of-the-server]__644e6285._.js} +8 -8
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__65755104._.js +7 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__068b4f08._.js → [root-of-the-server]__73c20995._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__762ab29c._.js +51 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__981d92dd._.js → [root-of-the-server]__8125bbc3._.js} +20 -20
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__85275b88._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__89666394._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8c0fb154._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8f5cac13._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__91b22098._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__92924218._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__94bd7f65._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9746d1f5._.js +18 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98ce983b._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ee6511a0._.js → [root-of-the-server]__9a9fd39f._.js} +10 -10
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9ad4e385._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9b69f93e._.js +18 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a01ddd0b._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__8ac0286e._.js → [root-of-the-server]__a099c992._.js} +20 -20
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a9b949c3._.js +7 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ab7343c8._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__af7a73fd._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bd43017b._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bf6fb108._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c0a18648._.js +10 -10
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__7ee9b7b6._.js → [root-of-the-server]__c122c54a._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c4ea4921._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__8b0ab82f._.js → [root-of-the-server]__c4ed5d83._.js} +7 -7
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c695a5f2._.js +18 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c8b49077._.js +10 -10
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d57e800e._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d8b615bf._.js +34 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d9bd6334._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__543ba6c4._.js → [root-of-the-server]__da3a1ce7._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__db469f1b._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__de2a1e43._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5031f8d4._.js → [root-of-the-server]__dec3e1b7._.js} +11 -11
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f1147a4a._.js +15 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f5597fea._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f8c94cb3._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ceb02db8._.js → [root-of-the-server]__f9cff4b0._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f9f7f2df._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fa79d53f._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fb14cd4a._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a55c16a5._.js → [root-of-the-server]__fc27a898._.js} +31 -31
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcf0b40a._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ffb21023._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/_05fa3b89._.js +18 -18
- package/cloud-runtime/standalone/.next/server/chunks/_17e53c87._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_4190f170._.js +18 -18
- package/cloud-runtime/standalone/.next/server/chunks/_42e9c8d5._.js +18 -18
- package/cloud-runtime/standalone/.next/server/chunks/_5ca51127._.js +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/_5fd6af5d._.js +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/_8b9fde82._.js +20 -20
- package/cloud-runtime/standalone/.next/server/chunks/_994414cd._.js +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/_99b78daf._.js +18 -18
- package/cloud-runtime/standalone/.next/server/chunks/_affbdbb0._.js +18 -18
- package/cloud-runtime/standalone/.next/server/chunks/_d22934ab._.js +20 -20
- package/cloud-runtime/standalone/.next/server/chunks/_efc73784._.js +18 -18
- package/cloud-runtime/standalone/.next/server/chunks/lib_a5adca60._.js +15 -15
- package/cloud-runtime/standalone/.next/server/chunks/lib_check-node-version_ts_ef89bf83._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +18 -18
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +39 -39
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +39 -39
- package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_3ea4d849._.js +18 -18
- package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_b0b1a9b2._.js +19 -19
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_14067235._.js +18 -18
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_b63e2d39._.js +18 -18
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_0c5c111f._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_314f4c49._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
- package/cloud-runtime/standalone/.next/server/instrumentation.js +1 -1
- package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
- 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/{47f22a56011af8d3.js → 5c0819dcc4bfec85.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{25c9ac515cfe5635.js → 9bde80696400d2ff.js} +2 -2
- package/cloud-runtime/standalone/.next/static/chunks/ac9a7d8cf17b5d75.js +1 -0
- package/cloud-runtime/standalone/app/api/agents/[id]/messages/route.ts +4 -3
- package/cloud-runtime/standalone/app/api/agents/[id]/profile/route.ts +1 -1
- package/cloud-runtime/standalone/app/api/automations/route.ts +1 -1
- package/cloud-runtime/standalone/app/api/chat/route.ts +2 -2
- package/cloud-runtime/standalone/app/api/memories/route.ts +2 -2
- package/cloud-runtime/standalone/app/api/prompt-jobs/[id]/route.ts +9 -1
- package/cloud-runtime/standalone/app/api/system/db-status/route.ts +12 -11
- package/cloud-runtime/standalone/components/PromptJobBoard.tsx +12 -1
- package/cloud-runtime/standalone/components/errors/StartupGuard.tsx +1 -1
- package/cloud-runtime/standalone/components/errors/StartupGuardWrapper.tsx +1 -1
- package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +1 -1
- package/cloud-runtime/standalone/hooks/usePromptJobs.ts +9 -18
- package/cloud-runtime/standalone/instrumentation.ts +1 -0
- package/cloud-runtime/standalone/lib/agent-process-registry.ts +10 -9
- package/cloud-runtime/standalone/lib/attachment-store.ts +6 -5
- package/cloud-runtime/standalone/lib/check-node-version.ts +12 -0
- package/cloud-runtime/standalone/lib/db-adapter.interface.ts +1 -1
- package/cloud-runtime/standalone/lib/history-store.ts +46 -46
- package/cloud-runtime/standalone/lib/knowledge-store.ts +2 -1
- package/cloud-runtime/standalone/lib/participants-store.ts +9 -8
- package/cloud-runtime/standalone/lib/queue/sqlite-adapter.ts +12 -11
- package/cloud-runtime/standalone/lib/repo-knowledge.ts +6 -5
- package/cloud-runtime/standalone/lib/sqlite-compat.ts +75 -0
- package/cloud-runtime/standalone/lib/sqlite-query-adapter.ts +15 -14
- package/cloud-runtime/standalone/lib/sqlite_writer.ts +10 -9
- package/cloud-runtime/standalone/lib/startup.ts +18 -19
- package/cloud-runtime/standalone/lib/thread-knowledge-runs.ts +2 -1
- package/cloud-runtime/standalone/lib/workspaces-to-projects-migration.ts +19 -18
- package/cloud-runtime/standalone/mcp/package-lock.json +3 -147
- package/cloud-runtime/standalone/mcp/package.json +1 -1
- package/cloud-runtime/standalone/mcp/src/check-node-version.ts +8 -0
- package/cloud-runtime/standalone/mcp/src/db.ts +4 -5
- package/cloud-runtime/standalone/mcp/src/index.ts +1 -0
- package/cloud-runtime/standalone/next.config.ts +0 -1
- package/cloud-runtime/standalone/package-lock.json +9 -413
- package/cloud-runtime/standalone/package.json +3 -2
- package/cloud-runtime/standalone/scripts/bench-queue.ts +5 -4
- package/cloud-runtime/standalone/server.js +1 -1
- package/cloud-runtime/standalone/src/db/backup.ts +12 -11
- package/cloud-runtime/standalone/src/db/checks.ts +3 -3
- package/cloud-runtime/standalone/src/db/init.ts +13 -12
- package/cloud-runtime/standalone/src/graph/schedule-runner.ts +1 -1
- package/cloud-runtime/standalone/src/graph/store.ts +14 -13
- package/cloud-runtime/standalone/src/prompt-scheduler/get-store.ts +19 -3
- package/cloud-runtime/standalone/src/prompt-scheduler/store.ts +9 -9
- package/cloud-runtime/standalone/test/adapters/sqlite.ts +7 -6
- package/cloud-runtime/standalone/worker/index.js +110 -822
- package/cloud-runtime/standalone/worker/index.ts +1 -0
- package/lib/cli/onboarding.js +3 -3
- package/lib/storage/db.js +12 -8
- package/package.json +5 -2
- package/scripts/postinstall.js +0 -68
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__017f03c3._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__056d94e4._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__06634853._.js +0 -80
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0f580808._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__164a80ba._.js +0 -18
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__16dd1fd7._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1a8e0957._.js +0 -7
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1cc2fe7f._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__23ad03bf._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__241a8bcf._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__29419d66._.js +0 -42
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2948f712._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__32ef6623._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__34cb1b98._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3c1567b6._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3c37453e._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3faa64cd._.js +0 -4
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4041bb93._.js +0 -18
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42497c7b._.js +0 -80
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__49c03d66._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4a8d14c1._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c50f159._.js +0 -18
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c861686._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__588b6ab0._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__596d0e81._.js +0 -42
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__59b5d4e5._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__61c99680._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__64712846._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__707c32af._.js +0 -15
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7370bb86._.js +0 -8
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__749af50f._.js +0 -8
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__74b97f0a._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__75cedecf._.js +0 -6
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7e79d86a._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8b461158._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__918f0106._.js +0 -80
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__922eb7cd._.js +0 -80
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__927cfc20._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__952af4b3._.js +0 -22
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98b352f7._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a44db634._.js +0 -8
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a67cd108._.js +0 -51
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ab2bf82d._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__abb032c1._.js +0 -34
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b4931ee1._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b4d05543._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b707e701._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b9e41767._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__be4ad4b5._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bf5803eb._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ccd4846e._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d7e839a8._.js +0 -18
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d908c9ea._.js +0 -8
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__da20a0aa._.js +0 -18
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__dcdeee3d._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e069c0a3._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e1e51c02._.js +0 -7
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e3a4fd97._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e4a87984._.js +0 -15
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ef82dda1._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fa0ebee3._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fee58db1._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +0 -3
- package/cloud-runtime/standalone/.next/static/chunks/d73f1cc3ebc9993b.js +0 -1
- package/cloud-runtime/standalone/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/database.js +0 -90
- package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/index.js +0 -3
- package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/aggregate.js +0 -43
- package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/backup.js +0 -67
- package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/function.js +0 -31
- package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/inspect.js +0 -7
- package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/pragma.js +0 -12
- package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/serialize.js +0 -16
- package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/table.js +0 -189
- package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/transaction.js +0 -78
- package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/wrappers.js +0 -54
- package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/sqlite-error.js +0 -20
- package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/util.js +0 -12
- package/cloud-runtime/standalone/node_modules/better-sqlite3/package.json +0 -59
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/build/Release/better_sqlite3.node +0 -0
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/database.js +0 -90
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/index.js +0 -3
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/aggregate.js +0 -43
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/backup.js +0 -67
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/function.js +0 -31
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/inspect.js +0 -7
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/pragma.js +0 -12
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/serialize.js +0 -16
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/table.js +0 -189
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/transaction.js +0 -78
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/wrappers.js +0 -54
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/sqlite-error.js +0 -20
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/util.js +0 -12
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/package.json +0 -59
- package/cloud-runtime/standalone/node_modules/bindings/bindings.js +0 -221
- package/cloud-runtime/standalone/node_modules/bindings/package.json +0 -28
- package/cloud-runtime/standalone/node_modules/file-uri-to-path/index.js +0 -66
- package/cloud-runtime/standalone/node_modules/file-uri-to-path/package.json +0 -32
- package/cloud-runtime/standalone/scripts/fix-turbopack-externals.mjs +0 -87
- /package/cloud-runtime/standalone/.next/static/{G0Hrt7JKBM1EtMPT0lUIr → V5ruh627UpcC-LTWDgYk8}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/.next/static/{G0Hrt7JKBM1EtMPT0lUIr → V5ruh627UpcC-LTWDgYk8}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/.next/static/{G0Hrt7JKBM1EtMPT0lUIr → V5ruh627UpcC-LTWDgYk8}/_ssgManifest.js +0 -0
|
@@ -1261,7 +1261,7 @@ export default function PromptJobBoard({ projectId }: { projectId?: string } = {
|
|
|
1261
1261
|
<div className="flex flex-col sm:flex-row justify-between items-start sm:items-end gap-4 mb-6">
|
|
1262
1262
|
<div>
|
|
1263
1263
|
<h1 className="text-2xl font-bold tracking-tight mb-1">
|
|
1264
|
-
|
|
1264
|
+
Scheduled Tasks
|
|
1265
1265
|
</h1>
|
|
1266
1266
|
<p className="text-sm text-[var(--muted-foreground)]">
|
|
1267
1267
|
{counts.active} active job{counts.active !== 1 ? "s" : ""}{" "}
|
|
@@ -1347,6 +1347,17 @@ export default function PromptJobBoard({ projectId }: { projectId?: string } = {
|
|
|
1347
1347
|
job.state === 'active' ? 'translate-x-[11px]' : 'translate-x-[1.5px]'
|
|
1348
1348
|
}`} />
|
|
1349
1349
|
</button>
|
|
1350
|
+
<button
|
|
1351
|
+
onClick={(e) => {
|
|
1352
|
+
e.stopPropagation();
|
|
1353
|
+
setEditingJob(job);
|
|
1354
|
+
setShowCreate(true);
|
|
1355
|
+
}}
|
|
1356
|
+
title="Edit"
|
|
1357
|
+
className="p-1.5 rounded-md border border-[var(--card-border)] text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:border-[var(--muted-foreground)] transition-colors"
|
|
1358
|
+
>
|
|
1359
|
+
<Pencil size={12} />
|
|
1360
|
+
</button>
|
|
1350
1361
|
<button
|
|
1351
1362
|
onClick={(e) => handleRunNow(job.id, e)}
|
|
1352
1363
|
disabled={isBusy}
|
|
@@ -28,7 +28,7 @@ function mapCheckToError(check: { label: string; value: string }): StartupError
|
|
|
28
28
|
|
|
29
29
|
const fixes: Record<string, string> = {
|
|
30
30
|
"SQLite Version":
|
|
31
|
-
"
|
|
31
|
+
"Ensure Node.js >= 22.16 is installed (node:sqlite requires it)",
|
|
32
32
|
journal_mode:
|
|
33
33
|
"Ensure the database is on a local filesystem with no exclusive locks",
|
|
34
34
|
foreign_keys: "PRAGMA foreign_keys = ON",
|
|
@@ -27,7 +27,7 @@ function mapCheckToError(check: { label: string; value: string }): StartupError
|
|
|
27
27
|
const kind = kindMap[check.label] || "pragma_error";
|
|
28
28
|
|
|
29
29
|
const fixes: Record<string, string> = {
|
|
30
|
-
"SQLite Version": "
|
|
30
|
+
"SQLite Version": "Ensure Node.js >= 22.16 is installed (node:sqlite requires it)",
|
|
31
31
|
journal_mode: "Ensure the database is on a local filesystem with no exclusive locks",
|
|
32
32
|
foreign_keys: "PRAGMA foreign_keys = ON",
|
|
33
33
|
"JSON1 Extension": "Rebuild SQLite with JSON1 enabled, or use a system SQLite that includes it",
|
|
@@ -481,7 +481,7 @@ export function WorkspaceSidebar({
|
|
|
481
481
|
aria-current={isActiveProjectAutomations ? "page" : undefined}
|
|
482
482
|
>
|
|
483
483
|
<Zap size={12} className="flex-shrink-0 text-[var(--muted-foreground)]" />
|
|
484
|
-
<span className="workspace-sidebar__workspace-title text-xs">
|
|
484
|
+
<span className="workspace-sidebar__workspace-title text-xs">Scheduled Tasks</span>
|
|
485
485
|
</Link>
|
|
486
486
|
</div>
|
|
487
487
|
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { useState, useEffect, useCallback } from 'react';
|
|
3
|
+
import { useState, useEffect, useCallback, useRef } from 'react';
|
|
4
4
|
import type { PromptJob, PromptRun } from '@/src/prompt-scheduler/types';
|
|
5
5
|
|
|
6
6
|
export function usePromptJobs(projectId?: string) {
|
|
7
7
|
const [jobs, setJobs] = useState<PromptJob[]>([]);
|
|
8
8
|
const [loading, setLoading] = useState(true);
|
|
9
9
|
const [error, setError] = useState<string | null>(null);
|
|
10
|
+
const initialFetchDone = useRef(false);
|
|
10
11
|
|
|
11
12
|
const fetchJobs = useCallback(async () => {
|
|
12
13
|
try {
|
|
13
|
-
setLoading(true);
|
|
14
|
+
if (!initialFetchDone.current) setLoading(true);
|
|
14
15
|
const params = projectId ? `?projectId=${encodeURIComponent(projectId)}` : '';
|
|
15
16
|
const res = await fetch(`/api/prompt-jobs${params}`);
|
|
16
17
|
if (!res.ok) throw new Error(`Failed to fetch: ${res.status}`);
|
|
@@ -21,10 +22,12 @@ export function usePromptJobs(projectId?: string) {
|
|
|
21
22
|
setError(err instanceof Error ? err.message : String(err));
|
|
22
23
|
} finally {
|
|
23
24
|
setLoading(false);
|
|
25
|
+
initialFetchDone.current = true;
|
|
24
26
|
}
|
|
25
27
|
}, [projectId]);
|
|
26
28
|
|
|
27
29
|
useEffect(() => {
|
|
30
|
+
initialFetchDone.current = false;
|
|
28
31
|
fetchJobs();
|
|
29
32
|
const interval = setInterval(fetchJobs, 10_000);
|
|
30
33
|
return () => clearInterval(interval);
|
|
@@ -52,9 +55,7 @@ export function usePromptJobs(projectId?: string) {
|
|
|
52
55
|
}, [fetchJobs]);
|
|
53
56
|
|
|
54
57
|
const deleteJob = useCallback(async (id: string) => {
|
|
55
|
-
const res = await fetch(`/api/prompt-jobs/${id}`, {
|
|
56
|
-
method: 'DELETE',
|
|
57
|
-
});
|
|
58
|
+
const res = await fetch(`/api/prompt-jobs/${id}`, { method: 'DELETE' });
|
|
58
59
|
if (res.ok) await fetchJobs();
|
|
59
60
|
return res.ok;
|
|
60
61
|
}, [fetchJobs]);
|
|
@@ -81,9 +82,7 @@ export function usePromptJobs(projectId?: string) {
|
|
|
81
82
|
}, [fetchJobs]);
|
|
82
83
|
|
|
83
84
|
const cancelRun = useCallback(async (id: string) => {
|
|
84
|
-
const res = await fetch(`/api/prompt-jobs/${id}/cancel`, {
|
|
85
|
-
method: 'POST',
|
|
86
|
-
});
|
|
85
|
+
const res = await fetch(`/api/prompt-jobs/${id}/cancel`, { method: 'POST' });
|
|
87
86
|
if (res.ok) await fetchJobs();
|
|
88
87
|
return res.ok;
|
|
89
88
|
}, [fetchJobs]);
|
|
@@ -96,16 +95,8 @@ export function usePromptJobs(projectId?: string) {
|
|
|
96
95
|
}, []);
|
|
97
96
|
|
|
98
97
|
return {
|
|
99
|
-
jobs,
|
|
100
|
-
loading,
|
|
101
|
-
error,
|
|
98
|
+
jobs, loading, error,
|
|
102
99
|
refresh: fetchJobs,
|
|
103
|
-
createJob,
|
|
104
|
-
updateJob,
|
|
105
|
-
deleteJob,
|
|
106
|
-
toggleJob,
|
|
107
|
-
runNow,
|
|
108
|
-
cancelRun,
|
|
109
|
-
fetchRuns,
|
|
100
|
+
createJob, updateJob, deleteJob, toggleJob, runNow, cancelRun, fetchRuns,
|
|
110
101
|
};
|
|
111
102
|
}
|
|
@@ -2,6 +2,7 @@ const SCHEDULE_POLL_INTERVAL_MS = 15_000;
|
|
|
2
2
|
|
|
3
3
|
export async function register() {
|
|
4
4
|
if (process.env.NEXT_RUNTIME === 'nodejs') {
|
|
5
|
+
await import("./lib/check-node-version");
|
|
5
6
|
const { getQueue, QUEUE_NAMES } = await import('@/lib/queue/boss');
|
|
6
7
|
const { taskProcessor } = await import('@/lib/orchestrator/processor');
|
|
7
8
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { DatabaseSync } from "node:sqlite";
|
|
2
|
+
import { pragmaSet } from "./sqlite-compat";
|
|
2
3
|
import path from "path";
|
|
3
4
|
import os from "os";
|
|
4
5
|
import { mkdirSync, existsSync } from "fs";
|
|
@@ -52,10 +53,10 @@ function toEntry(row: Row): AgentProcessEntry {
|
|
|
52
53
|
};
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
function getDb():
|
|
56
|
+
function getDb(): DatabaseSync {
|
|
56
57
|
mkdirSync(HISTORY_DIR, { recursive: true });
|
|
57
|
-
const db = new
|
|
58
|
-
db
|
|
58
|
+
const db = new DatabaseSync(DB_PATH);
|
|
59
|
+
pragmaSet(db, "journal_mode = WAL");
|
|
59
60
|
db.exec(`
|
|
60
61
|
CREATE TABLE IF NOT EXISTS agent_processes (
|
|
61
62
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
@@ -85,7 +86,7 @@ function getDb(): Database.Database {
|
|
|
85
86
|
return db;
|
|
86
87
|
}
|
|
87
88
|
|
|
88
|
-
function withDb<T>(fn: (db:
|
|
89
|
+
function withDb<T>(fn: (db: DatabaseSync) => T): T {
|
|
89
90
|
const db = getDb();
|
|
90
91
|
try {
|
|
91
92
|
return fn(db);
|
|
@@ -176,7 +177,7 @@ export function getByThread(threadId: string): AgentProcessEntry[] {
|
|
|
176
177
|
return withDb((db) => {
|
|
177
178
|
const rows = db
|
|
178
179
|
.prepare("SELECT * FROM agent_processes WHERE thread_id = ?")
|
|
179
|
-
.all(threadId) as Row[];
|
|
180
|
+
.all(threadId) as unknown as Row[];
|
|
180
181
|
return rows.map(toEntry);
|
|
181
182
|
});
|
|
182
183
|
}
|
|
@@ -185,14 +186,14 @@ export function getByWorkspace(workspaceId: string): AgentProcessEntry[] {
|
|
|
185
186
|
return withDb((db) => {
|
|
186
187
|
const rows = db
|
|
187
188
|
.prepare("SELECT * FROM agent_processes WHERE workspace_id = ?")
|
|
188
|
-
.all(workspaceId) as Row[];
|
|
189
|
+
.all(workspaceId) as unknown as Row[];
|
|
189
190
|
return rows.map(toEntry);
|
|
190
191
|
});
|
|
191
192
|
}
|
|
192
193
|
|
|
193
194
|
export function getAll(): AgentProcessEntry[] {
|
|
194
195
|
return withDb((db) => {
|
|
195
|
-
const rows = db.prepare("SELECT * FROM agent_processes").all() as Row[];
|
|
196
|
+
const rows = db.prepare("SELECT * FROM agent_processes").all() as unknown as Row[];
|
|
196
197
|
return rows.map(toEntry);
|
|
197
198
|
});
|
|
198
199
|
}
|
|
@@ -207,7 +208,7 @@ export function getAllEnriched(): EnrichedProcessEntry[] {
|
|
|
207
208
|
SELECT ap.*, substr(m.content, 1, 120) AS thread_title
|
|
208
209
|
FROM agent_processes ap
|
|
209
210
|
LEFT JOIN messages m ON m.id = ap.thread_id AND m.thread_id = ap.workspace_id
|
|
210
|
-
`).all() as (Row & { thread_title: string | null })[];
|
|
211
|
+
`).all() as unknown as (Row & { thread_title: string | null })[];
|
|
211
212
|
return rows.map((r) => ({ ...toEntry(r), threadTitle: r.thread_title }));
|
|
212
213
|
});
|
|
213
214
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { DatabaseSync } from "node:sqlite";
|
|
2
|
+
import { pragmaSet } from "./sqlite-compat";
|
|
2
3
|
import { promises as fs } from "fs";
|
|
3
4
|
import path from "path";
|
|
4
5
|
import os from "os";
|
|
@@ -10,13 +11,13 @@ const HISTORY_DIR =
|
|
|
10
11
|
const DB_PATH = path.join(HISTORY_DIR, "history.sqlite");
|
|
11
12
|
const UPLOADS_DIR = path.join(HISTORY_DIR, "uploads");
|
|
12
13
|
|
|
13
|
-
function getDb():
|
|
14
|
-
const db = new
|
|
15
|
-
db
|
|
14
|
+
function getDb(): DatabaseSync {
|
|
15
|
+
const db = new DatabaseSync(DB_PATH);
|
|
16
|
+
pragmaSet(db, "journal_mode = WAL");
|
|
16
17
|
return db;
|
|
17
18
|
}
|
|
18
19
|
|
|
19
|
-
export function initAttachmentsTable(db:
|
|
20
|
+
export function initAttachmentsTable(db: DatabaseSync): void {
|
|
20
21
|
db.exec(`
|
|
21
22
|
CREATE TABLE IF NOT EXISTS attachments (
|
|
22
23
|
id TEXT PRIMARY KEY,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
|
|
3
|
+
if (typeof process !== "undefined" && process.versions?.node) {
|
|
4
|
+
const [major, minor] = process.versions.node.split(".").map(Number);
|
|
5
|
+
if (major < 22 || (major === 22 && minor < 16)) {
|
|
6
|
+
console.error(
|
|
7
|
+
`agx-cloud requires Node.js >= 22.16.0 (found ${process.version}). ` +
|
|
8
|
+
`node:sqlite is not available on older versions.`
|
|
9
|
+
);
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -87,7 +87,7 @@ import type {
|
|
|
87
87
|
|
|
88
88
|
/**
|
|
89
89
|
* Opaque client handle passed into transaction callbacks.
|
|
90
|
-
* Drivers supply their own concrete type (e.g. pg PoolClient,
|
|
90
|
+
* Drivers supply their own concrete type (e.g. pg PoolClient, node:sqlite DatabaseSync).
|
|
91
91
|
*/
|
|
92
92
|
export type TransactionClient = unknown;
|
|
93
93
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { DatabaseSync, type SQLInputValue } from "node:sqlite";
|
|
2
|
+
import { pragmaAll, pragmaSet, transaction, transactionFn } from "./sqlite-compat";
|
|
2
3
|
import { promises as fs } from "fs";
|
|
3
4
|
import path from "path";
|
|
4
5
|
import os from "os";
|
|
@@ -218,7 +219,7 @@ export interface ThreadStatusSnapshot {
|
|
|
218
219
|
lastUpdatedAt: number | null;
|
|
219
220
|
}
|
|
220
221
|
|
|
221
|
-
function hasSqliteObject(db:
|
|
222
|
+
function hasSqliteObject(db: DatabaseSync, type: "table" | "trigger", name: string): boolean {
|
|
222
223
|
const row = db
|
|
223
224
|
.prepare(`SELECT 1 FROM sqlite_master WHERE type = ? AND name = ? LIMIT 1`)
|
|
224
225
|
.get(type, name);
|
|
@@ -235,7 +236,7 @@ function isPidAlive(pid: number | null | undefined): boolean {
|
|
|
235
236
|
}
|
|
236
237
|
}
|
|
237
238
|
|
|
238
|
-
function initializeMessageSearch(db:
|
|
239
|
+
function initializeMessageSearch(db: DatabaseSync): void {
|
|
239
240
|
const hasFtsTable = hasSqliteObject(db, "table", "messages_fts");
|
|
240
241
|
db.exec(`
|
|
241
242
|
CREATE VIRTUAL TABLE IF NOT EXISTS messages_fts USING fts5(
|
|
@@ -272,13 +273,13 @@ function initializeMessageSearch(db: Database.Database): void {
|
|
|
272
273
|
}
|
|
273
274
|
}
|
|
274
275
|
|
|
275
|
-
function isThreadScopedTable(db:
|
|
276
|
-
const columns = db
|
|
276
|
+
function isThreadScopedTable(db: DatabaseSync, tableName: string): boolean {
|
|
277
|
+
const columns = pragmaAll(db, `table_info(${tableName})`) as Array<{ name: string }>;
|
|
277
278
|
return columns.some((column) => column.name === "thread_id");
|
|
278
279
|
}
|
|
279
280
|
|
|
280
|
-
function migrateThreadReplyColumns(db:
|
|
281
|
-
const columns = db
|
|
281
|
+
function migrateThreadReplyColumns(db: DatabaseSync): void {
|
|
282
|
+
const columns = pragmaAll(db, `table_info(messages)`) as Array<{ name: string }>;
|
|
282
283
|
const colNames = new Set(columns.map((c) => c.name));
|
|
283
284
|
if (!colNames.has("root_message_id")) {
|
|
284
285
|
db.exec(`
|
|
@@ -290,8 +291,8 @@ function migrateThreadReplyColumns(db: Database.Database): void {
|
|
|
290
291
|
}
|
|
291
292
|
}
|
|
292
293
|
|
|
293
|
-
function migrateThreadStatusColumns(db:
|
|
294
|
-
const columns = db
|
|
294
|
+
function migrateThreadStatusColumns(db: DatabaseSync): void {
|
|
295
|
+
const columns = pragmaAll(db, `table_info(messages)`) as Array<{ name: string }>;
|
|
295
296
|
const colNames = new Set(columns.map((c) => c.name));
|
|
296
297
|
if (!colNames.has("thread_status")) {
|
|
297
298
|
db.exec(`
|
|
@@ -301,8 +302,8 @@ function migrateThreadStatusColumns(db: Database.Database): void {
|
|
|
301
302
|
}
|
|
302
303
|
}
|
|
303
304
|
|
|
304
|
-
function migrateReactionHostPidColumn(db:
|
|
305
|
-
const columns = db
|
|
305
|
+
function migrateReactionHostPidColumn(db: DatabaseSync): void {
|
|
306
|
+
const columns = pragmaAll(db, `table_info(message_reactions)`) as Array<{ name: string }>;
|
|
306
307
|
const colNames = new Set(columns.map((c) => c.name));
|
|
307
308
|
if (!colNames.has("host_pid")) {
|
|
308
309
|
db.exec(`ALTER TABLE message_reactions ADD COLUMN host_pid INTEGER`);
|
|
@@ -312,8 +313,8 @@ function migrateReactionHostPidColumn(db: Database.Database): void {
|
|
|
312
313
|
}
|
|
313
314
|
}
|
|
314
315
|
|
|
315
|
-
function migrateLogsToAgentProcessId(db:
|
|
316
|
-
const columns = db
|
|
316
|
+
function migrateLogsToAgentProcessId(db: DatabaseSync): void {
|
|
317
|
+
const columns = pragmaAll(db, `table_info(logs)`) as Array<{ name: string }>;
|
|
317
318
|
const colNames = new Set(columns.map((c) => c.name));
|
|
318
319
|
// Already migrated if agent_process_id exists
|
|
319
320
|
if (colNames.has("agent_process_id")) return;
|
|
@@ -331,8 +332,8 @@ function migrateLogsToAgentProcessId(db: Database.Database): void {
|
|
|
331
332
|
`);
|
|
332
333
|
}
|
|
333
334
|
|
|
334
|
-
function migrateAgentProcessesAddId(db:
|
|
335
|
-
const columns = db
|
|
335
|
+
function migrateAgentProcessesAddId(db: DatabaseSync): void {
|
|
336
|
+
const columns = pragmaAll(db, `table_info(agent_processes)`) as Array<{ name: string }>;
|
|
336
337
|
if (columns.length === 0) return; // table doesn't exist yet, DDL will create it
|
|
337
338
|
const colNames = new Set(columns.map((c) => c.name));
|
|
338
339
|
if (colNames.has("id")) return; // already has id column
|
|
@@ -416,7 +417,7 @@ function toChatRunStepRecord(row: ChatRunStepRow): ChatRunStepRecord {
|
|
|
416
417
|
};
|
|
417
418
|
}
|
|
418
419
|
|
|
419
|
-
function migrateLegacyTables(db:
|
|
420
|
+
function migrateLegacyTables(db: DatabaseSync): void {
|
|
420
421
|
if (!isThreadScopedTable(db, "messages")) {
|
|
421
422
|
db.exec(`
|
|
422
423
|
ALTER TABLE messages RENAME TO messages_legacy;
|
|
@@ -462,10 +463,10 @@ function migrateLegacyTables(db: Database.Database): void {
|
|
|
462
463
|
migrateLogsToAgentProcessId(db);
|
|
463
464
|
}
|
|
464
465
|
|
|
465
|
-
const withDatabase = async <T>(run: (db:
|
|
466
|
+
const withDatabase = async <T>(run: (db: DatabaseSync) => T): Promise<T> => {
|
|
466
467
|
await fs.mkdir(HISTORY_DIR, { recursive: true });
|
|
467
|
-
const db = new
|
|
468
|
-
db
|
|
468
|
+
const db = new DatabaseSync(DB_PATH);
|
|
469
|
+
pragmaSet(db, "journal_mode = WAL");
|
|
469
470
|
try {
|
|
470
471
|
db.exec(`
|
|
471
472
|
CREATE TABLE IF NOT EXISTS messages (
|
|
@@ -611,7 +612,7 @@ function aggregateReactionRows(rows: ReactionRow[]): Map<string, MessageReaction
|
|
|
611
612
|
}
|
|
612
613
|
|
|
613
614
|
function loadMessageReactions(
|
|
614
|
-
db:
|
|
615
|
+
db: DatabaseSync,
|
|
615
616
|
threadId: string,
|
|
616
617
|
messageIds?: string[]
|
|
617
618
|
): Map<string, MessageReaction[]> {
|
|
@@ -626,7 +627,7 @@ function loadMessageReactions(
|
|
|
626
627
|
WHERE thread_id = ? AND message_id IN (${placeholders})
|
|
627
628
|
ORDER BY updated_at ASC`
|
|
628
629
|
)
|
|
629
|
-
.all(threadId, ...messageIds) as ReactionRow[];
|
|
630
|
+
.all(threadId, ...messageIds) as unknown as ReactionRow[];
|
|
630
631
|
return aggregateReactionRows(rows);
|
|
631
632
|
}
|
|
632
633
|
|
|
@@ -637,7 +638,7 @@ function loadMessageReactions(
|
|
|
637
638
|
WHERE thread_id = ?
|
|
638
639
|
ORDER BY updated_at ASC`
|
|
639
640
|
)
|
|
640
|
-
.all(threadId) as ReactionRow[];
|
|
641
|
+
.all(threadId) as unknown as ReactionRow[];
|
|
641
642
|
return aggregateReactionRows(rows);
|
|
642
643
|
}
|
|
643
644
|
|
|
@@ -769,7 +770,7 @@ export async function listRootMessages(options?: {
|
|
|
769
770
|
|
|
770
771
|
const countRow = db
|
|
771
772
|
.prepare(`SELECT COUNT(*) as cnt FROM messages m WHERE ${whereClause}`)
|
|
772
|
-
.get(...(params.length ? [params] : []).flat()) as { cnt: number };
|
|
773
|
+
.get(...(params.length ? [params] : []).flat().map(v => v as SQLInputValue)) as { cnt: number };
|
|
773
774
|
|
|
774
775
|
const rows = db
|
|
775
776
|
.prepare(
|
|
@@ -782,7 +783,7 @@ export async function listRootMessages(options?: {
|
|
|
782
783
|
ORDER BY last_activity DESC
|
|
783
784
|
LIMIT ? OFFSET ?`
|
|
784
785
|
)
|
|
785
|
-
.all(...params, limit, offset) as RootMessageRow[];
|
|
786
|
+
.all(...params.map(v => v as SQLInputValue), limit, offset) as unknown as RootMessageRow[];
|
|
786
787
|
|
|
787
788
|
return { rows, total: countRow.cnt };
|
|
788
789
|
});
|
|
@@ -840,7 +841,7 @@ export async function loadHistory(threadId: string, since?: number): Promise<Gro
|
|
|
840
841
|
ORDER BY timestamp ASC`;
|
|
841
842
|
const rows = (since != null
|
|
842
843
|
? db.prepare(query).all(normalizedThreadId, since)
|
|
843
|
-
: db.prepare(query).all(normalizedThreadId)) as MessageRow[];
|
|
844
|
+
: db.prepare(query).all(normalizedThreadId)) as unknown as MessageRow[];
|
|
844
845
|
const reactionMap = loadMessageReactions(
|
|
845
846
|
db,
|
|
846
847
|
normalizedThreadId,
|
|
@@ -919,7 +920,7 @@ export async function getThreadStatusSnapshot(
|
|
|
919
920
|
WHERE thread_id = ? AND id = ?
|
|
920
921
|
LIMIT 1`
|
|
921
922
|
)
|
|
922
|
-
.get(scopedThreadId, scopedRootMessageId) as MessageRow | undefined;
|
|
923
|
+
.get(scopedThreadId, scopedRootMessageId) as unknown as MessageRow | undefined;
|
|
923
924
|
|
|
924
925
|
if (!rootCandidate) {
|
|
925
926
|
return {
|
|
@@ -1036,7 +1037,7 @@ export async function getThreadStatusSnapshot(
|
|
|
1036
1037
|
last_activity = ?
|
|
1037
1038
|
WHERE id = ?`
|
|
1038
1039
|
);
|
|
1039
|
-
const markManyStale = db
|
|
1040
|
+
const markManyStale = transactionFn(db, (ids: number[]) => {
|
|
1040
1041
|
for (const id of ids) {
|
|
1041
1042
|
markStale.run(now, id);
|
|
1042
1043
|
}
|
|
@@ -1142,7 +1143,7 @@ export async function saveMessages(threadId: string, messages: GroupMessage[]):
|
|
|
1142
1143
|
`INSERT OR REPLACE INTO messages (thread_id, id, role, participant_id, content, timestamp, root_message_id, parent_message_id, depth, thread_status, outcome_note)
|
|
1143
1144
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
|
1144
1145
|
);
|
|
1145
|
-
const insertMany = db
|
|
1146
|
+
const insertMany = transactionFn(db, (msgs: GroupMessage[]) => {
|
|
1146
1147
|
for (const m of msgs) {
|
|
1147
1148
|
stmt.run(normalizedThreadId, m.id, m.role, m.participantId, m.content, m.timestamp, m.rootMessageId ?? null, m.parentMessageId ?? null, m.depth ?? 0, m.threadStatus ?? null, m.outcomeNote ?? null);
|
|
1148
1149
|
}
|
|
@@ -1182,7 +1183,7 @@ export async function createChatRun(input: {
|
|
|
1182
1183
|
now
|
|
1183
1184
|
);
|
|
1184
1185
|
|
|
1185
|
-
const row = db.prepare("SELECT * FROM chat_runs WHERE id = ? LIMIT 1").get(input.id) as ChatRunRow | undefined;
|
|
1186
|
+
const row = db.prepare("SELECT * FROM chat_runs WHERE id = ? LIMIT 1").get(input.id) as unknown as ChatRunRow | undefined;
|
|
1186
1187
|
if (!row) {
|
|
1187
1188
|
throw new Error(`Failed to create chat run ${input.id}`);
|
|
1188
1189
|
}
|
|
@@ -1221,14 +1222,14 @@ export async function sweepStaleChatRuns(input?: {
|
|
|
1221
1222
|
)
|
|
1222
1223
|
.run(now, now, ...params);
|
|
1223
1224
|
|
|
1224
|
-
return result.changes;
|
|
1225
|
+
return Number(result.changes);
|
|
1225
1226
|
});
|
|
1226
1227
|
}
|
|
1227
1228
|
|
|
1228
1229
|
export async function getChatRun(chatRunId: string): Promise<ChatRunRecord | null> {
|
|
1229
1230
|
await sweepStaleChatRuns();
|
|
1230
1231
|
return withDatabase((db) => {
|
|
1231
|
-
const row = db.prepare("SELECT * FROM chat_runs WHERE id = ? LIMIT 1").get(chatRunId) as ChatRunRow | undefined;
|
|
1232
|
+
const row = db.prepare("SELECT * FROM chat_runs WHERE id = ? LIMIT 1").get(chatRunId) as unknown as ChatRunRow | undefined;
|
|
1232
1233
|
return row ? toChatRunRecord(row) : null;
|
|
1233
1234
|
});
|
|
1234
1235
|
}
|
|
@@ -1260,7 +1261,7 @@ export async function listChatRuns(input: {
|
|
|
1260
1261
|
const where = clauses.length > 0 ? `WHERE ${clauses.join(" AND ")}` : "";
|
|
1261
1262
|
const rows = db
|
|
1262
1263
|
.prepare(`SELECT * FROM chat_runs ${where} ORDER BY updated_at DESC LIMIT ?`)
|
|
1263
|
-
.all(...params, limit) as ChatRunRow[];
|
|
1264
|
+
.all(...params, limit) as unknown as ChatRunRow[];
|
|
1264
1265
|
return rows.map(toChatRunRecord);
|
|
1265
1266
|
});
|
|
1266
1267
|
}
|
|
@@ -1311,7 +1312,7 @@ export async function updateChatRun(input: {
|
|
|
1311
1312
|
params.push(input.id);
|
|
1312
1313
|
db.prepare(`UPDATE chat_runs SET ${updates.join(", ")} WHERE id = ?`).run(...params);
|
|
1313
1314
|
|
|
1314
|
-
const row = db.prepare("SELECT * FROM chat_runs WHERE id = ? LIMIT 1").get(input.id) as ChatRunRow | undefined;
|
|
1315
|
+
const row = db.prepare("SELECT * FROM chat_runs WHERE id = ? LIMIT 1").get(input.id) as unknown as ChatRunRow | undefined;
|
|
1315
1316
|
return row ? toChatRunRecord(row) : null;
|
|
1316
1317
|
});
|
|
1317
1318
|
}
|
|
@@ -1346,7 +1347,7 @@ export async function appendChatRunStep(input: {
|
|
|
1346
1347
|
input.status === "completed" || input.status === "failed" ? now : null
|
|
1347
1348
|
);
|
|
1348
1349
|
|
|
1349
|
-
const row = db.prepare("SELECT * FROM chat_run_steps WHERE id = ? LIMIT 1").get(input.id) as ChatRunStepRow | undefined;
|
|
1350
|
+
const row = db.prepare("SELECT * FROM chat_run_steps WHERE id = ? LIMIT 1").get(input.id) as unknown as ChatRunStepRow | undefined;
|
|
1350
1351
|
if (!row) {
|
|
1351
1352
|
throw new Error(`Failed to append chat run step ${input.id}`);
|
|
1352
1353
|
}
|
|
@@ -1376,12 +1377,12 @@ export async function updateChatRunStep(input: {
|
|
|
1376
1377
|
params.push(input.completedAt);
|
|
1377
1378
|
}
|
|
1378
1379
|
if (updates.length === 0) {
|
|
1379
|
-
const existing = db.prepare("SELECT * FROM chat_run_steps WHERE id = ? LIMIT 1").get(input.id) as ChatRunStepRow | undefined;
|
|
1380
|
+
const existing = db.prepare("SELECT * FROM chat_run_steps WHERE id = ? LIMIT 1").get(input.id) as unknown as ChatRunStepRow | undefined;
|
|
1380
1381
|
return existing ? toChatRunStepRecord(existing) : null;
|
|
1381
1382
|
}
|
|
1382
1383
|
params.push(input.id);
|
|
1383
1384
|
db.prepare(`UPDATE chat_run_steps SET ${updates.join(", ")} WHERE id = ?`).run(...params);
|
|
1384
|
-
const row = db.prepare("SELECT * FROM chat_run_steps WHERE id = ? LIMIT 1").get(input.id) as ChatRunStepRow | undefined;
|
|
1385
|
+
const row = db.prepare("SELECT * FROM chat_run_steps WHERE id = ? LIMIT 1").get(input.id) as unknown as ChatRunStepRow | undefined;
|
|
1385
1386
|
return row ? toChatRunStepRecord(row) : null;
|
|
1386
1387
|
});
|
|
1387
1388
|
}
|
|
@@ -1390,7 +1391,7 @@ export async function listChatRunSteps(chatRunId: string): Promise<ChatRunStepRe
|
|
|
1390
1391
|
return withDatabase((db) => {
|
|
1391
1392
|
const rows = db
|
|
1392
1393
|
.prepare("SELECT * FROM chat_run_steps WHERE chat_run_id = ? ORDER BY step_index ASC, started_at ASC")
|
|
1393
|
-
.all(chatRunId) as ChatRunStepRow[];
|
|
1394
|
+
.all(chatRunId) as unknown as ChatRunStepRow[];
|
|
1394
1395
|
return rows.map(toChatRunStepRecord);
|
|
1395
1396
|
});
|
|
1396
1397
|
}
|
|
@@ -1419,7 +1420,7 @@ export async function getMessageThread(messageId: string): Promise<{ threadId: s
|
|
|
1419
1420
|
export async function clearHistory(threadId: string): Promise<void> {
|
|
1420
1421
|
const normalizedThreadId = threadId.trim() || LEGACY_THREAD_ID;
|
|
1421
1422
|
await withDatabase((db) => {
|
|
1422
|
-
const tx = db
|
|
1423
|
+
const tx = transactionFn(db, (id: string) => {
|
|
1423
1424
|
db.prepare(`DELETE FROM message_reactions WHERE thread_id = ?`).run(id);
|
|
1424
1425
|
db.prepare(`DELETE FROM messages WHERE thread_id = ?`).run(id);
|
|
1425
1426
|
});
|
|
@@ -1433,7 +1434,7 @@ export async function deleteMessage(threadId: string, messageId: string): Promis
|
|
|
1433
1434
|
if (!normalizedMessageId) return;
|
|
1434
1435
|
|
|
1435
1436
|
await withDatabase((db) => {
|
|
1436
|
-
const tx = db
|
|
1437
|
+
const tx = transactionFn(db, (thread: string, msgId: string) => {
|
|
1437
1438
|
db.prepare(
|
|
1438
1439
|
`DELETE FROM message_reactions WHERE thread_id = ? AND message_id = ?`
|
|
1439
1440
|
).run(thread, msgId);
|
|
@@ -1451,7 +1452,7 @@ export async function clearRootThread(threadId: string, rootMessageId: string):
|
|
|
1451
1452
|
if (!normalizedRootMessageId) return;
|
|
1452
1453
|
|
|
1453
1454
|
await withDatabase((db) => {
|
|
1454
|
-
const tx = db
|
|
1455
|
+
const tx = transactionFn(db, (thread: string, rootId: string) => {
|
|
1455
1456
|
db.prepare(
|
|
1456
1457
|
`DELETE FROM message_reactions
|
|
1457
1458
|
WHERE thread_id = ?
|
|
@@ -1509,7 +1510,7 @@ export async function searchMessages(input: SearchMessagesInput): Promise<Search
|
|
|
1509
1510
|
WHERE ${ftsWhereClauses.join(" AND ")}
|
|
1510
1511
|
ORDER BY rank ASC, m.timestamp DESC`
|
|
1511
1512
|
)
|
|
1512
|
-
.all(...ftsWhereParams) as Array<SearchRow & { snippet: string; rank: number }>;
|
|
1513
|
+
.all(...ftsWhereParams) as unknown as Array<SearchRow & { snippet: string; rank: number }>;
|
|
1513
1514
|
|
|
1514
1515
|
for (const row of ftsRows) {
|
|
1515
1516
|
const key = `${row.thread_id}:${row.id}`;
|
|
@@ -1550,7 +1551,7 @@ export async function searchMessages(input: SearchMessagesInput): Promise<Search
|
|
|
1550
1551
|
WHERE ${fallbackClauses.join(" AND ")}
|
|
1551
1552
|
ORDER BY m.timestamp DESC`
|
|
1552
1553
|
)
|
|
1553
|
-
.all(...fallbackParams) as Array<SearchRow & { content: string }>;
|
|
1554
|
+
.all(...fallbackParams) as unknown as Array<SearchRow & { content: string }>;
|
|
1554
1555
|
|
|
1555
1556
|
for (const row of fallbackRows) {
|
|
1556
1557
|
const key = `${row.thread_id}:${row.id}`;
|
|
@@ -1736,12 +1737,11 @@ export async function saveLogs(
|
|
|
1736
1737
|
const stmt = db.prepare(
|
|
1737
1738
|
"INSERT INTO logs (agent_process_id, stream, line, timestamp) VALUES (?, ?, ?, ?)"
|
|
1738
1739
|
);
|
|
1739
|
-
|
|
1740
|
+
transaction(db, () => {
|
|
1740
1741
|
for (const e of entries) {
|
|
1741
1742
|
stmt.run(agentProcessId, e.stream, e.line, e.timestamp);
|
|
1742
1743
|
}
|
|
1743
1744
|
});
|
|
1744
|
-
tx();
|
|
1745
1745
|
});
|
|
1746
1746
|
}
|
|
1747
1747
|
|
|
@@ -1758,7 +1758,7 @@ export async function loadLogs(workspaceId: string): Promise<LogRow[]> {
|
|
|
1758
1758
|
ORDER BY l.timestamp DESC, l.id DESC
|
|
1759
1759
|
LIMIT 100`
|
|
1760
1760
|
)
|
|
1761
|
-
.all(normalized) as LogRow[];
|
|
1761
|
+
.all(normalized) as unknown as LogRow[];
|
|
1762
1762
|
return rows.reverse();
|
|
1763
1763
|
});
|
|
1764
1764
|
}
|
|
@@ -1836,7 +1836,7 @@ export async function sweepStaleWorkingReactions(
|
|
|
1836
1836
|
)
|
|
1837
1837
|
.run(now, normalizedThreadId, cutoff);
|
|
1838
1838
|
|
|
1839
|
-
return { updated: result.changes };
|
|
1839
|
+
return { updated: Number(result.changes) };
|
|
1840
1840
|
});
|
|
1841
1841
|
}
|
|
1842
1842
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createHash, randomUUID } from "crypto";
|
|
2
2
|
import { getSQLiteDb } from "./sqlite-query-adapter";
|
|
3
|
+
import { transactionFn } from "./sqlite-compat";
|
|
3
4
|
|
|
4
5
|
export type KnowledgeScope = "agent" | "repo" | "project";
|
|
5
6
|
export type KnowledgeSourceType = "reflection" | "thread_transition" | "task_completion";
|
|
@@ -191,7 +192,7 @@ export function storeKnowledgeEntries(drafts: KnowledgeDraft[]): number {
|
|
|
191
192
|
);
|
|
192
193
|
|
|
193
194
|
let inserted = 0;
|
|
194
|
-
const tx = db
|
|
195
|
+
const tx = transactionFn(db, (entries: KnowledgeDraft[]) => {
|
|
195
196
|
for (const draft of entries) {
|
|
196
197
|
const subjectId = draft.subjectId.trim();
|
|
197
198
|
const title = draft.title.trim();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { DatabaseSync } from "node:sqlite";
|
|
2
|
+
import { pragmaAll, pragmaSet, transaction, transactionFn } from "./sqlite-compat";
|
|
2
3
|
import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "fs";
|
|
3
4
|
import path from "path";
|
|
4
5
|
import os from "os";
|
|
@@ -55,7 +56,7 @@ function migrateAgentDirectory(oldId: string, newId: string, displayName: string
|
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
|
|
58
|
-
function migrateLegacyParticipantIds(db:
|
|
59
|
+
function migrateLegacyParticipantIds(db: DatabaseSync): void {
|
|
59
60
|
const rows = db
|
|
60
61
|
.prepare("SELECT id, name, provider FROM participants")
|
|
61
62
|
.all() as Array<{ id: string; name: string; provider: string }>;
|
|
@@ -125,7 +126,7 @@ function migrateLegacyParticipantIds(db: Database.Database): void {
|
|
|
125
126
|
).map((row) => row.name)
|
|
126
127
|
);
|
|
127
128
|
|
|
128
|
-
const migrateTxn = db
|
|
129
|
+
const migrateTxn = transactionFn(db, (participantOps: Array<{ from: string; to: string }>, referenceOps: Array<{ from: string; to: string }>) => {
|
|
129
130
|
const updateParticipant = db.prepare("UPDATE participants SET id = ? WHERE id = ?");
|
|
130
131
|
const updateMessages = tableNames.has("messages")
|
|
131
132
|
? db.prepare("UPDATE messages SET participant_id = ? WHERE participant_id = ?")
|
|
@@ -158,10 +159,10 @@ function migrateLegacyParticipantIds(db: Database.Database): void {
|
|
|
158
159
|
}
|
|
159
160
|
}
|
|
160
161
|
|
|
161
|
-
function getDb():
|
|
162
|
+
function getDb(): DatabaseSync {
|
|
162
163
|
mkdirSync(STORE_DIR, { recursive: true });
|
|
163
|
-
const db = new
|
|
164
|
-
db
|
|
164
|
+
const db = new DatabaseSync(DB_PATH);
|
|
165
|
+
pragmaSet(db, "journal_mode = WAL");
|
|
165
166
|
db.exec(`
|
|
166
167
|
CREATE TABLE IF NOT EXISTS participants (
|
|
167
168
|
id TEXT PRIMARY KEY,
|
|
@@ -176,7 +177,7 @@ function getDb(): Database.Database {
|
|
|
176
177
|
);
|
|
177
178
|
`);
|
|
178
179
|
|
|
179
|
-
const columns = db
|
|
180
|
+
const columns = pragmaAll(db, "table_info(participants)") as Array<{ name: string }>;
|
|
180
181
|
// Migration: rename persona -> identity, persona_file -> identity_file
|
|
181
182
|
if (columns.some((column) => column.name === "persona")) {
|
|
182
183
|
db.exec("ALTER TABLE participants RENAME COLUMN persona TO identity");
|
|
@@ -310,7 +311,7 @@ export function reorderParticipants(orderedIds: string[]): void {
|
|
|
310
311
|
const db = getDb();
|
|
311
312
|
try {
|
|
312
313
|
const stmt = db.prepare("UPDATE participants SET sort_order = ? WHERE id = ?");
|
|
313
|
-
const txn = db
|
|
314
|
+
const txn = transactionFn(db, (ids: string[]) => {
|
|
314
315
|
for (let i = 0; i < ids.length; i++) {
|
|
315
316
|
stmt.run(i, ids[i]);
|
|
316
317
|
}
|