gsd-pi 2.67.0-dev.46f9884 → 2.67.0-dev.4fb8afe
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -32
- package/dist/resource-loader.d.ts +1 -1
- package/dist/resource-loader.js +20 -5
- package/dist/resources/GSD-WORKFLOW.md +3 -1
- package/dist/resources/extensions/claude-code-cli/stream-adapter.js +73 -42
- package/dist/resources/extensions/get-secrets-from-user.js +18 -2
- package/dist/resources/extensions/gsd/auto/phases.js +17 -0
- package/dist/resources/extensions/gsd/auto-direct-dispatch.js +12 -0
- package/dist/resources/extensions/gsd/auto-post-unit.js +26 -0
- package/dist/resources/extensions/gsd/bootstrap/db-tools.js +11 -435
- package/dist/resources/extensions/gsd/bootstrap/dynamic-tools.js +1 -4
- package/dist/resources/extensions/gsd/bootstrap/query-tools.js +7 -64
- package/dist/resources/extensions/gsd/bootstrap/system-context.js +18 -3
- package/dist/resources/extensions/gsd/bootstrap/write-gate.js +88 -8
- package/dist/resources/extensions/gsd/codebase-generator.js +173 -12
- package/dist/resources/extensions/gsd/commands/catalog.js +4 -3
- package/dist/resources/extensions/gsd/commands/dispatcher.js +1 -1
- package/dist/resources/extensions/gsd/commands/handlers/core.js +92 -1
- package/dist/resources/extensions/gsd/commands-bootstrap.js +9 -0
- package/dist/resources/extensions/gsd/commands-codebase.js +4 -3
- package/dist/resources/extensions/gsd/commands-prefs-wizard.js +39 -5
- package/dist/resources/extensions/gsd/doctor-git-checks.js +4 -4
- package/dist/resources/extensions/gsd/doctor-proactive.js +3 -3
- package/dist/resources/extensions/gsd/guided-flow.js +16 -0
- package/dist/resources/extensions/gsd/prompts/complete-slice.md +3 -3
- package/dist/resources/extensions/gsd/prompts/execute-task.md +3 -3
- package/dist/resources/extensions/gsd/prompts/system.md +3 -0
- package/dist/resources/extensions/gsd/prompts/validate-milestone.md +7 -5
- package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +508 -0
- package/dist/resources/extensions/gsd/workflow-mcp.js +190 -0
- package/dist/resources/extensions/gsd/workflow-reconcile.js +0 -4
- package/dist/resources/extensions/gsd/worktree-manager.js +6 -2
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +17 -17
- package/dist/web/standalone/.next/build-manifest.json +5 -5
- package/dist/web/standalone/.next/prerender-manifest.json +13 -13
- package/dist/web/standalone/.next/react-loadable-manifest.json +7 -7
- package/dist/web/standalone/.next/required-server-files.json +18 -6
- package/dist/web/standalone/.next/routes-manifest.json +1 -0
- package/dist/web/standalone/.next/server/app/_global-error/page.js +32 -3
- package/dist/web/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.html +1 -2
- package/dist/web/standalone/.next/server/app/_global-error.rsc +8 -6
- package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +8 -6
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +2 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +2 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
- package/dist/web/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.rsc +9 -7
- package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +9 -7
- package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +2 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/browse-directories/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/dev-mode/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/experimental/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/preferences/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/remote-questions/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/shutdown/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/input/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +4 -4
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/update/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/index.html +1 -1
- package/dist/web/standalone/.next/server/app/index.rsc +2 -2
- package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/page.js +2 -2
- package/dist/web/standalone/.next/server/app/page.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app-paths-manifest.json +17 -17
- package/dist/web/standalone/.next/server/chunks/2331.js +7 -7
- package/dist/web/standalone/.next/server/chunks/4741.js +5 -9
- package/dist/web/standalone/.next/server/chunks/63.js +45 -0
- package/dist/web/standalone/.next/server/chunks/6897.js +1 -1
- package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/dist/web/standalone/.next/server/middleware.js +11 -8
- package/dist/web/standalone/.next/server/pages/404.html +1 -1
- package/dist/web/standalone/.next/server/pages/500.html +1 -2
- package/dist/web/standalone/.next/server/prefetch-hints.json +1 -0
- package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
- package/dist/web/standalone/.next/static/IBTC_HlEpTBAa4HXMoV_A/_buildManifest.js +1 -0
- package/dist/web/standalone/.next/static/chunks/2008.71ee9230ad78df21.js +20 -0
- package/dist/web/standalone/.next/static/chunks/{363642f4.f9053a63f1b97508.js → 363642f4.cf8b455e0d94b478.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/3794-42fdce068d44fa4f.js +32 -0
- package/dist/web/standalone/.next/static/chunks/{4447.f86b52aea068b189.js → 4447.5bad7871be61ca73.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/4bd1b696-e356ca5ba0218e27.js +1 -0
- package/dist/web/standalone/.next/static/chunks/{6502.8874bcae249c02e1.js → 6502.b804e48b7919f55e.js} +3 -3
- package/dist/web/standalone/.next/static/chunks/{e868780c.f7831045ac345aaa.js → e868780c.abc48b70a10fc2d6.js} +3 -3
- package/dist/web/standalone/.next/static/chunks/framework-711ef29bc66f648c.js +1 -0
- package/dist/web/standalone/.next/static/chunks/main-6919d9dd919bd15f.js +5 -0
- package/dist/web/standalone/.next/static/chunks/{webpack-9fed74684e1c5bb1.js → webpack-b49b09f97429b5d0.js} +1 -1
- package/dist/web/standalone/node_modules/@next/env/package.json +1 -1
- package/dist/web/standalone/node_modules/next/dist/build/adapter/setup-node-env.external.js +15 -0
- package/dist/web/standalone/node_modules/next/dist/build/analysis/extract-const-value.js +78 -63
- package/dist/web/standalone/node_modules/next/dist/build/analysis/get-page-static-info.js +64 -40
- package/dist/web/standalone/node_modules/next/dist/build/create-compiler-aliases.js +2 -0
- package/dist/web/standalone/node_modules/next/dist/build/define-env.js +29 -11
- package/dist/web/standalone/node_modules/next/dist/build/duration-to-string.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/build/entries.js +55 -295
- package/dist/web/standalone/node_modules/next/dist/build/file-classifier.js +76 -0
- package/dist/web/standalone/node_modules/next/dist/build/get-supported-browsers.js +38 -0
- package/dist/web/standalone/node_modules/next/dist/build/load-jsconfig.js +7 -7
- package/dist/web/standalone/node_modules/next/dist/build/lockfile.js +90 -9
- package/dist/web/standalone/node_modules/next/dist/build/next-config-ts/transpile-config.js +128 -49
- package/dist/web/standalone/node_modules/next/dist/build/print-build-errors.js +72 -0
- package/dist/web/standalone/node_modules/next/dist/build/route-discovery.js +353 -0
- package/dist/web/standalone/node_modules/next/dist/build/segment-config/app/app-segment-config.js +34 -17
- package/dist/web/standalone/node_modules/next/dist/build/static-paths/app.js +68 -15
- package/dist/web/standalone/node_modules/next/dist/build/static-paths/pages.js +3 -3
- package/dist/web/standalone/node_modules/next/dist/build/swc/index.js +125 -48
- package/dist/web/standalone/node_modules/next/dist/build/swc/loaderWorkerPool.js +40 -0
- package/dist/web/standalone/node_modules/next/dist/build/swc/options.js +23 -6
- package/dist/web/standalone/node_modules/next/dist/build/utils.js +48 -94
- package/dist/web/standalone/node_modules/next/dist/build/webpack/config/blocks/css/index.js +14 -3
- package/dist/web/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/global.js +4 -2
- package/dist/web/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/modules.js +4 -2
- package/dist/web/standalone/node_modules/next/dist/build/webpack/config/blocks/css/loaders/next-font.js +1 -0
- package/dist/web/standalone/node_modules/next/dist/build/webpack/config/blocks/css/plugins.js +5 -5
- package/dist/web/standalone/node_modules/next/dist/build/webpack/config/index.js +3 -2
- package/dist/web/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js +2 -1
- package/dist/web/standalone/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/postcss-url-parser.js +8 -1
- package/dist/web/standalone/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/loader.js +13 -4
- package/dist/web/standalone/node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js +3 -1
- package/dist/web/standalone/node_modules/next/dist/build/webpack/plugins/build-manifest-plugin-utils.js +2 -16
- package/dist/web/standalone/node_modules/next/dist/build/webpack/plugins/build-manifest-plugin.js +2 -2
- package/dist/web/standalone/node_modules/next/dist/build/webpack/plugins/deferred-entries-plugin.js +106 -0
- package/dist/web/standalone/node_modules/next/dist/build/webpack/plugins/flight-client-entry-plugin.js +16 -8
- package/dist/web/standalone/node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.js +24 -11
- package/dist/web/standalone/node_modules/next/dist/build/webpack/plugins/middleware-plugin.js +21 -2
- package/dist/web/standalone/node_modules/next/dist/build/webpack/plugins/next-types-plugin/index.js +6 -5
- package/dist/web/standalone/node_modules/next/dist/build/webpack/plugins/nextjs-require-cache-hot-reloader.js +10 -14
- package/dist/web/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js +18 -4
- package/dist/web/standalone/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseScss.js +5 -4
- package/dist/web/standalone/node_modules/next/dist/build/webpack-config.js +18 -8
- package/dist/web/standalone/node_modules/next/dist/cli/next-test.js +4 -3
- package/dist/web/standalone/node_modules/next/dist/client/app-find-source-map-url.js +2 -1
- package/dist/web/standalone/node_modules/next/dist/client/components/app-router-headers.js +10 -0
- package/dist/web/standalone/node_modules/next/dist/client/components/app-router-instance.js +82 -4
- package/dist/web/standalone/node_modules/next/dist/client/components/app-router.js +39 -20
- package/dist/web/standalone/node_modules/next/dist/client/components/builtin/app-error.js +29 -65
- package/dist/web/standalone/node_modules/next/dist/client/components/builtin/error-styles.js +165 -0
- package/dist/web/standalone/node_modules/next/dist/client/components/builtin/global-error.js +56 -38
- package/dist/web/standalone/node_modules/next/dist/client/components/error-boundary.js +16 -6
- package/dist/web/standalone/node_modules/next/dist/client/components/forbidden.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/client/components/handle-isr-error.js +3 -4
- package/dist/web/standalone/node_modules/next/dist/client/components/links.js +7 -0
- package/dist/web/standalone/node_modules/next/dist/client/components/navigation-untracked.js +2 -0
- package/dist/web/standalone/node_modules/next/dist/client/components/navigation.js +27 -0
- package/dist/web/standalone/node_modules/next/dist/client/components/navigation.react-server.js +5 -2
- package/dist/web/standalone/node_modules/next/dist/client/components/not-found.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/client/components/redirect-boundary.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/client/components/redirect-error.js +0 -9
- package/dist/web/standalone/node_modules/next/dist/client/components/redirect.js +2 -2
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +73 -0
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +102 -8
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +165 -48
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +19 -11
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +669 -457
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/reducers/committed-state.js +49 -0
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +19 -20
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +5 -117
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +34 -19
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +16 -32
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +85 -57
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +12 -10
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js +10 -1
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/router-reducer.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/client/components/segment-cache/bfcache.js +128 -0
- package/dist/web/standalone/node_modules/next/dist/client/components/segment-cache/cache.js +732 -231
- package/dist/web/standalone/node_modules/next/dist/client/components/segment-cache/lru.js +13 -6
- package/dist/web/standalone/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +194 -0
- package/dist/web/standalone/node_modules/next/dist/client/components/segment-cache/navigation.js +388 -250
- package/dist/web/standalone/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +543 -0
- package/dist/web/standalone/node_modules/next/dist/client/components/segment-cache/scheduler.js +154 -55
- package/dist/web/standalone/node_modules/next/dist/client/components/segment-cache/vary-path.js +63 -1
- package/dist/web/standalone/node_modules/next/dist/client/components/unauthorized.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/client/components/use-action-queue.js +49 -3
- package/dist/web/standalone/node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js +9 -1
- package/dist/web/standalone/node_modules/next/dist/client/flight-data-helpers.js +42 -29
- package/dist/web/standalone/node_modules/next/dist/client/lib/javascript-url.js +32 -0
- package/dist/web/standalone/node_modules/next/dist/client/lib/promise.js +53 -0
- package/dist/web/standalone/node_modules/next/dist/client/{app-build-id.js → navigation-build-id.js} +17 -13
- package/dist/web/standalone/node_modules/next/dist/client/react-client-callbacks/on-recoverable-error.js +14 -0
- package/dist/web/standalone/node_modules/next/dist/client/route-loader.js +9 -46
- package/dist/web/standalone/node_modules/next/dist/client/router.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/compiled/@next/font/dist/google/font-data.json +74 -3
- package/dist/web/standalone/node_modules/next/dist/compiled/babel/bundle.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/compiled/babel-packages/packages-bundle.js +5 -5
- package/dist/web/standalone/node_modules/next/dist/compiled/browserslist/index.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/compiled/http-proxy/index.js +5 -5
- package/dist/web/standalone/node_modules/next/dist/compiled/jsonwebtoken/index.js +2 -2
- package/dist/web/standalone/node_modules/next/dist/compiled/next-devtools/index.js +2209 -23
- package/dist/web/standalone/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +42 -12
- package/dist/web/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +42 -12
- package/dist/web/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +42 -12
- package/dist/web/standalone/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +42 -12
- package/dist/web/standalone/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +2 -2
- package/dist/web/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +10 -10
- package/dist/web/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +10 -10
- package/dist/web/standalone/node_modules/next/dist/compiled/react-is/package.json +1 -1
- package/dist/web/standalone/node_modules/next/dist/compiled/tar/index.min.js +1 -0
- package/dist/web/standalone/node_modules/next/dist/compiled/tar/package.json +1 -1
- package/dist/web/standalone/node_modules/next/dist/compiled/unistore/unistore.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/lib/bundler.js +97 -0
- package/dist/web/standalone/node_modules/next/dist/lib/constants.js +19 -4
- package/dist/web/standalone/node_modules/next/dist/lib/download-swc.js +2 -2
- package/dist/web/standalone/node_modules/next/dist/lib/find-root.js +11 -7
- package/dist/web/standalone/node_modules/next/dist/lib/format-server-error.js +1 -0
- package/dist/web/standalone/node_modules/next/dist/lib/generate-interception-routes-rewrites.js +3 -20
- package/dist/web/standalone/node_modules/next/dist/lib/interop-default.js +1 -0
- package/dist/web/standalone/node_modules/next/dist/lib/is-interception-route-rewrite.js +18 -0
- package/dist/web/standalone/node_modules/next/dist/lib/load-custom-routes.js +49 -5
- package/dist/web/standalone/node_modules/next/dist/lib/memory/trace.js +109 -0
- package/dist/web/standalone/node_modules/next/dist/lib/metadata/get-metadata-route.js +11 -2
- package/dist/web/standalone/node_modules/next/dist/lib/needs-experimental-react.js +2 -2
- package/dist/web/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +5 -5
- package/dist/web/standalone/node_modules/next/dist/lib/try-to-parse-path.js +1 -2
- package/dist/web/standalone/node_modules/next/dist/lib/turbopack-warning.js +0 -1
- package/dist/web/standalone/node_modules/next/dist/lib/typescript/diagnosticFormatter.js +6 -3
- package/dist/web/standalone/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +81 -1
- package/dist/web/standalone/node_modules/next/dist/lib/typescript/missingDependencyError.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/lib/typescript/runTypeCheck.js +6 -8
- package/dist/web/standalone/node_modules/next/dist/lib/typescript/type-paths.js +7 -12
- package/dist/web/standalone/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js +17 -7
- package/dist/web/standalone/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js +33 -32
- package/dist/web/standalone/node_modules/next/dist/lib/verify-typescript-setup.js +66 -16
- package/dist/web/standalone/node_modules/next/dist/next-devtools/server/shared.js +6 -10
- package/dist/web/standalone/node_modules/next/dist/next-devtools/shared/webpack-module-path.js +4 -4
- package/dist/web/standalone/node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js +22 -4
- package/dist/web/standalone/node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js +7 -1
- package/dist/web/standalone/node_modules/next/dist/next-devtools/userspace/app/forward-logs.js +18 -13
- package/dist/web/standalone/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js +7 -4
- package/dist/web/standalone/node_modules/next/dist/server/app-render/action-handler.js +83 -15
- package/dist/web/standalone/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +0 -82
- package/dist/web/standalone/node_modules/next/dist/server/app-render/app-render-render-utils.js +45 -81
- package/dist/web/standalone/node_modules/next/dist/server/app-render/app-render.js +1746 -803
- package/dist/web/standalone/node_modules/next/dist/server/app-render/create-component-tree.js +136 -50
- package/dist/web/standalone/node_modules/next/dist/server/app-render/create-error-handler.js +6 -4
- package/dist/web/standalone/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +52 -26
- package/dist/web/standalone/node_modules/next/dist/server/app-render/csrf-protection.js +14 -3
- package/dist/web/standalone/node_modules/next/dist/server/app-render/debug-channel-server.js +30 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/debug-channel-server.web.js +71 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/dynamic-rendering.js +353 -37
- package/dist/web/standalone/node_modules/next/dist/server/app-render/get-asset-query-string.js +2 -2
- package/dist/web/standalone/node_modules/next/dist/server/app-render/get-layer-assets.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js +13 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js +18 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-config.js +181 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-samples-client.js +128 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js +432 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js +33 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/instant-validation/stream-utils.js +96 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/manifests-singleton.js +8 -1
- package/dist/web/standalone/node_modules/next/dist/server/app-render/postponed-state.js +2 -1
- package/dist/web/standalone/node_modules/next/dist/server/app-render/prospective-render-utils.js +1 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/segment-explorer-path.js +35 -10
- package/dist/web/standalone/node_modules/next/dist/server/app-render/staged-rendering.js +142 -72
- package/dist/web/standalone/node_modules/next/dist/server/app-render/stale-time.js +111 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/stream-ops.js +106 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/stream-ops.web.js +163 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/types.js +10 -4
- package/dist/web/standalone/node_modules/next/dist/server/app-render/use-flight-response.js +3 -1
- package/dist/web/standalone/node_modules/next/dist/server/app-render/vary-params.js +336 -0
- package/dist/web/standalone/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +59 -12
- package/dist/web/standalone/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +54 -26
- package/dist/web/standalone/node_modules/next/dist/server/async-storage/request-store.js +4 -4
- package/dist/web/standalone/node_modules/next/dist/server/async-storage/work-store.js +2 -5
- package/dist/web/standalone/node_modules/next/dist/server/base-server.js +65 -53
- package/dist/web/standalone/node_modules/next/dist/server/config-schema.js +94 -8
- package/dist/web/standalone/node_modules/next/dist/server/config-shared.js +57 -7
- package/dist/web/standalone/node_modules/next/dist/server/config.js +96 -25
- package/dist/web/standalone/node_modules/next/dist/server/dev/browser-logs/file-logger.js +9 -6
- package/dist/web/standalone/node_modules/next/dist/server/dev/browser-logs/receive-logs.js +46 -0
- package/dist/web/standalone/node_modules/next/dist/server/dev/browser-logs/source-map.js +1 -4
- package/dist/web/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +266 -33
- package/dist/web/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +8 -4
- package/dist/web/standalone/node_modules/next/dist/server/dev/log-requests.js +10 -2
- package/dist/web/standalone/node_modules/next/dist/server/dev/middleware-turbopack.js +20 -10
- package/dist/web/standalone/node_modules/next/dist/server/dev/middleware-webpack.js +13 -3
- package/dist/web/standalone/node_modules/next/dist/server/dev/next-dev-server.js +19 -6
- package/dist/web/standalone/node_modules/next/dist/server/dev/on-demand-entry-handler.js +69 -0
- package/dist/web/standalone/node_modules/next/dist/server/dev/require-cache.js +51 -21
- package/dist/web/standalone/node_modules/next/dist/server/dev/server-action-logger.js +37 -0
- package/dist/web/standalone/node_modules/next/dist/server/dev/static-paths-worker.js +1 -0
- package/dist/web/standalone/node_modules/next/dist/server/dev/turbopack-utils.js +6 -15
- package/dist/web/standalone/node_modules/next/dist/server/dynamic-rendering-utils.js +22 -0
- package/dist/web/standalone/node_modules/next/dist/server/image-optimizer.js +157 -27
- package/dist/web/standalone/node_modules/next/dist/server/lib/app-info-log.js +16 -38
- package/dist/web/standalone/node_modules/next/dist/server/lib/cache-control.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/server/lib/clone-response.js +16 -16
- package/dist/web/standalone/node_modules/next/dist/server/lib/cpu-profile.js +47 -16
- package/dist/web/standalone/node_modules/next/dist/server/lib/dev-bundler-service.js +2 -2
- package/dist/web/standalone/node_modules/next/dist/server/lib/disk-lru-cache.external.js +57 -0
- package/dist/web/standalone/node_modules/next/dist/server/lib/find-page-file.js +27 -7
- package/dist/web/standalone/node_modules/next/dist/server/lib/implicit-tags.js +3 -3
- package/dist/web/standalone/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +5 -3
- package/dist/web/standalone/node_modules/next/dist/server/lib/incremental-cache/index.js +32 -10
- package/dist/web/standalone/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +18 -1
- package/dist/web/standalone/node_modules/next/dist/server/lib/install-code-frame.js +22 -0
- package/dist/web/standalone/node_modules/next/dist/server/lib/lru-cache.js +9 -1
- package/dist/web/standalone/node_modules/next/dist/server/lib/patch-fetch.js +40 -7
- package/dist/web/standalone/node_modules/next/dist/server/lib/postponed-request-body.js +64 -0
- package/dist/web/standalone/node_modules/next/dist/server/lib/render-server.js +4 -1
- package/dist/web/standalone/node_modules/next/dist/server/lib/router-server.js +37 -13
- package/dist/web/standalone/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js +110 -0
- package/dist/web/standalone/node_modules/next/dist/server/lib/router-utils/filesystem.js +16 -15
- package/dist/web/standalone/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +32 -11
- package/dist/web/standalone/node_modules/next/dist/server/lib/router-utils/route-types-utils.js +3 -3
- package/dist/web/standalone/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js +71 -71
- package/dist/web/standalone/node_modules/next/dist/server/lib/router-utils/typegen.js +247 -2
- package/dist/web/standalone/node_modules/next/dist/server/lib/server-ipc/utils.js +2 -1
- package/dist/web/standalone/node_modules/next/dist/server/lib/start-server.js +73 -39
- package/dist/web/standalone/node_modules/next/dist/server/lib/trace/tracer.js +11 -1
- package/dist/web/standalone/node_modules/next/dist/server/lib/utils.js +40 -11
- package/dist/web/standalone/node_modules/next/dist/server/load-components.js +2 -0
- package/dist/web/standalone/node_modules/next/dist/server/load-manifest.external.js +37 -17
- package/dist/web/standalone/node_modules/next/dist/server/mcp/tools/get-errors.js +11 -4
- package/dist/web/standalone/node_modules/next/dist/server/mcp/tools/get-logs.js +9 -3
- package/dist/web/standalone/node_modules/next/dist/server/mcp/tools/get-page-metadata.js +52 -44
- package/dist/web/standalone/node_modules/next/dist/server/mcp/tools/get-project-metadata.js +6 -2
- package/dist/web/standalone/node_modules/next/dist/server/mcp/tools/get-routes.js +44 -79
- package/dist/web/standalone/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js +12 -4
- package/dist/web/standalone/node_modules/next/dist/server/mcp/tools/utils/format-errors.js +62 -72
- package/dist/web/standalone/node_modules/next/dist/server/next-server.js +69 -99
- package/dist/web/standalone/node_modules/next/dist/server/next.js +3 -0
- package/dist/web/standalone/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js +61 -6
- package/dist/web/standalone/node_modules/next/dist/server/node-environment-extensions/date.js +4 -4
- package/dist/web/standalone/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js +13 -6
- package/dist/web/standalone/node_modules/next/dist/server/node-environment-extensions/{utils.js → io-utils.js} +14 -5
- package/dist/web/standalone/node_modules/next/dist/server/node-environment-extensions/node-crypto.js +8 -8
- package/dist/web/standalone/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js +91 -0
- package/dist/web/standalone/node_modules/next/dist/server/node-environment-extensions/random.js +2 -2
- package/dist/web/standalone/node_modules/next/dist/server/node-environment-extensions/{unhandled-rejection.js → unhandled-rejection.external.js} +23 -4
- package/dist/web/standalone/node_modules/next/dist/server/node-environment-extensions/web-crypto.js +3 -3
- package/dist/web/standalone/node_modules/next/dist/server/node-environment.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js +2 -1
- package/dist/web/standalone/node_modules/next/dist/server/patch-error-inspect.js +37 -20
- package/dist/web/standalone/node_modules/next/dist/server/render-result.js +9 -0
- package/dist/web/standalone/node_modules/next/dist/server/render.js +47 -44
- package/dist/web/standalone/node_modules/next/dist/server/require-hook.js +19 -8
- package/dist/web/standalone/node_modules/next/dist/server/response-cache/utils.js +1 -0
- package/dist/web/standalone/node_modules/next/dist/server/resume-data-cache/cache-store.js +35 -23
- package/dist/web/standalone/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +16 -7
- package/dist/web/standalone/node_modules/next/dist/server/revalidation-utils.js +12 -7
- package/dist/web/standalone/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +2 -1
- package/dist/web/standalone/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +4 -1
- package/dist/web/standalone/node_modules/next/dist/server/route-modules/app-page/module.js +31 -1
- package/dist/web/standalone/node_modules/next/dist/server/route-modules/app-page/normalize-request-url.js +25 -0
- package/dist/web/standalone/node_modules/next/dist/server/route-modules/pages/pages-handler.js +31 -8
- package/dist/web/standalone/node_modules/next/dist/server/route-modules/route-module.js +71 -18
- package/dist/web/standalone/node_modules/next/dist/server/stream-utils/encoded-tags.js +8 -0
- package/dist/web/standalone/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +239 -58
- package/dist/web/standalone/node_modules/next/dist/server/stream-utils/uint8array-helpers.js +7 -2
- package/dist/web/standalone/node_modules/next/dist/server/typescript/constant.js +1 -0
- package/dist/web/standalone/node_modules/next/dist/server/typescript/rules/config.js +14 -3
- package/dist/web/standalone/node_modules/next/dist/server/web/adapter.js +7 -3
- package/dist/web/standalone/node_modules/next/dist/server/web/next-url.js +6 -2
- package/dist/web/standalone/node_modules/next/dist/server/web/sandbox/sandbox.js +3 -0
- package/dist/web/standalone/node_modules/next/dist/shared/lib/app-router-types.js +30 -11
- package/dist/web/standalone/node_modules/next/dist/shared/lib/constants.js +7 -7
- package/dist/web/standalone/node_modules/next/dist/shared/lib/deployment-id.js +37 -10
- package/dist/web/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/shared/lib/errors/code-frame.js +20 -0
- package/dist/web/standalone/node_modules/next/dist/shared/lib/format-webpack-messages.js +22 -2
- package/dist/web/standalone/node_modules/next/dist/shared/lib/image-config.js +3 -1
- package/dist/web/standalone/node_modules/next/dist/shared/lib/is-internal.js +2 -0
- package/dist/web/standalone/node_modules/next/dist/shared/lib/magic-identifier.js +6 -6
- package/dist/web/standalone/node_modules/next/dist/shared/lib/router/router.js +32 -0
- package/dist/web/standalone/node_modules/next/dist/shared/lib/router/utils/app-paths.js +11 -0
- package/dist/web/standalone/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +11 -4
- package/dist/web/standalone/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js +3 -2
- package/dist/web/standalone/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js +9 -2
- package/dist/web/standalone/node_modules/next/dist/shared/lib/router/utils/parse-url.js +8 -2
- package/dist/web/standalone/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js +32 -0
- package/dist/web/standalone/node_modules/next/dist/shared/lib/server-reference-info.js +4 -0
- package/dist/web/standalone/node_modules/next/dist/shared/lib/size-limit.js +6 -1
- package/dist/web/standalone/node_modules/next/dist/shared/lib/turbopack/compilation-events.js +47 -10
- package/dist/web/standalone/node_modules/next/dist/shared/lib/turbopack/manifest-loader.js +90 -116
- package/dist/web/standalone/node_modules/next/dist/shared/lib/turbopack/utils.js +14 -26
- package/dist/web/standalone/node_modules/next/dist/shared/lib/utils/reflect-utils.js +69 -0
- package/dist/web/standalone/node_modules/next/dist/shared/lib/utils.js +2 -2
- package/dist/web/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/dist/web/standalone/node_modules/next/dist/trace/index.js +4 -0
- package/dist/web/standalone/node_modules/next/dist/trace/report/to-json-build.js +11 -108
- package/dist/web/standalone/node_modules/next/dist/trace/report/to-json.js +52 -38
- package/dist/web/standalone/node_modules/next/dist/trace/trace.js +15 -1
- package/dist/web/standalone/node_modules/next/package.json +21 -23
- package/dist/web/standalone/node_modules/react/cjs/react.development.js +1284 -0
- package/dist/web/standalone/package.json +2 -2
- package/dist/web/standalone/server.js +1 -1
- package/package.json +1 -1
- package/packages/mcp-server/README.md +38 -0
- package/packages/mcp-server/src/server.ts +6 -2
- package/packages/mcp-server/src/workflow-tools.test.ts +976 -0
- package/packages/mcp-server/src/workflow-tools.ts +986 -0
- package/packages/pi-ai/dist/utils/event-stream.d.ts +2 -0
- package/packages/pi-ai/dist/utils/event-stream.d.ts.map +1 -1
- package/packages/pi-ai/dist/utils/event-stream.js +4 -0
- package/packages/pi-ai/dist/utils/event-stream.js.map +1 -1
- package/packages/pi-ai/src/utils/event-stream.ts +5 -0
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +12 -2
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/provider-auth-setup.d.ts +13 -0
- package/packages/pi-coding-agent/dist/modes/interactive/provider-auth-setup.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/provider-auth-setup.js +27 -0
- package/packages/pi-coding-agent/dist/modes/interactive/provider-auth-setup.js.map +1 -0
- package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +15 -2
- package/packages/pi-coding-agent/src/modes/interactive/provider-auth-setup.ts +40 -0
- package/src/resources/GSD-WORKFLOW.md +3 -1
- package/src/resources/extensions/claude-code-cli/stream-adapter.ts +96 -44
- package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +211 -2
- package/src/resources/extensions/get-secrets-from-user.ts +20 -2
- package/src/resources/extensions/gsd/auto/phases.ts +25 -0
- package/src/resources/extensions/gsd/auto-direct-dispatch.ts +20 -0
- package/src/resources/extensions/gsd/auto-post-unit.ts +30 -1
- package/src/resources/extensions/gsd/bootstrap/db-tools.ts +22 -435
- package/src/resources/extensions/gsd/bootstrap/dynamic-tools.ts +1 -5
- package/src/resources/extensions/gsd/bootstrap/query-tools.ts +7 -72
- package/src/resources/extensions/gsd/bootstrap/system-context.ts +18 -4
- package/src/resources/extensions/gsd/bootstrap/write-gate.ts +122 -6
- package/src/resources/extensions/gsd/codebase-generator.ts +261 -16
- package/src/resources/extensions/gsd/commands/catalog.ts +4 -3
- package/src/resources/extensions/gsd/commands/dispatcher.ts +1 -2
- package/src/resources/extensions/gsd/commands/handlers/core.ts +108 -2
- package/src/resources/extensions/gsd/commands-bootstrap.ts +10 -0
- package/src/resources/extensions/gsd/commands-codebase.ts +4 -3
- package/src/resources/extensions/gsd/commands-prefs-wizard.ts +38 -7
- package/src/resources/extensions/gsd/doctor-git-checks.ts +4 -4
- package/src/resources/extensions/gsd/doctor-proactive.ts +3 -3
- package/src/resources/extensions/gsd/guided-flow.ts +24 -0
- package/src/resources/extensions/gsd/prompts/complete-slice.md +3 -3
- package/src/resources/extensions/gsd/prompts/execute-task.md +3 -3
- package/src/resources/extensions/gsd/prompts/system.md +3 -0
- package/src/resources/extensions/gsd/prompts/validate-milestone.md +7 -5
- package/src/resources/extensions/gsd/tests/codebase-generator.test.ts +68 -0
- package/src/resources/extensions/gsd/tests/commands-workflow-custom.test.ts +12 -0
- package/src/resources/extensions/gsd/tests/core-overlay-fallback.test.ts +32 -0
- package/src/resources/extensions/gsd/tests/ensure-db-open.test.ts +66 -0
- package/src/resources/extensions/gsd/tests/integration/doctor-git.test.ts +9 -2
- package/src/resources/extensions/gsd/tests/integration/doctor-proactive.test.ts +33 -0
- package/src/resources/extensions/gsd/tests/preferences.test.ts +17 -0
- package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +25 -3
- package/src/resources/extensions/gsd/tests/update-command.test.ts +19 -0
- package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +301 -0
- package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +625 -0
- package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +629 -0
- package/src/resources/extensions/gsd/workflow-mcp.ts +233 -0
- package/src/resources/extensions/gsd/workflow-reconcile.ts +0 -5
- package/src/resources/extensions/gsd/worktree-manager.ts +6 -2
- package/dist/web/standalone/.next/server/chunks/7471.js +0 -13
- package/dist/web/standalone/.next/static/FRT6f5ou3wPxpZ7ojoB7E/_buildManifest.js +0 -1
- package/dist/web/standalone/.next/static/chunks/2008.817d0885545aaea9.js +0 -20
- package/dist/web/standalone/.next/static/chunks/3794-337d1ca25ad99a89.js +0 -2
- package/dist/web/standalone/.next/static/chunks/4bd1b696-e5d7c65570c947b7.js +0 -1
- package/dist/web/standalone/.next/static/chunks/framework-0675a4b5b92df616.js +0 -1
- package/dist/web/standalone/.next/static/chunks/main-cb72b7c5b8014fa5.js +0 -5
- package/dist/web/standalone/node_modules/next/dist/client/components/router-reducer/handle-mutable.js +0 -66
- package/dist/web/standalone/node_modules/next/dist/compiled/babel/code-frame.js +0 -1
- package/dist/web/standalone/node_modules/next/dist/compiled/babel-code-frame/index.js +0 -1
- package/dist/web/standalone/node_modules/next/dist/compiled/babel-code-frame/package.json +0 -1
- package/dist/web/standalone/node_modules/next/dist/compiled/tar/index.js +0 -1
- package/dist/web/standalone/node_modules/next/dist/server/app-render/staged-validation.js +0 -32
- package/dist/web/standalone/node_modules/next/dist/server/lib/router-utils/block-cross-site.js +0 -76
- package/dist/web/standalone/node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js +0 -52
- package/dist/web/standalone/node_modules/typescript/lib/typescript.js +0 -198668
- package/dist/web/standalone/node_modules/typescript/package.json +0 -120
- /package/dist/web/standalone/.next/static/{FRT6f5ou3wPxpZ7ojoB7E → IBTC_HlEpTBAa4HXMoV_A}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -27,56 +27,66 @@ One command. Walk away. Come back to a built project with clean git history.
|
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
-
## What's New in v2.
|
|
30
|
+
## What's New in v2.67
|
|
31
31
|
|
|
32
|
-
###
|
|
32
|
+
### Context Engineering
|
|
33
|
+
|
|
34
|
+
- **Tiered Context Injection (M005)** — relevance-scoped context with 65%+ token reduction. Decision scope cascade derives context from slice metadata instead of blanket injection.
|
|
35
|
+
- **Resilient transient error recovery** — defers to Core RetryHandler and fixes cmdCtx race conditions for more reliable auto-mode sessions.
|
|
33
36
|
|
|
34
|
-
|
|
35
|
-
- **Ollama extension** — first-class local LLM support via Ollama, with dynamic routing enabled by default.
|
|
36
|
-
- **Discord bot & daemon** — dedicated daemon package, Discord bot with 6 discord.js shard event listeners, and headless text mode with tool calls.
|
|
37
|
+
### Provider & Model Improvements
|
|
37
38
|
|
|
38
|
-
|
|
39
|
+
- **Anthropic subscription routing** — users with Anthropic subscriptions are automatically routed through Claude Code CLI provider with proper display names across all UI surfaces.
|
|
40
|
+
- **Claude Code provider hardening** — native Windows claude lookup, fallback guards, and `out of extra usage` error matching.
|
|
41
|
+
- **XML parameter recovery** — pi-ai recovers XML parameters trapped in JSON strings from providers.
|
|
39
42
|
|
|
40
|
-
|
|
41
|
-
- **Stop/backtrack capture classifications** — context optimization with model routing and masking.
|
|
43
|
+
### Safety & Data Integrity
|
|
42
44
|
|
|
43
|
-
|
|
45
|
+
- **LLM safety harness** — auto-mode damage control prevents the LLM from running destructive operations or querying `gsd.db` directly via bash.
|
|
46
|
+
- **5-wave state machine hardening** — critical data integrity fixes across atomic writes, randomized tmp paths, event log reconciliation, session recovery, and consistency enforcement. 86+ regression tests added.
|
|
47
|
+
- **Discussion gate enforcement** — mechanical enforcement for discussion question gates with fail-closed behavior.
|
|
48
|
+
- **Enhanced verification** — pre-execution plan verification checks, post-execution cross-task consistency checks, blocking behavior and strict mode.
|
|
44
49
|
|
|
45
|
-
|
|
46
|
-
- **`/gsd parallel watch`** — native TUI overlay for real-time worker monitoring.
|
|
47
|
-
- **Real-time TUI monitor dashboard** — self-healing dashboard with colorized headless verbose output.
|
|
50
|
+
### Parallel Execution & Dispatch
|
|
48
51
|
|
|
49
|
-
|
|
52
|
+
- **Slice-level parallelism** — dependency-aware parallel dispatch within a milestone, not just across milestones.
|
|
53
|
+
- **Parallel research slices** — research and milestone validation run in parallel.
|
|
54
|
+
- **Worker model override** — configure different models for parallel milestone workers.
|
|
50
55
|
|
|
51
|
-
|
|
52
|
-
- **Codebase map** — automatic codebase map injection for fresh agent contexts.
|
|
53
|
-
- **`--resume` flag** — resume previous sessions from the CLI.
|
|
54
|
-
- **Concurrent invocation guard** — prevents overlapping auto-mode runs with parallel worker reliability improvements.
|
|
55
|
-
- **Safety mechanisms on by default** — snapshots and pre-merge checks enabled out of the box.
|
|
56
|
+
### TUI & Notifications
|
|
56
57
|
|
|
57
|
-
|
|
58
|
+
- **Persistent notification panel** — TUI overlay, widget, and web API for real-time notifications.
|
|
59
|
+
- **Remote questions race** — local TUI races against remote channel (Slack/Discord) instead of remote-only routing.
|
|
60
|
+
- **OS-specific keyboard shortcuts** — shortcut hints now adapt to macOS/Linux/Windows.
|
|
61
|
+
- **`/gsd show-config`** — inspect active configuration at a glance.
|
|
58
62
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
- **
|
|
62
|
-
- **
|
|
63
|
+
### Infrastructure
|
|
64
|
+
|
|
65
|
+
- **Ollama native provider** — `/api/chat` provider with full option exposure, `apiKey` auth mode, and headless probe.
|
|
66
|
+
- **MCP OAuth** — MCP client supports OAuth auth provider for HTTP transport.
|
|
67
|
+
- **WAL-safe migration backup** — database migrations create WAL-safe backups with stronger regression tests.
|
|
68
|
+
- **Xcode/xcodegen detection** — project detection now supports Xcode bundles and xcodegen.
|
|
69
|
+
- **170+ bug fixes** — state machine resilience, worktree safety, prompt injection, session recovery, and more.
|
|
63
70
|
|
|
64
71
|
See the full [Changelog](./CHANGELOG.md) for details on every release.
|
|
65
72
|
|
|
66
73
|
<details>
|
|
67
|
-
<summary>Previous highlights (v2.
|
|
68
|
-
|
|
74
|
+
<summary>Previous highlights (v2.63 and earlier)</summary>
|
|
75
|
+
|
|
76
|
+
- **MCP server** — 6 read-only project state tools for external integrations, auto-wrapup guard, and question dedup
|
|
77
|
+
- **Ollama extension** — first-class local LLM support via Ollama, with dynamic routing enabled by default
|
|
78
|
+
- **Discord bot & daemon** — dedicated daemon package, Discord bot, and headless text mode with tool calls
|
|
79
|
+
- **Capability-aware model routing (ADR-004)** — capability scoring, `before_model_select` hook, and task metadata extraction
|
|
80
|
+
- **VS Code sidebar redesign** — SCM provider, checkpoints, diagnostics panel, activity feed, workflow controls, session forking
|
|
81
|
+
- **`/gsd parallel watch`** — native TUI overlay for real-time worker monitoring
|
|
82
|
+
- **Codebase map** — automatic codebase map injection for fresh agent contexts
|
|
83
|
+
- **`--resume` flag** — resume previous sessions from the CLI
|
|
84
|
+
- **Concurrent invocation guard** — prevents overlapping auto-mode runs
|
|
69
85
|
- **VS Code integration** — status bar, file decorations, bash terminal, session tree, conversation history, and code lens
|
|
70
|
-
- **Capability-based model selection** — replaced model-ID pattern matching with capability metadata
|
|
71
86
|
- **Skills overhaul** — 30+ skill packs covering major frameworks, databases, and cloud platforms
|
|
72
|
-
- **Quality gates** — 8-question quality gates for planning and completion templates
|
|
73
87
|
- **Single-writer state engine** — disciplined state transitions with machine guards and TOCTOU hardening
|
|
74
|
-
- **`/gsd rethink`** — conversational project reorganization
|
|
75
|
-
- **Complete offline mode** — fully offline with local models
|
|
76
|
-
- **Browser-based web interface** — run GSD from the browser with `gsd --web`
|
|
77
88
|
- **DB-backed planning tools** — atomic SQLite tool calls for state transitions
|
|
78
89
|
- **Declarative workflow engine** — YAML workflows through auto-loop
|
|
79
|
-
- **7 data-loss prevention fixes** — hallucination guard, merge anchor verification, dirty tree detection, and more
|
|
80
90
|
- **Doctor: worktree lifecycle checks** — validates worktree health, detects orphans, consolidates cleanup
|
|
81
91
|
|
|
82
92
|
</details>
|
|
@@ -85,7 +95,7 @@ See the full [Changelog](./CHANGELOG.md) for details on every release.
|
|
|
85
95
|
|
|
86
96
|
## Documentation
|
|
87
97
|
|
|
88
|
-
Full documentation is available
|
|
98
|
+
Full documentation is available in the [`docs/`](./docs/) directory:
|
|
89
99
|
|
|
90
100
|
- **[Getting Started](./docs/getting-started.md)** — install, first run, basic usage
|
|
91
101
|
- **[Auto Mode](./docs/auto-mode.md)** — autonomous execution deep-dive
|
|
@@ -22,5 +22,5 @@ export declare function getNewerManagedResourceVersion(agentDir: string, current
|
|
|
22
22
|
* Inspectable: `ls ~/.gsd/agent/extensions/`
|
|
23
23
|
*/
|
|
24
24
|
export declare function initResources(agentDir: string): void;
|
|
25
|
-
export declare function hasStaleCompiledExtensionSiblings(extensionsDir: string): boolean;
|
|
25
|
+
export declare function hasStaleCompiledExtensionSiblings(extensionsDir: string, sourceDir?: string): boolean;
|
|
26
26
|
export declare function buildResourceLoader(agentDir: string): DefaultResourceLoader;
|
package/dist/resource-loader.js
CHANGED
|
@@ -384,11 +384,13 @@ export function initResources(agentDir) {
|
|
|
384
384
|
mkdirSync(agentDir, { recursive: true });
|
|
385
385
|
const currentVersion = getBundledGsdVersion();
|
|
386
386
|
const manifest = readManagedResourceManifest(agentDir);
|
|
387
|
+
const extensionsDir = join(agentDir, 'extensions');
|
|
387
388
|
// Always prune root-level extension files that were removed from the bundle.
|
|
388
389
|
// This is cheap (a few existence checks + at most one rmSync) and must run
|
|
389
390
|
// unconditionally so that stale files left by a previous version are cleaned
|
|
390
391
|
// up even when the version/hash match causes the full sync to be skipped.
|
|
391
392
|
pruneRemovedBundledExtensions(manifest, agentDir);
|
|
393
|
+
pruneStaleSiblingFiles(bundledExtensionsDir, extensionsDir);
|
|
392
394
|
// Ensure ~/.gsd/agent/node_modules symlinks to GSD's node_modules on EVERY
|
|
393
395
|
// launch, not just during resource syncs. A stale/broken symlink makes ALL
|
|
394
396
|
// extensions fail to resolve @gsd/* packages, rendering GSD non-functional.
|
|
@@ -402,7 +404,7 @@ export function initResources(agentDir) {
|
|
|
402
404
|
if (manifest && manifest.gsdVersion === currentVersion) {
|
|
403
405
|
// Version matches — check content fingerprint for same-version staleness.
|
|
404
406
|
const currentHash = computeResourceFingerprint();
|
|
405
|
-
const hasStaleExtensionFiles = hasStaleCompiledExtensionSiblings(
|
|
407
|
+
const hasStaleExtensionFiles = hasStaleCompiledExtensionSiblings(extensionsDir, bundledExtensionsDir);
|
|
406
408
|
if (manifest.contentHash && manifest.contentHash === currentHash && !hasStaleExtensionFiles) {
|
|
407
409
|
return;
|
|
408
410
|
}
|
|
@@ -555,14 +557,27 @@ function migrateSkillsToEcosystemDir(agentDir) {
|
|
|
555
557
|
}
|
|
556
558
|
}
|
|
557
559
|
}
|
|
558
|
-
export function hasStaleCompiledExtensionSiblings(extensionsDir) {
|
|
560
|
+
export function hasStaleCompiledExtensionSiblings(extensionsDir, sourceDir = bundledExtensionsDir) {
|
|
559
561
|
if (!existsSync(extensionsDir))
|
|
560
562
|
return false;
|
|
563
|
+
const sourceFiles = existsSync(sourceDir)
|
|
564
|
+
? new Set(readdirSync(sourceDir, { withFileTypes: true })
|
|
565
|
+
.filter((entry) => entry.isFile())
|
|
566
|
+
.map((entry) => entry.name))
|
|
567
|
+
: new Set();
|
|
561
568
|
for (const entry of readdirSync(extensionsDir, { withFileTypes: true })) {
|
|
562
|
-
if (!entry.isFile()
|
|
569
|
+
if (!entry.isFile())
|
|
570
|
+
continue;
|
|
571
|
+
if (!entry.name.endsWith('.ts') && !entry.name.endsWith('.js'))
|
|
572
|
+
continue;
|
|
573
|
+
const siblingName = entry.name.endsWith('.ts')
|
|
574
|
+
? entry.name.replace(/\.ts$/, '.js')
|
|
575
|
+
: entry.name.replace(/\.js$/, '.ts');
|
|
576
|
+
if (!existsSync(join(extensionsDir, siblingName)))
|
|
577
|
+
continue;
|
|
578
|
+
if (sourceFiles.has(entry.name) && sourceFiles.has(siblingName))
|
|
563
579
|
continue;
|
|
564
|
-
|
|
565
|
-
if (existsSync(join(extensionsDir, jsName))) {
|
|
580
|
+
if (sourceFiles.has(entry.name) || sourceFiles.has(siblingName)) {
|
|
566
581
|
return true;
|
|
567
582
|
}
|
|
568
583
|
}
|
|
@@ -18,7 +18,8 @@ Read these files in order and act on what they say:
|
|
|
18
18
|
3. **`.gsd/milestones/<active>/M###-CONTEXT.md`** — Milestone-level project decisions, reference paths, constraints. Read this before doing implementation work.
|
|
19
19
|
4. If a slice is active and has one, read **`S##-CONTEXT.md`** — Slice-specific decisions and constraints.
|
|
20
20
|
5. If a slice is active, read its **`S##-PLAN.md`** — Which tasks exist? Which are done?
|
|
21
|
-
6. If
|
|
21
|
+
6. If `.gsd/CODEBASE.md` exists, skim it for fast structural orientation before broad code exploration.
|
|
22
|
+
7. If a task was interrupted, check for **`continue.md`** in the active slice directory — Resume from there.
|
|
22
23
|
|
|
23
24
|
Then do the thing `STATE.md` says to do next.
|
|
24
25
|
|
|
@@ -44,6 +45,7 @@ All artifacts live in `.gsd/` at the project root:
|
|
|
44
45
|
.gsd/
|
|
45
46
|
STATE.md # Dashboard — always read first (derived cache; runtime, gitignored)
|
|
46
47
|
DECISIONS.md # Append-only decisions register
|
|
48
|
+
CODEBASE.md # Generated codebase map cache (auto-refreshed by GSD)
|
|
47
49
|
milestones/
|
|
48
50
|
M001/
|
|
49
51
|
M001-ROADMAP.md # Milestone plan (checkboxes = state)
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import { EventStream } from "@gsd/pi-ai";
|
|
10
10
|
import { execSync } from "node:child_process";
|
|
11
11
|
import { PartialMessageBuilder, ZERO_USAGE, mapUsage } from "./partial-builder.js";
|
|
12
|
+
import { buildWorkflowMcpServers } from "../gsd/workflow-mcp.js";
|
|
12
13
|
// ---------------------------------------------------------------------------
|
|
13
14
|
// Stream factory
|
|
14
15
|
// ---------------------------------------------------------------------------
|
|
@@ -123,6 +124,70 @@ export function makeStreamExhaustedErrorMessage(model, lastTextContent) {
|
|
|
123
124
|
}
|
|
124
125
|
return message;
|
|
125
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Claude Code executes its own internal tool loop inside the SDK call. The
|
|
129
|
+
* streamed and final assistant messages should therefore contain only
|
|
130
|
+
* user-facing content (text/thinking), not replayable tool blocks that GSD
|
|
131
|
+
* would render again.
|
|
132
|
+
*/
|
|
133
|
+
function isUserFacingClaudeCodeBlock(block) {
|
|
134
|
+
return block.type === "text" || block.type === "thinking";
|
|
135
|
+
}
|
|
136
|
+
function filterUserFacingClaudeCodeContent(blocks) {
|
|
137
|
+
return blocks.filter(isUserFacingClaudeCodeBlock);
|
|
138
|
+
}
|
|
139
|
+
function remapClaudeCodeContentIndex(blocks, contentIndex) {
|
|
140
|
+
let visibleCount = 0;
|
|
141
|
+
for (let i = 0; i <= contentIndex && i < blocks.length; i++) {
|
|
142
|
+
if (isUserFacingClaudeCodeBlock(blocks[i]))
|
|
143
|
+
visibleCount++;
|
|
144
|
+
}
|
|
145
|
+
return Math.max(0, visibleCount - 1);
|
|
146
|
+
}
|
|
147
|
+
function sanitizeClaudeCodePartial(partial) {
|
|
148
|
+
return {
|
|
149
|
+
...partial,
|
|
150
|
+
content: filterUserFacingClaudeCodeContent(partial.content),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
export function sanitizeClaudeCodeStreamingEvent(event) {
|
|
154
|
+
switch (event.type) {
|
|
155
|
+
case "toolcall_start":
|
|
156
|
+
case "toolcall_delta":
|
|
157
|
+
case "toolcall_end":
|
|
158
|
+
case "server_tool_use":
|
|
159
|
+
case "web_search_result":
|
|
160
|
+
return null;
|
|
161
|
+
case "text_start":
|
|
162
|
+
case "text_delta":
|
|
163
|
+
case "text_end":
|
|
164
|
+
case "thinking_start":
|
|
165
|
+
case "thinking_delta":
|
|
166
|
+
case "thinking_end":
|
|
167
|
+
return {
|
|
168
|
+
...event,
|
|
169
|
+
contentIndex: remapClaudeCodeContentIndex(event.partial.content, event.contentIndex),
|
|
170
|
+
partial: sanitizeClaudeCodePartial(event.partial),
|
|
171
|
+
};
|
|
172
|
+
default:
|
|
173
|
+
return event;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
export function buildFinalClaudeCodeContent(blocks, lastThinkingContent, lastTextContent, resultText) {
|
|
177
|
+
const finalContent = filterUserFacingClaudeCodeContent(blocks);
|
|
178
|
+
if (finalContent.length > 0)
|
|
179
|
+
return finalContent;
|
|
180
|
+
if (lastThinkingContent) {
|
|
181
|
+
finalContent.push({ type: "thinking", thinking: lastThinkingContent });
|
|
182
|
+
}
|
|
183
|
+
if (lastTextContent) {
|
|
184
|
+
finalContent.push({ type: "text", text: lastTextContent });
|
|
185
|
+
}
|
|
186
|
+
if (finalContent.length === 0 && resultText) {
|
|
187
|
+
finalContent.push({ type: "text", text: resultText });
|
|
188
|
+
}
|
|
189
|
+
return finalContent;
|
|
190
|
+
}
|
|
126
191
|
// ---------------------------------------------------------------------------
|
|
127
192
|
// SDK options builder
|
|
128
193
|
// ---------------------------------------------------------------------------
|
|
@@ -133,6 +198,7 @@ export function makeStreamExhaustedErrorMessage(model, lastTextContent) {
|
|
|
133
198
|
* beta flags, and other configuration without mocking the full SDK.
|
|
134
199
|
*/
|
|
135
200
|
export function buildSdkOptions(modelId, prompt) {
|
|
201
|
+
const mcpServers = buildWorkflowMcpServers();
|
|
136
202
|
return {
|
|
137
203
|
pathToClaudeCodeExecutable: getClaudePath(),
|
|
138
204
|
model: modelId,
|
|
@@ -143,6 +209,7 @@ export function buildSdkOptions(modelId, prompt) {
|
|
|
143
209
|
allowDangerouslySkipPermissions: true,
|
|
144
210
|
settingSources: ["project"],
|
|
145
211
|
systemPrompt: { type: "preset", preset: "claude_code" },
|
|
212
|
+
...(mcpServers ? { mcpServers } : {}),
|
|
146
213
|
betas: modelId.includes("sonnet") ? ["context-1m-2025-08-07"] : [],
|
|
147
214
|
};
|
|
148
215
|
}
|
|
@@ -167,8 +234,6 @@ async function pumpSdkMessages(model, context, options, stream) {
|
|
|
167
234
|
/** Track the last text content seen across all assistant turns for the final message. */
|
|
168
235
|
let lastTextContent = "";
|
|
169
236
|
let lastThinkingContent = "";
|
|
170
|
-
/** Collect tool calls from intermediate SDK turns for tool_execution events. */
|
|
171
|
-
const intermediateToolCalls = [];
|
|
172
237
|
try {
|
|
173
238
|
// Dynamic import — the SDK is an optional dependency.
|
|
174
239
|
const sdkModule = "@anthropic-ai/claude-agent-sdk";
|
|
@@ -220,16 +285,11 @@ async function pumpSdkMessages(model, context, options, stream) {
|
|
|
220
285
|
if (!builder)
|
|
221
286
|
break;
|
|
222
287
|
const assistantEvent = builder.handleEvent(event);
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
const t = assistantEvent.type;
|
|
229
|
-
if (t !== "toolcall_start" && t !== "toolcall_delta" && t !== "toolcall_end") {
|
|
230
|
-
stream.push(assistantEvent);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
288
|
+
const sanitizedEvent = assistantEvent
|
|
289
|
+
? sanitizeClaudeCodeStreamingEvent(assistantEvent)
|
|
290
|
+
: null;
|
|
291
|
+
if (sanitizedEvent)
|
|
292
|
+
stream.push(sanitizedEvent);
|
|
233
293
|
break;
|
|
234
294
|
}
|
|
235
295
|
// -- Complete assistant message (non-streaming fallback) --
|
|
@@ -257,10 +317,6 @@ async function pumpSdkMessages(model, context, options, stream) {
|
|
|
257
317
|
else if (block.type === "thinking" && block.thinking) {
|
|
258
318
|
lastThinkingContent = block.thinking;
|
|
259
319
|
}
|
|
260
|
-
else if (block.type === "toolCall") {
|
|
261
|
-
// Collect tool calls for externalToolExecution rendering
|
|
262
|
-
intermediateToolCalls.push(block);
|
|
263
|
-
}
|
|
264
320
|
}
|
|
265
321
|
}
|
|
266
322
|
builder = null;
|
|
@@ -269,32 +325,7 @@ async function pumpSdkMessages(model, context, options, stream) {
|
|
|
269
325
|
// -- Result (terminal) --
|
|
270
326
|
case "result": {
|
|
271
327
|
const result = msg;
|
|
272
|
-
|
|
273
|
-
// agent loop's externalToolExecution path emits tool_execution
|
|
274
|
-
// events for proper TUI rendering, followed by the text response.
|
|
275
|
-
const finalContent = [];
|
|
276
|
-
// Add tool calls from intermediate turns first (renders above text)
|
|
277
|
-
finalContent.push(...intermediateToolCalls);
|
|
278
|
-
// Add text/thinking from the last turn
|
|
279
|
-
if (builder && builder.message.content.length > 0) {
|
|
280
|
-
for (const block of builder.message.content) {
|
|
281
|
-
if (block.type === "text" || block.type === "thinking") {
|
|
282
|
-
finalContent.push(block);
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
else {
|
|
287
|
-
if (lastThinkingContent) {
|
|
288
|
-
finalContent.push({ type: "thinking", thinking: lastThinkingContent });
|
|
289
|
-
}
|
|
290
|
-
if (lastTextContent) {
|
|
291
|
-
finalContent.push({ type: "text", text: lastTextContent });
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
// Fallback: use the SDK's result text if we have no content
|
|
295
|
-
if (finalContent.length === 0 && result.subtype === "success" && result.result) {
|
|
296
|
-
finalContent.push({ type: "text", text: result.result });
|
|
297
|
-
}
|
|
328
|
+
const finalContent = buildFinalClaudeCodeContent(builder?.message.content ?? [], lastThinkingContent, lastTextContent, result.subtype === "success" ? result.result : undefined);
|
|
298
329
|
const finalMessage = {
|
|
299
330
|
role: "assistant",
|
|
300
331
|
content: finalContent,
|
|
@@ -25,6 +25,12 @@ function maskPreview(value) {
|
|
|
25
25
|
function shellEscapeSingle(value) {
|
|
26
26
|
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
27
27
|
}
|
|
28
|
+
function isSafeEnvVarKey(key) {
|
|
29
|
+
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(key);
|
|
30
|
+
}
|
|
31
|
+
function isSupportedDeploymentEnvironment(env) {
|
|
32
|
+
return env === "development" || env === "preview" || env === "production";
|
|
33
|
+
}
|
|
28
34
|
function hydrateProcessEnv(key, value) {
|
|
29
35
|
// Make newly collected secrets immediately visible to the current session.
|
|
30
36
|
// Some extensions read process.env directly and do not reload .env on every call.
|
|
@@ -263,12 +269,22 @@ async function applySecrets(provided, destination, opts) {
|
|
|
263
269
|
}
|
|
264
270
|
if ((destination === "vercel" || destination === "convex") && opts.exec) {
|
|
265
271
|
const env = opts.environment ?? "development";
|
|
272
|
+
if (!isSupportedDeploymentEnvironment(env)) {
|
|
273
|
+
errors.push(`environment: unsupported target environment "${env}"`);
|
|
274
|
+
return { applied, errors };
|
|
275
|
+
}
|
|
266
276
|
for (const { key, value } of provided) {
|
|
277
|
+
if (!isSafeEnvVarKey(key)) {
|
|
278
|
+
errors.push(`${key}: invalid environment variable name`);
|
|
279
|
+
continue;
|
|
280
|
+
}
|
|
267
281
|
const cmd = destination === "vercel"
|
|
268
282
|
? `printf %s ${shellEscapeSingle(value)} | vercel env add ${key} ${env}`
|
|
269
|
-
:
|
|
283
|
+
: "";
|
|
270
284
|
try {
|
|
271
|
-
const result =
|
|
285
|
+
const result = destination === "vercel"
|
|
286
|
+
? await opts.exec("sh", ["-c", cmd])
|
|
287
|
+
: await opts.exec("npx", ["convex", "env", "set", key, value]);
|
|
272
288
|
if (result.code !== 0) {
|
|
273
289
|
errors.push(`${key}: ${result.stderr.slice(0, 200)}`);
|
|
274
290
|
}
|
|
@@ -27,6 +27,7 @@ import { isDbAvailable, getMilestoneSlices } from "../gsd-db.js";
|
|
|
27
27
|
import { resetEvidence } from "../safety/evidence-collector.js";
|
|
28
28
|
import { createCheckpoint, cleanupCheckpoint, rollbackToCheckpoint } from "../safety/git-checkpoint.js";
|
|
29
29
|
import { resolveSafetyHarnessConfig } from "../safety/safety-harness.js";
|
|
30
|
+
import { getWorkflowTransportSupportError, getRequiredWorkflowToolsForAutoUnit, } from "../workflow-mcp.js";
|
|
30
31
|
// ─── generateMilestoneReport ──────────────────────────────────────────────────
|
|
31
32
|
/**
|
|
32
33
|
* Resolve the base path for milestone reports.
|
|
@@ -886,6 +887,22 @@ export async function runUnitPhase(ic, iterData, loopState, sidecarItem) {
|
|
|
886
887
|
s.currentDispatchedModelId = s.currentUnitModel
|
|
887
888
|
? `${s.currentUnitModel.provider ?? ""}/${s.currentUnitModel.id ?? ""}`
|
|
888
889
|
: null;
|
|
890
|
+
const compatibilityError = getWorkflowTransportSupportError(s.currentUnitModel?.provider ?? ctx.model?.provider, getRequiredWorkflowToolsForAutoUnit(unitType), {
|
|
891
|
+
projectRoot: s.basePath,
|
|
892
|
+
surface: "auto-mode",
|
|
893
|
+
unitType,
|
|
894
|
+
authMode: s.currentUnitModel?.provider
|
|
895
|
+
? ctx.modelRegistry.getProviderAuthMode(s.currentUnitModel.provider)
|
|
896
|
+
: ctx.model?.provider
|
|
897
|
+
? ctx.modelRegistry.getProviderAuthMode(ctx.model.provider)
|
|
898
|
+
: undefined,
|
|
899
|
+
baseUrl: s.currentUnitModel?.baseUrl ?? ctx.model?.baseUrl,
|
|
900
|
+
});
|
|
901
|
+
if (compatibilityError) {
|
|
902
|
+
ctx.ui.notify(compatibilityError, "error");
|
|
903
|
+
await deps.stopAuto(ctx, pi, compatibilityError);
|
|
904
|
+
return { action: "break", reason: "workflow-capability" };
|
|
905
|
+
}
|
|
889
906
|
// Progress widget + preconditions — deferred to after model selection so the
|
|
890
907
|
// widget's first render tick shows the correct model (#2899).
|
|
891
908
|
deps.updateProgressWidget(ctx, unitType, unitId, state);
|
|
@@ -10,6 +10,7 @@ import { resolveMilestoneFile, resolveSliceFile, relSliceFile, } from "./paths.j
|
|
|
10
10
|
import { buildResearchSlicePrompt, buildResearchMilestonePrompt, buildPlanSlicePrompt, buildPlanMilestonePrompt, buildExecuteTaskPrompt, buildCompleteSlicePrompt, buildCompleteMilestonePrompt, buildReassessRoadmapPrompt, buildRunUatPrompt, buildReplanSlicePrompt, } from "./auto-prompts.js";
|
|
11
11
|
import { loadEffectiveGSDPreferences } from "./preferences.js";
|
|
12
12
|
import { pauseAuto } from "./auto.js";
|
|
13
|
+
import { getWorkflowTransportSupportError, getRequiredWorkflowToolsForAutoUnit, } from "./workflow-mcp.js";
|
|
13
14
|
export async function dispatchDirectPhase(ctx, pi, phase, base) {
|
|
14
15
|
const state = await deriveState(base);
|
|
15
16
|
const mid = state.activeMilestone?.id;
|
|
@@ -202,6 +203,17 @@ export async function dispatchDirectPhase(ctx, pi, phase, base) {
|
|
|
202
203
|
ctx.ui.notify(`Unknown phase "${phase}". Valid phases: research, plan, execute, complete, reassess, uat, replan.`, "warning");
|
|
203
204
|
return;
|
|
204
205
|
}
|
|
206
|
+
const compatibilityError = getWorkflowTransportSupportError(ctx.model?.provider, getRequiredWorkflowToolsForAutoUnit(unitType), {
|
|
207
|
+
projectRoot: base,
|
|
208
|
+
surface: "direct phase dispatch",
|
|
209
|
+
unitType,
|
|
210
|
+
authMode: ctx.model?.provider ? ctx.modelRegistry.getProviderAuthMode(ctx.model.provider) : undefined,
|
|
211
|
+
baseUrl: ctx.model?.baseUrl,
|
|
212
|
+
});
|
|
213
|
+
if (compatibilityError) {
|
|
214
|
+
ctx.ui.notify(compatibilityError, "error");
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
205
217
|
ctx.ui.notify(`Dispatching ${unitType} for ${unitId}...`, "info");
|
|
206
218
|
const result = await ctx.newSession();
|
|
207
219
|
if (result.cancelled) {
|
|
@@ -40,6 +40,7 @@ import { loadEffectiveGSDPreferences } from "./preferences.js";
|
|
|
40
40
|
import { getSliceTasks } from "./gsd-db.js";
|
|
41
41
|
import { runPreExecutionChecks } from "./pre-execution-checks.js";
|
|
42
42
|
import { writePreExecutionEvidence } from "./verification-evidence.js";
|
|
43
|
+
import { ensureCodebaseMapFresh } from "./codebase-generator.js";
|
|
43
44
|
/** Maximum verification retry attempts before escalating to blocker placeholder (#2653). */
|
|
44
45
|
const MAX_VERIFICATION_RETRIES = 3;
|
|
45
46
|
/** Enqueue a sidecar item (hook, triage, or quick-task) for the main loop to
|
|
@@ -553,6 +554,31 @@ export async function postUnitPreVerification(pctx, opts) {
|
|
|
553
554
|
*/
|
|
554
555
|
export async function postUnitPostVerification(pctx) {
|
|
555
556
|
const { s, ctx, pi, buildSnapshotOpts, lockBase, stopAuto, pauseAuto, updateProgressWidget } = pctx;
|
|
557
|
+
if (s.currentUnit) {
|
|
558
|
+
try {
|
|
559
|
+
const codebasePrefs = loadEffectiveGSDPreferences()?.preferences?.codebase;
|
|
560
|
+
const refresh = ensureCodebaseMapFresh(s.basePath, codebasePrefs
|
|
561
|
+
? {
|
|
562
|
+
excludePatterns: codebasePrefs.exclude_patterns,
|
|
563
|
+
maxFiles: codebasePrefs.max_files,
|
|
564
|
+
collapseThreshold: codebasePrefs.collapse_threshold,
|
|
565
|
+
}
|
|
566
|
+
: undefined, { force: true, ttlMs: 0 });
|
|
567
|
+
if (refresh.status === "generated" || refresh.status === "updated") {
|
|
568
|
+
debugLog("postUnit", {
|
|
569
|
+
phase: "codebase-refresh",
|
|
570
|
+
unitType: s.currentUnit.type,
|
|
571
|
+
unitId: s.currentUnit.id,
|
|
572
|
+
status: refresh.status,
|
|
573
|
+
fileCount: refresh.fileCount,
|
|
574
|
+
reason: refresh.reason,
|
|
575
|
+
});
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
catch (e) {
|
|
579
|
+
logWarning("engine", `CODEBASE refresh failed: ${e.message}`);
|
|
580
|
+
}
|
|
581
|
+
}
|
|
556
582
|
// ── Post-unit hooks ──
|
|
557
583
|
if (s.currentUnit && !s.stepMode) {
|
|
558
584
|
const hookUnit = checkPostUnitHooks(s.currentUnit.type, s.currentUnit.id, s.basePath);
|