@mndrk/agx 1.4.55 → 1.4.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- 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 +78 -71
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/app-path-routes-manifest.json +9 -8
- 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 +12 -12
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/routes-manifest.json +9 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page.js +9 -3
- 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 +17 -16
- 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.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.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.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.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.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.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.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.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.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.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.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]/heartbeat/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/history/route.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.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]/restart-stage/route.js +4 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/restart-stage/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/restart-stage/route_client-reference-manifest.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/route.js +2 -2
- 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.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.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.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.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 +12 -6
- 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 +21 -20
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard/page.js +3 -3
- 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 +21 -20
- 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 +25 -24
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login/page.js +9 -3
- 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 +21 -20
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page.js +9 -3
- 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 +1 -1
- 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 +3 -3
- 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.js +9 -3
- 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.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page.js.nft.json +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 +21 -20
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page.js +9 -3
- 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 +21 -20
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app-paths-manifest.json +9 -8
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/3009.js +8 -8
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/6158.js +19 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/6317.js +1 -1
- 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/instrumentation.js +1 -1
- 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/middleware.js +1 -1
- 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/pages-manifest.json +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/5608-674cd57e975c9b36.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/9337-f4cb4820efca03a1.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/audit/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/[...nextauth]/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/daemon-secret/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/code/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/token/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/refresh/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/status/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/[id]/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/health/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/learnings/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/logs/stream/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/cancel/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/signal/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/start/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/status/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/[id]/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/providers/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/complete/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/stage-prompts/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/[commentId]/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/heartbeat/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/history/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/logs/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/restart-stage/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/stream/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/user-settings/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/nodes/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/callback/route-13be4cfc17a5f679.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/device/{page-8d1b32d4a1b98d8f.js → page-903c045ac7fbfd1c.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/dashboard/{page-f12cc2e8800728f7.js → page-ea6ccecbfa743b53.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/layout-6b46da9e6091abb3.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/{page-8465be2213d5814e.js → page-7357b68f3783a0b4.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/tasks/page-ec17b64371f48524.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/page-6c545e9e5f5f66bc.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/css/ea93fda1b0bdd3b9.css +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/worker/index.js +93 -1
- package/lib/cli/cloud/prompts.js +6 -2
- package/lib/cli/runCli.js +154 -36
- package/lib/cli/skillText.js +1 -1
- package/lib/cli/taskStatusService.js +183 -0
- package/package.json +1 -1
- package/templates/stack/postgres/init/001_agx_board_schema.sql +15 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/5519.js +0 -6
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/9337-1475b21ebc625376.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/9719-26e3b61c21dd9194.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/audit/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/[...nextauth]/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/daemon-secret/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/code/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/token/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/refresh/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/status/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/[id]/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/health/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/learnings/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/logs/stream/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/cancel/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/signal/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/start/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/status/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/[id]/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/providers/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/complete/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/stage-prompts/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/[commentId]/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/heartbeat/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/history/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/logs/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/stream/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/user-settings/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/nodes/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/callback/route-99c56d5659a15bdb.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/layout-449a81ecf8041b29.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/tasks/page-5813cf2efcd8d555.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/page-42969463f06ac3e8.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/css/6873fedf803c523e.css +0 -1
- /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{nwJhRz_Iis8sU5igg53Oe → 24myOUbvbiDvyX6evcbZU}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{nwJhRz_Iis8sU5igg53Oe → 24myOUbvbiDvyX6evcbZU}/_ssgManifest.js +0 -0
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[
|
|
3
|
-
3:I[
|
|
4
|
-
4:I[
|
|
5
|
-
5:I[
|
|
6
|
-
6:I[
|
|
7
|
-
7:I[
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
11:"
|
|
13
|
-
|
|
14
|
-
:
|
|
15
|
-
|
|
16
|
-
8:{}
|
|
17
|
-
9:
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
2
|
+
2:I[4647,["7177","static/chunks/app/layout-6b46da9e6091abb3.js"],"AuthProvider"]
|
|
3
|
+
3:I[9766,[],""]
|
|
4
|
+
4:I[8924,[],""]
|
|
5
|
+
5:I[6285,["7177","static/chunks/app/layout-6b46da9e6091abb3.js"],"GoogleAnalytics"]
|
|
6
|
+
6:I[7950,["7177","static/chunks/app/layout-6b46da9e6091abb3.js"],"PostHogAnalytics"]
|
|
7
|
+
7:I[1959,[],"ClientPageRoot"]
|
|
8
|
+
8:I[2802,["2619","static/chunks/2619-3c9e02e22d10480a.js","4662","static/chunks/app/settings/page-749ebaf650848f08.js"],"default"]
|
|
9
|
+
b:I[4431,[],"OutletBoundary"]
|
|
10
|
+
d:I[5278,[],"AsyncMetadataOutlet"]
|
|
11
|
+
f:I[4431,[],"ViewportBoundary"]
|
|
12
|
+
11:I[4431,[],"MetadataBoundary"]
|
|
13
|
+
12:"$Sreact.suspense"
|
|
14
|
+
14:I[7150,[],""]
|
|
15
|
+
:HL["/_next/static/css/ea93fda1b0bdd3b9.css","style"]
|
|
16
|
+
0:{"P":null,"b":"24myOUbvbiDvyX6evcbZU","p":"","c":["","settings"],"i":false,"f":[[["",{"children":["settings",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ea93fda1b0bdd3b9.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","children":["$","body",null,{"className":"antialiased min-h-screen bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]","children":[["$","div",null,{"className":"fixed inset-0 -z-10 h-full w-full bg-[radial-gradient(#27272a_1px,transparent_1px)] [background-size:16px_16px] opacity-20"}],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","$L5",null,{}],["$","$L6",null,{}]]}]}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":["$Lc",["$","$Ld",null,{"promise":"$@e"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lf",null,{"children":"$L10"}],null],["$","$L11",null,{"children":["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":"$L13"}]}]}]]}],false]],"m":"$undefined","G":["$14",[]],"s":false,"S":true}
|
|
17
|
+
9:{}
|
|
18
|
+
a:"$0:f:0:1:2:children:2:children:1:props:children:0:props:params"
|
|
19
|
+
10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
20
|
+
c:null
|
|
21
|
+
e:{"metadata":[["$","title","0",{"children":"AGX Board - Agent Task Orchestration"}],["$","meta","1",{"name":"description","content":"Orchestrate and manage AI agent tasks on AGX Board"}]],"error":null,"digest":"$undefined"}
|
|
22
|
+
13:"$e:metadata"
|
package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app-paths-manifest.json
CHANGED
|
@@ -1,43 +1,44 @@
|
|
|
1
1
|
{
|
|
2
|
+
"/_not-found/page": "app/_not-found/page.js",
|
|
2
3
|
"/api/audit/route": "app/api/audit/route.js",
|
|
3
4
|
"/api/auth/[...nextauth]/route": "app/api/auth/[...nextauth]/route.js",
|
|
4
5
|
"/api/auth/daemon-secret/route": "app/api/auth/daemon-secret/route.js",
|
|
5
6
|
"/api/auth/device/code/route": "app/api/auth/device/code/route.js",
|
|
6
7
|
"/api/auth/device/token/route": "app/api/auth/device/token/route.js",
|
|
7
8
|
"/api/auth/refresh/route": "app/api/auth/refresh/route.js",
|
|
8
|
-
"/api/auth/status/route": "app/api/auth/status/route.js",
|
|
9
9
|
"/api/domains/[id]/route": "app/api/domains/[id]/route.js",
|
|
10
|
+
"/api/auth/status/route": "app/api/auth/status/route.js",
|
|
10
11
|
"/api/domains/route": "app/api/domains/route.js",
|
|
11
12
|
"/api/health/route": "app/api/health/route.js",
|
|
12
13
|
"/api/learnings/route": "app/api/learnings/route.js",
|
|
13
14
|
"/api/orchestrator/tasks/[taskId]/cancel/route": "app/api/orchestrator/tasks/[taskId]/cancel/route.js",
|
|
15
|
+
"/api/orchestrator/tasks/[taskId]/start/route": "app/api/orchestrator/tasks/[taskId]/start/route.js",
|
|
14
16
|
"/api/orchestrator/tasks/[taskId]/signal/route": "app/api/orchestrator/tasks/[taskId]/signal/route.js",
|
|
15
17
|
"/api/orchestrator/tasks/[taskId]/status/route": "app/api/orchestrator/tasks/[taskId]/status/route.js",
|
|
16
|
-
"/api/orchestrator/tasks/[taskId]/start/route": "app/api/orchestrator/tasks/[taskId]/start/route.js",
|
|
17
18
|
"/api/projects/[id]/route": "app/api/projects/[id]/route.js",
|
|
19
|
+
"/api/projects/route": "app/api/projects/route.js",
|
|
18
20
|
"/api/providers/route": "app/api/providers/route.js",
|
|
19
21
|
"/api/queue/complete/route": "app/api/queue/complete/route.js",
|
|
20
|
-
"/api/projects/route": "app/api/projects/route.js",
|
|
21
22
|
"/api/queue/route": "app/api/queue/route.js",
|
|
22
23
|
"/api/stage-prompts/route": "app/api/stage-prompts/route.js",
|
|
23
24
|
"/api/tasks/[id]/comments/[commentId]/route": "app/api/tasks/[id]/comments/[commentId]/route.js",
|
|
24
25
|
"/api/tasks/[id]/heartbeat/route": "app/api/tasks/[id]/heartbeat/route.js",
|
|
25
26
|
"/api/tasks/[id]/comments/route": "app/api/tasks/[id]/comments/route.js",
|
|
26
|
-
"/api/tasks/[id]/logs/route": "app/api/tasks/[id]/logs/route.js",
|
|
27
27
|
"/api/tasks/[id]/history/route": "app/api/tasks/[id]/history/route.js",
|
|
28
|
+
"/api/tasks/[id]/logs/route": "app/api/tasks/[id]/logs/route.js",
|
|
29
|
+
"/api/tasks/[id]/restart-stage/route": "app/api/tasks/[id]/restart-stage/route.js",
|
|
28
30
|
"/api/tasks/[id]/route": "app/api/tasks/[id]/route.js",
|
|
29
31
|
"/api/tasks/route": "app/api/tasks/route.js",
|
|
30
|
-
"/api/workflows/[id]/nodes/route": "app/api/workflows/[id]/nodes/route.js",
|
|
31
32
|
"/api/user-settings/route": "app/api/user-settings/route.js",
|
|
33
|
+
"/api/workflows/[id]/nodes/route": "app/api/workflows/[id]/nodes/route.js",
|
|
34
|
+
"/auth/callback/route": "app/auth/callback/route.js",
|
|
32
35
|
"/api/workflows/[id]/route": "app/api/workflows/[id]/route.js",
|
|
33
36
|
"/api/workflows/route": "app/api/workflows/route.js",
|
|
34
|
-
"/auth/callback/route": "app/auth/callback/route.js",
|
|
35
37
|
"/api/logs/stream/route": "app/api/logs/stream/route.js",
|
|
36
38
|
"/api/tasks/stream/route": "app/api/tasks/stream/route.js",
|
|
37
|
-
"/_not-found/page": "app/_not-found/page.js",
|
|
38
39
|
"/auth/device/page": "app/auth/device/page.js",
|
|
39
|
-
"/dashboard/page": "app/dashboard/page.js",
|
|
40
40
|
"/login/page": "app/login/page.js",
|
|
41
|
+
"/dashboard/page": "app/dashboard/page.js",
|
|
41
42
|
"/page": "app/page.js",
|
|
42
43
|
"/projects/page": "app/projects/page.js",
|
|
43
44
|
"/settings/page": "app/settings/page.js",
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
"use strict";exports.id=3009,exports.ids=[3009],exports.modules={19873:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(21124),e=c(38301);function f({tasks:a,onTaskClick:b,onStop:c,onRetry:f,cancellingTaskId:g}){let h=(0,e.useMemo)(()=>a.filter(a=>"in_progress"===a.status),[a]),[i,j]=(0,e.useState)({});return 0===h.length?null:(0,d.jsx)("div",{className:"w-full bg-[var(--card-bg)] border-b border-[var(--border)] mb-6 animate-fade-in-down",children:(0,d.jsx)("div",{className:"max-w-full overflow-x-auto no-scrollbar",children:(0,d.jsxs)("div",{className:"flex items-center gap-4 p-4 min-w-max",children:[(0,d.jsxs)("div",{className:"flex flex-col justify-center pr-4 border-r border-[var(--border)]",children:[(0,d.jsxs)("h3",{className:"text-sm font-bold text-[var(--foreground)] whitespace-nowrap flex items-center gap-2",children:[(0,d.jsxs)("span",{className:"relative flex h-2 w-2",children:[(0,d.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"}),(0,d.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-green-500"})]}),"Now Running"]}),(0,d.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] uppercase tracking-wider font-semibold",children:[h.length," Active"]})]}),(0,d.jsx)("div",{className:"flex items-center gap-3",children:h.map(a=>{let e=a.id===g;return(0,d.jsxs)("div",{onClick:()=>b?.(a),className:"group flex items-center gap-3 pl-3 pr-2 py-2 bg-[var(--background)] border border-[var(--border)] rounded-lg hover:border-[var(--primary)] transition-all cursor-pointer shadow-sm hover:shadow-md min-w-[280px]",children:[(0,d.jsx)("div",{className:"w-8 h-8 rounded-full bg-[var(--muted)] flex items-center justify-center text-xs font-bold border border-[var(--border)] shrink-0",children:a.provider?a.provider.substring(0,2).toUpperCase():"AG"}),(0,d.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between text-xs mb-0.5",children:[(0,d.jsxs)("span",{className:"font-semibold text-[var(--foreground)] truncate max-w-[120px]",children:[a.provider||"Agent"," ",a.model?`• ${a.model}`:""]}),(0,d.jsx)("span",{className:"font-mono text-[var(--muted-foreground)]",children:i[a.id]||"0m"})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] truncate max-w-[140px]",children:a.title||a.content.substring(0,30)}),(0,d.jsx)("div",{className:"w-12 h-1 bg-[var(--muted)] rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-[var(--primary)] animate-pulse rounded-full",style:{width:`${40*Math.random()+30}%`}})})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity pl-2 border-l border-[var(--border)]",children:[(0,d.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),e||c?.(a.id)},disabled:e,className:`p-1 rounded transition-all ${e?"cursor-wait text-[var(--destructive)]/80 opacity-80":"hover:bg-[var(--destructive)]/10 text-[var(--muted-foreground)] hover:text-[var(--destructive)]"}`,title:e?"Stopping...":"Stop Task",children:e?(0,d.jsx)("span",{className:"inline-flex h-3 w-3 rounded-full border border-[var(--destructive)] border-t-transparent animate-spin"}):(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,d.jsx)("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}),(0,d.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),f?.(a.id)},className:"p-1 hover:bg-[var(--primary)]/10 text-[var(--muted-foreground)] hover:text-[var(--primary)] rounded",title:"Retry / Restart",children:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,d.jsx)("path",{d:"M3 3v5h5"}),(0,d.jsx)("path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16"}),(0,d.jsx)("path",{d:"M16 21h5v-5"})]})})]})]},a.id)})})]})})})}},32273:(a,b,c)=>{c.d(b,{A:()=>
|
|
1
|
+
"use strict";exports.id=3009,exports.ids=[3009],exports.modules={19873:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(21124),e=c(38301);function f({tasks:a,onTaskClick:b,onStop:c,onRetry:f,cancellingTaskId:g}){let h=(0,e.useMemo)(()=>a.filter(a=>"in_progress"===a.status),[a]),[i,j]=(0,e.useState)({});return 0===h.length?null:(0,d.jsx)("div",{className:"w-full bg-[var(--card-bg)] border-b border-[var(--border)] mb-6 animate-fade-in-down",children:(0,d.jsx)("div",{className:"max-w-full overflow-x-auto no-scrollbar",children:(0,d.jsxs)("div",{className:"flex items-center gap-4 p-4 min-w-max",children:[(0,d.jsxs)("div",{className:"flex flex-col justify-center pr-4 border-r border-[var(--border)]",children:[(0,d.jsxs)("h3",{className:"text-sm font-bold text-[var(--foreground)] whitespace-nowrap flex items-center gap-2",children:[(0,d.jsxs)("span",{className:"relative flex h-2 w-2",children:[(0,d.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"}),(0,d.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-green-500"})]}),"Now Running"]}),(0,d.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] uppercase tracking-wider font-semibold",children:[h.length," Active"]})]}),(0,d.jsx)("div",{className:"flex items-center gap-3",children:h.map(a=>{let e=a.id===g;return(0,d.jsxs)("div",{onClick:()=>b?.(a),className:"group flex items-center gap-3 pl-3 pr-2 py-2 bg-[var(--background)] border border-[var(--border)] rounded-lg hover:border-[var(--primary)] transition-all cursor-pointer shadow-sm hover:shadow-md min-w-[280px]",children:[(0,d.jsx)("div",{className:"w-8 h-8 rounded-full bg-[var(--muted)] flex items-center justify-center text-xs font-bold border border-[var(--border)] shrink-0",children:a.provider?a.provider.substring(0,2).toUpperCase():"AG"}),(0,d.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between text-xs mb-0.5",children:[(0,d.jsxs)("span",{className:"font-semibold text-[var(--foreground)] truncate max-w-[120px]",children:[a.provider||"Agent"," ",a.model?`• ${a.model}`:""]}),(0,d.jsx)("span",{className:"font-mono text-[var(--muted-foreground)]",children:i[a.id]||"0m"})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] truncate max-w-[140px]",children:a.title||a.content.substring(0,30)}),(0,d.jsx)("div",{className:"w-12 h-1 bg-[var(--muted)] rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-[var(--primary)] animate-pulse rounded-full",style:{width:`${40*Math.random()+30}%`}})})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity pl-2 border-l border-[var(--border)]",children:[(0,d.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),e||c?.(a.id)},disabled:e,className:`p-1 rounded transition-all ${e?"cursor-wait text-[var(--destructive)]/80 opacity-80":"hover:bg-[var(--destructive)]/10 text-[var(--muted-foreground)] hover:text-[var(--destructive)]"}`,title:e?"Stopping...":"Stop Task",children:e?(0,d.jsx)("span",{className:"inline-flex h-3 w-3 rounded-full border border-[var(--destructive)] border-t-transparent animate-spin"}):(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,d.jsx)("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}),(0,d.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),f?.(a.id)},className:"p-1 hover:bg-[var(--primary)]/10 text-[var(--muted-foreground)] hover:text-[var(--primary)] rounded",title:"Retry / Restart",children:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,d.jsx)("path",{d:"M3 3v5h5"}),(0,d.jsx)("path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16"}),(0,d.jsx)("path",{d:"M16 21h5v-5"})]})})]})]},a.id)})})]})})})}},32273:(a,b,c)=>{c.d(b,{A:()=>o});var d=c(21124),e=c(38301),f=c(10366),g=c(99615),h=c(22023),i=c(69816);let j={queued:{borderColor:"var(--status-queued)",bgColor:"var(--status-queued-bg)",textColor:"var(--status-queued)"},in_progress:{borderColor:"var(--status-in-progress)",bgColor:"var(--status-in-progress-bg)",textColor:"var(--status-in-progress)"},blocked:{borderColor:"var(--status-blocked)",bgColor:"var(--status-blocked-bg)",textColor:"var(--status-blocked)"},completed:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"},failed:{borderColor:"var(--status-failed)",bgColor:"var(--status-failed-bg)",textColor:"var(--status-failed)"},done:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"}};function k({task:a,onClick:b,onStatusChange:c}){let{attributes:e,listeners:f,setNodeRef:k,transform:l,transition:m,isDragging:n}=(0,g.gl)({id:a.id}),o={transform:h.Ks.Transform.toString(l),transition:m};return j[a.status||"queued"],(0,d.jsxs)("div",{ref:k,...e,...f,onClick:b,className:`
|
|
2
2
|
group relative flex items-center gap-2 p-1.5 rounded-md
|
|
3
3
|
hover:bg-[var(--item-hover-bg)] transition-all duration-150 cursor-default
|
|
4
4
|
focus-visible:outline-2 focus-visible:outline-[var(--ring)] focus-visible:outline-offset-2
|
|
5
|
-
${
|
|
6
|
-
`,style:{transform:
|
|
5
|
+
${n?"opacity-50 bg-[var(--item-hover-bg)]":""}
|
|
6
|
+
`,style:{transform:o.transform,transition:o.transition,touchAction:"none"},children:[(0,d.jsx)(i.A,{status:a.status||"queued",onStatusChange:c}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 flex items-center justify-between gap-3",children:[(0,d.jsx)("h4",{className:`text-sm text-[var(--foreground)] truncate leading-tight
|
|
7
7
|
${"completed"===a.status?"text-[var(--muted-foreground)] line-through":""}
|
|
8
|
-
`,children:a.title||"Untitled Task"}),(0,d.jsxs)("div",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 transition-opacity",children:[void 0!==a.priority&&(0,d.jsxs)("span",{className:`text-[10px] font-mono ${0===a.priority?"text-red-500 font-bold":"text-[var(--muted-foreground)]"}`,children:["P",a.priority]}),(0,d.jsx)("button",{className:"p-0.5 text-[var(--muted-foreground)] hover:text-[var(--foreground)] rounded",children:(0,d.jsx)("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,d.jsx)("path",{d:"M8.49999 4.10001V8.49999H12.9V9.49999H8.49999V13.9H7.49999V9.49999H3.1V8.49999H7.49999V4.10001H8.49999Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"})})})]})]})]})}let
|
|
8
|
+
`,children:a.title||"Untitled Task"}),(0,d.jsxs)("div",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 transition-opacity",children:[void 0!==a.priority&&(0,d.jsxs)("span",{className:`text-[10px] font-mono ${0===a.priority?"text-red-500 font-bold":"text-[var(--muted-foreground)]"}`,children:["P",a.priority]}),(0,d.jsx)("button",{className:"p-0.5 text-[var(--muted-foreground)] hover:text-[var(--foreground)] rounded",children:(0,d.jsx)("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,d.jsx)("path",{d:"M8.49999 4.10001V8.49999H12.9V9.49999H8.49999V13.9H7.49999V9.49999H3.1V8.49999H7.49999V4.10001H8.49999Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"})})})]})]})]})}let l={queued:{borderColor:"var(--status-queued)",bgColor:"var(--status-queued-bg)",textColor:"var(--status-queued)"},in_progress:{borderColor:"var(--status-in-progress)",bgColor:"var(--status-in-progress-bg)",textColor:"var(--status-in-progress)"},blocked:{borderColor:"var(--status-blocked)",bgColor:"var(--status-blocked-bg)",textColor:"var(--status-blocked)"},completed:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"},failed:{borderColor:"var(--status-failed)",bgColor:"var(--status-failed-bg)",textColor:"var(--status-failed)"},done:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"}};function m({task:a}){let b=l[a.status||"queued"];return(0,d.jsxs)("div",{className:"w-72 p-3 bg-[var(--background)] rounded-lg border-l-[3px] shadow-2xl cursor-grabbing ring-2 ring-[var(--primary)] ring-offset-2 ring-offset-[var(--background)] rotate-2 scale-105",style:{borderLeftColor:b.borderColor},children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-1.5",children:[(0,d.jsx)("div",{className:"flex items-center gap-1.5",children:void 0!==a.priority&&(0,d.jsxs)("span",{className:"text-[10px] font-mono font-semibold text-[var(--muted-foreground)] bg-[var(--muted)] px-1.5 py-0.5 rounded",children:["P",a.priority]})}),a.project&&(0,d.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-[var(--accent-muted)] text-[var(--accent)] rounded-full font-medium truncate max-w-[100px]",children:a.project})]}),(0,d.jsx)("h4",{className:"text-sm font-medium line-clamp-2 text-[var(--primary)] leading-snug",children:a.title||"Untitled"}),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-2 text-[10px] text-[var(--muted-foreground)]",children:[a.engine&&(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("span",{children:"\uD83E\uDD16"}),(0,d.jsx)("span",{className:"capitalize",children:a.engine})]}),a.status&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 rounded font-medium",style:{background:b.bgColor,color:b.textColor},children:a.status.replace("_"," ")})]})]})}var n=c(88885);function o({tasks:a,onTasksChange:b,onSelectTask:c,onTaskUpdate:h,onAddTask:i,stages:j,stageConfig:k,isValidTransition:l,isCreatingTask:o,creatingStage:q}){let r=j||n.Tw,s=k||n.ls,t=l||((a,b)=>{if(a===b)return!0;let c=r.indexOf(a),d=r.indexOf(b);return d<c||d===c+1}),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(a),y=(0,e.useMemo)(()=>{let a={};for(let b of r)a[b]=w.filter(a=>a.stage===b).sort((a,b)=>(a.priority||0)-(b.priority||0));return a},[w,r]),z=(0,f.FR)((0,f.MS)(f.AN,{activationConstraint:{distance:8}}));async function A(c){let{active:d,over:e}=c;if(v(null),!e)return void x(a);let f=d.id,i=e.id,j=w.find(a=>a.id===f);if(!j)return;let k=j.stage,l=j.priority||0;if(r.includes(i)){let a=y[k=i];l=a.length>0?Math.max(...a.map(a=>a.priority||0))+1:0}else{let a=w.find(a=>a.id===i);if(a){k=a.stage;let c=w.filter(a=>a.stage===k),d=c.findIndex(a=>a.id===f),e=c.findIndex(a=>a.id===i);if(-1!==d&&-1!==e&&d!==e){let a=(0,g.be)(c,d,e),f=w.map(b=>{let c=a.findIndex(a=>a.id===b.id);return -1!==c?{...b,priority:c}:b});x(f),b?.(f)}l=a.priority||0}}let m=a.find(a=>a.id===f);if(m&&!t(m.stage||"",k))return void x(a);if(h&&(j.stage!==k||j.priority!==l))try{await h(f,{stage:k,priority:l,status:"done"===k?"completed":"ideation"===k?"queued":"in_progress"}),b?.(w)}catch(b){console.error("Failed to update task:",b),x(a)}}return(0,d.jsxs)(f.Mp,{sensors:z,collisionDetection:f.y$,onDragStart:function(a){let b=w.find(b=>b.id===a.active.id);b&&v(b)},onDragOver:function(a){let b,{active:c,over:d}=a;if(!d)return;let e=c.id,f=d.id,g=w.find(a=>a.id===e);if(g){if(r.includes(f))b=f;else{let a=w.find(a=>a.id===f);if(!a)return;b=a.stage}if(g.stage!==b){if(!t(g.stage||"",b))return;x(a=>a.map(a=>a.id===e?{...a,stage:b}:a))}}},onDragEnd:A,children:[(0,d.jsx)("div",{className:"flex gap-4 overflow-x-auto pb-4 px-4 scrollbar-thin h-full items-stretch",children:r.map((a,b)=>(0,d.jsx)(p,{stage:a,tasks:y[a]||[],onSelectTask:c,onTaskUpdate:h,index:b,onAddTask:i,config:s[a]||{icon:"\uD83D\uDCCC",label:a,color:"var(--primary)"},isCreating:!!(o&&q===a)},a))}),(0,d.jsx)(f.Hd,{dropAnimation:{duration:200,easing:"cubic-bezier(0.18, 0.67, 0.6, 1.22)"},children:u?(0,d.jsx)(m,{task:u}):null})]})}function p({stage:a,tasks:b,onSelectTask:c,onTaskUpdate:e,index:h,onAddTask:i,config:j,isCreating:l=!1}){let{setNodeRef:m,isOver:n}=(0,f.zM)({id:a}),o=!i||l;return(0,d.jsxs)("div",{ref:m,id:a,className:`
|
|
9
9
|
kanban-column flex-shrink-0 w-80
|
|
10
10
|
flex flex-col h-full max-h-full
|
|
11
11
|
bg-[var(--column-bg)] rounded-xl border border-[var(--border)]
|
|
12
12
|
transition-colors duration-200
|
|
13
|
-
${
|
|
14
|
-
`,style:{animationDelay:`${50*
|
|
13
|
+
${n?"ring-2 ring-[var(--primary)] ring-opacity-50 bg-[var(--primary-muted)]":""}
|
|
14
|
+
`,style:{animationDelay:`${50*h}ms`},children:[(0,d.jsxs)("div",{className:"p-3 flex items-center justify-between border-b border-[var(--border)] bg-[var(--column-header-bg)] rounded-t-xl sticky top-0 z-10",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-semibold text-sm text-[var(--foreground)]",children:j.label}),(0,d.jsx)("span",{className:"px-2 py-0.5 rounded-full bg-white border border-[var(--border)] text-xs font-medium text-[var(--muted-foreground)] tabular-nums shadow-sm",children:b.length})]}),(0,d.jsx)("button",{onClick:()=>i?.(a),disabled:o,className:`
|
|
15
15
|
w-8 h-8 rounded-lg flex items-center justify-center text-lg leading-none transition-all
|
|
16
|
-
${
|
|
17
|
-
`,title:`Add task to ${
|
|
16
|
+
${o?"opacity-40 cursor-not-allowed text-[var(--muted-foreground)]":"hover:bg-[var(--primary)] hover:text-white hover:shadow-md text-[var(--muted-foreground)] active:scale-95"}
|
|
17
|
+
`,title:`Add task to ${j.label}`,children:l?(0,d.jsx)("span",{className:"spinner w-3 h-3 border-2 border-[var(--muted-foreground)] border-t-[var(--primary)] rounded-full"}):"+"})]}),(0,d.jsx)(g.gB,{items:b.map(a=>a.id),strategy:g._G,children:(0,d.jsx)("div",{className:"flex-1 p-2 overflow-y-auto scrollbar-thin space-y-2.5",children:0===b.length?(0,d.jsxs)("div",{className:"h-full min-h-[120px] flex flex-col items-center justify-center border-2 border-dashed border-[var(--border)] rounded-lg m-1 opacity-60 hover:opacity-100 transition-opacity bg-[var(--background)]",children:[(0,d.jsx)("span",{className:"text-2xl mb-2 opacity-50 grayscale",children:j.icon}),(0,d.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] font-medium",children:"No tasks"})]}):b.map((a,b)=>(0,d.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:`${30*b}ms`},children:(0,d.jsx)(k,{task:a,onClick:()=>c?.(a),onStatusChange:e?b=>e(a.id,{status:b}):void 0})},a.id))})})]})}}};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
exports.id=6158,exports.ids=[6158],exports.modules={988:(a,b,c)=>{"use strict";c.d(b,{PostHogAnalytics:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PostHogAnalytics() from the server but PostHogAnalytics is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/mendrika/Projects/Agents/agx-cloud/components/PostHogAnalytics.tsx","PostHogAnalytics")},12482:(a,b,c)=>{Promise.resolve().then(c.bind(c,75747)),Promise.resolve().then(c.bind(c,64769)),Promise.resolve().then(c.bind(c,30890))},16953:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,metadata:()=>h});var d=c(75338),e=c(43185),f=c(18353),g=c(988);c(82704);let h={title:"AGX Board - Agent Task Orchestration",description:"Orchestrate and manage AI agent tasks on AGX Board"};function i({children:a}){return(0,d.jsx)("html",{lang:"en",className:"dark",children:(0,d.jsxs)("body",{className:"antialiased min-h-screen bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]",children:[(0,d.jsx)("div",{className:"fixed inset-0 -z-10 h-full w-full bg-[radial-gradient(#27272a_1px,transparent_1px)] [background-size:16px_16px] opacity-20"}),(0,d.jsx)(e.AuthProvider,{children:a}),(0,d.jsx)(f.GoogleAnalytics,{}),(0,d.jsx)(g.PostHogAnalytics,{})]})})}},18353:(a,b,c)=>{"use strict";c.d(b,{GoogleAnalytics:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call GoogleAnalytics() from the server but GoogleAnalytics is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/mendrika/Projects/Agents/agx-cloud/components/GoogleAnalytics.tsx","GoogleAnalytics")},20302:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},30890:(a,b,c)=>{"use strict";c.d(b,{PostHogAnalytics:()=>f});var d=c(21124),e=c(19127);function f(){return(0,d.jsx)(e.default,{id:"posthog-analytics",strategy:"afterInteractive",dangerouslySetInnerHTML:{__html:`
|
|
2
|
+
!function(t,e){var o,n,p,r;e.__SV||(window.posthog&&window.posthog.__loaded)||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init rs ls wi ns us ts ss capture calculateEventProperties vs register register_once register_for_session unregister unregister_for_session gs getFeatureFlag getFeatureFlagPayload getFeatureFlagResult isFeatureEnabled reloadFeatureFlags updateFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSurveysLoaded onSessionId getSurveys getActiveMatchingSurveys renderSurvey displaySurvey cancelPendingSurvey canRenderSurvey canRenderSurveyAsync identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException startExceptionAutocapture stopExceptionAutocapture loadToolbar get_property getSessionProperty fs ds createPersonProfile setInternalOrTestUser ps Qr opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing get_explicit_consent_status is_capturing clear_opt_in_out_capturing hs debug M cs getPageViewId captureTraceFeedback captureTraceMetric Kr".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
|
|
3
|
+
posthog.init('phc_oBf1haYu4HKjYmUZpthQ4cUf9O3UKkDSOX675M7dRWW', {
|
|
4
|
+
api_host: 'https://us.i.posthog.com',
|
|
5
|
+
person_profiles: 'identified_only',
|
|
6
|
+
});
|
|
7
|
+
`}})}},33409:(a,b,c)=>{"use strict";c.d(b,{O:()=>e});var d=c(39537);function e(){return{auth:{getSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600,user:{id:d.g.id,email:d.g.email,user_metadata:{name:d.g.name,full_name:d.g.name}}}},error:null}),signInWithOAuth:async()=>({error:Error("Auth disabled in AGX Board local mode")}),signOut:async()=>({error:null}),onAuthStateChange:()=>({data:{subscription:{unsubscribe(){}}}})},channel:()=>({on(){return this},subscribe(){return this}}),removeChannel(){}}}},36937:(a,b,c)=>{"use strict";c.d(b,{LU:()=>f,dF:()=>h,si:()=>e,zH:()=>g});var d=c(38301);function e(a={}){process.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH;let b=a.project,c=a.status;a.realtime;let[f,g]=(0,d.useState)([]),[h,i]=(0,d.useState)(!0),[j,k]=(0,d.useState)(null),[l,m]=(0,d.useState)(null),[n,o]=(0,d.useState)(null),p=(0,d.useCallback)(async()=>{try{let a=new URLSearchParams;b&&a.set("project",b),c&&a.set("status",c);let d=await fetch(`/api/tasks?${a.toString()}`);if(!d.ok)throw Error("Failed to fetch tasks");let e=await d.json();g(e.tasks||[]),k(null)}catch(a){k(a instanceof Error?a:Error("Unknown error"))}finally{i(!1)}},[b,c]),q=(0,d.useCallback)(async(a,b)=>{let c=await fetch("/api/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:a,swarm_models:b})});if(!c.ok)throw Error((await c.json()).error||"Failed to create task");let{task:d}=await c.json();return g(a=>a.some(a=>a.id===d.id)?a:[d,...a]),d},[a.realtime]),r=(0,d.useCallback)(async(a,b)=>{let c=await fetch(`/api/tasks/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!c.ok){let a=null;throw"function"==typeof c.json&&(a=await c.json().catch(()=>null)),Error(a?.error||a?.details||`Failed to update task (${c.status} ${c.statusText||"Error"})`)}let{task:d}=await c.json();return g(b=>b.map(b=>b.id===a?{...b,...d}:b)),d},[a.realtime]),s=(0,d.useCallback)(async a=>{if(!(await fetch(`/api/tasks/${a}`,{method:"DELETE"})).ok)throw Error("Failed to delete task");g(b=>b.filter(b=>b.id!==a))},[a.realtime]),t=(0,d.useCallback)(async a=>{let b=await fetch("/api/queue/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to complete task stage");let{task:c}=await b.json();return g(b=>b.map(b=>b.id===a.taskId?{...b,...c}:b)),c},[a.realtime]);return{tasks:f,isLoading:h,error:j,cancellingTaskId:l,isCancelling:!!l,cancelError:n,refetch:p,createTask:q,updateTask:r,deleteTask:s,completeTaskStage:t,cancelWorkflow:(0,d.useCallback)(async a=>{m(a.taskId),o(null);try{let b=await fetch(`/api/orchestrator/tasks/${a.taskId}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a.reason?{reason:a.reason}:{})});if(!b.ok){let a=await b.json().catch(()=>({})),c=a?.error||"Failed to cancel workflow";throw Error(c)}return b.json()}catch(b){let a=b instanceof Error?b:Error("Failed to cancel workflow");throw o(a),a}finally{m(null)}},[]),fetchTask:(0,d.useCallback)(async a=>{let b=await fetch(`/api/tasks/${a}`),c=await b.json().catch(()=>null);if(!b.ok)throw Error(c?.error||"Failed to fetch task details");return c?.task},[])}}function f(a){process.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH;let[b,c]=(0,d.useState)([]),[e,f]=(0,d.useState)(!1),g=(0,d.useCallback)(async()=>{if(a){f(!0);try{let b=await fetch(`/api/tasks/${a}/comments`);if(b.ok){let a=await b.json();c(a.comments||[])}}finally{f(!1)}}},[a]);return{comments:b,isLoading:e,refetch:g,addComment:(0,d.useCallback)(async b=>{if(!a)return;let c=await fetch(`/api/tasks/${a}/comments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:b})});if(c.ok){let{comment:a}=await c.json();return a}},[a]),deleteComment:(0,d.useCallback)(async b=>{a&&(await fetch(`/api/tasks/${a}/comments/${b}`,{method:"DELETE"})).ok&&c(a=>a.filter(a=>a.id!==b))},[a])}}function g(a,b={}){let c=b.enabled??!0,e=Number.isFinite(b.tail)&&b.tail>0?b.tail:500,f=Number.isFinite(b.maxChars)&&b.maxChars>0?b.maxChars:2e5,[h,i]=(0,d.useState)(""),[j,k]=(0,d.useState)(!1),[l,m]=(0,d.useState)(!1),n=(0,d.useRef)(null);(0,d.useRef)(0);let o=(0,d.useRef)(null),p=(0,d.useCallback)(a=>{let b=(a.log_type||"output").toLowerCase();return"output"===b?a.content||"":`[${b}] ${a.content||""}`},[]);return(0,d.useCallback)(async(b=!1)=>{if(a&&c){b||k(!0);try{let c=new URLSearchParams;if(b){let a=o.current;a?.created_at&&c.set("after",a.created_at),c.set("limit","500")}else c.set("tail",String(e));let d=await fetch(`/api/tasks/${a}/logs?${c.toString()}`);if(d.ok){let a=((await d.json()).logs||[]).slice().sort((a,b)=>a.created_at===b.created_at?a.id.localeCompare(b.id):a.created_at.localeCompare(b.created_at));if(b){let b=o.current,c=b?a.filter(a=>a.created_at>b.created_at||!(a.created_at<b.created_at)&&a.id>b.id):a;if(c.length){let a=c.map(a=>p(a)).join("");a&&i(b=>{let c=b+a;return c.length>f?c.slice(-f):c}),m(!0),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{m(!1)},5e3)}}else{let b=a.map(a=>p(a)).join("");i(b.length>f?b.slice(-f):b)}if(a.length){let b=a[a.length-1];o.current={created_at:b.created_at,id:b.id}}}}finally{b||k(!1)}}},[c,p,f,e,a]),{output:h,isLoading:j,isStreaming:l}}function h(a,b){let[c,e]=(0,d.useState)([]),[f,g]=(0,d.useState)(!1),h=(0,d.useCallback)(async()=>{g(!0);try{let c=new URLSearchParams;a&&c.set("scope",a),b&&c.set("scopeId",b);let d=await fetch(`/api/learnings?${c.toString()}`);if(d.ok){let a=await d.json();e(a.learnings||[])}}finally{g(!1)}},[a,b]);return{learnings:c,isLoading:f,refetch:h,addLearning:(0,d.useCallback)(async(a,b,c)=>{let d=await fetch("/api/learnings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:b,scopeId:c,content:a})});if(d.ok){let{learning:a}=await d.json();return e(b=>[a,...b]),a}},[]),deleteLearning:(0,d.useCallback)(async a=>{(await fetch(`/api/learnings?id=${a}`,{method:"DELETE"})).ok&&e(b=>b.filter(b=>b.id!==a))},[])}}c(33409)},39537:(a,b,c)=>{"use strict";c.d(b,{g:()=>d}),"1"===process.env.AGX_BOARD_DISABLE_AUTH||"1"===process.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH||"1"!==process.env.AGX_BOARD_ENABLE_AUTH&&process.env.NEXT_PUBLIC_AGX_BOARD_ENABLE_AUTH;let d={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"}},43185:(a,b,c)=>{"use strict";c.d(b,{AuthProvider:()=>e});var d=c(97954);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call AuthProvider() from the server but AuthProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/mendrika/Projects/Agents/agx-cloud/components/AuthProvider.tsx","AuthProvider");(0,d.registerClientReference)(function(){throw Error("Attempted to call useAuth() from the server but useAuth is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/mendrika/Projects/Agents/agx-cloud/components/AuthProvider.tsx","useAuth")},60054:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},64769:(a,b,c)=>{"use strict";c.d(b,{GoogleAnalytics:()=>h});var d=c(21124),e=c(19127);let f="G-DVQQG95LNL",g=`https://www.googletagmanager.com/gtag/js?id=${f}`;function h(){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.default,{async:!0,src:g,strategy:"afterInteractive"}),(0,d.jsx)(e.default,{id:"google-analytics",strategy:"afterInteractive",dangerouslySetInnerHTML:{__html:`
|
|
8
|
+
window.dataLayer = window.dataLayer || [];
|
|
9
|
+
function gtag(){dataLayer.push(arguments);}
|
|
10
|
+
gtag('js', new Date());
|
|
11
|
+
gtag('config', '${f}');
|
|
12
|
+
`}})]})}},69816:(a,b,c)=>{"use strict";c.d(b,{A:()=>h});var d=c(21124),e=c(38301),f=c(23312);let g=[{value:"queued",label:"Queued",color:"var(--status-queued)",icon:"○"},{value:"in_progress",label:"In Progress",color:"var(--status-in-progress)",icon:"◑"},{value:"blocked",label:"Blocked",color:"var(--status-blocked)",icon:"⊘"},{value:"completed",label:"Done",color:"var(--status-completed)",icon:"●"},{value:"failed",label:"Failed",color:"var(--status-failed)",icon:"✕"}];function h({status:a,onStatusChange:b}){let[c,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(null),k=(0,e.useRef)(null),l=(0,e.useRef)(null);(0,e.useCallback)(()=>{if(!k.current)return;let a=k.current.getBoundingClientRect();j({top:a.bottom+4,left:a.left})},[]);let m=g.find(b=>b.value===a)||g[0],n="completed"===a,o="in_progress"===a;return(0,d.jsxs)("div",{className:"relative flex-shrink-0",ref:k,children:[(0,d.jsxs)("button",{type:"button",onClick:a=>{a.stopPropagation(),b&&h(!c)},className:`w-4 h-4 rounded-full border-[1.5px] flex items-center justify-center transition-all
|
|
13
|
+
hover:scale-110 focus-visible:outline-2 focus-visible:outline-[var(--ring)]
|
|
14
|
+
${b?"cursor-pointer":"cursor-default"}
|
|
15
|
+
${o?"animate-pulse":""}
|
|
16
|
+
`,style:{borderColor:m.color,backgroundColor:n?m.color:"transparent"},title:m.label,children:[n&&(0,d.jsx)("svg",{className:"w-2.5 h-2.5 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,d.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===a&&(0,d.jsx)("svg",{className:"w-2 h-2",viewBox:"0 0 12 12",fill:"none",children:(0,d.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:m.color,strokeWidth:"1.5",strokeLinecap:"round"})}),o&&(0,d.jsx)("div",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:m.color}})]}),c&&i&&(0,f.createPortal)((0,d.jsx)("div",{ref:l,className:"fixed z-[9999] py-1 rounded-lg border shadow-lg min-w-[140px]",style:{top:i.top,left:i.left,backgroundColor:"var(--card-bg)",borderColor:"var(--card-border)"},children:g.map(c=>(0,d.jsxs)("button",{type:"button",className:`w-full flex items-center gap-2 px-3 py-1.5 text-xs text-left transition-colors
|
|
17
|
+
hover:bg-[var(--item-hover-bg)]
|
|
18
|
+
${c.value===a?"font-semibold":""}
|
|
19
|
+
`,onClick:a=>{a.stopPropagation(),b?.(c.value),h(!1)},children:[(0,d.jsxs)("span",{className:"w-3 h-3 rounded-full border-[1.5px] flex items-center justify-center",style:{borderColor:c.color,backgroundColor:"completed"===c.value?c.color:"transparent"},children:["completed"===c.value&&(0,d.jsx)("svg",{className:"w-2 h-2 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,d.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===c.value&&(0,d.jsx)("svg",{className:"w-1.5 h-1.5",viewBox:"0 0 12 12",fill:"none",children:(0,d.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:c.color,strokeWidth:"1.5",strokeLinecap:"round"})}),"in_progress"===c.value&&(0,d.jsx)("div",{className:"w-1 h-1 rounded-full",style:{backgroundColor:c.color}})]}),(0,d.jsx)("span",{style:{color:c.value===a?c.color:void 0},children:c.label})]},c.value))}),document.body)]})}},72314:(a,b,c)=>{Promise.resolve().then(c.bind(c,43185)),Promise.resolve().then(c.bind(c,18353)),Promise.resolve().then(c.bind(c,988))},75747:(a,b,c)=>{"use strict";c.d(b,{A:()=>i,AuthProvider:()=>h});var d=c(21124),e=c(38301),f=c(33409);let g=(0,e.createContext)({user:null,loading:!0,signOut:async()=>{}});function h({children:a}){let b="1"===process.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,[c,h]=(0,e.useState)(null),[i,j]=(0,e.useState)(!0),k=async()=>{if(b)return;let a=(0,f.O)();await a.auth.signOut(),h(null)};return(0,d.jsx)(g.Provider,{value:{user:c,loading:i,signOut:k},children:a})}function i(){return(0,e.useContext)(g)}},82704:()=>{},82997:(a,b,c)=>{"use strict";c.d(b,{Y:()=>e});var d=c(38301);function e(){let[a,b]=(0,d.useState)([]),[c,e]=(0,d.useState)(!1),[f,g]=(0,d.useState)(null),h=(0,d.useCallback)(async()=>{e(!0);try{let a=await fetch("/api/projects");if(!a.ok)throw Error("Failed to fetch projects");let c=await a.json();b(c.projects??[]),g(null)}catch(a){g(a instanceof Error?a:Error("Unknown error"))}finally{e(!1)}},[]),i=(0,d.useCallback)(async a=>{let c=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!c.ok)throw Error((await c.json().catch(()=>({}))).error||"Failed to create project");let d=(await c.json()).project;return b(a=>[d,...a]),d},[]);return{projects:a,isLoading:c,error:f,refetch:h,createProject:i,updateProject:(0,d.useCallback)(async(a,c)=>{let d=await fetch(`/api/projects/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)});if(!d.ok)throw Error((await d.json().catch(()=>({}))).error||"Failed to update project");let e=(await d.json()).project;return b(b=>b.map(b=>b.id===a?e:b)),e},[]),deleteProject:(0,d.useCallback)(async a=>{let c=await fetch(`/api/projects/${a}`,{method:"DELETE"});if(!c.ok)throw Error((await c.json().catch(()=>({}))).error||"Failed to delete project");b(b=>b.filter(b=>b.id!==a))},[])}}}};
|
|
@@ -13,4 +13,4 @@ args: ${j}`:"")+(b.duration_ms?`
|
|
|
13
13
|
duration_ms: ${b.duration_ms}`:"")+k+l;await (0,g.$K)({taskId:a,content:m,logType:"system"})}async function o(a,b,c){console.log(`[processor] Cancelling task ${a}: ${c||"No reason"}`),await (0,g._N)({taskId:a,reason:c,userId:b})}[e,f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},74084:(a,b,c)=>{c.d(b,{e:()=>d});function d(a,b){return`---
|
|
14
14
|
${Object.entries(a).map(([a,b])=>`${a}: ${null==b?"":String(b)}`).join("\n")}
|
|
15
15
|
---
|
|
16
|
-
${b}`}},96340:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$K:()=>l,RM:()=>k,Sz:()=>i,_N:()=>n,kN:()=>m,rX:()=>j});var e=c(99146),f=c(16824),g=c(74084),h=a([e,f]);async function i(a){let b=(0,f.x)();await b.from("tasks").update({stage:a.stage,status:"queued",updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId)}async function j(a){let b=(0,f.x)(),{data:c}=await b.from("tasks").select("stage_decisions").eq("id",a.taskId).eq("user_id",a.userId).single(),d={...c?.stage_decisions&&"object"==typeof c.stage_decisions?c.stage_decisions:{},[a.stage]:{decision:a.decision.decision,rationale:a.decision.explanation,final_result:a.decision.final_result,decided_at:new Date().toISOString()}},{error:e}=await b.from("tasks").update({stage_decisions:d,updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId);if(e&&!function(a){if(!a||"object"!=typeof a)return!1;let b="code"in a?String(a.code):"",c="message"in a?String(a.message).toLowerCase():"";return("PGRST204"===b||"42703"===b)&&c.includes("stage_decisions")}(e))throw e}async function k(a){let b=await (0,e.gg)(a.taskId,a.userId);if(!b)throw Error(`Task ${a.taskId} not found`);let{frontmatter:c,body:d}=(0,e.yv)(b.content);c.stage=a.nextStage,c.status=a.nextStatus,a.error?c.error=a.error:"error"in c&&delete c.error;let h=(0,g.e)(c,d);await (0,e.lC)(a.taskId,h,a.userId);let i=(0,f.x)();await i.from("tasks").update({stage:a.nextStage,status:a.nextStatus,retry_count:a.retryCount,error:a.error,updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId),"completed"===a.nextStatus&&await i.from("tasks").update({completed_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId)}async function l(a){await (0,e.Jg)(a.taskId,a.content,a.logType)}async function m(a){await (0,e.WH)(a.taskId,a.content,a.authorType||"agent")}async function n(a){let b=await (0,e.gg)(a.taskId,a.userId);if(!b)return;let{frontmatter:c,body:d}=(0,e.yv)(b.content);c.status="failed",c.error=a.reason||"Cancelled";let h=(0,g.e)(c,d);await (0,e.lC)(a.taskId,h,a.userId),await (0,e.Jg)(a.taskId,a.reason||"Task cancelled","error");let i=(0,f.x)();await i.from("tasks").update({status:"failed",error:a.reason||"Cancelled",updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId)}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},99146:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Jg:()=>
|
|
16
|
+
${b}`}},96340:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$K:()=>l,RM:()=>k,Sz:()=>i,_N:()=>n,kN:()=>m,rX:()=>j});var e=c(99146),f=c(16824),g=c(74084),h=a([e,f]);async function i(a){let b=(0,f.x)();await b.from("tasks").update({stage:a.stage,status:"queued",updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId)}async function j(a){let b=(0,f.x)(),{data:c}=await b.from("tasks").select("stage_decisions").eq("id",a.taskId).eq("user_id",a.userId).single(),d={...c?.stage_decisions&&"object"==typeof c.stage_decisions?c.stage_decisions:{},[a.stage]:{decision:a.decision.decision,rationale:a.decision.explanation,final_result:a.decision.final_result,decided_at:new Date().toISOString()}},{error:e}=await b.from("tasks").update({stage_decisions:d,updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId);if(e&&!function(a){if(!a||"object"!=typeof a)return!1;let b="code"in a?String(a.code):"",c="message"in a?String(a.message).toLowerCase():"";return("PGRST204"===b||"42703"===b)&&c.includes("stage_decisions")}(e))throw e}async function k(a){let b=await (0,e.gg)(a.taskId,a.userId);if(!b)throw Error(`Task ${a.taskId} not found`);let{frontmatter:c,body:d}=(0,e.yv)(b.content);c.stage=a.nextStage,c.status=a.nextStatus,a.error?c.error=a.error:"error"in c&&delete c.error;let h=(0,g.e)(c,d);await (0,e.lC)(a.taskId,h,a.userId);let i=(0,f.x)();await i.from("tasks").update({stage:a.nextStage,status:a.nextStatus,retry_count:a.retryCount,error:a.error,updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId),"completed"===a.nextStatus&&await i.from("tasks").update({completed_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId)}async function l(a){await (0,e.Jg)(a.taskId,a.content,a.logType)}async function m(a){await (0,e.WH)(a.taskId,a.content,a.authorType||"agent")}async function n(a){let b=await (0,e.gg)(a.taskId,a.userId);if(!b)return;let{frontmatter:c,body:d}=(0,e.yv)(b.content);c.status="failed",c.error=a.reason||"Cancelled";let h=(0,g.e)(c,d);await (0,e.lC)(a.taskId,h,a.userId),await (0,e.Jg)(a.taskId,a.reason||"Task cancelled","error");let i=(0,f.x)();await i.from("tasks").update({status:"failed",error:a.reason||"Cancelled",updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId)}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},99146:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Jg:()=>r,QA:()=>q,WH:()=>s,fs:()=>o,gg:()=>m,lC:()=>n,op:()=>p,yv:()=>j});var e=c(16824);c(55511);var f=a([e]);function g(a,b){if(!a)return!1;let c="string"==typeof a.message?a.message:"";return"42P01"===a.code||"PGRST205"===a.code||c.includes(`relation "${b}" does not exist`)||c.includes(`Could not find the table 'agx.${b}'`)||c.includes(`Could not find the table 'public.${b}'`)}function h(a){let b=a.trim();if(!b)return[];try{let a=JSON.parse(b);if(Array.isArray(a))return a.map(a=>String(a||"").trim()).filter(Boolean)}catch{}return b.split(",").map(a=>a.trim()).filter(Boolean)}function i(a){let b;if(!a)return[];if(Array.isArray(a))b=a.map(a=>"string"==typeof a?a:null==a?"":String(a)).filter(Boolean);else{if("string"!=typeof a)return[];b=h(a)}return Array.from(new Set(b.map(a=>a.trim()).filter(Boolean)))}function j(a){let b=a.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!b)return{frontmatter:{},body:a};let c={};for(let a of b[1].split("\n")){let b=a.indexOf(":");if(b>0){let d=a.slice(0,b).trim(),e=a.slice(b+1).trim();if("depends_on"===d){c[d]=h(e);continue}"true"===e?c[d]=!0:"false"===e?c[d]=!1:/^\d+$/.test(e)?c[d]=parseInt(e):c[d]=e}}return{frontmatter:c,body:b[2]}}async function k(a,b,c){if(!a||!b?.length)return;let d=c??(0,e.x)(),f=new Set,g=[...b];for(;g.length;){let b=g.pop();if(!b)continue;if(b===a)throw Error("Circular dependency detected");if(f.has(b))continue;f.add(b);let{data:c,error:e}=await d.from("tasks").select("depends_on").eq("id",b).maybeSingle();if(e){if("PGRST116"===e.code||"42703"===e.code)continue;throw e}if(c)for(let a of Array.isArray(c.depends_on)?c.depends_on:[])a&&!f.has(a)&&g.push(a)}}async function l(a,b){let c=a.depends_on;if(!c||0===c.length)return;let d=(0,e.x)(),{data:f,error:g}=await d.from("tasks").select("id, status").in("id",c);if(g)return;let h=f?.every(a=>"completed"===a.status)??!1;if(h||"blocked"===a.status){if(h&&"blocked"===a.status){let c=d.from("tasks").update({status:"queued"}).eq("id",a.id);b&&(c=c.eq("user_id",b)),await c}}else{let c=d.from("tasks").update({status:"blocked"}).eq("id",a.id);b&&(c=c.eq("user_id",b)),await c}}async function m(a,b){let c=(0,e.x)().from("tasks").select("*").eq("id",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.single();if(f){if("PGRST116"===f.code)return null;throw f}return d}async function n(a,b,c,d){let f=(0,e.x)(),{frontmatter:g,body:h}=j(b),n="boolean"==typeof g.swarm?g.swarm:void 0,o=function(a){let{body:b}=j(a),c=b.match(/^#\s+(.+)$/m);return c?c[1]:void 0}(b),p="string"==typeof g.project_id?g.project_id:void 0,q=Object.prototype.hasOwnProperty.call(g,"provider"),r=Object.prototype.hasOwnProperty.call(g,"model"),s=Object.prototype.hasOwnProperty.call(g,"workflow_id"),t=Object.prototype.hasOwnProperty.call(g,"depends_on"),u=i(g.depends_on),v=i(d?.dependsOn),w=d?.dependsOn!==void 0||t,x=d?.dependsOn!==void 0?v:u,y={content:b,description:h,title:o,status:g.status,stage:g.stage,project:g.project,...void 0!==p?{project_id:p}:{},workflow_id:s?g.workflow_id:void 0,priority:g.priority,engine:g.engine,provider:q?g.provider:null,model:r?g.model:null,swarm:n,swarm_models:d?.swarmModels??void 0,...w?{depends_on:x.length?x:null}:{},updated_at:new Date().toISOString(),current_plan:d?.currentPlan??void 0,open_blockers:d?.openBlockers??void 0,next_action:d?.nextAction??void 0};Object.keys(y).forEach(a=>{void 0===y[a]&&delete y[a]}),w&&await k(a,x,f);let z=f.from("tasks").update({...y,version:f.rpc("increment_version")}).eq("id",a);c&&(z=z.eq("user_id",c)),d?.expectedVersion!==void 0&&(z=z.eq("version",d.expectedVersion));let{data:A,error:B}=await f.from("tasks").update({...y}).eq("id",a).select().single();if(B&&"42703"===B.code){let{description:b,swarm_models:d,swarm:e,workflow_id:g,current_plan:h,open_blockers:i,next_action:j,version:k,depends_on:l,...m}=y,n=f.from("tasks").update(m).eq("id",a);c&&(n=n.eq("user_id",c)),{data:A,error:B}=await n.select().single()}if(B)throw B;if(!A)throw Error("Failed to create task");return await l(A,c),await m(A.id,c)||A}async function o(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflow_nodes").select("*").eq("workflow_id",a).order("position",{ascending:!0});if(d){if(g(d,"workflow_nodes"))return[];throw d}return c||[]}async function p(a,b){let c=(0,e.x)(),{data:d,error:f}=await c.from("workflow_nodes").select("*").eq("workflow_id",a).eq("name",b).maybeSingle();if(f){if(g(f,"workflow_nodes"))return null;throw f}return d}async function q(a,b){let c=(0,e.x)(),{data:d,error:f}=await c.from("workflow_transitions").select("*").eq("workflow_id",a).eq("from_node_id",b).order("priority",{ascending:!0});if(f){if(g(f,"workflow_transitions"))return[];throw f}return d||[]}async function r(a,b,c){let d=(0,e.x)(),{data:f,error:g}=await d.from("task_logs").insert({task_id:a,content:b,log_type:c}).select().single();if(g)throw g;return f}async function s(a,b,c,d){let f=(0,e.x)(),{data:g,error:h}=await f.from("task_comments").insert({task_id:a,content:b,author_type:c,author_id:d??null}).select().single();if(h)throw h;return g}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=7143,exports.ids=[7143],exports.modules={27143:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Co:()=>R,Cp:()=>L,Fw:()=>A,IB:()=>j,JQ:()=>x,Jg:()=>O,OH:()=>X,UT:()=>t,WH:()=>Q,ZG:()=>W,_f:()=>V,a4:()=>P,bg:()=>F,co:()=>y,et:()=>Y,g1:()=>U,gA:()=>C,gg:()=>r,h_:()=>h,iN:()=>T,k9:()=>i,lC:()=>u,mc:()=>s,mk:()=>M,oe:()=>S,ou:()=>_,pW:()=>N,rV:()=>z,tB:()=>$,updateWorkflow:()=>H,updateWorkflowNodes:()=>J,vq:()=>w,vr:()=>D,x1:()=>q,xw:()=>v,xx:()=>E,yv:()=>o});var e=c(79965),f=a([e]);function g(a,b){if(!a)return!1;let c="string"==typeof a.message?a.message:"";return"42P01"===a.code||"PGRST205"===a.code||c.includes(`relation "${b}" does not exist`)||c.includes(`Could not find the table 'agx.${b}'`)||c.includes(`Could not find the table 'public.${b}'`)}async function h(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("user_settings").select("*").eq("user_id",a).maybeSingle();if(d){if(g(d,"user_settings"))return null;throw d}return c||null}async function i(a,b,c){let d=c?.onlyIfNewer!==!1,f=function(a){if("string"==typeof a){let b=Date.parse(a);if(Number.isFinite(b))return new Date(b).toISOString()}return new Date().toISOString()}(b.changed_at),g=await h(a);if(d&&g?.changed_at){let a=Date.parse(g.changed_at),b=Date.parse(f);if(Number.isFinite(a)&&Number.isFinite(b)&&b<=a)return{settings:g,updated:!1}}let i={user_id:a,default_provider:b.default_provider??g?.default_provider??null,models:b.models??g?.models??{},provenance:b.provenance,changed_at:f},j=(0,e.x)(),{error:k}=await j.from("user_settings").upsert(i,{onConflict:"user_id"});if(k)throw k;let l=await h(a);if(!l)throw Error("Failed to load user_settings after upsert");return{settings:l,updated:!0}}function j(a,b,c){let d=a=>"string"!=typeof a?null:a.trim()||null,e=d(c?.default_provider)||"gemini",f=d(a.provider)||d(b?.provider)||e,g=d(c?.models?.[f])||null,h=d(a.model)||d(b?.model)||g||"unspecified",i=a.swarm??b?.swarm??!1,j=a.swarm_models?.length?a.swarm_models:b?.swarm_models||[];return{provider:f,model:h,swarm:i,swarm_models:j}}function k(a){return a.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function l(a,b){let c=k(a);for(let d=0;d<5;d++){let{data:d,error:e}=await b.from("tasks").select("id").eq("slug",c).limit(1);if(e)throw e;if(!d||0===d.length)return c;let f=Math.random().toString(36).slice(2,6);c=`${k(a)}-${f}`.slice(0,48)}return`${k(a)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function m(a,b,c,d){let e=k(a);for(let f=0;f<5;f++){let f=c.from("projects").select("id").eq("slug",e).eq("user_id",b);d&&(f=f.neq("id",d));let{data:g,error:h}=await f.limit(1);if(h)throw h;if(!g||0===g.length)return e;let i=Math.random().toString(36).slice(2,6);e=`${k(a)}-${i}`.slice(0,48)}return`${k(a)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function n(a){return a??(0,e.x)()}function o(a){let b=a.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!b)return{frontmatter:{},body:a};let c={};for(let a of b[1].split("\n")){let b=a.indexOf(":");if(b>0){let d=a.slice(0,b).trim(),e=a.slice(b+1).trim();"true"===e?c[d]=!0:"false"===e?c[d]=!1:/^\d+$/.test(e)?c[d]=parseInt(e):c[d]=e}}return{frontmatter:c,body:b[2]}}function p(a){let{body:b}=o(a),c=b.match(/^#\s+(.+)$/m);return c?c[1]:void 0}async function q(a,b){console.log("getTasks called with userId:",a);let c=(0,e.x)().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});a&&(c=c.eq("user_id",a)),b?.project&&(c=c.eq("project",b.project)),b?.status&&(c=c.eq("status",b.status));let{data:d,error:f}=await c;if(f)throw f;return d||[]}async function r(a,b){let c=(0,e.x)().from("tasks").select("*").eq("id",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.single();if(f){if("PGRST116"===f.code)return null;throw f}return d}async function s(a,b){let c=(0,e.x)().from("tasks").select("*").eq("slug",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.single();if(f){if("PGRST116"===f.code)return null;throw f}return d}async function t(a,b,c){let d=(0,e.x)(),{frontmatter:f,body:g}=o(a),h="boolean"==typeof f.swarm?f.swarm:void 0,i=p(a),j=String(f.slug||i||"task"),k=await l(j,d),m="string"==typeof f.project_id?f.project_id:void 0,n="string"==typeof f.workflow_id?f.workflow_id:void 0;/^---\n/.test(a);let q="string"==typeof f.provider?f.provider:null,r="string"==typeof f.model?f.model:null,s="string"==typeof f.engine?f.engine:null,t="ai"===f.created_by?"ai":"user",u={content:a,description:g,title:i,slug:k,status:f.status||"queued",stage:f.stage,project:f.project,...void 0!==m?{project_id:m}:{},...void 0!==n?{workflow_id:n}:{},priority:f.priority,engine:s,provider:q,model:r,swarm:h,swarm_models:c?.swarmModels??null,created_by:t,user_id:b,current_plan:c?.currentPlan||null,open_blockers:c?.openBlockers||[],next_action:c?.nextAction||null,version:1},{data:v,error:w}=await d.from("tasks").insert(u).select().single();if(w&&"42703"===w.code){let{description:a,swarm_models:b,swarm:c,workflow_id:e,current_plan:f,open_blockers:g,next_action:h,version:i,...j}=u;({data:v,error:w}=await d.from("tasks").insert(j).select().single())}if(w)throw w;return v}async function u(a,b,c,d){let f=(0,e.x)(),{frontmatter:g,body:h}=o(b),i="boolean"==typeof g.swarm?g.swarm:void 0,j=p(b),k="string"==typeof g.project_id?g.project_id:void 0,l=Object.prototype.hasOwnProperty.call(g,"provider"),m=Object.prototype.hasOwnProperty.call(g,"model"),n=Object.prototype.hasOwnProperty.call(g,"workflow_id"),q={content:b,description:h,title:j,status:g.status,stage:g.stage,project:g.project,...void 0!==k?{project_id:k}:{},workflow_id:n?g.workflow_id:void 0,priority:g.priority,engine:g.engine,provider:l?g.provider:null,model:m?g.model:null,swarm:i,swarm_models:d?.swarmModels??void 0,updated_at:new Date().toISOString(),current_plan:d?.currentPlan??void 0,open_blockers:d?.openBlockers??void 0,next_action:d?.nextAction??void 0};Object.keys(q).forEach(a=>{void 0===q[a]&&delete q[a]});let r=f.from("tasks").update({...q,version:f.rpc("increment_version")}).eq("id",a);c&&(r=r.eq("user_id",c)),d?.expectedVersion!==void 0&&(r=r.eq("version",d.expectedVersion));let{data:s,error:t}=await f.from("tasks").update({...q}).eq("id",a).select().single();if(t&&"42703"===t.code){let{description:b,swarm_models:d,swarm:e,workflow_id:g,current_plan:h,open_blockers:i,next_action:j,version:k,...l}=q,m=f.from("tasks").update(l).eq("id",a);c&&(m=m.eq("user_id",c)),{data:s,error:t}=await m.select().single()}if(t)throw t;return s}async function v(a,b,c=25){let d=(0,e.x)(),{data:f,error:g}=await d.from("tasks").select("run_index").eq("id",a).single();if(g){if(g?.code==="42703")return;throw g}let h=Array.isArray(f.run_index)?f.run_index:[],i=[b,...h].slice(0,c),{error:j}=await d.from("tasks").update({run_index:i}).eq("id",a);if(j){if(j?.code==="42703")return;throw j}}async function w(a,b){let c=(0,e.x)().from("tasks").delete().eq("id",a);b&&(c=c.eq("user_id",b));let{error:d}=await c;if(d)throw d}async function x(a){let b=(0,e.x)().from("projects").select("*, project_repos(*)");a&&(b=b.eq("user_id",a));let{data:c,error:d}=await b;if(d){if(g(d,"projects"))return[];throw d}return(c||[]).map(a=>({...a,repos:a.project_repos??[]}))}async function y(a,b){let c=(0,e.x)().from("projects").select("*").eq("slug",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.maybeSingle();if(f){if(g(f,"projects"))return null;throw f}return d||null}async function z(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("project_repos").select("*").eq("project_id",a);if(d){if(g(d,"project_repos"))return[];throw d}return c||[]}e=(f.then?(await f)():f)[0];let Z=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function A(a,b){let c=(0,e.x)(),d=Z.test(a),f=c.from("projects").select("*");f=d?f.eq("id",a):f.eq("slug",a),b&&(f=f.eq("user_id",b));let h=await f.maybeSingle();if(h.error){if(g(h.error,"projects"))return null;throw h.error}let i=h.data;if(!i)return null;let j=await z(i.id);return{...i,repos:j}}async function B(a,b,c){if(!b.length)return[];let d=b.map(b=>({project_id:a,name:b.name,path:b.path??null,notes:b.notes??null})),{data:e,error:f}=await c.from("project_repos").insert(d).select("*");if(f){if(g(f,"project_repos"))return[];throw f}return e||[]}async function C(a,b,c){if(!b.name?.trim())throw Error("Project name is required");let d=n(c),e=b.name.trim()||"project",f=await m(e,a,d),g={user_id:a,name:b.name.trim(),slug:f,description:b.description??null,workflow_id:b.workflow_id??null},{data:h,error:i}=await d.from("projects").insert(g).select("*").single();if(i)throw i;let j=await B(h.id,b.repos??[],d);return{...h,repos:j}}async function D(a,b,c,d){let e=n(d),f=Z.test(a),h=a;if(!f){let c=await y(a,b);if(!c)return null;h=c.id}let i={};if(void 0!==c.name){let a=c.name?.trim();if(!a)throw Error("Project name cannot be empty");i.name=a}if(void 0!==c.slug){let a=c.slug?.trim();a&&(i.slug=a)}if(void 0!==c.description&&(i.description=c.description),void 0!==c.metadata&&(i.metadata=c.metadata),void 0!==c.ci_cd_info&&(i.ci_cd_info=c.ci_cd_info),void 0!==c.workflow_id&&(i.workflow_id=c.workflow_id),Object.keys(i).length){let{error:a}=await e.from("projects").update(i).eq("id",h).eq("user_id",b);if(a)throw a}if(c.repos){let{error:a}=await e.from("project_repos").delete().eq("project_id",h);if(a&&!g(a,"project_repos"))throw a;await B(h,c.repos,e)}return A(h,b)}async function E(a,b,c){let d=n(c),{error:e}=await d.from("projects").delete().eq("id",a).eq("user_id",b);if(e)throw e}async function F(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflows").select("*").or(`user_id.eq.${a},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(d){if(g(d,"workflows"))return[];throw d}return c||[]}async function G(a,b){let c=(0,e.x)().from("workflows").select("*").eq("id",a),{data:d,error:f}=await c.maybeSingle();if(f){if(g(f,"workflows"))return null;throw f}return d}async function H(a,b,c){let d=(0,e.x)(),f={updated_at:new Date().toISOString()};void 0!==c.definition&&(f.definition=c.definition),void 0!==c.name&&(f.name=c.name),void 0!==c.description&&(f.description=c.description);let{data:g,error:h}=await d.from("workflows").update(f).eq("id",a).select().single();if(h)throw h;return g}async function I(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflow_nodes").select("*").eq("workflow_id",a).order("position",{ascending:!0});if(d){if(g(d,"workflow_nodes"))return[];throw d}return c||[]}async function J(a,b,c){let d=(0,e.x)();if(!await G(a,b))throw Error("Workflow not found");return await Promise.all(c.map(async b=>{let c={updated_at:new Date().toISOString()};if(void 0!==b.prompt&&(c.prompt=b.prompt),void 0!==b.provider&&(c.provider=b.provider),void 0!==b.model&&(c.model=b.model),void 0!==b.metadata&&(c.metadata=b.metadata),Object.keys(c).length<=1)return;let{error:e}=await d.from("workflow_nodes").update(c).eq("workflow_id",a).eq("id",b.id);if(e)throw e})),I(a)}async function K(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflow_transitions").select("*").eq("workflow_id",a).order("priority",{ascending:!0});if(d){if(g(d,"workflow_transitions"))return[];throw d}return c||[]}async function L(a,b){let c=await G(a,b);if(!c)return null;let[d,e]=await Promise.all([I(a),K(a)]);return{...c,nodes:d,transitions:e}}function M(){return"00000000-0000-0000-0000-000000000001"}async function N(a,b={}){let c=(0,e.x)(),d=Math.max(1,Math.min(2e3,Number(b.limit??b.tail??500))),f="string"==typeof b.after&&b.after.trim()?b.after.trim():null,g=f?null:void 0===b.tail?d:Number(b.tail),h=null!==g&&Number.isFinite(g)&&g>0,i=c.from("task_logs").select("*").eq("task_id",a);i=f?i.gt("created_at",f).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(d):h?i.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(d):i.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(d);let{data:j,error:k}=await i;if(k)throw k;let l=j||[];return f?l:h?l.slice().reverse():l}async function O(a,b,c){let d=(0,e.x)(),{data:f,error:g}=await d.from("task_logs").insert({task_id:a,content:b,log_type:c}).select().single();if(g)throw g;return f}async function P(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("task_comments").select("*").eq("task_id",a).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(d)throw d;return c||[]}async function Q(a,b,c,d){let f=(0,e.x)(),{data:g,error:h}=await f.from("task_comments").insert({task_id:a,content:b,author_type:c,author_id:d??null}).select().single();if(h)throw h;return g}async function R(a,b){let c=(0,e.x)(),{data:d,error:f}=await c.from("task_comments").select("author_id, author_type").eq("id",a).single();if(f)throw f;if(!d)throw Error("Comment not found");if("user"!==d.author_type||d.author_id!==b)throw Error("Unauthorized");let{error:g}=await c.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",a).is("deleted_at",null);if(g)throw g}async function S(a,b,c){let d=(0,e.x)().from("learnings").select("*").eq("scope",a).order("created_at",{ascending:!1});b&&(d=d.eq("scope_id",b)),c&&(d=d.eq("user_id",c));let{data:f,error:g}=await d;if(g)throw g;return f||[]}async function T(a,b,c,d){let f=(0,e.x)(),{data:g,error:h}=await f.from("learnings").insert({scope:a,scope_id:c,content:b,user_id:d}).select().single();if(h)throw h;return g}async function U(a,b){let c=(0,e.x)().from("learnings").delete().eq("id",a);b&&(c=c.eq("user_id",b));let{error:d}=await c;if(d)throw d}let $={ideation:{prompt:"Do the hard work to understand the user's true intent, as they may not know it themselves. Interpret their request and present concrete scenarios to help them visualize options. Iterate until something 'clicks'. It is okay if only 1 out of 10 proposals resonates; the goal is finding that alignment.",outputs:["research.md"],swarm:!1},planning:{prompt:"Translate the aligned intent into an implementation plan.",outputs:["plan.md","tasks.md"],swarm:!1},execution:{prompt:"Implement based on all the context/history/research/plan. Write clean, tested code. Follow the plan and execute on the tasks.",outputs:["code","tests","PR"],swarm:!1},verification:{prompt:"Test thoroughly. Find edge cases. Fix bugs. Verify the implementation works as expected against the requirements. Return PASS/FAIL/BLOCKED with exact rationale.",outputs:["test results","bug fixes"],swarm:!1},done:{prompt:"Task finished and shipped.",outputs:[],swarm:!1}},_="00000000-0000-0000-0000-000000000001";async function V(a,b){let c=(0,e.x)().from("stage_prompts").select("*").eq("workflow_id",b).order("stage",{ascending:!0});c=a?c.or(`user_id.eq.${a},is_default.eq.true`):c.eq("is_default",!0);let{data:d,error:f}=await c;if(f)throw f;return d||[]}async function W(a,b,c){let d=(0,e.x)();if(b){let{data:e}=await d.from("stage_prompts").select("*").eq("workflow_id",c).eq("stage",a).eq("user_id",b).single();if(e)return e}let{data:f}=await d.from("stage_prompts").select("*").eq("workflow_id",c).eq("stage",a).eq("is_default",!0).single();return f||null}async function X(a,b,c=[],d,f,g){let h=(0,e.x)(),i={stage:a,prompt:b,outputs:c,user_id:d,is_default:!d,workflow_id:g};f&&(void 0!==f.swarm&&(i.swarm=f.swarm),void 0!==f.provider&&(i.provider=f.provider),void 0!==f.model&&(i.model=f.model),void 0!==f.swarm_models&&(i.swarm_models=f.swarm_models));let{data:j,error:k}=await h.from("stage_prompts").upsert(i,{onConflict:d?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(k)throw k;return j}async function Y(a,b){let c=(0,e.x)().from("stage_prompts").delete().eq("id",a);b&&(c=c.eq("user_id",b));let{error:d}=await c;if(d)throw d}d()}catch(a){d(a)}})}};
|
|
1
|
+
"use strict";exports.id=7143,exports.ids=[7143],exports.modules={27143:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Co:()=>W,Cp:()=>Q,Fw:()=>F,IB:()=>k,JQ:()=>C,Jg:()=>T,OH:()=>aa,UT:()=>y,WH:()=>V,ZG:()=>_,_f:()=>$,a4:()=>U,bg:()=>K,co:()=>D,et:()=>ab,g1:()=>Z,gA:()=>H,gg:()=>w,h_:()=>i,iN:()=>Y,k9:()=>j,lC:()=>z,mc:()=>x,mk:()=>R,oe:()=>X,ou:()=>ae,pW:()=>S,rV:()=>E,tB:()=>ad,updateWorkflow:()=>M,updateWorkflowNodes:()=>O,vq:()=>B,vr:()=>I,x1:()=>v,xw:()=>A,xx:()=>J,yv:()=>r});var e=c(79965),f=c(55511),g=a([e]);function h(a,b){if(!a)return!1;let c="string"==typeof a.message?a.message:"";return"42P01"===a.code||"PGRST205"===a.code||c.includes(`relation "${b}" does not exist`)||c.includes(`Could not find the table 'agx.${b}'`)||c.includes(`Could not find the table 'public.${b}'`)}async function i(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("user_settings").select("*").eq("user_id",a).maybeSingle();if(d){if(h(d,"user_settings"))return null;throw d}return c||null}async function j(a,b,c){let d=c?.onlyIfNewer!==!1,f=function(a){if("string"==typeof a){let b=Date.parse(a);if(Number.isFinite(b))return new Date(b).toISOString()}return new Date().toISOString()}(b.changed_at),g=await i(a);if(d&&g?.changed_at){let a=Date.parse(g.changed_at),b=Date.parse(f);if(Number.isFinite(a)&&Number.isFinite(b)&&b<=a)return{settings:g,updated:!1}}let h={user_id:a,default_provider:b.default_provider??g?.default_provider??null,models:b.models??g?.models??{},provenance:b.provenance,changed_at:f},j=(0,e.x)(),{error:k}=await j.from("user_settings").upsert(h,{onConflict:"user_id"});if(k)throw k;let l=await i(a);if(!l)throw Error("Failed to load user_settings after upsert");return{settings:l,updated:!0}}function k(a,b,c){let d=a=>"string"!=typeof a?null:a.trim()||null,e=d(c?.default_provider)||"gemini",f=d(a.provider)||d(b?.provider)||e,g=d(c?.models?.[f])||null,h=d(a.model)||d(b?.model)||g||null,i=a.swarm??b?.swarm??!1,j=a.swarm_models?.length?a.swarm_models:b?.swarm_models||[];return{provider:f,model:h,swarm:i,swarm_models:j}}function l(a){return a.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function m(a,b){let c=l(a);for(let d=0;d<5;d++){let{data:d,error:e}=await b.from("tasks").select("id").eq("slug",c).limit(1);if(e)throw e;if(!d||0===d.length)return c;let f=Math.random().toString(36).slice(2,6);c=`${l(a)}-${f}`.slice(0,48)}return`${l(a)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function n(a,b,c,d){let e=l(a);for(let f=0;f<5;f++){let f=c.from("projects").select("id").eq("slug",e).eq("user_id",b);d&&(f=f.neq("id",d));let{data:g,error:h}=await f.limit(1);if(h)throw h;if(!g||0===g.length)return e;let i=Math.random().toString(36).slice(2,6);e=`${l(a)}-${i}`.slice(0,48)}return`${l(a)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function o(a){return a??(0,e.x)()}function p(a){let b=a.trim();if(!b)return[];try{let a=JSON.parse(b);if(Array.isArray(a))return a.map(a=>String(a||"").trim()).filter(Boolean)}catch{}return b.split(",").map(a=>a.trim()).filter(Boolean)}function q(a){let b;if(!a)return[];if(Array.isArray(a))b=a.map(a=>"string"==typeof a?a:null==a?"":String(a)).filter(Boolean);else{if("string"!=typeof a)return[];b=p(a)}return Array.from(new Set(b.map(a=>a.trim()).filter(Boolean)))}function r(a){let b=a.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!b)return{frontmatter:{},body:a};let c={};for(let a of b[1].split("\n")){let b=a.indexOf(":");if(b>0){let d=a.slice(0,b).trim(),e=a.slice(b+1).trim();if("depends_on"===d){c[d]=p(e);continue}"true"===e?c[d]=!0:"false"===e?c[d]=!1:/^\d+$/.test(e)?c[d]=parseInt(e):c[d]=e}}return{frontmatter:c,body:b[2]}}async function s(a,b,c){if(!a||!b?.length)return;let d=o(c),e=new Set,f=[...b];for(;f.length;){let b=f.pop();if(!b)continue;if(b===a)throw Error("Circular dependency detected");if(e.has(b))continue;e.add(b);let{data:c,error:g}=await d.from("tasks").select("depends_on").eq("id",b).maybeSingle();if(g){if("PGRST116"===g.code||"42703"===g.code)continue;throw g}if(c)for(let a of Array.isArray(c.depends_on)?c.depends_on:[])a&&!e.has(a)&&f.push(a)}}function t(a){let{body:b}=r(a),c=b.match(/^#\s+(.+)$/m);return c?c[1]:void 0}async function u(a,b){let c=a.depends_on;if(!c||0===c.length)return;let d=(0,e.x)(),{data:f,error:g}=await d.from("tasks").select("id, status").in("id",c);if(g)return;let h=f?.every(a=>"completed"===a.status)??!1;if(h||"blocked"===a.status){if(h&&"blocked"===a.status){let c=d.from("tasks").update({status:"queued"}).eq("id",a.id);b&&(c=c.eq("user_id",b)),await c}}else{let c=d.from("tasks").update({status:"blocked"}).eq("id",a.id);b&&(c=c.eq("user_id",b)),await c}}async function v(a,b){console.log("getTasks called with userId:",a);let c=(0,e.x)().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});a&&(c=c.eq("user_id",a)),b?.project&&(c=c.eq("project",b.project)),b?.status&&(c=c.eq("status",b.status));let{data:d,error:f}=await c;if(f)throw f;return d||[]}async function w(a,b){let c=(0,e.x)().from("tasks").select("*").eq("id",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.single();if(f){if("PGRST116"===f.code)return null;throw f}return d}async function x(a,b){let c=(0,e.x)().from("tasks").select("*").eq("slug",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.single();if(f){if("PGRST116"===f.code)return null;throw f}return d}async function y(a,b,c){let d=(0,e.x)(),{frontmatter:g,body:h}=r(a),i="boolean"==typeof g.swarm?g.swarm:void 0,j=t(a),k=String(g.slug||j||"task"),l=await m(k,d),n="string"==typeof g.project_id?g.project_id:void 0,o="string"==typeof g.workflow_id?g.workflow_id:void 0;/^---\n/.test(a);let p="string"==typeof g.provider?g.provider:null,v="string"==typeof g.model?g.model:null,x="string"==typeof g.engine?g.engine:null,y="ai"===g.created_by?"ai":"user",z=q(g.depends_on),A=q(c?.dependsOn),B=A.length>0?A:z,C={id:(0,f.randomUUID)(),content:a,description:h,title:j,slug:l,status:g.status||"queued",stage:g.stage,project:g.project,...void 0!==n?{project_id:n}:{},...void 0!==o?{workflow_id:o}:{},priority:g.priority,engine:x,provider:p,model:v,swarm:i,swarm_models:c?.swarmModels??null,depends_on:B.length?B:null,created_by:y,user_id:b,current_plan:c?.currentPlan||null,open_blockers:c?.openBlockers||[],next_action:c?.nextAction||null,version:1};await s(C.id,B,d);let{data:D,error:E}=await d.from("tasks").insert(C).select().single();if(E&&"42703"===E.code){let{description:a,swarm_models:b,swarm:c,workflow_id:e,current_plan:f,open_blockers:g,next_action:h,version:i,depends_on:j,...k}=C;({data:D,error:E}=await d.from("tasks").insert(k).select().single())}if(E)throw E;if(!D)throw Error("Failed to create task");return await u(D,b),await w(D.id,b)||D}async function z(a,b,c,d){let f=(0,e.x)(),{frontmatter:g,body:h}=r(b),i="boolean"==typeof g.swarm?g.swarm:void 0,j=t(b),k="string"==typeof g.project_id?g.project_id:void 0,l=Object.prototype.hasOwnProperty.call(g,"provider"),m=Object.prototype.hasOwnProperty.call(g,"model"),n=Object.prototype.hasOwnProperty.call(g,"workflow_id"),o=Object.prototype.hasOwnProperty.call(g,"depends_on"),p=q(g.depends_on),v=q(d?.dependsOn),x=d?.dependsOn!==void 0||o,y=d?.dependsOn!==void 0?v:p,z={content:b,description:h,title:j,status:g.status,stage:g.stage,project:g.project,...void 0!==k?{project_id:k}:{},workflow_id:n?g.workflow_id:void 0,priority:g.priority,engine:g.engine,provider:l?g.provider:null,model:m?g.model:null,swarm:i,swarm_models:d?.swarmModels??void 0,...x?{depends_on:y.length?y:null}:{},updated_at:new Date().toISOString(),current_plan:d?.currentPlan??void 0,open_blockers:d?.openBlockers??void 0,next_action:d?.nextAction??void 0};Object.keys(z).forEach(a=>{void 0===z[a]&&delete z[a]}),x&&await s(a,y,f);let A=f.from("tasks").update({...z,version:f.rpc("increment_version")}).eq("id",a);c&&(A=A.eq("user_id",c)),d?.expectedVersion!==void 0&&(A=A.eq("version",d.expectedVersion));let{data:B,error:C}=await f.from("tasks").update({...z}).eq("id",a).select().single();if(C&&"42703"===C.code){let{description:b,swarm_models:d,swarm:e,workflow_id:g,current_plan:h,open_blockers:i,next_action:j,version:k,depends_on:l,...m}=z,n=f.from("tasks").update(m).eq("id",a);c&&(n=n.eq("user_id",c)),{data:B,error:C}=await n.select().single()}if(C)throw C;if(!B)throw Error("Failed to create task");return await u(B,c),await w(B.id,c)||B}async function A(a,b,c=25){let d=(0,e.x)(),{data:f,error:g}=await d.from("tasks").select("run_index").eq("id",a).single();if(g){if(g?.code==="42703")return;throw g}let h=Array.isArray(f.run_index)?f.run_index:[],i=[b,...h].slice(0,c),{error:j}=await d.from("tasks").update({run_index:i}).eq("id",a);if(j){if(j?.code==="42703")return;throw j}}async function B(a,b){let c=(0,e.x)().from("tasks").delete().eq("id",a);b&&(c=c.eq("user_id",b));let{error:d}=await c;if(d)throw d}async function C(a){let b=(0,e.x)().from("projects").select("*, project_repos(*)");a&&(b=b.eq("user_id",a));let{data:c,error:d}=await b;if(d){if(h(d,"projects"))return[];throw d}return(c||[]).map(a=>({...a,repos:a.project_repos??[]}))}async function D(a,b){let c=(0,e.x)().from("projects").select("*").eq("slug",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.maybeSingle();if(f){if(h(f,"projects"))return null;throw f}return d||null}async function E(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("project_repos").select("*").eq("project_id",a);if(d){if(h(d,"project_repos"))return[];throw d}return c||[]}e=(g.then?(await g)():g)[0];let ac=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function F(a,b){let c=(0,e.x)(),d=ac.test(a),f=c.from("projects").select("*");f=d?f.eq("id",a):f.eq("slug",a),b&&(f=f.eq("user_id",b));let g=await f.maybeSingle();if(g.error){if(h(g.error,"projects"))return null;throw g.error}let i=g.data;if(!i)return null;let j=await E(i.id);return{...i,repos:j}}async function G(a,b,c){if(!b.length)return[];let d=b.map(b=>({project_id:a,name:b.name,path:b.path??null,notes:b.notes??null})),{data:e,error:f}=await c.from("project_repos").insert(d).select("*");if(f){if(h(f,"project_repos"))return[];throw f}return e||[]}async function H(a,b,c){if(!b.name?.trim())throw Error("Project name is required");let d=o(c),e=b.name.trim()||"project",f=await n(e,a,d),g={user_id:a,name:b.name.trim(),slug:f,description:b.description??null,workflow_id:b.workflow_id??null},{data:h,error:i}=await d.from("projects").insert(g).select("*").single();if(i)throw i;let j=await G(h.id,b.repos??[],d);return{...h,repos:j}}async function I(a,b,c,d){let e=o(d),f=ac.test(a),g=a;if(!f){let c=await D(a,b);if(!c)return null;g=c.id}let i={};if(void 0!==c.name){let a=c.name?.trim();if(!a)throw Error("Project name cannot be empty");i.name=a}if(void 0!==c.slug){let a=c.slug?.trim();a&&(i.slug=a)}if(void 0!==c.description&&(i.description=c.description),void 0!==c.metadata&&(i.metadata=c.metadata),void 0!==c.ci_cd_info&&(i.ci_cd_info=c.ci_cd_info),void 0!==c.workflow_id&&(i.workflow_id=c.workflow_id),Object.keys(i).length){let{error:a}=await e.from("projects").update(i).eq("id",g).eq("user_id",b);if(a)throw a}if(c.repos){let{error:a}=await e.from("project_repos").delete().eq("project_id",g);if(a&&!h(a,"project_repos"))throw a;await G(g,c.repos,e)}return F(g,b)}async function J(a,b,c){let d=o(c),{error:e}=await d.from("projects").delete().eq("id",a).eq("user_id",b);if(e)throw e}async function K(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflows").select("*").or(`user_id.eq.${a},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(d){if(h(d,"workflows"))return[];throw d}return c||[]}async function L(a,b){let c=(0,e.x)().from("workflows").select("*").eq("id",a),{data:d,error:f}=await c.maybeSingle();if(f){if(h(f,"workflows"))return null;throw f}return d}async function M(a,b,c){let d=(0,e.x)(),f={updated_at:new Date().toISOString()};void 0!==c.definition&&(f.definition=c.definition),void 0!==c.name&&(f.name=c.name),void 0!==c.description&&(f.description=c.description);let{data:g,error:h}=await d.from("workflows").update(f).eq("id",a).select().single();if(h)throw h;return g}async function N(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflow_nodes").select("*").eq("workflow_id",a).order("position",{ascending:!0});if(d){if(h(d,"workflow_nodes"))return[];throw d}return c||[]}async function O(a,b,c){let d=(0,e.x)();if(!await L(a,b))throw Error("Workflow not found");return await Promise.all(c.map(async b=>{let c={updated_at:new Date().toISOString()};if(void 0!==b.prompt&&(c.prompt=b.prompt),void 0!==b.provider&&(c.provider=b.provider),void 0!==b.model&&(c.model=b.model),void 0!==b.metadata&&(c.metadata=b.metadata),Object.keys(c).length<=1)return;let{error:e}=await d.from("workflow_nodes").update(c).eq("workflow_id",a).eq("id",b.id);if(e)throw e})),N(a)}async function P(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflow_transitions").select("*").eq("workflow_id",a).order("priority",{ascending:!0});if(d){if(h(d,"workflow_transitions"))return[];throw d}return c||[]}async function Q(a,b){let c=await L(a,b);if(!c)return null;let[d,e]=await Promise.all([N(a),P(a)]);return{...c,nodes:d,transitions:e}}function R(){return"00000000-0000-0000-0000-000000000001"}async function S(a,b={}){let c=(0,e.x)(),d=Math.max(1,Math.min(2e3,Number(b.limit??b.tail??500))),f="string"==typeof b.after&&b.after.trim()?b.after.trim():null,g=f?null:void 0===b.tail?d:Number(b.tail),h=null!==g&&Number.isFinite(g)&&g>0,i=c.from("task_logs").select("*").eq("task_id",a);i=f?i.gt("created_at",f).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(d):h?i.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(d):i.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(d);let{data:j,error:k}=await i;if(k)throw k;let l=j||[];return f?l:h?l.slice().reverse():l}async function T(a,b,c){let d=(0,e.x)(),{data:f,error:g}=await d.from("task_logs").insert({task_id:a,content:b,log_type:c}).select().single();if(g)throw g;return f}async function U(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("task_comments").select("*").eq("task_id",a).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(d)throw d;return c||[]}async function V(a,b,c,d){let f=(0,e.x)(),{data:g,error:h}=await f.from("task_comments").insert({task_id:a,content:b,author_type:c,author_id:d??null}).select().single();if(h)throw h;return g}async function W(a,b){let c=(0,e.x)(),{data:d,error:f}=await c.from("task_comments").select("author_id, author_type").eq("id",a).single();if(f)throw f;if(!d)throw Error("Comment not found");if("user"!==d.author_type||d.author_id!==b)throw Error("Unauthorized");let{error:g}=await c.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",a).is("deleted_at",null);if(g)throw g}async function X(a,b,c){let d=(0,e.x)().from("learnings").select("*").eq("scope",a).order("created_at",{ascending:!1});b&&(d=d.eq("scope_id",b)),c&&(d=d.eq("user_id",c));let{data:f,error:g}=await d;if(g)throw g;return f||[]}async function Y(a,b,c,d){let f=(0,e.x)(),{data:g,error:h}=await f.from("learnings").insert({scope:a,scope_id:c,content:b,user_id:d}).select().single();if(h)throw h;return g}async function Z(a,b){let c=(0,e.x)().from("learnings").delete().eq("id",a);b&&(c=c.eq("user_id",b));let{error:d}=await c;if(d)throw d}let ad={ideation:{prompt:"Do the hard work to understand the user's true intent, as they may not know it themselves. Interpret their request and present concrete scenarios to help them visualize options. Iterate until something 'clicks'. It is okay if only 1 out of 10 proposals resonates; the goal is finding that alignment.",outputs:["research.md"],swarm:!1},planning:{prompt:"Translate the aligned intent into an implementation plan.",outputs:["plan.md","tasks.md"],swarm:!1},execution:{prompt:"Implement based on all the context/history/research/plan. Write clean, tested code. Follow the plan and execute on the tasks.",outputs:["code","tests","PR"],swarm:!1},verification:{prompt:"Test thoroughly. Find edge cases. Fix bugs. Verify the implementation works as expected against the requirements. Return PASS/FAIL/BLOCKED with exact rationale.",outputs:["test results","bug fixes"],swarm:!1},done:{prompt:"Task finished and shipped.",outputs:[],swarm:!1}},ae="00000000-0000-0000-0000-000000000001";async function $(a,b){let c=(0,e.x)().from("stage_prompts").select("*").eq("workflow_id",b).order("stage",{ascending:!0});c=a?c.or(`user_id.eq.${a},is_default.eq.true`):c.eq("is_default",!0);let{data:d,error:f}=await c;if(f)throw f;return d||[]}async function _(a,b,c){let d=(0,e.x)();if(b){let{data:e}=await d.from("stage_prompts").select("*").eq("workflow_id",c).eq("stage",a).eq("user_id",b).single();if(e)return e}let{data:f}=await d.from("stage_prompts").select("*").eq("workflow_id",c).eq("stage",a).eq("is_default",!0).single();return f||null}async function aa(a,b,c=[],d,f,g){let h=(0,e.x)(),i={stage:a,prompt:b,outputs:c,user_id:d,is_default:!d,workflow_id:g};f&&(void 0!==f.swarm&&(i.swarm=f.swarm),void 0!==f.provider&&(i.provider=f.provider),void 0!==f.model&&(i.model=f.model),void 0!==f.swarm_models&&(i.swarm_models=f.swarm_models));let{data:j,error:k}=await h.from("stage_prompts").upsert(i,{onConflict:d?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(k)throw k;return j}async function ab(a,b){let c=(0,e.x)().from("stage_prompts").delete().eq("id",a);b&&(c=c.eq("user_id",b));let{error:d}=await c;if(d)throw d}d()}catch(a){d(a)}})}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=6183,a.ids=[6183],a.modules={29021:a=>{a.exports=require("fs")},34589:a=>{a.exports=require("node:assert")},52586:(a,b,c)=>{async function d(){{let{getBoss:a,QUEUE_NAMES:b}=await c.e(7699).then(c.bind(c,17699)),{taskProcessor:d}=await c.e(6317).then(c.bind(c,46317)),e=await a();await e.work(b.TASK_PROCESS,{batchSize:5},d),console.log("[worker] pg-boss worker started (embedded)")}}c.r(b),c.d(b,{register:()=>d})},58500:a=>{a.exports=require("node:timers/promises")},64939:a=>{a.exports=import("pg")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79748:a=>{a.exports=require("fs/promises")}};var b=require("./webpack-runtime.js");b.C(a);var c=b(b.s=52586);module.exports=c})();
|
|
1
|
+
"use strict";(()=>{var a={};a.id=6183,a.ids=[6183],a.modules={29021:a=>{a.exports=require("fs")},34589:a=>{a.exports=require("node:assert")},52586:(a,b,c)=>{async function d(){{let{getBoss:a,QUEUE_NAMES:b}=await c.e(7699).then(c.bind(c,17699)),{taskProcessor:d}=await c.e(6317).then(c.bind(c,46317)),e=await a();await e.work(b.TASK_PROCESS,{batchSize:5},d),console.log("[worker] pg-boss worker started (embedded)")}}c.r(b),c.d(b,{register:()=>d})},55511:a=>{a.exports=require("crypto")},58500:a=>{a.exports=require("node:timers/promises")},64939:a=>{a.exports=import("pg")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79748:a=>{a.exports=require("fs/promises")}};var b=require("./webpack-runtime.js");b.C(a);var c=b(b.s=52586);module.exports=c})();
|
package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/middleware-manifest.json
CHANGED
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
"wasm": [],
|
|
19
19
|
"assets": [],
|
|
20
20
|
"env": {
|
|
21
|
-
"__NEXT_BUILD_ID": "
|
|
22
|
-
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "
|
|
23
|
-
"__NEXT_PREVIEW_MODE_ID": "
|
|
24
|
-
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "
|
|
25
|
-
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "
|
|
21
|
+
"__NEXT_BUILD_ID": "24myOUbvbiDvyX6evcbZU",
|
|
22
|
+
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "l5q9wyuZwv1Durk0212F0tnUikAOZQFjo4PhzFA8/T4=",
|
|
23
|
+
"__NEXT_PREVIEW_MODE_ID": "0d74dfc41fca5a3820a2e211224442e0",
|
|
24
|
+
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "29cead47c58463aa80fab296147574951bcef4aa892793bd78cdd7b9cd4284db",
|
|
25
|
+
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "a76193d7668e784072b321be0342168e36b0b1cfc6ae84b0f5482f743914f14a"
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
},
|