@opengsd/gsd-pi 1.1.1-dev.a5a2de8 → 1.1.1-dev.b2556262
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/headless-recover.js +56 -1
- package/dist/resources/.managed-resources-content-hash +1 -1
- package/dist/resources/extensions/browser-tools/engine/managed-gsd-browser.js +18 -2
- package/dist/resources/extensions/browser-tools/engine/selection.js +1 -1
- package/dist/resources/extensions/browser-tools/extension-manifest.json +1 -1
- package/dist/resources/extensions/browser-tools/index.js +68 -24
- package/dist/resources/extensions/browser-tools/state.js +12 -0
- package/dist/resources/extensions/browser-tools/tools/session.js +3 -2
- package/dist/resources/extensions/browser-tools/utils.js +3 -3
- package/dist/resources/extensions/browser-tools/web-app-detect.js +52 -0
- package/dist/resources/extensions/gsd/auto/loop.js +4 -2
- package/dist/resources/extensions/gsd/auto/phases.js +87 -12
- package/dist/resources/extensions/gsd/auto/session.js +22 -1
- package/dist/resources/extensions/gsd/auto/workflow-kernel.js +1 -0
- package/dist/resources/extensions/gsd/auto-dispatch.js +81 -13
- package/dist/resources/extensions/gsd/auto-model-selection.js +154 -9
- package/dist/resources/extensions/gsd/auto-post-unit.js +19 -2
- package/dist/resources/extensions/gsd/auto-prompts.js +26 -21
- package/dist/resources/extensions/gsd/auto-recovery.js +4 -2
- package/dist/resources/extensions/gsd/auto-runtime-state.js +3 -0
- package/dist/resources/extensions/gsd/auto-start.js +1 -1
- package/dist/resources/extensions/gsd/auto-timers.js +24 -10
- package/dist/resources/extensions/gsd/auto.js +40 -15
- package/dist/resources/extensions/gsd/bootstrap/db-tools.js +3 -3
- package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +192 -77
- package/dist/resources/extensions/gsd/bootstrap/system-context.js +1 -1
- package/dist/resources/extensions/gsd/closeout-wizard.js +32 -9
- package/dist/resources/extensions/gsd/commands/handlers/auto.js +10 -0
- package/dist/resources/extensions/gsd/commands/handlers/ops.js +2 -9
- package/dist/resources/extensions/gsd/commands-maintenance.js +93 -15
- package/dist/resources/extensions/gsd/commands-mcp-status.js +1 -1
- package/dist/resources/extensions/gsd/commands-prefs-wizard.js +2 -2
- package/dist/resources/extensions/gsd/config-overlay.js +1 -0
- package/dist/resources/extensions/gsd/context-masker.js +129 -5
- package/dist/resources/extensions/gsd/db-writer.js +35 -0
- package/dist/resources/extensions/gsd/docs/preferences-reference.md +50 -1
- package/dist/resources/extensions/gsd/gsd-db.js +480 -172
- package/dist/resources/extensions/gsd/guided-flow.js +4 -1
- package/dist/resources/extensions/gsd/markdown-renderer.js +37 -53
- package/dist/resources/extensions/gsd/md-importer.js +38 -3
- package/dist/resources/extensions/gsd/migration-auto-check.js +126 -31
- package/dist/resources/extensions/gsd/parsers-legacy.js +23 -0
- package/dist/resources/extensions/gsd/planner-handoff.js +98 -0
- package/dist/resources/extensions/gsd/planning-path-scope.js +22 -4
- package/dist/resources/extensions/gsd/pre-execution-checks.js +10 -2
- package/dist/resources/extensions/gsd/preferences-models.js +111 -43
- package/dist/resources/extensions/gsd/preferences-types.js +13 -0
- package/dist/resources/extensions/gsd/preferences-validation.js +68 -3
- package/dist/resources/extensions/gsd/preferences.js +4 -1
- package/dist/resources/extensions/gsd/prompts/gate-evaluate.md +1 -1
- package/dist/resources/extensions/gsd/prompts/plan-milestone.md +1 -1
- package/dist/resources/extensions/gsd/prompts/plan-slice.md +1 -1
- package/dist/resources/extensions/gsd/prompts/refine-slice.md +1 -1
- package/dist/resources/extensions/gsd/prompts/run-uat.md +2 -2
- package/dist/resources/extensions/gsd/prompts/system.md +1 -1
- package/dist/resources/extensions/gsd/roadmap-slices.js +5 -1
- package/dist/resources/extensions/gsd/safety/content-validator.js +6 -4
- package/dist/resources/extensions/gsd/skill-manifest.js +12 -0
- package/dist/resources/extensions/gsd/source-observations.js +306 -0
- package/dist/resources/extensions/gsd/state-reconciliation/drift/completion.js +15 -8
- package/dist/resources/extensions/gsd/state-reconciliation/drift/stale-render.js +33 -5
- package/dist/resources/extensions/gsd/state-reconciliation/drift/stale-worker.js +34 -13
- package/dist/resources/extensions/gsd/state-reconciliation/index.js +39 -14
- package/dist/resources/extensions/gsd/state-reconciliation/spawn-gate.js +4 -4
- package/dist/resources/extensions/gsd/state.js +7 -3
- package/dist/resources/extensions/gsd/tool-contract.js +15 -1
- package/dist/resources/extensions/gsd/tool-presentation-plan.js +24 -2
- package/dist/resources/extensions/gsd/tools/complete-slice.js +28 -0
- package/dist/resources/extensions/gsd/tools/plan-slice.js +42 -11
- package/dist/resources/extensions/gsd/tools/plan-task.js +7 -1
- package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +62 -406
- package/dist/resources/extensions/gsd/uat-policy.js +130 -0
- package/dist/resources/extensions/gsd/uat-run.js +414 -0
- package/dist/resources/extensions/gsd/unit-context-manifest.js +3 -4
- package/dist/resources/extensions/gsd/unit-tool-contracts.js +38 -14
- package/dist/resources/extensions/gsd/verdict-parser.js +3 -8
- package/dist/resources/extensions/gsd/workflow-manifest.js +132 -5
- package/dist/resources/extensions/gsd/workflow-mcp.js +2 -3
- package/dist/resources/extensions/gsd/workflow-projections.js +8 -0
- package/dist/resources/extensions/gsd/worktree-manager.js +26 -0
- package/dist/resources/extensions/gsd/worktree-reentry.js +96 -0
- package/dist/resources/extensions/gsd/worktree-state-projection.js +18 -17
- package/dist/resources/extensions/shared/gsd-browser-cli.js +6 -0
- package/dist/resources/extensions/subagent/agents.js +1 -0
- package/dist/resources/extensions/subagent/index.js +27 -12
- package/dist/resources/extensions/subagent/launch.js +7 -2
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +6 -6
- package/dist/web/standalone/.next/build-manifest.json +2 -2
- package/dist/web/standalone/.next/prerender-manifest.json +3 -3
- 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.html +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.html +1 -1
- package/dist/web/standalone/.next/server/app/index.rsc +1 -1
- 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 +1 -1
- 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-paths-manifest.json +6 -6
- package/dist/web/standalone/.next/server/chunks/8357.js +1 -1
- package/dist/web/standalone/.next/server/middleware-build-manifest.js +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/node_modules/@gsd/native/dist/native.js +22 -0
- package/dist/web/standalone/node_modules/node-pty/build/Makefile +1 -1
- package/package.json +4 -4
- package/packages/cloud-mcp-gateway/package.json +2 -2
- package/packages/contracts/package.json +1 -1
- package/packages/daemon/package.json +4 -4
- package/packages/gsd-agent-core/package.json +5 -5
- package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.js +21 -23
- package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.d.ts +3 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.js +25 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/transcript-design.d.ts +1 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/transcript-design.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/transcript-design.js +66 -12
- package/packages/gsd-agent-modes/dist/modes/interactive/components/transcript-design.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js +18 -11
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-chat-render.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-chat-render.js +16 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-chat-render.js.map +1 -1
- package/packages/gsd-agent-modes/package.json +7 -7
- package/packages/mcp-server/dist/workflow-tools.js +1 -1
- package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
- package/packages/mcp-server/package.json +3 -3
- package/packages/native/dist/native.js +22 -0
- package/packages/native/package.json +1 -1
- package/packages/pi-agent-core/package.json +1 -1
- package/packages/pi-ai/dist/image-models.generated.d.ts +30 -0
- package/packages/pi-ai/dist/image-models.generated.d.ts.map +1 -1
- package/packages/pi-ai/dist/image-models.generated.js +30 -0
- package/packages/pi-ai/dist/image-models.generated.js.map +1 -1
- package/packages/pi-ai/dist/models.generated.d.ts +174 -29
- package/packages/pi-ai/dist/models.generated.d.ts.map +1 -1
- package/packages/pi-ai/dist/models.generated.js +178 -54
- package/packages/pi-ai/dist/models.generated.js.map +1 -1
- package/packages/pi-ai/dist/providers/transform-messages.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/transform-messages.js +8 -1
- package/packages/pi-ai/dist/providers/transform-messages.js.map +1 -1
- package/packages/pi-ai/package.json +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.js +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
- package/packages/pi-coding-agent/dist/theme/themes.js +1 -1
- package/packages/pi-coding-agent/dist/theme/themes.js.map +1 -1
- package/packages/pi-coding-agent/package.json +7 -7
- package/packages/pi-tui/dist/utils.d.ts +11 -0
- package/packages/pi-tui/dist/utils.d.ts.map +1 -1
- package/packages/pi-tui/dist/utils.js +119 -6
- package/packages/pi-tui/dist/utils.js.map +1 -1
- package/packages/pi-tui/package.json +2 -1
- package/packages/rpc-client/package.json +2 -2
- package/pkg/dist/theme/themes.js +1 -1
- package/pkg/dist/theme/themes.js.map +1 -1
- package/pkg/package.json +1 -1
- package/scripts/install/handoff.js +16 -3
- package/src/resources/extensions/browser-tools/engine/managed-gsd-browser.ts +21 -2
- package/src/resources/extensions/browser-tools/engine/selection.ts +1 -1
- package/src/resources/extensions/browser-tools/extension-manifest.json +1 -1
- package/src/resources/extensions/browser-tools/index.ts +75 -27
- package/src/resources/extensions/browser-tools/state.ts +13 -0
- package/src/resources/extensions/browser-tools/tests/browser-engine-selection.test.mjs +2 -2
- package/src/resources/extensions/browser-tools/tests/browser-tools-unit.test.cjs +57 -0
- package/src/resources/extensions/browser-tools/tests/gsd-browser-launch-config.test.mjs +37 -0
- package/src/resources/extensions/browser-tools/tests/web-app-detect.test.mjs +68 -0
- package/src/resources/extensions/browser-tools/tools/session.ts +4 -2
- package/src/resources/extensions/browser-tools/utils.ts +3 -3
- package/src/resources/extensions/browser-tools/web-app-detect.ts +63 -0
- package/src/resources/extensions/gsd/auto/loop-deps.ts +1 -0
- package/src/resources/extensions/gsd/auto/loop.ts +4 -2
- package/src/resources/extensions/gsd/auto/phases.ts +89 -15
- package/src/resources/extensions/gsd/auto/session.ts +24 -1
- package/src/resources/extensions/gsd/auto/workflow-kernel.ts +1 -0
- package/src/resources/extensions/gsd/auto-dispatch.ts +117 -12
- package/src/resources/extensions/gsd/auto-model-selection.ts +190 -12
- package/src/resources/extensions/gsd/auto-post-unit.ts +20 -2
- package/src/resources/extensions/gsd/auto-prompts.ts +25 -22
- package/src/resources/extensions/gsd/auto-recovery.ts +22 -3
- package/src/resources/extensions/gsd/auto-runtime-state.ts +5 -0
- package/src/resources/extensions/gsd/auto-start.ts +1 -1
- package/src/resources/extensions/gsd/auto-timers.ts +25 -9
- package/src/resources/extensions/gsd/auto.ts +41 -14
- package/src/resources/extensions/gsd/bootstrap/db-tools.ts +3 -3
- package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +250 -78
- package/src/resources/extensions/gsd/bootstrap/system-context.ts +1 -1
- package/src/resources/extensions/gsd/closeout-wizard.ts +47 -13
- package/src/resources/extensions/gsd/commands/handlers/auto.ts +9 -0
- package/src/resources/extensions/gsd/commands/handlers/ops.ts +2 -17
- package/src/resources/extensions/gsd/commands-maintenance.ts +124 -13
- package/src/resources/extensions/gsd/commands-mcp-status.ts +1 -1
- package/src/resources/extensions/gsd/commands-prefs-wizard.ts +2 -2
- package/src/resources/extensions/gsd/config-overlay.ts +1 -0
- package/src/resources/extensions/gsd/context-masker.ts +152 -5
- package/src/resources/extensions/gsd/db-writer.ts +38 -0
- package/src/resources/extensions/gsd/docs/preferences-reference.md +50 -1
- package/src/resources/extensions/gsd/gsd-db.ts +564 -186
- package/src/resources/extensions/gsd/guided-flow.ts +4 -1
- package/src/resources/extensions/gsd/markdown-renderer.ts +44 -66
- package/src/resources/extensions/gsd/md-importer.ts +49 -2
- package/src/resources/extensions/gsd/migration-auto-check.ts +154 -34
- package/src/resources/extensions/gsd/parsers-legacy.ts +20 -0
- package/src/resources/extensions/gsd/planner-handoff.ts +149 -0
- package/src/resources/extensions/gsd/planning-path-scope.ts +22 -4
- package/src/resources/extensions/gsd/pre-execution-checks.ts +9 -2
- package/src/resources/extensions/gsd/preferences-models.ts +113 -43
- package/src/resources/extensions/gsd/preferences-types.ts +47 -0
- package/src/resources/extensions/gsd/preferences-validation.ts +76 -2
- package/src/resources/extensions/gsd/preferences.ts +5 -0
- package/src/resources/extensions/gsd/prompts/gate-evaluate.md +1 -1
- package/src/resources/extensions/gsd/prompts/plan-milestone.md +1 -1
- package/src/resources/extensions/gsd/prompts/plan-slice.md +1 -1
- package/src/resources/extensions/gsd/prompts/refine-slice.md +1 -1
- package/src/resources/extensions/gsd/prompts/run-uat.md +2 -2
- package/src/resources/extensions/gsd/prompts/system.md +1 -1
- package/src/resources/extensions/gsd/roadmap-slices.ts +6 -1
- package/src/resources/extensions/gsd/safety/content-validator.ts +8 -5
- package/src/resources/extensions/gsd/skill-manifest.ts +12 -0
- package/src/resources/extensions/gsd/source-observations.ts +402 -0
- package/src/resources/extensions/gsd/state-reconciliation/drift/completion.ts +20 -8
- package/src/resources/extensions/gsd/state-reconciliation/drift/stale-render.ts +44 -5
- package/src/resources/extensions/gsd/state-reconciliation/drift/stale-worker.ts +39 -11
- package/src/resources/extensions/gsd/state-reconciliation/index.ts +45 -15
- package/src/resources/extensions/gsd/state-reconciliation/spawn-gate.ts +4 -4
- package/src/resources/extensions/gsd/state.ts +7 -4
- package/src/resources/extensions/gsd/tests/auto-loop.test.ts +114 -0
- package/src/resources/extensions/gsd/tests/auto-model-selection-tool-poisoning.test.ts +66 -4
- package/src/resources/extensions/gsd/tests/auto-model-selection.test.ts +299 -1
- package/src/resources/extensions/gsd/tests/auto-paused-ui-cleanup.test.ts +32 -0
- package/src/resources/extensions/gsd/tests/auto-phases-lifecycle.test.ts +75 -3
- package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +22 -1
- package/src/resources/extensions/gsd/tests/auto-supervisor.test.mjs +4 -0
- package/src/resources/extensions/gsd/tests/before-provider-context-management.test.ts +145 -0
- package/src/resources/extensions/gsd/tests/bundled-skill-triggers.test.ts +9 -0
- package/src/resources/extensions/gsd/tests/closeout-wizard.test.ts +44 -0
- package/src/resources/extensions/gsd/tests/commands-dispatcher-unmerged-milestone.test.ts +26 -1
- package/src/resources/extensions/gsd/tests/complete-slice-verification-gate.test.ts +118 -0
- package/src/resources/extensions/gsd/tests/content-validator.test.ts +74 -0
- package/src/resources/extensions/gsd/tests/context-masker.test.ts +56 -1
- package/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts +17 -2
- package/src/resources/extensions/gsd/tests/dispatch-rule-coverage.test.ts +24 -0
- package/src/resources/extensions/gsd/tests/doctor-scope-db-unavailable.test.ts +1 -11
- package/src/resources/extensions/gsd/tests/gate-dispatch.test.ts +64 -0
- package/src/resources/extensions/gsd/tests/gate-storage.test.ts +15 -0
- package/src/resources/extensions/gsd/tests/gsd-recover.test.ts +62 -1
- package/src/resources/extensions/gsd/tests/integration/run-uat.test.ts +4 -1
- package/src/resources/extensions/gsd/tests/interrupted-session-auto.test.ts +27 -0
- package/src/resources/extensions/gsd/tests/journal-integration.test.ts +16 -0
- package/src/resources/extensions/gsd/tests/markdown-renderer.test.ts +42 -0
- package/src/resources/extensions/gsd/tests/mcp-project-config.test.ts +7 -1
- package/src/resources/extensions/gsd/tests/mcp-status.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/migration-auto-check.test.ts +99 -0
- package/src/resources/extensions/gsd/tests/plan-slice.test.ts +99 -2
- package/src/resources/extensions/gsd/tests/plan-task.test.ts +19 -0
- package/src/resources/extensions/gsd/tests/planner-handoff.test.ts +100 -0
- package/src/resources/extensions/gsd/tests/preferences.test.ts +14 -0
- package/src/resources/extensions/gsd/tests/prefs-wizard-coverage.test.ts +1 -0
- package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +133 -0
- package/src/resources/extensions/gsd/tests/provider-switch-observer.test.ts +55 -0
- package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +101 -1
- package/src/resources/extensions/gsd/tests/repository-registry.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/runtime-invariant-modules.test.ts +28 -0
- package/src/resources/extensions/gsd/tests/schema-v21-sequence.test.ts +5 -3
- package/src/resources/extensions/gsd/tests/schema-v27-v28-sequence.test.ts +162 -18
- package/src/resources/extensions/gsd/tests/skill-manifest.test.ts +4 -3
- package/src/resources/extensions/gsd/tests/skipped-validation-db-atomicity.test.ts +8 -0
- package/src/resources/extensions/gsd/tests/source-observations.test.ts +275 -0
- package/src/resources/extensions/gsd/tests/stale-queued-milestone.test.ts +43 -0
- package/src/resources/extensions/gsd/tests/state-reconciliation-drift.test.ts +76 -21
- package/src/resources/extensions/gsd/tests/thinking-level-resolution.test.ts +203 -0
- package/src/resources/extensions/gsd/tests/uat-policy.test.ts +170 -0
- package/src/resources/extensions/gsd/tests/unit-context-manifest.test.ts +7 -1
- package/src/resources/extensions/gsd/tests/workflow-kernel.test.ts +7 -0
- package/src/resources/extensions/gsd/tests/workflow-manifest.test.ts +306 -1
- package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +77 -10
- package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +260 -5
- package/src/resources/extensions/gsd/tests/worktree-db.test.ts +511 -1
- package/src/resources/extensions/gsd/tests/worktree-reentry.test.ts +102 -0
- package/src/resources/extensions/gsd/tests/worktree-state-projection.test.ts +44 -0
- package/src/resources/extensions/gsd/tool-contract.ts +29 -1
- package/src/resources/extensions/gsd/tool-presentation-plan.ts +41 -6
- package/src/resources/extensions/gsd/tools/complete-slice.ts +29 -0
- package/src/resources/extensions/gsd/tools/plan-slice.ts +54 -12
- package/src/resources/extensions/gsd/tools/plan-task.ts +8 -1
- package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +71 -489
- package/src/resources/extensions/gsd/types.ts +1 -0
- package/src/resources/extensions/gsd/uat-policy.ts +191 -0
- package/src/resources/extensions/gsd/uat-run.ts +550 -0
- package/src/resources/extensions/gsd/unit-context-manifest.ts +3 -4
- package/src/resources/extensions/gsd/unit-tool-contracts.ts +38 -14
- package/src/resources/extensions/gsd/verdict-parser.ts +3 -10
- package/src/resources/extensions/gsd/workflow-manifest.ts +193 -7
- package/src/resources/extensions/gsd/workflow-mcp.ts +2 -3
- package/src/resources/extensions/gsd/workflow-projections.ts +9 -0
- package/src/resources/extensions/gsd/worktree-manager.ts +32 -0
- package/src/resources/extensions/gsd/worktree-reentry.ts +103 -0
- package/src/resources/extensions/gsd/worktree-state-projection.ts +22 -22
- package/src/resources/extensions/shared/gsd-browser-cli.ts +6 -0
- package/src/resources/extensions/shared/tests/format-utils.test.ts +8 -3
- package/src/resources/extensions/subagent/agents.ts +4 -0
- package/src/resources/extensions/subagent/index.ts +28 -3
- package/src/resources/extensions/subagent/launch.ts +8 -0
- package/src/resources/extensions/subagent/tests/model-override.test.ts +31 -0
- /package/dist/web/standalone/.next/static/{9y3LeeR2uGr2yRj9RjY3D → tJOKQbQRO-9MiFDO8DIDS}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{9y3LeeR2uGr2yRj9RjY3D → tJOKQbQRO-9MiFDO8DIDS}/_ssgManifest.js +0 -0
|
@@ -341,6 +341,7 @@ interface TaskParam {
|
|
|
341
341
|
task: string;
|
|
342
342
|
cwd?: string;
|
|
343
343
|
model?: string;
|
|
344
|
+
thinking?: string;
|
|
344
345
|
context?: SubagentContextMode;
|
|
345
346
|
}
|
|
346
347
|
|
|
@@ -416,6 +417,9 @@ async function runSingleAgent(
|
|
|
416
417
|
parentSessionManager?: Parameters<typeof createSubagentLaunchPlan>[0]["parentSessionManager"],
|
|
417
418
|
sessionOverride?: SubagentSessionArgs,
|
|
418
419
|
trackingName?: string,
|
|
420
|
+
// Trailing param (kept after trackingName so existing positional call sites
|
|
421
|
+
// don't shift). Reasoning effort forwarded to the child (#508).
|
|
422
|
+
thinkingOverride?: string,
|
|
419
423
|
): Promise<SingleResult> {
|
|
420
424
|
const agent = agents.find((a) => a.name === agentName);
|
|
421
425
|
|
|
@@ -489,6 +493,7 @@ async function runSingleAgent(
|
|
|
489
493
|
task,
|
|
490
494
|
tmpPromptPath,
|
|
491
495
|
modelOverride,
|
|
496
|
+
thinkingOverride,
|
|
492
497
|
contextMode,
|
|
493
498
|
parentSessionManager,
|
|
494
499
|
session: sessionOverride,
|
|
@@ -581,10 +586,12 @@ async function runSingleAgentInCmuxSplit(
|
|
|
581
586
|
parentSessionManager?: Parameters<typeof createSubagentLaunchPlan>[0]["parentSessionManager"],
|
|
582
587
|
sessionOverride?: SubagentSessionArgs,
|
|
583
588
|
trackingName?: string,
|
|
589
|
+
// Trailing param (see runSingleAgent). Reasoning effort forwarded to the child (#508).
|
|
590
|
+
thinkingOverride?: string,
|
|
584
591
|
): Promise<SingleResult> {
|
|
585
592
|
const agent = agents.find((a) => a.name === agentName);
|
|
586
593
|
if (!agent) {
|
|
587
|
-
return runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, signal, onUpdate, makeDetails, modelOverride, contextMode, parentSessionManager, sessionOverride, trackingName);
|
|
594
|
+
return runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, signal, onUpdate, makeDetails, modelOverride, contextMode, parentSessionManager, sessionOverride, trackingName, thinkingOverride);
|
|
588
595
|
}
|
|
589
596
|
|
|
590
597
|
let tmpPromptDir: string | null = null;
|
|
@@ -631,7 +638,7 @@ async function runSingleAgentInCmuxSplit(
|
|
|
631
638
|
? await cmuxClient.createSplit(directionOrSurfaceId as "right" | "down" | "left" | "up")
|
|
632
639
|
: directionOrSurfaceId;
|
|
633
640
|
if (!cmuxSurfaceId) {
|
|
634
|
-
return runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, signal, onUpdate, makeDetails, modelOverride, contextMode, parentSessionManager, sessionOverride, trackingName);
|
|
641
|
+
return runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, signal, onUpdate, makeDetails, modelOverride, contextMode, parentSessionManager, sessionOverride, trackingName, thinkingOverride);
|
|
635
642
|
}
|
|
636
643
|
|
|
637
644
|
const bundledPaths = (process.env.GSD_BUNDLED_EXTENSION_PATHS ?? "").split(path.delimiter).map((s) => s.trim()).filter(Boolean);
|
|
@@ -641,6 +648,7 @@ async function runSingleAgentInCmuxSplit(
|
|
|
641
648
|
task,
|
|
642
649
|
tmpPromptPath,
|
|
643
650
|
modelOverride,
|
|
651
|
+
thinkingOverride,
|
|
644
652
|
contextMode,
|
|
645
653
|
parentSessionManager,
|
|
646
654
|
session: sessionOverride,
|
|
@@ -665,7 +673,7 @@ async function runSingleAgentInCmuxSplit(
|
|
|
665
673
|
|
|
666
674
|
const sent = await cmuxClient.sendSurface(cmuxSurfaceId, `bash -lc ${shellEscape(innerScript)}`);
|
|
667
675
|
if (!sent) {
|
|
668
|
-
return runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, signal, onUpdate, makeDetails, modelOverride, contextMode, parentSessionManager, sessionOverride, trackingName);
|
|
676
|
+
return runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, signal, onUpdate, makeDetails, modelOverride, contextMode, parentSessionManager, sessionOverride, trackingName, thinkingOverride);
|
|
669
677
|
}
|
|
670
678
|
|
|
671
679
|
const finished = await waitForFile(exitPath, signal);
|
|
@@ -726,11 +734,18 @@ async function runSingleAgentInCmuxSplit(
|
|
|
726
734
|
}
|
|
727
735
|
}
|
|
728
736
|
|
|
737
|
+
const ThinkingLevelSchema = StringEnum(["off", "minimal", "low", "medium", "high", "xhigh"] as const, {
|
|
738
|
+
description:
|
|
739
|
+
"Reasoning effort override for the subagent (forwarded as --thinking). " +
|
|
740
|
+
"Independent of model choice; unsupported levels are clamped to the model at dispatch.",
|
|
741
|
+
});
|
|
742
|
+
|
|
729
743
|
const TaskItem = Type.Object({
|
|
730
744
|
agent: Type.String({ description: "Name of the agent to invoke" }),
|
|
731
745
|
task: Type.String({ description: "Task to delegate to the agent" }),
|
|
732
746
|
cwd: Type.Optional(Type.String({ description: "Working directory for the agent process" })),
|
|
733
747
|
model: Type.Optional(Type.String({ description: "Model override for this task (e.g. 'claude-sonnet-4-6')" })),
|
|
748
|
+
thinking: Type.Optional(ThinkingLevelSchema),
|
|
734
749
|
context: Type.Optional(StringEnum(["fresh", "fork"] as const, {
|
|
735
750
|
description: 'Context mode for this task (see context field on the top-level params).',
|
|
736
751
|
default: "fresh",
|
|
@@ -742,6 +757,7 @@ const ChainItem = Type.Object({
|
|
|
742
757
|
task: Type.String({ description: "Task with optional {previous} placeholder for prior step output" }),
|
|
743
758
|
cwd: Type.Optional(Type.String({ description: "Working directory for the agent process" })),
|
|
744
759
|
model: Type.Optional(Type.String({ description: "Model override for this step (e.g. 'claude-sonnet-4-6')" })),
|
|
760
|
+
thinking: Type.Optional(ThinkingLevelSchema),
|
|
745
761
|
context: Type.Optional(StringEnum(["fresh", "fork"] as const, {
|
|
746
762
|
description: 'Context mode for this step (see context field on the top-level params).',
|
|
747
763
|
default: "fresh",
|
|
@@ -779,6 +795,7 @@ const SubagentParams = Type.Object({
|
|
|
779
795
|
),
|
|
780
796
|
cwd: Type.Optional(Type.String({ description: "Working directory for the agent process (single mode)" })),
|
|
781
797
|
model: Type.Optional(Type.String({ description: "Model override for the subagent (e.g. 'claude-sonnet-4-6'). Takes precedence over the agent's frontmatter model." })),
|
|
798
|
+
thinking: Type.Optional(ThinkingLevelSchema),
|
|
782
799
|
isolated: Type.Optional(
|
|
783
800
|
Type.Boolean({
|
|
784
801
|
description:
|
|
@@ -930,6 +947,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
930
947
|
ctx.sessionManager,
|
|
931
948
|
{ mode: "fork", sessionFile: selected.sessionFile, sessionDir: path.dirname(selected.sessionFile) },
|
|
932
949
|
selected.trackingName,
|
|
950
|
+
params.thinking,
|
|
933
951
|
);
|
|
934
952
|
return {
|
|
935
953
|
content: [{ type: "text", text: getFinalOutput(result.messages) || result.errorMessage || result.stderr || "(no output)" }],
|
|
@@ -1244,6 +1262,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
1244
1262
|
ctx.sessionManager,
|
|
1245
1263
|
undefined,
|
|
1246
1264
|
dispatchTrackingNames[0],
|
|
1265
|
+
params.thinking,
|
|
1247
1266
|
);
|
|
1248
1267
|
if (isolation && result.exitCode === 0) {
|
|
1249
1268
|
const patches = await isolation.captureDelta();
|
|
@@ -1317,6 +1336,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
1317
1336
|
ctx.sessionManager,
|
|
1318
1337
|
undefined,
|
|
1319
1338
|
dispatchTrackingNames[i],
|
|
1339
|
+
step.thinking || params.thinking,
|
|
1320
1340
|
);
|
|
1321
1341
|
results.push(result);
|
|
1322
1342
|
persistRunResults(results);
|
|
@@ -1397,6 +1417,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
1397
1417
|
const results = await mapWithConcurrencyLimit(taskParams, MAX_CONCURRENCY, async (t, index) => {
|
|
1398
1418
|
const workerId = registerWorker(t.agent, t.task, index, batchSize, batchId);
|
|
1399
1419
|
const taskModel = t.model || params.model;
|
|
1420
|
+
const taskThinking = t.thinking || params.thinking;
|
|
1400
1421
|
const updateParallelResult = (partial: AgentToolResult<SubagentDetails>) => {
|
|
1401
1422
|
if (partial.details?.results[0]) {
|
|
1402
1423
|
allResults[index] = partial.details.results[0];
|
|
@@ -1422,6 +1443,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
1422
1443
|
ctx.sessionManager,
|
|
1423
1444
|
undefined,
|
|
1424
1445
|
dispatchTrackingNames[index],
|
|
1446
|
+
taskThinking,
|
|
1425
1447
|
)
|
|
1426
1448
|
: runSingleAgent(
|
|
1427
1449
|
ctx.cwd,
|
|
@@ -1438,6 +1460,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
1438
1460
|
ctx.sessionManager,
|
|
1439
1461
|
undefined,
|
|
1440
1462
|
dispatchTrackingNames[index],
|
|
1463
|
+
taskThinking,
|
|
1441
1464
|
);
|
|
1442
1465
|
const runTask = async () => {
|
|
1443
1466
|
let isolation: IsolationEnvironment | null = null;
|
|
@@ -1536,6 +1559,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
1536
1559
|
ctx.sessionManager,
|
|
1537
1560
|
undefined,
|
|
1538
1561
|
dispatchTrackingNames[0],
|
|
1562
|
+
params.thinking,
|
|
1539
1563
|
)
|
|
1540
1564
|
: await runSingleAgent(
|
|
1541
1565
|
ctx.cwd,
|
|
@@ -1552,6 +1576,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
1552
1576
|
ctx.sessionManager,
|
|
1553
1577
|
undefined,
|
|
1554
1578
|
dispatchTrackingNames[0],
|
|
1579
|
+
params.thinking,
|
|
1555
1580
|
);
|
|
1556
1581
|
finalResults = [result];
|
|
1557
1582
|
|
|
@@ -25,6 +25,8 @@ export interface SubagentLaunchInput {
|
|
|
25
25
|
task: string;
|
|
26
26
|
tmpPromptPath: string | null;
|
|
27
27
|
modelOverride?: string;
|
|
28
|
+
/** Reasoning effort override forwarded as `--thinking` (ADR-026 / #508). */
|
|
29
|
+
thinkingOverride?: string;
|
|
28
30
|
contextMode?: SubagentContextMode;
|
|
29
31
|
parentSessionManager?: SubagentParentSessionManager;
|
|
30
32
|
session?: SubagentSessionArgs;
|
|
@@ -60,6 +62,7 @@ export function buildSubagentProcessArgs(
|
|
|
60
62
|
task: string,
|
|
61
63
|
tmpPromptPath: string | null,
|
|
62
64
|
modelOverride?: string,
|
|
65
|
+
thinkingOverride?: string,
|
|
63
66
|
session: SubagentSessionArgs = { mode: "fresh" },
|
|
64
67
|
): string[] {
|
|
65
68
|
const args: string[] = ["--mode", "json", "-p"];
|
|
@@ -71,6 +74,10 @@ export function buildSubagentProcessArgs(
|
|
|
71
74
|
}
|
|
72
75
|
const effectiveModel = modelOverride ?? agent.model;
|
|
73
76
|
if (effectiveModel) args.push("--model", effectiveModel);
|
|
77
|
+
// Reasoning effort travels with the model (ADR-026 / #508). The child CLI
|
|
78
|
+
// validates `--thinking` and clamps to the resolved model at dispatch.
|
|
79
|
+
const effectiveThinking = thinkingOverride ?? agent.thinking;
|
|
80
|
+
if (effectiveThinking) args.push("--thinking", effectiveThinking);
|
|
74
81
|
if (agent.tools && agent.tools.length > 0) args.push("--tools", agent.tools.join(","));
|
|
75
82
|
if (tmpPromptPath) args.push("--append-system-prompt", tmpPromptPath);
|
|
76
83
|
args.push(`Task: ${task}`);
|
|
@@ -122,6 +129,7 @@ export function createSubagentLaunchPlan(input: SubagentLaunchInput): SubagentLa
|
|
|
122
129
|
input.task,
|
|
123
130
|
input.tmpPromptPath,
|
|
124
131
|
input.modelOverride,
|
|
132
|
+
input.thinkingOverride,
|
|
125
133
|
session,
|
|
126
134
|
),
|
|
127
135
|
env: buildSubagentProcessEnv(),
|
|
@@ -53,3 +53,34 @@ describe("buildSubagentProcessArgs model override", () => {
|
|
|
53
53
|
assert.equal(args[modelIndex + 1], "model-override");
|
|
54
54
|
});
|
|
55
55
|
});
|
|
56
|
+
|
|
57
|
+
describe("buildSubagentProcessArgs thinking override (#508)", () => {
|
|
58
|
+
it("forwards thinkingOverride as --thinking", () => {
|
|
59
|
+
const args = buildSubagentProcessArgs(makeAgent(), "task", null, undefined, "low");
|
|
60
|
+
const idx = args.indexOf("--thinking");
|
|
61
|
+
assert.notEqual(idx, -1, "should include --thinking flag");
|
|
62
|
+
assert.equal(args[idx + 1], "low");
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it("falls back to agent.thinking when no override provided", () => {
|
|
66
|
+
const args = buildSubagentProcessArgs(makeAgent({ thinking: "high" }), "task", null);
|
|
67
|
+
const idx = args.indexOf("--thinking");
|
|
68
|
+
assert.equal(args[idx + 1], "high");
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it("override takes precedence over agent.thinking", () => {
|
|
72
|
+
const args = buildSubagentProcessArgs(makeAgent({ thinking: "high" }), "task", null, undefined, "minimal");
|
|
73
|
+
assert.equal(args[args.indexOf("--thinking") + 1], "minimal");
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it("omits --thinking when neither override nor agent.thinking is set", () => {
|
|
77
|
+
const args = buildSubagentProcessArgs(makeAgent(), "task", null);
|
|
78
|
+
assert.equal(args.indexOf("--thinking"), -1, "should not include --thinking flag");
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
it("forwards both model and thinking together", () => {
|
|
82
|
+
const args = buildSubagentProcessArgs(makeAgent(), "task", null, "model-x", "xhigh");
|
|
83
|
+
assert.equal(args[args.indexOf("--model") + 1], "model-x");
|
|
84
|
+
assert.equal(args[args.indexOf("--thinking") + 1], "xhigh");
|
|
85
|
+
});
|
|
86
|
+
});
|
|
File without changes
|
|
File without changes
|