gsd-pi 2.75.0-next.9c0ec0ba1 → 2.75.0
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 +51 -88
- package/dist/headless-events.d.ts +1 -1
- package/dist/headless-events.js +2 -5
- package/dist/headless.js +6 -5
- package/dist/loader.js +0 -0
- package/dist/onboarding.js +14 -39
- package/dist/resources/extensions/ask-user-questions.js +2 -11
- package/dist/resources/extensions/claude-code-cli/models.js +0 -9
- package/dist/resources/extensions/claude-code-cli/stream-adapter.js +4 -34
- package/dist/resources/extensions/gsd/auto/detect-stuck.js +0 -9
- package/dist/resources/extensions/gsd/auto/loop.js +4 -67
- package/dist/resources/extensions/gsd/auto/phases.js +47 -70
- package/dist/resources/extensions/gsd/auto/resolve.js +1 -1
- package/dist/resources/extensions/gsd/auto/run-unit.js +1 -10
- package/dist/resources/extensions/gsd/auto/session.js +0 -5
- package/dist/resources/extensions/gsd/auto-dispatch.js +5 -33
- package/dist/resources/extensions/gsd/auto-loop.js +1 -1
- package/dist/resources/extensions/gsd/auto-post-unit.js +3 -3
- package/dist/resources/extensions/gsd/auto-prompts.js +2 -2
- package/dist/resources/extensions/gsd/auto-recovery.js +0 -9
- package/dist/resources/extensions/gsd/auto-verification.js +3 -3
- package/dist/resources/extensions/gsd/auto.js +22 -32
- package/dist/resources/extensions/gsd/commands/catalog.js +3 -67
- package/dist/resources/extensions/gsd/commands/handlers/core.js +0 -6
- package/dist/resources/extensions/gsd/commands/handlers/ops.js +0 -11
- package/dist/resources/extensions/gsd/commands/handlers/workflow.js +29 -228
- package/dist/resources/extensions/gsd/commands-cmux.js +2 -5
- package/dist/resources/extensions/gsd/commands-do.js +0 -1
- package/dist/resources/extensions/gsd/commands-handlers.js +2 -21
- package/dist/resources/extensions/gsd/commands-prefs-wizard.js +1 -1
- package/dist/resources/extensions/gsd/commands-workflow-templates.js +2 -101
- package/dist/resources/extensions/gsd/definition-loader.js +0 -7
- package/dist/resources/extensions/gsd/docs/preferences-reference.md +8 -8
- package/dist/resources/extensions/gsd/doctor-providers.js +20 -48
- package/dist/resources/extensions/gsd/doctor-runtime-checks.js +3 -1
- package/dist/resources/extensions/gsd/error-classifier.js +1 -1
- package/dist/resources/extensions/gsd/forensics.js +29 -26
- package/dist/resources/extensions/gsd/git-service.js +1 -0
- package/dist/resources/extensions/gsd/graph.js +2 -0
- package/dist/resources/extensions/gsd/model-cost-table.js +1 -2
- package/dist/resources/extensions/gsd/model-router.js +1 -4
- package/dist/resources/extensions/gsd/native-git-bridge.js +5 -21
- package/dist/resources/extensions/gsd/notifications.js +0 -4
- package/dist/resources/extensions/gsd/pre-execution-checks.js +0 -7
- package/dist/resources/extensions/gsd/preferences.js +10 -10
- package/dist/resources/extensions/gsd/run-manager.js +17 -37
- package/dist/resources/extensions/gsd/templates/PREFERENCES.md +6 -6
- package/dist/resources/extensions/gsd/uok/flags.js +6 -6
- package/dist/resources/extensions/gsd/uok/kernel.js +3 -8
- package/dist/resources/extensions/gsd/workflow-mcp.js +6 -0
- package/dist/resources/extensions/gsd/workflow-templates/bugfix.md +0 -1
- package/dist/resources/extensions/gsd/workflow-templates/dep-upgrade.md +0 -1
- package/dist/resources/extensions/gsd/workflow-templates/full-project.md +0 -1
- package/dist/resources/extensions/gsd/workflow-templates/hotfix.md +0 -1
- package/dist/resources/extensions/gsd/workflow-templates/refactor.md +0 -1
- package/dist/resources/extensions/gsd/workflow-templates/registry.json +0 -184
- package/dist/resources/extensions/gsd/workflow-templates/security-audit.md +0 -1
- package/dist/resources/extensions/gsd/workflow-templates/small-feature.md +0 -1
- package/dist/resources/extensions/gsd/workflow-templates/spike.md +0 -1
- package/dist/resources/extensions/remote-questions/manager.js +4 -28
- package/dist/resources/extensions/remote-questions/telegram-adapter.js +4 -79
- package/dist/resources/extensions/shared/interview-ui.js +1 -189
- package/dist/resources/extensions/shared/layout-utils.js +0 -17
- package/dist/resources/extensions/shared/rtk.js +46 -3
- package/dist/resources/skills/create-workflow/SKILL.md +6 -33
- package/dist/rtk.d.ts +6 -2
- package/dist/rtk.js +48 -3
- package/dist/tsconfig.extensions.tsbuildinfo +1 -1
- package/dist/update-check.d.ts +0 -10
- package/dist/update-check.js +3 -24
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +13 -13
- package/dist/web/standalone/.next/build-manifest.json +4 -4
- package/dist/web/standalone/.next/prerender-manifest.json +3 -3
- package/dist/web/standalone/.next/react-loadable-manifest.json +1 -1
- package/dist/web/standalone/.next/required-server-files.json +3 -3
- package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
- 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 -1
- package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- 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 +1 -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 +1 -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_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 +4 -4
- package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- 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 +4 -4
- 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 +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/api/boot/route.js +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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
- 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_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_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_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_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_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_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_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 +5 -5
- package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +5 -5
- 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 +4 -4
- package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/page.js +2 -2
- package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app-paths-manifest.json +13 -13
- package/dist/web/standalone/.next/server/chunks/63.js +3 -3
- package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
- package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
- package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/dist/web/standalone/.next/server/middleware.js +2 -2
- package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
- package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
- package/dist/web/standalone/.next/server/pages/404.html +1 -1
- package/dist/web/standalone/.next/server/pages/500.html +1 -1
- package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
- package/dist/web/standalone/.next/static/chunks/2826.dd3dc8bbd3025fa5.js +9 -0
- package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-f2a7482d42a5614b.js → page-2f24283c162b6ab3.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/app/{layout-a16c7a7ecdf0c2cf.js → layout-9ecfd95f343793f0.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/app/page-7115e62689b5fd84.js +1 -0
- package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +1 -0
- package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +1 -0
- package/dist/web/standalone/.next/static/chunks/{webpack-6c7cda3e318eedb6.js → webpack-b868033a5834586d.js} +1 -1
- package/dist/web/standalone/.next/static/css/f6e8833d46e738d8.css +1 -0
- package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
- package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
- package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
- package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
- package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
- package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
- package/dist/web/standalone/server.js +1 -1
- package/dist/wizard.js +2 -2
- package/dist/worktree-cli.d.ts +5 -6
- package/dist/worktree-cli.js +7 -23
- package/package.json +3 -3
- package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
- package/packages/native/dist/ps/types.d.ts +5 -0
- package/packages/native/dist/ps/types.js +2 -0
- package/packages/native/src/ps/types.ts +5 -0
- package/packages/native/tsconfig.tsbuildinfo +1 -1
- package/packages/pi-agent-core/tsconfig.tsbuildinfo +1 -1
- package/packages/pi-ai/dist/models/capability-patches.d.ts.map +1 -1
- package/packages/pi-ai/dist/models/capability-patches.js +2 -3
- package/packages/pi-ai/dist/models/capability-patches.js.map +1 -1
- package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts +0 -68
- package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts.map +1 -1
- package/packages/pi-ai/dist/models/generated/amazon-bedrock.js +0 -68
- package/packages/pi-ai/dist/models/generated/amazon-bedrock.js.map +1 -1
- package/packages/pi-ai/dist/models/generated/anthropic.d.ts +0 -17
- package/packages/pi-ai/dist/models/generated/anthropic.d.ts.map +1 -1
- package/packages/pi-ai/dist/models/generated/anthropic.js +0 -17
- package/packages/pi-ai/dist/models/generated/anthropic.js.map +1 -1
- package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts +0 -17
- package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts.map +1 -1
- package/packages/pi-ai/dist/models/generated/google-antigravity.js +0 -17
- package/packages/pi-ai/dist/models/generated/google-antigravity.js.map +1 -1
- package/packages/pi-ai/dist/models/generated/groq.d.ts +153 -0
- package/packages/pi-ai/dist/models/generated/groq.d.ts.map +1 -1
- package/packages/pi-ai/dist/models/generated/groq.js +153 -0
- package/packages/pi-ai/dist/models/generated/groq.js.map +1 -1
- package/packages/pi-ai/dist/models/generated/index.d.ts +153 -119
- package/packages/pi-ai/dist/models/generated/index.d.ts.map +1 -1
- package/packages/pi-ai/dist/models/generated/openrouter.d.ts +0 -17
- package/packages/pi-ai/dist/models/generated/openrouter.d.ts.map +1 -1
- package/packages/pi-ai/dist/models/generated/openrouter.js +0 -17
- package/packages/pi-ai/dist/models/generated/openrouter.js.map +1 -1
- package/packages/pi-ai/dist/models.generated.test.js +0 -16
- package/packages/pi-ai/dist/models.generated.test.js.map +1 -1
- package/packages/pi-ai/dist/providers/amazon-bedrock.js +1 -2
- package/packages/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
- package/packages/pi-ai/dist/providers/anthropic-shared.d.ts +1 -1
- package/packages/pi-ai/dist/providers/anthropic-shared.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/anthropic-shared.js +1 -7
- package/packages/pi-ai/dist/providers/anthropic-shared.js.map +1 -1
- package/packages/pi-ai/dist/providers/anthropic-shared.test.js +1 -12
- package/packages/pi-ai/dist/providers/anthropic-shared.test.js.map +1 -1
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/LICENSE +201 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/README.md +9 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-cjs/index.js +762 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/build-abort-error.js +19 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/constants.js +1 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/get-transformed-headers.js +9 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/index.js +3 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js +230 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +87 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-pool.js +32 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +169 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/readable.mock.js +21 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/server.mock.js +88 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js +36 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-request-timeout.js +21 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-socket-keep-alive.js +22 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js +23 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +8 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +41 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/stream-collector/readable.mock.js +21 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/timing.js +4 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/write-request-body.js +63 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/build-abort-error.d.ts +10 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/constants.d.ts +5 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/get-transformed-headers.d.ts +4 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +3 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http-handler.d.ts +46 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +24 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-pool.d.ts +12 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +63 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/readable.mock.d.ts +13 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/server.mock.d.ts +12 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-connection-timeout.d.ts +2 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-request-timeout.d.ts +6 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-socket-keep-alive.d.ts +6 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-socket-timeout.d.ts +2 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +5 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +6 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/stream-collector/readable.mock.d.ts +13 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/timing.d.ts +8 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/build-abort-error.d.ts +10 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/constants.d.ts +5 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/get-transformed-headers.d.ts +4 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/index.d.ts +3 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http-handler.d.ts +46 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-manager.d.ts +24 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-pool.d.ts +12 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-handler.d.ts +63 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/readable.mock.d.ts +13 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/server.mock.d.ts +12 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-connection-timeout.d.ts +2 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-request-timeout.d.ts +6 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-keep-alive.d.ts +6 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-timeout.d.ts +2 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/collector.d.ts +5 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/index.d.ts +6 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/readable.mock.d.ts +13 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/timing.d.ts +8 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/write-request-body.d.ts +12 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/write-request-body.d.ts +12 -0
- package/packages/pi-ai/node_modules/@smithy/node-http-handler/package.json +68 -0
- package/packages/pi-ai/oauth.d.ts +1 -0
- package/packages/pi-ai/oauth.js +1 -0
- package/packages/pi-ai/package.json +1 -1
- package/packages/pi-ai/scripts/generate-models.ts +0 -38
- package/packages/pi-ai/src/models/capability-patches.ts +2 -5
- package/packages/pi-ai/src/models/generated/amazon-bedrock.ts +0 -68
- package/packages/pi-ai/src/models/generated/anthropic.ts +0 -17
- package/packages/pi-ai/src/models/generated/google-antigravity.ts +0 -17
- package/packages/pi-ai/src/models/generated/groq.ts +153 -0
- package/packages/pi-ai/src/models/generated/openrouter.ts +0 -17
- package/packages/pi-ai/src/models.generated.test.ts +0 -16
- package/packages/pi-ai/src/providers/amazon-bedrock.ts +1 -2
- package/packages/pi-ai/src/providers/anthropic-shared.test.ts +1 -15
- package/packages/pi-ai/src/providers/anthropic-shared.ts +2 -6
- package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
- package/packages/pi-coding-agent/dist/core/auth-storage.d.ts +0 -7
- package/packages/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/auth-storage.js +0 -9
- package/packages/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/auth-storage.test.js +0 -36
- package/packages/pi-coding-agent/dist/core/auth-storage.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/sdk.js +0 -10
- package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/skill-tool.test.js +2 -2
- package/packages/pi-coding-agent/dist/core/skill-tool.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +65 -0
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js +75 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +21 -185
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -1
- package/packages/pi-coding-agent/src/core/auth-storage.test.ts +0 -41
- package/packages/pi-coding-agent/src/core/auth-storage.ts +0 -10
- package/packages/pi-coding-agent/src/core/sdk.ts +0 -14
- package/packages/pi-coding-agent/src/core/skill-tool.test.ts +2 -2
- package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +83 -1
- package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +24 -201
- package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
- package/packages/pi-tui/tsconfig.tsbuildinfo +1 -1
- package/packages/rpc-client/tsconfig.tsbuildinfo +1 -1
- package/pkg/dist/modes/interactive/theme/theme.d.ts +65 -0
- package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/pkg/dist/modes/interactive/theme/theme.js +75 -1
- package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
- package/pkg/dist/modes/interactive/theme/themes.d.ts +1 -1
- package/pkg/dist/modes/interactive/theme/themes.d.ts.map +1 -1
- package/pkg/dist/modes/interactive/theme/themes.js +21 -185
- package/pkg/dist/modes/interactive/theme/themes.js.map +1 -1
- package/src/resources/extensions/ask-user-questions.ts +2 -17
- package/src/resources/extensions/claude-code-cli/models.ts +0 -9
- package/src/resources/extensions/claude-code-cli/stream-adapter.ts +4 -36
- package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +0 -18
- package/src/resources/extensions/gsd/auto/detect-stuck.ts +0 -10
- package/src/resources/extensions/gsd/auto/loop-deps.ts +0 -1
- package/src/resources/extensions/gsd/auto/loop.ts +3 -109
- package/src/resources/extensions/gsd/auto/phases.ts +60 -94
- package/src/resources/extensions/gsd/auto/resolve.ts +1 -1
- package/src/resources/extensions/gsd/auto/run-unit.ts +1 -11
- package/src/resources/extensions/gsd/auto/session.ts +0 -7
- package/src/resources/extensions/gsd/auto-dispatch.ts +5 -45
- package/src/resources/extensions/gsd/auto-loop.ts +1 -1
- package/src/resources/extensions/gsd/auto-post-unit.ts +3 -3
- package/src/resources/extensions/gsd/auto-prompts.ts +2 -7
- package/src/resources/extensions/gsd/auto-recovery.ts +1 -16
- package/src/resources/extensions/gsd/auto-verification.ts +3 -3
- package/src/resources/extensions/gsd/auto.ts +26 -34
- package/src/resources/extensions/gsd/commands/catalog.ts +3 -60
- package/src/resources/extensions/gsd/commands/handlers/core.ts +0 -6
- package/src/resources/extensions/gsd/commands/handlers/ops.ts +0 -11
- package/src/resources/extensions/gsd/commands/handlers/workflow.ts +29 -279
- package/src/resources/extensions/gsd/commands-cmux.ts +2 -6
- package/src/resources/extensions/gsd/commands-do.ts +0 -1
- package/src/resources/extensions/gsd/commands-handlers.ts +2 -19
- package/src/resources/extensions/gsd/commands-prefs-wizard.ts +1 -1
- package/src/resources/extensions/gsd/commands-workflow-templates.ts +2 -129
- package/src/resources/extensions/gsd/definition-loader.ts +0 -7
- package/src/resources/extensions/gsd/docs/preferences-reference.md +8 -8
- package/src/resources/extensions/gsd/doctor-providers.ts +22 -52
- package/src/resources/extensions/gsd/doctor-runtime-checks.ts +3 -1
- package/src/resources/extensions/gsd/error-classifier.ts +1 -1
- package/src/resources/extensions/gsd/forensics.ts +29 -25
- package/src/resources/extensions/gsd/git-service.ts +1 -0
- package/src/resources/extensions/gsd/graph.ts +3 -0
- package/src/resources/extensions/gsd/model-cost-table.ts +1 -2
- package/src/resources/extensions/gsd/model-router.ts +1 -4
- package/src/resources/extensions/gsd/native-git-bridge.ts +5 -21
- package/src/resources/extensions/gsd/notifications.ts +0 -6
- package/src/resources/extensions/gsd/pre-execution-checks.ts +0 -6
- package/src/resources/extensions/gsd/preferences-types.ts +1 -1
- package/src/resources/extensions/gsd/preferences.ts +10 -10
- package/src/resources/extensions/gsd/run-manager.ts +19 -53
- package/src/resources/extensions/gsd/templates/PREFERENCES.md +6 -6
- package/src/resources/extensions/gsd/tests/agent-end-retry.test.ts +34 -1
- package/src/resources/extensions/gsd/tests/auto-loop.test.ts +31 -45
- package/src/resources/extensions/gsd/tests/autocomplete-regressions-1675.test.ts +0 -39
- package/src/resources/extensions/gsd/tests/commands-do.test.ts +0 -48
- package/src/resources/extensions/gsd/tests/commands-workflow-custom.test.ts +6 -8
- package/src/resources/extensions/gsd/tests/doctor-providers.test.ts +18 -62
- package/src/resources/extensions/gsd/tests/finalize-timeout-guard.test.ts +12 -29
- package/src/resources/extensions/gsd/tests/graph-operations.test.ts +4 -0
- package/src/resources/extensions/gsd/tests/integration/doctor-runtime.test.ts +0 -36
- package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +10 -41
- package/src/resources/extensions/gsd/tests/integration/idle-recovery.test.ts +0 -51
- package/src/resources/extensions/gsd/tests/journal-integration.test.ts +1 -171
- package/src/resources/extensions/gsd/tests/pre-execution-checks.test.ts +5 -24
- package/src/resources/extensions/gsd/tests/preferences.test.ts +1 -69
- package/src/resources/extensions/gsd/tests/prompt-db.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/provider-errors.test.ts +0 -4
- package/src/resources/extensions/gsd/tests/stuck-detection-coverage.test.ts +0 -15
- package/src/resources/extensions/gsd/tests/uok-flags.test.ts +1 -31
- package/src/resources/extensions/gsd/tests/workflow-logger-wiring.test.ts +6 -15
- package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/workflow-templates.test.ts +2 -8
- package/src/resources/extensions/gsd/unit-runtime.ts +0 -1
- package/src/resources/extensions/gsd/uok/flags.ts +6 -6
- package/src/resources/extensions/gsd/uok/kernel.ts +4 -16
- package/src/resources/extensions/gsd/workflow-mcp.ts +6 -0
- package/src/resources/extensions/gsd/workflow-templates/bugfix.md +0 -1
- package/src/resources/extensions/gsd/workflow-templates/dep-upgrade.md +0 -1
- package/src/resources/extensions/gsd/workflow-templates/full-project.md +0 -1
- package/src/resources/extensions/gsd/workflow-templates/hotfix.md +0 -1
- package/src/resources/extensions/gsd/workflow-templates/refactor.md +0 -1
- package/src/resources/extensions/gsd/workflow-templates/registry.json +0 -184
- package/src/resources/extensions/gsd/workflow-templates/security-audit.md +0 -1
- package/src/resources/extensions/gsd/workflow-templates/small-feature.md +0 -1
- package/src/resources/extensions/gsd/workflow-templates/spike.md +0 -1
- package/src/resources/extensions/gsd/workflow-templates.ts +0 -7
- package/src/resources/extensions/gsd/workspace-index.ts +4 -9
- package/src/resources/extensions/remote-questions/manager.ts +3 -36
- package/src/resources/extensions/remote-questions/telegram-adapter.ts +4 -86
- package/src/resources/extensions/shared/interview-ui.ts +1 -195
- package/src/resources/extensions/shared/layout-utils.ts +0 -26
- package/src/resources/extensions/shared/rtk.ts +52 -12
- package/src/resources/skills/create-workflow/SKILL.md +6 -33
- package/dist/resources/extensions/gsd/commands-debug.js +0 -388
- package/dist/resources/extensions/gsd/commands-scan.js +0 -94
- package/dist/resources/extensions/gsd/debug-session-store.js +0 -238
- package/dist/resources/extensions/gsd/prompts/debug-diagnose.md +0 -25
- package/dist/resources/extensions/gsd/prompts/debug-session-manager.md +0 -80
- package/dist/resources/extensions/gsd/prompts/scan.md +0 -79
- package/dist/resources/extensions/gsd/prompts/workflow-oneshot.md +0 -26
- package/dist/resources/extensions/gsd/workflow-dispatch.js +0 -64
- package/dist/resources/extensions/gsd/workflow-install.js +0 -327
- package/dist/resources/extensions/gsd/workflow-plugins.js +0 -346
- package/dist/resources/extensions/gsd/workflow-templates/accessibility-audit.md +0 -88
- package/dist/resources/extensions/gsd/workflow-templates/api-breaking-change.md +0 -117
- package/dist/resources/extensions/gsd/workflow-templates/changelog-gen.md +0 -82
- package/dist/resources/extensions/gsd/workflow-templates/ci-bootstrap.md +0 -144
- package/dist/resources/extensions/gsd/workflow-templates/dead-code.md +0 -81
- package/dist/resources/extensions/gsd/workflow-templates/docs-sync.yaml +0 -76
- package/dist/resources/extensions/gsd/workflow-templates/env-audit.yaml +0 -88
- package/dist/resources/extensions/gsd/workflow-templates/issue-triage.md +0 -84
- package/dist/resources/extensions/gsd/workflow-templates/observability-setup.md +0 -133
- package/dist/resources/extensions/gsd/workflow-templates/onboarding-check.md +0 -74
- package/dist/resources/extensions/gsd/workflow-templates/performance-audit.md +0 -125
- package/dist/resources/extensions/gsd/workflow-templates/pr-review.md +0 -67
- package/dist/resources/extensions/gsd/workflow-templates/pr-triage.md +0 -83
- package/dist/resources/extensions/gsd/workflow-templates/release.md +0 -118
- package/dist/resources/extensions/gsd/workflow-templates/rename-symbol.yaml +0 -99
- package/dist/resources/extensions/gsd/workflow-templates/test-backfill.yaml +0 -73
- package/dist/resources/extensions/remote-questions/commands.js +0 -380
- package/dist/resources/extensions/shared/rtk-shared.js +0 -47
- package/dist/rtk-shared.d.ts +0 -10
- package/dist/rtk-shared.js +0 -47
- package/dist/shared/workspace-types.d.ts +0 -52
- package/dist/shared/workspace-types.js +0 -1
- package/dist/web/standalone/.next/static/chunks/2826.02df9631042cc18e.js +0 -9
- package/dist/web/standalone/.next/static/chunks/app/page-f1e30ab6bb269149.js +0 -1
- package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +0 -1
- package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +0 -1
- package/dist/web/standalone/.next/static/css/3e9cdadb4d23b8a4.css +0 -1
- package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.d.ts +0 -2
- package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.d.ts.map +0 -1
- package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js +0 -38
- package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js.map +0 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts +0 -69
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts.map +0 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js +0 -76
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js.map +0 -1
- package/packages/pi-coding-agent/src/core/agent-session-abort-order.test.ts +0 -56
- package/packages/pi-coding-agent/src/modes/interactive/theme/theme-schema.ts +0 -82
- package/pkg/dist/modes/interactive/theme/theme-schema.d.ts +0 -69
- package/pkg/dist/modes/interactive/theme/theme-schema.d.ts.map +0 -1
- package/pkg/dist/modes/interactive/theme/theme-schema.js +0 -76
- package/pkg/dist/modes/interactive/theme/theme-schema.js.map +0 -1
- package/src/resources/extensions/gsd/commands-debug.ts +0 -484
- package/src/resources/extensions/gsd/commands-scan.ts +0 -125
- package/src/resources/extensions/gsd/debug-session-store.ts +0 -377
- package/src/resources/extensions/gsd/prompts/debug-diagnose.md +0 -25
- package/src/resources/extensions/gsd/prompts/debug-session-manager.md +0 -80
- package/src/resources/extensions/gsd/prompts/scan.md +0 -79
- package/src/resources/extensions/gsd/prompts/workflow-oneshot.md +0 -26
- package/src/resources/extensions/gsd/tests/commands-scan.test.ts +0 -351
- package/src/resources/extensions/gsd/tests/debug-command-handler.test.ts +0 -905
- package/src/resources/extensions/gsd/tests/debug-command-lifecycle.integration.test.ts +0 -1229
- package/src/resources/extensions/gsd/tests/debug-session-store.test.ts +0 -565
- package/src/resources/extensions/gsd/tests/discuss-milestone-structured-questions.test.ts +0 -64
- package/src/resources/extensions/gsd/tests/dispatch-complete-milestone-guard.test.ts +0 -67
- package/src/resources/extensions/gsd/tests/forensics-hook-key-parse.test.ts +0 -74
- package/src/resources/extensions/gsd/tests/remote-notification-from-desktop.test.ts +0 -107
- package/src/resources/extensions/gsd/tests/uok-kernel-path.test.ts +0 -166
- package/src/resources/extensions/gsd/tests/workflow-install.test.ts +0 -113
- package/src/resources/extensions/gsd/tests/workflow-plugins.test.ts +0 -310
- package/src/resources/extensions/gsd/workflow-dispatch.ts +0 -106
- package/src/resources/extensions/gsd/workflow-install.ts +0 -423
- package/src/resources/extensions/gsd/workflow-plugins.ts +0 -403
- package/src/resources/extensions/gsd/workflow-templates/accessibility-audit.md +0 -88
- package/src/resources/extensions/gsd/workflow-templates/api-breaking-change.md +0 -117
- package/src/resources/extensions/gsd/workflow-templates/changelog-gen.md +0 -82
- package/src/resources/extensions/gsd/workflow-templates/ci-bootstrap.md +0 -144
- package/src/resources/extensions/gsd/workflow-templates/dead-code.md +0 -81
- package/src/resources/extensions/gsd/workflow-templates/docs-sync.yaml +0 -76
- package/src/resources/extensions/gsd/workflow-templates/env-audit.yaml +0 -88
- package/src/resources/extensions/gsd/workflow-templates/issue-triage.md +0 -84
- package/src/resources/extensions/gsd/workflow-templates/observability-setup.md +0 -133
- package/src/resources/extensions/gsd/workflow-templates/onboarding-check.md +0 -74
- package/src/resources/extensions/gsd/workflow-templates/performance-audit.md +0 -125
- package/src/resources/extensions/gsd/workflow-templates/pr-review.md +0 -67
- package/src/resources/extensions/gsd/workflow-templates/pr-triage.md +0 -83
- package/src/resources/extensions/gsd/workflow-templates/release.md +0 -118
- package/src/resources/extensions/gsd/workflow-templates/rename-symbol.yaml +0 -99
- package/src/resources/extensions/gsd/workflow-templates/test-backfill.yaml +0 -73
- package/src/resources/extensions/remote-questions/commands.ts +0 -480
- package/src/resources/extensions/remote-questions/tests/command-polling.test.ts +0 -246
- package/src/resources/extensions/remote-questions/tests/telegram-commands.test.ts +0 -267
- package/src/resources/extensions/shared/rtk-shared.ts +0 -58
- package/src/resources/extensions/shared/tests/interview-preview.test.ts +0 -177
- package/src/resources/extensions/shared/tests/preview-layout.test.ts +0 -120
- /package/dist/web/standalone/.next/static/{JncJywFxCugMuXGs56m-b → prkokVQFxWtUVIku57_0z}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{JncJywFxCugMuXGs56m-b → prkokVQFxWtUVIku57_0z}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -27,120 +27,85 @@ 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.71
|
|
31
31
|
|
|
32
|
-
###
|
|
32
|
+
### MCP Secure Env Collect
|
|
33
33
|
|
|
34
|
-
- **
|
|
35
|
-
-
|
|
34
|
+
- **Secure credential collection over MCP** — the new `secure_env_collect` tool uses MCP form elicitation to collect secrets (API keys, tokens) from external clients without exposing values in tool output. Masks input in interactive mode.
|
|
35
|
+
- **Hardened elicitation schema** — MCP elicitation schema handling is stricter, with proper validation and fallback for providers that don't support forms.
|
|
36
36
|
|
|
37
|
-
###
|
|
37
|
+
### MCP Reliability
|
|
38
38
|
|
|
39
|
-
- **
|
|
39
|
+
- **Stream ordering preserved** — MCP tool output now renders in the correct order, fixing interleaved output in Claude Code and other MCP clients.
|
|
40
|
+
- **isError flag propagation** — workflow tool execution failures now correctly return `isError: true`, so MCP clients can distinguish success from failure.
|
|
41
|
+
- **Multi-round discuss questions** — new-project discuss phase supports multi-round questioning with structured question gates.
|
|
40
42
|
|
|
41
|
-
###
|
|
43
|
+
### Model Selection Hardening
|
|
42
44
|
|
|
43
|
-
- **
|
|
45
|
+
- **Unconfigured models blocked** — models without a configured provider are filtered from selection surfaces, preventing dispatch failures.
|
|
46
|
+
- **Provider readiness required** — saved default model selection now verifies the provider is ready before accepting it.
|
|
47
|
+
- **Session override honored** — `/gsd model` selection persists as a session override across all dispatch phases.
|
|
48
|
+
- **Minimal context guard** — model override logic is skipped in minimal command contexts where it doesn't apply.
|
|
44
49
|
|
|
45
|
-
###
|
|
50
|
+
### Auto-Mode Resilience
|
|
46
51
|
|
|
47
|
-
- **
|
|
52
|
+
- **Credential cooldown recovery** — auto-mode survives transient 429 rate-limit responses with structured cooldown errors and a bounded retry budget.
|
|
53
|
+
- **Fire-and-forget auto start** — auto start is detached from active turns to prevent blocking.
|
|
54
|
+
- **Scoped forensics** — stuck-loop forensics are now scoped to auto sessions only, preventing false positives in interactive use.
|
|
48
55
|
|
|
49
56
|
### TUI Improvements
|
|
50
57
|
|
|
51
|
-
- **
|
|
52
|
-
- **
|
|
53
|
-
- **
|
|
58
|
+
- **Overlay subscription fix** — resolved overlay subscription lifecycle and `Ctrl+Shift+P` shortcut conflict.
|
|
59
|
+
- **Improved overlays and shortcuts** — GSD overlays, keyboard shortcuts, and notification flows redesigned for consistency.
|
|
60
|
+
- **Pinned output restored** — pinned output bar displays above the editor during tool execution again.
|
|
61
|
+
- **Turn completion cleanup** — pinned latest output is cleared on turn completion, preventing stale output from persisting.
|
|
62
|
+
- **Secure input masking** — extension input values are masked in interactive mode when collecting secrets.
|
|
54
63
|
|
|
55
|
-
###
|
|
64
|
+
### Provider Fixes
|
|
56
65
|
|
|
57
|
-
- **
|
|
58
|
-
- **
|
|
59
|
-
- **
|
|
60
|
-
- **
|
|
66
|
+
- **Full OAuth login URLs** — OAuth login URLs are now displayed in full instead of being truncated.
|
|
67
|
+
- **MiniMax bearer auth** — MiniMax Anthropic API requests use proper bearer authentication.
|
|
68
|
+
- **Case-insensitive tool rendering** — renderable tool matching is now case-insensitive, fixing missed tool output.
|
|
69
|
+
- **Headless idle timeout** — idle timeout is kept off during interactive tool execution in headless mode.
|
|
61
70
|
|
|
62
|
-
###
|
|
71
|
+
### Reliability & Internals
|
|
63
72
|
|
|
64
|
-
- **
|
|
65
|
-
- **
|
|
66
|
-
- **
|
|
67
|
-
- **
|
|
68
|
-
- **
|
|
73
|
+
- **TOCTOU file locking** — race conditions in event log and custom workflow graph file locking are fixed with proper atomic lock acquisition.
|
|
74
|
+
- **State derive refactor** — `deriveStateFromDb` god function extracted into composable, testable helpers.
|
|
75
|
+
- **Windows portability** — hardened cross-platform portability across runtime, tooling, and CI.
|
|
76
|
+
- **Model routing transparency** — dynamic routing is skipped for interactive dispatches; model changes are always shown in the banner.
|
|
77
|
+
- **Capability-aware routing (ADR-004)** — full implementation of capability scoring, `before_model_select` hook, and task metadata extraction.
|
|
78
|
+
- **Multi-model provider strategy (ADR-005)** — infrastructure for multi-provider model selection wired into live paths.
|
|
79
|
+
- **Anti-fabrication guardrails** — discuss prompts enforce turn-taking to prevent fabricated user responses.
|
|
80
|
+
- **Milestone worktree cleanup** — merged worktree cleanup uses the milestone branch instead of generic lookups.
|
|
81
|
+
- **Tool cache control** — `cache_control` breakpoints added to tool definitions for improved prompt caching.
|
|
69
82
|
|
|
70
83
|
See the full [Changelog](./CHANGELOG.md) for details on every release.
|
|
71
84
|
|
|
72
85
|
<details>
|
|
73
|
-
<summary>v2.
|
|
74
|
-
|
|
75
|
-
- **DB-authoritative milestone completeness** — milestone completion state is derived from the database, not file markers (#4179)
|
|
76
|
-
- **Flat-rate provider detection** — extended to custom and externalCli providers
|
|
77
|
-
- **Thinking level as effort** — Claude Code passes thinking level as an effort parameter
|
|
78
|
-
- **False milestone merge prevention** — auto-mode no longer falsely merges after a `complete-milestone` failure (#4175)
|
|
79
|
-
- **Premature auto-stop fix** — prevents auto-mode from stopping early on blocked phase + missing reassessment
|
|
80
|
-
- **Inline tool call rendering** — assistant tool calls render inline with text instead of grouped at the end
|
|
81
|
-
- **Custom model preservation** — custom model selection preserved on `/gsd auto` bootstrap (#4122)
|
|
82
|
-
|
|
83
|
-
</details>
|
|
84
|
-
|
|
85
|
-
<details>
|
|
86
|
-
<summary>v2.73 highlights</summary>
|
|
87
|
-
|
|
88
|
-
- **Alibaba DashScope provider** — added as a standalone provider (#3891)
|
|
89
|
-
- **Layered depth enforcement** — discuss phase enforces depth gates for thorough requirements gathering (#4079)
|
|
90
|
-
- **Memory pressure watchdog** — stuck detection state persisted across sessions (#3708)
|
|
91
|
-
- **Ollama cloud auth** — cloud auth support and real context window resolution via `/api/show` (#4017)
|
|
92
|
-
- **DB corruption prevention** — direct writes to `gsd.db` blocked via hooks (#3674)
|
|
93
|
-
- **Circular dependency cleanup** — 3 circular dependencies broken in extension modules (#3730)
|
|
94
|
-
- **Subagent permissions** — GSD subagents default to `bypassPermissions` with safe built-ins pre-authorized
|
|
95
|
-
- **Security hardening** — auth middleware activated, shutdown/update routes hardened (#4023)
|
|
96
|
-
- **Stale slice reconciliation** — stale slice rows reconciled and STATE.md rebuilt before DB close (#3658)
|
|
97
|
-
- **Subagent model preference** — `subagent_model` preference wired through to dispatch prompt builders
|
|
98
|
-
- **Pipeline integrity** — 5 pipeline issues addressed from release audit, package-lock.json regenerated during bumps
|
|
99
|
-
|
|
100
|
-
</details>
|
|
101
|
-
|
|
102
|
-
<details>
|
|
103
|
-
<summary>v2.72 highlights</summary>
|
|
104
|
-
|
|
105
|
-
- **8 specialist subagents** — new specialist subagents and slim pro agents with GSD phase guard to prevent conflicts
|
|
106
|
-
- **Model selection hardening** — unconfigured models blocked from selection, provider readiness required, session override honored
|
|
107
|
-
- **Auto-mode resilience** — credential cooldown recovery with bounded retry budget, fire-and-forget auto start, scoped forensics
|
|
108
|
-
- **TUI overhaul** — overlays, keyboard shortcuts, and notification flows redesigned for consistency
|
|
109
|
-
- **Capability-aware routing (ADR-004)** — full implementation of capability scoring, `before_model_select` hook, and task metadata extraction
|
|
110
|
-
- **Multi-model provider strategy (ADR-005)** — infrastructure for multi-provider model selection wired into live paths
|
|
111
|
-
- **Anti-fabrication guardrails** — discuss prompts enforce turn-taking to prevent fabricated user responses
|
|
112
|
-
- **Windows portability** — hardened cross-platform portability across runtime, tooling, and CI
|
|
113
|
-
- **MCP reliability** — every registered tool exposed, SDK subpath resolution fixed, abort signals threaded through
|
|
114
|
-
- **Tool cache control** — `cache_control` breakpoints added to tool definitions for improved prompt caching
|
|
115
|
-
|
|
116
|
-
</details>
|
|
117
|
-
|
|
118
|
-
<details>
|
|
119
|
-
<summary>v2.71 highlights</summary>
|
|
120
|
-
|
|
121
|
-
- **Secure credential collection over MCP** — `secure_env_collect` tool uses MCP form elicitation to collect secrets without exposing values in tool output
|
|
122
|
-
- **MCP stream ordering** — tool output renders in correct order, fixing interleaved output in Claude Code and other MCP clients
|
|
123
|
-
- **isError flag propagation** — workflow tool execution failures correctly return `isError: true`
|
|
124
|
-
- **Multi-round discuss questions** — new-project discuss phase supports multi-round questioning with structured question gates
|
|
125
|
-
- **TOCTOU file locking** — race conditions in event log and custom workflow graph file locking fixed with atomic lock acquisition
|
|
126
|
-
- **State derive refactor** — `deriveStateFromDb` god function extracted into composable, testable helpers
|
|
127
|
-
- **Pinned output fixes** — restored above editor during tool execution, cleared on turn completion
|
|
128
|
-
|
|
129
|
-
</details>
|
|
130
|
-
|
|
131
|
-
<details>
|
|
132
|
-
<summary>v2.70 and earlier</summary>
|
|
86
|
+
<summary>Previous highlights (v2.70 and earlier)</summary>
|
|
133
87
|
|
|
134
88
|
- **Full workflow over MCP (v2.68)** — slice replanning, milestone management, slice completion, task completion, and core planning tools exposed over MCP
|
|
135
89
|
- **Transport-gated MCP (v2.68)** — workflow tool availability adapts to provider transport capabilities automatically
|
|
136
90
|
- **Contextual tips system (v2.68)** — TUI and web terminal surface contextual tips based on workflow state
|
|
137
91
|
- **Ask user questions over MCP (v2.70)** — interactive questions exposed via elicitation for external integrations
|
|
138
92
|
- **Tiered Context Injection (M005)** — relevance-scoped context with 65%+ token reduction
|
|
93
|
+
- **Resilient transient error recovery** — defers to Core RetryHandler and fixes cmdCtx race conditions
|
|
94
|
+
- **Anthropic subscription routing** — auto-routed through Claude Code CLI provider with proper display names
|
|
139
95
|
- **5-wave state machine hardening** — critical data integrity fixes across atomic writes, event log reconciliation, session recovery
|
|
96
|
+
- **Discussion gate enforcement** — mechanical enforcement with fail-closed behavior
|
|
140
97
|
- **Slice-level parallelism** — dependency-aware parallel dispatch within a milestone
|
|
98
|
+
- **Persistent notification panel** — TUI overlay, widget, and web API for real-time notifications
|
|
141
99
|
- **MCP server** — 6 read-only project state tools for external integrations, auto-wrapup guard, and question dedup
|
|
142
100
|
- **Ollama extension** — first-class local LLM support via Ollama, with dynamic routing enabled by default
|
|
101
|
+
- **Discord bot & daemon** — dedicated daemon package, Discord bot, and headless text mode with tool calls
|
|
102
|
+
- **Capability-aware model routing (ADR-004)** — capability scoring, `before_model_select` hook, and task metadata extraction
|
|
143
103
|
- **VS Code sidebar redesign** — SCM provider, checkpoints, diagnostics panel, activity feed, workflow controls, session forking
|
|
104
|
+
- **`/gsd parallel watch`** — native TUI overlay for real-time worker monitoring
|
|
105
|
+
- **Codebase map** — automatic codebase map injection for fresh agent contexts
|
|
106
|
+
- **`--resume` flag** — resume previous sessions from the CLI
|
|
107
|
+
- **Concurrent invocation guard** — prevents overlapping auto-mode runs
|
|
108
|
+
- **VS Code integration** — status bar, file decorations, bash terminal, session tree, conversation history, and code lens
|
|
144
109
|
- **Skills overhaul** — 30+ skill packs covering major frameworks, databases, and cloud platforms
|
|
145
110
|
- **Single-writer state engine** — disciplined state transitions with machine guards and TOCTOU hardening
|
|
146
111
|
- **DB-backed planning tools** — atomic SQLite tool calls for state transitions
|
|
@@ -424,8 +389,6 @@ On first run, GSD launches a branded setup wizard that walks you through LLM pro
|
|
|
424
389
|
| `/gsd migrate` | Migrate a v1 `.planning` directory to `.gsd` format |
|
|
425
390
|
| `/gsd help` | Categorized command reference for all GSD subcommands |
|
|
426
391
|
| `/gsd mode` | Switch workflow mode (solo/team) with coordinated defaults |
|
|
427
|
-
| `/gsd workflow` | Unified workflow plugins — list, run `<name>`, install, info, validate |
|
|
428
|
-
| `/gsd start <template>` | Launch a bundled or custom workflow template (bugfix, release, etc.) |
|
|
429
392
|
| `/gsd forensics` | Full-access GSD debugger for auto-mode failure investigation |
|
|
430
393
|
| `/gsd cleanup` | Archive phase directories from completed milestones |
|
|
431
394
|
| `/gsd doctor` | Runtime health checks — issues surface across widget, visualizer, and reports |
|
|
@@ -534,7 +497,7 @@ version: 1
|
|
|
534
497
|
models:
|
|
535
498
|
research: claude-sonnet-4-6
|
|
536
499
|
planning:
|
|
537
|
-
model: claude-opus-4-
|
|
500
|
+
model: claude-opus-4-6
|
|
538
501
|
fallbacks:
|
|
539
502
|
- openrouter/z-ai/glm-5
|
|
540
503
|
- openrouter/minimax/minimax-m2.5
|
|
@@ -793,7 +756,7 @@ In your preferences (`/gsd prefs`), assign different models to different phases:
|
|
|
793
756
|
models:
|
|
794
757
|
research: openrouter/deepseek/deepseek-r1
|
|
795
758
|
planning:
|
|
796
|
-
model: claude-opus-4-
|
|
759
|
+
model: claude-opus-4-6
|
|
797
760
|
fallbacks:
|
|
798
761
|
- openrouter/z-ai/glm-5
|
|
799
762
|
execution: claude-sonnet-4-6
|
|
@@ -47,4 +47,4 @@ export declare function isInteractiveHeadlessTool(toolName: string | undefined):
|
|
|
47
47
|
export declare function shouldArmHeadlessIdleTimeout(toolCallCount: number, interactiveToolCount: number): boolean;
|
|
48
48
|
export declare const FIRE_AND_FORGET_METHODS: Set<string>;
|
|
49
49
|
export declare const QUICK_COMMANDS: Set<string>;
|
|
50
|
-
export declare function isQuickCommand(command: string
|
|
50
|
+
export declare function isQuickCommand(command: string): boolean;
|
package/dist/headless-events.js
CHANGED
|
@@ -100,9 +100,6 @@ export const QUICK_COMMANDS = new Set([
|
|
|
100
100
|
'cleanup', 'migrate', 'doctor', 'remote', 'help', 'steer',
|
|
101
101
|
'triage', 'visualize',
|
|
102
102
|
]);
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
if (QUICK_COMMANDS.has(command))
|
|
106
|
-
return true;
|
|
107
|
-
return command === 'workflow' && QUICK_WORKFLOW_SUBCOMMANDS.has(commandArgs[0] ?? '');
|
|
103
|
+
export function isQuickCommand(command) {
|
|
104
|
+
return QUICK_COMMANDS.has(command);
|
|
108
105
|
}
|
package/dist/headless.js
CHANGED
|
@@ -606,7 +606,7 @@ async function runHeadlessOnce(options, restartCount) {
|
|
|
606
606
|
}
|
|
607
607
|
}
|
|
608
608
|
// Quick commands: resolve on first agent_end
|
|
609
|
-
if (eventObj.type === 'agent_end' && isQuickCommand(options.command
|
|
609
|
+
if (eventObj.type === 'agent_end' && isQuickCommand(options.command) && !completed) {
|
|
610
610
|
completed = true;
|
|
611
611
|
resolveCompletion();
|
|
612
612
|
return;
|
|
@@ -622,9 +622,10 @@ async function runHeadlessOnce(options, restartCount) {
|
|
|
622
622
|
// Kill child process — don't await, just fire and exit.
|
|
623
623
|
// The main flow may be awaiting a promise that resolves when the child dies,
|
|
624
624
|
// which would race with this handler. Exit synchronously to ensure correct exit code.
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
}
|
|
625
|
+
try {
|
|
626
|
+
client.stop().catch(() => { });
|
|
627
|
+
}
|
|
628
|
+
catch { }
|
|
628
629
|
if (timeoutTimer)
|
|
629
630
|
clearTimeout(timeoutTimer);
|
|
630
631
|
if (idleTimer)
|
|
@@ -706,7 +707,7 @@ async function runHeadlessOnce(options, restartCount) {
|
|
|
706
707
|
process.stdin.resume();
|
|
707
708
|
}
|
|
708
709
|
// Detect child process crash (read-only exit event subscription — not stdin access)
|
|
709
|
-
const internalProcess =
|
|
710
|
+
const internalProcess = client.process;
|
|
710
711
|
if (internalProcess) {
|
|
711
712
|
internalProcess.on('exit', (code) => {
|
|
712
713
|
if (!completed) {
|
package/dist/loader.js
CHANGED
|
File without changes
|
package/dist/onboarding.js
CHANGED
|
@@ -118,25 +118,6 @@ function openBrowser(url) {
|
|
|
118
118
|
execFile(cmd, [url], () => { });
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
|
-
/**
|
|
122
|
-
* Persist the selected default provider to settings.json.
|
|
123
|
-
*
|
|
124
|
-
* This ensures first startup after onboarding prefers the provider the user
|
|
125
|
-
* just configured, instead of falling back to the first "available" provider
|
|
126
|
-
* (which can be influenced by unrelated env auth like AWS_PROFILE).
|
|
127
|
-
*/
|
|
128
|
-
function persistDefaultProvider(providerId) {
|
|
129
|
-
const settingsPath = join(agentDir, 'settings.json');
|
|
130
|
-
try {
|
|
131
|
-
const raw = existsSync(settingsPath) ? JSON.parse(readFileSync(settingsPath, 'utf-8')) : {};
|
|
132
|
-
raw.defaultProvider = providerId;
|
|
133
|
-
mkdirSync(dirname(settingsPath), { recursive: true });
|
|
134
|
-
writeFileSync(settingsPath, JSON.stringify(raw, null, 2), 'utf-8');
|
|
135
|
-
}
|
|
136
|
-
catch {
|
|
137
|
-
// Non-fatal: startup fallback logic will still run.
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
121
|
/** Sentinel returned by runStep when the user cancels — tells the caller
|
|
141
122
|
* to abort the entire wizard. */
|
|
142
123
|
const STEP_CANCELLED = Symbol('step-cancelled');
|
|
@@ -302,8 +283,16 @@ async function runLlmStep(p, pc, authStorage) {
|
|
|
302
283
|
p.log.info('Your Claude subscription will be used for inference. No API key needed.');
|
|
303
284
|
// Store sentinel so hasAuth('claude-code') returns true on future boots
|
|
304
285
|
authStorage.set('claude-code', { type: 'api_key', key: 'cli' });
|
|
305
|
-
// Persist claude-code
|
|
306
|
-
|
|
286
|
+
// Persist claude-code as the default provider so the startup migration in
|
|
287
|
+
// cli.ts does not need to fire and the user is not left on "anthropic".
|
|
288
|
+
const settingsPath = join(agentDir, 'settings.json');
|
|
289
|
+
try {
|
|
290
|
+
const raw = existsSync(settingsPath) ? JSON.parse(readFileSync(settingsPath, 'utf-8')) : {};
|
|
291
|
+
raw.defaultProvider = 'claude-code';
|
|
292
|
+
mkdirSync(dirname(settingsPath), { recursive: true });
|
|
293
|
+
writeFileSync(settingsPath, JSON.stringify(raw, null, 2), 'utf-8');
|
|
294
|
+
}
|
|
295
|
+
catch { /* non-fatal — startup migration will catch it */ }
|
|
307
296
|
return true;
|
|
308
297
|
}
|
|
309
298
|
// ── Step 2: Which provider? ──────────────────────────────────────────────
|
|
@@ -356,7 +345,7 @@ async function runOAuthFlow(p, pc, authStorage, providerId, oauthMap) {
|
|
|
356
345
|
const s = p.spinner();
|
|
357
346
|
s.start(`Authenticating with ${providerName}...`);
|
|
358
347
|
try {
|
|
359
|
-
|
|
348
|
+
await authStorage.login(providerId, {
|
|
360
349
|
onAuth: (info) => {
|
|
361
350
|
s.stop(`Opening browser for ${providerName}`);
|
|
362
351
|
openBrowser(info.url);
|
|
@@ -388,9 +377,7 @@ async function runOAuthFlow(p, pc, authStorage, providerId, oauthMap) {
|
|
|
388
377
|
return result;
|
|
389
378
|
}
|
|
390
379
|
: undefined,
|
|
391
|
-
};
|
|
392
|
-
await authStorage.login(providerId, loginCallbacks);
|
|
393
|
-
persistDefaultProvider(providerId);
|
|
380
|
+
});
|
|
394
381
|
p.log.success(`Authenticated with ${pc.green(providerName)}`);
|
|
395
382
|
return true;
|
|
396
383
|
}
|
|
@@ -429,7 +416,6 @@ async function runApiKeyFlow(p, pc, authStorage, providerId, providerLabel) {
|
|
|
429
416
|
p.log.warn(`Key doesn't start with expected prefix (${expectedPrefixes.join(' or ')}). Saving anyway.`);
|
|
430
417
|
}
|
|
431
418
|
authStorage.set(providerId, { type: 'api_key', key: trimmed });
|
|
432
|
-
persistDefaultProvider(providerId);
|
|
433
419
|
p.log.success(`API key saved for ${pc.green(providerLabel)}`);
|
|
434
420
|
// Provider-specific post-setup hints
|
|
435
421
|
if (providerId === 'openrouter') {
|
|
@@ -452,7 +438,6 @@ async function runOllamaLocalFlow(p, pc, authStorage) {
|
|
|
452
438
|
s.stop(`Ollama is running at ${pc.green(host)}`);
|
|
453
439
|
// Store a placeholder so the provider is recognized as authenticated
|
|
454
440
|
authStorage.set('ollama', { type: 'api_key', key: 'ollama' });
|
|
455
|
-
persistDefaultProvider('ollama');
|
|
456
441
|
p.log.success(`${pc.green('Ollama (Local)')} configured — no API key needed`);
|
|
457
442
|
p.log.info(pc.dim('Models are discovered automatically from your local Ollama instance.'));
|
|
458
443
|
return true;
|
|
@@ -475,7 +460,6 @@ async function runOllamaLocalFlow(p, pc, authStorage) {
|
|
|
475
460
|
if (p.isCancel(proceed) || !proceed)
|
|
476
461
|
return false;
|
|
477
462
|
authStorage.set('ollama', { type: 'api_key', key: 'ollama' });
|
|
478
|
-
persistDefaultProvider('ollama');
|
|
479
463
|
p.log.success(`${pc.green('Ollama (Local)')} saved — models will appear when Ollama is running`);
|
|
480
464
|
return true;
|
|
481
465
|
}
|
|
@@ -525,7 +509,6 @@ async function runCustomOpenAIFlow(p, pc, authStorage) {
|
|
|
525
509
|
const trimmedModelId = modelId.trim();
|
|
526
510
|
// Save API key to auth storage
|
|
527
511
|
authStorage.set('custom-openai', { type: 'api_key', key: trimmedKey });
|
|
528
|
-
persistDefaultProvider('custom-openai');
|
|
529
512
|
// Write or merge into models.json
|
|
530
513
|
const modelsJsonPath = join(agentDir, 'models.json');
|
|
531
514
|
let config = { providers: {} };
|
|
@@ -670,9 +653,7 @@ async function runToolKeysStep(p, pc, authStorage) {
|
|
|
670
653
|
// ─── Remote Questions Step ────────────────────────────────────────────────────
|
|
671
654
|
async function runRemoteQuestionsStep(p, pc, authStorage) {
|
|
672
655
|
// Check existing config — use getCredentialsForProvider to skip empty-key entries
|
|
673
|
-
const hasValidKey = (provider) => authStorage
|
|
674
|
-
.getCredentialsForProvider(provider)
|
|
675
|
-
.some((c) => c.type === 'api_key' && typeof c.key === 'string' && c.key.length > 0);
|
|
656
|
+
const hasValidKey = (provider) => authStorage.getCredentialsForProvider(provider).some((c) => c.type === 'api_key' && c.key);
|
|
676
657
|
const hasDiscord = hasValidKey('discord_bot');
|
|
677
658
|
const hasSlack = hasValidKey('slack_bot');
|
|
678
659
|
const hasTelegram = hasValidKey('telegram_bot');
|
|
@@ -877,13 +858,7 @@ async function runDiscordChannelStep(p, pc, token) {
|
|
|
877
858
|
try {
|
|
878
859
|
const res = await fetch(`https://discord.com/api/v10/guilds/${guildId}/channels`, { headers, signal: AbortSignal.timeout(15_000) });
|
|
879
860
|
const data = await res.json();
|
|
880
|
-
channels = Array.isArray(data)
|
|
881
|
-
? data.filter((ch) => typeof ch === 'object' &&
|
|
882
|
-
ch !== null &&
|
|
883
|
-
typeof ch.id === 'string' &&
|
|
884
|
-
typeof ch.name === 'string' &&
|
|
885
|
-
(ch.type === 0 || ch.type === 5))
|
|
886
|
-
: [];
|
|
861
|
+
channels = Array.isArray(data) ? data.filter((ch) => ch.type === 0 || ch.type === 5) : [];
|
|
887
862
|
}
|
|
888
863
|
catch {
|
|
889
864
|
p.log.warn('Could not fetch channels — configure later with /gsd remote discord');
|
|
@@ -16,16 +16,13 @@ import { showInterviewRound, } from "./shared/tui.js";
|
|
|
16
16
|
const OptionSchema = Type.Object({
|
|
17
17
|
label: Type.String({ description: "User-facing label (1-5 words)" }),
|
|
18
18
|
description: Type.String({ description: "One short sentence explaining impact/tradeoff if selected" }),
|
|
19
|
-
preview: Type.Optional(Type.String({
|
|
20
|
-
description: "Optional markdown content shown in a side-by-side preview panel when this option is highlighted. Use for showing code samples, config snippets, or detailed explanations. Keep under ~20 lines — longer content is truncated.",
|
|
21
|
-
})),
|
|
22
19
|
});
|
|
23
20
|
const QuestionSchema = Type.Object({
|
|
24
21
|
id: Type.String({ description: "Stable identifier for mapping answers (snake_case)" }),
|
|
25
22
|
header: Type.String({ description: "Short header label shown in the UI (12 or fewer chars)" }),
|
|
26
23
|
question: Type.String({ description: "Single-sentence prompt shown to the user" }),
|
|
27
24
|
options: Type.Array(OptionSchema, {
|
|
28
|
-
description: 'Provide 2-3 mutually exclusive choices for single-select, or any number for multi-select. Put the recommended option first and suffix its label with "(Recommended)".
|
|
25
|
+
description: 'Provide 2-3 mutually exclusive choices for single-select, or any number for multi-select. Put the recommended option first and suffix its label with "(Recommended)". Do not include an "Other" option for single-select; the client adds a free-form "None of the above" option automatically.',
|
|
29
26
|
}),
|
|
30
27
|
allowMultiple: Type.Optional(Type.Boolean({
|
|
31
28
|
description: "If true, the user can select multiple options using SPACE to toggle and ENTER to confirm. No 'None of the above' option is added. Default: false.",
|
|
@@ -137,14 +134,12 @@ export default function AskUserQuestions(pi) {
|
|
|
137
134
|
pi.registerTool({
|
|
138
135
|
name: "ask_user_questions",
|
|
139
136
|
label: "Request User Input",
|
|
140
|
-
description: "Request user input for one to three short questions and wait for the response. Single-select questions have 2-3 mutually exclusive options with a free-form 'None of the above' added automatically. Multi-select questions (allowMultiple: true) let the user toggle multiple options with SPACE and confirm with ENTER.
|
|
137
|
+
description: "Request user input for one to three short questions and wait for the response. Single-select questions have 2-3 mutually exclusive options with a free-form 'None of the above' added automatically. Multi-select questions (allowMultiple: true) let the user toggle multiple options with SPACE and confirm with ENTER.",
|
|
141
138
|
promptGuidelines: [
|
|
142
139
|
"Use ask_user_questions when you need the user to choose between concrete alternatives before proceeding.",
|
|
143
140
|
"Keep questions to 1 when possible; never exceed 3.",
|
|
144
141
|
"For single-select: each question must have 2-3 options. Put the recommended option first with '(Recommended)' suffix. Do not include an 'Other' or 'None of the above' option - the client adds one automatically.",
|
|
145
142
|
"For multi-select: set allowMultiple: true. The user can pick any number of options. No 'None of the above' is added.",
|
|
146
|
-
"When options involve code patterns, config choices, or architecture decisions, add a 'preview' field with markdown content (code blocks, lists, headers, etc.). The preview renders in a side-by-side panel when the option is highlighted.",
|
|
147
|
-
"Preview content is rendered in a fixed-height panel (max ~20 lines visible). Keep previews concise — show the most relevant snippet, not exhaustive examples. Longer content is truncated with a '+N lines hidden' indicator.",
|
|
148
143
|
],
|
|
149
144
|
parameters: AskUserQuestionsParams,
|
|
150
145
|
async execute(_toolCallId, params, signal, _onUpdate, ctx) {
|
|
@@ -279,10 +274,6 @@ export default function AskUserQuestions(pi) {
|
|
|
279
274
|
const headers = qs.map((q) => q.header).join(", ");
|
|
280
275
|
text += theme.fg("dim", ` (${headers})`);
|
|
281
276
|
}
|
|
282
|
-
const previewCount = qs.reduce((acc, q) => acc + (q.options || []).filter((o) => o.preview).length, 0);
|
|
283
|
-
if (previewCount > 0) {
|
|
284
|
-
text += theme.fg("accent", ` [${previewCount} preview${previewCount !== 1 ? "s" : ""}]`);
|
|
285
|
-
}
|
|
286
277
|
for (const q of qs) {
|
|
287
278
|
const multiSel = !!q.allowMultiple;
|
|
288
279
|
text += `\n ${theme.fg("text", q.question)}`;
|
|
@@ -19,15 +19,6 @@ export const CLAUDE_CODE_MODELS = [
|
|
|
19
19
|
contextWindow: 1_000_000,
|
|
20
20
|
maxTokens: 128_000,
|
|
21
21
|
},
|
|
22
|
-
{
|
|
23
|
-
id: "claude-opus-4-7",
|
|
24
|
-
name: "Claude Opus 4.7 (via Claude Code)",
|
|
25
|
-
reasoning: true,
|
|
26
|
-
input: ["text", "image"],
|
|
27
|
-
cost: ZERO_COST,
|
|
28
|
-
contextWindow: 1_000_000,
|
|
29
|
-
maxTokens: 128_000,
|
|
30
|
-
},
|
|
31
22
|
{
|
|
32
23
|
id: "claude-sonnet-4-6",
|
|
33
24
|
name: "Claude Sonnet 4.6 (via Claude Code)",
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* AssistantMessageEvents for TUI rendering, then strips tool-call blocks from
|
|
7
7
|
* the final AssistantMessage so GSD's agent loop doesn't try to dispatch them.
|
|
8
8
|
*/
|
|
9
|
-
import { EventStream } from "@gsd/pi-ai";
|
|
9
|
+
import { EventStream, mapThinkingLevelToEffort, supportsAdaptiveThinking } from "@gsd/pi-ai";
|
|
10
10
|
import { execSync } from "node:child_process";
|
|
11
11
|
import { PartialMessageBuilder, ZERO_USAGE, mapUsage } from "./partial-builder.js";
|
|
12
12
|
import { buildWorkflowMcpServers } from "../gsd/workflow-mcp.js";
|
|
@@ -482,36 +482,6 @@ export async function resolveClaudePermissionMode(env = process.env) {
|
|
|
482
482
|
}
|
|
483
483
|
return "bypassPermissions";
|
|
484
484
|
}
|
|
485
|
-
// NOTE: These helpers intentionally mirror @gsd/pi-ai anthropic-shared
|
|
486
|
-
// behavior so this extension remains typecheck-stable even when the published
|
|
487
|
-
// @gsd/pi-ai barrel lags behind monorepo source exports.
|
|
488
|
-
function modelSupportsAdaptiveThinking(modelId) {
|
|
489
|
-
return (modelId.includes("opus-4-6")
|
|
490
|
-
|| modelId.includes("opus-4.6")
|
|
491
|
-
|| modelId.includes("opus-4-7")
|
|
492
|
-
|| modelId.includes("opus-4.7")
|
|
493
|
-
|| modelId.includes("sonnet-4-6")
|
|
494
|
-
|| modelId.includes("sonnet-4.6"));
|
|
495
|
-
}
|
|
496
|
-
function mapThinkingLevelToAnthropicEffort(level, modelId) {
|
|
497
|
-
switch (level) {
|
|
498
|
-
case "minimal":
|
|
499
|
-
case "low":
|
|
500
|
-
return "low";
|
|
501
|
-
case "medium":
|
|
502
|
-
return "medium";
|
|
503
|
-
case "high":
|
|
504
|
-
return "high";
|
|
505
|
-
case "xhigh":
|
|
506
|
-
if (modelId.includes("opus-4-7") || modelId.includes("opus-4.7"))
|
|
507
|
-
return "xhigh";
|
|
508
|
-
if (modelId.includes("opus-4-6") || modelId.includes("opus-4.6"))
|
|
509
|
-
return "max";
|
|
510
|
-
return "high";
|
|
511
|
-
default:
|
|
512
|
-
return "high";
|
|
513
|
-
}
|
|
514
|
-
}
|
|
515
485
|
/**
|
|
516
486
|
* Build the options object passed to the Claude Agent SDK's `query()` call.
|
|
517
487
|
*
|
|
@@ -543,8 +513,8 @@ export function buildSdkOptions(modelId, prompt, overrides, extraOptions = {}) {
|
|
|
543
513
|
"Bash(pwd)",
|
|
544
514
|
...(mcpServers ? Object.keys(mcpServers).map((serverName) => `mcp__${serverName}__*`) : []),
|
|
545
515
|
];
|
|
546
|
-
const effort = reasoning &&
|
|
547
|
-
?
|
|
516
|
+
const effort = reasoning && supportsAdaptiveThinking(modelId)
|
|
517
|
+
? mapThinkingLevelToEffort(reasoning, modelId)
|
|
548
518
|
: undefined;
|
|
549
519
|
return {
|
|
550
520
|
pathToClaudeCodeExecutable: getClaudePath(),
|
|
@@ -559,7 +529,7 @@ export function buildSdkOptions(modelId, prompt, overrides, extraOptions = {}) {
|
|
|
559
529
|
disallowedTools,
|
|
560
530
|
...(allowedTools.length > 0 ? { allowedTools } : {}),
|
|
561
531
|
...(mcpServers ? { mcpServers } : {}),
|
|
562
|
-
betas:
|
|
532
|
+
betas: modelId.includes("sonnet") ? ["context-1m-2025-08-07"] : [],
|
|
563
533
|
...(effort ? { effort } : {}),
|
|
564
534
|
...sdkExtraOptions,
|
|
565
535
|
};
|
|
@@ -16,7 +16,6 @@ const ENOENT_PATH_RE = /ENOENT[^']*'([^']+)'/;
|
|
|
16
16
|
*
|
|
17
17
|
* Rule 1: Same error string twice in a row → stuck immediately.
|
|
18
18
|
* Rule 2: Same unit key 3+ consecutive times → stuck (preserves prior behavior).
|
|
19
|
-
* Rule 2b: Same unit key appears 3+ times anywhere in the active window → stuck.
|
|
20
19
|
* Rule 3: Oscillation A→B→A→B in last 4 entries → stuck.
|
|
21
20
|
* Rule 4: Same ENOENT path in any 2 entries within the window → stuck (#3575).
|
|
22
21
|
* Missing files don't self-heal between retries — retrying wastes budget.
|
|
@@ -49,14 +48,6 @@ export function detectStuck(window) {
|
|
|
49
48
|
};
|
|
50
49
|
}
|
|
51
50
|
}
|
|
52
|
-
// Rule 2b: Same unit key 3+ times anywhere in the active window
|
|
53
|
-
const countInWindow = window.filter((entry) => entry.key === last.key).length;
|
|
54
|
-
if (countInWindow >= 3) {
|
|
55
|
-
return {
|
|
56
|
-
stuck: true,
|
|
57
|
-
reason: `${last.key} derived ${countInWindow} times in last ${window.length} attempts without progress${suffix}`,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
51
|
// Rule 3: Oscillation (A→B→A→B in last 4)
|
|
61
52
|
if (window.length >= 4) {
|
|
62
53
|
const w = window.slice(-4);
|