@mndrk/agx 1.4.61 → 1.4.62
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/Projects/Agents/agx-cloud/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/app-build-manifest.json +80 -73
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/app-path-routes-manifest.json +10 -9
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/build-manifest.json +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/prerender-manifest.json +15 -15
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/routes-manifest.json +8 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/audit/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/[...nextauth]/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/daemon-secret/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/device/code/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/device/token/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/domains/[id]/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/domains/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/learnings/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/logs/stream/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/start/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/status/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/complete/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/stage-prompts/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/[commentId]/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/costs/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/dependencies/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/dependencies/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/heartbeat/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/history/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/stream/route.js +11 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/stream/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/stream/route_client-reference-manifest.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/restart-stage/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/stream/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/user-settings/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/[id]/nodes/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/[id]/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/callback/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device/page.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device.html +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard/page.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/tasks/page.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/tasks/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/tasks/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/workflow/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app-paths-manifest.json +10 -9
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/6317.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/7143.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{4269.js → 8666.js} +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/functions-config-manifest.json +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/404.html +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/500.html +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/{3424-b2ffdccf784b0ce5.js → 8960-720130c8c9bf5b1c.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/{auth/daemon-secret/route-04c3c3cacd67004b.js → audit/route-bee7977512f30f17.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/{device/code/route-04c3c3cacd67004b.js → [...nextauth]/route-bee7977512f30f17.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/{audit/route-04c3c3cacd67004b.js → auth/daemon-secret/route-bee7977512f30f17.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/{[...nextauth]/route-04c3c3cacd67004b.js → device/code/route-bee7977512f30f17.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/token/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/refresh/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/status/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/[id]/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/health/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/learnings/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/logs/stream/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/cancel/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/signal/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/start/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/status/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/[id]/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/providers/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/complete/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/stage-prompts/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/[commentId]/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/costs/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/dependencies/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/heartbeat/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/history/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/logs/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/logs/stream/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/restart-stage/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/stream/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/user-settings/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/nodes/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/callback/route-bee7977512f30f17.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/device/{page-1c6069a7a4dd058d.js → page-39c6907dc645eb6f.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/dashboard/{page-445516e005034dd0.js → page-d35f0d29790d06ca.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/{page-f1c8a838c838b996.js → page-d097a2c0e0fc17cf.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/tasks/{page-c76247052ae5aa25.js → page-444e63f0464b1d40.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/worker/index.js +356 -9
- package/lib/cli/runCli.js +132 -25
- package/lib/commands/templates.js +83 -0
- package/lib/notifications/webhooks.js +123 -0
- package/lib/templates.js +123 -0
- package/package.json +3 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/token/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/refresh/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/status/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/[id]/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/health/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/learnings/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/logs/stream/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/cancel/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/signal/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/start/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/status/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/[id]/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/providers/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/complete/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/stage-prompts/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/[commentId]/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/costs/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/dependencies/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/heartbeat/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/history/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/logs/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/restart-stage/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/stream/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/user-settings/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/nodes/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/route-04c3c3cacd67004b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/callback/route-04c3c3cacd67004b.js +0 -1
- /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{x2zqTGbGGK8nA-dlhcQDx → _knBrbKtV87NnpUclVMJo}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{x2zqTGbGGK8nA-dlhcQDx → _knBrbKtV87NnpUclVMJo}/_ssgManifest.js +0 -0
|
@@ -11768,11 +11768,11 @@ var init_worker = __esm({
|
|
|
11768
11768
|
loopDelayPromise = null;
|
|
11769
11769
|
beenNotified = false;
|
|
11770
11770
|
runPromise = null;
|
|
11771
|
-
constructor({ id, name, options, interval, fetch, onFetch, onError }) {
|
|
11771
|
+
constructor({ id, name, options, interval, fetch: fetch2, onFetch, onError }) {
|
|
11772
11772
|
this.id = id;
|
|
11773
11773
|
this.name = name;
|
|
11774
11774
|
this.options = options;
|
|
11775
|
-
this.fetch =
|
|
11775
|
+
this.fetch = fetch2;
|
|
11776
11776
|
this.onFetch = onFetch;
|
|
11777
11777
|
this.onError = onError;
|
|
11778
11778
|
this.interval = interval;
|
|
@@ -12181,7 +12181,7 @@ var init_manager = __esm({
|
|
|
12181
12181
|
}
|
|
12182
12182
|
const firstWorkerId = (0, import_node_crypto.randomUUID)({ disableEntropyCache: true });
|
|
12183
12183
|
const createWorker = (workerId) => {
|
|
12184
|
-
const
|
|
12184
|
+
const fetch2 = () => {
|
|
12185
12185
|
const ignoreGroups = localGroupConcurrency != null ? this.#getGroupsAtLocalCapacity(name) : void 0;
|
|
12186
12186
|
return this.fetch(name, { batchSize, includeMetadata, priority, orderByCreatedOn, groupConcurrency, ignoreGroups });
|
|
12187
12187
|
};
|
|
@@ -12214,7 +12214,7 @@ var init_manager = __esm({
|
|
|
12214
12214
|
const onError = (error) => {
|
|
12215
12215
|
this.emit(events.error, { ...error, message: error.message, stack: error.stack, queue: name, worker: workerId });
|
|
12216
12216
|
};
|
|
12217
|
-
return new worker_default({ id: workerId, name, options, interval, fetch, onFetch, onError });
|
|
12217
|
+
return new worker_default({ id: workerId, name, options, interval, fetch: fetch2, onFetch, onError });
|
|
12218
12218
|
};
|
|
12219
12219
|
for (let i = 0; i < localConcurrency; i++) {
|
|
12220
12220
|
const workerId = i === 0 ? firstWorkerId : (0, import_node_crypto.randomUUID)({ disableEntropyCache: true });
|
|
@@ -18872,8 +18872,129 @@ function isDependencyBlockedReason(reason) {
|
|
|
18872
18872
|
return typeof reason === "string" && reason.startsWith(DEPENDENCY_BLOCKED_REASON_PREFIX);
|
|
18873
18873
|
}
|
|
18874
18874
|
|
|
18875
|
-
// ../agx-cloud/lib/
|
|
18875
|
+
// ../agx-cloud/lib/notifications/constants.ts
|
|
18876
|
+
var NOTIFICATION_EVENT_OPTIONS = [
|
|
18877
|
+
{
|
|
18878
|
+
value: "task.created",
|
|
18879
|
+
label: "Task created",
|
|
18880
|
+
description: "Fires immediately when a new task is added to the queue."
|
|
18881
|
+
},
|
|
18882
|
+
{
|
|
18883
|
+
value: "task.stage_complete",
|
|
18884
|
+
label: "Stage completed",
|
|
18885
|
+
description: "Emitted whenever a stage finishes and the task advances."
|
|
18886
|
+
},
|
|
18887
|
+
{
|
|
18888
|
+
value: "task.completed",
|
|
18889
|
+
label: "Task completed",
|
|
18890
|
+
description: "When the task reaches a completed status (done)."
|
|
18891
|
+
},
|
|
18892
|
+
{
|
|
18893
|
+
value: "task.failed",
|
|
18894
|
+
label: "Task failed",
|
|
18895
|
+
description: "When the task may have errored, including cancellations."
|
|
18896
|
+
},
|
|
18897
|
+
{
|
|
18898
|
+
value: "task.blocked",
|
|
18899
|
+
label: "Task blocked",
|
|
18900
|
+
description: "When the agent raises the task as blocked awaiting manual input."
|
|
18901
|
+
}
|
|
18902
|
+
];
|
|
18903
|
+
var NOTIFICATION_EVENT_VALUES = NOTIFICATION_EVENT_OPTIONS.map((option) => option.value);
|
|
18904
|
+
|
|
18905
|
+
// ../agx-cloud/lib/notifications/index.ts
|
|
18906
|
+
var SchemaNotReadyError = class extends Error {
|
|
18907
|
+
};
|
|
18876
18908
|
function isMissingRelationError(error, relation) {
|
|
18909
|
+
if (!error || typeof error !== "object") return false;
|
|
18910
|
+
const code = error.code;
|
|
18911
|
+
const message = typeof error.message === "string" ? error.message : "";
|
|
18912
|
+
return code === "42P01" || code === "PGRST205" || message.includes(`relation "${relation}" does not exist`) || message.includes(`Could not find the table 'agx.${relation}'`) || message.includes(`Could not find the table 'public.${relation}'`);
|
|
18913
|
+
}
|
|
18914
|
+
function mapWebhookRecord(raw) {
|
|
18915
|
+
const events5 = Array.isArray(raw.events) ? raw.events.filter((value) => typeof value === "string").map((value) => value.trim()).filter(
|
|
18916
|
+
(value) => NOTIFICATION_EVENT_VALUES.includes(value)
|
|
18917
|
+
) : [];
|
|
18918
|
+
return {
|
|
18919
|
+
id: String(raw.id),
|
|
18920
|
+
user_id: String(raw.user_id),
|
|
18921
|
+
url: String(raw.url),
|
|
18922
|
+
name: raw.name != null ? String(raw.name) : null,
|
|
18923
|
+
events: events5,
|
|
18924
|
+
enabled: raw.enabled !== false,
|
|
18925
|
+
created_at: String(raw.created_at),
|
|
18926
|
+
updated_at: String(raw.updated_at)
|
|
18927
|
+
};
|
|
18928
|
+
}
|
|
18929
|
+
async function handleRelationError(relation, error) {
|
|
18930
|
+
if (isMissingRelationError(error, relation)) {
|
|
18931
|
+
throw new SchemaNotReadyError(`Missing relation: ${relation}`);
|
|
18932
|
+
}
|
|
18933
|
+
throw error;
|
|
18934
|
+
}
|
|
18935
|
+
async function listNotificationWebhooks(userId) {
|
|
18936
|
+
const db = createAdminDbClient();
|
|
18937
|
+
const { data, error } = await db.from("notification_webhooks").select("*").eq("user_id", userId).order("created_at", { ascending: false });
|
|
18938
|
+
if (error) {
|
|
18939
|
+
await handleRelationError("notification_webhooks", error);
|
|
18940
|
+
}
|
|
18941
|
+
if (!data) return [];
|
|
18942
|
+
return (Array.isArray(data) ? data : [data]).map(mapWebhookRecord);
|
|
18943
|
+
}
|
|
18944
|
+
async function notifyTaskEvent(payload) {
|
|
18945
|
+
if (!payload.userId) return;
|
|
18946
|
+
let endpoints = [];
|
|
18947
|
+
try {
|
|
18948
|
+
endpoints = await listNotificationWebhooks(payload.userId);
|
|
18949
|
+
} catch (error) {
|
|
18950
|
+
if (error instanceof SchemaNotReadyError) {
|
|
18951
|
+
console.debug("[notifications] notification_webhooks schema not ready, skipping");
|
|
18952
|
+
return;
|
|
18953
|
+
}
|
|
18954
|
+
console.error("[notifications] failed to load webhooks", error);
|
|
18955
|
+
return;
|
|
18956
|
+
}
|
|
18957
|
+
const targets = endpoints.filter(
|
|
18958
|
+
(endpoint) => endpoint.enabled && endpoint.events.includes(payload.eventType)
|
|
18959
|
+
);
|
|
18960
|
+
if (!targets.length) return;
|
|
18961
|
+
const timestamp = payload.timestamp || (/* @__PURE__ */ new Date()).toISOString();
|
|
18962
|
+
const body = {
|
|
18963
|
+
eventType: payload.eventType,
|
|
18964
|
+
taskId: payload.taskId,
|
|
18965
|
+
userId: payload.userId,
|
|
18966
|
+
title: payload.title || null,
|
|
18967
|
+
slug: payload.slug || null,
|
|
18968
|
+
stage: payload.stage || null,
|
|
18969
|
+
previousStage: payload.previousStage || null,
|
|
18970
|
+
nextStage: payload.nextStage || null,
|
|
18971
|
+
status: payload.status || null,
|
|
18972
|
+
error: payload.error || null,
|
|
18973
|
+
timestamp,
|
|
18974
|
+
details: payload.details || {}
|
|
18975
|
+
};
|
|
18976
|
+
await Promise.all(
|
|
18977
|
+
targets.map(async (endpoint) => {
|
|
18978
|
+
try {
|
|
18979
|
+
const response = await fetch(endpoint.url, {
|
|
18980
|
+
method: "POST",
|
|
18981
|
+
headers: { "Content-Type": "application/json" },
|
|
18982
|
+
body: JSON.stringify(body)
|
|
18983
|
+
});
|
|
18984
|
+
if (!response.ok) {
|
|
18985
|
+
console.error(
|
|
18986
|
+
`[notifications] webhook ${endpoint.url} responded with ${response.status}`
|
|
18987
|
+
);
|
|
18988
|
+
}
|
|
18989
|
+
} catch (error) {
|
|
18990
|
+
console.error(`[notifications] failed to send to ${endpoint.url}`, error);
|
|
18991
|
+
}
|
|
18992
|
+
})
|
|
18993
|
+
);
|
|
18994
|
+
}
|
|
18995
|
+
|
|
18996
|
+
// ../agx-cloud/lib/db.ts
|
|
18997
|
+
function isMissingRelationError2(error, relation) {
|
|
18877
18998
|
if (!error) return false;
|
|
18878
18999
|
const message = typeof error.message === "string" ? error.message : "";
|
|
18879
19000
|
return error.code === "42P01" || error.code === "PGRST205" || message.includes(`relation "${relation}" does not exist`) || message.includes(`Could not find the table 'agx.${relation}'`) || message.includes(`Could not find the table 'public.${relation}'`);
|
|
@@ -19084,13 +19205,36 @@ async function updateTask(id, content, userId, options) {
|
|
|
19084
19205
|
}
|
|
19085
19206
|
await ensureTaskDependencyState(data, userId);
|
|
19086
19207
|
const refreshed = await getTask(data.id, userId);
|
|
19087
|
-
|
|
19208
|
+
const taskRecord = refreshed || data;
|
|
19209
|
+
const resolvedUserId = userId || taskRecord.user_id;
|
|
19210
|
+
if (resolvedUserId) {
|
|
19211
|
+
const eventTimestamp = taskRecord.created_at || (/* @__PURE__ */ new Date()).toISOString();
|
|
19212
|
+
const details = {
|
|
19213
|
+
dependsOn: Array.isArray(taskRecord.depends_on) ? taskRecord.depends_on : [],
|
|
19214
|
+
project: taskRecord.project || null,
|
|
19215
|
+
projectId: taskRecord.project_id || null,
|
|
19216
|
+
workflowId: taskRecord.workflow_id || null,
|
|
19217
|
+
createdBy: taskRecord.created_by || null
|
|
19218
|
+
};
|
|
19219
|
+
void notifyTaskEvent({
|
|
19220
|
+
taskId: taskRecord.id,
|
|
19221
|
+
userId: resolvedUserId,
|
|
19222
|
+
eventType: "task.created",
|
|
19223
|
+
title: taskRecord.title || null,
|
|
19224
|
+
slug: taskRecord.slug || null,
|
|
19225
|
+
stage: taskRecord.stage || null,
|
|
19226
|
+
status: taskRecord.status || null,
|
|
19227
|
+
timestamp: eventTimestamp,
|
|
19228
|
+
details
|
|
19229
|
+
});
|
|
19230
|
+
}
|
|
19231
|
+
return taskRecord;
|
|
19088
19232
|
}
|
|
19089
19233
|
async function getWorkflowNodes(workflowId) {
|
|
19090
19234
|
const db = createAdminDbClient();
|
|
19091
19235
|
const { data, error } = await db.from("workflow_nodes").select("*").eq("workflow_id", workflowId).order("position", { ascending: true });
|
|
19092
19236
|
if (error) {
|
|
19093
|
-
if (
|
|
19237
|
+
if (isMissingRelationError2(error, "workflow_nodes")) return [];
|
|
19094
19238
|
throw error;
|
|
19095
19239
|
}
|
|
19096
19240
|
return data || [];
|
|
@@ -19099,7 +19243,7 @@ async function getWorkflowNodeByName(workflowId, name) {
|
|
|
19099
19243
|
const db = createAdminDbClient();
|
|
19100
19244
|
const { data, error } = await db.from("workflow_nodes").select("*").eq("workflow_id", workflowId).eq("name", name).maybeSingle();
|
|
19101
19245
|
if (error) {
|
|
19102
|
-
if (
|
|
19246
|
+
if (isMissingRelationError2(error, "workflow_nodes")) return null;
|
|
19103
19247
|
throw error;
|
|
19104
19248
|
}
|
|
19105
19249
|
return data;
|
|
@@ -19108,7 +19252,7 @@ async function getWorkflowTransitionsFromNode(workflowId, fromNodeId) {
|
|
|
19108
19252
|
const db = createAdminDbClient();
|
|
19109
19253
|
const { data, error } = await db.from("workflow_transitions").select("*").eq("workflow_id", workflowId).eq("from_node_id", fromNodeId).order("priority", { ascending: true });
|
|
19110
19254
|
if (error) {
|
|
19111
|
-
if (
|
|
19255
|
+
if (isMissingRelationError2(error, "workflow_transitions")) return [];
|
|
19112
19256
|
throw error;
|
|
19113
19257
|
}
|
|
19114
19258
|
return data || [];
|
|
@@ -19135,6 +19279,24 @@ var DEFAULT_STAGE_SEQUENCE = [
|
|
|
19135
19279
|
"done"
|
|
19136
19280
|
];
|
|
19137
19281
|
var STANDARD_STAGE_SEQUENCES = [DEFAULT_STAGE_SEQUENCE];
|
|
19282
|
+
function normalizeTicketType(value) {
|
|
19283
|
+
if (typeof value !== "string") return "task";
|
|
19284
|
+
const normalized = value.trim().toLowerCase();
|
|
19285
|
+
if (normalized === "spike" || normalized === "spikes") return "spike";
|
|
19286
|
+
return "task";
|
|
19287
|
+
}
|
|
19288
|
+
function getTicketType(frontmatter, markdownBody) {
|
|
19289
|
+
const typeKeys = ["ticket_type", "type", "issue_type", "kind"];
|
|
19290
|
+
for (const key of typeKeys) {
|
|
19291
|
+
if (normalizeTicketType(frontmatter[key]) === "spike") return "spike";
|
|
19292
|
+
}
|
|
19293
|
+
const titleMatch = markdownBody.match(/^#\s+(.+)$/m);
|
|
19294
|
+
const title = titleMatch?.[1]?.trim().toLowerCase() || "";
|
|
19295
|
+
if (title.startsWith("spike:") || title.startsWith("[spike]")) {
|
|
19296
|
+
return "spike";
|
|
19297
|
+
}
|
|
19298
|
+
return "task";
|
|
19299
|
+
}
|
|
19138
19300
|
function getNextStage(currentStage, ticketType) {
|
|
19139
19301
|
if (ticketType === "spike") {
|
|
19140
19302
|
if (currentStage === "ideation") return "planning";
|
|
@@ -19334,6 +19496,131 @@ ${stringifyFrontmatter(frontmatter)}
|
|
|
19334
19496
|
${body}`;
|
|
19335
19497
|
}
|
|
19336
19498
|
|
|
19499
|
+
// ../agx-cloud/lib/dependency-manager.ts
|
|
19500
|
+
var READY_STATUS = "completed";
|
|
19501
|
+
function describeDependency2(dep) {
|
|
19502
|
+
return dep.title || dep.slug || dep.id || "(unknown)";
|
|
19503
|
+
}
|
|
19504
|
+
function summarizeRecord(record, id) {
|
|
19505
|
+
if (!record) {
|
|
19506
|
+
return { id: id || "" };
|
|
19507
|
+
}
|
|
19508
|
+
return {
|
|
19509
|
+
id: record.id || id || "",
|
|
19510
|
+
title: record.title || void 0,
|
|
19511
|
+
slug: record.slug || void 0,
|
|
19512
|
+
status: record.status,
|
|
19513
|
+
stage: record.stage
|
|
19514
|
+
};
|
|
19515
|
+
}
|
|
19516
|
+
async function fetchTasksByIds(ids, userId) {
|
|
19517
|
+
if (!ids.length) return [];
|
|
19518
|
+
const db = createAdminDbClient();
|
|
19519
|
+
let query = db.from("tasks").select("id, title, slug, status, stage").in("id", ids);
|
|
19520
|
+
if (userId) {
|
|
19521
|
+
query = query.eq("user_id", userId);
|
|
19522
|
+
}
|
|
19523
|
+
const { data } = await query;
|
|
19524
|
+
const map = /* @__PURE__ */ new Map();
|
|
19525
|
+
if (Array.isArray(data)) {
|
|
19526
|
+
for (const row of data) {
|
|
19527
|
+
if (row && row.id) {
|
|
19528
|
+
map.set(row.id, summarizeRecord(row, row.id));
|
|
19529
|
+
}
|
|
19530
|
+
}
|
|
19531
|
+
}
|
|
19532
|
+
return ids.map((id) => map.get(id) || { id });
|
|
19533
|
+
}
|
|
19534
|
+
function formatMissingDependencies(missing) {
|
|
19535
|
+
if (!missing.length) return "";
|
|
19536
|
+
const maxItems = 3;
|
|
19537
|
+
const entries = missing.slice(0, maxItems).map((dep) => {
|
|
19538
|
+
const label = describeDependency2(dep);
|
|
19539
|
+
const suffix = dep.status ? ` (${dep.status})` : "";
|
|
19540
|
+
return `${label}${suffix}`;
|
|
19541
|
+
});
|
|
19542
|
+
let message = `Waiting on dependencies: ${entries.join(", ")}`;
|
|
19543
|
+
if (missing.length > maxItems) {
|
|
19544
|
+
message += ` +${missing.length - maxItems} more`;
|
|
19545
|
+
}
|
|
19546
|
+
return message;
|
|
19547
|
+
}
|
|
19548
|
+
async function getMissingDependencies(task, userId) {
|
|
19549
|
+
const dependsOn = Array.isArray(task.depends_on) ? task.depends_on : [];
|
|
19550
|
+
if (!dependsOn.length) return [];
|
|
19551
|
+
const records = await fetchTasksByIds(dependsOn, userId);
|
|
19552
|
+
return records.filter((dep) => (dep.status || "") !== READY_STATUS);
|
|
19553
|
+
}
|
|
19554
|
+
async function attemptStartTask(taskId, userId, options) {
|
|
19555
|
+
const resolvedUserId = userId || LOCAL_USER.id;
|
|
19556
|
+
const task = await getTask(taskId, resolvedUserId);
|
|
19557
|
+
if (!task) {
|
|
19558
|
+
throw new Error(`Task not found: ${taskId}`);
|
|
19559
|
+
}
|
|
19560
|
+
const missingDependencies = await getMissingDependencies(task, resolvedUserId);
|
|
19561
|
+
if (missingDependencies.length) {
|
|
19562
|
+
const reason = formatMissingDependencies(missingDependencies);
|
|
19563
|
+
const adminDb2 = createAdminDbClient();
|
|
19564
|
+
const { error: error2 } = await adminDb2.from("tasks").update({
|
|
19565
|
+
status: "blocked",
|
|
19566
|
+
blocked_reason: reason,
|
|
19567
|
+
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
19568
|
+
}).eq("id", taskId);
|
|
19569
|
+
if (error2 && error2.code !== "42703") {
|
|
19570
|
+
throw error2;
|
|
19571
|
+
}
|
|
19572
|
+
return {
|
|
19573
|
+
started: false,
|
|
19574
|
+
missingDependencies,
|
|
19575
|
+
blockedReason: reason
|
|
19576
|
+
};
|
|
19577
|
+
}
|
|
19578
|
+
if (!options?.force && task.status === "queued" && !task.blocked_reason) {
|
|
19579
|
+
return {
|
|
19580
|
+
started: false,
|
|
19581
|
+
missingDependencies: [],
|
|
19582
|
+
alreadyQueued: true
|
|
19583
|
+
};
|
|
19584
|
+
}
|
|
19585
|
+
const { frontmatter, body } = parseFrontmatter(task.content || "");
|
|
19586
|
+
const ticketType = options?.ticketType ?? getTicketType(frontmatter, body);
|
|
19587
|
+
const boss2 = await getBoss();
|
|
19588
|
+
const jobId = await boss2.send(QUEUE_NAMES.TASK_PROCESS, {
|
|
19589
|
+
taskId,
|
|
19590
|
+
userId: resolvedUserId,
|
|
19591
|
+
signal: "start",
|
|
19592
|
+
ticketType
|
|
19593
|
+
});
|
|
19594
|
+
const adminDb = createAdminDbClient();
|
|
19595
|
+
const { error } = await adminDb.from("tasks").update({
|
|
19596
|
+
status: "queued",
|
|
19597
|
+
blocked_reason: null,
|
|
19598
|
+
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
19599
|
+
}).eq("id", taskId);
|
|
19600
|
+
if (error && error.code !== "42703") {
|
|
19601
|
+
throw error;
|
|
19602
|
+
}
|
|
19603
|
+
return {
|
|
19604
|
+
started: Boolean(jobId),
|
|
19605
|
+
jobId,
|
|
19606
|
+
missingDependencies: [],
|
|
19607
|
+
ticketType
|
|
19608
|
+
};
|
|
19609
|
+
}
|
|
19610
|
+
async function triggerDependentTasks(taskId, userId) {
|
|
19611
|
+
const resolvedUserId = userId || LOCAL_USER.id;
|
|
19612
|
+
const db = createAdminDbClient();
|
|
19613
|
+
let query = db.from("tasks").select("id").contains("depends_on", [taskId]);
|
|
19614
|
+
if (userId) {
|
|
19615
|
+
query = query.eq("user_id", userId);
|
|
19616
|
+
}
|
|
19617
|
+
const { data } = await query;
|
|
19618
|
+
if (!Array.isArray(data) || !data.length) return;
|
|
19619
|
+
await Promise.all(
|
|
19620
|
+
data.map((row) => row?.id).filter(Boolean).map((dependentId) => attemptStartTask(dependentId, resolvedUserId))
|
|
19621
|
+
);
|
|
19622
|
+
}
|
|
19623
|
+
|
|
19337
19624
|
// ../agx-cloud/lib/orchestrator/activities.ts
|
|
19338
19625
|
function isMissingStageDecisionsError(error) {
|
|
19339
19626
|
if (!error || typeof error !== "object") return false;
|
|
@@ -19375,6 +19662,15 @@ async function applyStageTransitionActivity(input) {
|
|
|
19375
19662
|
if (!task) {
|
|
19376
19663
|
throw new Error(`Task ${input.taskId} not found`);
|
|
19377
19664
|
}
|
|
19665
|
+
const previousStage = task.stage || null;
|
|
19666
|
+
const eventTimestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
19667
|
+
const baseNotification = {
|
|
19668
|
+
taskId: input.taskId,
|
|
19669
|
+
userId: input.userId,
|
|
19670
|
+
title: task.title || null,
|
|
19671
|
+
slug: task.slug || null,
|
|
19672
|
+
timestamp: eventTimestamp
|
|
19673
|
+
};
|
|
19378
19674
|
const { frontmatter, body } = parseFrontmatter(task.content);
|
|
19379
19675
|
frontmatter.stage = input.nextStage;
|
|
19380
19676
|
frontmatter.status = input.nextStatus;
|
|
@@ -19395,6 +19691,43 @@ async function applyStageTransitionActivity(input) {
|
|
|
19395
19691
|
}).eq("id", input.taskId).eq("user_id", input.userId);
|
|
19396
19692
|
if (input.nextStatus === "completed") {
|
|
19397
19693
|
await db.from("tasks").update({ completed_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", input.taskId).eq("user_id", input.userId);
|
|
19694
|
+
await triggerDependentTasks(input.taskId, input.userId);
|
|
19695
|
+
}
|
|
19696
|
+
const shouldEmitStageComplete = input.nextStatus !== "blocked" && input.nextStatus !== "failed";
|
|
19697
|
+
if (shouldEmitStageComplete) {
|
|
19698
|
+
void notifyTaskEvent({
|
|
19699
|
+
...baseNotification,
|
|
19700
|
+
eventType: "task.stage_complete",
|
|
19701
|
+
stage: previousStage,
|
|
19702
|
+
previousStage,
|
|
19703
|
+
nextStage: input.nextStage,
|
|
19704
|
+
status: input.nextStatus,
|
|
19705
|
+
details: { nextStatus: input.nextStatus }
|
|
19706
|
+
});
|
|
19707
|
+
}
|
|
19708
|
+
if (input.nextStatus === "completed") {
|
|
19709
|
+
void notifyTaskEvent({
|
|
19710
|
+
...baseNotification,
|
|
19711
|
+
eventType: "task.completed",
|
|
19712
|
+
stage: input.nextStage,
|
|
19713
|
+
status: input.nextStatus,
|
|
19714
|
+
details: {
|
|
19715
|
+
previousStage,
|
|
19716
|
+
nextStage: input.nextStage
|
|
19717
|
+
}
|
|
19718
|
+
});
|
|
19719
|
+
}
|
|
19720
|
+
if (input.nextStatus === "failed") {
|
|
19721
|
+
void notifyTaskEvent({
|
|
19722
|
+
...baseNotification,
|
|
19723
|
+
eventType: "task.failed",
|
|
19724
|
+
stage: input.nextStage,
|
|
19725
|
+
status: input.nextStatus,
|
|
19726
|
+
error: input.error,
|
|
19727
|
+
details: {
|
|
19728
|
+
previousStage
|
|
19729
|
+
}
|
|
19730
|
+
});
|
|
19398
19731
|
}
|
|
19399
19732
|
}
|
|
19400
19733
|
async function appendTaskLogActivity(input) {
|
|
@@ -19418,6 +19751,20 @@ async function markCancelledActivity(input) {
|
|
|
19418
19751
|
error: input.reason || "Cancelled",
|
|
19419
19752
|
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
19420
19753
|
}).eq("id", input.taskId).eq("user_id", input.userId);
|
|
19754
|
+
void notifyTaskEvent({
|
|
19755
|
+
taskId: input.taskId,
|
|
19756
|
+
userId: input.userId,
|
|
19757
|
+
eventType: "task.failed",
|
|
19758
|
+
title: task.title || null,
|
|
19759
|
+
slug: task.slug || null,
|
|
19760
|
+
stage: task.stage || null,
|
|
19761
|
+
status: "failed",
|
|
19762
|
+
error: input.reason || "Cancelled",
|
|
19763
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
19764
|
+
details: {
|
|
19765
|
+
previousStage: task.stage || null
|
|
19766
|
+
}
|
|
19767
|
+
});
|
|
19421
19768
|
}
|
|
19422
19769
|
|
|
19423
19770
|
// ../agx-cloud/lib/orchestrator/processor.ts
|