@mndrk/agx 2.0.32 → 2.0.34
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/app-path-routes-manifest.json +18 -0
- package/cloud-runtime/standalone/.next/build-manifest.json +6 -6
- package/cloud-runtime/standalone/.next/prerender-manifest.json +27 -3
- package/cloud-runtime/standalone/.next/routes-manifest.json +116 -0
- package/cloud-runtime/standalone/.next/server/app/_global-error/page/build-manifest.json +4 -4
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/_not-found/page.js.nft.json +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 +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 +4 -4
- 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 +4 -4
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 -5
- 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 +6 -6
- 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/filesystem/pick-folder/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/pick-folder/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/pick-folder/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/pick-folder/route.js +7 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/pick-folder/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/pick-folder/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/pick-folder/route_client-reference-manifest.js +2 -0
- 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 +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +1 -1
- 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 +1 -1
- 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 +3 -2
- 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 +1 -1
- 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/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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +10 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js +10 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js +10 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js +9 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js +12 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js +10 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +4 -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 +6 -6
- package/cloud-runtime/standalone/.next/server/app/api/queue/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 +4 -5
- 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 +3 -4
- 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 +3 -4
- package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/summarize/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 +1 -1
- 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 +5 -5
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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]/nodes/[nodeId]/comments/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +4 -4
- 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 +6 -6
- package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route.js +7 -0
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route_client-reference-manifest.js +2 -0
- 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/user-settings/route.js +1 -1
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/automations/page/react-loadable-manifest.json +8 -1
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +4 -4
- 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 +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/board/page.js.nft.json +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 +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 +4 -4
- 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 +5 -5
- package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- 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 +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/page/build-manifest.json +4 -4
- 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]/automations/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +8 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page.js +16 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +4 -4
- 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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +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/build-manifest.json +4 -4
- 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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +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/build-manifest.json +4 -4
- 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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/page.js.nft.json +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 +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 +4 -4
- package/cloud-runtime/standalone/.next/server/app/settings/page.js.nft.json +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 +3 -3
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +3 -3
- 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 +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/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page.js +15 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/skills.html +21 -0
- package/cloud-runtime/standalone/.next/server/app/skills.meta +15 -0
- package/cloud-runtime/standalone/.next/server/app/skills.rsc +23 -0
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +23 -0
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +5 -0
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +9 -0
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +5 -0
- package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +9 -0
- package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +4 -0
- package/cloud-runtime/standalone/.next/server/app/status/page/build-manifest.json +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +18 -0
- package/cloud-runtime/standalone/.next/server/chunks/[externals]__cf9f18a6._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c5634f17._.js → [root-of-the-server]__005b3c82._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e446cb39._.js → [root-of-the-server]__056d94e4._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__06634853._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__068b4f08._.js +15 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0b3b6a47._.js +51 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0bb52353._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0f580808._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6c26221d._.js → [root-of-the-server]__1a8e0957._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1cc2fe7f._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c08bef05._.js → [root-of-the-server]__23ad03bf._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__29419d66._.js +42 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6c187704._.js → [root-of-the-server]__2948f712._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__86f7d27b._.js → [root-of-the-server]__32ef6623._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__399b2ca9._.js → [root-of-the-server]__34cb1b98._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1dd062c1._.js → [root-of-the-server]__3c1567b6._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__29ce9c60._.js → [root-of-the-server]__3c37453e._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__507a4363._.js → [root-of-the-server]__3faa64cd._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42497c7b._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__10940c29._.js → [root-of-the-server]__49c03d66._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b40c7aab._.js → [root-of-the-server]__4a8d14c1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__75bff965._.js → [root-of-the-server]__4c861686._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4d865017._.js +48 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5031f8d4._.js +30 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__543ba6c4._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__94fa1edc._.js → [root-of-the-server]__588b6ab0._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ccfcbcd5._.js → [root-of-the-server]__596d0e81._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__9dfaaf72._.js → [root-of-the-server]__61c99680._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__64712846._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__707c32af._.js +15 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7370bb86._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__749af50f._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__75cedecf._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__98535eb3._.js → [root-of-the-server]__7e79d86a._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__dede3dcd._.js → [root-of-the-server]__7ee9b7b6._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8ac0286e._.js +58 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__13677d96._.js → [root-of-the-server]__8b0ab82f._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f5b93200._.js → [root-of-the-server]__8b461158._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__918f0106._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__922eb7cd._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__927cfc20._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__96ae701e._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__981d92dd._.js +63 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98b352f7._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a44db634._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a55c16a5._.js +158 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e6ad07c3._.js → [root-of-the-server]__a67cd108._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ab2bf82d._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d8cedc8a._.js → [root-of-the-server]__abb032c1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6e59b27c._.js → [root-of-the-server]__b4931ee1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e122cae2._.js → [root-of-the-server]__b500f1bf._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5ca87ba0._.js → [root-of-the-server]__b707e701._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f4b70b67._.js → [root-of-the-server]__be4ad4b5._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bf5803eb._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c0a18648._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c8b49077._.js +79 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c99509c2._.js +101 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ccd4846e._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ceb02db8._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d4126e05._.js +15 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d908c9ea._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2388b2b3._.js → [root-of-the-server]__dcdeee3d._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__80655727._.js → [root-of-the-server]__e069c0a3._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f5a2358a._.js → [root-of-the-server]__e1e51c02._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e3a4fd97._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e4a87984._.js +15 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ee6511a0._.js +44 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__12afd8a3._.js → [root-of-the-server]__ef82dda1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f168c6dc._.js +25 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2e596cc8._.js → [root-of-the-server]__fee58db1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/_5462a047._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_5fd6af5d._.js +57 -0
- package/cloud-runtime/standalone/.next/server/chunks/_c965f7b3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/{_3e0d34cc._.js → _d22934ab._.js} +24 -24
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_filesystem_pick-folder_route_actions_162664ff.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_knowledge-notes_route_actions_0ddf6109.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_prompt-jobs_[id]_cancel_route_actions_fbd5be89.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_prompt-jobs_[id]_route_actions_774a2e21.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_prompt-jobs_[id]_runs_route_actions_6e59ee83.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_prompt-jobs_agents_route_actions_399e1f19.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_prompt-jobs_poll_route_actions_23fbbfa1.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_prompt-jobs_route_actions_acf03860.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_assign_route_actions_15267be8.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_available_route_actions_24023111.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_detail_route_actions_1148baef.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_history_route_actions_5e5c4757.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_learn_route_actions_d3a37d25.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_route_actions_780e175f.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_unlearn_route_actions_3dfee433.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_thread-repos_route_actions_e95d24ee.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_87c06aeb._.js +25 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_a5adca60._.js +64 -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 +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +50 -37
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +50 -37
- package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_3ea4d849._.js +38 -11
- package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_b0b1a9b2._.js +43 -16
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +19 -19
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_def8bfbe.js +10 -0
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_55c06268._.js +4 -3
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_a8bc8d58._.js +4 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__096c39a3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__226f8a19._.js +1 -1
- 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]__5ffa2883._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__67d5f883._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8b4e7816._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8fe8b9dd._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a37fb1c3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a456581d._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__d74022f1._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__fcbe03e6._.js → [root-of-the-server]__e0c64529._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ea035cd9._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ffbc2e98._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_05c8a494._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_0c5c111f._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_0ffd2660._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_23656a95._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_23f5fddc._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_24feb541._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_27a789b3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_508cd32f._.js → _314f4c49._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_36b413cc._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_43472af3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_46e00a9b._.js +95 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_478f4991._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_4bfdfb14._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_52fe115d._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_547b6462._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_547f19ec._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_85ca101b._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_93914ecd._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_9e07dcac._.js +95 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a1b966f7._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a68d8f62._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a80e12c8._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_b1e1ef71._.js +95 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_e1349560._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_next-internal_server_app_projects_[slug]_automations_page_actions_9371bc66.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_next-internal_server_app_skills_page_actions_4ac82b1e.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_agents_[id]_page_tsx_9c49d8c8._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_agents_page_tsx_f5f08ed8._.js +1 -1
- 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]_knowledge_page_tsx_e2a55cbd._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +4 -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 → node_modules_lucide-react_dist_esm_b82e03da._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_next_dist_61a87db9._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{node_modules_next_920e7746._.js → node_modules_next_f2865b38._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +15 -0
- package/cloud-runtime/standalone/.next/server/middleware-build-manifest.js +4 -4
- 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/01428247f94115a6.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/06cf0ed16bf8aa70.js +28 -0
- package/cloud-runtime/standalone/.next/static/chunks/19dd745b663fdffa.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/1a3298f21d1040e9.js +4 -0
- package/cloud-runtime/standalone/.next/static/chunks/1c8583feefee0765.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/1e3dede69b464364.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/238a28856e739dc9.js +2 -0
- package/cloud-runtime/standalone/.next/static/chunks/24772e179852c73e.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/2d1d138d8ea3234c.css +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/2e011469003993e9.js +28 -0
- package/cloud-runtime/standalone/.next/static/chunks/31a4164e40ca71e5.js +6 -0
- package/cloud-runtime/standalone/.next/static/chunks/3a55441b018d52e4.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/3c202e89da05d9b9.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/3c72becf6dff5597.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/44dafb5e85578e12.js +16 -0
- package/cloud-runtime/standalone/.next/static/chunks/47f22a56011af8d3.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/48e332ac3e9ed56c.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/5b567b289ca2273e.css +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/5d52c79d9812d06e.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/617db51b7444f818.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/673bb6094cea9ded.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/787436fad75f5bc6.js +5 -0
- package/cloud-runtime/standalone/.next/static/chunks/8304e8487aa74059.css +2 -0
- package/cloud-runtime/standalone/.next/static/chunks/8a4684388ca0f6de.js +7 -0
- package/cloud-runtime/standalone/.next/static/chunks/9f236cc9572783b9.js +93 -0
- package/cloud-runtime/standalone/.next/static/chunks/a9aaec85125f69b1.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/b4c29a62f9255268.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/bf2bb1662353aff5.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/c1fb885eed94aa8c.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/c653186036e56204.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/cb5581d868e78205.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/cbdeb17a36b99000.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/d5cc62984dc4205c.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/d73f1cc3ebc9993b.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{88e24940a5d5d386.js → d78cc7d749043fef.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{8d15ced2dc70090a.js → da2b00558cf32f37.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{turbopack-97e846241a3a64af.js → turbopack-22475f0dd0c18f92.js} +1 -1
- package/cloud-runtime/standalone/app/agents/[id]/page.tsx +4 -1
- package/cloud-runtime/standalone/app/agents/page.tsx +22 -2
- package/cloud-runtime/standalone/app/api/agent-specs/route.ts +4 -0
- package/cloud-runtime/standalone/app/api/agents/export/route.ts +4 -0
- package/cloud-runtime/standalone/app/api/chat/route.ts +44 -2
- package/cloud-runtime/standalone/app/api/filesystem/pick-folder/route.ts +56 -0
- package/cloud-runtime/standalone/app/api/knowledge-notes/route.ts +53 -0
- package/cloud-runtime/standalone/app/api/participants/route.ts +50 -1
- package/cloud-runtime/standalone/app/api/prompt-jobs/[id]/cancel/route.ts +44 -0
- package/cloud-runtime/standalone/app/api/prompt-jobs/[id]/route.ts +94 -0
- package/cloud-runtime/standalone/app/api/prompt-jobs/[id]/runs/route.ts +30 -0
- package/cloud-runtime/standalone/app/api/prompt-jobs/agents/route.ts +25 -0
- package/cloud-runtime/standalone/app/api/prompt-jobs/poll/route.ts +232 -0
- package/cloud-runtime/standalone/app/api/prompt-jobs/route.ts +125 -0
- package/cloud-runtime/standalone/app/api/skills/assign/route.ts +30 -0
- package/cloud-runtime/standalone/app/api/skills/available/route.ts +20 -0
- package/cloud-runtime/standalone/app/api/skills/detail/route.ts +23 -0
- package/cloud-runtime/standalone/app/api/skills/history/route.ts +18 -0
- package/cloud-runtime/standalone/app/api/skills/learn/route.ts +31 -0
- package/cloud-runtime/standalone/app/api/skills/route.ts +19 -0
- package/cloud-runtime/standalone/app/api/skills/unlearn/route.ts +30 -0
- package/cloud-runtime/standalone/app/api/thread-repos/route.ts +30 -0
- package/cloud-runtime/standalone/app/automations/page.tsx +15 -3
- package/cloud-runtime/standalone/app/execution-graph/page.tsx +2 -2
- package/cloud-runtime/standalone/app/globals.css +2 -0
- package/cloud-runtime/standalone/app/layout.tsx +1 -1
- package/cloud-runtime/standalone/app/projects/[slug]/automations/page.tsx +17 -0
- package/cloud-runtime/standalone/app/projects/[slug]/knowledge/page.tsx +210 -26
- package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +3 -2
- package/cloud-runtime/standalone/app/projects/[slug]/page.tsx +401 -86
- package/cloud-runtime/standalone/app/projects/orphans/page.tsx +1 -0
- package/cloud-runtime/standalone/app/projects/page.tsx +3 -3
- package/cloud-runtime/standalone/app/skills/page.tsx +399 -0
- package/cloud-runtime/standalone/components/FloatingPanel.tsx +200 -0
- package/cloud-runtime/standalone/components/Layout.tsx +7 -1
- package/cloud-runtime/standalone/components/NowRunningPanel.tsx +86 -76
- package/cloud-runtime/standalone/components/ProjectModal.tsx +29 -12
- package/cloud-runtime/standalone/components/PromptJobBoard.tsx +1434 -0
- package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +147 -57
- package/cloud-runtime/standalone/components/chat-ui/Composer.tsx +215 -19
- package/cloud-runtime/standalone/components/chat-ui/Markdown.tsx +19 -9
- package/cloud-runtime/standalone/components/chat-ui/ParticipantBar.tsx +233 -213
- package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +131 -68
- package/cloud-runtime/standalone/db/sqlite/001_agx_board_schema.sql +28 -0
- package/cloud-runtime/standalone/db/sqlite/002_prompt_scheduler_schema.sql +45 -0
- package/cloud-runtime/standalone/db/sqlite/003_prompt_scheduler_v2.sql +13 -0
- package/cloud-runtime/standalone/hooks/useAttachments.ts +2 -1
- package/cloud-runtime/standalone/hooks/useGroupChat.ts +8 -1
- package/cloud-runtime/standalone/hooks/useProcessPolling.ts +4 -3
- package/cloud-runtime/standalone/hooks/usePromptJobs.ts +111 -0
- package/cloud-runtime/standalone/hooks/useThreadState.ts +10 -2
- package/cloud-runtime/standalone/lib/agent-participants.ts +7 -0
- package/cloud-runtime/standalone/lib/agent-skill-bindings.ts +118 -0
- package/cloud-runtime/standalone/lib/chat/paste-attachments.ts +152 -0
- package/cloud-runtime/standalone/lib/cli-runner.ts +212 -14
- package/cloud-runtime/standalone/lib/db.ts +6 -1
- package/cloud-runtime/standalone/lib/debug-log.ts +48 -0
- package/cloud-runtime/standalone/lib/history-store.ts +116 -2
- package/cloud-runtime/standalone/lib/orchestrator/chat-processor.ts +51 -0
- package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +6 -0
- package/cloud-runtime/standalone/lib/queue/sqlite-adapter.ts +117 -2
- package/cloud-runtime/standalone/lib/skills-library.ts +450 -0
- package/cloud-runtime/standalone/lib/sqlite-query-adapter.ts +32 -0
- package/cloud-runtime/standalone/lib/stream-multiplexer.ts +59 -11
- package/cloud-runtime/standalone/lib/types.ts +10 -0
- package/cloud-runtime/standalone/migrations/sqlite_schema.sql +28 -0
- package/cloud-runtime/standalone/src/graph/llm-review.ts +19 -2
- package/cloud-runtime/standalone/src/prompt-scheduler/cron.ts +46 -0
- package/cloud-runtime/standalone/src/prompt-scheduler/engine.ts +87 -0
- package/cloud-runtime/standalone/src/prompt-scheduler/get-store.ts +36 -0
- package/cloud-runtime/standalone/src/prompt-scheduler/runner.ts +144 -0
- package/cloud-runtime/standalone/src/prompt-scheduler/store.ts +327 -0
- package/cloud-runtime/standalone/src/prompt-scheduler/types.ts +82 -0
- package/cloud-runtime/standalone/state/floatingPanels.ts +47 -0
- package/cloud-runtime/standalone/styles/composer-pills.css +156 -2
- package/cloud-runtime/standalone/styles/workspaceSidebar.css +5 -3
- package/cloud-runtime/standalone/test/adapters/sqlite.ts +1 -0
- package/cloud-runtime/standalone/update_officeapp.js +36 -0
- package/cloud-runtime/standalone/update_store.js +47 -0
- package/cloud-runtime/standalone/worker/index.js +862 -176
- package/lib/cli/runCli.js +0 -97
- package/lib/commands/update.js +159 -17
- package/package.json +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[externals]__1f4b15dd._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0925dd01._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12c7e188._.js +0 -29
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__17c2d68f._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20b3baea._.js +0 -55
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__254e942f._.js +0 -20
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3198c5c8._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__36d9edbd._.js +0 -67
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4761dc17._.js +0 -8
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4b1a512c._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c8624cc._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4d318eb0._.js +0 -146
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4dc25d71._.js +0 -18
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__666f8712._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7be8f159._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a189593a._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ac3c2f7f._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bfcedb7c._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e1e7dd1e._.js +0 -25
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e45a2a1d._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcd3e3b8._.js +0 -15
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9c61da._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/_66e1ddec._.js +0 -57
- package/cloud-runtime/standalone/.next/server/chunks/lib_09aac4e7._.js +0 -57
- package/cloud-runtime/standalone/.next/server/chunks/lib_cli-runner_ts_dfcf3fda._.js +0 -18
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_69b6b2e1.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__1322ced8._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__783669c3._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8973b16a._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__9166c1d6._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a8a8afdc._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_0061ebd8._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_064370bc._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_0f4e70b1._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_16c45024._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_54af99c5._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_5b2b8a85._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_68ac991e._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_6de3f1de._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_6fc3736e._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a0cc0fe7._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_ccb409c5._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_cd5e154b._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_fb292eed._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_ff5799d6._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_automations_page_tsx_3d732184._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_678fa868._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_next_dist_852965c2._.js +0 -3
- package/cloud-runtime/standalone/.next/static/chunks/010aff7b601302de.js +0 -16
- package/cloud-runtime/standalone/.next/static/chunks/09f9eeea393db0fd.js +0 -4
- package/cloud-runtime/standalone/.next/static/chunks/0c467f54bc78a380.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/10b0642440302e99.css +0 -2
- package/cloud-runtime/standalone/.next/static/chunks/1f415d0ce7ebbd08.js +0 -8
- package/cloud-runtime/standalone/.next/static/chunks/24a6ee21f430da93.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/27129bea5b512ce8.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/3e4e8857f875c964.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/4200b512bdc226bc.js +0 -93
- package/cloud-runtime/standalone/.next/static/chunks/463edf3533d27a56.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/486bf7ff282b91a6.js +0 -5
- package/cloud-runtime/standalone/.next/static/chunks/58025a80caa3629d.js +0 -93
- package/cloud-runtime/standalone/.next/static/chunks/5cb0c885b085ea6c.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/60c054bb8b2cffa6.css +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/651c7c97d3bd77e0.js +0 -28
- package/cloud-runtime/standalone/.next/static/chunks/6fbe08eab578c7d3.js +0 -93
- package/cloud-runtime/standalone/.next/static/chunks/7d4c1d97169c8522.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/7e2edf97bd6c0874.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/8249f202d33d0d95.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/87f099ea02aa419d.js +0 -93
- package/cloud-runtime/standalone/.next/static/chunks/9048e44ed538b21a.js +0 -2
- package/cloud-runtime/standalone/.next/static/chunks/99174504a201d23e.js +0 -28
- package/cloud-runtime/standalone/.next/static/chunks/9f8f719c4aa25e3d.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/a66e1891e808a664.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/a8e8ef440c4daa5a.css +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/bc727d3d9993e9be.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/cd308f61797939cd.js +0 -6
- package/cloud-runtime/standalone/.next/static/chunks/d5d6be8239e57c56.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/e62d5fa120fdf21f.js +0 -1
- package/cloud-runtime/standalone/agx-board.json +0 -264
- package/cloud-runtime/standalone/agx-cli.json +0 -2195
- package/cloud-runtime/standalone/fix-primary.js +0 -30
- package/cloud-runtime/standalone/fix-theme.js +0 -78
- package/cloud-runtime/standalone/test-file +0 -0
- package/cloud-runtime/standalone/testfile +0 -0
- /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → G0Hrt7JKBM1EtMPT0lUIr}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → G0Hrt7JKBM1EtMPT0lUIr}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → G0Hrt7JKBM1EtMPT0lUIr}/_ssgManifest.js +0 -0
|
@@ -86,20 +86,20 @@ var require_file_uri_to_path = __commonJS({
|
|
|
86
86
|
var rest = decodeURI(uri.substring(7));
|
|
87
87
|
var firstSlash = rest.indexOf("/");
|
|
88
88
|
var host = rest.substring(0, firstSlash);
|
|
89
|
-
var
|
|
89
|
+
var path11 = rest.substring(firstSlash + 1);
|
|
90
90
|
if ("localhost" == host) host = "";
|
|
91
91
|
if (host) {
|
|
92
92
|
host = sep + sep + host;
|
|
93
93
|
}
|
|
94
|
-
|
|
94
|
+
path11 = path11.replace(/^(.+)\|/, "$1:");
|
|
95
95
|
if (sep == "\\") {
|
|
96
|
-
|
|
96
|
+
path11 = path11.replace(/\//g, "\\");
|
|
97
97
|
}
|
|
98
|
-
if (/^.+\:/.test(
|
|
98
|
+
if (/^.+\:/.test(path11)) {
|
|
99
99
|
} else {
|
|
100
|
-
|
|
100
|
+
path11 = sep + path11;
|
|
101
101
|
}
|
|
102
|
-
return host +
|
|
102
|
+
return host + path11;
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
});
|
|
@@ -107,19 +107,19 @@ var require_file_uri_to_path = __commonJS({
|
|
|
107
107
|
// ../agx-cloud/node_modules/bindings/bindings.js
|
|
108
108
|
var require_bindings = __commonJS({
|
|
109
109
|
"../agx-cloud/node_modules/bindings/bindings.js"(exports2, module2) {
|
|
110
|
-
var
|
|
111
|
-
var
|
|
110
|
+
var fs8 = require("fs");
|
|
111
|
+
var path11 = require("path");
|
|
112
112
|
var fileURLToPath = require_file_uri_to_path();
|
|
113
|
-
var join6 =
|
|
114
|
-
var dirname =
|
|
115
|
-
var exists =
|
|
113
|
+
var join6 = path11.join;
|
|
114
|
+
var dirname = path11.dirname;
|
|
115
|
+
var exists = fs8.accessSync && function(path12) {
|
|
116
116
|
try {
|
|
117
|
-
|
|
117
|
+
fs8.accessSync(path12);
|
|
118
118
|
} catch (e) {
|
|
119
119
|
return false;
|
|
120
120
|
}
|
|
121
121
|
return true;
|
|
122
|
-
} ||
|
|
122
|
+
} || fs8.existsSync || path11.existsSync;
|
|
123
123
|
var defaults = {
|
|
124
124
|
arrow: process.env.NODE_BINDINGS_ARROW || " \u2192 ",
|
|
125
125
|
compiled: process.env.NODE_BINDINGS_COMPILED_DIR || "compiled",
|
|
@@ -164,7 +164,7 @@ var require_bindings = __commonJS({
|
|
|
164
164
|
if (!opts.module_root) {
|
|
165
165
|
opts.module_root = exports2.getRoot(exports2.getFileName());
|
|
166
166
|
}
|
|
167
|
-
if (
|
|
167
|
+
if (path11.extname(opts.bindings) != ".node") {
|
|
168
168
|
opts.bindings += ".node";
|
|
169
169
|
}
|
|
170
170
|
var requireFunc = typeof __webpack_require__ === "function" ? __non_webpack_require__ : require;
|
|
@@ -402,11 +402,11 @@ var require_pragma = __commonJS({
|
|
|
402
402
|
var require_backup = __commonJS({
|
|
403
403
|
"../agx-cloud/node_modules/better-sqlite3/lib/methods/backup.js"(exports2, module2) {
|
|
404
404
|
"use strict";
|
|
405
|
-
var
|
|
406
|
-
var
|
|
405
|
+
var fs8 = require("fs");
|
|
406
|
+
var path11 = require("path");
|
|
407
407
|
var { promisify } = require("util");
|
|
408
408
|
var { cppdb } = require_util();
|
|
409
|
-
var fsAccess = promisify(
|
|
409
|
+
var fsAccess = promisify(fs8.access);
|
|
410
410
|
module2.exports = async function backup(filename, options) {
|
|
411
411
|
if (options == null) options = {};
|
|
412
412
|
if (typeof filename !== "string") throw new TypeError("Expected first argument to be a string");
|
|
@@ -419,7 +419,7 @@ var require_backup = __commonJS({
|
|
|
419
419
|
if (typeof attachedName !== "string") throw new TypeError('Expected the "attached" option to be a string');
|
|
420
420
|
if (!attachedName) throw new TypeError('The "attached" option cannot be an empty string');
|
|
421
421
|
if (handler != null && typeof handler !== "function") throw new TypeError('Expected the "progress" option to be a function');
|
|
422
|
-
await fsAccess(
|
|
422
|
+
await fsAccess(path11.dirname(filename)).catch(() => {
|
|
423
423
|
throw new TypeError("Cannot save backup because the directory does not exist");
|
|
424
424
|
});
|
|
425
425
|
const isNewFile = await fsAccess(filename).then(() => false, () => true);
|
|
@@ -724,8 +724,8 @@ var require_inspect = __commonJS({
|
|
|
724
724
|
var require_database = __commonJS({
|
|
725
725
|
"../agx-cloud/node_modules/better-sqlite3/lib/database.js"(exports2, module2) {
|
|
726
726
|
"use strict";
|
|
727
|
-
var
|
|
728
|
-
var
|
|
727
|
+
var fs8 = require("fs");
|
|
728
|
+
var path11 = require("path");
|
|
729
729
|
var util = require_util();
|
|
730
730
|
var SqliteError = require_sqlite_error();
|
|
731
731
|
var DEFAULT_ADDON;
|
|
@@ -761,7 +761,7 @@ var require_database = __commonJS({
|
|
|
761
761
|
addon = DEFAULT_ADDON || (DEFAULT_ADDON = require_bindings()("better_sqlite3.node"));
|
|
762
762
|
} else if (typeof nativeBinding === "string") {
|
|
763
763
|
const requireFunc = typeof __non_webpack_require__ === "function" ? __non_webpack_require__ : require;
|
|
764
|
-
addon = requireFunc(
|
|
764
|
+
addon = requireFunc(path11.resolve(nativeBinding).replace(/(\.node)?$/, ".node"));
|
|
765
765
|
} else {
|
|
766
766
|
addon = nativeBinding;
|
|
767
767
|
}
|
|
@@ -769,7 +769,7 @@ var require_database = __commonJS({
|
|
|
769
769
|
addon.setErrorConstructor(SqliteError);
|
|
770
770
|
addon.isInitialized = true;
|
|
771
771
|
}
|
|
772
|
-
if (!anonymous && !filename.startsWith("file:") && !
|
|
772
|
+
if (!anonymous && !filename.startsWith("file:") && !fs8.existsSync(path11.dirname(filename))) {
|
|
773
773
|
throw new TypeError("Cannot open database because the directory does not exist");
|
|
774
774
|
}
|
|
775
775
|
Object.defineProperties(this, {
|
|
@@ -966,7 +966,6 @@ var init_startup = __esm({
|
|
|
966
966
|
var LOCAL_USER;
|
|
967
967
|
var init_auth_mode = __esm({
|
|
968
968
|
"../agx-cloud/lib/auth-mode.ts"() {
|
|
969
|
-
"use strict";
|
|
970
969
|
LOCAL_USER = {
|
|
971
970
|
id: "2c3cc1ca-956d-4b62-b295-4d2d3374103f",
|
|
972
971
|
email: process.env.AGX_BOARD_USER_EMAIL || "local@agx.board",
|
|
@@ -977,11 +976,11 @@ var init_auth_mode = __esm({
|
|
|
977
976
|
|
|
978
977
|
// ../agx-cloud/lib/mesh-core/activity.ts
|
|
979
978
|
function activityPath(agentId) {
|
|
980
|
-
return (0,
|
|
979
|
+
return (0, import_path4.join)(AGENTS_DIR, agentId, "activity.jsonl");
|
|
981
980
|
}
|
|
982
981
|
function ensureDir(agentId) {
|
|
983
|
-
const dir = (0,
|
|
984
|
-
if (!(0,
|
|
982
|
+
const dir = (0, import_path4.join)(AGENTS_DIR, agentId);
|
|
983
|
+
if (!(0, import_fs4.existsSync)(dir)) (0, import_fs4.mkdirSync)(dir, { recursive: true });
|
|
985
984
|
}
|
|
986
985
|
function logActivity(agentId, action, data) {
|
|
987
986
|
try {
|
|
@@ -992,32 +991,32 @@ function logActivity(agentId, action, data) {
|
|
|
992
991
|
action,
|
|
993
992
|
...data
|
|
994
993
|
};
|
|
995
|
-
(0,
|
|
994
|
+
(0, import_fs4.appendFileSync)(activityPath(agentId), JSON.stringify(event) + "\n", "utf-8");
|
|
996
995
|
} catch {
|
|
997
996
|
}
|
|
998
997
|
}
|
|
999
|
-
var
|
|
998
|
+
var import_fs4, import_path4, import_os4, AGENTS_DIR;
|
|
1000
999
|
var init_activity = __esm({
|
|
1001
1000
|
"../agx-cloud/lib/mesh-core/activity.ts"() {
|
|
1002
1001
|
"use strict";
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
AGENTS_DIR = (0,
|
|
1002
|
+
import_fs4 = require("fs");
|
|
1003
|
+
import_path4 = require("path");
|
|
1004
|
+
import_os4 = require("os");
|
|
1005
|
+
AGENTS_DIR = (0, import_path4.join)((0, import_os4.homedir)(), ".agx", "agents");
|
|
1007
1006
|
}
|
|
1008
1007
|
});
|
|
1009
1008
|
|
|
1010
1009
|
// ../agx-cloud/lib/mesh-core/self.ts
|
|
1011
1010
|
function selfPath(agentId) {
|
|
1012
|
-
return (0,
|
|
1011
|
+
return (0, import_path5.join)(AGENTS_DIR2, agentId, "self.md");
|
|
1013
1012
|
}
|
|
1014
1013
|
function reflectionStatePath(agentId) {
|
|
1015
|
-
return (0,
|
|
1014
|
+
return (0, import_path5.join)(AGENTS_DIR2, agentId, "reflection-state.json");
|
|
1016
1015
|
}
|
|
1017
1016
|
function readSelf(agentId) {
|
|
1018
|
-
const
|
|
1019
|
-
if (!(0,
|
|
1020
|
-
const raw = (0,
|
|
1017
|
+
const path11 = selfPath(agentId);
|
|
1018
|
+
if (!(0, import_fs5.existsSync)(path11)) return null;
|
|
1019
|
+
const raw = (0, import_fs5.readFileSync)(path11, "utf-8");
|
|
1021
1020
|
if (!raw.trim()) return null;
|
|
1022
1021
|
const lines = raw.split("\n");
|
|
1023
1022
|
let version = 0;
|
|
@@ -1043,8 +1042,8 @@ function readSelf(agentId) {
|
|
|
1043
1042
|
};
|
|
1044
1043
|
}
|
|
1045
1044
|
function writeSelf(agentId, content, version) {
|
|
1046
|
-
const dir = (0,
|
|
1047
|
-
if (!(0,
|
|
1045
|
+
const dir = (0, import_path5.join)(AGENTS_DIR2, agentId);
|
|
1046
|
+
if (!(0, import_fs5.existsSync)(dir)) (0, import_fs5.mkdirSync)(dir, { recursive: true });
|
|
1048
1047
|
const derivedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
1049
1048
|
const full = `---
|
|
1050
1049
|
version: ${version}
|
|
@@ -1053,15 +1052,15 @@ derivedAt: ${derivedAt}
|
|
|
1053
1052
|
${content}
|
|
1054
1053
|
`;
|
|
1055
1054
|
const tmp = selfPath(agentId) + ".tmp";
|
|
1056
|
-
(0,
|
|
1057
|
-
(0,
|
|
1055
|
+
(0, import_fs5.writeFileSync)(tmp, full, "utf-8");
|
|
1056
|
+
(0, import_fs5.renameSync)(tmp, selfPath(agentId));
|
|
1058
1057
|
logActivity(agentId, "self-updated", { meta: { version } });
|
|
1059
1058
|
}
|
|
1060
1059
|
function readReflectionState(agentId) {
|
|
1061
|
-
const
|
|
1062
|
-
if (!(0,
|
|
1060
|
+
const path11 = reflectionStatePath(agentId);
|
|
1061
|
+
if (!(0, import_fs5.existsSync)(path11)) return null;
|
|
1063
1062
|
try {
|
|
1064
|
-
const parsed = JSON.parse((0,
|
|
1063
|
+
const parsed = JSON.parse((0, import_fs5.readFileSync)(path11, "utf-8"));
|
|
1065
1064
|
const lastProcessedJournalId = typeof parsed?.lastProcessedJournalId === "string" && parsed.lastProcessedJournalId.trim() ? parsed.lastProcessedJournalId.trim() : null;
|
|
1066
1065
|
const updatedAt = typeof parsed?.updatedAt === "string" && parsed.updatedAt.trim() ? parsed.updatedAt : (/* @__PURE__ */ new Date()).toISOString();
|
|
1067
1066
|
return { lastProcessedJournalId, updatedAt };
|
|
@@ -1070,11 +1069,11 @@ function readReflectionState(agentId) {
|
|
|
1070
1069
|
}
|
|
1071
1070
|
}
|
|
1072
1071
|
function writeReflectionState(agentId, state) {
|
|
1073
|
-
const dir = (0,
|
|
1074
|
-
if (!(0,
|
|
1072
|
+
const dir = (0, import_path5.join)(AGENTS_DIR2, agentId);
|
|
1073
|
+
if (!(0, import_fs5.existsSync)(dir)) (0, import_fs5.mkdirSync)(dir, { recursive: true });
|
|
1075
1074
|
const tmp = reflectionStatePath(agentId) + ".tmp";
|
|
1076
|
-
(0,
|
|
1077
|
-
(0,
|
|
1075
|
+
(0, import_fs5.writeFileSync)(tmp, JSON.stringify(state, null, 2), "utf-8");
|
|
1076
|
+
(0, import_fs5.renameSync)(tmp, reflectionStatePath(agentId));
|
|
1078
1077
|
}
|
|
1079
1078
|
function buildReflectionPrompt(identity, currentSelf, recentJournal, teamSelves) {
|
|
1080
1079
|
const selfText = currentSelf?.content || `I am ${identity.name}. ${identity.seed}`;
|
|
@@ -1153,35 +1152,35 @@ Rules:
|
|
|
1153
1152
|
- If nothing genuinely new was learned, return an empty memories array.
|
|
1154
1153
|
- Do not wrap the JSON in markdown fences.`;
|
|
1155
1154
|
}
|
|
1156
|
-
var
|
|
1155
|
+
var import_fs5, import_path5, import_os5, AGENTS_DIR2;
|
|
1157
1156
|
var init_self = __esm({
|
|
1158
1157
|
"../agx-cloud/lib/mesh-core/self.ts"() {
|
|
1159
1158
|
"use strict";
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1159
|
+
import_fs5 = require("fs");
|
|
1160
|
+
import_path5 = require("path");
|
|
1161
|
+
import_os5 = require("os");
|
|
1163
1162
|
init_activity();
|
|
1164
|
-
AGENTS_DIR2 = (0,
|
|
1163
|
+
AGENTS_DIR2 = (0, import_path5.join)((0, import_os5.homedir)(), ".agx", "agents");
|
|
1165
1164
|
}
|
|
1166
1165
|
});
|
|
1167
1166
|
|
|
1168
1167
|
// ../agx-cloud/lib/mesh-core/journal.ts
|
|
1169
1168
|
function agentDir(agentId) {
|
|
1170
|
-
return (0,
|
|
1169
|
+
return (0, import_path6.join)(AGENTS_DIR3, agentId);
|
|
1171
1170
|
}
|
|
1172
1171
|
function journalPath(agentId) {
|
|
1173
|
-
return (0,
|
|
1172
|
+
return (0, import_path6.join)(agentDir(agentId), "journal.jsonl");
|
|
1174
1173
|
}
|
|
1175
1174
|
function ensureAgentDir(agentId) {
|
|
1176
1175
|
const dir = agentDir(agentId);
|
|
1177
|
-
if (!(0,
|
|
1178
|
-
(0,
|
|
1176
|
+
if (!(0, import_fs6.existsSync)(dir)) {
|
|
1177
|
+
(0, import_fs6.mkdirSync)(dir, { recursive: true });
|
|
1179
1178
|
}
|
|
1180
1179
|
}
|
|
1181
1180
|
function readJournalLines(agentId) {
|
|
1182
|
-
const
|
|
1183
|
-
if (!(0,
|
|
1184
|
-
return (0,
|
|
1181
|
+
const path11 = journalPath(agentId);
|
|
1182
|
+
if (!(0, import_fs6.existsSync)(path11)) return [];
|
|
1183
|
+
return (0, import_fs6.readFileSync)(path11, "utf-8").split("\n").filter((l) => l.trim());
|
|
1185
1184
|
}
|
|
1186
1185
|
function parseMaxSeq(agentId, lines) {
|
|
1187
1186
|
let maxSeq = 0;
|
|
@@ -1210,7 +1209,7 @@ function appendJournal(agentId, entry) {
|
|
|
1210
1209
|
const nextId = `${agentId}:${maxSeq + 1}`;
|
|
1211
1210
|
const normalized = { ...entry, id: entry.id?.trim() || nextId };
|
|
1212
1211
|
const line = JSON.stringify(normalized) + "\n";
|
|
1213
|
-
(0,
|
|
1212
|
+
(0, import_fs6.appendFileSync)(journalPath(agentId), line, "utf-8");
|
|
1214
1213
|
logActivity(agentId, entry.type === "reflection" ? "reflection" : "journal-post", {
|
|
1215
1214
|
thread: normalized.thread,
|
|
1216
1215
|
meta: { entryId: normalized.id }
|
|
@@ -1244,42 +1243,42 @@ function readJournalSince(agentId, afterEntryId) {
|
|
|
1244
1243
|
}
|
|
1245
1244
|
return entries;
|
|
1246
1245
|
}
|
|
1247
|
-
var
|
|
1246
|
+
var import_fs6, import_path6, import_os6, AGENTS_DIR3;
|
|
1248
1247
|
var init_journal = __esm({
|
|
1249
1248
|
"../agx-cloud/lib/mesh-core/journal.ts"() {
|
|
1250
1249
|
"use strict";
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1250
|
+
import_fs6 = require("fs");
|
|
1251
|
+
import_path6 = require("path");
|
|
1252
|
+
import_os6 = require("os");
|
|
1254
1253
|
init_activity();
|
|
1255
|
-
AGENTS_DIR3 = (0,
|
|
1254
|
+
AGENTS_DIR3 = (0, import_path6.join)((0, import_os6.homedir)(), ".agx", "agents");
|
|
1256
1255
|
}
|
|
1257
1256
|
});
|
|
1258
1257
|
|
|
1259
1258
|
// ../agx-cloud/lib/mesh-core/agent.ts
|
|
1260
1259
|
function ensureAgent(agentId, options) {
|
|
1261
|
-
const dir = (0,
|
|
1262
|
-
if (!(0,
|
|
1263
|
-
(0,
|
|
1260
|
+
const dir = (0, import_path7.join)(AGENTS_DIR4, agentId);
|
|
1261
|
+
if (!(0, import_fs7.existsSync)(dir)) {
|
|
1262
|
+
(0, import_fs7.mkdirSync)(dir, { recursive: true });
|
|
1264
1263
|
}
|
|
1265
1264
|
const voice = options?.voice?.trim() || DEFAULT_VOICE;
|
|
1266
1265
|
const seed = options?.seed?.trim() || DEFAULT_SEED;
|
|
1267
|
-
const identityPath = (0,
|
|
1268
|
-
if (!(0,
|
|
1266
|
+
const identityPath = (0, import_path7.join)(dir, "identity.json");
|
|
1267
|
+
if (!(0, import_fs7.existsSync)(identityPath)) {
|
|
1269
1268
|
const identity = { name: agentId, voice, seed };
|
|
1270
|
-
(0,
|
|
1271
|
-
}
|
|
1272
|
-
const journal = (0,
|
|
1273
|
-
const reactions = (0,
|
|
1274
|
-
const comments = (0,
|
|
1275
|
-
const activity = (0,
|
|
1276
|
-
const self = (0,
|
|
1277
|
-
if (!(0,
|
|
1278
|
-
if (!(0,
|
|
1279
|
-
if (!(0,
|
|
1280
|
-
if (!(0,
|
|
1281
|
-
if (!(0,
|
|
1282
|
-
(0,
|
|
1269
|
+
(0, import_fs7.writeFileSync)(identityPath, JSON.stringify(identity, null, 2) + "\n", "utf-8");
|
|
1270
|
+
}
|
|
1271
|
+
const journal = (0, import_path7.join)(dir, "journal.jsonl");
|
|
1272
|
+
const reactions = (0, import_path7.join)(dir, "reactions.jsonl");
|
|
1273
|
+
const comments = (0, import_path7.join)(dir, "comments.jsonl");
|
|
1274
|
+
const activity = (0, import_path7.join)(dir, "activity.jsonl");
|
|
1275
|
+
const self = (0, import_path7.join)(dir, "self.md");
|
|
1276
|
+
if (!(0, import_fs7.existsSync)(journal)) (0, import_fs7.writeFileSync)(journal, "", "utf-8");
|
|
1277
|
+
if (!(0, import_fs7.existsSync)(reactions)) (0, import_fs7.writeFileSync)(reactions, "", "utf-8");
|
|
1278
|
+
if (!(0, import_fs7.existsSync)(comments)) (0, import_fs7.writeFileSync)(comments, "", "utf-8");
|
|
1279
|
+
if (!(0, import_fs7.existsSync)(activity)) (0, import_fs7.writeFileSync)(activity, "", "utf-8");
|
|
1280
|
+
if (!(0, import_fs7.existsSync)(self)) {
|
|
1281
|
+
(0, import_fs7.writeFileSync)(
|
|
1283
1282
|
self,
|
|
1284
1283
|
`---
|
|
1285
1284
|
version: 0
|
|
@@ -1292,31 +1291,31 @@ I am ${agentId}. ${seed}
|
|
|
1292
1291
|
}
|
|
1293
1292
|
}
|
|
1294
1293
|
function readIdentity(agentId) {
|
|
1295
|
-
const
|
|
1296
|
-
if (!(0,
|
|
1294
|
+
const path11 = (0, import_path7.join)(AGENTS_DIR4, agentId, "identity.json");
|
|
1295
|
+
if (!(0, import_fs7.existsSync)(path11)) return null;
|
|
1297
1296
|
try {
|
|
1298
|
-
return JSON.parse((0,
|
|
1297
|
+
return JSON.parse((0, import_fs7.readFileSync)(path11, "utf-8"));
|
|
1299
1298
|
} catch {
|
|
1300
1299
|
return null;
|
|
1301
1300
|
}
|
|
1302
1301
|
}
|
|
1303
1302
|
function listAgents() {
|
|
1304
|
-
if (!(0,
|
|
1305
|
-
return (0,
|
|
1303
|
+
if (!(0, import_fs7.existsSync)(AGENTS_DIR4)) return [];
|
|
1304
|
+
return (0, import_fs7.readdirSync)(AGENTS_DIR4, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name);
|
|
1306
1305
|
}
|
|
1307
1306
|
function getTeamSelves(excludeAgent) {
|
|
1308
1307
|
return listAgents().filter((id) => id !== excludeAgent).map((id) => readSelf(id)).filter((s) => s !== null);
|
|
1309
1308
|
}
|
|
1310
|
-
var
|
|
1309
|
+
var import_fs7, import_path7, import_os7, AGENTS_DIR4, DEFAULT_VOICE, DEFAULT_SEED;
|
|
1311
1310
|
var init_agent = __esm({
|
|
1312
1311
|
"../agx-cloud/lib/mesh-core/agent.ts"() {
|
|
1313
1312
|
"use strict";
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1313
|
+
import_fs7 = require("fs");
|
|
1314
|
+
import_path7 = require("path");
|
|
1315
|
+
import_os7 = require("os");
|
|
1317
1316
|
init_self();
|
|
1318
1317
|
init_journal();
|
|
1319
|
-
AGENTS_DIR4 = (0,
|
|
1318
|
+
AGENTS_DIR4 = (0, import_path7.join)((0, import_os7.homedir)(), ".agx", "agents");
|
|
1320
1319
|
DEFAULT_VOICE = "conversational, concise, practical";
|
|
1321
1320
|
DEFAULT_SEED = "I evolve through experience and collaboration.";
|
|
1322
1321
|
}
|
|
@@ -1338,20 +1337,20 @@ function nextUniqueId(base, used) {
|
|
|
1338
1337
|
}
|
|
1339
1338
|
function migrateAgentDirectory(oldId, newId, displayName) {
|
|
1340
1339
|
if (!oldId || !newId || oldId === newId) return;
|
|
1341
|
-
const oldDir =
|
|
1342
|
-
const newDir =
|
|
1343
|
-
if (!(0,
|
|
1344
|
-
(0,
|
|
1345
|
-
(0,
|
|
1346
|
-
const identityPath =
|
|
1347
|
-
if (!(0,
|
|
1340
|
+
const oldDir = import_path8.default.join(AGENTS_DIR5, oldId);
|
|
1341
|
+
const newDir = import_path8.default.join(AGENTS_DIR5, newId);
|
|
1342
|
+
if (!(0, import_fs8.existsSync)(oldDir) || (0, import_fs8.existsSync)(newDir)) return;
|
|
1343
|
+
(0, import_fs8.mkdirSync)(AGENTS_DIR5, { recursive: true });
|
|
1344
|
+
(0, import_fs8.renameSync)(oldDir, newDir);
|
|
1345
|
+
const identityPath = import_path8.default.join(newDir, "identity.json");
|
|
1346
|
+
if (!(0, import_fs8.existsSync)(identityPath)) return;
|
|
1348
1347
|
try {
|
|
1349
|
-
const parsed = JSON.parse((0,
|
|
1348
|
+
const parsed = JSON.parse((0, import_fs8.readFileSync)(identityPath, "utf8"));
|
|
1350
1349
|
const updated = {
|
|
1351
1350
|
...parsed,
|
|
1352
1351
|
name: typeof displayName === "string" && displayName.trim() ? displayName.trim() : newId
|
|
1353
1352
|
};
|
|
1354
|
-
(0,
|
|
1353
|
+
(0, import_fs8.writeFileSync)(identityPath, `${JSON.stringify(updated, null, 2)}
|
|
1355
1354
|
`, "utf8");
|
|
1356
1355
|
} catch {
|
|
1357
1356
|
}
|
|
@@ -1429,7 +1428,7 @@ function migrateLegacyParticipantIds(db2) {
|
|
|
1429
1428
|
}
|
|
1430
1429
|
}
|
|
1431
1430
|
function getDb() {
|
|
1432
|
-
(0,
|
|
1431
|
+
(0, import_fs8.mkdirSync)(STORE_DIR, { recursive: true });
|
|
1433
1432
|
const db2 = new import_better_sqlite32.default(DB_PATH);
|
|
1434
1433
|
db2.pragma("journal_mode = WAL");
|
|
1435
1434
|
db2.exec(`
|
|
@@ -1507,17 +1506,17 @@ function loadParticipants() {
|
|
|
1507
1506
|
db2.close();
|
|
1508
1507
|
}
|
|
1509
1508
|
}
|
|
1510
|
-
var import_better_sqlite32,
|
|
1509
|
+
var import_better_sqlite32, import_fs8, import_path8, import_os8, STORE_DIR, DB_PATH, AGENTS_DIR5;
|
|
1511
1510
|
var init_participants_store = __esm({
|
|
1512
1511
|
"../agx-cloud/lib/participants-store.ts"() {
|
|
1513
1512
|
"use strict";
|
|
1514
1513
|
import_better_sqlite32 = __toESM(require_lib());
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
STORE_DIR = process.env.AGX_GROUP_CHAT_DIR?.trim() ||
|
|
1519
|
-
DB_PATH =
|
|
1520
|
-
AGENTS_DIR5 = process.env.AGX_AGENTS_DIR?.trim() ||
|
|
1514
|
+
import_fs8 = require("fs");
|
|
1515
|
+
import_path8 = __toESM(require("path"));
|
|
1516
|
+
import_os8 = __toESM(require("os"));
|
|
1517
|
+
STORE_DIR = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path8.default.join(import_os8.default.homedir(), ".agx", "group-chat");
|
|
1518
|
+
DB_PATH = import_path8.default.join(STORE_DIR, "history.sqlite");
|
|
1519
|
+
AGENTS_DIR5 = process.env.AGX_AGENTS_DIR?.trim() || import_path8.default.join(import_os8.default.homedir(), ".agx", "agents");
|
|
1521
1520
|
}
|
|
1522
1521
|
});
|
|
1523
1522
|
|
|
@@ -1811,7 +1810,7 @@ function sqlExpr(expr) {
|
|
|
1811
1810
|
}
|
|
1812
1811
|
function getSQLiteDb() {
|
|
1813
1812
|
if (_db) return _db;
|
|
1814
|
-
const dbPath = process.env.SQLITE_DB_PATH ||
|
|
1813
|
+
const dbPath = process.env.SQLITE_DB_PATH || import_path9.default.join(AGX_DATA_DIR3, "agx-board.db");
|
|
1815
1814
|
_db = new import_better_sqlite33.default(dbPath);
|
|
1816
1815
|
const errors = validateSQLiteEnvironment(_db, dbPath);
|
|
1817
1816
|
if (errors.length > 0) {
|
|
@@ -1837,12 +1836,12 @@ ${msgs.join("\n")}`);
|
|
|
1837
1836
|
return _db;
|
|
1838
1837
|
}
|
|
1839
1838
|
function initSQLiteSchema(db2) {
|
|
1840
|
-
const ddlPath =
|
|
1841
|
-
if (!
|
|
1839
|
+
const ddlPath = import_path9.default.join(process.cwd(), "db", "sqlite", "001_agx_board_schema.sql");
|
|
1840
|
+
if (!import_fs9.default.existsSync(ddlPath)) {
|
|
1842
1841
|
console.warn(`[sqlite] DDL not found at ${ddlPath}, skipping schema init`);
|
|
1843
1842
|
return;
|
|
1844
1843
|
}
|
|
1845
|
-
const ddl =
|
|
1844
|
+
const ddl = import_fs9.default.readFileSync(ddlPath, "utf-8");
|
|
1846
1845
|
db2.exec(ddl);
|
|
1847
1846
|
}
|
|
1848
1847
|
function dropLegacyTeamsTables(db2) {
|
|
@@ -1884,6 +1883,7 @@ function runMigrations(db2) {
|
|
|
1884
1883
|
if (!agentColNames.has("model")) db2.exec("ALTER TABLE agents ADD COLUMN model TEXT");
|
|
1885
1884
|
if (!agentColNames.has("provider")) db2.exec("ALTER TABLE agents ADD COLUMN provider TEXT");
|
|
1886
1885
|
if (!agentColNames.has("color")) db2.exec("ALTER TABLE agents ADD COLUMN color TEXT");
|
|
1886
|
+
if (!agentColNames.has("title")) db2.exec("ALTER TABLE agents ADD COLUMN title TEXT");
|
|
1887
1887
|
}
|
|
1888
1888
|
db2.exec(`
|
|
1889
1889
|
CREATE TABLE IF NOT EXISTS agent_skills (
|
|
@@ -1895,6 +1895,35 @@ function runMigrations(db2) {
|
|
|
1895
1895
|
);
|
|
1896
1896
|
CREATE INDEX IF NOT EXISTS idx_agent_skills_agent ON agent_skills (agent_id);
|
|
1897
1897
|
`);
|
|
1898
|
+
db2.exec(`
|
|
1899
|
+
CREATE TABLE IF NOT EXISTS skill_learning_history (
|
|
1900
|
+
id TEXT NOT NULL PRIMARY KEY DEFAULT (lower(hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-4' || substr(hex(randomblob(2)),2) || '-' || substr('89ab',abs(random()) % 4 + 1, 1) || substr(hex(randomblob(2)),2) || '-' || hex(randomblob(6)))),
|
|
1901
|
+
provider TEXT NOT NULL,
|
|
1902
|
+
repo TEXT NOT NULL,
|
|
1903
|
+
skill_id TEXT NOT NULL,
|
|
1904
|
+
skill_label TEXT NOT NULL,
|
|
1905
|
+
status TEXT NOT NULL CHECK(status IN ('running', 'succeeded', 'failed')),
|
|
1906
|
+
command TEXT NOT NULL,
|
|
1907
|
+
error TEXT,
|
|
1908
|
+
run_started_at INTEGER,
|
|
1909
|
+
run_completed_at INTEGER,
|
|
1910
|
+
created_at INTEGER NOT NULL DEFAULT (unixepoch()),
|
|
1911
|
+
updated_at INTEGER NOT NULL DEFAULT (unixepoch())
|
|
1912
|
+
);
|
|
1913
|
+
CREATE INDEX IF NOT EXISTS idx_skill_learning_history_provider_status_updated ON skill_learning_history(provider, status, updated_at DESC);
|
|
1914
|
+
CREATE INDEX IF NOT EXISTS idx_skill_learning_history_skill_lookup ON skill_learning_history(provider, repo, skill_id, updated_at DESC);
|
|
1915
|
+
`);
|
|
1916
|
+
db2.exec(`
|
|
1917
|
+
CREATE TABLE IF NOT EXISTS agent_skill_bindings (
|
|
1918
|
+
agent_id TEXT NOT NULL REFERENCES agents(id) ON DELETE CASCADE,
|
|
1919
|
+
repo TEXT NOT NULL,
|
|
1920
|
+
skill_id TEXT NOT NULL,
|
|
1921
|
+
condition TEXT,
|
|
1922
|
+
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
|
|
1923
|
+
PRIMARY KEY (agent_id, repo, skill_id)
|
|
1924
|
+
);
|
|
1925
|
+
CREATE INDEX IF NOT EXISTS idx_agent_skill_bindings_agent ON agent_skill_bindings (agent_id, created_at);
|
|
1926
|
+
`);
|
|
1898
1927
|
db2.exec(`
|
|
1899
1928
|
CREATE TABLE IF NOT EXISTS project_agents (
|
|
1900
1929
|
project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
|
|
@@ -2244,20 +2273,20 @@ function createAdminDbClientSQLite() {
|
|
|
2244
2273
|
}
|
|
2245
2274
|
};
|
|
2246
2275
|
}
|
|
2247
|
-
var import_better_sqlite33,
|
|
2276
|
+
var import_better_sqlite33, import_fs9, import_path9, import_os9, AGX_DATA_DIR3, SqlExpression, _db, JSON_COLUMNS, SQLiteQueryBuilder, KNOWN_JSON_COLUMNS;
|
|
2248
2277
|
var init_sqlite_query_adapter = __esm({
|
|
2249
2278
|
"../agx-cloud/lib/sqlite-query-adapter.ts"() {
|
|
2250
2279
|
"use strict";
|
|
2251
2280
|
import_better_sqlite33 = __toESM(require_lib());
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2281
|
+
import_fs9 = __toESM(require("fs"));
|
|
2282
|
+
import_path9 = __toESM(require("path"));
|
|
2283
|
+
import_os9 = __toESM(require("os"));
|
|
2255
2284
|
init_auth_mode();
|
|
2256
2285
|
init_agent();
|
|
2257
2286
|
init_participants_store();
|
|
2258
2287
|
init_startup();
|
|
2259
2288
|
init_workspaces_to_projects_migration();
|
|
2260
|
-
|
|
2289
|
+
AGX_DATA_DIR3 = process.env.AGX_DATA_DIR || import_path9.default.join(import_os9.default.homedir(), ".agx");
|
|
2261
2290
|
SqlExpression = class {
|
|
2262
2291
|
constructor(expr) {
|
|
2263
2292
|
this.expr = expr;
|
|
@@ -3922,6 +3951,7 @@ async function createAgent(userId, input) {
|
|
|
3922
3951
|
description: input.description ?? null
|
|
3923
3952
|
};
|
|
3924
3953
|
if (input.id !== void 0) payload.id = input.id;
|
|
3954
|
+
if (input.title !== void 0) payload.title = input.title;
|
|
3925
3955
|
if (input.voice !== void 0) payload.voice = input.voice;
|
|
3926
3956
|
if (input.seed !== void 0) payload.seed = input.seed;
|
|
3927
3957
|
if (input.model !== void 0) payload.model = input.model;
|
|
@@ -3940,6 +3970,7 @@ async function updateAgent(id, userId, input) {
|
|
|
3940
3970
|
const db2 = createAdminDbClient();
|
|
3941
3971
|
const updatePayload = { updated_at: (/* @__PURE__ */ new Date()).toISOString() };
|
|
3942
3972
|
if (input.name !== void 0) updatePayload.name = input.name;
|
|
3973
|
+
if (input.title !== void 0) updatePayload.title = input.title;
|
|
3943
3974
|
if (input.style !== void 0) updatePayload.style = input.style;
|
|
3944
3975
|
if (input.description !== void 0) updatePayload.description = input.description;
|
|
3945
3976
|
if (input.voice !== void 0) updatePayload.voice = input.voice;
|
|
@@ -4061,7 +4092,7 @@ async function deleteProjectMemory(memoryId) {
|
|
|
4061
4092
|
}
|
|
4062
4093
|
async function getProjectThreads(projectId) {
|
|
4063
4094
|
const db2 = createAdminDbClient();
|
|
4064
|
-
const { data, error } = await db2.from("project_threads").select("*").eq("project_id", projectId).order("created_at", { ascending:
|
|
4095
|
+
const { data, error } = await db2.from("project_threads").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
|
|
4065
4096
|
if (error) {
|
|
4066
4097
|
if (isMissingRelationError2(error, "project_threads")) return [];
|
|
4067
4098
|
throw error;
|
|
@@ -4527,9 +4558,9 @@ function v4(options, buf, offset) {
|
|
|
4527
4558
|
var v4_default = v4;
|
|
4528
4559
|
|
|
4529
4560
|
// ../agx-cloud/lib/queue/sqlite-adapter.ts
|
|
4530
|
-
var
|
|
4531
|
-
var
|
|
4532
|
-
var
|
|
4561
|
+
var import_path3 = __toESM(require("path"));
|
|
4562
|
+
var import_fs3 = __toESM(require("fs"));
|
|
4563
|
+
var import_os3 = __toESM(require("os"));
|
|
4533
4564
|
init_startup();
|
|
4534
4565
|
|
|
4535
4566
|
// ../agx-cloud/lib/limits.ts
|
|
@@ -4570,8 +4601,53 @@ var WriteRateMonitor = class {
|
|
|
4570
4601
|
}
|
|
4571
4602
|
};
|
|
4572
4603
|
|
|
4573
|
-
// ../agx-cloud/lib/
|
|
4604
|
+
// ../agx-cloud/lib/debug-log.ts
|
|
4605
|
+
var import_fs2 = __toESM(require("fs"));
|
|
4606
|
+
var import_os2 = __toESM(require("os"));
|
|
4607
|
+
var import_path2 = __toESM(require("path"));
|
|
4574
4608
|
var AGX_DATA_DIR = process.env.AGX_DATA_DIR || import_path2.default.join(import_os2.default.homedir(), ".agx");
|
|
4609
|
+
var DEBUG_LOG_PATH = process.env.AGX_DEBUG_LOG_PATH || import_path2.default.join(AGX_DATA_DIR, "logs", "desktop-chat-debug.log");
|
|
4610
|
+
function ensureLogDir() {
|
|
4611
|
+
import_fs2.default.mkdirSync(import_path2.default.dirname(DEBUG_LOG_PATH), { recursive: true });
|
|
4612
|
+
}
|
|
4613
|
+
function safeReplacer(_key, value) {
|
|
4614
|
+
if (value instanceof Error) {
|
|
4615
|
+
return {
|
|
4616
|
+
name: value.name,
|
|
4617
|
+
message: value.message,
|
|
4618
|
+
stack: value.stack
|
|
4619
|
+
};
|
|
4620
|
+
}
|
|
4621
|
+
if (typeof value === "string" && value.length > 2e3) {
|
|
4622
|
+
return `${value.slice(0, 2e3)}...<truncated>`;
|
|
4623
|
+
}
|
|
4624
|
+
return value;
|
|
4625
|
+
}
|
|
4626
|
+
function writeDebugLog(event, payload) {
|
|
4627
|
+
try {
|
|
4628
|
+
ensureLogDir();
|
|
4629
|
+
const line = JSON.stringify(
|
|
4630
|
+
{
|
|
4631
|
+
ts: (/* @__PURE__ */ new Date()).toISOString(),
|
|
4632
|
+
pid: process.pid,
|
|
4633
|
+
event,
|
|
4634
|
+
...payload ? { payload } : {}
|
|
4635
|
+
},
|
|
4636
|
+
safeReplacer
|
|
4637
|
+
);
|
|
4638
|
+
import_fs2.default.appendFileSync(DEBUG_LOG_PATH, `${line}
|
|
4639
|
+
`, "utf8");
|
|
4640
|
+
} catch {
|
|
4641
|
+
}
|
|
4642
|
+
}
|
|
4643
|
+
|
|
4644
|
+
// ../agx-cloud/lib/queue/sqlite-adapter.ts
|
|
4645
|
+
var AGX_DATA_DIR2 = process.env.AGX_DATA_DIR || import_path3.default.join(import_os3.default.homedir(), ".agx");
|
|
4646
|
+
var DEFAULT_STALE_JOB_TIMEOUT_MS = 10 * 60 * 1e3;
|
|
4647
|
+
function getStaleJobTimeoutMs() {
|
|
4648
|
+
const raw = Number(process.env.AGX_QUEUE_STALE_MS);
|
|
4649
|
+
return Number.isFinite(raw) && raw > 0 ? raw : DEFAULT_STALE_JOB_TIMEOUT_MS;
|
|
4650
|
+
}
|
|
4575
4651
|
var SQLiteQueueAdapter = class {
|
|
4576
4652
|
constructor(dbPath) {
|
|
4577
4653
|
this.workers = /* @__PURE__ */ new Map();
|
|
@@ -4579,10 +4655,10 @@ var SQLiteQueueAdapter = class {
|
|
|
4579
4655
|
this.writeRateInterval = null;
|
|
4580
4656
|
this.writeMonitor = new WriteRateMonitor();
|
|
4581
4657
|
this.workerId = v4_default();
|
|
4582
|
-
const finalPath = dbPath || process.env.SQLITE_QUEUE_PATH ||
|
|
4583
|
-
const dir =
|
|
4584
|
-
if (!
|
|
4585
|
-
|
|
4658
|
+
const finalPath = dbPath || process.env.SQLITE_QUEUE_PATH || import_path3.default.join(AGX_DATA_DIR2, "agx-queue.db");
|
|
4659
|
+
const dir = import_path3.default.dirname(finalPath);
|
|
4660
|
+
if (!import_fs3.default.existsSync(dir)) {
|
|
4661
|
+
import_fs3.default.mkdirSync(dir, { recursive: true });
|
|
4586
4662
|
}
|
|
4587
4663
|
this.db = new import_better_sqlite3.default(finalPath);
|
|
4588
4664
|
const errors = validateSQLiteEnvironment(this.db, finalPath);
|
|
@@ -4647,9 +4723,23 @@ var SQLiteQueueAdapter = class {
|
|
|
4647
4723
|
options?.priority ?? 0
|
|
4648
4724
|
);
|
|
4649
4725
|
this.writeMonitor.record();
|
|
4726
|
+
writeDebugLog("queue.send", {
|
|
4727
|
+
queue: queue2,
|
|
4728
|
+
jobId: id,
|
|
4729
|
+
startAfter,
|
|
4730
|
+
retryLimit: options?.retryLimit ?? 3,
|
|
4731
|
+
priority: options?.priority ?? 0,
|
|
4732
|
+
data
|
|
4733
|
+
});
|
|
4650
4734
|
return id;
|
|
4651
4735
|
}
|
|
4652
4736
|
async work(queue2, handler, options) {
|
|
4737
|
+
writeDebugLog("queue.worker.register", {
|
|
4738
|
+
queue: queue2,
|
|
4739
|
+
batchSize: options?.batchSize ?? 1,
|
|
4740
|
+
pollInterval: options?.pollInterval ?? null,
|
|
4741
|
+
workerId: this.workerId
|
|
4742
|
+
});
|
|
4653
4743
|
this.workers.set(queue2, {
|
|
4654
4744
|
handler,
|
|
4655
4745
|
options: options || {},
|
|
@@ -4680,7 +4770,17 @@ var SQLiteQueueAdapter = class {
|
|
|
4680
4770
|
processQueue(queue2, worker) {
|
|
4681
4771
|
const batchSize = worker.options.batchSize || 1;
|
|
4682
4772
|
const now = Date.now();
|
|
4773
|
+
const staleBefore = now - getStaleJobTimeoutMs();
|
|
4683
4774
|
const jobs = this.db.transaction(() => {
|
|
4775
|
+
const reapedJobs = this.reapStaleJobs(queue2, now, staleBefore);
|
|
4776
|
+
if (reapedJobs.length > 0) {
|
|
4777
|
+
writeDebugLog("queue.reap_stale", {
|
|
4778
|
+
queue: queue2,
|
|
4779
|
+
workerId: this.workerId,
|
|
4780
|
+
staleBefore,
|
|
4781
|
+
jobs: reapedJobs
|
|
4782
|
+
});
|
|
4783
|
+
}
|
|
4684
4784
|
const candidates = this.db.prepare(`
|
|
4685
4785
|
SELECT id, data FROM agx_jobs
|
|
4686
4786
|
WHERE queue = ?
|
|
@@ -4706,6 +4806,11 @@ var SQLiteQueueAdapter = class {
|
|
|
4706
4806
|
}));
|
|
4707
4807
|
})();
|
|
4708
4808
|
if (jobs.length > 0) {
|
|
4809
|
+
writeDebugLog("queue.claim", {
|
|
4810
|
+
queue: queue2,
|
|
4811
|
+
workerId: this.workerId,
|
|
4812
|
+
jobIds: jobs.map((job) => job.id)
|
|
4813
|
+
});
|
|
4709
4814
|
this.executeJobs(jobs, worker.handler);
|
|
4710
4815
|
}
|
|
4711
4816
|
}
|
|
@@ -4713,15 +4818,22 @@ var SQLiteQueueAdapter = class {
|
|
|
4713
4818
|
try {
|
|
4714
4819
|
await handler(jobs);
|
|
4715
4820
|
this.completeJobs(jobs.map((j) => j.id));
|
|
4821
|
+
writeDebugLog("queue.complete", {
|
|
4822
|
+
jobIds: jobs.map((job) => job.id)
|
|
4823
|
+
});
|
|
4716
4824
|
} catch (err) {
|
|
4717
4825
|
this.failJobs(jobs.map((j) => j.id), err.message || String(err));
|
|
4826
|
+
writeDebugLog("queue.fail", {
|
|
4827
|
+
jobIds: jobs.map((job) => job.id),
|
|
4828
|
+
error: err
|
|
4829
|
+
});
|
|
4718
4830
|
}
|
|
4719
4831
|
}
|
|
4720
4832
|
completeJobs(ids) {
|
|
4721
4833
|
const now = Date.now();
|
|
4722
4834
|
const stmt = this.db.prepare(`
|
|
4723
4835
|
UPDATE agx_jobs
|
|
4724
|
-
SET status = 'completed', completed_at =
|
|
4836
|
+
SET status = 'completed', completed_at = ?, worker_id = NULL
|
|
4725
4837
|
WHERE id = ?
|
|
4726
4838
|
`);
|
|
4727
4839
|
this.db.transaction(() => {
|
|
@@ -4737,12 +4849,14 @@ var SQLiteQueueAdapter = class {
|
|
|
4737
4849
|
UPDATE agx_jobs
|
|
4738
4850
|
SET status = 'retry', retry_count = retry_count + 1,
|
|
4739
4851
|
start_after = ? + (retry_count * 1000 * 2), -- Exponential backoff (kinda)
|
|
4852
|
+
started_at = NULL,
|
|
4853
|
+
worker_id = NULL,
|
|
4740
4854
|
error = ?
|
|
4741
4855
|
WHERE id = ?
|
|
4742
4856
|
`);
|
|
4743
4857
|
const updateFailed = this.db.prepare(`
|
|
4744
4858
|
UPDATE agx_jobs
|
|
4745
|
-
SET status = 'failed', failed_at = ?, error = ?
|
|
4859
|
+
SET status = 'failed', failed_at = ?, started_at = NULL, worker_id = NULL, error = ?
|
|
4746
4860
|
WHERE id = ?
|
|
4747
4861
|
`);
|
|
4748
4862
|
this.db.transaction(() => {
|
|
@@ -4757,6 +4871,59 @@ var SQLiteQueueAdapter = class {
|
|
|
4757
4871
|
}
|
|
4758
4872
|
})();
|
|
4759
4873
|
}
|
|
4874
|
+
reapStaleJobs(queue2, now, staleBefore) {
|
|
4875
|
+
const staleJobs = this.db.prepare(`
|
|
4876
|
+
SELECT id, retry_count, retry_limit
|
|
4877
|
+
FROM agx_jobs
|
|
4878
|
+
WHERE queue = ?
|
|
4879
|
+
AND status = 'active'
|
|
4880
|
+
AND started_at IS NOT NULL
|
|
4881
|
+
AND started_at <= ?
|
|
4882
|
+
ORDER BY started_at ASC
|
|
4883
|
+
`).all(queue2, staleBefore);
|
|
4884
|
+
if (staleJobs.length === 0) return [];
|
|
4885
|
+
const updateRetry = this.db.prepare(`
|
|
4886
|
+
UPDATE agx_jobs
|
|
4887
|
+
SET status = 'retry',
|
|
4888
|
+
retry_count = retry_count + 1,
|
|
4889
|
+
start_after = ?,
|
|
4890
|
+
started_at = NULL,
|
|
4891
|
+
worker_id = NULL,
|
|
4892
|
+
error = ?
|
|
4893
|
+
WHERE id = ?
|
|
4894
|
+
`);
|
|
4895
|
+
const updateFailed = this.db.prepare(`
|
|
4896
|
+
UPDATE agx_jobs
|
|
4897
|
+
SET status = 'failed',
|
|
4898
|
+
failed_at = ?,
|
|
4899
|
+
started_at = NULL,
|
|
4900
|
+
worker_id = NULL,
|
|
4901
|
+
error = ?
|
|
4902
|
+
WHERE id = ?
|
|
4903
|
+
`);
|
|
4904
|
+
const reaped = [];
|
|
4905
|
+
for (const job of staleJobs) {
|
|
4906
|
+
const error = `Job exceeded active timeout of ${getStaleJobTimeoutMs()}ms`;
|
|
4907
|
+
if (job.retry_count < job.retry_limit) {
|
|
4908
|
+
updateRetry.run(now, error, job.id);
|
|
4909
|
+
reaped.push({
|
|
4910
|
+
id: job.id,
|
|
4911
|
+
fromStatus: "active",
|
|
4912
|
+
toStatus: "retry",
|
|
4913
|
+
retryCount: job.retry_count + 1
|
|
4914
|
+
});
|
|
4915
|
+
} else {
|
|
4916
|
+
updateFailed.run(now, error, job.id);
|
|
4917
|
+
reaped.push({
|
|
4918
|
+
id: job.id,
|
|
4919
|
+
fromStatus: "active",
|
|
4920
|
+
toStatus: "failed",
|
|
4921
|
+
retryCount: job.retry_count
|
|
4922
|
+
});
|
|
4923
|
+
}
|
|
4924
|
+
}
|
|
4925
|
+
return reaped;
|
|
4926
|
+
}
|
|
4760
4927
|
};
|
|
4761
4928
|
|
|
4762
4929
|
// ../agx-cloud/lib/queue/boss.ts
|
|
@@ -5018,6 +5185,8 @@ var import_crypto4 = require("crypto");
|
|
|
5018
5185
|
|
|
5019
5186
|
// ../agx-cloud/lib/cli-runner.ts
|
|
5020
5187
|
var import_child_process = require("child_process");
|
|
5188
|
+
var import_fs10 = __toESM(require("fs"));
|
|
5189
|
+
var import_path10 = __toESM(require("path"));
|
|
5021
5190
|
|
|
5022
5191
|
// ../agx-cloud/lib/sanitize.ts
|
|
5023
5192
|
function createCliChunkSanitizer() {
|
|
@@ -5296,15 +5465,177 @@ var createThoughtFilterParser = (inner) => {
|
|
|
5296
5465
|
}
|
|
5297
5466
|
};
|
|
5298
5467
|
};
|
|
5468
|
+
var AGX_WRAPPED_PROVIDERS = /* @__PURE__ */ new Set([
|
|
5469
|
+
"claude",
|
|
5470
|
+
"gemini",
|
|
5471
|
+
"ollama",
|
|
5472
|
+
"codex"
|
|
5473
|
+
]);
|
|
5474
|
+
function providerNativeCommand({
|
|
5475
|
+
provider,
|
|
5476
|
+
model,
|
|
5477
|
+
prompt,
|
|
5478
|
+
systemPrompt
|
|
5479
|
+
}) {
|
|
5480
|
+
switch (provider) {
|
|
5481
|
+
case "claude": {
|
|
5482
|
+
const args = [
|
|
5483
|
+
"-p",
|
|
5484
|
+
"--verbose",
|
|
5485
|
+
"--output-format",
|
|
5486
|
+
"stream-json",
|
|
5487
|
+
"--include-partial-messages"
|
|
5488
|
+
];
|
|
5489
|
+
if (model) args.push("--model", model);
|
|
5490
|
+
if (systemPrompt) args.push("--system-prompt", systemPrompt);
|
|
5491
|
+
args.push(prompt);
|
|
5492
|
+
return { command: "claude", args, parser: "claude-stream-json" };
|
|
5493
|
+
}
|
|
5494
|
+
case "gemini":
|
|
5495
|
+
return {
|
|
5496
|
+
command: "gemini",
|
|
5497
|
+
args: ["--yolo", "-p", systemPrompt ? `${systemPrompt}
|
|
5498
|
+
|
|
5499
|
+
${prompt}` : prompt, "-o", "stream-json"],
|
|
5500
|
+
parser: "gemini-stream-json"
|
|
5501
|
+
};
|
|
5502
|
+
case "ollama":
|
|
5503
|
+
return {
|
|
5504
|
+
command: "ollama",
|
|
5505
|
+
args: ["run", model || "llama3.2", systemPrompt ? `${systemPrompt}
|
|
5506
|
+
|
|
5507
|
+
${prompt}` : prompt],
|
|
5508
|
+
parser: "raw"
|
|
5509
|
+
};
|
|
5510
|
+
case "codex": {
|
|
5511
|
+
const codexArgs = ["exec", "--json"];
|
|
5512
|
+
if (model) codexArgs.push("--model", model);
|
|
5513
|
+
codexArgs.push(systemPrompt ? `${systemPrompt}
|
|
5514
|
+
|
|
5515
|
+
${prompt}` : prompt);
|
|
5516
|
+
return {
|
|
5517
|
+
command: "codex",
|
|
5518
|
+
args: codexArgs,
|
|
5519
|
+
parser: "codex-json"
|
|
5520
|
+
};
|
|
5521
|
+
}
|
|
5522
|
+
case "zai": {
|
|
5523
|
+
const zaiApiKey = process.env.ZAI_API_KEY?.trim();
|
|
5524
|
+
const zaiArgs = [
|
|
5525
|
+
"-p",
|
|
5526
|
+
"--verbose",
|
|
5527
|
+
"--output-format",
|
|
5528
|
+
"stream-json",
|
|
5529
|
+
"--include-partial-messages"
|
|
5530
|
+
];
|
|
5531
|
+
if (model) zaiArgs.push("--model", model);
|
|
5532
|
+
if (systemPrompt) zaiArgs.push("--system-prompt", systemPrompt);
|
|
5533
|
+
zaiArgs.push(prompt);
|
|
5534
|
+
return {
|
|
5535
|
+
command: "claude",
|
|
5536
|
+
args: zaiArgs,
|
|
5537
|
+
parser: "claude-stream-json",
|
|
5538
|
+
env: {
|
|
5539
|
+
ANTHROPIC_BASE_URL: "https://api.z.ai/api/anthropic",
|
|
5540
|
+
...zaiApiKey ? { ANTHROPIC_AUTH_TOKEN: zaiApiKey } : {}
|
|
5541
|
+
}
|
|
5542
|
+
};
|
|
5543
|
+
}
|
|
5544
|
+
default:
|
|
5545
|
+
return null;
|
|
5546
|
+
}
|
|
5547
|
+
}
|
|
5299
5548
|
function agxCommandForProvider({
|
|
5300
5549
|
provider,
|
|
5301
5550
|
model,
|
|
5302
|
-
prompt
|
|
5551
|
+
prompt,
|
|
5552
|
+
passthroughArgs
|
|
5303
5553
|
}) {
|
|
5304
5554
|
const args = [provider, "-y", "--print", "--prompt", prompt];
|
|
5305
5555
|
if (model) args.push("--model", model);
|
|
5556
|
+
if (passthroughArgs && passthroughArgs.length > 0) {
|
|
5557
|
+
args.push("--", ...passthroughArgs);
|
|
5558
|
+
}
|
|
5306
5559
|
return { command: "agx", args, parser: "raw" };
|
|
5307
5560
|
}
|
|
5561
|
+
function resolveBundledCliPath() {
|
|
5562
|
+
const explicit = process.env.AGX_CLI_PATH?.trim();
|
|
5563
|
+
if (explicit && import_fs10.default.existsSync(explicit)) return explicit;
|
|
5564
|
+
const candidates = [
|
|
5565
|
+
import_path10.default.resolve(process.cwd(), "..", "cli", "index.js"),
|
|
5566
|
+
import_path10.default.resolve(__dirname, "..", "cli", "index.js"),
|
|
5567
|
+
import_path10.default.resolve(process.execPath, "..", "..", "Resources", "cli", "index.js")
|
|
5568
|
+
];
|
|
5569
|
+
for (const candidate of candidates) {
|
|
5570
|
+
if (import_fs10.default.existsSync(candidate)) {
|
|
5571
|
+
return candidate;
|
|
5572
|
+
}
|
|
5573
|
+
}
|
|
5574
|
+
return null;
|
|
5575
|
+
}
|
|
5576
|
+
function buildCliAttempts({
|
|
5577
|
+
provider,
|
|
5578
|
+
model,
|
|
5579
|
+
prompt,
|
|
5580
|
+
systemPrompt,
|
|
5581
|
+
passthroughArgs
|
|
5582
|
+
}, deps = {}) {
|
|
5583
|
+
const exists = deps.commandExists ?? commandExists;
|
|
5584
|
+
const bundledCliPath = deps.bundledCliPath === void 0 ? resolveBundledCliPath() : deps.bundledCliPath;
|
|
5585
|
+
const attempts = [];
|
|
5586
|
+
const agxPrompt = systemPrompt ? `${systemPrompt}
|
|
5587
|
+
|
|
5588
|
+
${prompt}` : prompt;
|
|
5589
|
+
if (AGX_WRAPPED_PROVIDERS.has(provider)) {
|
|
5590
|
+
const bundledAgx = bundledAgxCommandForProvider({
|
|
5591
|
+
provider,
|
|
5592
|
+
model,
|
|
5593
|
+
prompt: agxPrompt,
|
|
5594
|
+
cliPath: bundledCliPath,
|
|
5595
|
+
passthroughArgs
|
|
5596
|
+
});
|
|
5597
|
+
if (bundledAgx) {
|
|
5598
|
+
attempts.push(bundledAgx);
|
|
5599
|
+
}
|
|
5600
|
+
if (exists("agx")) {
|
|
5601
|
+
attempts.push(
|
|
5602
|
+
agxCommandForProvider({
|
|
5603
|
+
provider,
|
|
5604
|
+
model,
|
|
5605
|
+
prompt: agxPrompt,
|
|
5606
|
+
passthroughArgs
|
|
5607
|
+
})
|
|
5608
|
+
);
|
|
5609
|
+
}
|
|
5610
|
+
return attempts;
|
|
5611
|
+
}
|
|
5612
|
+
const nativeAttempt = providerNativeCommand({
|
|
5613
|
+
provider,
|
|
5614
|
+
model,
|
|
5615
|
+
prompt,
|
|
5616
|
+
systemPrompt
|
|
5617
|
+
});
|
|
5618
|
+
if (nativeAttempt && exists(nativeAttempt.command)) {
|
|
5619
|
+
attempts.push(nativeAttempt);
|
|
5620
|
+
}
|
|
5621
|
+
return attempts;
|
|
5622
|
+
}
|
|
5623
|
+
function bundledAgxCommandForProvider({
|
|
5624
|
+
provider,
|
|
5625
|
+
model,
|
|
5626
|
+
prompt,
|
|
5627
|
+
cliPath,
|
|
5628
|
+
passthroughArgs
|
|
5629
|
+
}) {
|
|
5630
|
+
const resolvedCliPath = cliPath === void 0 ? resolveBundledCliPath() : cliPath;
|
|
5631
|
+
if (!resolvedCliPath) return null;
|
|
5632
|
+
const args = [resolvedCliPath, provider, "-y", "--print", "--prompt", prompt];
|
|
5633
|
+
if (model) args.push("--model", model);
|
|
5634
|
+
if (passthroughArgs && passthroughArgs.length > 0) {
|
|
5635
|
+
args.push("--", ...passthroughArgs);
|
|
5636
|
+
}
|
|
5637
|
+
return { command: process.execPath, args, parser: "raw" };
|
|
5638
|
+
}
|
|
5308
5639
|
async function runCommandStreamed({
|
|
5309
5640
|
command,
|
|
5310
5641
|
args,
|
|
@@ -5316,6 +5647,13 @@ async function runCommandStreamed({
|
|
|
5316
5647
|
env: extraEnv
|
|
5317
5648
|
}) {
|
|
5318
5649
|
await new Promise((resolve, reject) => {
|
|
5650
|
+
writeDebugLog("cli-runner.spawn", {
|
|
5651
|
+
command,
|
|
5652
|
+
args,
|
|
5653
|
+
timeoutMs,
|
|
5654
|
+
bundledCliPath: resolveBundledCliPath(),
|
|
5655
|
+
isElectron: process.env.AGX_ELECTRON || null
|
|
5656
|
+
});
|
|
5319
5657
|
if (onLog) onLog("stderr", `$ ${command} ${args.map((a) => a.length > 80 ? a.slice(0, 80) + "\u2026" : a).join(" ")}
|
|
5320
5658
|
`);
|
|
5321
5659
|
const child = (0, import_child_process.spawn)(command, args, {
|
|
@@ -5334,13 +5672,29 @@ async function runCommandStreamed({
|
|
|
5334
5672
|
else resolve();
|
|
5335
5673
|
};
|
|
5336
5674
|
const onAbort = () => {
|
|
5675
|
+
writeDebugLog("cli-runner.abort", {
|
|
5676
|
+
command,
|
|
5677
|
+
args,
|
|
5678
|
+
pid: child.pid ?? null
|
|
5679
|
+
});
|
|
5337
5680
|
child.kill("SIGTERM");
|
|
5338
5681
|
finalize(new Error("Chat request aborted."));
|
|
5339
5682
|
};
|
|
5340
5683
|
if (signal) signal.addEventListener("abort", onAbort, { once: true });
|
|
5341
5684
|
if (onSpawn && child.pid) onSpawn(child.pid);
|
|
5685
|
+
writeDebugLog("cli-runner.spawned", {
|
|
5686
|
+
command,
|
|
5687
|
+
args,
|
|
5688
|
+
pid: child.pid ?? null
|
|
5689
|
+
});
|
|
5342
5690
|
const timer = setTimeout(() => {
|
|
5343
5691
|
timedOut = true;
|
|
5692
|
+
writeDebugLog("cli-runner.timeout", {
|
|
5693
|
+
command,
|
|
5694
|
+
args,
|
|
5695
|
+
pid: child.pid ?? null,
|
|
5696
|
+
timeoutMs
|
|
5697
|
+
});
|
|
5344
5698
|
child.kill("SIGKILL");
|
|
5345
5699
|
finalize(new Error(`CLI request timed out after ${timeoutMs}ms.`));
|
|
5346
5700
|
}, timeoutMs);
|
|
@@ -5355,9 +5709,24 @@ async function runCommandStreamed({
|
|
|
5355
5709
|
combinedOutput += str;
|
|
5356
5710
|
if (onLog) onLog("stderr", str);
|
|
5357
5711
|
});
|
|
5358
|
-
child.on("error", (error) =>
|
|
5712
|
+
child.on("error", (error) => {
|
|
5713
|
+
writeDebugLog("cli-runner.process_error", {
|
|
5714
|
+
command,
|
|
5715
|
+
args,
|
|
5716
|
+
pid: child.pid ?? null,
|
|
5717
|
+
error
|
|
5718
|
+
});
|
|
5719
|
+
finalize(error);
|
|
5720
|
+
});
|
|
5359
5721
|
child.on("close", (code, childSignal) => {
|
|
5360
5722
|
if (done || timedOut) return;
|
|
5723
|
+
writeDebugLog("cli-runner.close", {
|
|
5724
|
+
command,
|
|
5725
|
+
args,
|
|
5726
|
+
pid: child.pid ?? null,
|
|
5727
|
+
code: code ?? null,
|
|
5728
|
+
signal: childSignal ?? null
|
|
5729
|
+
});
|
|
5361
5730
|
if (code === 0) {
|
|
5362
5731
|
finalize();
|
|
5363
5732
|
return;
|
|
@@ -5378,6 +5747,7 @@ async function runCliResponse({
|
|
|
5378
5747
|
self,
|
|
5379
5748
|
skills,
|
|
5380
5749
|
systemContext,
|
|
5750
|
+
passthroughArgs,
|
|
5381
5751
|
signal,
|
|
5382
5752
|
onDelta,
|
|
5383
5753
|
onLog,
|
|
@@ -5389,7 +5759,6 @@ async function runCliResponse({
|
|
|
5389
5759
|
const cleaned = sanitize(chunk);
|
|
5390
5760
|
if (cleaned) onDelta(cleaned);
|
|
5391
5761
|
};
|
|
5392
|
-
const attempts = [];
|
|
5393
5762
|
const systemParts = [];
|
|
5394
5763
|
if (systemContext) systemParts.push(systemContext);
|
|
5395
5764
|
if (identity) systemParts.push(`<identity>
|
|
@@ -5402,19 +5771,33 @@ ${self}
|
|
|
5402
5771
|
${skills}
|
|
5403
5772
|
</skills>`);
|
|
5404
5773
|
const systemPrompt = systemParts.length > 0 ? systemParts.join("\n\n") : void 0;
|
|
5405
|
-
|
|
5406
|
-
|
|
5407
|
-
|
|
5408
|
-
|
|
5409
|
-
|
|
5410
|
-
|
|
5774
|
+
const attempts = buildCliAttempts({
|
|
5775
|
+
provider,
|
|
5776
|
+
model,
|
|
5777
|
+
prompt,
|
|
5778
|
+
systemPrompt,
|
|
5779
|
+
passthroughArgs
|
|
5780
|
+
});
|
|
5411
5781
|
if (attempts.length === 0) {
|
|
5782
|
+
writeDebugLog("cli-runner.no_attempts", {
|
|
5783
|
+
provider,
|
|
5784
|
+
model,
|
|
5785
|
+
bundledCliPath: resolveBundledCliPath(),
|
|
5786
|
+
isElectron: process.env.AGX_ELECTRON || null
|
|
5787
|
+
});
|
|
5412
5788
|
throw new Error(
|
|
5413
5789
|
`No CLI runner available for provider "${provider}". Install agx or provider CLI.`
|
|
5414
5790
|
);
|
|
5415
5791
|
}
|
|
5416
5792
|
let lastError = null;
|
|
5417
5793
|
for (const attempt of attempts) {
|
|
5794
|
+
writeDebugLog("cli-runner.attempt", {
|
|
5795
|
+
provider,
|
|
5796
|
+
model,
|
|
5797
|
+
command: attempt.command,
|
|
5798
|
+
args: attempt.args,
|
|
5799
|
+
parser: attempt.parser
|
|
5800
|
+
});
|
|
5418
5801
|
const baseParser = attempt.parser === "claude-stream-json" ? createClaudeStreamJsonParser(wrappedOnDelta) : attempt.parser === "codex-json" ? createCodexJsonParser(wrappedOnDelta) : attempt.parser === "gemini-stream-json" ? createGeminiStreamJsonParser(wrappedOnDelta) : createRawParser(wrappedOnDelta);
|
|
5419
5802
|
const parser = attempt.filterThoughts ? createThoughtFilterParser(baseParser) : baseParser;
|
|
5420
5803
|
try {
|
|
@@ -5429,9 +5812,20 @@ ${prompt}` : prompt;
|
|
|
5429
5812
|
env: attempt.env
|
|
5430
5813
|
});
|
|
5431
5814
|
parser.flush();
|
|
5815
|
+
writeDebugLog("cli-runner.success", {
|
|
5816
|
+
provider,
|
|
5817
|
+
model,
|
|
5818
|
+
command: attempt.command
|
|
5819
|
+
});
|
|
5432
5820
|
return;
|
|
5433
5821
|
} catch (error) {
|
|
5434
5822
|
lastError = error instanceof Error ? error : new Error(String(error));
|
|
5823
|
+
writeDebugLog("cli-runner.failure", {
|
|
5824
|
+
provider,
|
|
5825
|
+
model,
|
|
5826
|
+
command: attempt.command,
|
|
5827
|
+
error: lastError
|
|
5828
|
+
});
|
|
5435
5829
|
}
|
|
5436
5830
|
}
|
|
5437
5831
|
throw lastError || new Error("CLI execution failed.");
|
|
@@ -6497,11 +6891,11 @@ var import_promises = require("fs/promises");
|
|
|
6497
6891
|
|
|
6498
6892
|
// ../agx-cloud/lib/agent-process-registry.ts
|
|
6499
6893
|
var import_better_sqlite34 = __toESM(require_lib());
|
|
6500
|
-
var
|
|
6501
|
-
var
|
|
6502
|
-
var
|
|
6503
|
-
var HISTORY_DIR = process.env.AGX_GROUP_CHAT_DIR?.trim() ||
|
|
6504
|
-
var DB_PATH2 =
|
|
6894
|
+
var import_path11 = __toESM(require("path"));
|
|
6895
|
+
var import_os10 = __toESM(require("os"));
|
|
6896
|
+
var import_fs11 = require("fs");
|
|
6897
|
+
var HISTORY_DIR = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path11.default.join(import_os10.default.homedir(), ".agx", "group-chat");
|
|
6898
|
+
var DB_PATH2 = import_path11.default.join(HISTORY_DIR, "history.sqlite");
|
|
6505
6899
|
function toEntry(row) {
|
|
6506
6900
|
return {
|
|
6507
6901
|
id: row.id,
|
|
@@ -6518,7 +6912,7 @@ function toEntry(row) {
|
|
|
6518
6912
|
};
|
|
6519
6913
|
}
|
|
6520
6914
|
function getDb2() {
|
|
6521
|
-
(0,
|
|
6915
|
+
(0, import_fs11.mkdirSync)(HISTORY_DIR, { recursive: true });
|
|
6522
6916
|
const db2 = new import_better_sqlite34.default(DB_PATH2);
|
|
6523
6917
|
db2.pragma("journal_mode = WAL");
|
|
6524
6918
|
db2.exec(`
|
|
@@ -6673,11 +7067,11 @@ function killByWorkspace(workspaceId) {
|
|
|
6673
7067
|
|
|
6674
7068
|
// ../agx-cloud/lib/history-store.ts
|
|
6675
7069
|
var import_better_sqlite35 = __toESM(require_lib());
|
|
6676
|
-
var
|
|
6677
|
-
var
|
|
6678
|
-
var
|
|
6679
|
-
var HISTORY_DIR2 = process.env.AGX_GROUP_CHAT_DIR?.trim() ||
|
|
6680
|
-
var DB_PATH3 =
|
|
7070
|
+
var import_fs12 = require("fs");
|
|
7071
|
+
var import_path12 = __toESM(require("path"));
|
|
7072
|
+
var import_os11 = __toESM(require("os"));
|
|
7073
|
+
var HISTORY_DIR2 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path12.default.join(import_os11.default.homedir(), ".agx", "group-chat");
|
|
7074
|
+
var DB_PATH3 = import_path12.default.join(HISTORY_DIR2, "history.sqlite");
|
|
6681
7075
|
var LEGACY_THREAD_ID = "global";
|
|
6682
7076
|
var REACTION_TYPES = /* @__PURE__ */ new Set([
|
|
6683
7077
|
"ack",
|
|
@@ -6686,6 +7080,8 @@ var REACTION_TYPES = /* @__PURE__ */ new Set([
|
|
|
6686
7080
|
"clarify",
|
|
6687
7081
|
"blocked"
|
|
6688
7082
|
]);
|
|
7083
|
+
var ACTIVE_AGENT_PROCESS_STALE_MS = 10 * 60 * 1e3;
|
|
7084
|
+
var ACTIVE_CHAT_RUN_STALE_MS = 10 * 60 * 1e3;
|
|
6689
7085
|
var ALLOWED_TRANSITIONS = {
|
|
6690
7086
|
ack: /* @__PURE__ */ new Set(["ack", "working"]),
|
|
6691
7087
|
working: /* @__PURE__ */ new Set(["ack", "working", "done", "clarify", "blocked"]),
|
|
@@ -6906,7 +7302,7 @@ function migrateLegacyTables(db2) {
|
|
|
6906
7302
|
migrateLogsToAgentProcessId(db2);
|
|
6907
7303
|
}
|
|
6908
7304
|
var withDatabase = async (run) => {
|
|
6909
|
-
await
|
|
7305
|
+
await import_fs12.promises.mkdir(HISTORY_DIR2, { recursive: true });
|
|
6910
7306
|
const db2 = new import_better_sqlite35.default(DB_PATH3);
|
|
6911
7307
|
db2.pragma("journal_mode = WAL");
|
|
6912
7308
|
try {
|
|
@@ -6989,6 +7385,11 @@ var withDatabase = async (run) => {
|
|
|
6989
7385
|
started_at INTEGER NOT NULL,
|
|
6990
7386
|
completed_at INTEGER
|
|
6991
7387
|
);
|
|
7388
|
+
CREATE TABLE IF NOT EXISTS thread_repo_selections (
|
|
7389
|
+
thread_id TEXT NOT NULL,
|
|
7390
|
+
repo_id TEXT NOT NULL,
|
|
7391
|
+
PRIMARY KEY (thread_id, repo_id)
|
|
7392
|
+
);
|
|
6992
7393
|
`);
|
|
6993
7394
|
migrateLegacyTables(db2);
|
|
6994
7395
|
migrateThreadReplyColumns(db2);
|
|
@@ -7088,7 +7489,31 @@ async function saveMessages(threadId, messages) {
|
|
|
7088
7489
|
insertMany(messages);
|
|
7089
7490
|
});
|
|
7090
7491
|
}
|
|
7492
|
+
async function sweepStaleChatRuns(input) {
|
|
7493
|
+
const normalizedThreadId = normalizeOptionalText(input?.threadId ?? null);
|
|
7494
|
+
const thresholdMs = Number.isFinite(input?.olderThanMs) ? Math.max(input.olderThanMs, 1) : ACTIVE_CHAT_RUN_STALE_MS;
|
|
7495
|
+
const now = Date.now();
|
|
7496
|
+
const cutoff = now - thresholdMs;
|
|
7497
|
+
return withDatabase((db2) => {
|
|
7498
|
+
const clauses = ["status = 'running'", "updated_at <= ?"];
|
|
7499
|
+
const params = [cutoff];
|
|
7500
|
+
if (normalizedThreadId) {
|
|
7501
|
+
clauses.push("thread_id = ?");
|
|
7502
|
+
params.push(normalizedThreadId);
|
|
7503
|
+
}
|
|
7504
|
+
const result = db2.prepare(
|
|
7505
|
+
`UPDATE chat_runs
|
|
7506
|
+
SET status = 'failed',
|
|
7507
|
+
last_error = COALESCE(NULLIF(last_error, ''), 'Worker process died mid-execution'),
|
|
7508
|
+
updated_at = ?,
|
|
7509
|
+
completed_at = COALESCE(completed_at, ?)
|
|
7510
|
+
WHERE ${clauses.join(" AND ")}`
|
|
7511
|
+
).run(now, now, ...params);
|
|
7512
|
+
return result.changes;
|
|
7513
|
+
});
|
|
7514
|
+
}
|
|
7091
7515
|
async function getChatRun(chatRunId) {
|
|
7516
|
+
await sweepStaleChatRuns();
|
|
7092
7517
|
return withDatabase((db2) => {
|
|
7093
7518
|
const row = db2.prepare("SELECT * FROM chat_runs WHERE id = ? LIMIT 1").get(chatRunId);
|
|
7094
7519
|
return row ? toChatRunRecord(row) : null;
|
|
@@ -7336,11 +7761,11 @@ function parseReactionSignals(content) {
|
|
|
7336
7761
|
|
|
7337
7762
|
// ../agx-cloud/lib/attachment-store.ts
|
|
7338
7763
|
var import_better_sqlite36 = __toESM(require_lib());
|
|
7339
|
-
var
|
|
7340
|
-
var
|
|
7341
|
-
var HISTORY_DIR3 = process.env.AGX_GROUP_CHAT_DIR?.trim() ||
|
|
7342
|
-
var DB_PATH4 =
|
|
7343
|
-
var UPLOADS_DIR =
|
|
7764
|
+
var import_path13 = __toESM(require("path"));
|
|
7765
|
+
var import_os12 = __toESM(require("os"));
|
|
7766
|
+
var HISTORY_DIR3 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path13.default.join(import_os12.default.homedir(), ".agx", "group-chat");
|
|
7767
|
+
var DB_PATH4 = import_path13.default.join(HISTORY_DIR3, "history.sqlite");
|
|
7768
|
+
var UPLOADS_DIR = import_path13.default.join(HISTORY_DIR3, "uploads");
|
|
7344
7769
|
function getDb3() {
|
|
7345
7770
|
const db2 = new import_better_sqlite36.default(DB_PATH4);
|
|
7346
7771
|
db2.pragma("journal_mode = WAL");
|
|
@@ -7380,7 +7805,7 @@ async function getAttachmentMeta(id) {
|
|
|
7380
7805
|
).get(id);
|
|
7381
7806
|
if (!row) return null;
|
|
7382
7807
|
const diskName = row.disk_name || id;
|
|
7383
|
-
return { filename: row.filename, mimeType: row.mime_type, size: row.size, diskPath:
|
|
7808
|
+
return { filename: row.filename, mimeType: row.mime_type, size: row.size, diskPath: import_path13.default.join(UPLOADS_DIR, diskName) };
|
|
7384
7809
|
} finally {
|
|
7385
7810
|
db2.close();
|
|
7386
7811
|
}
|
|
@@ -7393,18 +7818,18 @@ init_journal();
|
|
|
7393
7818
|
init_agent();
|
|
7394
7819
|
|
|
7395
7820
|
// ../agx-cloud/lib/mesh-core/reactions.ts
|
|
7396
|
-
var
|
|
7397
|
-
var
|
|
7398
|
-
var
|
|
7821
|
+
var import_fs13 = require("fs");
|
|
7822
|
+
var import_path14 = require("path");
|
|
7823
|
+
var import_os13 = require("os");
|
|
7399
7824
|
init_journal();
|
|
7400
7825
|
init_activity();
|
|
7401
|
-
var AGENTS_DIR6 = (0,
|
|
7826
|
+
var AGENTS_DIR6 = (0, import_path14.join)((0, import_os13.homedir)(), ".agx", "agents");
|
|
7402
7827
|
function reactionsPath(agentId) {
|
|
7403
|
-
return (0,
|
|
7828
|
+
return (0, import_path14.join)(AGENTS_DIR6, agentId, "reactions.jsonl");
|
|
7404
7829
|
}
|
|
7405
7830
|
function ensureDir2(agentId) {
|
|
7406
|
-
const dir = (0,
|
|
7407
|
-
if (!(0,
|
|
7831
|
+
const dir = (0, import_path14.join)(AGENTS_DIR6, agentId);
|
|
7832
|
+
if (!(0, import_fs13.existsSync)(dir)) (0, import_fs13.mkdirSync)(dir, { recursive: true });
|
|
7408
7833
|
}
|
|
7409
7834
|
function targetEntryExists(targetEntry) {
|
|
7410
7835
|
const [targetAgent] = targetEntry.split(":");
|
|
@@ -7423,12 +7848,183 @@ function appendReaction(agentId, targetEntry, type) {
|
|
|
7423
7848
|
targetEntry,
|
|
7424
7849
|
type
|
|
7425
7850
|
};
|
|
7426
|
-
(0,
|
|
7851
|
+
(0, import_fs13.appendFileSync)(reactionsPath(agentId), JSON.stringify(reaction) + "\n", "utf-8");
|
|
7427
7852
|
logActivity(agentId, "mesh-reaction", { meta: { target: targetEntry, type } });
|
|
7428
7853
|
}
|
|
7429
7854
|
|
|
7430
7855
|
// ../agx-cloud/lib/stream-multiplexer.ts
|
|
7431
7856
|
init_activity();
|
|
7857
|
+
|
|
7858
|
+
// ../agx-cloud/lib/agent-skill-bindings.ts
|
|
7859
|
+
var import_node_fs = __toESM(require("node:fs"));
|
|
7860
|
+
init_sqlite_query_adapter();
|
|
7861
|
+
|
|
7862
|
+
// ../agx-cloud/lib/skills-library.ts
|
|
7863
|
+
var import_node_path = __toESM(require("node:path"));
|
|
7864
|
+
var import_node_child_process = require("node:child_process");
|
|
7865
|
+
init_sqlite_query_adapter();
|
|
7866
|
+
var SKILLS_CACHE_TTL = 60 * 60 * 1e3;
|
|
7867
|
+
var SKILL_DETAIL_CACHE_TTL = 60 * 60 * 1e3;
|
|
7868
|
+
function collapseWhitespace(input) {
|
|
7869
|
+
return input.replace(/\s+/g, " ").trim();
|
|
7870
|
+
}
|
|
7871
|
+
function normalizeSkillLearnProvider(provider) {
|
|
7872
|
+
if (provider === "claude" || provider === "codex" || provider === "gemini" || provider === "zai") {
|
|
7873
|
+
return provider;
|
|
7874
|
+
}
|
|
7875
|
+
return null;
|
|
7876
|
+
}
|
|
7877
|
+
function skillAgentName(provider) {
|
|
7878
|
+
if (provider === "claude") return "claude-code";
|
|
7879
|
+
if (provider === "codex") return "codex";
|
|
7880
|
+
if (provider === "gemini") return "gemini-cli";
|
|
7881
|
+
if (provider === "zai") return "claude-code";
|
|
7882
|
+
return null;
|
|
7883
|
+
}
|
|
7884
|
+
function installedSkillPath(skillId) {
|
|
7885
|
+
return import_node_path.default.join(process.cwd(), ".agents", "skills", skillId, "SKILL.md");
|
|
7886
|
+
}
|
|
7887
|
+
function recordSkillHistory(input) {
|
|
7888
|
+
const db2 = getSQLiteDb();
|
|
7889
|
+
db2.prepare(
|
|
7890
|
+
`INSERT INTO skill_learning_history
|
|
7891
|
+
(provider, repo, skill_id, skill_label, status, command, error, run_started_at, run_completed_at, created_at, updated_at)
|
|
7892
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
|
7893
|
+
).run(
|
|
7894
|
+
input.provider,
|
|
7895
|
+
input.repo,
|
|
7896
|
+
input.skill_id,
|
|
7897
|
+
input.skill_label,
|
|
7898
|
+
input.status,
|
|
7899
|
+
input.command,
|
|
7900
|
+
input.error,
|
|
7901
|
+
input.run_started_at,
|
|
7902
|
+
input.run_completed_at,
|
|
7903
|
+
input.created_at,
|
|
7904
|
+
input.updated_at
|
|
7905
|
+
);
|
|
7906
|
+
}
|
|
7907
|
+
function installSkill(input) {
|
|
7908
|
+
const providers = Array.from(new Set(input.providers.map((provider) => normalizeSkillLearnProvider(provider)).filter(Boolean)));
|
|
7909
|
+
if (providers.length === 0) {
|
|
7910
|
+
return { ok: false, command: "", stdout: "", stderr: "", results: [], error: "No supported providers selected" };
|
|
7911
|
+
}
|
|
7912
|
+
const startedAt = Date.now();
|
|
7913
|
+
const results = [];
|
|
7914
|
+
let lastStdout = "";
|
|
7915
|
+
let lastStderr = "";
|
|
7916
|
+
let lastCommand = "";
|
|
7917
|
+
const providersByAgent = /* @__PURE__ */ new Map();
|
|
7918
|
+
for (const provider of providers) {
|
|
7919
|
+
const agent = skillAgentName(provider);
|
|
7920
|
+
if (!agent) {
|
|
7921
|
+
continue;
|
|
7922
|
+
}
|
|
7923
|
+
const group = providersByAgent.get(agent) ?? [];
|
|
7924
|
+
group.push(provider);
|
|
7925
|
+
providersByAgent.set(agent, group);
|
|
7926
|
+
}
|
|
7927
|
+
for (const [agent, agentProviders] of providersByAgent.entries()) {
|
|
7928
|
+
const args = ["--yes", "skills@latest", "add", input.repo, "--skill", input.skillId, "--agent", agent, "--yes"];
|
|
7929
|
+
lastCommand = `npx ${args.join(" ")}`;
|
|
7930
|
+
const run = (0, import_node_child_process.spawnSync)("npx", args, {
|
|
7931
|
+
cwd: process.cwd(),
|
|
7932
|
+
encoding: "utf8",
|
|
7933
|
+
timeout: 12e4,
|
|
7934
|
+
env: { ...process.env, FORCE_COLOR: "0" }
|
|
7935
|
+
});
|
|
7936
|
+
lastStdout = String(run.stdout ?? "");
|
|
7937
|
+
lastStderr = String(run.stderr ?? "");
|
|
7938
|
+
const ok = run.status === 0;
|
|
7939
|
+
for (const provider of agentProviders) {
|
|
7940
|
+
results.push({ provider, ok, agent });
|
|
7941
|
+
recordSkillHistory({
|
|
7942
|
+
provider,
|
|
7943
|
+
repo: input.repo,
|
|
7944
|
+
skill_id: input.skillId,
|
|
7945
|
+
skill_label: input.skillId,
|
|
7946
|
+
status: ok ? "succeeded" : "failed",
|
|
7947
|
+
command: lastCommand,
|
|
7948
|
+
error: ok ? null : collapseWhitespace(lastStderr || lastStdout).slice(0, 1e3),
|
|
7949
|
+
run_started_at: startedAt,
|
|
7950
|
+
run_completed_at: Date.now(),
|
|
7951
|
+
created_at: startedAt,
|
|
7952
|
+
updated_at: Date.now()
|
|
7953
|
+
});
|
|
7954
|
+
}
|
|
7955
|
+
if (!ok) {
|
|
7956
|
+
return {
|
|
7957
|
+
ok: false,
|
|
7958
|
+
command: lastCommand,
|
|
7959
|
+
stdout: lastStdout,
|
|
7960
|
+
stderr: lastStderr,
|
|
7961
|
+
results,
|
|
7962
|
+
error: collapseWhitespace(lastStderr || lastStdout) || "Installation failed"
|
|
7963
|
+
};
|
|
7964
|
+
}
|
|
7965
|
+
}
|
|
7966
|
+
return { ok: true, command: lastCommand, stdout: lastStdout, stderr: lastStderr, results };
|
|
7967
|
+
}
|
|
7968
|
+
|
|
7969
|
+
// ../agx-cloud/lib/agent-skill-bindings.ts
|
|
7970
|
+
async function getAgentSkillBindings(agentId) {
|
|
7971
|
+
const db2 = getSQLiteDb();
|
|
7972
|
+
const rows = db2.prepare("SELECT agent_id, repo, skill_id, condition, created_at FROM agent_skill_bindings WHERE agent_id = ? ORDER BY created_at ASC").all(agentId);
|
|
7973
|
+
return rows.map((row) => ({
|
|
7974
|
+
repo: row.repo,
|
|
7975
|
+
skillId: row.skill_id,
|
|
7976
|
+
...row.condition ? { condition: row.condition } : {}
|
|
7977
|
+
}));
|
|
7978
|
+
}
|
|
7979
|
+
function normalizeText(value) {
|
|
7980
|
+
return value.toLowerCase().replace(/[^a-z0-9]+/g, " ").replace(/\s+/g, " ").trim();
|
|
7981
|
+
}
|
|
7982
|
+
function uniqueTerms(input) {
|
|
7983
|
+
const seen = /* @__PURE__ */ new Set();
|
|
7984
|
+
const terms = [];
|
|
7985
|
+
for (const piece of normalizeText(input).split(" ")) {
|
|
7986
|
+
if (piece.length < 4 || seen.has(piece)) continue;
|
|
7987
|
+
seen.add(piece);
|
|
7988
|
+
terms.push(piece);
|
|
7989
|
+
}
|
|
7990
|
+
return terms;
|
|
7991
|
+
}
|
|
7992
|
+
function isBindingRelevant(binding, prompt) {
|
|
7993
|
+
const normalizedPrompt = normalizeText(prompt);
|
|
7994
|
+
if (!normalizedPrompt) return false;
|
|
7995
|
+
const explicitHints = binding.condition ? binding.condition.split(/\n|,|;|\|/g).map((item) => normalizeText(item)).filter((item) => item.length >= 4) : [];
|
|
7996
|
+
if (explicitHints.some((hint) => normalizedPrompt.includes(hint))) {
|
|
7997
|
+
return true;
|
|
7998
|
+
}
|
|
7999
|
+
const repoTail = binding.repo.split("/").filter(Boolean).pop() ?? binding.repo;
|
|
8000
|
+
const inferredTerms = [
|
|
8001
|
+
...uniqueTerms(binding.skillId),
|
|
8002
|
+
...uniqueTerms(repoTail)
|
|
8003
|
+
];
|
|
8004
|
+
return inferredTerms.some((term) => normalizedPrompt.includes(term));
|
|
8005
|
+
}
|
|
8006
|
+
function resolveBoundSkillFiles(bindings, prompt, provider) {
|
|
8007
|
+
const resolved = [];
|
|
8008
|
+
for (const binding of bindings) {
|
|
8009
|
+
if (!isBindingRelevant(binding, prompt)) continue;
|
|
8010
|
+
const file = installedSkillPath(binding.skillId);
|
|
8011
|
+
if (!import_node_fs.default.existsSync(file)) {
|
|
8012
|
+
const installResult = installSkill({
|
|
8013
|
+
repo: binding.repo,
|
|
8014
|
+
skillId: binding.skillId,
|
|
8015
|
+
providers: [provider]
|
|
8016
|
+
});
|
|
8017
|
+
if (!installResult.ok) continue;
|
|
8018
|
+
}
|
|
8019
|
+
resolved.push({
|
|
8020
|
+
file,
|
|
8021
|
+
...binding.condition ? { condition: binding.condition } : {}
|
|
8022
|
+
});
|
|
8023
|
+
}
|
|
8024
|
+
return resolved;
|
|
8025
|
+
}
|
|
8026
|
+
|
|
8027
|
+
// ../agx-cloud/lib/stream-multiplexer.ts
|
|
7432
8028
|
var import_crypto5 = require("crypto");
|
|
7433
8029
|
var agentMessageCounts = /* @__PURE__ */ new Map();
|
|
7434
8030
|
var reflectionQueues = /* @__PURE__ */ new Map();
|
|
@@ -7436,10 +8032,33 @@ var REFLECTION_CADENCE = 10;
|
|
|
7436
8032
|
function isKnowledgeEvidence(value) {
|
|
7437
8033
|
return value !== null;
|
|
7438
8034
|
}
|
|
7439
|
-
|
|
8035
|
+
var DEFAULT_RUNTIME_SEED = "I evolve through experience and collaboration.";
|
|
8036
|
+
function normalizeRuntimeSeedText(raw, name) {
|
|
8037
|
+
const collapsed = raw.replace(/\s+/g, " ").trim();
|
|
8038
|
+
if (!collapsed) return `I am ${name}. ${DEFAULT_RUNTIME_SEED}`;
|
|
8039
|
+
const withoutSecondPersonLead = collapsed.replace(
|
|
8040
|
+
/^you are\b[^.!?\n]*[.!?]?\s*/i,
|
|
8041
|
+
`I am ${name}. `
|
|
8042
|
+
);
|
|
8043
|
+
const normalized = /^i am\b/i.test(withoutSecondPersonLead) ? withoutSecondPersonLead : `I am ${name}. ${withoutSecondPersonLead}`;
|
|
8044
|
+
return normalized.slice(0, 500).trim();
|
|
8045
|
+
}
|
|
8046
|
+
function seedFromIdentityText(identity, name, explicitSeed) {
|
|
8047
|
+
const preferredSeed = String(explicitSeed || "").trim();
|
|
8048
|
+
if (preferredSeed) {
|
|
8049
|
+
return normalizeRuntimeSeedText(preferredSeed, name);
|
|
8050
|
+
}
|
|
7440
8051
|
const raw = String(identity || "").trim();
|
|
7441
|
-
if (!raw) return `I am ${name}.
|
|
7442
|
-
return
|
|
8052
|
+
if (!raw) return `I am ${name}. ${DEFAULT_RUNTIME_SEED}`;
|
|
8053
|
+
return normalizeRuntimeSeedText(raw, name);
|
|
8054
|
+
}
|
|
8055
|
+
function buildParticipantIdentity(p, identityOverride) {
|
|
8056
|
+
const parts = [
|
|
8057
|
+
String(identityOverride ?? p.identity ?? "").trim(),
|
|
8058
|
+
p.voice?.trim() ? `Voice: ${p.voice.trim()}` : "",
|
|
8059
|
+
p.seed?.trim() ? `Core orientation: ${p.seed.trim()}` : ""
|
|
8060
|
+
].filter(Boolean);
|
|
8061
|
+
return parts.length > 0 ? parts.join("\n\n") : void 0;
|
|
7443
8062
|
}
|
|
7444
8063
|
function derivePerMessageJournalInsights(response) {
|
|
7445
8064
|
const text = response.trim();
|
|
@@ -7499,8 +8118,8 @@ function derivePerMessageJournalInsights(response) {
|
|
|
7499
8118
|
}
|
|
7500
8119
|
function ensureAgentArtifacts(p, identityText) {
|
|
7501
8120
|
ensureAgent(p.id, {
|
|
7502
|
-
voice: `${p.name} style`,
|
|
7503
|
-
seed: seedFromIdentityText(identityText, p.name)
|
|
8121
|
+
voice: p.voice?.trim() || `${p.name} style`,
|
|
8122
|
+
seed: seedFromIdentityText(identityText, p.name, p.seed)
|
|
7504
8123
|
});
|
|
7505
8124
|
}
|
|
7506
8125
|
function enqueueReflection(p) {
|
|
@@ -7752,7 +8371,7 @@ function cleanParallelMentions(text, all) {
|
|
|
7752
8371
|
}
|
|
7753
8372
|
return cleaned;
|
|
7754
8373
|
}
|
|
7755
|
-
function resolveRuntimeSkills(participant, projectContext) {
|
|
8374
|
+
function resolveRuntimeSkills(participant, projectContext, prompt) {
|
|
7756
8375
|
const fromProvenance = projectContext?.provenanceByAgentId?.[participant.id]?.skills;
|
|
7757
8376
|
if (fromProvenance && fromProvenance.length > 0) {
|
|
7758
8377
|
return fromProvenance;
|
|
@@ -7765,6 +8384,12 @@ function resolveRuntimeSkills(participant, projectContext) {
|
|
|
7765
8384
|
seen.add(basename);
|
|
7766
8385
|
resolved.push({ file: skill.file, condition: skill.condition, source: "agent" });
|
|
7767
8386
|
}
|
|
8387
|
+
for (const skill of resolveBoundSkillFiles(participant.skillBindings ?? [], prompt, participant.provider)) {
|
|
8388
|
+
const basename = skill.file.split("/").pop() || skill.file;
|
|
8389
|
+
if (seen.has(basename)) continue;
|
|
8390
|
+
seen.add(basename);
|
|
8391
|
+
resolved.push({ file: skill.file, condition: skill.condition, source: "agent" });
|
|
8392
|
+
}
|
|
7768
8393
|
for (const skill of projectContext?.skills ?? []) {
|
|
7769
8394
|
const basename = skill.file.split("/").pop() || skill.file;
|
|
7770
8395
|
if (seen.has(basename)) continue;
|
|
@@ -7940,9 +8565,14 @@ async function runAgent(workspaceId, p, all, active, prompt, transcript, recentH
|
|
|
7940
8565
|
])
|
|
7941
8566
|
);
|
|
7942
8567
|
const interpolate = (text) => Object.keys(vars).length > 0 ? text.replace(/\{\{(\w+)\}\}/g, (_, key) => vars[key] ?? `{{${key}}}`) : text;
|
|
7943
|
-
|
|
8568
|
+
const interpolatedIdentity = p.identity ? interpolate(p.identity) : p.identity;
|
|
8569
|
+
const interpolatedSeed = p.seed ? interpolate(p.seed) : p.seed;
|
|
8570
|
+
let resolvedIdentity = buildParticipantIdentity(
|
|
8571
|
+
{ ...p, identity: interpolatedIdentity, seed: interpolatedSeed },
|
|
8572
|
+
interpolatedIdentity
|
|
8573
|
+
);
|
|
7944
8574
|
let selfContent;
|
|
7945
|
-
ensureAgentArtifacts(p, resolvedIdentity);
|
|
8575
|
+
ensureAgentArtifacts({ ...p, seed: interpolatedSeed }, resolvedIdentity);
|
|
7946
8576
|
const agentSelf = readSelf(p.id);
|
|
7947
8577
|
if (agentSelf?.content) {
|
|
7948
8578
|
selfContent = `[Self-Model]
|
|
@@ -7956,7 +8586,7 @@ ${agentSelf.content}`;
|
|
|
7956
8586
|
${memoryLines.join("\n")}`].filter(Boolean).join("\n\n");
|
|
7957
8587
|
}
|
|
7958
8588
|
let skillsContent;
|
|
7959
|
-
const resolvedSkills = resolveRuntimeSkills(p, projectContext);
|
|
8589
|
+
const resolvedSkills = resolveRuntimeSkills(p, projectContext, prompt);
|
|
7960
8590
|
if (resolvedSkills.length > 0) {
|
|
7961
8591
|
const parts = await Promise.all(
|
|
7962
8592
|
resolvedSkills.map(async (skill) => {
|
|
@@ -8442,24 +9072,30 @@ init_auth_mode();
|
|
|
8442
9072
|
async function loadDbParticipants() {
|
|
8443
9073
|
const agents = await getAgents(LOCAL_USER.id);
|
|
8444
9074
|
const skillsByAgent = /* @__PURE__ */ new Map();
|
|
9075
|
+
const bindingsByAgent = /* @__PURE__ */ new Map();
|
|
8445
9076
|
await Promise.all(
|
|
8446
9077
|
agents.map(async (agent) => {
|
|
8447
9078
|
skillsByAgent.set(agent.id, await getAgentSkills(agent.id));
|
|
9079
|
+
bindingsByAgent.set(agent.id, await getAgentSkillBindings(agent.id));
|
|
8448
9080
|
})
|
|
8449
9081
|
);
|
|
8450
9082
|
return agents.map((agent) => ({
|
|
8451
9083
|
id: agent.id,
|
|
8452
9084
|
name: agent.name,
|
|
9085
|
+
...agent.title ? { title: agent.title } : {},
|
|
8453
9086
|
provider: agent.provider || "claude",
|
|
8454
9087
|
model: agent.model || null,
|
|
8455
9088
|
color: agent.color || "#6B7280",
|
|
8456
9089
|
...agent.description ? { identity: agent.description } : {},
|
|
9090
|
+
...agent.voice ? { voice: agent.voice } : {},
|
|
9091
|
+
...agent.seed ? { seed: agent.seed } : {},
|
|
8457
9092
|
...skillsByAgent.get(agent.id)?.length ? {
|
|
8458
9093
|
skills: skillsByAgent.get(agent.id).map((skill) => ({
|
|
8459
9094
|
file: skill.file,
|
|
8460
9095
|
condition: skill.condition ?? ""
|
|
8461
9096
|
}))
|
|
8462
|
-
} : {}
|
|
9097
|
+
} : {},
|
|
9098
|
+
...bindingsByAgent.get(agent.id)?.length ? { skillBindings: bindingsByAgent.get(agent.id) } : {}
|
|
8463
9099
|
}));
|
|
8464
9100
|
}
|
|
8465
9101
|
|
|
@@ -8501,15 +9137,31 @@ function isChatRunPayload(value) {
|
|
|
8501
9137
|
);
|
|
8502
9138
|
}
|
|
8503
9139
|
async function handleStart2(job) {
|
|
9140
|
+
writeDebugLog("chat-processor.start.received", {
|
|
9141
|
+
jobId: job.id,
|
|
9142
|
+
chatRunId: job.data.chatRunId,
|
|
9143
|
+
signal: job.data.signal
|
|
9144
|
+
});
|
|
8504
9145
|
const chatRun = await loadChatRunActivity(job.data.chatRunId);
|
|
8505
9146
|
if (!chatRun) {
|
|
9147
|
+
writeDebugLog("chat-processor.start.missing", {
|
|
9148
|
+
chatRunId: job.data.chatRunId,
|
|
9149
|
+
jobId: job.id
|
|
9150
|
+
});
|
|
8506
9151
|
console.warn(`[chat-processor] Chat run ${job.data.chatRunId} not found, skipping`);
|
|
8507
9152
|
return;
|
|
8508
9153
|
}
|
|
8509
9154
|
if (chatRun.status === "completed" || chatRun.status === "failed" || chatRun.status === "cancelled") {
|
|
9155
|
+
writeDebugLog("chat-processor.start.skip_terminal", {
|
|
9156
|
+
chatRunId: chatRun.id,
|
|
9157
|
+
status: chatRun.status
|
|
9158
|
+
});
|
|
8510
9159
|
return;
|
|
8511
9160
|
}
|
|
8512
9161
|
if (!isChatRunPayload(chatRun.payload)) {
|
|
9162
|
+
writeDebugLog("chat-processor.start.invalid_payload", {
|
|
9163
|
+
chatRunId: chatRun.id
|
|
9164
|
+
});
|
|
8513
9165
|
await updateChatRunActivity({
|
|
8514
9166
|
id: chatRun.id,
|
|
8515
9167
|
status: "failed",
|
|
@@ -8536,10 +9188,20 @@ async function handleStart2(job) {
|
|
|
8536
9188
|
lastError: null
|
|
8537
9189
|
});
|
|
8538
9190
|
try {
|
|
9191
|
+
writeDebugLog("chat-processor.start.running", {
|
|
9192
|
+
chatRunId: chatRun.id,
|
|
9193
|
+
threadId: chatRun.threadId,
|
|
9194
|
+
rootMessageId: chatRun.rootMessageId,
|
|
9195
|
+
participantIds: chatRun.payload.participantIds
|
|
9196
|
+
});
|
|
8539
9197
|
const library = await loadDbParticipants();
|
|
8540
9198
|
const participantIdSet = new Set(chatRun.payload.participantIds);
|
|
8541
9199
|
const participants = chatRun.payload.participantIds.map((participantId) => library.find((participant) => participant.id === participantId)).filter((participant) => Boolean(participant));
|
|
8542
9200
|
if (participants.length === 0) {
|
|
9201
|
+
writeDebugLog("chat-processor.start.no_participants_resolved", {
|
|
9202
|
+
chatRunId: chatRun.id,
|
|
9203
|
+
participantIds: chatRun.payload.participantIds
|
|
9204
|
+
});
|
|
8543
9205
|
throw new Error("No participants resolved for chat run");
|
|
8544
9206
|
}
|
|
8545
9207
|
const mentioned = new Set(
|
|
@@ -8561,10 +9223,17 @@ async function handleStart2(job) {
|
|
|
8561
9223
|
rootMessageId: chatRun.payload.rootMessageId
|
|
8562
9224
|
});
|
|
8563
9225
|
const reader = stream.getReader();
|
|
9226
|
+
writeDebugLog("chat-processor.stream.open", {
|
|
9227
|
+
chatRunId: chatRun.id,
|
|
9228
|
+
participantCount: participants.length
|
|
9229
|
+
});
|
|
8564
9230
|
while (true) {
|
|
8565
9231
|
const { done } = await reader.read();
|
|
8566
9232
|
if (done) break;
|
|
8567
9233
|
}
|
|
9234
|
+
writeDebugLog("chat-processor.stream.complete", {
|
|
9235
|
+
chatRunId: chatRun.id
|
|
9236
|
+
});
|
|
8568
9237
|
await completeChatRunStepActivity({
|
|
8569
9238
|
stepId: step.id,
|
|
8570
9239
|
status: "completed",
|
|
@@ -8582,8 +9251,17 @@ async function handleStart2(job) {
|
|
|
8582
9251
|
rootMessageId: chatRun.payload.rootMessageId
|
|
8583
9252
|
}
|
|
8584
9253
|
});
|
|
9254
|
+
writeDebugLog("chat-processor.complete", {
|
|
9255
|
+
chatRunId: chatRun.id,
|
|
9256
|
+
rootMessageId: chatRun.payload.rootMessageId
|
|
9257
|
+
});
|
|
8585
9258
|
} catch (error) {
|
|
8586
9259
|
const message = error instanceof Error ? error.message : String(error);
|
|
9260
|
+
writeDebugLog("chat-processor.error", {
|
|
9261
|
+
chatRunId: chatRun.id,
|
|
9262
|
+
error,
|
|
9263
|
+
message
|
|
9264
|
+
});
|
|
8587
9265
|
await completeChatRunStepActivity({
|
|
8588
9266
|
stepId: step.id,
|
|
8589
9267
|
status: "failed",
|
|
@@ -8599,6 +9277,10 @@ async function handleStart2(job) {
|
|
|
8599
9277
|
}
|
|
8600
9278
|
}
|
|
8601
9279
|
async function handleCancel2(job) {
|
|
9280
|
+
writeDebugLog("chat-processor.cancel.received", {
|
|
9281
|
+
jobId: job.id,
|
|
9282
|
+
chatRunId: job.data.chatRunId
|
|
9283
|
+
});
|
|
8602
9284
|
const chatRun = await loadChatRunActivity(job.data.chatRunId);
|
|
8603
9285
|
if (!chatRun) return;
|
|
8604
9286
|
if (chatRun.rootMessageId) {
|
|
@@ -8613,6 +9295,10 @@ async function handleCancel2(job) {
|
|
|
8613
9295
|
completedAt: Date.now(),
|
|
8614
9296
|
result: { cancelled: true }
|
|
8615
9297
|
});
|
|
9298
|
+
writeDebugLog("chat-processor.cancel.complete", {
|
|
9299
|
+
chatRunId: chatRun.id,
|
|
9300
|
+
threadId: chatRun.threadId
|
|
9301
|
+
});
|
|
8616
9302
|
}
|
|
8617
9303
|
async function processSingleJob2(job) {
|
|
8618
9304
|
switch (job.data.signal) {
|