@mndrk/agx 2.4.2 → 2.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +5 -0
- package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +2 -2
- package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +41 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/auth/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/callback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page/react-loadable-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/react-loadable-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/083c9_next-internal_server_app_api_trackers_[tracker]_metadata_route_actions_c83fcc1a.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_trackers_[tracker]_labels_[id]_route_actions_2646388d.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_trackers_[tracker]_metadata_bulk_route_actions_f43e6831.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0e04eca4._.js +40 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1d970ad0._.js +40 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3b27260f._.js +23 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__580ddcca._.js +40 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__5da8d281._.js +129 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__76030d44._.js +40 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7db7c421._.js +20 -5
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d8cc43c7._.js +22 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f598d976._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f7a936d9._.js +21 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_80b34b78._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_8f9f647d._.js +28 -13
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d256aa32._.js +28 -25
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_tracker_tracker-run-store_ts_5aa9592e._.js +22 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_trackers_[tracker]_labels_route_actions_8ba41152.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_trackers_[tracker]_stats_route_actions_7da4ccde.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__799f4d13._.js → [root-of-the-server]__2af44092._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__452cb0f0._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__489568b4._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__4ec098a0._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__53bd50df._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7774a40c._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__b8484b0e._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__51edc9b6._.js → [root-of-the-server]__bd05ee09._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_8c4beba9._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_35d90b5d._.js → apps_local_bbb7b83b._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_f0554cb4._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0243e7d015db440d.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/42a62b80b32a97f7.js +9 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/5d047fc7267a8f53.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/716e1716d526ded9.js +46 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{77cea126364aab3c.js → 7353a3a1fcd5825c.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/9acdd370e9daca0d.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{6c777fe66e042eec.js → 9df45611d6c84e02.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/a084c6475513e6fe.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/aa6db7c91c1ccd5f.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/cecf3e8c47c785f5.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/d5607ac80145f3b7.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{d5b14e14665024a9.js → d5c307b52fd87861.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/f4acf76cb6c82c73.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/f6d31036588ddfe4.css +1 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/labels/[id]/route.ts +23 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/labels/route.ts +41 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/metadata/bulk/route.ts +68 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/metadata/route.ts +31 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/options/route.ts +1 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/stats/route.ts +20 -0
- package/cloud-runtime/standalone/apps/local/components/TrackerBoard.tsx +609 -85
- package/cloud-runtime/standalone/apps/local/components/tracker/FibonacciPicker.tsx +41 -0
- package/cloud-runtime/standalone/apps/local/components/tracker/FolderRow.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/components/tracker/LabelPicker.tsx +118 -0
- package/cloud-runtime/standalone/apps/local/components/tracker/LabelSettings.tsx +104 -0
- package/cloud-runtime/standalone/apps/local/components/tracker/PromptPopover.tsx +64 -0
- package/cloud-runtime/standalone/apps/local/components/tracker/SelectionBar.tsx +276 -23
- package/cloud-runtime/standalone/apps/local/components/tracker/StatusGroupRow.tsx +50 -0
- package/cloud-runtime/standalone/apps/local/components/tracker/TicketPanel.tsx +14 -2
- package/cloud-runtime/standalone/apps/local/components/tracker/TicketRow.tsx +147 -7
- package/cloud-runtime/standalone/apps/local/components/tracker/TrackerSettingsModal.tsx +14 -2
- package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +15 -22
- package/cloud-runtime/standalone/apps/local/hooks/useTrackerIssueStats.ts +52 -0
- package/cloud-runtime/standalone/apps/local/hooks/useTrackerItemMetadata.ts +67 -0
- package/cloud-runtime/standalone/apps/local/hooks/useTrackerItemsMetadata.ts +51 -0
- package/cloud-runtime/standalone/apps/local/hooks/useTrackerLabels.ts +74 -0
- package/cloud-runtime/standalone/apps/local/hooks/useTrackerRuns.ts +5 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/jira/adapter.tsx +1 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/jira/issues.ts +1 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/linear/adapter.tsx +1 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/linear/client.ts +5 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/linear/issues.ts +1 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-adapter.ts +2 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-item-metadata-store.ts +262 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-item-store.ts +10 -3
- package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-run-store.ts +42 -0
- package/cloud-runtime/standalone/apps/local/state/trackerBoardFilters.ts +4 -0
- package/cloud-runtime/standalone/apps/local/worker/index.js +0 -1
- package/package.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__30bf097e._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__46ae9d33._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__50fd8680._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__8059a285._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__886953ec._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__97160565._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0876dfd6ce07abaf.js +0 -9
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/1ec83777a9abd420.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/286758b0fd546c68.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/a72ed5cb3feb0d51.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b02c180ad1d968eb.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b048a4812b51f97a.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/c63d97c917d96f47.js +0 -46
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/d3bf70e2fbdc0ae5.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/dd5a56eea2d4c067.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/dd7d7c382389b8b9.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/ec92e3bd6c2db6e6.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/ffcc32453866d0c2.js +0 -1
- /package/cloud-runtime/standalone/apps/local/.next/static/{QEldoF1LdgJqO0PgpmUmx → 4MnUE2NHztybGBWFbcBo5}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{QEldoF1LdgJqO0PgpmUmx → 4MnUE2NHztybGBWFbcBo5}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{QEldoF1LdgJqO0PgpmUmx → 4MnUE2NHztybGBWFbcBo5}/_ssgManifest.js +0 -0
package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f7a936d9._.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},769025,e=>{"use strict";function t(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let a=Object.values(r);return a.length>0?a[0]:void 0}function r(e,t){return e.prepare(`PRAGMA ${t}`).all()}function a(e,t){e.exec(`PRAGMA ${t}`)}function s(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}}function n(e,t){return(...r)=>{e.exec("BEGIN");try{let a=t(...r);return e.exec("COMMIT"),a}catch(t){throw e.exec("ROLLBACK"),t}}}e.s(["pragmaAll",()=>r,"pragmaGet",()=>t,"pragmaSet",()=>a,"transaction",()=>s,"transactionFn",()=>n])},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},744071,e=>{"use strict";let t={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"};e.s(["LOCAL_USER",0,t])},452377,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(769025),r=e.i(522734),a=e.i(446786),s=e.i(814747);let n="3.35.0",i=["json1"],o=["fts5"],u=["nfs","smb","cifs","efs","fuse.sshfs"];function d(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function
|
|
1
|
+
module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},769025,e=>{"use strict";function t(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let a=Object.values(r);return a.length>0?a[0]:void 0}function r(e,t){return e.prepare(`PRAGMA ${t}`).all()}function a(e,t){e.exec(`PRAGMA ${t}`)}function s(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}}function n(e,t){return(...r)=>{e.exec("BEGIN");try{let a=t(...r);return e.exec("COMMIT"),a}catch(t){throw e.exec("ROLLBACK"),t}}}e.s(["pragmaAll",()=>r,"pragmaGet",()=>t,"pragmaSet",()=>a,"transaction",()=>s,"transactionFn",()=>n])},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},744071,e=>{"use strict";let t={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"};e.s(["LOCAL_USER",0,t])},452377,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(769025),r=e.i(522734),a=e.i(446786),s=e.i(814747);let n="3.35.0",i=["json1"],o=["fts5"],u=["nfs","smb","cifs","efs","fuse.sshfs"];function d(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function c(c,l){let p=[],_=c.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),a=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(a[e]||0);if(0!==t)return t}return 0}(_.v,n)&&p.push({kind:"version_mismatch",message:`SQLite version ${_.v} is below minimum ${n}`,found:_.v,required:`>= ${n}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),i))d(c,e)||p.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of o)d(c,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let E=function(t){"linux"!==a.default.platform()&&a.default.platform();try{let n=s.default.resolve(t),{execSync:i}=e.r(233405);if("darwin"===a.default.platform());else{let e=r.default.readFileSync("/proc/mounts","utf-8"),t="",a="unknown";for(let r of e.split("\n")){let[,e,s]=r.split(/\s+/);e&&n.startsWith(e)&&e.length>t.length&&(t=e,a=s||"unknown")}return a}}catch{}return null}(l);E&&u.some(e=>E.toLowerCase().includes(e))&&p.push({kind:"filesystem_error",message:`Database path '${l}' is on a network filesystem (${E})`,path:l,found:E,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(c,"journal_mode = wal"),(0,t.pragmaSet)(c,"foreign_keys = 1"),(0,t.pragmaSet)(c,"busy_timeout = 5000"),(0,t.pragmaSet)(c,"synchronous = 1"),(0,t.pragmaSet)(c,"cache_size = -64000");let e=(0,t.pragmaGet)(c,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(c,"journal_mode = DELETE");let e=(0,t.pragmaGet)(c,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(c,"synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):p.push({kind:"pragma_error",message:`Failed to set journal_mode (got '${e}', tried WAL then DELETE)`,found:e,required:"wal or delete",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}}catch(e){p.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return p}e.s(["validateSQLiteEnvironment",()=>c])},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},85e4,e=>{"use strict";var t=e.i(522734),r=e.i(446786),a=e.i(814747),s=e.i(769025);let{DatabaseSync:n}=process.getBuiltinModule("node:sqlite"),i=process.env.AGX_GROUP_CHAT_DIR?.trim()||a.default.join(r.default.homedir(),".agx","group-chat"),o=a.default.join(i,"history.sqlite");function u(e){return e?.trim()||null}function d(e){return"scripted"===e?"scripted":"chat"}function c(e){let t,r=e.chat_created_at??e.created_at,a=e.chat_completed_at??null,s=function(e,t){switch(e){case"queued":return"queued";case"running":case"awaiting_user":case"blocked":return"running";case"completed":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return t}}(e.chat_status,e.status);return{id:e.id,projectId:e.project_id,projectSlug:e.project_slug,trackerType:e.tracker_type,issueId:e.issue_id,issueIdentifier:e.issue_identifier,issueTitle:e.issue_title,issueStatus:e.issue_status,issueAssignee:e.issue_assignee,threadId:e.thread_id,rootMessageId:e.root_message_id,chatRunId:e.chat_run_id,agentId:e.agent_id,agentName:e.agent_name,mode:d(e.mode),sessionTitle:"chat"===d(e.mode)&&(t=String(e.root_content??"").replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").replace(/\s+/g," ").trim())?t.length>72?`${t.slice(0,69).trimEnd()}...`:t:null,status:s,durationMs:null!=a?Math.max(a-r,0):null,lastError:e.chat_last_error??e.error,recapFilePath:e.recap_file_path??null,startedAt:new Date(r).toISOString(),updatedAt:new Date((e.chat_updated_at??e.updated_at)||e.updated_at).toISOString(),completedAt:"number"==typeof a?new Date(a).toISOString():null}}async function l(e){await t.promises.mkdir(i,{recursive:!0});let r=new n(o);(0,s.pragmaSet)(r,"journal_mode = WAL");try{r.exec(`
|
|
2
2
|
CREATE TABLE IF NOT EXISTS chat_runs (
|
|
3
3
|
id TEXT PRIMARY KEY,
|
|
4
4
|
thread_id TEXT NOT NULL,
|
|
@@ -85,20 +85,35 @@ module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/a
|
|
|
85
85
|
LEFT JOIN chat_runs cr ON cr.id = (
|
|
86
86
|
SELECT id FROM chat_runs WHERE thread_id = tr.thread_id ORDER BY updated_at DESC LIMIT 1
|
|
87
87
|
)
|
|
88
|
-
LEFT JOIN messages msg ON msg.thread_id = tr.thread_id AND msg.id = tr.root_message_id`;async function _(e){let t=Date.now(),r=u(e.id)??crypto.randomUUID(),a=u(e.threadId)??`tracker-run:${r}`,s=d(e.mode),n=e.trackerType??"linear";return
|
|
88
|
+
LEFT JOIN messages msg ON msg.thread_id = tr.thread_id AND msg.id = tr.root_message_id`;async function _(e){let t=Date.now(),r=u(e.id)??crypto.randomUUID(),a=u(e.threadId)??`tracker-run:${r}`,s=d(e.mode),n=e.trackerType??"linear";return l(i=>{i.prepare(`INSERT INTO tracker_runs (
|
|
89
89
|
id, project_id, project_slug, tracker_type,
|
|
90
90
|
issue_id, issue_identifier, issue_title,
|
|
91
91
|
issue_status, issue_assignee, thread_id, root_message_id, chat_run_id,
|
|
92
92
|
agent_id, agent_name, mode, status, error, recap_file_path, created_at, updated_at
|
|
93
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, NULL, ?, ?, ?, 'queued', NULL, ?, ?, ?)`).run(r,u(e.projectId??null),u(e.projectSlug??null),n,e.issueId.trim(),e.issueIdentifier.trim(),e.issueTitle.trim(),e.issueStatus.trim(),u(e.issueAssignee??null),a,e.agentId.trim(),e.agentName.trim(),s,u(e.recapFilePath??null),t,t);let o=i.prepare(`${p} WHERE tr.id = ? LIMIT 1`).get(r);if(!o)throw Error(`Failed to create tracker run ${r}`);return
|
|
93
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, NULL, ?, ?, ?, 'queued', NULL, ?, ?, ?)`).run(r,u(e.projectId??null),u(e.projectSlug??null),n,e.issueId.trim(),e.issueIdentifier.trim(),e.issueTitle.trim(),e.issueStatus.trim(),u(e.issueAssignee??null),a,e.agentId.trim(),e.agentName.trim(),s,u(e.recapFilePath??null),t,t);let o=i.prepare(`${p} WHERE tr.id = ? LIMIT 1`).get(r);if(!o)throw Error(`Failed to create tracker run ${r}`);return c(o)})}async function E(e){return l(t=>{let r=["updated_at = ?"],a=[Date.now()];void 0!==e.rootMessageId&&(r.push("root_message_id = ?"),a.push(u(e.rootMessageId))),void 0!==e.chatRunId&&(r.push("chat_run_id = ?"),a.push(u(e.chatRunId))),void 0!==e.status&&(r.push("status = ?"),a.push(e.status)),void 0!==e.error&&(r.push("error = ?"),a.push(u(e.error))),a.push(e.id.trim()),t.prepare(`UPDATE tracker_runs SET ${r.join(", ")} WHERE id = ?`).run(...a);let s=t.prepare(`${p} WHERE tr.id = ? LIMIT 1`).get(e.id.trim());return s?c(s):null})}async function T(e){return l(t=>{let r=t.prepare(`${p} WHERE tr.id = ? LIMIT 1`).get(e.trim());return r?c(r):null})}async function h(e){let t=e.issueId.trim(),r=u(e.projectId??null),a=u(e.trackerType??null),s=Number.isFinite(e.limit)?Math.min(Math.max(Number(e.limit),1),100):50;return l(e=>{let n=[t],i=["tr.issue_id = ?"];return r&&(i.push("tr.project_id = ?"),n.push(r)),a&&(i.push("tr.tracker_type = ?"),n.push(a)),n.push(s),e.prepare(`${p}
|
|
94
94
|
WHERE ${i.join(" AND ")}
|
|
95
95
|
ORDER BY tr.created_at DESC
|
|
96
|
-
LIMIT ?`).all(...n).map(
|
|
96
|
+
LIMIT ?`).all(...n).map(c)})}async function m(e){return l(t=>{let r=e?.trim(),a=r?`SELECT issue_id, MAX(created_at) AS last_activity_at
|
|
97
97
|
FROM tracker_runs
|
|
98
98
|
WHERE project_id = ?
|
|
99
99
|
GROUP BY issue_id`:`SELECT issue_id, MAX(created_at) AS last_activity_at
|
|
100
100
|
FROM tracker_runs
|
|
101
|
-
GROUP BY issue_id`,s=r?t.prepare(a).all(e.trim()):t.prepare(a).all(),n=new Map;for(let e of s)n.set(e.issue_id,new Date(e.last_activity_at).toISOString());return n})}async function g(e){return
|
|
101
|
+
GROUP BY issue_id`,s=r?t.prepare(a).all(e.trim()):t.prepare(a).all(),n=new Map;for(let e of s)n.set(e.issue_id,new Date(e.last_activity_at).toISOString());return n})}async function g(e){return l(t=>{let r=e?.trim(),a=r?`SELECT tr.issue_id,
|
|
102
|
+
COUNT(DISTINCT tr.id) AS sessions,
|
|
103
|
+
COALESCE(SUM(mc.cnt), 0) AS messages
|
|
104
|
+
FROM tracker_runs tr
|
|
105
|
+
LEFT JOIN (
|
|
106
|
+
SELECT thread_id, COUNT(*) AS cnt FROM messages GROUP BY thread_id
|
|
107
|
+
) mc ON mc.thread_id = tr.thread_id
|
|
108
|
+
WHERE tr.project_id = ?
|
|
109
|
+
GROUP BY tr.issue_id`:`SELECT tr.issue_id,
|
|
110
|
+
COUNT(DISTINCT tr.id) AS sessions,
|
|
111
|
+
COALESCE(SUM(mc.cnt), 0) AS messages
|
|
112
|
+
FROM tracker_runs tr
|
|
113
|
+
LEFT JOIN (
|
|
114
|
+
SELECT thread_id, COUNT(*) AS cnt FROM messages GROUP BY thread_id
|
|
115
|
+
) mc ON mc.thread_id = tr.thread_id
|
|
116
|
+
GROUP BY tr.issue_id`;return(r?t.prepare(a).all(e.trim()):t.prepare(a).all()).map(e=>({issueId:e.issue_id,sessions:e.sessions,messages:e.messages}))})}async function N(e){return l(t=>{let r=e?.trim(),a=r?`SELECT DISTINCT tr.issue_id, tr.agent_id, tr.agent_name
|
|
102
117
|
FROM tracker_runs tr
|
|
103
118
|
INNER JOIN chat_runs cr ON cr.id = (
|
|
104
119
|
SELECT id FROM chat_runs WHERE thread_id = tr.thread_id ORDER BY updated_at DESC LIMIT 1
|
|
@@ -109,6 +124,6 @@ module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/a
|
|
|
109
124
|
INNER JOIN chat_runs cr ON cr.id = (
|
|
110
125
|
SELECT id FROM chat_runs WHERE thread_id = tr.thread_id ORDER BY updated_at DESC LIMIT 1
|
|
111
126
|
)
|
|
112
|
-
WHERE cr.status IN ('queued', 'running')`;return(r?t.prepare(a).all(e.trim()):t.prepare(a).all()).map(e=>({issueId:e.issue_id,agentId:e.agent_id,agentName:e.agent_name}))})}e.s(["createLinearRun",0,_,"createTrackerRun",()=>_,"getIssueActiveAgents",()=>
|
|
127
|
+
WHERE cr.status IN ('queued', 'running')`;return(r?t.prepare(a).all(e.trim()):t.prepare(a).all()).map(e=>({issueId:e.issue_id,agentId:e.agent_id,agentName:e.agent_name}))})}e.s(["createLinearRun",0,_,"createTrackerRun",()=>_,"getIssueActiveAgents",()=>N,"getIssueActivityMap",()=>m,"getIssueStats",()=>g,"getLinearRun",0,T,"getTrackerRun",()=>T,"listLinearRuns",0,h,"listTrackerRuns",()=>h,"updateLinearRun",0,E,"updateTrackerRun",()=>E])},266517,e=>{"use strict";var t=e.i(692988),r=e.i(635595),a=e.i(75473),s=e.i(923435),n=e.i(418475),i=e.i(303482),o=e.i(976287),u=e.i(774462),d=e.i(111998),c=e.i(201516),l=e.i(68877),p=e.i(259460),_=e.i(257714),E=e.i(502073),T=e.i(187345),h=e.i(193695);e.i(293777);var m=e.i(274321),g=e.i(732470);e.i(698134);var N=e.i(85e4);function R(e){if(void 0!==e)return"string"==typeof e&&e.trim()?e.trim():null}async function f(e,t){try{let{id:e}=await t.params,r=await (0,N.getTrackerRun)(e);if(!r)return g.NextResponse.json({error:"Tracker run not found"},{status:404});return g.NextResponse.json({run:r})}catch(e){return console.error("Failed to load tracker run:",e),g.NextResponse.json({error:"Failed to load tracker run",message:e instanceof Error?e.message:String(e)},{status:500})}}async function L(e,t){try{let{id:r}=await t.params,a=await e.json().catch(()=>({})),s=await (0,N.updateTrackerRun)({id:r,rootMessageId:R(a.rootMessageId),chatRunId:R(a.chatRunId),status:function(e){if("queued"===e||"running"===e||"success"===e||"failed"===e||"cancelled"===e)return e}(a.status),error:R(a.error)});if(!s)return g.NextResponse.json({error:"Tracker run not found"},{status:404});return g.NextResponse.json({run:s})}catch(e){return console.error("Failed to update tracker run:",e),g.NextResponse.json({error:"Failed to update tracker run",message:e instanceof Error?e.message:String(e)},{status:500})}}e.s(["GET",()=>f,"PATCH",()=>L,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],674729);var S=e.i(674729);let I=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/trackers/[tracker]/runs/[id]/route",pathname:"/api/trackers/[tracker]/runs/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/trackers/[tracker]/runs/[id]/route.ts",nextConfigOutput:"standalone",userland:S}),{workAsyncStorage:A,workUnitAsyncStorage:O,serverHooks:x}=I;function v(){return(0,a.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:O})}async function k(e,t,a){I.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/trackers/[tracker]/runs/[id]/route";g=g.replace(/\/index$/,"")||"/";let N=await I.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!N)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:R,params:f,nextConfig:L,parsedUrl:S,isDraftMode:A,prerenderManifest:O,routerServerContext:x,isOnDemandRevalidate:v,revalidateOnlyGenerated:k,resolvedPathname:C,clientReferenceManifest:y,serverActionsManifest:U}=N,w=(0,o.normalizeAppPath)(g),D=!!(O.dynamicRoutes[w]||O.routes[C]),M=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,S,!1):t.end("This page could not be found"),null);if(D&&!A){let e=!!O.routes[C],t=O.dynamicRoutes[w];if(t&&!1===t.fallback&&!e){if(L.experimental.adapterPath)return await M();throw new h.NoFallbackError}}let j=null;!D||I.isDev||A||(j="/index"===(j=C)?"/":j);let F=!0===I.isDev||!D,X=D&&!F;U&&y&&(0,i.setManifestsSingleton)({page:g,clientReferenceManifest:y,serverActionsManifest:U});let b=e.method||"GET",P=(0,n.getTracer)(),q=P.getActiveScopeSpan(),G={params:f,prerenderManifest:O,renderOpts:{experimental:{authInterrupts:!!L.experimental.authInterrupts},cacheComponents:!!L.cacheComponents,supportsDynamicResponse:F,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:L.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>I.onRequestError(e,t,a,s,x)},sharedContext:{buildId:R}},B=new u.NodeNextRequest(e),H=new u.NodeNextResponse(t),$=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let i=async e=>I.handle($,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=P.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${b} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${b} ${g}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),u=async s=>{var n,u;let d=async({previousCacheEntry:r})=>{try{if(!o&&v&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(s);e.fetchMetrics=G.renderOpts.fetchMetrics;let u=G.renderOpts.pendingWaitUntil;u&&a.waitUntil&&(a.waitUntil(u),u=void 0);let d=G.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(B,H,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,_.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[T.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=T.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=T.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await I.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,l.getRevalidateReason)({isStaticGeneration:X,isOnDemandRevalidate:v})},!1,x),t}},c=await I.handleResponse({req:e,nextConfig:L,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:v,revalidateOnlyGenerated:k,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!D)return null;if((null==c||null==(n=c.value)?void 0:n.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(u=c.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",v?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,_.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&D||h.delete(T.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,E.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(B,H,new Response(c.value.body,{headers:h,status:c.value.status||200})),null};q?await u(q):await P.withPropagatedContext(e.headers,()=>P.trace(c.BaseServerSpan.handleRequest,{spanName:`${b} ${g}`,kind:n.SpanKind.SERVER,attributes:{"http.method":b,"http.target":e.url}},u))}catch(t){if(t instanceof h.NoFallbackError||await I.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,l.getRevalidateReason)({isStaticGeneration:X,isOnDemandRevalidate:v})},!1,x),D)throw t;return await (0,p.sendResponse)(B,H,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>v,"routeModule",()=>I,"serverHooks",()=>x,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>O],266517)},58723,e=>{e.v(e=>Promise.resolve().then(()=>e(78362)))},138720,e=>{e.v(e=>Promise.resolve().then(()=>e(85e4)))},410437,e=>{e.v(e=>Promise.resolve().then(()=>e(862263)))},836400,e=>{e.v(e=>Promise.resolve().then(()=>e(581001)))},169447,e=>{e.v(e=>Promise.resolve().then(()=>e(242617)))},119130,e=>{e.v(e=>Promise.resolve().then(()=>e(607495)))}];
|
|
113
128
|
|
|
114
129
|
//# sourceMappingURL=%5Broot-of-the-server%5D__f7a936d9._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[615501,(e,t,a)=>{"use strict";t.exports=e.r(185615).vendored["react-rsc"].ReactJsxRuntime},698134,e=>{"use strict";var t=e.i(88007),a=e.i(581001),r=e.i(404258),s=e.i(615501);function i({className:e}){return(0,s.jsx)("svg",{className:e,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,s.jsx)("path",{d:"M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z"})})}function n(e){let t=e.trim().toLowerCase();return["done","completed","closed"].includes(t)?"done":["cancelled","canceled","duplicate"].includes(t)?"cancelled":["in progress","in review","started","testing","deployed","in deployment"].includes(t)?"in_progress":"todo"}async function o(e,t){throw Error("Linear OAuth callback must be handled by the route handler")}async function l(e){let t=(0,a.getLinearClient)(e);if(!t)return{connected:!1};try{let e=await t.viewer;return{connected:!0,user:{id:e.id,name:e.name,avatarUrl:void 0}}}catch{return{connected:!1}}}async function c(t){let{deleteProjectTicketToken:a}=await e.A(836400);a(t,"linear")}function u(e){return{id:e.id,name:e.name??`Cycle ${e.number}`,type:"cycle"}}e.i(78362);var d=e.i(754493),p=e.i(607495);function y({className:e}){return(0,s.jsx)("svg",{className:e,viewBox:"0 0 100 100",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,s.jsx)("path",{d:"M94.6 12.2c-1.4-1.6-3.4-2.5-5.6-2.5H10.8c-2.1 0-4.1.9-5.6 2.5C3.8 13.8 3 15.8 3 17.9v64.2c0 2.1.8 4.1 2.2 5.7 1.5 1.6 3.5 2.5 5.6 2.5h78.2c2.2 0 4.2-.9 5.6-2.5 1.5-1.6 2.2-3.6 2.2-5.7V17.9c.1-2.1-.6-4.1-2.2-5.7zM50 72.4L27.6 50 50 27.6 72.4 50 50 72.4z"})})}e.i(242617);let g=new class{type="linear";displayName="Linear";icon=i;getAuthUrl(e){let t;return t=new URL((0,r.getConfiguredAppBaseUrl)()).port||"41741",`https://www.runagx.com/integrations/linear/auth?port=${t}`}async handleCallback(e,t){return o(e,t)}async getStatus(e){return l(e)}async disconnect(e){return c(e)}async listItems(t,a){let{ensureLinearIssueCache:r,listLinearIssueSummaries:s}=await e.A(58723),{getIssueActivityMap:i}=await e.A(138720),n=!a.cursor;await r({projectId:t,refresh:n});let o=a.hasActivity?await i(t):void 0,{listCachedTrackerItems:l}=await e.A(410437),c=await l({trackerType:"linear",search:a.search,statuses:a.statuses,statusCategories:a.statusCategories,assigneeIds:a.assigneeIds,groupIds:a.groupIds,cursor:a.cursor,limit:a.limit,sortBy:a.sortBy??"activity",sortDir:a.sortDir,hasActivity:a.hasActivity,activityMap:o});return{items:c.issues.map(e=>({id:e.id,trackerId:e.trackerId||`linear:${e.teamId??"default"}`,trackerType:"linear",identifier:e.identifier,title:e.title,description:e.description??void 0,status:e.status,statusCategory:e.statusCategory,assignee:e.assignee?{id:e.assigneeId??e.assignee,name:e.assignee,avatarUrl:void 0}:void 0,priority:void 0,labels:e.labels??[],createdAt:e.pulledAt,updatedAt:e.updatedAt,url:e.url??`https://linear.app/issue/${e.identifier}`})),pageInfo:c.pageInfo}}async getItem(t,a){let{getCachedTrackerItemContexts:r}=await e.A(410437),s=(await r([a]))[0];if(!s)throw Error(`Item ${a} not found`);return{id:s.id,trackerId:s.trackerId||`linear:${s.teamId??"default"}`,trackerType:"linear",identifier:s.identifier,title:s.title,description:s.description??void 0,status:s.status,statusCategory:s.statusCategory,assignee:s.assignee?{id:s.assigneeId??s.assignee,name:s.assignee,avatarUrl:void 0}:void 0,labels:s.labels??[],createdAt:s.pulledAt,updatedAt:s.updatedAt,url:s.url??`https://linear.app/issue/${s.identifier}`,comments:[],activity:[],metadata:{teamId:s.teamId,teamName:s.teamName,teamKey:s.teamKey,cycleId:s.cycleId,cycleName:s.cycleName,cycleNumber:s.cycleNumber,isAssignedToMe:s.isAssignedToMe}}}async updateItem(t,r,s){let i=(0,a.getLinearClient)(t);if(!i)throw Error("Not connected to Linear");if(s.status){let t=await i.updateIssueStatus(r,s.status),{updateCachedTrackerItemStatus:a}=await e.A(410437);return await a({issueId:r,status:t.status??s.status,updatedAt:t.updatedAt}),{id:r,trackerId:"linear:default",trackerType:"linear",identifier:t.identifier,title:t.title,status:t.status??s.status,statusCategory:n(t.status??s.status),assignee:t.assignee?{id:t.assignee,name:t.assignee}:void 0,labels:[],createdAt:t.updatedAt,updatedAt:t.updatedAt,url:t.url??`https://linear.app/issue/${t.identifier}`}}throw Error("Only status updates are currently supported")}async addComment(e,t,a){throw Error("Linear addComment not yet implemented")}async getActivity(e,t){return[]}async listGroups(e){let t=(0,a.getLinearClient)(e);return t?(await t.cycles()).map(u):[]}async listStatuses(e){let t=(0,a.getLinearClient)(e);if(!t)return[];try{let e=await t.workflowStates(),a=new Set;return e.map(e=>({id:e.id,name:e.name,category:n(e.name)})).filter(e=>!a.has(e.name)&&(a.add(e.name),!0))}catch{return[{id:"todo",name:"Todo",category:"todo"},{id:"in_progress",name:"In Progress",category:"in_progress"},{id:"done",name:"Done",category:"done"},{id:"cancelled",name:"Cancelled",category:"cancelled"}]}}async listAssignees(e){let t=(0,a.getLinearClient)(e);return t?(await t.users()).map(e=>({id:e.id,name:e.name,avatarUrl:void 0})):[]}async handleApiKeyConnect(t,a){let{saveProjectTicketToken:r}=await e.A(836400);r(t,"linear",{accessToken:a})}async handleTokenDelivery(t,a){let r=a.access_token;if(!r)throw Error("Missing access_token");let{saveProjectTicketToken:s}=await e.A(836400),i=a.expires_in?Number(a.expires_in):void 0;s(t,"linear",{accessToken:r,...i&&{expiresAt:Date.now()+1e3*i}})}getMcpConfig(e){let t=(0,a.getProjectTicketToken)(e,"linear");return{name:"linear",url:"https://mcp.linear.app/sse",headers:t?{Authorization:`Bearer ${t.accessToken}`}:{}}}renderGroupLabel(e){return"cycle"===e.type?`Cycle: ${e.name}`:e.name}};(0,t.registerAdapter)(g);let m=new class{type="jira";displayName="Jira Cloud";icon=y;getAuthUrl(e){return(0,d.getJiraAuthUrl)(e)}async handleCallback(e,t){let a=await (0,d.exchangeJiraCode)(t),r=(await (0,d.getAccessibleResources)(a.accessToken))[0];if(!r)throw Error("No accessible Jira resources found");return(0,d.saveJiraToken)(e,{accessToken:a.accessToken,refreshToken:a.refreshToken,expiresAt:a.expiresAt,cloudId:r.id,siteUrl:r.url}),{accessToken:a.accessToken,refreshToken:a.refreshToken,expiresAt:a.expiresAt}}async getStatus(e){let t=(0,d.getJiraToken)(e);if(!t?.accessToken||!t?.cloudId)return{connected:!1};try{let t=await (0,d.getJiraClient)(e);if(!t)return{connected:!1};let a=await t.getMyself();return{connected:!0,user:{id:a.id,name:a.name,avatarUrl:a.avatarUrl}}}catch{return{connected:!1}}}async disconnect(t){(0,d.deleteJiraToken)(t);let{removeTrackerConnection:a}=await e.A(169447);a(t,"jira")}async listItems(t,a){let{ensureJiraIssueCache:r,mapJiraIssue:s}=await e.A(119130),i=(0,d.getJiraToken)(t),n=!a.cursor;await r({projectId:t,refresh:n});let{listCachedTrackerItems:o}=await e.A(410437),l=await o({trackerType:"jira",search:a.search,statuses:a.statuses,statusCategories:a.statusCategories,assigneeIds:a.assigneeIds,groupIds:a.groupIds,cursor:a.cursor,limit:a.limit,sortBy:a.sortBy??"activity",sortDir:a.sortDir,hasActivity:a.hasActivity}),c=i?.siteUrl??"https://example.atlassian.net";return{items:l.issues.map(e=>({id:e.id,trackerId:e.trackerId||"jira:default",trackerType:"jira",identifier:e.identifier,title:e.title,description:e.description??void 0,status:e.status,statusCategory:e.statusCategory,assignee:e.assignee?{id:e.assigneeId??e.assignee,name:e.assignee}:void 0,labels:e.labels??[],createdAt:e.pulledAt,updatedAt:e.updatedAt,url:e.url??`${c}/browse/${e.identifier}`})),pageInfo:l.pageInfo}}async getItem(t,a){let{getJiraIssueDetail:r}=await e.A(119130);return r(t,a)}async updateItem(t,a,r){let s=await (0,d.getJiraClient)(t);if(!s)throw Error("Not connected to Jira");if(r.status){let e=await s.getTransitions(a),t=e.find(e=>e.to.name===r.status||e.name===r.status);if(!t)throw Error(`No transition to status "${r.status}" available. Valid transitions: ${e.map(e=>e.name).join(", ")}`);await s.transitionIssue(a,t.id)}r.assigneeId&&await s.updateIssue(a,{assignee:{accountId:r.assigneeId}}),r.labels&&await s.updateIssue(a,{labels:r.labels});let i=(0,d.getJiraToken)(t),n=i?.siteUrl??"https://example.atlassian.net",o=await s.getIssue(a),{mapJiraIssue:l}=await e.A(119130);return l(o,n)}async addComment(e,t,a){let r=await (0,d.getJiraClient)(e);if(!r)throw Error("Not connected to Jira");await r.addComment(t,a)}async getActivity(e,t){let a=await (0,d.getJiraClient)(e);return a?(await a.getActivity(t)).map(e=>({id:e.id,type:"update",description:e.items.map(e=>`${e.field}: ${e.fromString??""} → ${e.toString??""}`).join(", "),actor:{id:e.author.accountId,name:e.author.displayName},createdAt:e.created})):[]}async listGroups(e){let t=await (0,d.getJiraClient)(e);if(!t)return[];try{let e=await t.getBoards(),a=[];for(let r of e.slice(0,5))for(let e of(await t.getSprints(r.id)))("active"===e.state||"future"===e.state)&&a.push({id:String(e.id),name:e.name,type:"sprint"});return a}catch{return[]}}async listStatuses(e){let t=await (0,d.getJiraClient)(e);if(!t)return[];try{let e=await t.getStatuses(),a=new Set,r=[];for(let t of e)a.has(t.name)||(a.add(t.name),r.push({id:t.id,name:t.name,category:(0,p.jiraStatusCategoryToCanonical)(t.statusCategory?.key)}));return r}catch{return[]}}async listAssignees(t){let a=await (0,d.getJiraClient)(t);if(!a)return[];(0,d.getJiraToken)(t);let{listCachedTrackerItems:r}=await e.A(410437),s=await r({trackerType:"jira",limit:1}),i=s.issues[0]?.teamKey;if(!i)return[];try{return(await a.getAssignableUsers(i)).map(e=>({id:e.accountId,name:e.displayName,avatarUrl:e.avatarUrls?.["48x48"]}))}catch{return[]}}async handleApiKeyConnect(e,t){throw Error("Jira Cloud requires OAuth authentication — use the Connect button instead")}async handleTokenDelivery(e,t){let a=t.access_token,r=t.cloud_id,s=t.site_url;if(!a||!r||!s)throw Error("Missing required Jira token fields (access_token, cloud_id, site_url)");let i=t.expires_in?Number(t.expires_in):void 0;(0,d.saveJiraToken)(e,{accessToken:a,refreshToken:t.refresh_token,cloudId:r,siteUrl:s,...i&&{expiresAt:Date.now()+1e3*i}})}getMcpConfig(e){let t=(0,d.getJiraToken)(e);return{name:"jira",url:"https://mcp.atlassian.com/v1/sse",headers:t?{Authorization:`Bearer ${t.accessToken}`}:{}}}renderGroupLabel(e){return"sprint"===e.type?`Sprint: ${e.name}`:e.name}};(0,t.registerAdapter)(m),e.s([],698134)},242617,e=>{"use strict";e.i(712513);var t=e.i(902157),a=e.i(660526),r=e.i(750227);let s=r.default.join((0,a.homedir)(),".agx");function i(e){return r.default.join(s,"projects",e,"integrations","trackers.json")}function n(e){let a=r.default.dirname(e);(0,t.existsSync)(a)||(0,t.mkdirSync)(a,{recursive:!0})}function o(e){if(!e)return[];let a=i(e);try{let e=(0,t.readFileSync)(a,"utf8"),r=JSON.parse(e);return Array.isArray(r.connections)?r.connections:[]}catch{return[]}}function l(e,a){if(!e)return;let r=i(e);n(r);let s=o(e),l=s.findIndex(e=>e.type===a.type);l>=0?s[l]=a:s.push(a),(0,t.writeFileSync)(r,JSON.stringify({connections:s},null,2),"utf8")}function c(e,a){if(!e)return;let r=i(e),s=o(e).filter(e=>e.type!==a);if(0===s.length)try{(0,t.unlinkSync)(r)}catch{}else n(r),(0,t.writeFileSync)(r,JSON.stringify({connections:s},null,2),"utf8")}e.s(["addTrackerConnection",()=>l,"listTrackerConnections",()=>o,"removeTrackerConnection",()=>c])},88007,e=>{"use strict";let t=new Map;function a(e){if(t.has(e.type))throw Error(`Tracker adapter "${e.type}" is already registered`);t.set(e.type,e)}function r(e){let a=t.get(e);if(!a)throw Error(`Unknown tracker type: "${e}". Available: ${i().join(", ")}`);return a}function s(e){return t.get(e)??null}function i(){return[...t.keys()]}function n(){return[...t.values()]}e.s(["getAdapter",()=>r,"getAdapterOrNull",()=>s,"listAdapterTypes",()=>i,"listAdapters",()=>n,"registerAdapter",()=>a])},404258,e=>{"use strict";function t(e){let t=e?.trim();return t?t.replace(/\/+$/,""):null}let a="http://localhost:41741";function r(){return t(process.env.NEXT_PUBLIC_APP_URL)??t(process.env.AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_AGX_BOARD_URL)??a}function s(){return t(process.env.AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_APP_URL)??a}function i(){let e=new Set([a,"http://127.0.0.1:41741"]);for(let a of[process.env.NEXT_PUBLIC_APP_URL,process.env.AGX_BOARD_URL,process.env.NEXT_PUBLIC_AGX_BOARD_URL]){let r=t(a);r&&e.add(r)}return Array.from(e)}e.s(["getAllowedOrigins",()=>i,"getConfiguredAppBaseUrl",()=>r,"getConfiguredBoardBaseUrl",()=>s])},607495,754493,e=>{"use strict";e.i(712513);var t=e.i(902157),a=e.i(660526),r=e.i(750227),s=e.i(404258);let i=r.default.join((0,a.homedir)(),".agx"),n="https://api.atlassian.com";function o(e){return r.default.join(i,"projects",e,"integrations","jira.json")}function l(e){if(!e)return null;let a=o(e);try{let e=(0,t.readFileSync)(a,"utf8");return JSON.parse(e)}catch{return null}}function c(e,a){if(!e)throw Error("projectId is required to save a Jira token");let s=o(e),i=r.default.dirname(s);(0,t.existsSync)(i)||(0,t.mkdirSync)(i,{recursive:!0}),(0,t.writeFileSync)(s,JSON.stringify(a,null,2),"utf8")}function u(e){if(!e)return;let a=o(e);try{(0,t.unlinkSync)(a)}catch{}}function d(e){let t=new URL((0,s.getConfiguredAppBaseUrl)()).port||"41741";return`https://www.runagx.com/integrations/jira/auth?port=${t}`}async function p(e){let t=process.env.JIRA_CLIENT_ID,a=process.env.JIRA_CLIENT_SECRET;if(!t||!a)throw Error("JIRA_CLIENT_ID and JIRA_CLIENT_SECRET must be set");let r=await fetch("https://auth.atlassian.com/oauth/token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({grant_type:"authorization_code",code:e,client_id:t,client_secret:a,redirect_uri:`${(0,s.getConfiguredAppBaseUrl)()}/api/trackers/jira/callback`})});if(!r.ok){let e=await r.text();throw Error(`Jira token exchange failed: ${r.status} ${e}`)}let i=await r.json(),n="number"==typeof i.expires_in?i.expires_in:3600;return{accessToken:i.access_token,refreshToken:i.refresh_token,expiresAt:Date.now()+1e3*n}}async function y(e){let t=await fetch("https://www.runagx.com/integrations/jira/refresh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refresh_token:e})});if(!t.ok){let e=await t.text();throw Error(`Jira token refresh failed: ${t.status} ${e}`)}let a=await t.json(),r="number"==typeof a.expires_in?a.expires_in:3600;return{accessToken:a.access_token,refreshToken:a.refresh_token??e,expiresAt:Date.now()+1e3*r}}async function g(e){let t=await fetch(`${n}/oauth/token/accessible-resources`,{headers:{Authorization:`Bearer ${e}`}});return t.ok?t.json():[]}class m{accessToken;cloudId;siteUrl;constructor(e,t,a){this.accessToken=e,this.cloudId=t,this.siteUrl=a}get baseUrl(){return`${n}/ex/jira/${this.cloudId}/rest/api/3`}get agileUrl(){return`${n}/ex/jira/${this.cloudId}/rest/agile/1.0`}async request(e,t){return await fetch(e,{...t,headers:{Authorization:`Bearer ${this.accessToken}`,"Content-Type":"application/json",Accept:"application/json",...t?.headers}})}async getMyself(){let e=await this.request(`${this.baseUrl}/myself`);if(!e.ok)throw Error(`Failed to get Jira user: ${e.status}`);let t=await e.json();return{id:t.accountId,name:t.displayName,avatarUrl:t.avatarUrls?.["48x48"]}}async searchIssues(e,t){let a={jql:e,maxResults:t?.maxResults??50,fields:t?.fields??["summary","status","assignee","priority","labels","description","updated","created","issuetype","project","customfield_10020","comment"]};t?.nextPageToken&&(a.nextPageToken=t.nextPageToken);let r=await this.request(`${this.baseUrl}/search/jql`,{method:"POST",body:JSON.stringify(a)});if(!r.ok){let e=await r.text();throw Error(`Jira search failed: ${r.status} ${e}`)}return r.json()}async getIssue(e){let t=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}?expand=renderedFields`);if(!t.ok)throw Error(`Failed to get Jira issue ${e}: ${t.status}`);return t.json()}async updateIssue(e,t){let a=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify({fields:t})});if(!a.ok){let t=await a.text();throw Error(`Failed to update Jira issue ${e}: ${a.status} ${t}`)}}async addComment(e,t){let a=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}/comment`,{method:"POST",body:JSON.stringify({body:{type:"doc",version:1,content:t.split("\n\n").map(e=>({type:"paragraph",content:e?[{type:"text",text:e}]:[]}))}})});if(!a.ok){let t=await a.text();throw Error(`Failed to add comment to ${e}: ${a.status} ${t}`)}}async getComments(e){let t=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}/comment`);return t.ok?(await t.json()).comments??[]:[]}async getTransitions(e){let t=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}/transitions`);return t.ok?(await t.json()).transitions??[]:[]}async transitionIssue(e,t){let a=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}/transitions`,{method:"POST",body:JSON.stringify({transition:{id:t}})});if(!a.ok){let t=await a.text();throw Error(`Failed to transition ${e}: ${a.status} ${t}`)}}async getProjects(){let e=await this.request(`${this.baseUrl}/project`);return e.ok?e.json():[]}async getStatuses(){let e=await this.request(`${this.baseUrl}/status`);return e.ok?e.json():[]}async getBoards(){let e=await this.request(`${this.agileUrl}/board`);return e.ok?(await e.json()).values??[]:[]}async getSprints(e){let t=await this.request(`${this.agileUrl}/board/${e}/sprint`);return t.ok?(await t.json()).values??[]:[]}async getAssignableUsers(e){let t=new URLSearchParams({project:e}),a=await this.request(`${this.baseUrl}/user/assignable/search?${t}`);return a.ok?a.json():[]}async getActivity(e,t=200){let a=[],r=0;for(;a.length<t;){let s=new URLSearchParams({startAt:String(r),maxResults:String(Math.min(100,t-a.length))}),i=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}/changelog?${s}`);if(!i.ok)break;let n=await i.json(),o=n.values??[];if(a.push(...o),0===o.length||a.length>=(n.total??0))break;r+=o.length}return a}}async function f(e){let t=l(e);if(!t?.accessToken||!t?.cloudId||!t?.siteUrl)return null;if(t.expiresAt&&Date.now()>t.expiresAt-6e4&&t.refreshToken)try{let a=await y(t.refreshToken),r={...t,accessToken:a.accessToken,refreshToken:a.refreshToken,expiresAt:a.expiresAt};return c(e,r),new m(r.accessToken,t.cloudId,t.siteUrl)}catch{return null}return new m(t.accessToken,t.cloudId,t.siteUrl)}function h(e){return e?"string"==typeof e?e:function e(t){return"string"==typeof t?t:t&&"object"==typeof t?"text"===t.type&&"string"==typeof t.text?t.text:Array.isArray(t.content)?t.content.map(e).join(""):"":""}(e):null}e.s(["adfToPlainText",()=>h,"deleteJiraToken",()=>u,"exchangeJiraCode",()=>p,"getAccessibleResources",()=>g,"getJiraAuthUrl",()=>d,"getJiraClient",()=>f,"getJiraToken",()=>l,"saveJiraToken",()=>c],754493);var w=e.i(862263);function k(e){switch(e){case"new":default:return"todo";case"indeterminate":return"in_progress";case"done":return"done"}}function A(e,t,a){let r=e.fields,s=r.status?.statusCategory?.key??"new";return{id:e.id,trackerId:`jira:${r.project?.key??"unknown"}`,trackerType:"jira",identifier:e.key,title:r.summary,description:h(r.description)??void 0,status:r.status?.name??"Unknown",statusCategory:k(s),assignee:r.assignee?{id:r.assignee.accountId,name:r.assignee.displayName,avatarUrl:r.assignee.avatarUrls?.["48x48"]}:void 0,priority:function(e){if(!e)return;let t=e.toLowerCase();return t.includes("highest")||t.includes("critical")?"urgent":t.includes("high")?"high":t.includes("medium")||t.includes("major")?"medium":t.includes("low")||t.includes("minor")||t.includes("lowest")||t.includes("trivial")?"low":"none"}(r.priority?.name),labels:r.labels??[],createdAt:r.created,updatedAt:r.updated,url:`${t}/browse/${e.key}`}}async function I(e){let t,a=await f(e.projectId);if(!a)throw Error("Not connected to Jira");let r=l(e.projectId);if(!r?.siteUrl)throw Error("Missing Jira site URL");let s=e.jql??(e.projectKey?`project = ${e.projectKey} ORDER BY updated DESC`:"assignee = currentUser() OR reporter = currentUser() ORDER BY updated DESC"),i=e.limit??100,n=[],o=!1;for(;!o&&n.length<i;){let e=await a.searchIssues(s,{nextPageToken:t,maxResults:Math.min(50,i-n.length)});for(let t of e.issues)n.push(function(e,t){let a=e.fields,r=a.status?.statusCategory?.key??"new";return{id:e.id,trackerType:"jira",trackerId:`jira:${a.project?.key??"unknown"}`,identifier:e.key,title:a.summary,description:h(a.description),status:a.status?.name??"Unknown",statusCategory:k(r),assigneeId:a.assignee?.accountId??null,assignee:a.assignee?.displayName??null,assigneeEmail:null,isAssignedToMe:!1,teamId:a.project?.id??null,teamName:a.project?.name??null,teamKey:a.project?.key??null,cycleId:a.customfield_10020?String(a.customfield_10020.id):null,cycleName:a.customfield_10020?.name??null,cycleNumber:a.customfield_10020?a.customfield_10020.id:null,priority:a.priority?.name??null,labels:a.labels??[],url:`${t}/browse/${e.key}`,updatedAt:a.updated}}(t,r.siteUrl));o=e.isLast||0===e.issues.length,t=e.nextPageToken}return await (0,w.replaceCachedTrackerItems)({trackerType:"jira",issues:n,complete:o,pulledAtMs:Date.now()}),{pulled:n.length}}async function T(t){let{getTrackerItemSyncState:a,setTrackerItemSyncState:r}=await e.A(410437),s=await a("jira");return(t.refresh||!s?.lastPulledAt)&&(await I({projectId:t.projectId,projectKey:t.projectKey}),await r("jira",0,Date.now())),{pulledAt:s?.lastPulledAt??null}}async function C(e){return{issues:(await (0,w.listCachedTrackerItems)({trackerType:"jira",limit:e?.limit??500})).issues.map(e=>({id:e.id,trackerId:e.trackerId||"jira:default",trackerType:"jira",identifier:e.identifier,title:e.title,description:e.description??void 0,status:e.status,statusCategory:e.statusCategory,assignee:e.assignee?{id:e.assigneeId??e.assignee,name:e.assignee}:void 0,priority:void 0,labels:e.labels??[],createdAt:e.pulledAt,updatedAt:e.updatedAt,url:e.url??"#"}))}}async function j(e,t){let a=await f(e);if(!a)throw Error("Not connected to Jira");let r=l(e),s=r?.siteUrl??"https://example.atlassian.net",i=await a.getIssue(t),n=A(i,s),o=(i.fields.comment?.comments??[]).map(e=>({id:e.id,body:"string"==typeof e.body?e.body:h(e.body)??"",author:{id:e.author.accountId,name:e.author.displayName},createdAt:e.created})),c=(await a.getActivity(t)).map(e=>({id:e.id,type:"update",description:e.items.map(e=>`${e.field}: ${e.fromString??""} → ${e.toString??""}`).join(", "),actor:{id:e.author.accountId,name:e.author.displayName},createdAt:e.created}));return{...n,comments:o,activity:c,metadata:{projectId:i.fields.project?.id,projectKey:i.fields.project?.key,projectName:i.fields.project?.name,issueType:i.fields.issuetype?.name,sprintId:i.fields.customfield_10020?.id,sprintName:i.fields.customfield_10020?.name}}}e.s(["ensureJiraIssueCache",()=>T,"getJiraIssueDetail",()=>j,"jiraStatusCategoryToCanonical",()=>k,"listJiraIssueSummaries",()=>C,"mapJiraIssue",()=>A,"pullJiraIssues",()=>I],607495)}];
|
|
1
|
+
module.exports=[615501,(e,t,a)=>{"use strict";t.exports=e.r(185615).vendored["react-rsc"].ReactJsxRuntime},698134,e=>{"use strict";var t=e.i(88007),a=e.i(581001),r=e.i(404258),s=e.i(615501);function i({className:e}){return(0,s.jsx)("svg",{className:e,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,s.jsx)("path",{d:"M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z"})})}function n(e){let t=e.trim().toLowerCase();return["done","completed","closed"].includes(t)?"done":["cancelled","canceled","duplicate"].includes(t)?"cancelled":["in progress","in review","started","testing","deployed","in deployment"].includes(t)?"in_progress":"todo"}async function o(e,t){throw Error("Linear OAuth callback must be handled by the route handler")}async function l(e){let t=(0,a.getLinearClient)(e);if(!t)return{connected:!1};try{let e=await t.viewer;return{connected:!0,user:{id:e.id,name:e.name,avatarUrl:void 0}}}catch{return{connected:!1}}}async function c(t){let{deleteProjectTicketToken:a}=await e.A(836400);a(t,"linear")}function u(e){return{id:e.id,name:e.name??`Cycle ${e.number}`,type:"cycle"}}e.i(78362);var d=e.i(754493),p=e.i(607495);function y({className:e}){return(0,s.jsx)("svg",{className:e,viewBox:"0 0 100 100",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,s.jsx)("path",{d:"M94.6 12.2c-1.4-1.6-3.4-2.5-5.6-2.5H10.8c-2.1 0-4.1.9-5.6 2.5C3.8 13.8 3 15.8 3 17.9v64.2c0 2.1.8 4.1 2.2 5.7 1.5 1.6 3.5 2.5 5.6 2.5h78.2c2.2 0 4.2-.9 5.6-2.5 1.5-1.6 2.2-3.6 2.2-5.7V17.9c.1-2.1-.6-4.1-2.2-5.7zM50 72.4L27.6 50 50 27.6 72.4 50 50 72.4z"})})}e.i(242617);let g=new class{type="linear";displayName="Linear";groupLabel="Cycle";icon=i;getAuthUrl(e){let t;return t=new URL((0,r.getConfiguredAppBaseUrl)()).port||"41741",`https://www.runagx.com/integrations/linear/auth?port=${t}`}async handleCallback(e,t){return o(e,t)}async getStatus(e){return l(e)}async disconnect(e){return c(e)}async listItems(t,a){let{ensureLinearIssueCache:r,listLinearIssueSummaries:s}=await e.A(58723),{getIssueActivityMap:i}=await e.A(138720),n=!a.cursor;await r({projectId:t,refresh:n});let o=a.hasActivity?await i(t):void 0,{listCachedTrackerItems:l}=await e.A(410437),c=await l({trackerType:"linear",search:a.search,statuses:a.statuses,statusCategories:a.statusCategories,assigneeIds:a.assigneeIds,groupIds:a.groupIds,cursor:a.cursor,limit:a.limit,sortBy:a.sortBy??"activity",sortDir:a.sortDir,hasActivity:a.hasActivity,activityMap:o});return{items:c.issues.map(e=>({id:e.id,trackerId:e.trackerId||`linear:${e.teamId??"default"}`,trackerType:"linear",identifier:e.identifier,title:e.title,description:e.description??void 0,status:e.status,statusCategory:e.statusCategory,assignee:e.assignee?{id:e.assigneeId??e.assignee,name:e.assignee,avatarUrl:void 0}:void 0,priority:void 0,labels:e.labels??[],createdAt:e.pulledAt,updatedAt:e.updatedAt,url:e.url??`https://linear.app/issue/${e.identifier}`})),pageInfo:c.pageInfo}}async getItem(t,a){let{getCachedTrackerItemContexts:r}=await e.A(410437),s=(await r([a]))[0];if(!s)throw Error(`Item ${a} not found`);return{id:s.id,trackerId:s.trackerId||`linear:${s.teamId??"default"}`,trackerType:"linear",identifier:s.identifier,title:s.title,description:s.description??void 0,status:s.status,statusCategory:s.statusCategory,assignee:s.assignee?{id:s.assigneeId??s.assignee,name:s.assignee,avatarUrl:void 0}:void 0,labels:s.labels??[],createdAt:s.pulledAt,updatedAt:s.updatedAt,url:s.url??`https://linear.app/issue/${s.identifier}`,comments:[],activity:[],metadata:{teamId:s.teamId,teamName:s.teamName,teamKey:s.teamKey,cycleId:s.cycleId,cycleName:s.cycleName,cycleNumber:s.cycleNumber,isAssignedToMe:s.isAssignedToMe}}}async updateItem(t,r,s){let i=(0,a.getLinearClient)(t);if(!i)throw Error("Not connected to Linear");if(s.status){let t=await i.updateIssueStatus(r,s.status),{updateCachedTrackerItemStatus:a}=await e.A(410437);return await a({issueId:r,status:t.status??s.status,updatedAt:t.updatedAt}),{id:r,trackerId:"linear:default",trackerType:"linear",identifier:t.identifier,title:t.title,status:t.status??s.status,statusCategory:n(t.status??s.status),assignee:t.assignee?{id:t.assignee,name:t.assignee}:void 0,labels:[],createdAt:t.updatedAt,updatedAt:t.updatedAt,url:t.url??`https://linear.app/issue/${t.identifier}`}}throw Error("Only status updates are currently supported")}async addComment(e,t,a){throw Error("Linear addComment not yet implemented")}async getActivity(e,t){return[]}async listGroups(e){let t=(0,a.getLinearClient)(e);return t?(await t.cycles()).map(u):[]}async listStatuses(e){let t=(0,a.getLinearClient)(e);if(!t)return[];try{let e=await t.workflowStates(),a=new Set;return e.map(e=>({id:e.id,name:e.name,category:n(e.name)})).filter(e=>!a.has(e.name)&&(a.add(e.name),!0))}catch{return[{id:"todo",name:"Todo",category:"todo"},{id:"in_progress",name:"In Progress",category:"in_progress"},{id:"done",name:"Done",category:"done"},{id:"cancelled",name:"Cancelled",category:"cancelled"}]}}async listAssignees(e){let t=(0,a.getLinearClient)(e);return t?(await t.users()).map(e=>({id:e.id,name:e.name,avatarUrl:void 0})):[]}async handleApiKeyConnect(t,a){let{saveProjectTicketToken:r}=await e.A(836400);r(t,"linear",{accessToken:a})}async handleTokenDelivery(t,a){let r=a.access_token;if(!r)throw Error("Missing access_token");let{saveProjectTicketToken:s}=await e.A(836400),i=a.expires_in?Number(a.expires_in):void 0;s(t,"linear",{accessToken:r,...i&&{expiresAt:Date.now()+1e3*i}})}getMcpConfig(e){let t=(0,a.getProjectTicketToken)(e,"linear");return{name:"linear",url:"https://mcp.linear.app/sse",headers:t?{Authorization:`Bearer ${t.accessToken}`}:{}}}renderGroupLabel(e){return"cycle"===e.type?`Cycle: ${e.name}`:e.name}};(0,t.registerAdapter)(g);let m=new class{type="jira";displayName="Jira Cloud";groupLabel="Sprint";icon=y;getAuthUrl(e){return(0,d.getJiraAuthUrl)(e)}async handleCallback(e,t){let a=await (0,d.exchangeJiraCode)(t),r=(await (0,d.getAccessibleResources)(a.accessToken))[0];if(!r)throw Error("No accessible Jira resources found");return(0,d.saveJiraToken)(e,{accessToken:a.accessToken,refreshToken:a.refreshToken,expiresAt:a.expiresAt,cloudId:r.id,siteUrl:r.url}),{accessToken:a.accessToken,refreshToken:a.refreshToken,expiresAt:a.expiresAt}}async getStatus(e){let t=(0,d.getJiraToken)(e);if(!t?.accessToken||!t?.cloudId)return{connected:!1};try{let t=await (0,d.getJiraClient)(e);if(!t)return{connected:!1};let a=await t.getMyself();return{connected:!0,user:{id:a.id,name:a.name,avatarUrl:a.avatarUrl}}}catch{return{connected:!1}}}async disconnect(t){(0,d.deleteJiraToken)(t);let{removeTrackerConnection:a}=await e.A(169447);a(t,"jira")}async listItems(t,a){let{ensureJiraIssueCache:r,mapJiraIssue:s}=await e.A(119130),i=(0,d.getJiraToken)(t),n=!a.cursor;await r({projectId:t,refresh:n});let{listCachedTrackerItems:o}=await e.A(410437),l=await o({trackerType:"jira",search:a.search,statuses:a.statuses,statusCategories:a.statusCategories,assigneeIds:a.assigneeIds,groupIds:a.groupIds,cursor:a.cursor,limit:a.limit,sortBy:a.sortBy??"activity",sortDir:a.sortDir,hasActivity:a.hasActivity}),c=i?.siteUrl??"https://example.atlassian.net";return{items:l.issues.map(e=>({id:e.id,trackerId:e.trackerId||"jira:default",trackerType:"jira",identifier:e.identifier,title:e.title,description:e.description??void 0,status:e.status,statusCategory:e.statusCategory,assignee:e.assignee?{id:e.assigneeId??e.assignee,name:e.assignee}:void 0,labels:e.labels??[],createdAt:e.pulledAt,updatedAt:e.updatedAt,url:e.url??`${c}/browse/${e.identifier}`})),pageInfo:l.pageInfo}}async getItem(t,a){let{getJiraIssueDetail:r}=await e.A(119130);return r(t,a)}async updateItem(t,a,r){let s=await (0,d.getJiraClient)(t);if(!s)throw Error("Not connected to Jira");if(r.status){let e=await s.getTransitions(a),t=e.find(e=>e.to.name===r.status||e.name===r.status);if(!t)throw Error(`No transition to status "${r.status}" available. Valid transitions: ${e.map(e=>e.name).join(", ")}`);await s.transitionIssue(a,t.id)}r.assigneeId&&await s.updateIssue(a,{assignee:{accountId:r.assigneeId}}),r.labels&&await s.updateIssue(a,{labels:r.labels});let i=(0,d.getJiraToken)(t),n=i?.siteUrl??"https://example.atlassian.net",o=await s.getIssue(a),{mapJiraIssue:l}=await e.A(119130);return l(o,n)}async addComment(e,t,a){let r=await (0,d.getJiraClient)(e);if(!r)throw Error("Not connected to Jira");await r.addComment(t,a)}async getActivity(e,t){let a=await (0,d.getJiraClient)(e);return a?(await a.getActivity(t)).map(e=>({id:e.id,type:"update",description:e.items.map(e=>`${e.field}: ${e.fromString??""} → ${e.toString??""}`).join(", "),actor:{id:e.author.accountId,name:e.author.displayName},createdAt:e.created})):[]}async listGroups(e){let t=await (0,d.getJiraClient)(e);if(!t)return[];try{let e=await t.getBoards(),a=[];for(let r of e.slice(0,5))for(let e of(await t.getSprints(r.id)))("active"===e.state||"future"===e.state)&&a.push({id:String(e.id),name:e.name,type:"sprint"});return a}catch{return[]}}async listStatuses(e){let t=await (0,d.getJiraClient)(e);if(!t)return[];try{let e=await t.getStatuses(),a=new Set,r=[];for(let t of e)a.has(t.name)||(a.add(t.name),r.push({id:t.id,name:t.name,category:(0,p.jiraStatusCategoryToCanonical)(t.statusCategory?.key)}));return r}catch{return[]}}async listAssignees(t){let a=await (0,d.getJiraClient)(t);if(!a)return[];(0,d.getJiraToken)(t);let{listCachedTrackerItems:r}=await e.A(410437),s=await r({trackerType:"jira",limit:1}),i=s.issues[0]?.teamKey;if(!i)return[];try{return(await a.getAssignableUsers(i)).map(e=>({id:e.accountId,name:e.displayName,avatarUrl:e.avatarUrls?.["48x48"]}))}catch{return[]}}async handleApiKeyConnect(e,t){throw Error("Jira Cloud requires OAuth authentication — use the Connect button instead")}async handleTokenDelivery(e,t){let a=t.access_token,r=t.cloud_id,s=t.site_url;if(!a||!r||!s)throw Error("Missing required Jira token fields (access_token, cloud_id, site_url)");let i=t.expires_in?Number(t.expires_in):void 0;(0,d.saveJiraToken)(e,{accessToken:a,refreshToken:t.refresh_token,cloudId:r,siteUrl:s,...i&&{expiresAt:Date.now()+1e3*i}})}getMcpConfig(e){let t=(0,d.getJiraToken)(e);return{name:"jira",url:"https://mcp.atlassian.com/v1/sse",headers:t?{Authorization:`Bearer ${t.accessToken}`}:{}}}renderGroupLabel(e){return"sprint"===e.type?`Sprint: ${e.name}`:e.name}};(0,t.registerAdapter)(m),e.s([],698134)},242617,e=>{"use strict";e.i(712513);var t=e.i(902157),a=e.i(660526),r=e.i(750227);let s=r.default.join((0,a.homedir)(),".agx");function i(e){return r.default.join(s,"projects",e,"integrations","trackers.json")}function n(e){let a=r.default.dirname(e);(0,t.existsSync)(a)||(0,t.mkdirSync)(a,{recursive:!0})}function o(e){if(!e)return[];let a=i(e);try{let e=(0,t.readFileSync)(a,"utf8"),r=JSON.parse(e);return Array.isArray(r.connections)?r.connections:[]}catch{return[]}}function l(e,a){if(!e)return;let r=i(e);n(r);let s=o(e),l=s.findIndex(e=>e.type===a.type);l>=0?s[l]=a:s.push(a),(0,t.writeFileSync)(r,JSON.stringify({connections:s},null,2),"utf8")}function c(e,a){if(!e)return;let r=i(e),s=o(e).filter(e=>e.type!==a);if(0===s.length)try{(0,t.unlinkSync)(r)}catch{}else n(r),(0,t.writeFileSync)(r,JSON.stringify({connections:s},null,2),"utf8")}e.s(["addTrackerConnection",()=>l,"listTrackerConnections",()=>o,"removeTrackerConnection",()=>c])},88007,e=>{"use strict";let t=new Map;function a(e){if(t.has(e.type))throw Error(`Tracker adapter "${e.type}" is already registered`);t.set(e.type,e)}function r(e){let a=t.get(e);if(!a)throw Error(`Unknown tracker type: "${e}". Available: ${i().join(", ")}`);return a}function s(e){return t.get(e)??null}function i(){return[...t.keys()]}function n(){return[...t.values()]}e.s(["getAdapter",()=>r,"getAdapterOrNull",()=>s,"listAdapterTypes",()=>i,"listAdapters",()=>n,"registerAdapter",()=>a])},404258,e=>{"use strict";function t(e){let t=e?.trim();return t?t.replace(/\/+$/,""):null}let a="http://localhost:41741";function r(){return t(process.env.NEXT_PUBLIC_APP_URL)??t(process.env.AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_AGX_BOARD_URL)??a}function s(){return t(process.env.AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_APP_URL)??a}function i(){let e=new Set([a,"http://127.0.0.1:41741"]);for(let a of[process.env.NEXT_PUBLIC_APP_URL,process.env.AGX_BOARD_URL,process.env.NEXT_PUBLIC_AGX_BOARD_URL]){let r=t(a);r&&e.add(r)}return Array.from(e)}e.s(["getAllowedOrigins",()=>i,"getConfiguredAppBaseUrl",()=>r,"getConfiguredBoardBaseUrl",()=>s])},607495,754493,e=>{"use strict";e.i(712513);var t=e.i(902157),a=e.i(660526),r=e.i(750227),s=e.i(404258);let i=r.default.join((0,a.homedir)(),".agx"),n="https://api.atlassian.com";function o(e){return r.default.join(i,"projects",e,"integrations","jira.json")}function l(e){if(!e)return null;let a=o(e);try{let e=(0,t.readFileSync)(a,"utf8");return JSON.parse(e)}catch{return null}}function c(e,a){if(!e)throw Error("projectId is required to save a Jira token");let s=o(e),i=r.default.dirname(s);(0,t.existsSync)(i)||(0,t.mkdirSync)(i,{recursive:!0}),(0,t.writeFileSync)(s,JSON.stringify(a,null,2),"utf8")}function u(e){if(!e)return;let a=o(e);try{(0,t.unlinkSync)(a)}catch{}}function d(e){let t=new URL((0,s.getConfiguredAppBaseUrl)()).port||"41741";return`https://www.runagx.com/integrations/jira/auth?port=${t}`}async function p(e){let t=process.env.JIRA_CLIENT_ID,a=process.env.JIRA_CLIENT_SECRET;if(!t||!a)throw Error("JIRA_CLIENT_ID and JIRA_CLIENT_SECRET must be set");let r=await fetch("https://auth.atlassian.com/oauth/token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({grant_type:"authorization_code",code:e,client_id:t,client_secret:a,redirect_uri:`${(0,s.getConfiguredAppBaseUrl)()}/api/trackers/jira/callback`})});if(!r.ok){let e=await r.text();throw Error(`Jira token exchange failed: ${r.status} ${e}`)}let i=await r.json(),n="number"==typeof i.expires_in?i.expires_in:3600;return{accessToken:i.access_token,refreshToken:i.refresh_token,expiresAt:Date.now()+1e3*n}}async function y(e){let t=await fetch("https://www.runagx.com/integrations/jira/refresh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refresh_token:e})});if(!t.ok){let e=await t.text();throw Error(`Jira token refresh failed: ${t.status} ${e}`)}let a=await t.json(),r="number"==typeof a.expires_in?a.expires_in:3600;return{accessToken:a.access_token,refreshToken:a.refresh_token??e,expiresAt:Date.now()+1e3*r}}async function g(e){let t=await fetch(`${n}/oauth/token/accessible-resources`,{headers:{Authorization:`Bearer ${e}`}});return t.ok?t.json():[]}class m{accessToken;cloudId;siteUrl;constructor(e,t,a){this.accessToken=e,this.cloudId=t,this.siteUrl=a}get baseUrl(){return`${n}/ex/jira/${this.cloudId}/rest/api/3`}get agileUrl(){return`${n}/ex/jira/${this.cloudId}/rest/agile/1.0`}async request(e,t){return await fetch(e,{...t,headers:{Authorization:`Bearer ${this.accessToken}`,"Content-Type":"application/json",Accept:"application/json",...t?.headers}})}async getMyself(){let e=await this.request(`${this.baseUrl}/myself`);if(!e.ok)throw Error(`Failed to get Jira user: ${e.status}`);let t=await e.json();return{id:t.accountId,name:t.displayName,avatarUrl:t.avatarUrls?.["48x48"]}}async searchIssues(e,t){let a={jql:e,maxResults:t?.maxResults??50,fields:t?.fields??["summary","status","assignee","priority","labels","description","updated","created","issuetype","project","customfield_10020","comment"]};t?.nextPageToken&&(a.nextPageToken=t.nextPageToken);let r=await this.request(`${this.baseUrl}/search/jql`,{method:"POST",body:JSON.stringify(a)});if(!r.ok){let e=await r.text();throw Error(`Jira search failed: ${r.status} ${e}`)}return r.json()}async getIssue(e){let t=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}?expand=renderedFields`);if(!t.ok)throw Error(`Failed to get Jira issue ${e}: ${t.status}`);return t.json()}async updateIssue(e,t){let a=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify({fields:t})});if(!a.ok){let t=await a.text();throw Error(`Failed to update Jira issue ${e}: ${a.status} ${t}`)}}async addComment(e,t){let a=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}/comment`,{method:"POST",body:JSON.stringify({body:{type:"doc",version:1,content:t.split("\n\n").map(e=>({type:"paragraph",content:e?[{type:"text",text:e}]:[]}))}})});if(!a.ok){let t=await a.text();throw Error(`Failed to add comment to ${e}: ${a.status} ${t}`)}}async getComments(e){let t=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}/comment`);return t.ok?(await t.json()).comments??[]:[]}async getTransitions(e){let t=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}/transitions`);return t.ok?(await t.json()).transitions??[]:[]}async transitionIssue(e,t){let a=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}/transitions`,{method:"POST",body:JSON.stringify({transition:{id:t}})});if(!a.ok){let t=await a.text();throw Error(`Failed to transition ${e}: ${a.status} ${t}`)}}async getProjects(){let e=await this.request(`${this.baseUrl}/project`);return e.ok?e.json():[]}async getStatuses(){let e=await this.request(`${this.baseUrl}/status`);return e.ok?e.json():[]}async getBoards(){let e=await this.request(`${this.agileUrl}/board`);return e.ok?(await e.json()).values??[]:[]}async getSprints(e){let t=await this.request(`${this.agileUrl}/board/${e}/sprint`);return t.ok?(await t.json()).values??[]:[]}async getAssignableUsers(e){let t=new URLSearchParams({project:e}),a=await this.request(`${this.baseUrl}/user/assignable/search?${t}`);return a.ok?a.json():[]}async getActivity(e,t=200){let a=[],r=0;for(;a.length<t;){let s=new URLSearchParams({startAt:String(r),maxResults:String(Math.min(100,t-a.length))}),i=await this.request(`${this.baseUrl}/issue/${encodeURIComponent(e)}/changelog?${s}`);if(!i.ok)break;let n=await i.json(),o=n.values??[];if(a.push(...o),0===o.length||a.length>=(n.total??0))break;r+=o.length}return a}}async function f(e){let t=l(e);if(!t?.accessToken||!t?.cloudId||!t?.siteUrl)return null;if(t.expiresAt&&Date.now()>t.expiresAt-6e4&&t.refreshToken)try{let a=await y(t.refreshToken),r={...t,accessToken:a.accessToken,refreshToken:a.refreshToken,expiresAt:a.expiresAt};return c(e,r),new m(r.accessToken,t.cloudId,t.siteUrl)}catch{return null}return new m(t.accessToken,t.cloudId,t.siteUrl)}function h(e){return e?"string"==typeof e?e:function e(t){return"string"==typeof t?t:t&&"object"==typeof t?"text"===t.type&&"string"==typeof t.text?t.text:Array.isArray(t.content)?t.content.map(e).join(""):"":""}(e):null}e.s(["adfToPlainText",()=>h,"deleteJiraToken",()=>u,"exchangeJiraCode",()=>p,"getAccessibleResources",()=>g,"getJiraAuthUrl",()=>d,"getJiraClient",()=>f,"getJiraToken",()=>l,"saveJiraToken",()=>c],754493);var w=e.i(862263);function k(e){switch(e){case"new":default:return"todo";case"indeterminate":return"in_progress";case"done":return"done"}}function A(e,t,a){let r=e.fields,s=r.status?.statusCategory?.key??"new";return{id:e.id,trackerId:`jira:${r.project?.key??"unknown"}`,trackerType:"jira",identifier:e.key,title:r.summary,description:h(r.description)??void 0,status:r.status?.name??"Unknown",statusCategory:k(s),assignee:r.assignee?{id:r.assignee.accountId,name:r.assignee.displayName,avatarUrl:r.assignee.avatarUrls?.["48x48"]}:void 0,priority:function(e){if(!e)return;let t=e.toLowerCase();return t.includes("highest")||t.includes("critical")?"urgent":t.includes("high")?"high":t.includes("medium")||t.includes("major")?"medium":t.includes("low")||t.includes("minor")||t.includes("lowest")||t.includes("trivial")?"low":"none"}(r.priority?.name),labels:r.labels??[],createdAt:r.created,updatedAt:r.updated,url:`${t}/browse/${e.key}`}}async function I(e){let t,a=await f(e.projectId);if(!a)throw Error("Not connected to Jira");let r=l(e.projectId);if(!r?.siteUrl)throw Error("Missing Jira site URL");let s=e.jql??(e.projectKey?`project = ${e.projectKey} ORDER BY updated DESC`:"assignee = currentUser() OR reporter = currentUser() ORDER BY updated DESC"),i=e.limit??100,n=[],o=!1;for(;!o&&n.length<i;){let e=await a.searchIssues(s,{nextPageToken:t,maxResults:Math.min(50,i-n.length)});for(let t of e.issues)n.push(function(e,t){let a=e.fields,r=a.status?.statusCategory?.key??"new";return{id:e.id,trackerType:"jira",trackerId:`jira:${a.project?.key??"unknown"}`,identifier:e.key,title:a.summary,description:h(a.description),status:a.status?.name??"Unknown",statusCategory:k(r),assigneeId:a.assignee?.accountId??null,assignee:a.assignee?.displayName??null,assigneeEmail:null,isAssignedToMe:!1,teamId:a.project?.id??null,teamName:a.project?.name??null,teamKey:a.project?.key??null,cycleId:a.customfield_10020?String(a.customfield_10020.id):null,cycleName:a.customfield_10020?.name??null,cycleNumber:a.customfield_10020?a.customfield_10020.id:null,priority:a.priority?.name??null,labels:a.labels??[],url:`${t}/browse/${e.key}`,createdAt:a.created??null,updatedAt:a.updated}}(t,r.siteUrl));o=e.isLast||0===e.issues.length,t=e.nextPageToken}return await (0,w.replaceCachedTrackerItems)({trackerType:"jira",issues:n,complete:o,pulledAtMs:Date.now()}),{pulled:n.length}}async function T(t){let{getTrackerItemSyncState:a,setTrackerItemSyncState:r}=await e.A(410437),s=await a("jira");return(t.refresh||!s?.lastPulledAt)&&(await I({projectId:t.projectId,projectKey:t.projectKey}),await r("jira",0,Date.now())),{pulledAt:s?.lastPulledAt??null}}async function C(e){return{issues:(await (0,w.listCachedTrackerItems)({trackerType:"jira",limit:e?.limit??500})).issues.map(e=>({id:e.id,trackerId:e.trackerId||"jira:default",trackerType:"jira",identifier:e.identifier,title:e.title,description:e.description??void 0,status:e.status,statusCategory:e.statusCategory,assignee:e.assignee?{id:e.assigneeId??e.assignee,name:e.assignee}:void 0,priority:void 0,labels:e.labels??[],createdAt:e.pulledAt,updatedAt:e.updatedAt,url:e.url??"#"}))}}async function j(e,t){let a=await f(e);if(!a)throw Error("Not connected to Jira");let r=l(e),s=r?.siteUrl??"https://example.atlassian.net",i=await a.getIssue(t),n=A(i,s),o=(i.fields.comment?.comments??[]).map(e=>({id:e.id,body:"string"==typeof e.body?e.body:h(e.body)??"",author:{id:e.author.accountId,name:e.author.displayName},createdAt:e.created})),c=(await a.getActivity(t)).map(e=>({id:e.id,type:"update",description:e.items.map(e=>`${e.field}: ${e.fromString??""} → ${e.toString??""}`).join(", "),actor:{id:e.author.accountId,name:e.author.displayName},createdAt:e.created}));return{...n,comments:o,activity:c,metadata:{projectId:i.fields.project?.id,projectKey:i.fields.project?.key,projectName:i.fields.project?.name,issueType:i.fields.issuetype?.name,sprintId:i.fields.customfield_10020?.id,sprintName:i.fields.customfield_10020?.name}}}e.s(["ensureJiraIssueCache",()=>T,"getJiraIssueDetail",()=>j,"jiraStatusCategoryToCanonical",()=>k,"listJiraIssueSummaries",()=>C,"mapJiraIssue",()=>A,"pullJiraIssues",()=>I],607495)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=apps_local_80b34b78._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[85e4,e=>{"use strict";var t=e.i(522734),r=e.i(446786),a=e.i(814747),i=e.i(769025);let{DatabaseSync:s}=process.getBuiltinModule("node:sqlite"),n=process.env.AGX_GROUP_CHAT_DIR?.trim()||a.default.join(r.default.homedir(),".agx","group-chat"),u=a.default.join(n,"history.sqlite");function
|
|
1
|
+
module.exports=[85e4,e=>{"use strict";var t=e.i(522734),r=e.i(446786),a=e.i(814747),i=e.i(769025);let{DatabaseSync:s}=process.getBuiltinModule("node:sqlite"),n=process.env.AGX_GROUP_CHAT_DIR?.trim()||a.default.join(r.default.homedir(),".agx","group-chat"),u=a.default.join(n,"history.sqlite");function d(e){return e?.trim()||null}function o(e){return"scripted"===e?"scripted":"chat"}function c(e){let t,r=e.chat_created_at??e.created_at,a=e.chat_completed_at??null,i=function(e,t){switch(e){case"queued":return"queued";case"running":case"awaiting_user":case"blocked":return"running";case"completed":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return t}}(e.chat_status,e.status);return{id:e.id,projectId:e.project_id,projectSlug:e.project_slug,trackerType:e.tracker_type,issueId:e.issue_id,issueIdentifier:e.issue_identifier,issueTitle:e.issue_title,issueStatus:e.issue_status,issueAssignee:e.issue_assignee,threadId:e.thread_id,rootMessageId:e.root_message_id,chatRunId:e.chat_run_id,agentId:e.agent_id,agentName:e.agent_name,mode:o(e.mode),sessionTitle:"chat"===o(e.mode)&&(t=String(e.root_content??"").replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").replace(/\s+/g," ").trim())?t.length>72?`${t.slice(0,69).trimEnd()}...`:t:null,status:i,durationMs:null!=a?Math.max(a-r,0):null,lastError:e.chat_last_error??e.error,recapFilePath:e.recap_file_path??null,startedAt:new Date(r).toISOString(),updatedAt:new Date((e.chat_updated_at??e.updated_at)||e.updated_at).toISOString(),completedAt:"number"==typeof a?new Date(a).toISOString():null}}async function l(e){await t.promises.mkdir(n,{recursive:!0});let r=new s(u);(0,i.pragmaSet)(r,"journal_mode = WAL");try{r.exec(`
|
|
2
2
|
CREATE TABLE IF NOT EXISTS chat_runs (
|
|
3
3
|
id TEXT PRIMARY KEY,
|
|
4
4
|
thread_id TEXT NOT NULL,
|
|
@@ -72,7 +72,7 @@ module.exports=[85e4,e=>{"use strict";var t=e.i(522734),r=e.i(446786),a=e.i(8147
|
|
|
72
72
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
73
73
|
ON CONFLICT(id) DO UPDATE SET
|
|
74
74
|
tracker_type = excluded.tracker_type
|
|
75
|
-
`);for(let e of t)r.run(String(e.id),
|
|
75
|
+
`);for(let e of t)r.run(String(e.id),d(String(e.project_id??"")),d(String(e.project_slug??"")),"linear",String(e.issue_id),String(e.issue_identifier),String(e.issue_title),String(e.issue_status),d(String(e.issue_assignee??"")),String(e.thread_id),d(String(e.root_message_id??"")),d(String(e.chat_run_id??"")),String(e.agent_id),String(e.agent_name),o(String(e.mode??"chat")),String(e.status??"queued"),d(String(e.error??"")),d(String(e.recap_file_path??"")),Number(e.created_at),Number(e.updated_at))}e.exec("DROP TABLE IF EXISTS linear_runs")}(r);let t=r.prepare("PRAGMA table_info(tracker_runs)").all();return t.some(e=>"mode"===e.name)||r.exec("ALTER TABLE tracker_runs ADD COLUMN mode TEXT NOT NULL DEFAULT 'chat';"),t.some(e=>"recap_file_path"===e.name)||r.exec("ALTER TABLE tracker_runs ADD COLUMN recap_file_path TEXT;"),t.some(e=>"tracker_type"===e.name)||r.exec("ALTER TABLE tracker_runs ADD COLUMN tracker_type TEXT NOT NULL DEFAULT 'linear';"),e(r)}finally{r.close()}}let p=`
|
|
76
76
|
SELECT
|
|
77
77
|
tr.*,
|
|
78
78
|
cr.status AS chat_status,
|
|
@@ -85,20 +85,35 @@ module.exports=[85e4,e=>{"use strict";var t=e.i(522734),r=e.i(446786),a=e.i(8147
|
|
|
85
85
|
LEFT JOIN chat_runs cr ON cr.id = (
|
|
86
86
|
SELECT id FROM chat_runs WHERE thread_id = tr.thread_id ORDER BY updated_at DESC LIMIT 1
|
|
87
87
|
)
|
|
88
|
-
LEFT JOIN messages msg ON msg.thread_id = tr.thread_id AND msg.id = tr.root_message_id`;async function _(e){let t=Date.now(),r=
|
|
88
|
+
LEFT JOIN messages msg ON msg.thread_id = tr.thread_id AND msg.id = tr.root_message_id`;async function _(e){let t=Date.now(),r=d(e.id)??crypto.randomUUID(),a=d(e.threadId)??`tracker-run:${r}`,i=o(e.mode),s=e.trackerType??"linear";return l(n=>{n.prepare(`INSERT INTO tracker_runs (
|
|
89
89
|
id, project_id, project_slug, tracker_type,
|
|
90
90
|
issue_id, issue_identifier, issue_title,
|
|
91
91
|
issue_status, issue_assignee, thread_id, root_message_id, chat_run_id,
|
|
92
92
|
agent_id, agent_name, mode, status, error, recap_file_path, created_at, updated_at
|
|
93
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, NULL, ?, ?, ?, 'queued', NULL, ?, ?, ?)`).run(r,
|
|
93
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, NULL, ?, ?, ?, 'queued', NULL, ?, ?, ?)`).run(r,d(e.projectId??null),d(e.projectSlug??null),s,e.issueId.trim(),e.issueIdentifier.trim(),e.issueTitle.trim(),e.issueStatus.trim(),d(e.issueAssignee??null),a,e.agentId.trim(),e.agentName.trim(),i,d(e.recapFilePath??null),t,t);let u=n.prepare(`${p} WHERE tr.id = ? LIMIT 1`).get(r);if(!u)throw Error(`Failed to create tracker run ${r}`);return c(u)})}async function T(e){return l(t=>{let r=["updated_at = ?"],a=[Date.now()];void 0!==e.rootMessageId&&(r.push("root_message_id = ?"),a.push(d(e.rootMessageId))),void 0!==e.chatRunId&&(r.push("chat_run_id = ?"),a.push(d(e.chatRunId))),void 0!==e.status&&(r.push("status = ?"),a.push(e.status)),void 0!==e.error&&(r.push("error = ?"),a.push(d(e.error))),a.push(e.id.trim()),t.prepare(`UPDATE tracker_runs SET ${r.join(", ")} WHERE id = ?`).run(...a);let i=t.prepare(`${p} WHERE tr.id = ? LIMIT 1`).get(e.id.trim());return i?c(i):null})}async function m(e){return l(t=>{let r=t.prepare(`${p} WHERE tr.id = ? LIMIT 1`).get(e.trim());return r?c(r):null})}async function g(e){let t=e.issueId.trim(),r=d(e.projectId??null),a=d(e.trackerType??null),i=Number.isFinite(e.limit)?Math.min(Math.max(Number(e.limit),1),100):50;return l(e=>{let s=[t],n=["tr.issue_id = ?"];return r&&(n.push("tr.project_id = ?"),s.push(r)),a&&(n.push("tr.tracker_type = ?"),s.push(a)),s.push(i),e.prepare(`${p}
|
|
94
94
|
WHERE ${n.join(" AND ")}
|
|
95
95
|
ORDER BY tr.created_at DESC
|
|
96
|
-
LIMIT ?`).all(...s).map(
|
|
96
|
+
LIMIT ?`).all(...s).map(c)})}async function E(e){return l(t=>{let r=e?.trim(),a=r?`SELECT issue_id, MAX(created_at) AS last_activity_at
|
|
97
97
|
FROM tracker_runs
|
|
98
98
|
WHERE project_id = ?
|
|
99
99
|
GROUP BY issue_id`:`SELECT issue_id, MAX(created_at) AS last_activity_at
|
|
100
100
|
FROM tracker_runs
|
|
101
|
-
GROUP BY issue_id`,i=r?t.prepare(a).all(e.trim()):t.prepare(a).all(),s=new Map;for(let e of i)s.set(e.issue_id,new Date(e.last_activity_at).toISOString());return s})}async function h(e){return l(t=>{let r=e?.trim(),a=r?`SELECT
|
|
101
|
+
GROUP BY issue_id`,i=r?t.prepare(a).all(e.trim()):t.prepare(a).all(),s=new Map;for(let e of i)s.set(e.issue_id,new Date(e.last_activity_at).toISOString());return s})}async function h(e){return l(t=>{let r=e?.trim(),a=r?`SELECT tr.issue_id,
|
|
102
|
+
COUNT(DISTINCT tr.id) AS sessions,
|
|
103
|
+
COALESCE(SUM(mc.cnt), 0) AS messages
|
|
104
|
+
FROM tracker_runs tr
|
|
105
|
+
LEFT JOIN (
|
|
106
|
+
SELECT thread_id, COUNT(*) AS cnt FROM messages GROUP BY thread_id
|
|
107
|
+
) mc ON mc.thread_id = tr.thread_id
|
|
108
|
+
WHERE tr.project_id = ?
|
|
109
|
+
GROUP BY tr.issue_id`:`SELECT tr.issue_id,
|
|
110
|
+
COUNT(DISTINCT tr.id) AS sessions,
|
|
111
|
+
COALESCE(SUM(mc.cnt), 0) AS messages
|
|
112
|
+
FROM tracker_runs tr
|
|
113
|
+
LEFT JOIN (
|
|
114
|
+
SELECT thread_id, COUNT(*) AS cnt FROM messages GROUP BY thread_id
|
|
115
|
+
) mc ON mc.thread_id = tr.thread_id
|
|
116
|
+
GROUP BY tr.issue_id`;return(r?t.prepare(a).all(e.trim()):t.prepare(a).all()).map(e=>({issueId:e.issue_id,sessions:e.sessions,messages:e.messages}))})}async function I(e){return l(t=>{let r=e?.trim(),a=r?`SELECT DISTINCT tr.issue_id, tr.agent_id, tr.agent_name
|
|
102
117
|
FROM tracker_runs tr
|
|
103
118
|
INNER JOIN chat_runs cr ON cr.id = (
|
|
104
119
|
SELECT id FROM chat_runs WHERE thread_id = tr.thread_id ORDER BY updated_at DESC LIMIT 1
|
|
@@ -109,20 +124,20 @@ module.exports=[85e4,e=>{"use strict";var t=e.i(522734),r=e.i(446786),a=e.i(8147
|
|
|
109
124
|
INNER JOIN chat_runs cr ON cr.id = (
|
|
110
125
|
SELECT id FROM chat_runs WHERE thread_id = tr.thread_id ORDER BY updated_at DESC LIMIT 1
|
|
111
126
|
)
|
|
112
|
-
WHERE cr.status IN ('queued', 'running')`;return(r?t.prepare(a).all(e.trim()):t.prepare(a).all()).map(e=>({issueId:e.issue_id,agentId:e.agent_id,agentName:e.agent_name}))})}e.s(["createLinearRun",0,_,"createTrackerRun",()=>_,"getIssueActiveAgents",()=>
|
|
127
|
+
WHERE cr.status IN ('queued', 'running')`;return(r?t.prepare(a).all(e.trim()):t.prepare(a).all()).map(e=>({issueId:e.issue_id,agentId:e.agent_id,agentName:e.agent_name}))})}e.s(["createLinearRun",0,_,"createTrackerRun",()=>_,"getIssueActiveAgents",()=>I,"getIssueActivityMap",()=>E,"getIssueStats",()=>h,"getLinearRun",0,m,"getTrackerRun",()=>m,"listLinearRuns",0,g,"listTrackerRuns",()=>g,"updateLinearRun",0,T,"updateTrackerRun",()=>T])},166224,e=>{"use strict";function t(e,t){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||t}function r(e){var t;let r=a(e),i=r.issue.identifier,s=r.issue.title,n=r.issue.status,u=r.issue.assignee,d=r.runtime.knowledgeBaseRoot,o=r.runtime.issueKnowledgePath,c=r.runtime.isolatedWorktreePath,l="",p=e.runtime?.recapContent?.trim();p&&(l=`TICKET RECAP
|
|
113
128
|
${p}`);let _=["TICKET EXECUTION","You are an engineer working through a single ticket from the project's issue tracker (Linear, Jira, or whichever tracker is configured). Work like a careful teammate: continue existing work when present, investigate before coding, present a plan before implementation, ask clarifying questions when requirements are ambiguous, and stop cleanly when blocked instead of guessing.",'TERMINOLOGY NOTE\n- "Ticket" / "issue" = the work item you are executing (from Linear, Jira, etc.)\n- "Task" in this project\'s UI = a scheduled or manual background task (cron jobs, automations) — NOT this ticket.\n- Do not confuse scheduled tasks with the ticket you are working on.',`INJECTED CONTEXT
|
|
114
129
|
- Ticket: ${i}
|
|
115
130
|
- Title: ${s}
|
|
116
131
|
- Current status: ${n}
|
|
117
132
|
- Current assignee: ${u}
|
|
118
133
|
- Project: ${r.project.label}
|
|
119
|
-
- Knowledge base root: ${
|
|
120
|
-
- Issue knowledge path: ${
|
|
121
|
-
- Suggested isolated worktree: ${
|
|
134
|
+
- Knowledge base root: ${d}
|
|
135
|
+
- Issue knowledge path: ${o}
|
|
136
|
+
- Suggested isolated worktree: ${c}
|
|
122
137
|
- Additional project resources such as repo knowledge, project memory, and project variables are injected separately by the active project context.`,`SOURCE REPOSITORIES
|
|
123
|
-
${!(t=r.project.repos)||0===t.length?"- Use the active project context to discover the right repository or workspace; do not hardcode paths.":t.map(e=>{let t=[e.name.trim()||"repository"],r=String(e.path??"").trim(),a=String(e.notes??"").trim();return r&&t.push(`path: ${r}`),a&&t.push(`notes: ${a}`),`- ${t.join(" | ")}`}).join("\n")}`,"WORKFLOW\n1. Read the full issue and comment thread before acting. Use the issue tracker MCP for issue details, comments, state changes, and follow-up.\n2. Prefer resuming existing work: existing knowledge-base notes, branches, PRs, or prior discussion.\n3. If requirements are unclear, ask specific clarifying questions in the issue tracker and stop.\n4. If the ticket is fresh, investigate first, capture findings in the knowledge base, write a plan, and share the plan before implementation.\n5. If a reviewed plan already exists or the ticket is explicitly ready for implementation, implement in an isolated worktree or equivalent isolated workspace rather than a shared checkout.\n6. Validate with the appropriate tests, linting, type checks, and manual verification for the change.\n7. Keep the issue tracker accurate: comments, links, statuses, blockers, and PR references should match reality.\n8. Keep the knowledge base current with what you learned, what changed, and what remains.\n9. Work on exactly this ticket during this session.","RULES\n- Use the injected project context instead of hardcoded repo-specific paths or conventions.\n- Use knowledge base terminology; the filesystem path above is the storage location.\n- If a PR already exists, focus on CI failures, reviewer feedback, merge status, or ticket follow-up instead of starting over.\n- Leave the ticket and the knowledge base in a resumable state at the end of the session. Clean up temporary worktrees or session claims if your workflow created them."];return l&&_.splice(3,0,l),{prompt:`Work on this ticket: ${i} - ${s}`,promptPrefix:_.join("\n\n")+"\n\n"}}function a(e){var r;let a,i,s=e.issue.identifier.trim()||"TICKET-ID",n=e.issue.title.trim()||"Untitled ticket",u=String(e.issue.status??"").trim()||"Unknown",
|
|
124
|
-
- Name: ${
|
|
138
|
+
${!(t=r.project.repos)||0===t.length?"- Use the active project context to discover the right repository or workspace; do not hardcode paths.":t.map(e=>{let t=[e.name.trim()||"repository"],r=String(e.path??"").trim(),a=String(e.notes??"").trim();return r&&t.push(`path: ${r}`),a&&t.push(`notes: ${a}`),`- ${t.join(" | ")}`}).join("\n")}`,"WORKFLOW\n1. Read the full issue and comment thread before acting. Use the issue tracker MCP for issue details, comments, state changes, and follow-up.\n2. Prefer resuming existing work: existing knowledge-base notes, branches, PRs, or prior discussion.\n3. If requirements are unclear, ask specific clarifying questions in the issue tracker and stop.\n4. If the ticket is fresh, investigate first, capture findings in the knowledge base, write a plan, and share the plan before implementation.\n5. If a reviewed plan already exists or the ticket is explicitly ready for implementation, implement in an isolated worktree or equivalent isolated workspace rather than a shared checkout.\n6. Validate with the appropriate tests, linting, type checks, and manual verification for the change.\n7. Keep the issue tracker accurate: comments, links, statuses, blockers, and PR references should match reality.\n8. Keep the knowledge base current with what you learned, what changed, and what remains.\n9. Work on exactly this ticket during this session.","RULES\n- Use the injected project context instead of hardcoded repo-specific paths or conventions.\n- Use knowledge base terminology; the filesystem path above is the storage location.\n- If a PR already exists, focus on CI failures, reviewer feedback, merge status, or ticket follow-up instead of starting over.\n- Leave the ticket and the knowledge base in a resumable state at the end of the session. Clean up temporary worktrees or session claims if your workflow created them."];return l&&_.splice(3,0,l),{prompt:`Work on this ticket: ${i} - ${s}`,promptPrefix:_.join("\n\n")+"\n\n"}}function a(e){var r;let a,i,s=e.issue.identifier.trim()||"TICKET-ID",n=e.issue.title.trim()||"Untitled ticket",u=String(e.issue.status??"").trim()||"Unknown",d=String(e.issue.assignee??"").trim()||"Unassigned",o=function(e){let r=String(e?.slug??"").trim();if(r)return t(r,"project");let a=String(e?.name??"").trim();return a?t(a,"project"):"project"}(e.project),c=String(e.project?.name??"").trim()||o,l=String(e.runtime?.knowledgeBaseRoot??"").trim()||`~/.agx/vault/${o}`,p=String(e.runtime?.issueKnowledgePath??"").trim()||`${l}/issues/${s}/`,_=String(e.runtime?.isolatedWorktreePath??"").trim()||`/tmp/agx-${t(s,"ticket")}`;return{issue:{identifier:s,title:n,status:u,assignee:d},project:{name:c,slug:o,label:(r=e.project,a=String(r?.name??"").trim(),i=String(r?.slug??"").trim(),a&&i?`${a} (${i})`:a||i||"current project"),repos:e.project?.repos?[...e.project.repos]:[]},runtime:{knowledgeBaseRoot:l,issueKnowledgePath:p,isolatedWorktreePath:_}}}function i(e,t){let r=a(t),i={"ticket.identifier":r.issue.identifier,"ticket.title":r.issue.title,"ticket.status":r.issue.status,"ticket.assignee":r.issue.assignee,"project.name":r.project.name,"project.slug":r.project.slug,"project.label":r.project.label,"knowledge_base.root":r.runtime.knowledgeBaseRoot,"knowledge_base.issue_path":r.runtime.issueKnowledgePath,"worktree.path":r.runtime.isolatedWorktreePath};return e.replace(/\{\{\s*([a-zA-Z0-9._-]+)\s*\}\}/g,(e,t)=>i[t]??"")}e.s(["buildTrackerExecutionPrompt",()=>r,"renderTrackerExecutionPromptTemplate",()=>i])},914284,e=>{"use strict";var t=e.i(522734),r=e.i(446786),a=e.i(814747);let i="latest.md";function s(e){return a.default.join(process.env.AGX_HOME??a.default.join(r.default.homedir(),".agx"),"linear",e,"recaps")}async function n(e,r){let n=s(e);await t.promises.mkdir(n,{recursive:!0});let u=new Date().toISOString().replace(/[:.]/g,"-")+".md",o=a.default.join(n,u);await t.promises.writeFile(o,r,"utf8");let c=a.default.join(n,i);try{await t.promises.unlink(c)}catch{}await t.promises.symlink(u,c),await d(n);let l=await t.promises.stat(o);return{filePath:o,latestPath:c,generatedAt:l.mtime}}async function u(e){let r=a.default.join(s(e),i);try{let e=await t.promises.stat(r);return{content:await t.promises.readFile(r,"utf8"),filePath:r,generatedAt:e.mtime}}catch{return null}}async function d(e){for(let r of(await t.promises.readdir(e)).filter(e=>e.endsWith(".md")&&e!==i).sort().reverse().slice(10))try{await t.promises.unlink(a.default.join(e,r))}catch{}}e.s(["readLatestRecap",()=>u,"writeRecap",()=>n])},471315,e=>{"use strict";e.i(712513);var t=e.i(744071),r=e.i(391310),a=e.i(166224),i=e.i(85e4),s=e.i(914284),n=e.i(601544),u=e.i(848159),d=e.i(565248),o=e.i(735330);async function c(e){let t=(await (0,r.loadDbParticipants)()).find(t=>t.id===e.agentId)??null;if(!t)throw Error(`Agent "${e.agentId}" could not be resolved for scripted tracker work.`);let n=await (0,s.readLatestRecap)(e.issue.id),u=await (0,i.createTrackerRun)({projectId:e.projectId??null,projectSlug:e.projectSlug??null,issueId:e.issue.id,issueIdentifier:e.issue.identifier,issueTitle:e.issue.title,issueStatus:e.issue.status,issueAssignee:e.issue.assignee??null,agentId:t.id,agentName:t.name,mode:"scripted",recapFilePath:n?.filePath??null});try{let r={issue:{identifier:e.issue.identifier,title:e.issue.title,status:e.issue.status,assignee:e.issue.assignee??null},project:e.projectSlug?{slug:e.projectSlug}:null,runtime:{recapContent:n?.content??null}},{prompt:s,promptPrefix:d}=(0,a.buildTrackerExecutionPrompt)(r),o=e.scriptPrompt?.trim()??"",c=e.scriptName?.trim()??"",p=o&&(0,a.renderTrackerExecutionPromptTemplate)(o,r).trim()||s,_=o?`${d}ACTIVE SESSION SCRIPT
|
|
139
|
+
- Name: ${c||"Custom script"}
|
|
125
140
|
|
|
126
|
-
`:
|
|
141
|
+
`:d,{chatRunId:T,userMessageId:m}=await l({threadId:u.threadId,prompt:p,promptPrefix:_,projectSlug:e.projectSlug??null,participantId:t.id});return{run:u=await (0,i.updateTrackerRun)({id:u.id,chatRunId:T,rootMessageId:m})??u,chatRunId:T,userMessageId:m}}catch(e){throw await (0,i.updateTrackerRun)({id:u.id,status:"failed",error:e instanceof Error?e.message:String(e)}),e}}async function l(e){let a=(await (0,r.loadDbParticipants)()).find(t=>t.id===e.participantId)??null;if(!a)throw Error(`Participant "${e.participantId}" is unavailable.`);let i=(0,o.normalizeProjectSlug)(e.projectSlug),s=await (0,o.resolveProjectContext)(i,[],[a]),c=Date.now(),l=crypto.randomUUID(),p={id:l,role:"user",participantId:null,content:e.prompt,timestamp:c,rootMessageId:null,parentMessageId:null,depth:0};await (0,n.saveMessages)(e.threadId,[p]);let _=e.promptPrefix?`${e.promptPrefix}${e.prompt}`:e.prompt,T=crypto.randomUUID(),m={threadId:e.threadId,prompt:_,projectContext:s,mentionedIds:[],initialParallelIds:[],maxRounds:Math.min(Math.max(e.maxRounds??10,1),50),recentHistory:[],currentUserMessageId:l,rootMessageId:l,participantIds:[a.id]};await (0,n.createChatRun)({id:T,threadId:e.threadId,rootMessageId:l,userId:t.LOCAL_USER.id,projectSlug:i||null,maxSteps:m.maxRounds,activeParticipantIds:[a.id],payload:m}),await (0,u.ensureOrchestratorRuntime)();let g=await (0,d.getQueue)();return await g.send(d.QUEUE_NAMES.CHAT_RUN_PROCESS,{chatRunId:T,userId:t.LOCAL_USER.id,signal:"start"}),{chatRunId:T,userMessageId:l}}e.s(["startScriptedTrackerSession",()=>c])}];
|
|
127
142
|
|
|
128
143
|
//# sourceMappingURL=apps_local_8f9f647d._.js.map
|