conductor-oss 0.2.18 → 0.2.20
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/dist/commands/dashboard.js +2 -2
- package/dist/commands/start.d.ts +3 -6
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +450 -220
- package/dist/commands/start.js.map +1 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +1 -1
- package/native/conductor +0 -0
- package/node_modules/@conductor-oss/core/dist/session-manager.js +1 -1
- package/node_modules/@conductor-oss/core/dist/session-manager.js.map +1 -1
- package/node_modules/@conductor-oss/plugin-agent-amp/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-ccr/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-claude-code/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-codex/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-cursor-cli/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-droid/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-gemini/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-github-copilot/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-opencode/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-qwen-code/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-mcp-server/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-notifier-desktop/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-notifier-discord/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-runtime-tmux/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-scm-github/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-terminal-web/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-tracker-github/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-workspace-worktree/package.json +1 -1
- package/package.json +21 -22
- package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/packages/web/.next/app-path-routes-manifest.json +0 -1
- package/web/.next/standalone/packages/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/packages/web/.next/routes-manifest.json +0 -6
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js +4 -4
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.rsc +4 -4
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app-paths-manifest.json +0 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1ed2e6c1._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3d6b30a3._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a0b6570d._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0e4dc4f7.js +2 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__12eb9005._.js → [root-of-the-server]__48817f02._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__6622b514._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__869d9ac0._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__9dc23e5a._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_0e1412de._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_69e05fca._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_80efe193._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_b6d31783._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_c0f0e227._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_f36ddaa9._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_38e7b35d._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_f665760b._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_f2ebd7a9._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_79316445._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_a078c137._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_page_tsx_cd282e82._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{packages_web_src_components_3809c507._.js → packages_web_src_components_6cab1c8c._.js} +1 -1
- package/web/.next/standalone/packages/web/.next/server/functions-config-manifest.json +1 -2
- package/web/.next/standalone/packages/web/.next/server/pages/404.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +8 -8
- package/web/.next/standalone/packages/web/.next/static/chunks/062888342200567f.js +1 -0
- package/web/.next/{static/chunks/28dd6ef2af62b509.js → standalone/packages/web/.next/static/chunks/3b757dce050133c8.js} +2 -2
- package/web/.next/standalone/packages/web/.next/static/chunks/{c959976264f14eba.js → 5c7e8425945ad682.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/6c9a11faed9daf4d.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/8221b78965a50858.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/8de84e208e201d72.css +3 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/{e862e73b22fe29c2.js → c4ea57fb949fb623.js} +1 -1
- package/web/.next/standalone/packages/web/src/components/layout/TopBar.tsx +8 -10
- package/web/.next/standalone/packages/web/src/features/dashboard/DashboardClient.tsx +32 -16
- package/web/.next/standalone/packages/web/src/features/sessions/SessionPageClient.tsx +12 -2
- package/web/.next/standalone/packages/web/src/proxy.ts +1 -0
- package/web/.next/static/chunks/062888342200567f.js +1 -0
- package/web/.next/{standalone/packages/web/.next/static/chunks/28dd6ef2af62b509.js → static/chunks/3b757dce050133c8.js} +2 -2
- package/web/.next/static/chunks/{c959976264f14eba.js → 5c7e8425945ad682.js} +1 -1
- package/web/.next/static/chunks/6c9a11faed9daf4d.js +1 -0
- package/web/.next/static/chunks/8221b78965a50858.js +1 -0
- package/web/.next/static/chunks/8de84e208e201d72.css +3 -0
- package/web/.next/static/chunks/{e862e73b22fe29c2.js → c4ea57fb949fb623.js} +1 -1
- package/dist/commands/watch.d.ts +0 -12
- package/dist/commands/watch.d.ts.map +0 -1
- package/dist/commands/watch.js +0 -84
- package/dist/commands/watch.js.map +0 -1
- package/dist/commands/webhook.d.ts +0 -12
- package/dist/commands/webhook.d.ts.map +0 -1
- package/dist/commands/webhook.js +0 -59
- package/dist/commands/webhook.js.map +0 -1
- package/node_modules/@conductor-oss/plugin-webhook/dist/index.d.ts +0 -28
- package/node_modules/@conductor-oss/plugin-webhook/dist/index.d.ts.map +0 -1
- package/node_modules/@conductor-oss/plugin-webhook/dist/index.js +0 -295
- package/node_modules/@conductor-oss/plugin-webhook/dist/index.js.map +0 -1
- package/node_modules/@conductor-oss/plugin-webhook/package.json +0 -11
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route/app-paths-manifest.json +0 -3
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route/build-manifest.json +0 -11
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route/server-reference-manifest.json +0 -4
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js +0 -8
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js.map +0 -5
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js.nft.json +0 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route_client-reference-manifest.js +0 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7633d324._.js +0 -4
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__bf8faac8._.js +0 -4
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_agents_route_actions_29063d1a.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_78af9fdf._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_c4bad84a._.js +0 -3
- package/web/.next/standalone/packages/web/.next/static/chunks/1e67fbc3874d3f51.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/2b2a24dff50e7dc9.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/483eb2824f5282c7.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/860d84e1f09476a4.css +0 -3
- package/web/.next/standalone/packages/web/src/app/api/agents/route.ts +0 -223
- package/web/.next/static/chunks/1e67fbc3874d3f51.js +0 -1
- package/web/.next/static/chunks/2b2a24dff50e7dc9.js +0 -1
- package/web/.next/static/chunks/483eb2824f5282c7.js +0 -1
- package/web/.next/static/chunks/860d84e1f09476a4.css +0 -3
- /package/web/.next/standalone/packages/web/.next/static/{eSF3qxz6RT8UXiwr-uibJ → P8IBAo_woCzrGXJiYCZto}/_buildManifest.js +0 -0
- /package/web/.next/standalone/packages/web/.next/static/{eSF3qxz6RT8UXiwr-uibJ → P8IBAo_woCzrGXJiYCZto}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/standalone/packages/web/.next/static/{eSF3qxz6RT8UXiwr-uibJ → P8IBAo_woCzrGXJiYCZto}/_ssgManifest.js +0 -0
- /package/web/.next/static/{eSF3qxz6RT8UXiwr-uibJ → P8IBAo_woCzrGXJiYCZto}/_buildManifest.js +0 -0
- /package/web/.next/static/{eSF3qxz6RT8UXiwr-uibJ → P8IBAo_woCzrGXJiYCZto}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{eSF3qxz6RT8UXiwr-uibJ → P8IBAo_woCzrGXJiYCZto}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../chunks/ssr/[root-of-the-server]
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../chunks/ssr/[root-of-the-server]__48817f02._.js","../../chunks/ssr/[root-of-the-server]__4f387f9d._.js","../../chunks/ssr/[root-of-the-server]__6622b514._.js","../../chunks/ssr/[root-of-the-server]__a457c799._.js","../../chunks/ssr/[root-of-the-server]__a509d17d._.js","../../chunks/ssr/[root-of-the-server]__b3463b25._.js","../../chunks/ssr/[root-of-the-server]__bc8d015f._.js","../../chunks/ssr/[root-of-the-server]__dd8d1ff5._.js","../../chunks/ssr/[root-of-the-server]__e93a8bf2._.js","../../chunks/ssr/[root-of-the-server]__f3a0805b._.js","../../chunks/ssr/[root-of-the-server]__f45766c6._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_7321b77f._.js","../../chunks/ssr/_b6d31783._.js","../../chunks/ssr/_f36ddaa9._.js","../../chunks/ssr/d4b1c_modules_@clerk_nextjs_dist_esm_app-router_client_keyless-cookie-sync_f823d0f8.js","../../chunks/ssr/node_modules_270cb834._.js","../../chunks/ssr/node_modules_70eac050._.js","../../chunks/ssr/node_modules_@clerk_5c577fb4._.js","../../chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_38e7b35d._.js","../../chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_f665760b._.js","../../chunks/ssr/node_modules_@clerk_nextjs_dist_esm_server_keyless-log-cache_52006def.js","../../chunks/ssr/node_modules_f2ebd7a9._.js","../../chunks/ssr/node_modules_next_06f89723._.js","../../chunks/ssr/node_modules_next_2a43e292._.js","../../chunks/ssr/node_modules_next_dist_2df23979._.js","../../chunks/ssr/node_modules_next_dist_65e60196._.js","../../chunks/ssr/node_modules_next_dist_aa203534._.js","../../chunks/ssr/node_modules_next_dist_client_components_9774470f._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_45780354.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_ece394eb.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_15817684.js","../../chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js","../../chunks/ssr/packages_web_src_app_7254dc39._.js","../../chunks/ssr/packages_web_src_app_unlock_UnlockForm_tsx_ce3149a7._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]}
|
package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
|
|
2
|
-
globalThis.__RSC_MANIFEST["/unlock/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":39756,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":37457,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":47257,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":92825,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":68017,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":27201,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":97367,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>":{"id":68027,"name":"*","chunks":[],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":[],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/controlComponents.js <module evaluation>":{"id":27534,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/controlComponents.js":{"id":27534,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/uiComponents.js <module evaluation>":{"id":58072,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/uiComponents.js":{"id":58072,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/hooks.js <module evaluation>":{"id":96136,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/hooks.js":{"id":96136,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/PromisifiedAuthProvider.js <module evaluation>":{"id":40578,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/PromisifiedAuthProvider.js":{"id":40578,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/app-router/client/ClerkProvider.js <module evaluation>":{"id":41895,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/app-router/client/ClerkProvider.js":{"id":41895,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/app-router/client/keyless-cookie-sync.js <module evaluation>":{"id":96211,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/app-router/client/keyless-cookie-sync.js":{"id":96211,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/packages/web/src/components/ThemeProvider.tsx <module evaluation>":{"id":46770,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/packages/web/src/components/ThemeProvider.tsx":{"id":46770,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/packages/web/src/app/unlock/UnlockForm.tsx <module evaluation>":{"id":44886,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js","/_next/static/chunks/ac6a06c17a4f651f.js"],"async":false},"[project]/packages/web/src/app/unlock/UnlockForm.tsx":{"id":44886,"name":"*","chunks":["/_next/static/chunks/28dd6ef2af62b509.js","/_next/static/chunks/fdcf16937d36c773.js","/_next/static/chunks/ac6a06c17a4f651f.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__a457c799._.js"],"async":false}},"27534":{"*":{"id":90739,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__12eb9005._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"58072":{"*":{"id":10232,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__12eb9005._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"96136":{"*":{"id":41663,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__12eb9005._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"40578":{"*":{"id":32644,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__12eb9005._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"41895":{"*":{"id":82114,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__12eb9005._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"96211":{"*":{"id":37334,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__12eb9005._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"46770":{"*":{"id":92768,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__12eb9005._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"44886":{"*":{"id":16487,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__12eb9005._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js","server/chunks/ssr/packages_web_src_app_unlock_UnlockForm_tsx_ce3149a7._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"27534":{"*":{"id":77542,"name":"*","chunks":[],"async":false}},"58072":{"*":{"id":80832,"name":"*","chunks":[],"async":false}},"96136":{"*":{"id":14330,"name":"*","chunks":[],"async":false}},"40578":{"*":{"id":38886,"name":"*","chunks":[],"async":false}},"41895":{"*":{"id":43657,"name":"*","chunks":[],"async":false}},"96211":{"*":{"id":91789,"name":"*","chunks":[],"async":false}},"46770":{"*":{"id":97973,"name":"*","chunks":[],"async":false}},"44886":{"*":{"id":29909,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/packages/web/src/app/icon.svg":[],"[project]/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/packages/web/src/app/layout":[{"path":"static/chunks/860d84e1f09476a4.css","inlined":false}],"[project]/packages/web/src/app/unlock/page":[{"path":"static/chunks/860d84e1f09476a4.css","inlined":false}]},"entryJSFiles":{"[project]/packages/web/src/app/icon.svg":["static/chunks/c4c79d5d0b280aeb.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/packages/web/src/app/layout":["static/chunks/28dd6ef2af62b509.js","static/chunks/fdcf16937d36c773.js"],"[project]/packages/web/src/app/unlock/page":["static/chunks/28dd6ef2af62b509.js","static/chunks/fdcf16937d36c773.js","static/chunks/ac6a06c17a4f651f.js"]}}
|
|
2
|
+
globalThis.__RSC_MANIFEST["/unlock/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":39756,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":37457,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":47257,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":92825,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":68017,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":27201,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":97367,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/c4c79d5d0b280aeb.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>":{"id":68027,"name":"*","chunks":[],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":[],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/controlComponents.js <module evaluation>":{"id":27534,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/controlComponents.js":{"id":27534,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/uiComponents.js <module evaluation>":{"id":58072,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/uiComponents.js":{"id":58072,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/hooks.js <module evaluation>":{"id":96136,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/hooks.js":{"id":96136,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/PromisifiedAuthProvider.js <module evaluation>":{"id":40578,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/client-boundary/PromisifiedAuthProvider.js":{"id":40578,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/app-router/client/ClerkProvider.js <module evaluation>":{"id":41895,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/app-router/client/ClerkProvider.js":{"id":41895,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/app-router/client/keyless-cookie-sync.js <module evaluation>":{"id":96211,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/node_modules/@clerk/nextjs/dist/esm/app-router/client/keyless-cookie-sync.js":{"id":96211,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/packages/web/src/components/ThemeProvider.tsx <module evaluation>":{"id":46770,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/packages/web/src/components/ThemeProvider.tsx":{"id":46770,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js"],"async":false},"[project]/packages/web/src/app/unlock/UnlockForm.tsx <module evaluation>":{"id":44886,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js","/_next/static/chunks/ac6a06c17a4f651f.js"],"async":false},"[project]/packages/web/src/app/unlock/UnlockForm.tsx":{"id":44886,"name":"*","chunks":["/_next/static/chunks/3b757dce050133c8.js","/_next/static/chunks/fdcf16937d36c773.js","/_next/static/chunks/ac6a06c17a4f651f.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b3463b25._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__a457c799._.js"],"async":false}},"27534":{"*":{"id":90739,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__48817f02._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"58072":{"*":{"id":10232,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__48817f02._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"96136":{"*":{"id":41663,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__48817f02._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"40578":{"*":{"id":32644,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__48817f02._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"41895":{"*":{"id":82114,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__48817f02._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"96211":{"*":{"id":37334,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__48817f02._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"46770":{"*":{"id":92768,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__48817f02._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js"],"async":false}},"44886":{"*":{"id":16487,"name":"*","chunks":["server/chunks/ssr/_b6d31783._.js","server/chunks/ssr/[root-of-the-server]__48817f02._.js","server/chunks/ssr/node_modules_70eac050._.js","server/chunks/ssr/node_modules_next_2a43e292._.js","server/chunks/ssr/packages_web_src_app_unlock_UnlockForm_tsx_ce3149a7._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"27534":{"*":{"id":77542,"name":"*","chunks":[],"async":false}},"58072":{"*":{"id":80832,"name":"*","chunks":[],"async":false}},"96136":{"*":{"id":14330,"name":"*","chunks":[],"async":false}},"40578":{"*":{"id":38886,"name":"*","chunks":[],"async":false}},"41895":{"*":{"id":43657,"name":"*","chunks":[],"async":false}},"96211":{"*":{"id":91789,"name":"*","chunks":[],"async":false}},"46770":{"*":{"id":97973,"name":"*","chunks":[],"async":false}},"44886":{"*":{"id":29909,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/packages/web/src/app/icon.svg":[],"[project]/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/packages/web/src/app/layout":[{"path":"static/chunks/8de84e208e201d72.css","inlined":false}],"[project]/packages/web/src/app/unlock/page":[{"path":"static/chunks/8de84e208e201d72.css","inlined":false}]},"entryJSFiles":{"[project]/packages/web/src/app/icon.svg":["static/chunks/c4c79d5d0b280aeb.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/packages/web/src/app/layout":["static/chunks/3b757dce050133c8.js","static/chunks/fdcf16937d36c773.js"],"[project]/packages/web/src/app/unlock/page":["static/chunks/3b757dce050133c8.js","static/chunks/fdcf16937d36c773.js","static/chunks/ac6a06c17a4f651f.js"]}}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
"/_global-error/page": "app/_global-error/page.js",
|
|
3
3
|
"/_not-found/page": "app/_not-found/page.js",
|
|
4
4
|
"/api/access/route": "app/api/access/route.js",
|
|
5
|
-
"/api/agents/route": "app/api/agents/route.js",
|
|
6
5
|
"/api/attachments/route": "app/api/attachments/route.js",
|
|
7
6
|
"/api/auth/session/route": "app/api/auth/session/route.js",
|
|
8
7
|
"/api/boards/route": "app/api/boards/route.js",
|
package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1ed2e6c1._.js
CHANGED
|
@@ -144,7 +144,7 @@ projects:
|
|
|
144
144
|
## Issue Details`),a.push(r)),t.reactions){let e=[];for(let[i,n]of Object.entries(t.reactions))n.auto&&"send-to-agent"===n.action&&e.push(`- ${i}: auto-handled (you'll receive instructions)`);e.length>0&&(a.push(`
|
|
145
145
|
## Automated Reactions`),a.push("The orchestrator will automatically handle these events:"),a.push(...e))}return a.join("\n")}(e)),i&&s.push(`## Project Rules
|
|
146
146
|
${i}`),e.userPrompt&&s.push(`## Additional Instructions
|
|
147
|
-
${e.userPrompt}`),e.attachments&&e.attachments.length>0&&s.push(function(e){let t=e.filter(e=>"image"===e.type),i=e.filter(e=>"file"===e.type),n=[];if(n.push("## Reference Attachments"),n.push("The following files were attached to this task as reference material."),n.push("Read them using the Read tool to understand the visual design or context."),t.length>0){for(let e of(n.push(""),n.push("### Images (screenshots / mockups / designs)"),t))n.push(`- \`${e.path}\` — ${(0,a.basename)(e.path)}`);n.push(""),n.push("Use the Read tool to view each image file. These are visual references — match your implementation to what you see.")}if(i.length>0)for(let e of(n.push(""),n.push("### Reference Files"),i))n.push(`- \`${e.path}\` — ${(0,a.basename)(e.path)}`);return n.join("\n")}(e.attachments)),s.join("\n\n")}e.s(["BASE_AGENT_PROMPT",0,cW,"buildPrompt",()=>cK],69485);let cV={cc:"claude-code",claude:"claude-code","claude-code-cli":"claude-code",claude_code_cli:"claude-code","claude-code-router":"ccr","ccr-cli":"ccr",claude_code_router:"ccr","claude code router":"ccr",cursor:"cursor-cli","cursor-agent":"cursor-cli","cursor-agent-cli":"cursor-cli",cursor_agent:"cursor-cli",cursoragent:"cursor-cli",cursorcli:"cursor-cli",copilot:"github-copilot","copilot-cli":"github-copilot","copilot cli":"github-copilot","github-copilot-cli":"github-copilot","gh-copilot":"github-copilot","github-copilot":"github-copilot","google-gemini":"gemini","google-gemini-cli":"gemini",gm:"gemini",gem:"gemini","gemini-cli":"gemini",gemini:"gemini",amp:"amp","amp-cli":"amp","open-code":"opencode","open-code-cli":"opencode","open code":"opencode",open_code:"opencode",openai:"codex","open-ai":"codex","openai-codex":"codex","open-ai-codex":"codex","openai-codex-cli":"codex",openai_codex:"codex","codex-cli":"codex",codexcli:"codex",codex:"codex","qwen-code-cli":"qwen-code",qwen:"qwen-code",qwen_code:"qwen-code","qwen code":"qwen-code","qwen-code":"qwen-code","factory-droid":"droid",factory_droid:"droid",droid:"droid"};function cG(e,t){let i=e.trim().toLowerCase(),n="",r=!1;for(let e of i){let t="";e>="a"&&e<="z"||e>="0"&&e<="9"?t=e:t="-","-"===t?(!r&&n.length>0&&(n+=t),r=!0):(n+=t,r=!1)}if(n.endsWith("-")&&(n=n.slice(0,-1)),!n)return"";let a=cV[n];if(a)return(t?t.find(e=>e.toLowerCase()===a):a)??a;let o=t?t.find(e=>e.toLowerCase()===n):void 0;if(o)return o;let s=t?t.find(e=>e.toLowerCase().includes(n)):void 0;return s||n}let cH=(0,cq.promisify)(cJ.execFile);async function cY(e,t,i){let n=null;if(t){let e=t.path.startsWith("~/")?(0,a.join)((0,o.homedir)(),t.path.slice(2)):t.path;(0,r.existsSync)((0,a.join)(e,".git"))&&(n=e)}if(!n){let t=(0,a.basename)((0,a.dirname)(e)),i=(0,a.join)((0,o.homedir)(),".conductor","projects",t);(0,r.existsSync)((0,a.join)(i,".git"))&&(n=i)}if(n){try{await cH("git",["worktree","remove","--force",e],{cwd:n,timeout:15e3})}catch{(0,r.existsSync)(e)&&(0,r.rmSync)(e,{recursive:!0,force:!0})}try{await cH("git",["worktree","prune"],{cwd:n,timeout:1e4})}catch{}let t=`session/${i}`;try{await cH("git",["branch","-D",t],{cwd:n,timeout:1e4})}catch{}}else(0,r.existsSync)(e)&&(0,r.rmSync)(e,{recursive:!0,force:!0})}async function cX(e,t){let i=t.trim();if(i&&(0,r.existsSync)((0,a.join)(e,".git"))){try{await cH("git",["fetch","origin","--quiet"],{cwd:e,timeout:2e4})}catch{}try{await cH("git",["checkout",i],{cwd:e,timeout:2e4});return}catch{}try{await cH("git",["checkout","--track","-b",i,`origin/${i}`],{cwd:e,timeout:2e4});return}catch{}await cH("git",["checkout","-b",i],{cwd:e,timeout:2e4})}}function cQ(e,t){let i="string"==typeof t.defaultWorkingDirectory?function(e){let t=e.trim();if(!t||"."===t)return null;let i=t.replace(/\\/g,"/").replace(/\/+$/g,"");if(!i||"."===i)return null;if(i.startsWith("/")||i.includes(".."))throw Error(`Invalid defaultWorkingDirectory "${e}": use a relative path inside the repository`);return i.replace(/^\.?\//,"")}(t.defaultWorkingDirectory):null;if(!i)return e;let n=(0,a.join)(e,i),o=(0,r.statSync)(n,{throwIfNoEntry:!1});if(!o||!o.isDirectory())throw Error(`defaultWorkingDirectory "${t.defaultWorkingDirectory}" does not exist in workspace "${e}"`);return n}async function c0(e){if(!(0,r.existsSync)((0,a.join)(e,".git")))return!1;try{let{stdout:t}=await cH("git",["status","--porcelain"],{cwd:e,timeout:2e4});return t.trim().length>0}catch{return!1}}async function c1(e,t,i){if(e&&0!==e.length)for(let n of e){let e=n.trim();if(e)try{await cH("sh",["-c",e],{cwd:t,timeout:3e5})}catch(n){let e=n instanceof Error?n.message:String(n);console.warn(`[session-manager] ${i} command failed in ${t}: ${e}`)}}}let c4=new Set(["a","an","the","and","or","but","in","on","at","to","for","of","with","by","from","is","are","was","were","be","been","it","its","this","that","using","use","via","into","as"]);function c6(e){try{return JSON.parse(e)}catch{return null}}let c2=new Set(["spawning","working","pr_open","ci_failed","review_pending","changes_requested","approved","mergeable","merged","cleanup","needs_input","stuck","errored","killed","done","terminated"]);function c9(e){return"starting"===e?"working":e&&c2.has(e)?e:"spawning"}function c3(e,t,i,n,r){let a,o;return{id:e,projectId:t.project??r??"",status:c9(t.status),activity:null,branch:t.branch||null,issueId:t.issue||null,pr:t.pr?{number:(o=(a=t.pr).match(/github\.com\/([^/]+)\/([^/]+)\/pull\/(\d+)/))?parseInt(o[3],10):parseInt(a.match(/\/(\d+)$/)?.[1]??"0",10),url:a,title:t.prTitle??"",owner:o?.[1]??"",repo:o?.[2]??"",branch:t.prHeadRef??t.branch??"",baseBranch:t.prBaseRef??"",isDraft:"1"===t.prDraft||"true"===t.prDraft}:null,workspacePath:t.worktree||null,runtimeHandle:t.runtimeHandle?c6(t.runtimeHandle):null,agentInfo:t.summary||t.cost?{summary:t.summary??null,agentSessionId:null,...t.cost?{cost:c6(t.cost)??void 0}:{}}:null,createdAt:t.createdAt?new Date(t.createdAt):i??new Date,lastActivityAt:n??new Date,metadata:t}}function c8(e){let{config:t,registry:i}=e,s=t.maxSessionsPerProject??5;function l(e){return uB(t.configPath,e.path)}function u(e){for(let[i,n]of Object.entries(t.projects)){let t=l(n),r=cz(t,e);if(r)return{sessionId:e,projectId:i,project:n,sessionsDir:t,raw:r}}return null}function c(e,t,i){try{cZ(e,t,{id:`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`,sessionId:t,createdAt:new Date().toISOString(),...i})}catch(i){let e=i instanceof Error?i.message:String(i);console.warn(`[session-manager] failed to append conversation entry for ${t}: ${e}`)}}let d=new Map;function f(e,n){let r=i.get("runtime",e.runtime??t.defaults.runtime),a=cG(n??e.agent??t.defaults.agent),o=i.get("agent",a),s=i.get("workspace",e.workspace??t.defaults.workspace);return{runtime:r,agent:o,workspace:s,tracker:e.tracker?i.get("tracker",e.tracker.plugin):null,scm:e.scm?i.get("scm",e.scm.plugin):null}}async function m(e,i,n,r){let a=null!==e.runtimeHandle;a||(e.runtimeHandle={id:i,runtimeName:n.runtime??t.defaults.runtime,data:{}}),await h(e,r,a)}let p=new Set(["killed","done","merged","terminated","cleanup"]);async function h(e,i,n){let r=t.projects[e.projectId];if(p.has(e.status)){if("done"===e.status&&n&&e.runtimeHandle&&i.runtime&&"archived"!==e.metadata.attemptStatus)try{if(await i.runtime.isAlive(e.runtimeHandle)){if(e.status="working",r){let t=l(r);cU(t,e.id,{status:"working"})}}else{e.activity="exited";return}}catch{e.activity="exited";return}else{if(e.activity="exited",i.agent)try{let t=await i.agent.getSessionInfo(e);if(t&&(e.agentInfo=t,t.summary&&!t.summaryIsFallback&&r)){let i=l(r),n={};n.summary=t.summary,t.cost&&(n.cost=JSON.stringify(t.cost)),cU(i,e.id,n)}}catch{}return}if("working"!==e.status)return}if(n&&e.runtimeHandle&&i.runtime)try{if(!await i.runtime.isAlive(e.runtimeHandle)){e.status="killed",e.activity="exited";return}}catch{}if(i.agent){try{let n=await i.agent.getActivityState(e,t.readyThresholdMs);null!==n&&(e.activity=n.state,n.timestamp&&n.timestamp>e.lastActivityAt&&(e.lastActivityAt=n.timestamp))}catch{}try{let n=await i.agent.getSessionInfo(e);if(n){e.agentInfo=n;let i=t.projects[e.projectId];if(i){let t=l(i),r={};n.summary&&(r.summary=n.summary),n.cost&&(r.cost=JSON.stringify(n.cost)),Object.keys(r).length>0&&cU(t,e.id,r)}}}catch{}}}async function g(e){var i,u,m,p;let h,g,v,y,$,b,k,_,w,x,S,I,O=t.projects[e.projectId];if(!O)throw Error(`Unknown project: ${e.projectId}`);let j=function(e){let i=t.projects[e];if(!i)return 0;let n=l(i),r=cB(n),a=0;for(let e of r){let t=cz(n,e);if(!t)continue;let i=c9(t.status);!new Set(["killed","terminated","done","cleanup","errored","merged"]).has(i)&&a++}return a}(e.projectId);if(j>=s)throw Error(`Project "${e.projectId}" already has ${j} active sessions (max ${s}). Kill or cleanup existing sessions first.`);let N=(_=(k=e.profile??O.defaultProfile)?O.agentProfiles?.[k]:void 0,x=(w=cG(e.agent??_?.agent??O.agent??t.defaults.agent))===cG(O.agent??t.defaults.agent),S=e.model??(e.agent?void 0:_?.model)??(x?O.agentConfig?.model:void 0),{profileName:k,agentName:w,model:S,reasoningEffort:e.reasoningEffort??(e.agent?void 0:_?.reasoningEffort)??(x?O.agentConfig?.reasoningEffort:void 0),permissions:_?.permissions??(x?O.agentConfig?.permissions:void 0)??"skip"}),E=f(O,N.agentName);if(!E.runtime)throw Error(`Runtime plugin '${O.runtime??t.defaults.runtime}' not found`);if(!E.agent)throw Error(`Agent plugin '${N.agentName}' not found`);if(e.issueId&&E.tracker)try{h=await E.tracker.getIssue(e.issueId,O)}catch(t){if((0,n.isIssueNotFoundError)(t));else throw Error(`Failed to fetch issue ${e.issueId}: ${t}`,{cause:t})}let A=l(O);t.configPath&&uH(t.configPath,O.path);let D=function(e,t){let i=0,n=RegExp(`^${t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}-(?:.*?-)??(\\d+)$`);for(let t of e){let e=t.match(n);if(e){let t=parseInt(e[1],10);t>i&&(i=t)}}return i+1}(cB(A),O.sessionPrefix),z=function(e){let t=e.toLowerCase().replace(/[^a-z0-9\s]/g,"").split(/\s+/).filter(e=>e.length>1&&!c4.has(e)),i=[],n=0;for(let e of t){if(i.length>=4||n+e.length+1>30)break;i.push(e),n+=e.length+1}return i.join("-")||"task"}(e.prompt??e.issueId??"");for(let e=0;e<10&&(g=`${O.sessionPrefix}-${z}-${D}`,t.configPath&&(v=uK(t.configPath,`${O.sessionPrefix}-${z}`,D)),!cF(A,g));e++)if(D++,9===e)throw Error(`Failed to reserve session ID after 10 attempts (prefix: ${O.sessionPrefix})`);g=`${O.sessionPrefix}-${z}-${D}`,t.configPath&&(v=uK(t.configPath,`${O.sessionPrefix}-${z}`,D));let P=e.taskId??`t-${g}`,U=e.attemptId??`a-${g}`,T=e.parentTaskId,Z=e.baseBranch??(T?(i=e.projectId,I=(function(e){let i=[];for(let[n,a]of Object.entries(t.projects)){if(e&&n!==e)continue;let t=l(a);if((0,r.existsSync)(t))for(let e of cB(t)){let r=cz(t,e);r&&i.push({sessionId:e,projectId:n,project:a,sessionsDir:t,raw:r})}}return i})(i).filter(e=>e.raw.taskId===T&&!!e.raw.branch).sort((e,t)=>{let i=Date.parse(e.raw.createdAt??"")||0;return(Date.parse(t.raw.createdAt??"")||0)-i}),I[0]?.raw.branch):void 0)??O.defaultBranch;if(e.branch)y=e.branch;else if(E.workspace)if(e.issueId&&E.tracker&&h)y=E.tracker.branchName(e.issueId,O);else if(e.issueId){let t=e.issueId,i=/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(t)&&!t.includes("..")?t:t.toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,60).replace(/^-+|-+$/g,"");y=`feat/${i||g}`}else{let e=P.replace(/[^a-zA-Z0-9._-]+/g,"-").slice(0,40),t=U.replace(/[^a-zA-Z0-9._-]+/g,"-").slice(0,20);y=`task/${e}-${t}`}else y=Z;let C=O.path;if(E.workspace)try{let t=await E.workspace.create({projectId:e.projectId,project:O,sessionId:g,branch:y,baseBranch:Z});if(C=t.path,E.workspace.postCreate)try{await E.workspace.postCreate(t,O)}catch(e){if(C!==O.path)try{await E.workspace.destroy(C)}catch{}throw e}}catch(e){try{cR(A,g,!1)}catch{}throw e}else try{await cX(O.path,y)}catch(e){try{cR(A,g,!1)}catch{}throw e}if(e.issueId&&E.tracker&&h)try{$=await E.tracker.generatePrompt(e.issueId,O)}catch{}let L=cK({project:O,projectId:e.projectId,issueId:e.issueId,issueContext:$,userPrompt:e.prompt,attachments:e.attachments}),R={...t.defaults.mcpServers,...O.mcpServers},M=Object.keys(R).length>0?R:void 0,B=C,F={sessionId:g,projectConfig:O,issueId:e.issueId,prompt:L??e.prompt,permissions:N.permissions,model:N.model,reasoningEffort:N.reasoningEffort,attachments:e.attachments,mcpServers:M,workspacePath:B};try{F.workspacePath=B=cQ(C,O),E.agent.setupWorkspaceHooks&&await E.agent.setupWorkspaceHooks(B,{dataDir:A,sessionId:g,mcpServers:M});let e=E.agent.getLaunchCommand(F),t=E.agent.getEnvironment(F);b=await E.runtime.create({sessionId:v??g,workspacePath:B,launchCommand:e,environment:{...t,CO_SESSION:g,CO_DATA_DIR:A,CO_SESSION_NAME:g,CO_AGENT_CWD:B,...v&&{CO_TMUX_NAME:v}}})}catch(e){if(E.workspace&&C!==O.path)try{await E.workspace.destroy(C)}catch{}try{cR(A,g,!1)}catch{}throw e}let J={id:g,projectId:e.projectId,status:"spawning",activity:"active",branch:y,issueId:e.issueId??null,pr:null,workspacePath:C,runtimeHandle:b,agentInfo:null,createdAt:new Date,lastActivityAt:new Date,metadata:{}},q=function(e,t){let i=t.devServer;if(!i?.command)return null;let n=d.get(e);if(n&&!n.process.killed)return n.logPath;let s=(0,a.join)((0,o.homedir)(),".conductor","dev-servers");(0,r.mkdirSync)(s,{recursive:!0});let l=(0,a.join)(s,`${e}.log`),u=(0,r.createWriteStream)(l,{flags:"a"}),c=(0,cJ.spawn)("sh",["-lc",i.command],{cwd:i.cwd??t.path,detached:!0,stdio:["ignore","pipe","pipe"],env:process.env});return c.stdout?.pipe(u),c.stderr?.pipe(u),c.unref(),d.set(e,{process:c,logPath:l}),l}(e.projectId,O);try{let t;cP(A,g,{worktree:C,branch:y,status:"spawning",tmuxName:v,issue:e.issueId,project:e.projectId,agent:E.agent.name,model:N.model,reasoningEffort:N.reasoningEffort,permissions:N.permissions,profile:N.profileName,taskId:P,attemptId:U,parentTaskId:T,attemptStatus:"active",retryOfSessionId:e.retryOfSessionId,baseBranch:Z,prompt:e.prompt??L??void 0,createdAt:new Date().toISOString(),runtimeHandle:JSON.stringify(b)}),cU(A,g,{devServerLog:q??""});let i=e.prompt?.trim()||(e.issueId?`Start work on issue ${e.issueId}.`:"");(i||(e.attachments?.length??0)>0)&&c(A,g,{kind:"user_message",text:i||"Shared reference attachments.",attachments:e.attachments?.map(e=>e.path),model:N.model,reasoningEffort:N.reasoningEffort,source:"spawn"}),c(A,g,{kind:"system_message",text:(u=E.agent.name,m=N.model,p=N.reasoningEffort,t=[u],m?.trim()&&t.push(m.trim()),p?.trim()&&t.push(`reasoning ${p.trim().toLowerCase()}`),`Session launched with ${t.join(" · ")}.`),source:"session_started"}),E.agent.postLaunchSetup&&await E.agent.postLaunchSetup(J)}catch(e){try{await E.runtime.destroy(b)}catch{}if(E.workspace&&C!==O.path)try{await E.workspace.destroy(C)}catch{}try{cR(A,g,!1)}catch{}throw e}if("post-launch"===E.agent.promptDelivery&&F.prompt){let e=E.runtime,t=F.prompt;if(!e||!t)return J;(async()=>{try{let i=Date.now(),n=!1;for(await new Promise(e=>setTimeout(e,3e3));Date.now()-i<9e4;){try{if(!await e.isAlive(b))return void console.log(`[session-manager] ${g}: runtime exited before initial prompt delivery`)}catch{}try{let t=await e.getOutput(b,20);if(/[❯>$]\s*$/.test(t.trim())||/Try "/.test(t)){n=!0;break}}catch{}await new Promise(e=>setTimeout(e,1e3))}try{if(!await e.isAlive(b))return void console.log(`[session-manager] ${g}: skipping initial prompt, runtime is no longer alive`)}catch{}n||console.log(`[session-manager] ${g}: agent prompt not detected after 90s, attempting send`),await e.sendMessage(b,t)}catch{}})()}return J}async function v(e){let i=(function(e){let i=[];for(let[n,a]of Object.entries(t.projects)){if(e&&n!==e)continue;let o=uB(t.configPath,a.path);if((0,r.existsSync)(o))for(let e of cB(o))i.push({sessionName:e,projectId:n})}return i})(e).map(async({sessionName:e,projectId:i})=>{let n,o,s=t.projects[i];if(!s)return null;let u=l(s),c=cz(u,e);if(!c)return null;try{let t=(0,a.join)(u,e),i=(0,r.statSync)(t);n=i.birthtime,o=i.mtime}catch{}let d=c3(e,c,n,o,i),p=f(s,c.agent),h=new Promise(e=>setTimeout(e,2e3));return await Promise.race([m(d,e,s,p),h]),d});return(await Promise.all(i)).filter(e=>null!==e)}async function y(e){for(let i of Object.values(t.projects)){let t,n,o=l(i),s=cz(o,e);if(!s)continue;try{let i=(0,a.join)(o,e),s=(0,r.statSync)(i);t=s.birthtime,n=s.mtime}catch{}let u=c3(e,s,t,n),c=f(i,s.agent);return await m(u,e,i,c),u}return null}async function $(e){let n,a=null,o=null;for(let i of Object.values(t.projects)){let t=l(i),r=cz(t,e);if(r){a=r,o=t,n=i;break}}if(!a||!o)throw Error(`Session ${e} not found`);if(a.runtimeHandle){let e=c6(a.runtimeHandle);if(e){let r=i.get("runtime",e.runtimeName??(n?n.runtime??t.defaults.runtime:t.defaults.runtime));if(r)try{await r.destroy(e)}catch{}else if(e.id)try{await cH("tmux",["kill-session","-t",e.id],{timeout:1e4})}catch{}}}let s=a.worktree,u=n&&s===n.path;if(s&&!u){n&&(0,r.existsSync)(s)&&(await c0(s)&&await c1(n.cleanupScript,s,"cleanup"),await c1(n.archiveScript,s,"archive"));let a=n?f(n).workspace:i.get("workspace",t.defaults.workspace);if(a)try{await a.destroy(s)}catch{}else await cY(s,n,e)}try{cR(o,e,!0)}catch(t){let e=t instanceof Error?t.message.toLowerCase():"";if(!(e.includes("not found")||e.includes("enoent")||e.includes("no such file or directory")))throw t}}async function b(e,i){let r={killed:[],skipped:[],errors:[]};for(let a of(await v(e)))try{if("orchestrator"===a.metadata.role||a.id.endsWith("-orchestrator")){r.skipped.push(a.id);continue}let e=t.projects[a.projectId];if(!e){r.skipped.push(a.id);continue}let o=f(e),s=!1;if(a.pr&&o.scm)try{let e=await o.scm.getPRState(a.pr);(e===n.PR_STATE.MERGED||e===n.PR_STATE.CLOSED)&&(s=!0)}catch{}if(!s&&a.issueId&&o.tracker)try{await o.tracker.isCompleted(a.issueId,e)&&(s=!0)}catch{}if(!s&&a.runtimeHandle&&o.runtime)try{await o.runtime.isAlive(a.runtimeHandle)||(s=!0)}catch{}s?(i?.dryRun||await $(a.id),r.killed.push(a.id)):r.skipped.push(a.id)}catch(e){r.errors.push({sessionId:a.id,error:e instanceof Error?e.message:String(e)})}return r}async function k(e,n,r){let a,o=u(e);if(!o)throw Error(`Session ${e} not found`);let s=o.raw;if(s.runtimeHandle){let t=c6(s.runtimeHandle);if(!t)throw Error(`Corrupted runtime handle for session ${e}`);a=t}else a={id:e,runtimeName:t.defaults.runtime,data:{}};let l=t.projects[s.project??""],d=i.get("runtime",a.runtimeName??(l?l.runtime??t.defaults.runtime:t.defaults.runtime));if(!d)throw Error(`No runtime plugin for session ${e}`);let f={},m=r?.model?.trim(),p=r?.reasoningEffort?.trim().toLowerCase();m&&(f.model=m),p&&(f.reasoningEffort=p),Object.keys(f).length>0&&cU(o.sessionsDir,e,f);let h=function(e,t){let i=e.trim(),n=[...new Set((t?.attachments??[]).map(e=>e.trim()).filter(Boolean))];if(0===n.length)return i;let r=[];return i&&r.push(i,""),r.push("## Reference Attachments","The following files are attached to this follow-up. Read them directly from disk before responding or making changes.",...n.map(e=>`- \`${e}\``)),r.join("\n")}(n,r);if(!h.trim())throw Error("Message is required");if(await d.sendMessage(a,h),m||p){let t=[];m&&t.push(`model ${m}`),p&&t.push(`reasoning ${p}`),c(o.sessionsDir,e,{kind:"system_message",text:`Session preferences updated: ${t.join(" · ")}.`,source:"session_preferences"})}let g=(r?.conversationText??n).trim();(g||(r?.attachments?.length??0)>0)&&c(o.sessionsDir,e,{kind:"user_message",text:g||"Shared reference attachments.",attachments:r?.attachments,model:m??s.model??void 0,reasoningEffort:p??s.reasoningEffort??void 0,source:r?.conversationSource??"follow_up"})}async function _(e,t){let i=await y(e);if(i||(i=(await v()).filter(t=>t.metadata.taskId===e).sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime())[0]??null),!i)throw Error(`No session/task found for retry target: ${e}`);let n=u(i.id);if(!n)throw Error(`Retry source session not found on disk: ${i.id}`);let r=n.raw.taskId??i.metadata.taskId??e,a=`a-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,o=n.raw.prompt??i.metadata.prompt??i.issueId??i.metadata.summary??"";if(!o)throw Error(`Cannot retry ${i.id}: no prompt/issue context found in metadata`);let s=await g({projectId:i.projectId,issueId:i.issueId??void 0,prompt:i.issueId?n.raw.prompt??void 0:o,agent:t?.agent??n.raw.agent??void 0,model:t?.model??n.raw.model??void 0,reasoningEffort:t?.reasoningEffort??n.raw.reasoningEffort??void 0,baseBranch:t?.baseBranch??n.raw.branch??i.branch??void 0,profile:t?.profile??n.raw.profile??void 0,taskId:r,attemptId:a,parentTaskId:n.raw.parentTaskId??void 0,retryOfSessionId:i.id});return cU(n.sessionsDir,i.id,{attemptStatus:"archived",supersededByAttemptId:a}),s}return{spawn:g,retry:_,taskGraph:async function(e){let t=await v(),i=t.filter(t=>t.metadata.taskId===e).sort((e,t)=>e.createdAt.getTime()-t.createdAt.getTime());if(0===i.length)return null;let n=new Set;for(let i of t){if(i.metadata.parentTaskId!==e)continue;let t=i.metadata.taskId;t&&n.add(t)}let r=i.map(e=>({attemptId:e.metadata.attemptId??`a-${e.id}`,sessionId:e.id,status:e.status,agent:e.metadata.agent,model:e.metadata.model,reasoningEffort:e.metadata.reasoningEffort,branch:e.branch,createdAt:e.createdAt}));return{taskId:e,parentTaskId:i[0]?.metadata.parentTaskId??null,childrenTaskIds:[...n],attempts:r}},submitFeedback:async function(e,t){let i=u(e);if(!i)throw Error(`Session ${e} not found`);let n=["Reviewer feedback received. Apply the requested changes and continue.\n",t.trim()].join("\n");await k(e,n,{conversationText:t.trim(),conversationSource:"feedback"}),cU(i.sessionsDir,e,{status:"working",reviewDecision:"changes_requested"})},restore:async function(e){let i,a,o,s=null,u=null,d=!1;for(let[n,r]of Object.entries(t.projects)){let t=l(r),o=cz(t,e);if(o){s=o,u=t,i=r,a=n;break}}if(!s)for(let[n,r]of Object.entries(t.projects)){let t=l(r),o=cM(t,e);if(o){s=o,u=t,i=r,a=n,d=!0;break}}if(!s||!u||!i||!a)throw Error(`Session ${e} not found`);d&&cP(u,e,{worktree:s.worktree??"",branch:s.branch??"",status:s.status??"killed",role:s.role,tmuxName:s.tmuxName,issue:s.issue,pr:s.pr,summary:s.summary,project:s.project,agent:s.agent,createdAt:s.createdAt,runtimeHandle:s.runtimeHandle,ciStatus:s.ciStatus,reviewDecision:s.reviewDecision,prState:s.prState,mergeReadiness:s.mergeReadiness,prTitle:s.prTitle,prHeadRef:s.prHeadRef,prBaseRef:s.prBaseRef,prDraft:s.prDraft,cost:s.cost,model:s.model,reasoningEffort:s.reasoningEffort,permissions:s.permissions,taskId:s.taskId,attemptId:s.attemptId,parentTaskId:s.parentTaskId,attemptStatus:s.attemptStatus,retryOfSessionId:s.retryOfSessionId,supersededByAttemptId:s.supersededByAttemptId,profile:s.profile,baseBranch:s.baseBranch,prompt:s.prompt,devServerLog:s.devServerLog});let m=c3(e,s),p=f(i,s.agent);if(await h(m,p,!0),!(0,n.isRestorable)(m)){if(n.NON_RESTORABLE_STATUSES.has(m.status))throw new n.SessionNotRestorableError(e,`status is "${m.status}"`);throw new n.SessionNotRestorableError(e,"session is not in a terminal state")}if(!p.runtime)throw Error(`Runtime plugin '${i.runtime??t.defaults.runtime}' not found`);if(!p.agent)throw Error(`Agent plugin '${i.agent??t.defaults.agent}' not found`);let g=s.worktree||i.path;if(!(p.workspace?.exists?await p.workspace.exists(g):(0,r.existsSync)(g))){if(!p.workspace?.restore)throw new n.WorkspaceMissingError(g,"workspace plugin does not support restore");if(!m.branch)throw new n.WorkspaceMissingError(g,"branch metadata is missing");try{let t=await p.workspace.restore({projectId:a,project:i,sessionId:e,branch:m.branch},g);p.workspace.postCreate&&await p.workspace.postCreate(t,i)}catch(e){throw new n.WorkspaceMissingError(g,`restore failed: ${e instanceof Error?e.message:String(e)}`)}}if(m.runtimeHandle)try{await p.runtime.destroy(m.runtimeHandle)}catch{}let v={...t.defaults.mcpServers,...i.mcpServers},y=Object.keys(v).length>0?v:void 0,$=g,b={sessionId:e,projectConfig:i,issueId:m.issueId??void 0,permissions:s.permissions??i.agentConfig?.permissions??"skip",model:s.model??i.agentConfig?.model,reasoningEffort:s.reasoningEffort??i.agentConfig?.reasoningEffort,mcpServers:y,workspacePath:$};b.workspacePath=$=cQ(g,i),p.agent.setupWorkspaceHooks&&await p.agent.setupWorkspaceHooks($,{dataDir:u,sessionId:e,mcpServers:y}),o=p.agent.getRestoreCommand?await p.agent.getRestoreCommand(m,i)??p.agent.getLaunchCommand(b):p.agent.getLaunchCommand(b);let k=p.agent.getEnvironment(b),_=s.tmuxName,w=await p.runtime.create({sessionId:_??e,workspacePath:$,launchCommand:o,environment:{...k,CO_SESSION:e,CO_DATA_DIR:u,CO_SESSION_NAME:e,CO_AGENT_CWD:$,..._&&{CO_TMUX_NAME:_}}}),x=new Date().toISOString();cU(u,e,{status:"spawning",runtimeHandle:JSON.stringify(w),restoredAt:x}),c(u,e,{kind:"system_message",text:"Session restored and reattached to a fresh runtime.",source:"restore"});let S={...m,status:"spawning",activity:"active",workspacePath:g,runtimeHandle:w,restoredAt:new Date(x)};if(p.agent.postLaunchSetup)try{await p.agent.postLaunchSetup(S)}catch{}return S},list:v,get:y,kill:$,cleanup:b,send:async function(e,t,i){await k(e,t,i)},getConversation:async function(e){let i=u(e);if(i)return cC(i.sessionsDir,e);for(let i of Object.values(t.projects)){let t=cL(l(i),e);if(t.length>0)return t}return[]},getOutput:async function(e,n=500){let r,a=null;for(let i of Object.values(t.projects)){let t=cz(l(i),e);if(t){a=t;break}}if(!a)throw Error(`Session ${e} not found`);if(a.runtimeHandle){let t=c6(a.runtimeHandle);if(!t)throw Error(`Corrupted runtime handle for session ${e}`);r=t}else r={id:e,runtimeName:t.defaults.runtime,data:{}};let o=t.projects[a.project??""],s=i.get("runtime",r.runtimeName??(o?o.runtime??t.defaults.runtime:t.defaults.runtime));if(!s)throw Error(`No runtime plugin for session ${e}`);return s.getOutput(r,n)}}}e.s(["createSessionManager",()=>c8],31212);let c5=(0,cq.promisify)(cJ.execFile),c7=new Set(["killed","terminated","done","cleanup","merged","errored"]);function de(e){if(void 0===e)return null;if("number"==typeof e)return{type:"count",value:e};let t=String(e).match(/^(\d+)(m|min|s|sec|h|hr)?$/);if(!t)return null;let i=parseInt(t[1],10),n=t[2];return n?{type:"duration",value:i*(n.startsWith("h")?36e5:n.startsWith("m")?6e4:1e3)}:{type:"count",value:i}}async function dt(e){if(!e.owner||!e.repo||!e.number)return null;try{let{stdout:t}=await c5("gh",["pr","view",String(e.number),"--repo",`${e.owner}/${e.repo}`,"--json","title,headRefName,baseRefName,isDraft,url,state,mergeStateStatus"],{timeout:2e4,maxBuffer:2097152}),i=JSON.parse(t),n={title:i.title??e.title,branch:i.headRefName??e.branch,baseBranch:i.baseRefName??e.baseBranch,isDraft:i.isDraft??e.isDraft,url:i.url??e.url};return i.state&&(n.state=i.state),i.mergeStateStatus&&(n.mergeStateStatus=i.mergeStateStatus),n}catch{return null}}function di(e){let{config:t,sessionManager:i,registry:n}=e,r=null,a=!1,o=!1,s=new Map,l=new Set;function u(e){return n?n.get("runtime",e.runtime??t.defaults.runtime):null}async function c(e,t){let i=u(t);if(!i||!e.runtimeHandle)return!1;try{return await i.isAlive(e.runtimeHandle)}catch{return!1}}async function d(e,t,i){if(!e.pr)return;let n=null;if(e.branch)try{let r=await i.detectPR(e,t);r&&(n=r)}catch{}if(!n){let t=await dt(e.pr);t&&(n={...e.pr,...t,title:t.title??e.pr.title,branch:t.branch??e.pr.branch,baseBranch:t.baseBranch??e.pr.baseBranch,isDraft:t.isDraft??e.pr.isDraft,url:t.url??e.pr.url})}if(!n)return;e.pr=n;let r={pr:n.url,prTitle:n.title??"",prHeadRef:n.branch??"",prBaseRef:n.baseBranch??"",prDraft:n.isDraft?"1":"0"},a=n;a.state&&(r.prState=a.state.toLowerCase()),a.mergeStateStatus&&(r.mergeStateStatus=a.mergeStateStatus),g(e,r)}async function f(e){let i=function(e){if(!n)return[];let i=t.notificationRouting[e]??t.defaults.notifiers,r=[];for(let e of i){let t=n.get("notifier",e);t&&r.push(t)}return r}(e.priority);await Promise.allSettled(i.map(t=>t.notify(e)))}function m(e,t,i,n,r={}){return{id:(0,uT.randomUUID)(),type:e,priority:t,sessionId:i.id,projectId:i.projectId,timestamp:new Date,message:n,data:r}}function p(i,n){let r=t.projects[i.projectId];r&&(cU(uB(t.configPath,r.path),i.id,{status:n}),e.onStatusChange?.(i.id,n,i.projectId))}function h(e,i){let n=t.projects[e.projectId];n&&cU(uB(t.configPath,n.path),e.id,{pr:i.url})}function g(e,i){let n=t.projects[e.projectId];n&&cU(uB(t.configPath,n.path),e.id,i)}async function v(e,t,n,r){if(!t.auto)return;let a=(r.reactionCounts[e]??0)+1;r.reactionCounts[e]=a,r.reactionFirstSeen[e]||(r.reactionFirstSeen[e]=Date.now());let o=de(t.escalateAfter),s=!1;if(o&&("count"===o.type&&a>o.value?s=!0:"duration"===o.type&&Date.now()-r.reactionFirstSeen[e]>o.value&&(s=!0)),void 0!==t.retries&&a>t.retries&&!s&&(s=!0),s)return void await f(m("reaction.escalated","urgent",n,`Reaction "${e}" escalated after ${a} attempts on ${n.id}`,{reactionName:e,attempts:a}));if("send-to-agent"===t.action&&t.message)try{await i.send(n.id,t.message),await f(m("reaction.triggered","info",n,`Sent "${e}" fix to ${n.id}`,{reactionName:e,action:"send-to-agent"}))}catch{}else"notify"===t.action&&await f(m("reaction.triggered",t.priority??"info",n,t.message??`Reaction "${e}" triggered on ${n.id}`,{reactionName:e,action:"notify"}))}function y(e){let i={...t.reactions};if(e.reactions)for(let[t,n]of Object.entries(e.reactions))i[t]&&(i[t]={...i[t],...n});return i}async function $(e){let r;if(c7.has(e.status))return;let a=t.projects[e.projectId];if(!a)return;let o=((r=s.get(e.id))||(r={lastStatus:e.status,prDetected:null!==e.pr,lastCIStatus:null,lastReviewDecision:null,reactionCounts:{},reactionFirstSeen:{},lastCheckedAt:Date.now()},s.set(e.id,r)),r),l=n&&a.scm?n.get("scm",a.scm.plugin):null,$=y(a),b=o.lastStatus,k=e.createdAt instanceof Date?e.createdAt.getTime():"number"==typeof e.createdAt?e.createdAt:Date.now(),_=Date.now()-k,w=Number(e.runtimeHandle?.data?.createdAt??Date.now()),x=Math.max(_,Date.now()-w);if("exited"!==e.activity||"spawning"!==e.status||!(x<12e4)){if("spawning"===e.status&&x>6e5){console.log(`[lifecycle] ${e.id}: spawn timeout (${Math.round(x/6e4)}m) — terminating zombie session`),p(e,"killed"),o.lastStatus="killed",await f(m("session.exited","urgent",e,`Session ${e.id} killed — spawn timeout after ${Math.round(x/6e4)}m`));let t=u(a);if(e.runtimeHandle&&t)try{await t.destroy(e.runtimeHandle)}catch{}return}if("exited"===e.activity&&"spawning"===e.status&&x>=12e4&&!e.metadata.autoRecoverAttempted&&(e.metadata.prompt||e.issueId)){console.log(`[lifecycle] ${e.id}: auto-recover attempt (exited during spawn)`),g(e,{autoRecoverAttempted:"1"});try{await i.restore(e.id),await f(m("session.restored","info",e,`Session ${e.id} auto-recovered after spawn failure`));return}catch(i){let t=i instanceof Error?i.message:String(i);console.warn(`[lifecycle] ${e.id}: auto-recover failed: ${t}`),p(e,"errored"),o.lastStatus="errored",g(e,{autoRecoverError:t}),await f(m("session.exited","urgent",e,`Session ${e.id} auto-recover failed: ${t}`));return}}if("exited"===e.activity&&!c7.has(e.status)){let t="spawning"!==b;if(t&&!e.pr&&l&&e.branch)try{let t=await l.detectPR(e,a);t&&(e.pr=t,o.prDetected=!0,h(e,t))}catch{}let i=t?e.pr?"pr_open":"done":"killed";p(e,i),o.lastStatus=i,t?(console.log(`[lifecycle] ${e.id}: exited after working → ${i}`),await f(m("session.exited","info",e,`Session ${e.id} completed (exited → ${i})`))):(await f(m("session.exited","urgent",e,`Session ${e.id} exited`)),$["agent-exited"]&&await v("agent-exited",$["agent-exited"],e,o));return}if("waiting_input"===e.activity&&"needs_input"!==b){p(e,"needs_input"),o.lastStatus="needs_input",await f(m("session.needs_input","urgent",e,`Session ${e.id} is waiting for input`)),$["agent-needs-input"]&&await v("agent-needs-input",$["agent-needs-input"],e,o);return}if("ready"===e.activity&&!e.pr&&!c7.has(b)&&"spawning"!==b){if(await c(e,a))return;if(l&&e.branch)try{let t=await l.detectPR(e,a);t&&(e.pr=t,o.prDetected=!0,h(e,t))}catch{}let t=e.pr?"pr_open":"done";console.log(`[lifecycle] ${e.id}: activity=ready, prev=${b} → ${t}`),p(e,t),o.lastStatus=t,await f(m("session.exited","info",e,`Session ${e.id} completed (was: ${b} → ${t})`)),e.pr&&await f(m("pr.created","info",e,`PR #${e.pr.number} opened: ${e.pr.title}`,{url:e.pr.url,branch:e.pr.branch}));return}if(e.pr&&("idle"===e.activity||"exited"===e.activity)&&Date.now()-e.lastActivityAt.getTime()>12e4&&"pr_open"===e.status){console.log(`[lifecycle] Session ${e.id} idle after PR — marking done`),p(e,"done"),o.lastStatus="done";return}if("blocked"===e.activity){let t=$["agent-stuck"]?.threshold,i=t?de(t)?.value??6e5:6e5,n=Date.now()-e.lastActivityAt.getTime();if(n>i&&"stuck"!==b){p(e,"stuck"),o.lastStatus="stuck",await f(m("session.stuck","urgent",e,`Session ${e.id} appears stuck (idle ${Math.round(n/6e4)}m)`)),$["agent-stuck"]&&await v("agent-stuck",$["agent-stuck"],e,o);return}}if(!e.pr&&l&&e.branch)try{let t=await l.detectPR(e,a);t&&(e.pr=t,o.prDetected=!0,h(e,t),p(e,"pr_open"),o.lastStatus="pr_open",await f(m("pr.created","info",e,`PR #${t.number} opened: ${t.title}`,{url:t.url,branch:t.branch})))}catch(t){console.warn(`[lifecycle] PR detection failed for ${e.id}: ${t.message}`)}if(e.pr&&l){if(e.pr.title&&e.pr.baseBranch&&e.pr.branch||await d(e,a,l),l.getDeploymentPreviewUrl)try{let t=await l.getDeploymentPreviewUrl(e.pr);t&&g(e,{previewUrl:t})}catch{}let t=e.pr;try{let i=await l.getPRState(t);if(g(e,{prState:i}),"merged"===i){p(e,"merged"),o.lastStatus="merged",await f(m("pr.merged","info",e,`PR #${t.number} merged`,{url:t.url}));return}if("closed"===i){p(e,"done"),o.lastStatus="done",await f(m("pr.closed","info",e,`PR #${t.number} closed`,{url:t.url}));return}}catch(t){console.warn(`[lifecycle] PR state check failed for ${e.id}: ${t.message}`)}try{let i=await l.getCISummary(t),n=o.lastCIStatus;o.lastCIStatus=i,g(e,{ciStatus:i}),"failing"===i&&"failing"!==n?(p(e,"ci_failed"),o.lastStatus="ci_failed",await f(m("ci.failing","warning",e,`CI failing on PR #${t.number}`,{url:t.url})),$["ci-failed"]&&await v("ci-failed",$["ci-failed"],e,o)):"passing"===i&&"failing"===n&&("ci_failed"===e.status&&(p(e,"pr_open"),o.lastStatus="pr_open"),await f(m("ci.passing","info",e,`CI passing on PR #${t.number}`,{url:t.url})),delete o.reactionCounts["ci-failed"],delete o.reactionFirstSeen["ci-failed"])}catch(t){console.warn(`[lifecycle] CI check failed for ${e.id}: ${t.message}`)}try{let i=await l.getReviewDecision(t),n=o.lastReviewDecision;o.lastReviewDecision=i,g(e,{reviewDecision:i}),"changes_requested"===i&&"changes_requested"!==n?(p(e,"changes_requested"),o.lastStatus="changes_requested",await f(m("review.changes_requested","action",e,`Changes requested on PR #${t.number}`,{url:t.url})),$["changes-requested"]&&await v("changes-requested",$["changes-requested"],e,o)):"approved"===i&&"approved"!==n&&(p(e,"approved"),o.lastStatus="approved",await f(m("review.approved","info",e,`PR #${t.number} approved`,{url:t.url})))}catch(t){console.warn(`[lifecycle] Review check failed for ${e.id}: ${t.message}`)}try{let i=await l.getMergeability(t);g(e,{mergeReadiness:JSON.stringify(i)}),i.mergeable?"mergeable"!==o.lastStatus&&(p(e,"mergeable"),o.lastStatus="mergeable",await f(m("merge.ready","action",e,`PR #${t.number} is ready to merge`,{url:t.url,blockers:[]})),$["approved-and-green"]&&await v("approved-and-green",$["approved-and-green"],e,o)):i.noConflicts||($["merge-conflicts"]&&await v("merge-conflicts",$["merge-conflicts"],e,o),await f(m("merge.conflicts","warning",e,`PR #${t.number} has merge conflicts`,{url:t.url,blockers:i.blockers})))}catch(t){console.warn(`[lifecycle] Merge check failed for ${e.id}: ${t.message}`)}}if(e.agentInfo){let t={};e.agentInfo.summary&&(t.summary=e.agentInfo.summary),e.agentInfo.cost&&(t.cost=JSON.stringify(e.agentInfo.cost)),Object.keys(t).length>0&&g(e,t)}if(o.lastCheckedAt=Date.now(),"spawning"===b){if("active"===e.activity)p(e,"working"),o.lastStatus="working",await f(m("session.working","info",e,`Session ${e.id} is working`));else if("ready"===e.activity){if(await c(e,a)){p(e,"working"),o.lastStatus="working",await f(m("session.working","info",e,`Session ${e.id} is working`));return}if(x<12e4)return;if(!e.pr&&l&&e.branch)try{let t=await l.detectPR(e,a);t&&(e.pr=t,o.prDetected=!0,h(e,t))}catch{}let t=e.pr?"pr_open":"done";console.log(`[lifecycle] ${e.id}: spawning → ${e.activity} (missed active window) → ${t}`),p(e,t),o.lastStatus=t,await f(m("session.exited","info",e,`Session ${e.id} completed (spawning → ${t})`))}}if(!c7.has(e.status)&&"spawning"!==e.status&&!e.pr&&("idle"===e.activity||null===e.activity)){let t=Date.now()-e.lastActivityAt.getTime();t>18e5&&(console.log(`[lifecycle] ${e.id}: stale watchdog → done (status=${e.status}, activity=${String(e.activity)}, idle=${Math.round(t/6e4)}m)`),p(e,"done"),o.lastStatus="done",await f(m("session.exited","warning",e,`Session ${e.id} force-completed by watchdog (idle ${Math.round(t/6e4)}m)`,{reason:"stale_watchdog"})))}}}async function b(){if(a&&!o){o=!0;try{let e=await i.list(),n=e.filter(e=>!c7.has(e.status));n.length>0&&console.log(`[lifecycle] Tick: ${n.length} active session(s): ${n.map(e=>`${e.id}[${e.status}/${e.activity??"?"}]`).join(", ")}`);for(let t=0;t<e.length;t+=3){let i=e.slice(t,t+3);await Promise.allSettled(i.map(e=>$(e)))}let r=new Map;for(let t of e){let e=r.get(t.projectId)??[];e.push(t),r.set(t.projectId,e)}for(let[e,i]of r){let n=i.every(e=>c7.has(e.status));if(n&&i.length>0){if(l.has(e))continue;l.add(e);let n=t.projects[e];if(n&&y(n)["all-complete"]){let t=i[0];await f(m("summary.all_complete","info",t,`All ${i.length} sessions complete for ${e}`,{sessionCount:i.length,statuses:i.map(e=>({id:e.id,status:e.status}))}))}}else n||l.delete(e)}let a=new Set(e.map(e=>e.id));for(let e of s.keys())a.has(e)||s.delete(e)}catch(e){console.error(`[lifecycle] Tick failed: ${e instanceof Error?e.message:String(e)}`)}finally{o=!1}}}return{start(e){if(a)return;a=!0;let t=e??3e4;console.log(`[lifecycle] Starting poll loop (every ${t/1e3}s)`),b(),r=setInterval(()=>void b(),t)},stop(){a=!1,r&&(clearInterval(r),r=null),console.log("[lifecycle] Stopped")},getStates(){let e=new Map;for(let[t,i]of s)e.set(t,i.lastStatus);return e},async check(e){let t=await i.get(e);t&&await $(t)}}}e.s(["createLifecycleManager",()=>di],28738);var dn=e.i(12714);function dr(e,t){if(!e.startsWith("https://")&&!e.startsWith("http://"))throw Error(`[${t}] Invalid url: must be http(s), got "${e}"`)}async function da(e){let t=await (0,dn.open)(e,"r");try{let{size:e}=await t.stat();if(0===e)return null;let i=[],n=0,r=e;for(;r>0;){let e=Math.min(4096,r);r-=e;let a=Buffer.alloc(e);await t.read(a,0,e,r),i.unshift(a),n+=e;let o=Buffer.concat(i,n).toString("utf-8").split("\n");for(let e=o.length-1;e>=0;e--){let t=o[e].trim();if(t&&(e>0||0===r))return t}}return Buffer.concat(i,n).toString("utf-8").trim()||null}finally{await t.close()}}async function ds(e){try{let[t,i]=await Promise.all([da(e),(0,dn.stat)(e)]);if(!t)return null;let n=JSON.parse(t);if("object"==typeof n&&null!==n&&!Array.isArray(n))return{lastType:"string"==typeof n.type?n.type:null,modifiedAt:i.mtime};return{lastType:null,modifiedAt:i.mtime}}catch{return null}}e.s(["readLastJsonlEntry",()=>ds,"validateUrl",()=>dr],77646);let dl={intake:["Inbox","Backlog","To do","To Do","Todo","Ideas"],ready:["Ready to Dispatch","Ready"],dispatching:["Dispatching"],inProgress:["In Progress","Doing","In Development"],review:["Review","In Review"],done:["Done"],blocked:["Blocked"]},du=["intake","ready","dispatching","inProgress","review","done","blocked"];function dc(e){return e.trim().toLowerCase()}function dd(e,t){if(!t)return e;let i={...e};for(let e of du){let n=t[e];Array.isArray(n)&&n.length>0&&(i[e]=n)}return i}function df(e,t){return dd(dd(dl,e),t)}function dm(e){let t=e.split("\n"),i=[];for(let e=0;e<t.length;e++){let n=t[e]?.match(/^##\s+(.+)\s*$/);if(!n)continue;let r=(n[1]??"").trim(),a=e+1,o=t.length;for(let e=a;e<t.length;e++)if(/^##\s+/.test(t[e]??"")){o=e;break}i.push({heading:r,headingLine:e,bodyStartLine:a,bodyEndLine:o,lines:t.slice(a,o)}),e=o-1}return i}function dp(e,t){let i=dc(t);for(let t of dm(e))if(dc(t.heading)===i)return t;return null}function dh(e,t){let i=new Set(t.map(e=>dc(e)));return dm(e).filter(e=>i.has(dc(e.heading)))}function dg(e,t){let i=dm(e).map(e=>e.heading),n=new Map(i.map(e=>[dc(e),e])),r={};for(let e of du){let i=t[e][0]??e;for(let r of t[e]){let e=n.get(dc(r));if(e){i=e;break}}r[e]=i}return{aliases:t,columnsByRole:r,headings:i}}function dv(e){let t=[];for(let i=0;i<e.lines.length;i++){let n=function(e){let t=db(e);if(!t)return null;let i=e.slice(t.textStart).trim();return i?{checked:t.checked,text:i}:null}(e.lines[i]??"");if(!n)continue;let r=n.text;for(let t=i+1;t<e.lines.length;t++){let i=e.lines[t]??"";if(!(!(!i.trim()||/^\s*##\s+/.test(i)||db(i))&&(/^\s+/.test(i)||/^\s*>\s+/.test(i))))break;let n=i.trimStart().replace(/^>\s?/,"").trim();n&&(r+=` ${n}`)}t.push({text:r.replace(/\s+/g," ").trim(),checked:n.checked,rawLine:e.lines[i]??"",lineOffset:i})}return t}function dy(e,t){let i=dp(e,t);return i?dv(i).filter(e=>!e.checked).map(e=>e.text):[]}function d$(e,t){let i=new Set(t.map(e=>dc(e))),n=[];for(let t of dm(e))if(i.has(dc(t.heading)))for(let e of t.lines)db(e)&&n.push({line:e,column:t.heading});return n}function db(e){let t=0,i=e.length;for(;t<i&&dk(e.charCodeAt(t));)t+=1;if(">"===e[t])for(t+=1;t<i&&dk(e.charCodeAt(t));)t+=1;let n=e.charCodeAt(t);if(45!==n&&42!==n&&43!==n||(t+=1,!dk(e.charCodeAt(t))))return null;for(;dk(e.charCodeAt(t));)t+=1;if(91!==e.charCodeAt(t))return null;let r=e.charCodeAt(t+1);if(32!==r&&120!==r&&88!==r||93!==e.charCodeAt(t+2)||(t+=3,!dk(e.charCodeAt(t))))return null;for(;dk(e.charCodeAt(t));)t+=1;return{checked:32!==r,textStart:t}}function dk(e){return 32===e||9===e}function d_(e,t,i,n,r){let a=e.split("\n"),o=dp(e,i),s=dp(e,n);if(!o||!s)return{content:e,moved:!1};let l=dv(o).filter(e=>!e.checked).find(e=>e.text===t);if(!l)return{content:e,moved:!1};let u=o.bodyStartLine+l.lineOffset;a.splice(u,1);let c=`- [x] ${r??t}`,d=s.bodyStartLine;return a.splice(d,0,c),{content:a.join("\n"),moved:!0}}function dw(e,t,i,n,r){let a=e.split("\n"),o=dp(e,i),s=dp(e,n);if(!o||!s)return{content:e,moved:!1};let l=-1;for(let e=o.bodyStartLine;e<o.bodyEndLine;e++)if((a[e]??"")===t){l=e;break}return -1===l?{content:e,moved:!1}:(a.splice(l,1),a.splice(s.bodyStartLine,0,r??t),{content:a.join("\n"),moved:!0})}function dx(e,t,i){let n=e.split("\n"),r=n.findIndex(e=>e===t);return -1===r?e:(n[r]=i,n.join("\n"))}e.s(["DEFAULT_COLUMN_ALIASES",0,dl,"getSectionsByAliases",()=>dh,"getTrackedCardLines",()=>d$,"getUncheckedTasks",()=>dy,"moveCardLine",()=>dw,"moveUncheckedTask",()=>d_,"parseBoardSections",()=>dm,"parseChecklistItems",()=>dv,"parseChecklistPrefix",()=>db,"replaceLine",()=>dx,"resolveColumnAliases",()=>df,"resolveColumnsFromBoard",()=>dg],64348);let dS=(0,a.join)("orchestrator","logs"),dI="watcher-actions.log";function dO(e){return(function(e){if(!(0,r.existsSync)(e))return e;try{return r.realpathSync.native(e)}catch{return e}})(e).replace(/\\/g,"/")}function dj(e){(0,r.mkdirSync)((0,a.dirname)(e),{recursive:!0})}function dN(e){if(!(0,r.existsSync)(e))return;let t=0;try{t=(0,r.statSync)(e).size}catch{return}if(!(t<1e6)){for(let t=3;t>=1;t--){let i=`${e}.${t}`,n=`${e}.${t+1}`;if((0,r.existsSync)(i)){if(3===t){try{(0,r.renameSync)(i,n)}catch{}continue}try{(0,r.renameSync)(i,n)}catch{}}}try{(0,r.renameSync)(e,`${e}.1`)}catch{}}}function dE(e,t,i){let n=df(e.columnAliases);for(let r of e.boards??[])"string"!=typeof r&&r.aliases&&function(e,t,i){let n,r,o=!(n=dO(i.trim()))||n.startsWith("/")||/^[A-Za-z]:\//.test(n)?n:dO((0,a.join)(t,n)),s=dO(e);return o.includes("*")||o.includes("?")?(r=dO(o).replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"::DOUBLE_STAR::").replace(/\*/g,"[^/]*").replace(/::DOUBLE_STAR::/g,".*").replace(/\?/g,"[^/]"),RegExp(`^${r}$`)).test(s):s===o}(i,t,r.path)&&(n=df(n,r.aliases));return n}function dA(e,t,i,n){let r=dm(t),a=dg(t,i),o=a.columnsByRole.ready,s=0;for(let e of r)if(e.heading===o)for(let t of e.lines)/^\s*(?:>\s*)?-\s\[\s\]\s+/.test(t)&&s++;let l=new Set(r.map(e=>e.heading.toLowerCase())),u=[];for(let e of["intake","ready","review","done"]){let t=a.columnsByRole[e];l.has(t.toLowerCase())||u.push(`Missing expected ${e} column (${t})`)}return{boardPath:e,exists:!0,parseOk:0===u.length,headingCount:r.length,headings:r.map(e=>e.heading),columns:a.columnsByRole,readyCount:s,unresolvedProjects:function(e,t){let i=new Set;for(let n of e.matchAll(/#project\/([\w.-]+)/g)){let e=n[1]??"";e&&(t.has(e)||i.add(e))}return[...i]}(t,n),errors:u}}function dD(e,t){return(0,a.join)(e,dS,t)}function dz(e,t){let i={...t,ts:new Date().toISOString()},n=dD(e,dI);dj(n),dN(n);try{(0,r.appendFileSync)(n,`${JSON.stringify(i)}
|
|
147
|
+
${e.userPrompt}`),e.attachments&&e.attachments.length>0&&s.push(function(e){let t=e.filter(e=>"image"===e.type),i=e.filter(e=>"file"===e.type),n=[];if(n.push("## Reference Attachments"),n.push("The following files were attached to this task as reference material."),n.push("Read them using the Read tool to understand the visual design or context."),t.length>0){for(let e of(n.push(""),n.push("### Images (screenshots / mockups / designs)"),t))n.push(`- \`${e.path}\` — ${(0,a.basename)(e.path)}`);n.push(""),n.push("Use the Read tool to view each image file. These are visual references — match your implementation to what you see.")}if(i.length>0)for(let e of(n.push(""),n.push("### Reference Files"),i))n.push(`- \`${e.path}\` — ${(0,a.basename)(e.path)}`);return n.join("\n")}(e.attachments)),s.join("\n\n")}e.s(["BASE_AGENT_PROMPT",0,cW,"buildPrompt",()=>cK],69485);let cV={cc:"claude-code",claude:"claude-code","claude-code-cli":"claude-code",claude_code_cli:"claude-code","claude-code-router":"ccr","ccr-cli":"ccr",claude_code_router:"ccr","claude code router":"ccr",cursor:"cursor-cli","cursor-agent":"cursor-cli","cursor-agent-cli":"cursor-cli",cursor_agent:"cursor-cli",cursoragent:"cursor-cli",cursorcli:"cursor-cli",copilot:"github-copilot","copilot-cli":"github-copilot","copilot cli":"github-copilot","github-copilot-cli":"github-copilot","gh-copilot":"github-copilot","github-copilot":"github-copilot","google-gemini":"gemini","google-gemini-cli":"gemini",gm:"gemini",gem:"gemini","gemini-cli":"gemini",gemini:"gemini",amp:"amp","amp-cli":"amp","open-code":"opencode","open-code-cli":"opencode","open code":"opencode",open_code:"opencode",openai:"codex","open-ai":"codex","openai-codex":"codex","open-ai-codex":"codex","openai-codex-cli":"codex",openai_codex:"codex","codex-cli":"codex",codexcli:"codex",codex:"codex","qwen-code-cli":"qwen-code",qwen:"qwen-code",qwen_code:"qwen-code","qwen code":"qwen-code","qwen-code":"qwen-code","factory-droid":"droid",factory_droid:"droid",droid:"droid"};function cG(e,t){let i=e.trim().toLowerCase(),n="",r=!1;for(let e of i){let t="";e>="a"&&e<="z"||e>="0"&&e<="9"?t=e:t="-","-"===t?(!r&&n.length>0&&(n+=t),r=!0):(n+=t,r=!1)}if(n.endsWith("-")&&(n=n.slice(0,-1)),!n)return"";let a=cV[n];if(a)return(t?t.find(e=>e.toLowerCase()===a):a)??a;let o=t?t.find(e=>e.toLowerCase()===n):void 0;if(o)return o;let s=t?t.find(e=>e.toLowerCase().includes(n)):void 0;return s||n}let cH=(0,cq.promisify)(cJ.execFile);async function cY(e,t,i){let n=null;if(t){let e=t.path.startsWith("~/")?(0,a.join)((0,o.homedir)(),t.path.slice(2)):t.path;(0,r.existsSync)((0,a.join)(e,".git"))&&(n=e)}if(!n){let t=(0,a.basename)((0,a.dirname)(e)),i=(0,a.join)((0,o.homedir)(),".conductor","projects",t);(0,r.existsSync)((0,a.join)(i,".git"))&&(n=i)}if(n){try{await cH("git",["worktree","remove","--force",e],{cwd:n,timeout:15e3})}catch{(0,r.existsSync)(e)&&(0,r.rmSync)(e,{recursive:!0,force:!0})}try{await cH("git",["worktree","prune"],{cwd:n,timeout:1e4})}catch{}let t=`session/${i}`;try{await cH("git",["branch","-D",t],{cwd:n,timeout:1e4})}catch{}}else(0,r.existsSync)(e)&&(0,r.rmSync)(e,{recursive:!0,force:!0})}async function cX(e,t){let i=t.trim();if(i&&(0,r.existsSync)((0,a.join)(e,".git"))){try{await cH("git",["fetch","origin","--quiet"],{cwd:e,timeout:2e4})}catch{}try{await cH("git",["checkout",i],{cwd:e,timeout:2e4});return}catch{}try{await cH("git",["checkout","--track","-b",i,`origin/${i}`],{cwd:e,timeout:2e4});return}catch{}await cH("git",["checkout","-b",i],{cwd:e,timeout:2e4})}}function cQ(e,t){let i="string"==typeof t.defaultWorkingDirectory?function(e){let t=e.trim();if(!t||"."===t)return null;let i=t.replace(/\\/g,"/").replace(/\/+$/g,"");if(!i||"."===i)return null;if(i.startsWith("/")||i.includes(".."))throw Error(`Invalid defaultWorkingDirectory "${e}": use a relative path inside the repository`);return i.replace(/^\.?\//,"")}(t.defaultWorkingDirectory):null;if(!i)return e;let n=(0,a.join)(e,i),o=(0,r.statSync)(n,{throwIfNoEntry:!1});if(!o||!o.isDirectory())throw Error(`defaultWorkingDirectory "${t.defaultWorkingDirectory}" does not exist in workspace "${e}"`);return n}async function c0(e){if(!(0,r.existsSync)((0,a.join)(e,".git")))return!1;try{let{stdout:t}=await cH("git",["status","--porcelain"],{cwd:e,timeout:2e4});return t.trim().length>0}catch{return!1}}async function c1(e,t,i){if(e&&0!==e.length)for(let n of e){let e=n.trim();if(e)try{await cH("sh",["-c",e],{cwd:t,timeout:3e5})}catch(n){let e=n instanceof Error?n.message:String(n);console.warn(`[session-manager] ${i} command failed in ${t}: ${e}`)}}}let c4=new Set(["a","an","the","and","or","but","in","on","at","to","for","of","with","by","from","is","are","was","were","be","been","it","its","this","that","using","use","via","into","as"]);function c6(e){try{return JSON.parse(e)}catch{return null}}let c2=new Set(["spawning","working","pr_open","ci_failed","review_pending","changes_requested","approved","mergeable","merged","cleanup","needs_input","stuck","errored","killed","done","terminated"]);function c9(e){return"starting"===e?"working":e&&c2.has(e)?e:"spawning"}function c3(e,t,i,n,r){let a,o;return{id:e,projectId:t.project??r??"",status:c9(t.status),activity:null,branch:t.branch||null,issueId:t.issue||null,pr:t.pr?{number:(o=(a=t.pr).match(/github\.com\/([^/]+)\/([^/]+)\/pull\/(\d+)/))?parseInt(o[3],10):parseInt(a.match(/\/(\d+)$/)?.[1]??"0",10),url:a,title:t.prTitle??"",owner:o?.[1]??"",repo:o?.[2]??"",branch:t.prHeadRef??t.branch??"",baseBranch:t.prBaseRef??"",isDraft:"1"===t.prDraft||"true"===t.prDraft}:null,workspacePath:t.worktree||null,runtimeHandle:t.runtimeHandle?c6(t.runtimeHandle):null,agentInfo:t.summary||t.cost?{summary:t.summary??null,agentSessionId:null,...t.cost?{cost:c6(t.cost)??void 0}:{}}:null,createdAt:t.createdAt?new Date(t.createdAt):i??new Date,lastActivityAt:n??new Date,metadata:t}}function c8(e){let{config:t,registry:i}=e,s=t.maxSessionsPerProject??5;function l(e){return uB(t.configPath,e.path)}function u(e){for(let[i,n]of Object.entries(t.projects)){let t=l(n),r=cz(t,e);if(r)return{sessionId:e,projectId:i,project:n,sessionsDir:t,raw:r}}return null}function c(e,t,i){try{cZ(e,t,{id:`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`,sessionId:t,createdAt:new Date().toISOString(),...i})}catch(i){let e=i instanceof Error?i.message:String(i);console.warn(`[session-manager] failed to append conversation entry for ${t}: ${e}`)}}let d=new Map;function f(e,n){let r=i.get("runtime",e.runtime??t.defaults.runtime),a=cG(n??e.agent??t.defaults.agent),o=i.get("agent",a),s=i.get("workspace",e.workspace??t.defaults.workspace);return{runtime:r,agent:o,workspace:s,tracker:e.tracker?i.get("tracker",e.tracker.plugin):null,scm:e.scm?i.get("scm",e.scm.plugin):null}}async function m(e,i,n,r){let a=null!==e.runtimeHandle;a||(e.runtimeHandle={id:i,runtimeName:n.runtime??t.defaults.runtime,data:{}}),await h(e,r,a)}let p=new Set(["killed","done","merged","terminated","cleanup"]);async function h(e,i,n){let r=t.projects[e.projectId];if(p.has(e.status)){if("done"===e.status&&n&&e.runtimeHandle&&i.runtime&&"archived"!==e.metadata.attemptStatus)try{if(await i.runtime.isAlive(e.runtimeHandle)){if(e.status="working",r){let t=l(r);cU(t,e.id,{status:"working"})}}else{e.activity="exited";return}}catch{e.activity="exited";return}else{if(e.activity="exited",i.agent)try{let t=await i.agent.getSessionInfo(e);if(t&&(e.agentInfo=t,t.summary&&!t.summaryIsFallback&&r)){let i=l(r),n={};n.summary=t.summary,t.cost&&(n.cost=JSON.stringify(t.cost)),cU(i,e.id,n)}}catch{}return}if("working"!==e.status)return}if(n&&e.runtimeHandle&&i.runtime)try{if(!await i.runtime.isAlive(e.runtimeHandle)){e.status="killed",e.activity="exited";return}}catch{}if(i.agent){try{let n=await i.agent.getActivityState(e,t.readyThresholdMs);null!==n&&(e.activity=n.state,n.timestamp&&n.timestamp>e.lastActivityAt&&(e.lastActivityAt=n.timestamp))}catch{}try{let n=await i.agent.getSessionInfo(e);if(n){e.agentInfo=n;let i=t.projects[e.projectId];if(i){let t=l(i),r={};n.summary&&!n.summaryIsFallback&&(r.summary=n.summary),n.cost&&(r.cost=JSON.stringify(n.cost)),Object.keys(r).length>0&&cU(t,e.id,r)}}}catch{}}}async function g(e){var i,u,m,p;let h,g,v,y,$,b,k,_,w,x,S,I,O=t.projects[e.projectId];if(!O)throw Error(`Unknown project: ${e.projectId}`);let j=function(e){let i=t.projects[e];if(!i)return 0;let n=l(i),r=cB(n),a=0;for(let e of r){let t=cz(n,e);if(!t)continue;let i=c9(t.status);!new Set(["killed","terminated","done","cleanup","errored","merged"]).has(i)&&a++}return a}(e.projectId);if(j>=s)throw Error(`Project "${e.projectId}" already has ${j} active sessions (max ${s}). Kill or cleanup existing sessions first.`);let N=(_=(k=e.profile??O.defaultProfile)?O.agentProfiles?.[k]:void 0,x=(w=cG(e.agent??_?.agent??O.agent??t.defaults.agent))===cG(O.agent??t.defaults.agent),S=e.model??(e.agent?void 0:_?.model)??(x?O.agentConfig?.model:void 0),{profileName:k,agentName:w,model:S,reasoningEffort:e.reasoningEffort??(e.agent?void 0:_?.reasoningEffort)??(x?O.agentConfig?.reasoningEffort:void 0),permissions:_?.permissions??(x?O.agentConfig?.permissions:void 0)??"skip"}),E=f(O,N.agentName);if(!E.runtime)throw Error(`Runtime plugin '${O.runtime??t.defaults.runtime}' not found`);if(!E.agent)throw Error(`Agent plugin '${N.agentName}' not found`);if(e.issueId&&E.tracker)try{h=await E.tracker.getIssue(e.issueId,O)}catch(t){if((0,n.isIssueNotFoundError)(t));else throw Error(`Failed to fetch issue ${e.issueId}: ${t}`,{cause:t})}let A=l(O);t.configPath&&uH(t.configPath,O.path);let D=function(e,t){let i=0,n=RegExp(`^${t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}-(?:.*?-)??(\\d+)$`);for(let t of e){let e=t.match(n);if(e){let t=parseInt(e[1],10);t>i&&(i=t)}}return i+1}(cB(A),O.sessionPrefix),z=function(e){let t=e.toLowerCase().replace(/[^a-z0-9\s]/g,"").split(/\s+/).filter(e=>e.length>1&&!c4.has(e)),i=[],n=0;for(let e of t){if(i.length>=4||n+e.length+1>30)break;i.push(e),n+=e.length+1}return i.join("-")||"task"}(e.prompt??e.issueId??"");for(let e=0;e<10&&(g=`${O.sessionPrefix}-${z}-${D}`,t.configPath&&(v=uK(t.configPath,`${O.sessionPrefix}-${z}`,D)),!cF(A,g));e++)if(D++,9===e)throw Error(`Failed to reserve session ID after 10 attempts (prefix: ${O.sessionPrefix})`);g=`${O.sessionPrefix}-${z}-${D}`,t.configPath&&(v=uK(t.configPath,`${O.sessionPrefix}-${z}`,D));let P=e.taskId??`t-${g}`,U=e.attemptId??`a-${g}`,T=e.parentTaskId,Z=e.baseBranch??(T?(i=e.projectId,I=(function(e){let i=[];for(let[n,a]of Object.entries(t.projects)){if(e&&n!==e)continue;let t=l(a);if((0,r.existsSync)(t))for(let e of cB(t)){let r=cz(t,e);r&&i.push({sessionId:e,projectId:n,project:a,sessionsDir:t,raw:r})}}return i})(i).filter(e=>e.raw.taskId===T&&!!e.raw.branch).sort((e,t)=>{let i=Date.parse(e.raw.createdAt??"")||0;return(Date.parse(t.raw.createdAt??"")||0)-i}),I[0]?.raw.branch):void 0)??O.defaultBranch;if(e.branch)y=e.branch;else if(E.workspace)if(e.issueId&&E.tracker&&h)y=E.tracker.branchName(e.issueId,O);else if(e.issueId){let t=e.issueId,i=/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(t)&&!t.includes("..")?t:t.toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,60).replace(/^-+|-+$/g,"");y=`feat/${i||g}`}else{let e=P.replace(/[^a-zA-Z0-9._-]+/g,"-").slice(0,40),t=U.replace(/[^a-zA-Z0-9._-]+/g,"-").slice(0,20);y=`task/${e}-${t}`}else y=Z;let C=O.path;if(E.workspace)try{let t=await E.workspace.create({projectId:e.projectId,project:O,sessionId:g,branch:y,baseBranch:Z});if(C=t.path,E.workspace.postCreate)try{await E.workspace.postCreate(t,O)}catch(e){if(C!==O.path)try{await E.workspace.destroy(C)}catch{}throw e}}catch(e){try{cR(A,g,!1)}catch{}throw e}else try{await cX(O.path,y)}catch(e){try{cR(A,g,!1)}catch{}throw e}if(e.issueId&&E.tracker&&h)try{$=await E.tracker.generatePrompt(e.issueId,O)}catch{}let L=cK({project:O,projectId:e.projectId,issueId:e.issueId,issueContext:$,userPrompt:e.prompt,attachments:e.attachments}),R={...t.defaults.mcpServers,...O.mcpServers},M=Object.keys(R).length>0?R:void 0,B=C,F={sessionId:g,projectConfig:O,issueId:e.issueId,prompt:L??e.prompt,permissions:N.permissions,model:N.model,reasoningEffort:N.reasoningEffort,attachments:e.attachments,mcpServers:M,workspacePath:B};try{F.workspacePath=B=cQ(C,O),E.agent.setupWorkspaceHooks&&await E.agent.setupWorkspaceHooks(B,{dataDir:A,sessionId:g,mcpServers:M});let e=E.agent.getLaunchCommand(F),t=E.agent.getEnvironment(F);b=await E.runtime.create({sessionId:v??g,workspacePath:B,launchCommand:e,environment:{...t,CO_SESSION:g,CO_DATA_DIR:A,CO_SESSION_NAME:g,CO_AGENT_CWD:B,...v&&{CO_TMUX_NAME:v}}})}catch(e){if(E.workspace&&C!==O.path)try{await E.workspace.destroy(C)}catch{}try{cR(A,g,!1)}catch{}throw e}let J={id:g,projectId:e.projectId,status:"spawning",activity:"active",branch:y,issueId:e.issueId??null,pr:null,workspacePath:C,runtimeHandle:b,agentInfo:null,createdAt:new Date,lastActivityAt:new Date,metadata:{}},q=function(e,t){let i=t.devServer;if(!i?.command)return null;let n=d.get(e);if(n&&!n.process.killed)return n.logPath;let s=(0,a.join)((0,o.homedir)(),".conductor","dev-servers");(0,r.mkdirSync)(s,{recursive:!0});let l=(0,a.join)(s,`${e}.log`),u=(0,r.createWriteStream)(l,{flags:"a"}),c=(0,cJ.spawn)("sh",["-lc",i.command],{cwd:i.cwd??t.path,detached:!0,stdio:["ignore","pipe","pipe"],env:process.env});return c.stdout?.pipe(u),c.stderr?.pipe(u),c.unref(),d.set(e,{process:c,logPath:l}),l}(e.projectId,O);try{let t;cP(A,g,{worktree:C,branch:y,status:"spawning",tmuxName:v,issue:e.issueId,project:e.projectId,agent:E.agent.name,model:N.model,reasoningEffort:N.reasoningEffort,permissions:N.permissions,profile:N.profileName,taskId:P,attemptId:U,parentTaskId:T,attemptStatus:"active",retryOfSessionId:e.retryOfSessionId,baseBranch:Z,prompt:e.prompt??L??void 0,createdAt:new Date().toISOString(),runtimeHandle:JSON.stringify(b)}),cU(A,g,{devServerLog:q??""});let i=e.prompt?.trim()||(e.issueId?`Start work on issue ${e.issueId}.`:"");(i||(e.attachments?.length??0)>0)&&c(A,g,{kind:"user_message",text:i||"Shared reference attachments.",attachments:e.attachments?.map(e=>e.path),model:N.model,reasoningEffort:N.reasoningEffort,source:"spawn"}),c(A,g,{kind:"system_message",text:(u=E.agent.name,m=N.model,p=N.reasoningEffort,t=[u],m?.trim()&&t.push(m.trim()),p?.trim()&&t.push(`reasoning ${p.trim().toLowerCase()}`),`Session launched with ${t.join(" · ")}.`),source:"session_started"}),E.agent.postLaunchSetup&&await E.agent.postLaunchSetup(J)}catch(e){try{await E.runtime.destroy(b)}catch{}if(E.workspace&&C!==O.path)try{await E.workspace.destroy(C)}catch{}try{cR(A,g,!1)}catch{}throw e}if("post-launch"===E.agent.promptDelivery&&F.prompt){let e=E.runtime,t=F.prompt;if(!e||!t)return J;(async()=>{try{let i=Date.now(),n=!1;for(await new Promise(e=>setTimeout(e,3e3));Date.now()-i<9e4;){try{if(!await e.isAlive(b))return void console.log(`[session-manager] ${g}: runtime exited before initial prompt delivery`)}catch{}try{let t=await e.getOutput(b,20);if(/[❯>$]\s*$/.test(t.trim())||/Try "/.test(t)){n=!0;break}}catch{}await new Promise(e=>setTimeout(e,1e3))}try{if(!await e.isAlive(b))return void console.log(`[session-manager] ${g}: skipping initial prompt, runtime is no longer alive`)}catch{}n||console.log(`[session-manager] ${g}: agent prompt not detected after 90s, attempting send`),await e.sendMessage(b,t)}catch{}})()}return J}async function v(e){let i=(function(e){let i=[];for(let[n,a]of Object.entries(t.projects)){if(e&&n!==e)continue;let o=uB(t.configPath,a.path);if((0,r.existsSync)(o))for(let e of cB(o))i.push({sessionName:e,projectId:n})}return i})(e).map(async({sessionName:e,projectId:i})=>{let n,o,s=t.projects[i];if(!s)return null;let u=l(s),c=cz(u,e);if(!c)return null;try{let t=(0,a.join)(u,e),i=(0,r.statSync)(t);n=i.birthtime,o=i.mtime}catch{}let d=c3(e,c,n,o,i),p=f(s,c.agent),h=new Promise(e=>setTimeout(e,2e3));return await Promise.race([m(d,e,s,p),h]),d});return(await Promise.all(i)).filter(e=>null!==e)}async function y(e){for(let i of Object.values(t.projects)){let t,n,o=l(i),s=cz(o,e);if(!s)continue;try{let i=(0,a.join)(o,e),s=(0,r.statSync)(i);t=s.birthtime,n=s.mtime}catch{}let u=c3(e,s,t,n),c=f(i,s.agent);return await m(u,e,i,c),u}return null}async function $(e){let n,a=null,o=null;for(let i of Object.values(t.projects)){let t=l(i),r=cz(t,e);if(r){a=r,o=t,n=i;break}}if(!a||!o)throw Error(`Session ${e} not found`);if(a.runtimeHandle){let e=c6(a.runtimeHandle);if(e){let r=i.get("runtime",e.runtimeName??(n?n.runtime??t.defaults.runtime:t.defaults.runtime));if(r)try{await r.destroy(e)}catch{}else if(e.id)try{await cH("tmux",["kill-session","-t",e.id],{timeout:1e4})}catch{}}}let s=a.worktree,u=n&&s===n.path;if(s&&!u){n&&(0,r.existsSync)(s)&&(await c0(s)&&await c1(n.cleanupScript,s,"cleanup"),await c1(n.archiveScript,s,"archive"));let a=n?f(n).workspace:i.get("workspace",t.defaults.workspace);if(a)try{await a.destroy(s)}catch{}else await cY(s,n,e)}try{cR(o,e,!0)}catch(t){let e=t instanceof Error?t.message.toLowerCase():"";if(!(e.includes("not found")||e.includes("enoent")||e.includes("no such file or directory")))throw t}}async function b(e,i){let r={killed:[],skipped:[],errors:[]};for(let a of(await v(e)))try{if("orchestrator"===a.metadata.role||a.id.endsWith("-orchestrator")){r.skipped.push(a.id);continue}let e=t.projects[a.projectId];if(!e){r.skipped.push(a.id);continue}let o=f(e),s=!1;if(a.pr&&o.scm)try{let e=await o.scm.getPRState(a.pr);(e===n.PR_STATE.MERGED||e===n.PR_STATE.CLOSED)&&(s=!0)}catch{}if(!s&&a.issueId&&o.tracker)try{await o.tracker.isCompleted(a.issueId,e)&&(s=!0)}catch{}if(!s&&a.runtimeHandle&&o.runtime)try{await o.runtime.isAlive(a.runtimeHandle)||(s=!0)}catch{}s?(i?.dryRun||await $(a.id),r.killed.push(a.id)):r.skipped.push(a.id)}catch(e){r.errors.push({sessionId:a.id,error:e instanceof Error?e.message:String(e)})}return r}async function k(e,n,r){let a,o=u(e);if(!o)throw Error(`Session ${e} not found`);let s=o.raw;if(s.runtimeHandle){let t=c6(s.runtimeHandle);if(!t)throw Error(`Corrupted runtime handle for session ${e}`);a=t}else a={id:e,runtimeName:t.defaults.runtime,data:{}};let l=t.projects[s.project??""],d=i.get("runtime",a.runtimeName??(l?l.runtime??t.defaults.runtime:t.defaults.runtime));if(!d)throw Error(`No runtime plugin for session ${e}`);let f={},m=r?.model?.trim(),p=r?.reasoningEffort?.trim().toLowerCase();m&&(f.model=m),p&&(f.reasoningEffort=p),Object.keys(f).length>0&&cU(o.sessionsDir,e,f);let h=function(e,t){let i=e.trim(),n=[...new Set((t?.attachments??[]).map(e=>e.trim()).filter(Boolean))];if(0===n.length)return i;let r=[];return i&&r.push(i,""),r.push("## Reference Attachments","The following files are attached to this follow-up. Read them directly from disk before responding or making changes.",...n.map(e=>`- \`${e}\``)),r.join("\n")}(n,r);if(!h.trim())throw Error("Message is required");if(await d.sendMessage(a,h),m||p){let t=[];m&&t.push(`model ${m}`),p&&t.push(`reasoning ${p}`),c(o.sessionsDir,e,{kind:"system_message",text:`Session preferences updated: ${t.join(" · ")}.`,source:"session_preferences"})}let g=(r?.conversationText??n).trim();(g||(r?.attachments?.length??0)>0)&&c(o.sessionsDir,e,{kind:"user_message",text:g||"Shared reference attachments.",attachments:r?.attachments,model:m??s.model??void 0,reasoningEffort:p??s.reasoningEffort??void 0,source:r?.conversationSource??"follow_up"})}async function _(e,t){let i=await y(e);if(i||(i=(await v()).filter(t=>t.metadata.taskId===e).sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime())[0]??null),!i)throw Error(`No session/task found for retry target: ${e}`);let n=u(i.id);if(!n)throw Error(`Retry source session not found on disk: ${i.id}`);let r=n.raw.taskId??i.metadata.taskId??e,a=`a-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,o=n.raw.prompt??i.metadata.prompt??i.issueId??i.metadata.summary??"";if(!o)throw Error(`Cannot retry ${i.id}: no prompt/issue context found in metadata`);let s=await g({projectId:i.projectId,issueId:i.issueId??void 0,prompt:i.issueId?n.raw.prompt??void 0:o,agent:t?.agent??n.raw.agent??void 0,model:t?.model??n.raw.model??void 0,reasoningEffort:t?.reasoningEffort??n.raw.reasoningEffort??void 0,baseBranch:t?.baseBranch??n.raw.branch??i.branch??void 0,profile:t?.profile??n.raw.profile??void 0,taskId:r,attemptId:a,parentTaskId:n.raw.parentTaskId??void 0,retryOfSessionId:i.id});return cU(n.sessionsDir,i.id,{attemptStatus:"archived",supersededByAttemptId:a}),s}return{spawn:g,retry:_,taskGraph:async function(e){let t=await v(),i=t.filter(t=>t.metadata.taskId===e).sort((e,t)=>e.createdAt.getTime()-t.createdAt.getTime());if(0===i.length)return null;let n=new Set;for(let i of t){if(i.metadata.parentTaskId!==e)continue;let t=i.metadata.taskId;t&&n.add(t)}let r=i.map(e=>({attemptId:e.metadata.attemptId??`a-${e.id}`,sessionId:e.id,status:e.status,agent:e.metadata.agent,model:e.metadata.model,reasoningEffort:e.metadata.reasoningEffort,branch:e.branch,createdAt:e.createdAt}));return{taskId:e,parentTaskId:i[0]?.metadata.parentTaskId??null,childrenTaskIds:[...n],attempts:r}},submitFeedback:async function(e,t){let i=u(e);if(!i)throw Error(`Session ${e} not found`);let n=["Reviewer feedback received. Apply the requested changes and continue.\n",t.trim()].join("\n");await k(e,n,{conversationText:t.trim(),conversationSource:"feedback"}),cU(i.sessionsDir,e,{status:"working",reviewDecision:"changes_requested"})},restore:async function(e){let i,a,o,s=null,u=null,d=!1;for(let[n,r]of Object.entries(t.projects)){let t=l(r),o=cz(t,e);if(o){s=o,u=t,i=r,a=n;break}}if(!s)for(let[n,r]of Object.entries(t.projects)){let t=l(r),o=cM(t,e);if(o){s=o,u=t,i=r,a=n,d=!0;break}}if(!s||!u||!i||!a)throw Error(`Session ${e} not found`);d&&cP(u,e,{worktree:s.worktree??"",branch:s.branch??"",status:s.status??"killed",role:s.role,tmuxName:s.tmuxName,issue:s.issue,pr:s.pr,summary:s.summary,project:s.project,agent:s.agent,createdAt:s.createdAt,runtimeHandle:s.runtimeHandle,ciStatus:s.ciStatus,reviewDecision:s.reviewDecision,prState:s.prState,mergeReadiness:s.mergeReadiness,prTitle:s.prTitle,prHeadRef:s.prHeadRef,prBaseRef:s.prBaseRef,prDraft:s.prDraft,cost:s.cost,model:s.model,reasoningEffort:s.reasoningEffort,permissions:s.permissions,taskId:s.taskId,attemptId:s.attemptId,parentTaskId:s.parentTaskId,attemptStatus:s.attemptStatus,retryOfSessionId:s.retryOfSessionId,supersededByAttemptId:s.supersededByAttemptId,profile:s.profile,baseBranch:s.baseBranch,prompt:s.prompt,devServerLog:s.devServerLog});let m=c3(e,s),p=f(i,s.agent);if(await h(m,p,!0),!(0,n.isRestorable)(m)){if(n.NON_RESTORABLE_STATUSES.has(m.status))throw new n.SessionNotRestorableError(e,`status is "${m.status}"`);throw new n.SessionNotRestorableError(e,"session is not in a terminal state")}if(!p.runtime)throw Error(`Runtime plugin '${i.runtime??t.defaults.runtime}' not found`);if(!p.agent)throw Error(`Agent plugin '${i.agent??t.defaults.agent}' not found`);let g=s.worktree||i.path;if(!(p.workspace?.exists?await p.workspace.exists(g):(0,r.existsSync)(g))){if(!p.workspace?.restore)throw new n.WorkspaceMissingError(g,"workspace plugin does not support restore");if(!m.branch)throw new n.WorkspaceMissingError(g,"branch metadata is missing");try{let t=await p.workspace.restore({projectId:a,project:i,sessionId:e,branch:m.branch},g);p.workspace.postCreate&&await p.workspace.postCreate(t,i)}catch(e){throw new n.WorkspaceMissingError(g,`restore failed: ${e instanceof Error?e.message:String(e)}`)}}if(m.runtimeHandle)try{await p.runtime.destroy(m.runtimeHandle)}catch{}let v={...t.defaults.mcpServers,...i.mcpServers},y=Object.keys(v).length>0?v:void 0,$=g,b={sessionId:e,projectConfig:i,issueId:m.issueId??void 0,permissions:s.permissions??i.agentConfig?.permissions??"skip",model:s.model??i.agentConfig?.model,reasoningEffort:s.reasoningEffort??i.agentConfig?.reasoningEffort,mcpServers:y,workspacePath:$};b.workspacePath=$=cQ(g,i),p.agent.setupWorkspaceHooks&&await p.agent.setupWorkspaceHooks($,{dataDir:u,sessionId:e,mcpServers:y}),o=p.agent.getRestoreCommand?await p.agent.getRestoreCommand(m,i)??p.agent.getLaunchCommand(b):p.agent.getLaunchCommand(b);let k=p.agent.getEnvironment(b),_=s.tmuxName,w=await p.runtime.create({sessionId:_??e,workspacePath:$,launchCommand:o,environment:{...k,CO_SESSION:e,CO_DATA_DIR:u,CO_SESSION_NAME:e,CO_AGENT_CWD:$,..._&&{CO_TMUX_NAME:_}}}),x=new Date().toISOString();cU(u,e,{status:"spawning",runtimeHandle:JSON.stringify(w),restoredAt:x}),c(u,e,{kind:"system_message",text:"Session restored and reattached to a fresh runtime.",source:"restore"});let S={...m,status:"spawning",activity:"active",workspacePath:g,runtimeHandle:w,restoredAt:new Date(x)};if(p.agent.postLaunchSetup)try{await p.agent.postLaunchSetup(S)}catch{}return S},list:v,get:y,kill:$,cleanup:b,send:async function(e,t,i){await k(e,t,i)},getConversation:async function(e){let i=u(e);if(i)return cC(i.sessionsDir,e);for(let i of Object.values(t.projects)){let t=cL(l(i),e);if(t.length>0)return t}return[]},getOutput:async function(e,n=500){let r,a=null;for(let i of Object.values(t.projects)){let t=cz(l(i),e);if(t){a=t;break}}if(!a)throw Error(`Session ${e} not found`);if(a.runtimeHandle){let t=c6(a.runtimeHandle);if(!t)throw Error(`Corrupted runtime handle for session ${e}`);r=t}else r={id:e,runtimeName:t.defaults.runtime,data:{}};let o=t.projects[a.project??""],s=i.get("runtime",r.runtimeName??(o?o.runtime??t.defaults.runtime:t.defaults.runtime));if(!s)throw Error(`No runtime plugin for session ${e}`);return s.getOutput(r,n)}}}e.s(["createSessionManager",()=>c8],31212);let c5=(0,cq.promisify)(cJ.execFile),c7=new Set(["killed","terminated","done","cleanup","merged","errored"]);function de(e){if(void 0===e)return null;if("number"==typeof e)return{type:"count",value:e};let t=String(e).match(/^(\d+)(m|min|s|sec|h|hr)?$/);if(!t)return null;let i=parseInt(t[1],10),n=t[2];return n?{type:"duration",value:i*(n.startsWith("h")?36e5:n.startsWith("m")?6e4:1e3)}:{type:"count",value:i}}async function dt(e){if(!e.owner||!e.repo||!e.number)return null;try{let{stdout:t}=await c5("gh",["pr","view",String(e.number),"--repo",`${e.owner}/${e.repo}`,"--json","title,headRefName,baseRefName,isDraft,url,state,mergeStateStatus"],{timeout:2e4,maxBuffer:2097152}),i=JSON.parse(t),n={title:i.title??e.title,branch:i.headRefName??e.branch,baseBranch:i.baseRefName??e.baseBranch,isDraft:i.isDraft??e.isDraft,url:i.url??e.url};return i.state&&(n.state=i.state),i.mergeStateStatus&&(n.mergeStateStatus=i.mergeStateStatus),n}catch{return null}}function di(e){let{config:t,sessionManager:i,registry:n}=e,r=null,a=!1,o=!1,s=new Map,l=new Set;function u(e){return n?n.get("runtime",e.runtime??t.defaults.runtime):null}async function c(e,t){let i=u(t);if(!i||!e.runtimeHandle)return!1;try{return await i.isAlive(e.runtimeHandle)}catch{return!1}}async function d(e,t,i){if(!e.pr)return;let n=null;if(e.branch)try{let r=await i.detectPR(e,t);r&&(n=r)}catch{}if(!n){let t=await dt(e.pr);t&&(n={...e.pr,...t,title:t.title??e.pr.title,branch:t.branch??e.pr.branch,baseBranch:t.baseBranch??e.pr.baseBranch,isDraft:t.isDraft??e.pr.isDraft,url:t.url??e.pr.url})}if(!n)return;e.pr=n;let r={pr:n.url,prTitle:n.title??"",prHeadRef:n.branch??"",prBaseRef:n.baseBranch??"",prDraft:n.isDraft?"1":"0"},a=n;a.state&&(r.prState=a.state.toLowerCase()),a.mergeStateStatus&&(r.mergeStateStatus=a.mergeStateStatus),g(e,r)}async function f(e){let i=function(e){if(!n)return[];let i=t.notificationRouting[e]??t.defaults.notifiers,r=[];for(let e of i){let t=n.get("notifier",e);t&&r.push(t)}return r}(e.priority);await Promise.allSettled(i.map(t=>t.notify(e)))}function m(e,t,i,n,r={}){return{id:(0,uT.randomUUID)(),type:e,priority:t,sessionId:i.id,projectId:i.projectId,timestamp:new Date,message:n,data:r}}function p(i,n){let r=t.projects[i.projectId];r&&(cU(uB(t.configPath,r.path),i.id,{status:n}),e.onStatusChange?.(i.id,n,i.projectId))}function h(e,i){let n=t.projects[e.projectId];n&&cU(uB(t.configPath,n.path),e.id,{pr:i.url})}function g(e,i){let n=t.projects[e.projectId];n&&cU(uB(t.configPath,n.path),e.id,i)}async function v(e,t,n,r){if(!t.auto)return;let a=(r.reactionCounts[e]??0)+1;r.reactionCounts[e]=a,r.reactionFirstSeen[e]||(r.reactionFirstSeen[e]=Date.now());let o=de(t.escalateAfter),s=!1;if(o&&("count"===o.type&&a>o.value?s=!0:"duration"===o.type&&Date.now()-r.reactionFirstSeen[e]>o.value&&(s=!0)),void 0!==t.retries&&a>t.retries&&!s&&(s=!0),s)return void await f(m("reaction.escalated","urgent",n,`Reaction "${e}" escalated after ${a} attempts on ${n.id}`,{reactionName:e,attempts:a}));if("send-to-agent"===t.action&&t.message)try{await i.send(n.id,t.message),await f(m("reaction.triggered","info",n,`Sent "${e}" fix to ${n.id}`,{reactionName:e,action:"send-to-agent"}))}catch{}else"notify"===t.action&&await f(m("reaction.triggered",t.priority??"info",n,t.message??`Reaction "${e}" triggered on ${n.id}`,{reactionName:e,action:"notify"}))}function y(e){let i={...t.reactions};if(e.reactions)for(let[t,n]of Object.entries(e.reactions))i[t]&&(i[t]={...i[t],...n});return i}async function $(e){let r;if(c7.has(e.status))return;let a=t.projects[e.projectId];if(!a)return;let o=((r=s.get(e.id))||(r={lastStatus:e.status,prDetected:null!==e.pr,lastCIStatus:null,lastReviewDecision:null,reactionCounts:{},reactionFirstSeen:{},lastCheckedAt:Date.now()},s.set(e.id,r)),r),l=n&&a.scm?n.get("scm",a.scm.plugin):null,$=y(a),b=o.lastStatus,k=e.createdAt instanceof Date?e.createdAt.getTime():"number"==typeof e.createdAt?e.createdAt:Date.now(),_=Date.now()-k,w=Number(e.runtimeHandle?.data?.createdAt??Date.now()),x=Math.max(_,Date.now()-w);if("exited"!==e.activity||"spawning"!==e.status||!(x<12e4)){if("spawning"===e.status&&x>6e5){console.log(`[lifecycle] ${e.id}: spawn timeout (${Math.round(x/6e4)}m) — terminating zombie session`),p(e,"killed"),o.lastStatus="killed",await f(m("session.exited","urgent",e,`Session ${e.id} killed — spawn timeout after ${Math.round(x/6e4)}m`));let t=u(a);if(e.runtimeHandle&&t)try{await t.destroy(e.runtimeHandle)}catch{}return}if("exited"===e.activity&&"spawning"===e.status&&x>=12e4&&!e.metadata.autoRecoverAttempted&&(e.metadata.prompt||e.issueId)){console.log(`[lifecycle] ${e.id}: auto-recover attempt (exited during spawn)`),g(e,{autoRecoverAttempted:"1"});try{await i.restore(e.id),await f(m("session.restored","info",e,`Session ${e.id} auto-recovered after spawn failure`));return}catch(i){let t=i instanceof Error?i.message:String(i);console.warn(`[lifecycle] ${e.id}: auto-recover failed: ${t}`),p(e,"errored"),o.lastStatus="errored",g(e,{autoRecoverError:t}),await f(m("session.exited","urgent",e,`Session ${e.id} auto-recover failed: ${t}`));return}}if("exited"===e.activity&&!c7.has(e.status)){let t="spawning"!==b;if(t&&!e.pr&&l&&e.branch)try{let t=await l.detectPR(e,a);t&&(e.pr=t,o.prDetected=!0,h(e,t))}catch{}let i=t?e.pr?"pr_open":"done":"killed";p(e,i),o.lastStatus=i,t?(console.log(`[lifecycle] ${e.id}: exited after working → ${i}`),await f(m("session.exited","info",e,`Session ${e.id} completed (exited → ${i})`))):(await f(m("session.exited","urgent",e,`Session ${e.id} exited`)),$["agent-exited"]&&await v("agent-exited",$["agent-exited"],e,o));return}if("waiting_input"===e.activity&&"needs_input"!==b){p(e,"needs_input"),o.lastStatus="needs_input",await f(m("session.needs_input","urgent",e,`Session ${e.id} is waiting for input`)),$["agent-needs-input"]&&await v("agent-needs-input",$["agent-needs-input"],e,o);return}if("ready"===e.activity&&!e.pr&&!c7.has(b)&&"spawning"!==b){if(await c(e,a))return;if(l&&e.branch)try{let t=await l.detectPR(e,a);t&&(e.pr=t,o.prDetected=!0,h(e,t))}catch{}let t=e.pr?"pr_open":"done";console.log(`[lifecycle] ${e.id}: activity=ready, prev=${b} → ${t}`),p(e,t),o.lastStatus=t,await f(m("session.exited","info",e,`Session ${e.id} completed (was: ${b} → ${t})`)),e.pr&&await f(m("pr.created","info",e,`PR #${e.pr.number} opened: ${e.pr.title}`,{url:e.pr.url,branch:e.pr.branch}));return}if(e.pr&&("idle"===e.activity||"exited"===e.activity)&&Date.now()-e.lastActivityAt.getTime()>12e4&&"pr_open"===e.status){console.log(`[lifecycle] Session ${e.id} idle after PR — marking done`),p(e,"done"),o.lastStatus="done";return}if("blocked"===e.activity){let t=$["agent-stuck"]?.threshold,i=t?de(t)?.value??6e5:6e5,n=Date.now()-e.lastActivityAt.getTime();if(n>i&&"stuck"!==b){p(e,"stuck"),o.lastStatus="stuck",await f(m("session.stuck","urgent",e,`Session ${e.id} appears stuck (idle ${Math.round(n/6e4)}m)`)),$["agent-stuck"]&&await v("agent-stuck",$["agent-stuck"],e,o);return}}if(!e.pr&&l&&e.branch)try{let t=await l.detectPR(e,a);t&&(e.pr=t,o.prDetected=!0,h(e,t),p(e,"pr_open"),o.lastStatus="pr_open",await f(m("pr.created","info",e,`PR #${t.number} opened: ${t.title}`,{url:t.url,branch:t.branch})))}catch(t){console.warn(`[lifecycle] PR detection failed for ${e.id}: ${t.message}`)}if(e.pr&&l){if(e.pr.title&&e.pr.baseBranch&&e.pr.branch||await d(e,a,l),l.getDeploymentPreviewUrl)try{let t=await l.getDeploymentPreviewUrl(e.pr);t&&g(e,{previewUrl:t})}catch{}let t=e.pr;try{let i=await l.getPRState(t);if(g(e,{prState:i}),"merged"===i){p(e,"merged"),o.lastStatus="merged",await f(m("pr.merged","info",e,`PR #${t.number} merged`,{url:t.url}));return}if("closed"===i){p(e,"done"),o.lastStatus="done",await f(m("pr.closed","info",e,`PR #${t.number} closed`,{url:t.url}));return}}catch(t){console.warn(`[lifecycle] PR state check failed for ${e.id}: ${t.message}`)}try{let i=await l.getCISummary(t),n=o.lastCIStatus;o.lastCIStatus=i,g(e,{ciStatus:i}),"failing"===i&&"failing"!==n?(p(e,"ci_failed"),o.lastStatus="ci_failed",await f(m("ci.failing","warning",e,`CI failing on PR #${t.number}`,{url:t.url})),$["ci-failed"]&&await v("ci-failed",$["ci-failed"],e,o)):"passing"===i&&"failing"===n&&("ci_failed"===e.status&&(p(e,"pr_open"),o.lastStatus="pr_open"),await f(m("ci.passing","info",e,`CI passing on PR #${t.number}`,{url:t.url})),delete o.reactionCounts["ci-failed"],delete o.reactionFirstSeen["ci-failed"])}catch(t){console.warn(`[lifecycle] CI check failed for ${e.id}: ${t.message}`)}try{let i=await l.getReviewDecision(t),n=o.lastReviewDecision;o.lastReviewDecision=i,g(e,{reviewDecision:i}),"changes_requested"===i&&"changes_requested"!==n?(p(e,"changes_requested"),o.lastStatus="changes_requested",await f(m("review.changes_requested","action",e,`Changes requested on PR #${t.number}`,{url:t.url})),$["changes-requested"]&&await v("changes-requested",$["changes-requested"],e,o)):"approved"===i&&"approved"!==n&&(p(e,"approved"),o.lastStatus="approved",await f(m("review.approved","info",e,`PR #${t.number} approved`,{url:t.url})))}catch(t){console.warn(`[lifecycle] Review check failed for ${e.id}: ${t.message}`)}try{let i=await l.getMergeability(t);g(e,{mergeReadiness:JSON.stringify(i)}),i.mergeable?"mergeable"!==o.lastStatus&&(p(e,"mergeable"),o.lastStatus="mergeable",await f(m("merge.ready","action",e,`PR #${t.number} is ready to merge`,{url:t.url,blockers:[]})),$["approved-and-green"]&&await v("approved-and-green",$["approved-and-green"],e,o)):i.noConflicts||($["merge-conflicts"]&&await v("merge-conflicts",$["merge-conflicts"],e,o),await f(m("merge.conflicts","warning",e,`PR #${t.number} has merge conflicts`,{url:t.url,blockers:i.blockers})))}catch(t){console.warn(`[lifecycle] Merge check failed for ${e.id}: ${t.message}`)}}if(e.agentInfo){let t={};e.agentInfo.summary&&(t.summary=e.agentInfo.summary),e.agentInfo.cost&&(t.cost=JSON.stringify(e.agentInfo.cost)),Object.keys(t).length>0&&g(e,t)}if(o.lastCheckedAt=Date.now(),"spawning"===b){if("active"===e.activity)p(e,"working"),o.lastStatus="working",await f(m("session.working","info",e,`Session ${e.id} is working`));else if("ready"===e.activity){if(await c(e,a)){p(e,"working"),o.lastStatus="working",await f(m("session.working","info",e,`Session ${e.id} is working`));return}if(x<12e4)return;if(!e.pr&&l&&e.branch)try{let t=await l.detectPR(e,a);t&&(e.pr=t,o.prDetected=!0,h(e,t))}catch{}let t=e.pr?"pr_open":"done";console.log(`[lifecycle] ${e.id}: spawning → ${e.activity} (missed active window) → ${t}`),p(e,t),o.lastStatus=t,await f(m("session.exited","info",e,`Session ${e.id} completed (spawning → ${t})`))}}if(!c7.has(e.status)&&"spawning"!==e.status&&!e.pr&&("idle"===e.activity||null===e.activity)){let t=Date.now()-e.lastActivityAt.getTime();t>18e5&&(console.log(`[lifecycle] ${e.id}: stale watchdog → done (status=${e.status}, activity=${String(e.activity)}, idle=${Math.round(t/6e4)}m)`),p(e,"done"),o.lastStatus="done",await f(m("session.exited","warning",e,`Session ${e.id} force-completed by watchdog (idle ${Math.round(t/6e4)}m)`,{reason:"stale_watchdog"})))}}}async function b(){if(a&&!o){o=!0;try{let e=await i.list(),n=e.filter(e=>!c7.has(e.status));n.length>0&&console.log(`[lifecycle] Tick: ${n.length} active session(s): ${n.map(e=>`${e.id}[${e.status}/${e.activity??"?"}]`).join(", ")}`);for(let t=0;t<e.length;t+=3){let i=e.slice(t,t+3);await Promise.allSettled(i.map(e=>$(e)))}let r=new Map;for(let t of e){let e=r.get(t.projectId)??[];e.push(t),r.set(t.projectId,e)}for(let[e,i]of r){let n=i.every(e=>c7.has(e.status));if(n&&i.length>0){if(l.has(e))continue;l.add(e);let n=t.projects[e];if(n&&y(n)["all-complete"]){let t=i[0];await f(m("summary.all_complete","info",t,`All ${i.length} sessions complete for ${e}`,{sessionCount:i.length,statuses:i.map(e=>({id:e.id,status:e.status}))}))}}else n||l.delete(e)}let a=new Set(e.map(e=>e.id));for(let e of s.keys())a.has(e)||s.delete(e)}catch(e){console.error(`[lifecycle] Tick failed: ${e instanceof Error?e.message:String(e)}`)}finally{o=!1}}}return{start(e){if(a)return;a=!0;let t=e??3e4;console.log(`[lifecycle] Starting poll loop (every ${t/1e3}s)`),b(),r=setInterval(()=>void b(),t)},stop(){a=!1,r&&(clearInterval(r),r=null),console.log("[lifecycle] Stopped")},getStates(){let e=new Map;for(let[t,i]of s)e.set(t,i.lastStatus);return e},async check(e){let t=await i.get(e);t&&await $(t)}}}e.s(["createLifecycleManager",()=>di],28738);var dn=e.i(12714);function dr(e,t){if(!e.startsWith("https://")&&!e.startsWith("http://"))throw Error(`[${t}] Invalid url: must be http(s), got "${e}"`)}async function da(e){let t=await (0,dn.open)(e,"r");try{let{size:e}=await t.stat();if(0===e)return null;let i=[],n=0,r=e;for(;r>0;){let e=Math.min(4096,r);r-=e;let a=Buffer.alloc(e);await t.read(a,0,e,r),i.unshift(a),n+=e;let o=Buffer.concat(i,n).toString("utf-8").split("\n");for(let e=o.length-1;e>=0;e--){let t=o[e].trim();if(t&&(e>0||0===r))return t}}return Buffer.concat(i,n).toString("utf-8").trim()||null}finally{await t.close()}}async function ds(e){try{let[t,i]=await Promise.all([da(e),(0,dn.stat)(e)]);if(!t)return null;let n=JSON.parse(t);if("object"==typeof n&&null!==n&&!Array.isArray(n))return{lastType:"string"==typeof n.type?n.type:null,modifiedAt:i.mtime};return{lastType:null,modifiedAt:i.mtime}}catch{return null}}e.s(["readLastJsonlEntry",()=>ds,"validateUrl",()=>dr],77646);let dl={intake:["Inbox","Backlog","To do","To Do","Todo","Ideas"],ready:["Ready to Dispatch","Ready"],dispatching:["Dispatching"],inProgress:["In Progress","Doing","In Development"],review:["Review","In Review"],done:["Done"],blocked:["Blocked"]},du=["intake","ready","dispatching","inProgress","review","done","blocked"];function dc(e){return e.trim().toLowerCase()}function dd(e,t){if(!t)return e;let i={...e};for(let e of du){let n=t[e];Array.isArray(n)&&n.length>0&&(i[e]=n)}return i}function df(e,t){return dd(dd(dl,e),t)}function dm(e){let t=e.split("\n"),i=[];for(let e=0;e<t.length;e++){let n=t[e]?.match(/^##\s+(.+)\s*$/);if(!n)continue;let r=(n[1]??"").trim(),a=e+1,o=t.length;for(let e=a;e<t.length;e++)if(/^##\s+/.test(t[e]??"")){o=e;break}i.push({heading:r,headingLine:e,bodyStartLine:a,bodyEndLine:o,lines:t.slice(a,o)}),e=o-1}return i}function dp(e,t){let i=dc(t);for(let t of dm(e))if(dc(t.heading)===i)return t;return null}function dh(e,t){let i=new Set(t.map(e=>dc(e)));return dm(e).filter(e=>i.has(dc(e.heading)))}function dg(e,t){let i=dm(e).map(e=>e.heading),n=new Map(i.map(e=>[dc(e),e])),r={};for(let e of du){let i=t[e][0]??e;for(let r of t[e]){let e=n.get(dc(r));if(e){i=e;break}}r[e]=i}return{aliases:t,columnsByRole:r,headings:i}}function dv(e){let t=[];for(let i=0;i<e.lines.length;i++){let n=function(e){let t=db(e);if(!t)return null;let i=e.slice(t.textStart).trim();return i?{checked:t.checked,text:i}:null}(e.lines[i]??"");if(!n)continue;let r=n.text;for(let t=i+1;t<e.lines.length;t++){let i=e.lines[t]??"";if(!(!(!i.trim()||/^\s*##\s+/.test(i)||db(i))&&(/^\s+/.test(i)||/^\s*>\s+/.test(i))))break;let n=i.trimStart().replace(/^>\s?/,"").trim();n&&(r+=` ${n}`)}t.push({text:r.replace(/\s+/g," ").trim(),checked:n.checked,rawLine:e.lines[i]??"",lineOffset:i})}return t}function dy(e,t){let i=dp(e,t);return i?dv(i).filter(e=>!e.checked).map(e=>e.text):[]}function d$(e,t){let i=new Set(t.map(e=>dc(e))),n=[];for(let t of dm(e))if(i.has(dc(t.heading)))for(let e of t.lines)db(e)&&n.push({line:e,column:t.heading});return n}function db(e){let t=0,i=e.length;for(;t<i&&dk(e.charCodeAt(t));)t+=1;if(">"===e[t])for(t+=1;t<i&&dk(e.charCodeAt(t));)t+=1;let n=e.charCodeAt(t);if(45!==n&&42!==n&&43!==n||(t+=1,!dk(e.charCodeAt(t))))return null;for(;dk(e.charCodeAt(t));)t+=1;if(91!==e.charCodeAt(t))return null;let r=e.charCodeAt(t+1);if(32!==r&&120!==r&&88!==r||93!==e.charCodeAt(t+2)||(t+=3,!dk(e.charCodeAt(t))))return null;for(;dk(e.charCodeAt(t));)t+=1;return{checked:32!==r,textStart:t}}function dk(e){return 32===e||9===e}function d_(e,t,i,n,r){let a=e.split("\n"),o=dp(e,i),s=dp(e,n);if(!o||!s)return{content:e,moved:!1};let l=dv(o).filter(e=>!e.checked).find(e=>e.text===t);if(!l)return{content:e,moved:!1};let u=o.bodyStartLine+l.lineOffset;a.splice(u,1);let c=`- [x] ${r??t}`,d=s.bodyStartLine;return a.splice(d,0,c),{content:a.join("\n"),moved:!0}}function dw(e,t,i,n,r){let a=e.split("\n"),o=dp(e,i),s=dp(e,n);if(!o||!s)return{content:e,moved:!1};let l=-1;for(let e=o.bodyStartLine;e<o.bodyEndLine;e++)if((a[e]??"")===t){l=e;break}return -1===l?{content:e,moved:!1}:(a.splice(l,1),a.splice(s.bodyStartLine,0,r??t),{content:a.join("\n"),moved:!0})}function dx(e,t,i){let n=e.split("\n"),r=n.findIndex(e=>e===t);return -1===r?e:(n[r]=i,n.join("\n"))}e.s(["DEFAULT_COLUMN_ALIASES",0,dl,"getSectionsByAliases",()=>dh,"getTrackedCardLines",()=>d$,"getUncheckedTasks",()=>dy,"moveCardLine",()=>dw,"moveUncheckedTask",()=>d_,"parseBoardSections",()=>dm,"parseChecklistItems",()=>dv,"parseChecklistPrefix",()=>db,"replaceLine",()=>dx,"resolveColumnAliases",()=>df,"resolveColumnsFromBoard",()=>dg],64348);let dS=(0,a.join)("orchestrator","logs"),dI="watcher-actions.log";function dO(e){return(function(e){if(!(0,r.existsSync)(e))return e;try{return r.realpathSync.native(e)}catch{return e}})(e).replace(/\\/g,"/")}function dj(e){(0,r.mkdirSync)((0,a.dirname)(e),{recursive:!0})}function dN(e){if(!(0,r.existsSync)(e))return;let t=0;try{t=(0,r.statSync)(e).size}catch{return}if(!(t<1e6)){for(let t=3;t>=1;t--){let i=`${e}.${t}`,n=`${e}.${t+1}`;if((0,r.existsSync)(i)){if(3===t){try{(0,r.renameSync)(i,n)}catch{}continue}try{(0,r.renameSync)(i,n)}catch{}}}try{(0,r.renameSync)(e,`${e}.1`)}catch{}}}function dE(e,t,i){let n=df(e.columnAliases);for(let r of e.boards??[])"string"!=typeof r&&r.aliases&&function(e,t,i){let n,r,o=!(n=dO(i.trim()))||n.startsWith("/")||/^[A-Za-z]:\//.test(n)?n:dO((0,a.join)(t,n)),s=dO(e);return o.includes("*")||o.includes("?")?(r=dO(o).replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"::DOUBLE_STAR::").replace(/\*/g,"[^/]*").replace(/::DOUBLE_STAR::/g,".*").replace(/\?/g,"[^/]"),RegExp(`^${r}$`)).test(s):s===o}(i,t,r.path)&&(n=df(n,r.aliases));return n}function dA(e,t,i,n){let r=dm(t),a=dg(t,i),o=a.columnsByRole.ready,s=0;for(let e of r)if(e.heading===o)for(let t of e.lines)/^\s*(?:>\s*)?-\s\[\s\]\s+/.test(t)&&s++;let l=new Set(r.map(e=>e.heading.toLowerCase())),u=[];for(let e of["intake","ready","review","done"]){let t=a.columnsByRole[e];l.has(t.toLowerCase())||u.push(`Missing expected ${e} column (${t})`)}return{boardPath:e,exists:!0,parseOk:0===u.length,headingCount:r.length,headings:r.map(e=>e.heading),columns:a.columnsByRole,readyCount:s,unresolvedProjects:function(e,t){let i=new Set;for(let n of e.matchAll(/#project\/([\w.-]+)/g)){let e=n[1]??"";e&&(t.has(e)||i.add(e))}return[...i]}(t,n),errors:u}}function dD(e,t){return(0,a.join)(e,dS,t)}function dz(e,t){let i={...t,ts:new Date().toISOString()},n=dD(e,dI);dj(n),dN(n);try{(0,r.appendFileSync)(n,`${JSON.stringify(i)}
|
|
148
148
|
`,"utf-8")}catch{}if("1"!==process.env.CONDUCTOR_DEBUG)return;let a=dD(e,"watcher-debug.log");dj(a),dN(a);let o=`[${i.ts}] [${i.level}] ${i.action}${i.boardPath?` [${i.boardPath}]`:""}${i.context?` ${i.context}`:""}
|
|
149
149
|
`;try{(0,r.appendFileSync)(a,o,"utf-8")}catch{}}function dP(e,t=20){let i=dD(e,dI);if(!(0,r.existsSync)(i))return[];try{return(0,r.readFileSync)(i,"utf-8").split(/\r?\n/).map(e=>e.trim()).filter(Boolean).slice(-t).map(e=>{try{return JSON.parse(e)}catch{return null}}).filter(e=>null!==e)}catch{return[]}}function dU(e){if(!e)return[];let t=[];for(let i of e)t.push("string"==typeof i?i:i.path);return t}function dT(){return{...dl}}e.s(["boardEntriesToPaths",()=>dU,"defaultAliasMapping",()=>dT,"parseBoardStatus",()=>dA,"readRecentWatcherActions",()=>dP,"recordWatcherAction",()=>dz,"resolveBoardAliasesForPath",()=>dE],38969);let dZ=(0,cq.promisify)(cJ.execFile),dC=["codex","claude-code","gemini","amp","cursor-cli","opencode","droid","qwen-code","ccr","github-copilot"];function dL(e,t){if(!t.trim())return!1;let i=e.toLowerCase().toLowerCase().match(/[a-z0-9]+(?:-[a-z0-9]+)*/g)??[],n=t.toLowerCase().replace(/\s+/g," ").trim();if(n.includes(" ")){let e=n.split(" ").length;if(0===e)return!1;for(let t=0;t+e<=i.length;t+=1)if(i.slice(t,t+e).join(" ")===n)return!0;return!1}return i.includes(n)}function dR(e,t){if(!e)return t[0]??cG("codex",dC);let i=cG(e,t);if(!t.some(e=>e.toLowerCase()===i.toLowerCase()))throw Error(`Unsupported agent: ${e}`);return i}function dM(e){let t=new Set,i=[];for(let n of e){let e=n.trim();if(!e)continue;let r=e.toLowerCase();t.has(r)||(t.add(r),i.push(r))}return i}function dB(e){let t={};for(let i of e.matchAll(/#([\w-]+)\/([\w.\-]+)/g))t[i[1]]=i[2];return t}function dF(e){return e.replace(/#[\w-]+\/[\w.\-]+/g,"").replace(/!\[\[([^\]]+)\]\]/g,"").replace(/\[\[([^\]]+)\]\]/g,"").replace(/!\[([^\]]*)\]\(([^)]+)\)/g,"").replace(/\[(task|attempt|parent):[^\]]+\]/g,"").replace(/\s+/g," ").trim()}function dJ(e){return/#agent\//.test(e)&&/#project\//.test(e)}let dq=new Map;function dW(t){try{let i=(0,a.dirname)(t);for(let e=0;e<5&&!(0,r.existsSync)((0,a.join)(i,".obsidian"));e++)i=(0,a.dirname)(i);let n=(0,a.basename)(i),o=t.substring(t.indexOf(n+"/")+n.length+1).replace(/\.md$/,""),s=`obsidian://open?vault=${encodeURIComponent(n)}&file=${encodeURIComponent(o)}`,{execSync:l}=e.r(74533);l(`xdg-open "${s}"`,{timeout:3e3,stdio:"ignore"})}catch{}}async function dK(e,t,i){if(!(0,r.existsSync)(e))return;let n=(0,r.readFileSync)(e,"utf-8"),o=dq.get(e);if(o&&Date.now()-o.at<15e3&&n===o.content)return;let s=process.env.CONDUCTOR_WORKSPACE??process.cwd(),l=function(e,t){let i=dh(e,t);if(0===i.length)return[];let n=[];for(let e of i){let t=e.lines;for(let e=0;e<t.length;e++){let i=t[e]??"";if(!i.trim())continue;let r=i;if(i.trimStart().startsWith(">")){let e=i.trimStart().replace(/^>\s?/,""),t=e.trim().toLowerCase();if(t.startsWith("drop rough ideas")||t.startsWith("move tagged tasks")||t.startsWith("agent finished")||t.startsWith("tags:")||!e.trim())continue;r=e}let a=e=>null!==db(e),o=function(e){let t=db(e);if(!t)return null;let i=e.slice(t.textStart);return i||null}(r);if(o){let r=[i],s=o;for(;e+1<t.length&&/^[\t ]/.test(t[e+1]??"")&&!a((t[e+1]??"").trimStart());){let i=t[++e]??"",n=i.trimStart().replace(/^>\s?/,"").trim();r.push(i),n&&(s+=` ${n}`)}n.push({block:r.join("\n"),text:s.replace(/\s+/g," ").trim()});continue}if(!r.trimStart().startsWith("## ")&&!r.trimStart().startsWith("%%")&&!r.trimStart().startsWith("```")){let o=[i],s=r.trim();for(;e+1<t.length&&/^[\t ]/.test(t[e+1]??"")&&!a((t[e+1]??"").trimStart());){let i=t[++e]??"",n=i.trimStart().replace(/^>\s?/,"").trim();o.push(i),n&&(s+=` ${n}`)}s&&n.push({block:o.join("\n"),text:s.replace(/\s+/g," ").trim()})}}}return n}(n,dE(t,s,e).intake);if(0===l.length)return;let u=d7(e,t),c=(0,a.basename)((0,a.dirname)(e)),d=Object.entries(t.projects).filter(([e,t])=>e===c||t.boardDir===c).map(([e])=>e);0===d.length&&(d=Object.keys(t.projects));let f=n,m=!1;for(let n of l){if(dJ(n.text))continue;let r=u?t.projects[u]?.agent:void 0,a=function(e,t,i,n,r){let a=dF(e).replace(/^\s*[\-*•]\s*/,"").replace(/^\s*\[\s?\]\s*/,"").replace(/\s+/g," ").trim();if(!a)return null;if(dJ(e)){let t=dB(e).agent;if(t){let i=cG(dR(t,n),n);cG(t,n)!==i&&(e=e.replace(`#agent/${t}`,`#agent/${i}`));let r=(e.match(/#[\w-]+\/[\w.\-]+/g)??[]).map(e=>e.startsWith("#agent/")?`#agent/${i}`:e);return e.startsWith("- [ ] ")?null:`- [ ] ${a} ${r.join(" ")}`.trim()}return e.startsWith("- [ ] ")?null:`- [ ] ${a} ${e.match(/#[\w-]+\/[\w.\-]+/g)?.join(" ")??""}`.trim()}let o=function(e,t,i){let n,r=dB(e).project;if(r)return r;if(t)return t;if(1===i.length)return i[0]??"my-app";let a=e.toLowerCase(),o=0;for(let e of i){let t=e.toLowerCase().split("-"),i=0;for(let e of t)e.length>=3&&a.includes(e)&&i++;i>o&&(o=i,n=e)}return n&&o>0?n:i[0]??"my-app"}(e,t,i),s=function(e,t,i){let n=dB(e).agent;if(n)return dR(n,t);let r=e.toLowerCase();return["architecture","refactor","design","figma","complex","plan","review"].some(e=>r.includes(e))?dR("claude-code",t):["gemini","google","vertex"].some(e=>r.includes(e))?dR("gemini",t):["amplify","amp"].some(e=>dL(r,e))?dR("amp",t):["cursor"].some(e=>r.includes(e))?dR("cursor-cli",t):["robot","agentic","android","droid"].some(e=>r.includes(e))?dR("droid",t):["qwen","alibaba","qwen-code","qwen code"].some(e=>r.includes(e))?dR("qwen-code",t):["copilot","github copilot","gh copilot"].some(e=>r.includes(e))?dR("github-copilot",t):["ccr","claude code router","claude-code-router"].some(e=>r.includes(e))?dR("ccr",t):i?dR(i,t):t[0]??cG("codex",dC)}(e,n,r),l=function(e){let t=dB(e).type;if(t)return t;let i=e.toLowerCase();return i.includes("review")?"review":i.includes("bug")||i.includes("broken")||i.includes("fix")?"bug":i.includes("test")||i.includes("qa")?"test":i.includes("refactor")?"refactor":"feature"}(e),u=function(e){let t=dB(e).priority;if(t)return t;let i=e.toLowerCase();return/(urgent|critical|asap|broken|login|auth)/.test(i)?"high":/(minor|nice to have|later)/.test(i)?"low":"medium"}(e),c=(e.match(/#([\w-]+)\/([\w.\-]+)/g)??[]).filter(e=>!e.startsWith("#agent/")&&!e.startsWith("#project/")&&!e.startsWith("#type/")&&!e.startsWith("#priority/")),d=c.length>0?" "+c.join(" "):"";return`- [ ] ${a} #agent/${s} #project/${o} #type/${l} #priority/${u}${d}`}(n.text,u,d,i,r);a&&f.includes(n.block)&&(f=f.replace(n.block,a),m=!0,console.log(`[board-watcher] Inbox enhanced: "${n.text.substring(0,60)}"`),dz(s,{level:"info",action:`Inbox enhanced: ${n.text.substring(0,60)}`,boardPath:e}))}m&&((0,r.writeFileSync)(e,f,"utf-8"),dq.set(e,{content:f,at:Date.now()}),console.log(`[board-watcher] Inbox enhancement written: ${e}`),dz(s,{level:"info",action:"Inbox enhancement written",boardPath:e}),dW(e))}let dV=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".tiff"]),dG={spawning:"🔄",working:"🟢",pr_open:"🔵",ci_failed:"🔴",review_pending:"🟡",changes_requested:"🟠",approved:"✅",mergeable:"🟢",merged:"✨",cleanup:"🧹",needs_input:"⏸️",stuck:"⚠️",errored:"❌",killed:"💀",done:"✅",terminated:"🛑"},dH=new Set(["done","merged","killed","terminated","cleanup","errored"]);function dY(e,t){let i=t.getTime()-e.getTime();if(i<0)return"0s";let n=Math.floor(i/1e3);if(n<60)return`${n}s`;let r=Math.floor(n/60);if(r<60)return`${r}m`;let a=Math.floor(r/60),o=r%60;return o>0?`${a}h ${o}m`:`${a}h`}function dX(e){let t=[],i=e.taskId,n=e.attemptId,r=e.parentTaskId;return i&&t.push(`[task:${i}]`),n&&t.push(`[attempt:${n}]`),r&&t.push(`[parent:${r}]`),t.join(" ")}function dQ(e,t){let i=e.match(RegExp(`\\[${t}:([^\\]]+)\\]`));return i?.[1]?.trim()??null}function d0(e,t){let i=[];for(let n of d$(e,t)){let e=function(e){let t=[...e.matchAll(/\[([a-zA-Z][\w]*(?:-[\w]+)*-\d+)\](?!\()/g)];return 0===t.length?null:t[t.length-1][1]}(n.line);e&&i.push({sessionId:e,line:n.line,column:n.column,basePrompt:function(e,t){let i=e.replace(/\s*\[(task|attempt|parent):[^\]]+\]/g,"").replace(/\s+/g," "),n=`[${t}]`,r=i.replace(/^- \[[ x]\] /,""),a=r.indexOf(n);return -1===a?r.replace(/\s*—\s*.*$/,"").trim():r.slice(0,a).trim()}(n.line,e),taskId:dQ(n.line,"task"),attemptId:dQ(n.line,"attempt"),parentTaskId:dQ(n.line,"parent")})}return i}function d1(e){return"waiting_input"===e.activity||"blocked"===e.activity?{display:"waiting for input",emoji:dG.needs_input??"⏸️"}:"exited"!==e.activity||dH.has(e.status)?"active"===e.activity?{display:"actively working",emoji:dG.working??"🟢"}:"idle"!==e.activity||dH.has(e.status)?{display:e.status.replace(/_/g," "),emoji:dG[e.status]??"❓"}:{display:"idle",emoji:"💤"}:{display:"exited (crashed?)",emoji:"💀"}}function d4(e,t,i,n,r){return dw(e,t,i,n,r).content}async function d6(e){let{owner:t,repo:i,branch:n}=e;if(!t||!i||!n)return null;try{let{stdout:e}=await dZ("gh",["api",`repos/${t}/${i}/commits/${n}/statuses`,"--jq",'[.[] | select(.context | test("(?i)netlify|vercel|deploy-preview|preview")) | .target_url][0] // empty'],{timeout:1e4}),r=e.trim();if(r)return r}catch{}try{let{stdout:e}=await dZ("gh",["api",`repos/${t}/${i}/deployments`,"--jq",'[.[] | select(.environment | test("(?i)preview")) | .id][0] // empty'],{timeout:1e4}),n=e.trim();if(n){let{stdout:e}=await dZ("gh",["api",`repos/${t}/${i}/deployments/${n}/statuses`,"--jq",".[0].environment_url // .[0].target_url // empty"],{timeout:1e4}),r=e.trim();if(r)return r}}catch{}return null}function d2(e){return(0,uT.createHash)("md5").update(e.trim()).digest("hex")}function d9(e){return`${e}-${(0,uT.randomBytes)(3).toString("hex")}`}function d3(e){return e.trim().toLowerCase()}function d8(e,...t){let i=[],n=new Set;for(let r of t){if(!e.has(d3(r)))continue;let t=d3(r);n.has(t)||(n.add(t),i.push(r))}return i}function d5(e){if(e.taskId)return d2(`${e.taskId}|${e.prompt}`);let t=e.projectId?`project:${e.projectId}`:`board:${e.boardPath}`;return d2(`${t}|${e.prompt}`)}function d7(e,t){let i=(0,a.dirname)(e),n=(0,a.basename)(i),r=Object.keys(t.projects).filter(e=>e===n);if(1===r.length)return r[0];let o=[];for(let[e,i]of Object.entries(t.projects))i.boardDir&&i.boardDir===n&&o.push(e);if(1===o.length)return o[0];if(!(o.length>1)){for(let[e,i]of Object.entries(t.projects))if(i.boardDir&&i.boardDir===n)return e;for(let[e,i]of Object.entries(t.projects))if((0,a.basename)(i.path)===n)return e}}function fe(e,t={}){let i,n,o,s,l,u,c,d,f,m,p,h,g,v,y=dM(t.agentNames??dC),$=function(e,t){let i=new Set,n=t.workspacePath??process.env.CONDUCTOR_WORKSPACE??(e.configPath?(0,a.dirname)(e.configPath):process.cwd());for(let t of(i.add((0,a.resolve)(n)),Object.values(e.projects)))"string"==typeof t.path&&0!==t.path.trim().length&&i.add((0,a.resolve)(t.path));for(let e of t.boardPaths??[])i.add((0,a.resolve)((0,a.dirname)(e)));for(let e of t.supportDirectories??[])0!==e.trim().length&&i.add((0,a.resolve)(e));return[...i]}(e,t),b=Object.keys(e.projects).sort(),k=(i=Object.keys(e.projects).sort(),n=dM(y.length>0?y:dC),i.length>0&&i.join(","),n.length>0&&n.join(","),o=i.length>0?i.map(e=>"#project/"+e).join(" "):"#project/my-project",s=n.map(e=>"#agent/"+e).join(" "),l=i.length>0?i.map(t=>{let i=e.projects[t].description??t;return"| `#project/"+t+"` | "+i+" |"}).join("\n"):"| `#project/my-project` | Replace this after adding your first project |",u=n.map(e=>`| \`#agent/${e}\` | ${e} agent plugin |`).join("\n"),c=i[0]??"my-project",d=i[1]??"my-project",f=n[0]??"codex",m=n[1]??"claude-code",["---","tags:",[" - conductor/reference",...i.map(e=>" - project/"+e),...n.map(e=>" - agent/"+e)," - type/feature"," - type/fix"," - type/review"," - type/chore"," - type/docs"," - priority/high"," - priority/medium"," - priority/low"].join("\n"),"---","","# Conductor Tag Reference","","Quick-reference for tagging tasks in any `CONDUCTOR.md` board.","Type `#` in Obsidian for autocomplete. Type `ctask` in VS Code for a full task snippet.","","> Auto-generated by conductor on startup. Add a project to `conductor.yaml` → it appears here automatically.","","---","","## Project Tags","","| Tag | Description |","|-----|-------------|",l,"","---","","## Agent Tags","","| Tag | Uses |","|-----|------|",...u.split("\n"),"","---","","## Type Tags","","| Tag | Meaning |","|-----|---------|","| `#type/feature` | New feature or enhancement |","| `#type/fix` | Bug fix |","| `#type/review` | Code review or audit |","| `#type/chore` | Maintenance / deps / config |","| `#type/docs` | Documentation |","","---","","## Priority Tags","","| Tag | Meaning |","|-----|---------|","| `#priority/high` | Ship today |","| `#priority/medium` | This sprint |","| `#priority/low` | Nice to have |","","---","","## Example Task Formats","","```","Fix login button tooltip #project/"+c+" #agent/"+f+" #type/fix #priority/high","","Add analytics dashboard #project/"+d+" #agent/"+m+" #type/feature","```","","---","",o,s,"#type/feature #type/fix #type/review #type/chore #type/docs","#priority/high #priority/medium #priority/low",""].join("\n")),_=JSON.stringify((p=Object.keys(e.projects).sort(),h=dM(y.length>0?y:dC),g=p.length>0?p.join(","):"my-project",{"Conductor Project Tag":{prefix:"#project",body:["#project/${1|"+g+"|}"],description:"Route task to a Conductor project"},"Conductor Agent Tag":{prefix:"#agent",body:["#agent/${1|"+(v=h.length>0?h.join(","):"codex,claude-code,gemini")+"|}"],description:"Assign task to a specific agent"},"Conductor Type Tag":{prefix:"#type",body:["#type/${1|feature,fix,review,chore,docs|}"],description:"Set task type"},"Conductor Priority Tag":{prefix:"#priority",body:["#priority/${1|high,medium,low|}"],description:"Set task priority"},"Conductor Full Task":{prefix:"ctask",body:["- [ ] ${1:Task description} #project/${2|"+g+"|} #agent/${3|"+v+"|} #type/${4|feature,fix,review,chore|} #priority/${5|high,medium,low|}"],description:"Full Conductor task with all tags"}}),null,2),w=0;for(let e of $)try{if(!(0,r.existsSync)(e)||!(0,r.statSync)(e).isDirectory())continue;(0,r.writeFileSync)((0,a.join)(e,"CONDUCTOR-TAGS.md"),k,"utf-8");let t=(0,a.join)(e,".vscode");(0,r.mkdirSync)(t,{recursive:!0}),(0,r.writeFileSync)((0,a.join)(t,"conductor.code-snippets"),_,"utf-8"),w+=1}catch{}w>0&&console.log("[board-watcher] Support files synced: "+w+" location(s), "+b.length+" projects")}function ft(e){let{config:t,sessionManager:i,boardPaths:n,onDispatch:o,onError:s}=e,l=e.dashboardUrl??t.dashboardUrl,u=dC;e.agentNames&&e.agentNames.length>0&&(u=e.agentNames);let c=dM(u),d=e.workspacePath??process.env.CONDUCTOR_WORKSPACE??`${process.env.HOME}/.conductor/workspace`,f=(0,a.join)(d,"orchestrator",".dispatched_tasks_v2");(0,r.existsSync)((0,a.dirname)(f))||(0,r.mkdirSync)((0,a.dirname)(f),{recursive:!0});let m=new Set((0,r.existsSync)(f)?(0,r.readFileSync)(f,"utf-8").split(/\r?\n/).map(e=>e.trim()).filter(Boolean):[]),p=[],h=null,g=null,v=!1,y=new Map,$=new Map,b="1"===process.env.CONDUCTOR_DEBUG;function k(e,t){console.log(`[board-watcher] ${e}`),dz(d,{level:"info",action:e,boardPath:t})}function _(e,t){b&&(console.log(`[board-watcher][debug] ${e}`),dz(d,{level:"debug",action:e,boardPath:t}))}function w(e,t,i){console.error(`[board-watcher] ${t}: ${e.message}`),dz(d,{level:"error",action:`${t}: ${e.message}`,boardPath:i,context:t}),s?.(e,t)}async function x(e,n,r,s){var l;let u=n.project??r;if(!u)return k(`Skipping task (no project): "${n.prompt}"`),null;if(!t.projects[u])return k(`Unknown project "${u}" in task: "${n.prompt}"`),null;let d=(l=n.agent??function(e,t){let i=e.toLowerCase();for(let e of["design","architect","plan","feature","build new","refactor","complex"])if(i.includes(e))return dR("claude-code",t);for(let e of["gemini","google","vertex"])if(i.includes(e))return dR("gemini",t);for(let e of["amplify","amp"])if(dL(i,e))return dR("amp",t);for(let e of["cursor"])if(i.includes(e))return dR("cursor-cli",t);for(let e of["robot","agentic","android","droid"])if(i.includes(e))return dR("droid",t);for(let e of["qwen","qwen-code","qwen code"])if(i.includes(e))return dR("qwen-code",t);for(let e of["copilot","github copilot","gh copilot"])if(i.includes(e))return dR("github-copilot",t);for(let e of["ccr","claude code router","claude-code-router"])if(i.includes(e))return dR("ccr",t);return t[0]??cG("codex",dC)}(n.prompt,c),dR(l,c));n.agent&&cG(n.agent,c)!==cG(d,c)&&k(`Normalized agent tag for dispatch: "${n.agent}" -> "${d}"`,e),n.attachments.length>0&&k(` Attachments: ${n.attachments.map(e=>`${e.type}:${(0,a.basename)(e.path)}`).join(", ")}`,e),_(`Dispatch metadata task=${s.taskId} attempt=${s.attemptId}${n.parentTaskId?` parent=${n.parentTaskId}`:""}${n.profile?` profile=${n.profile}`:""}`,e),k(`Dispatching [${d}${n.model?` model=${n.model}`:""}] -> ${u}: "${n.prompt}"`,e);try{let t=await i.spawn({projectId:u,issueId:n.issueId,prompt:n.prompt||void 0,agent:d,model:n.model,profile:n.profile,taskId:s.taskId,attemptId:s.attemptId,parentTaskId:n.parentTaskId,attachments:n.attachments.length>0?n.attachments:void 0});return k(`Spawned session ${t.id} for "${n.prompt}"`,e),o?.(u,t.id,n.prompt),{sessionId:t.id,taskId:s.taskId,attemptId:s.attemptId}}catch(t){return w(t instanceof Error?t:Error(String(t)),`spawn for "${n.prompt}"`,e),null}}async function S(e){let i;if(!(0,r.existsSync)(e))return;let n=(0,r.readFileSync)(e,"utf-8"),o=dq.get(e);if(o&&Date.now()-o.at<15e3&&n===o.content)return;let s=y.get(e);if(s)return void await s;let l=new Promise(e=>{i=e});y.set(e,l);try{var u;let i=(0,r.readFileSync)(e,"utf-8"),n=dg(i,dE(t,d,e)),o=n.columnsByRole.ready,s=new Set(n.headings.map(d3)),l=function(e,t){let i=t.columnsByRole.dispatching;if(e.has(d3(i)))return i;let n=t.columnsByRole.inProgress;if(e.has(d3(n)))return n;let r=t.columnsByRole.review;if(e.has(d3(r)))return r;let a=t.columnsByRole.done;return e.has(d3(a))?a:i}(s,n),c=d8(s,l,n.columnsByRole.inProgress,n.columnsByRole.review,n.columnsByRole.blocked,n.columnsByRole.done),p=c.length>0?c:[o],h=d7(e,t),g=dy(i,o);if(_(`Parse ${e}: ready=${o} tasks=${g.length}`,e),0===g.length)return;let v=i,y=!1;for(let t of g){let i=function(e,t){let i=dB(e),n=function(e){let t={};for(let i of e.matchAll(/\[(task|attempt|parent):([^\]]+)\]/g)){let e=i[1],n=(i[2]??"").trim();e&&n&&(t[e]=n)}return t}(e),o=dF(e),s=i.issue,l=function(e){let t=e.match(/(?<!\w)#(\d+)(?!\w)/);if(t)return t[1];let i=e.match(/\b([A-Z]{2,10}-\d+)\b/);if(i)return i[1]}(e),u=function(e,t){let i=[],n=new Set,o=(e,o)=>{let s=function(e,t){let i,n,o,s,l;if(!e.trim())return null;let u=((n=(i=e.trim()).indexOf("|"))>=0&&(i=i.slice(0,n)),(o=i.indexOf("#"))>=0&&(i=i.slice(0,o)),i.trim());if((s=u.trim()).startsWith("<")&&s.endsWith(">")&&(s=s.slice(1,-1).trim()),l=s.match(/^(.+?)\s+["'][^"']*["']$/),l?.[1]&&(s=l[1].trim()),!(u=(u=s).trim())||/^[a-z][a-z0-9+.-]*:\/\//i.test(u)||u.startsWith("obsidian://")||u.startsWith("mailto:")||u.startsWith("#"))return null;try{u=decodeURIComponent(u)}catch{}if((u=u.replace(/\\/g,"/").trim()).startsWith("/")||u.startsWith("~"))return null;let c=(0,a.resolve)(t),d=c.endsWith("/")?c:`${c}/`,f=(0,a.resolve)(c,u);if(f!==c&&!f.startsWith(d))return null;if((0,r.existsSync)(f))return f;if(!u.endsWith(".md")){let e=(0,a.resolve)(c,`${u}.md`);if((e===c||e.startsWith(d))&&(0,r.existsSync)(e))return e}let m=(0,a.resolve)(c,"attachments",u);return(m===c||m.startsWith(d))&&(0,r.existsSync)(m)?m:f}(o,t);!s||n.has(s)||(n.add(s),i.push({path:s,ref:e,type:function(e){let t=e.toLowerCase();for(let e of dV)if(t.endsWith(e))return"image";return"file"}(o)}))};for(let t of e.matchAll(/!\[\[([^\]]+)\]\]/g)){let e=t[0];o(e,t[1])}for(let t of e.matchAll(/\[\[([^\]]+)\]\]/g)){let i=t.index??0;if(i>0&&"!"===e[i-1])continue;let n=t[0];o(n,t[1])}for(let t of e.matchAll(/!\[([^\]]*)\]\(([^)]+)\)/g)){let e=t[0];o(e,t[2])}for(let t of e.matchAll(/\[([^\]]*)\]\(([^)]+)\)/g)){let i=t.index??0;if(i>0&&"!"===e[i-1])continue;let n=t[0];o(n,t[2])}return i}(e,t);return{raw:e,prompt:o,agent:i.agent,model:i.model,profile:i.profile,project:i.project,issueId:s??l,taskType:i.type,priority:i.priority,taskId:n.task,attemptId:n.attempt,parentTaskId:n.parent,attachments:u}}(t,d),{taskId:n,attemptId:s}={taskId:i.taskId??d9("t"),attemptId:i.attemptId??d9("a")},c=d5({boardPath:e,projectId:h,taskId:i.taskId,prompt:i.prompt});if(m.has(c))continue;if(d0(v,p).some(e=>i.taskId?e.taskId===i.taskId:e.basePrompt===i.prompt)){m.add(c);continue}m.add(c);let g=await x(e,i,h,{taskId:n,attemptId:s});if(g){try{(0,r.appendFileSync)(f,`${c}
|
|
150
150
|
`,"utf-8")}catch{}let e=function(e,t,i){let n=[`[task:${t}]`,`[attempt:${i}]`];return e.parentTaskId&&n.push(`[parent:${e.parentTaskId}]`),n.join(" ")}(i,g.taskId,g.attemptId),n=`${i.prompt} ${e} [${g.sessionId}]`,a=(u=v,d_(u,t,o,l,n));v=a.content,y=a.moved}else m.delete(c)}if(y&&v!==i&&((0,r.writeFileSync)(e,v,"utf-8"),dq.set(e,{content:v,at:Date.now()}),k(`Board updated: ${e}`,e),dW(e)),m.size>5e3){let e=m.size-5e3,t=0;for(let i of m){if(t>=e)break;m.delete(i),t++}}}catch(t){w(t instanceof Error?t:Error(String(t)),`checkBoard ${e}`,e)}finally{y.delete(e),i()}}async function I(e){let n;if(!(0,r.existsSync)(e))return;let o=y.get(e);if(o)return void await o;let s=new Promise(e=>{n=e});y.set(e,s);try{var u,c,f,p,h,g;let n,o=(0,r.readFileSync)(e,"utf-8"),s=dg(o,dE(t,d,e)),v=new Set(s.headings.map(d3)),y=d8(v,s.columnsByRole.dispatching,s.columnsByRole.inProgress,s.columnsByRole.review,s.columnsByRole.blocked,s.columnsByRole.done),b=function(e,t){let i=t.columnsByRole.done;if(e.has(d3(i)))return i;let n=t.columnsByRole.review;if(e.has(d3(n)))return n;let r=t.columnsByRole.inProgress;return e.has(d3(r))?r:t.columnsByRole.ready}(v,s),_=d7(e,t),x=dq.get(e);if(x&&Date.now()-x.at<15e3&&o===x.content)return;let S=d0(o,y);if(0===S.length)return;try{n=await i.list()}catch(e){w(e instanceof Error?e:Error(String(e)),"updateBoardState list()");return}let I=new Map(n.map(e=>[e.id,e])),O=new Map;for(let t of S){let i=I.get(t.sessionId);if(!i?.pr)continue;let n=t.sessionId,r=$.get(n);if(r){if(r.url)O.set(t.sessionId,r.url);else if(Date.now()-r.checkedAt<12e4)continue}if(!O.has(t.sessionId))try{let r=await d6(i.pr);$.set(n,{url:r,checkedAt:Date.now()}),r&&(O.set(t.sessionId,r),k(`Preview URL for [${t.sessionId}]: ${r}`,e))}catch{$.set(n,{url:null,checkedAt:Date.now()})}}let j=Date.now();if($.size>200){let e=j-6e5;for(let[t,i]of $)i.checkedAt<e&&$.delete(t)}let N=o,E=!1;for(let i of S){let n=I.get(i.sessionId);if(!n){let t=function(e,t,i){let n=dX({taskId:i?.taskId??void 0,attemptId:i?.attemptId??void 0,parentTaskId:i?.parentTaskId??void 0});return`- [x] ${e}${n?` ${n}`:""} [${t}] — ✅ completed`}(i.basePrompt,i.sessionId,{taskId:i.taskId,attemptId:i.attemptId,parentTaskId:i.parentTaskId});i.column!==b?(N=d4(N,i.line,i.column,b,t),E=!0,k(`Card [${i.sessionId}] ${i.column} → ${b} (session archived)`,e)):i.line!==t&&(u=N,c=i.line,N=dx(u,c,t),E=!0);let n=d5({boardPath:e,projectId:_,taskId:i.taskId??void 0,prompt:i.basePrompt});m.delete(n);continue}try{!function(e,t,i,n,o){let s=(0,a.join)(e,"sessions");(0,r.existsSync)(s)||(0,r.mkdirSync)(s,{recursive:!0});let l=(0,a.join)(s,`${t}.md`),u=i.metadata,{display:c,emoji:d}=d1(i),f=i.createdAt,m=i.lastActivityAt,p=dY(f,m),h=u.agent??"unknown",g=i.projectId||u.project||"unknown",v=o.projects[g],y=v?.boardDir??g,$=`---
|