@opengsd/gsd-pi 1.2.0-dev.e8563f58 → 1.2.0-dev.fbdca60b
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/cli-model-override.d.ts +15 -0
- package/dist/cli-model-override.js +21 -0
- package/dist/cli.js +1 -18
- package/dist/loader.js +6 -4
- package/dist/register-agent-bundles.d.ts +11 -2
- package/dist/register-agent-bundles.js +18 -4
- package/dist/resource-loader.d.ts +10 -5
- package/dist/resource-loader.js +121 -6
- package/dist/resources/.managed-resources-content-hash +1 -1
- package/dist/resources/extensions/ask-user-questions.js +3 -2
- package/dist/resources/extensions/claude-code-cli/stream-adapter.js +447 -215
- package/dist/resources/extensions/claude-code-cli/turn-assembler.js +33 -1
- package/dist/resources/extensions/gsd/auto/closeout.js +215 -0
- package/dist/resources/extensions/gsd/auto/dispatch-history.js +21 -6
- package/dist/resources/extensions/gsd/auto/dispatch.js +365 -0
- package/dist/resources/extensions/gsd/auto/finalize.js +347 -0
- package/dist/resources/extensions/gsd/auto/loop.js +4 -1
- package/dist/resources/extensions/gsd/auto/milestone-lease-reclaim.js +56 -0
- package/dist/resources/extensions/gsd/auto/orchestrator.js +85 -15
- package/dist/resources/extensions/gsd/auto/phase-helpers.js +146 -0
- package/dist/resources/extensions/gsd/auto/phases.js +17 -2329
- package/dist/resources/extensions/gsd/auto/pre-dispatch.js +534 -0
- package/dist/resources/extensions/gsd/auto/session.js +3 -0
- package/dist/resources/extensions/gsd/auto/unit-phase.js +694 -0
- package/dist/resources/extensions/gsd/auto/workflow-unit-dispatch.js +1 -1
- package/dist/resources/extensions/gsd/auto/worktree-safety-phase.js +125 -0
- package/dist/resources/extensions/gsd/auto-direct-dispatch.js +3 -2
- package/dist/resources/extensions/gsd/auto-dispatch.js +11 -2
- package/dist/resources/extensions/gsd/auto-post-unit.js +18 -6
- package/dist/resources/extensions/gsd/auto-start.js +23 -3
- package/dist/resources/extensions/gsd/auto-unit-closeout.js +45 -21
- package/dist/resources/extensions/gsd/auto-verification.js +14 -2
- package/dist/resources/extensions/gsd/auto-worktree.js +15 -2
- package/dist/resources/extensions/gsd/auto.js +45 -2
- package/dist/resources/extensions/gsd/bootstrap/dynamic-tools.js +37 -7
- package/dist/resources/extensions/gsd/commands/context.js +16 -2
- package/dist/resources/extensions/gsd/commands-mcp-status.js +2 -2
- package/dist/resources/extensions/gsd/commands-workflow-templates.js +9 -2
- package/dist/resources/extensions/gsd/crash-recovery.js +8 -3
- package/dist/resources/extensions/gsd/db/engine.js +24 -6
- package/dist/resources/extensions/gsd/db/queries.js +30 -0
- package/dist/resources/extensions/gsd/db-migration-backup.js +51 -8
- package/dist/resources/extensions/gsd/db-transaction.js +27 -23
- package/dist/resources/extensions/gsd/db-writer.js +8 -17
- package/dist/resources/extensions/gsd/doctor-engine-checks.js +5 -5
- package/dist/resources/extensions/gsd/doctor-environment.js +256 -125
- package/dist/resources/extensions/gsd/gsd-db.js +15 -20
- package/dist/resources/extensions/gsd/guided-flow.js +93 -4
- package/dist/resources/extensions/gsd/health-widget.js +87 -28
- package/dist/resources/extensions/gsd/mcp-bridge.js +10 -0
- package/dist/resources/extensions/gsd/memory-relations.js +1 -1
- package/dist/resources/extensions/gsd/milestone-planning-persistence.js +2 -2
- package/dist/resources/extensions/gsd/milestone-reopen-events.js +3 -5
- package/dist/resources/extensions/gsd/milestone-settlement.js +2 -2
- package/dist/resources/extensions/gsd/notifications.js +12 -7
- package/dist/resources/extensions/gsd/projection-flush.js +7 -0
- package/dist/resources/extensions/gsd/prompts/complete-slice.md +2 -2
- package/dist/resources/extensions/gsd/prompts/execute-task.md +3 -2
- 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/quick-task.md +1 -1
- package/dist/resources/extensions/gsd/prompts/reassess-roadmap.md +1 -1
- package/dist/resources/extensions/gsd/prompts/refine-slice.md +1 -1
- package/dist/resources/extensions/gsd/prompts/replan-slice.md +1 -1
- package/dist/resources/extensions/gsd/prompts/research-milestone.md +1 -1
- package/dist/resources/extensions/gsd/prompts/research-slice.md +1 -1
- package/dist/resources/extensions/gsd/prompts/rewrite-docs.md +1 -1
- package/dist/resources/extensions/gsd/prompts/run-uat.md +3 -1
- package/dist/resources/extensions/gsd/prompts/triage-captures.md +1 -1
- package/dist/resources/extensions/gsd/prompts/validate-milestone.md +1 -1
- package/dist/resources/extensions/gsd/prompts/workflow-start.md +2 -1
- package/dist/resources/extensions/gsd/roadmap-slices.js +25 -3
- package/dist/resources/extensions/gsd/session-lock.js +1 -1
- package/dist/resources/extensions/gsd/skill-activation.js +3 -6
- package/dist/resources/extensions/gsd/state.js +6 -2
- package/dist/resources/extensions/gsd/tool-contract.js +14 -3
- package/dist/resources/extensions/gsd/tool-surface-readiness.js +83 -31
- package/dist/resources/extensions/gsd/tools/complete-milestone.js +3 -2
- package/dist/resources/extensions/gsd/tools/complete-slice.js +2 -2
- package/dist/resources/extensions/gsd/tools/complete-task.js +65 -2
- package/dist/resources/extensions/gsd/tools/plan-slice.js +2 -2
- package/dist/resources/extensions/gsd/tools/plan-task.js +2 -2
- package/dist/resources/extensions/gsd/tools/reassess-roadmap.js +2 -2
- package/dist/resources/extensions/gsd/tools/reopen-milestone.js +2 -2
- package/dist/resources/extensions/gsd/tools/reopen-slice.js +2 -2
- package/dist/resources/extensions/gsd/tools/reopen-task.js +2 -2
- package/dist/resources/extensions/gsd/tools/replan-slice.js +2 -2
- package/dist/resources/extensions/gsd/unit-context-composer.js +1 -1
- package/dist/resources/extensions/gsd/unit-registry.js +34 -4
- package/dist/resources/extensions/gsd/verification-verdict.js +2 -1
- package/dist/resources/extensions/gsd/workflow-event-ledger.js +91 -0
- package/dist/resources/extensions/gsd/workflow-event-vocabulary.js +46 -0
- package/dist/resources/extensions/gsd/workflow-events.js +6 -18
- package/dist/resources/extensions/gsd/workflow-mcp-auto-prep.js +2 -0
- package/dist/resources/extensions/gsd/workflow-mcp-readiness-cache.js +105 -0
- package/dist/resources/extensions/gsd/workflow-reconcile.js +21 -56
- package/dist/resources/extensions/gsd/worktree-manager.js +7 -1
- package/dist/resources/extensions/gsd/worktree-safety.js +28 -26
- package/dist/resources/extensions/gsd/worktree.js +8 -1
- package/dist/resources/extensions/mcp-client/manager.js +6 -1
- package/dist/resources/skills/create-skill/SKILL.md +3 -0
- package/dist/resources/skills/create-skill/references/skill-structure.md +1 -0
- package/dist/runtime-checks.d.ts +10 -0
- package/dist/runtime-checks.js +27 -0
- package/dist/tsconfig.extensions.tsbuildinfo +1 -1
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +7 -7
- 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/api/boot/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/mcp-connections/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/shutdown/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +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 +7 -7
- package/dist/web/standalone/.next/server/chunks/{5942.js → 1128.js} +1 -1
- 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/node-pty/build/Makefile +1 -1
- package/package.json +3 -3
- 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/dist/sdk.d.ts.map +1 -1
- package/packages/gsd-agent-core/dist/sdk.js +6 -4
- package/packages/gsd-agent-core/dist/sdk.js.map +1 -1
- package/packages/gsd-agent-core/package.json +5 -5
- package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.d.ts +2 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.js +10 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.d.ts +8 -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 +50 -6
- 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 +2 -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 +34 -5
- package/packages/gsd-agent-modes/dist/modes/interactive/components/transcript-design.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.d.ts +1 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.js +17 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-selectors-settings.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-selectors-settings.js +4 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-selectors-settings.js.map +1 -1
- package/packages/gsd-agent-modes/package.json +7 -7
- package/packages/mcp-server/README.md +12 -3
- package/packages/mcp-server/dist/cli-runner.d.ts +40 -0
- package/packages/mcp-server/dist/cli-runner.d.ts.map +1 -0
- package/packages/mcp-server/dist/cli-runner.js +137 -0
- package/packages/mcp-server/dist/cli-runner.js.map +1 -0
- package/packages/mcp-server/dist/cli.js +2 -53
- package/packages/mcp-server/dist/cli.js.map +1 -1
- package/packages/mcp-server/dist/pid-registry.d.ts +46 -0
- package/packages/mcp-server/dist/pid-registry.d.ts.map +1 -0
- package/packages/mcp-server/dist/pid-registry.js +459 -0
- package/packages/mcp-server/dist/pid-registry.js.map +1 -0
- package/packages/mcp-server/dist/probe-mode.d.ts +4 -0
- package/packages/mcp-server/dist/probe-mode.d.ts.map +1 -0
- package/packages/mcp-server/dist/probe-mode.js +10 -0
- package/packages/mcp-server/dist/probe-mode.js.map +1 -0
- package/packages/mcp-server/dist/stdio-watchdog.d.ts +8 -0
- package/packages/mcp-server/dist/stdio-watchdog.d.ts.map +1 -0
- package/packages/mcp-server/dist/stdio-watchdog.js +40 -0
- package/packages/mcp-server/dist/stdio-watchdog.js.map +1 -0
- package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
- package/packages/mcp-server/dist/workflow-tools.js +62 -43
- package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
- package/packages/mcp-server/package.json +5 -5
- package/packages/native/package.json +1 -1
- package/packages/pi-agent-core/dist/agent-loop.js +43 -2
- package/packages/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/packages/pi-agent-core/package.json +1 -1
- package/packages/pi-ai/package.json +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +3 -0
- package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.js +11 -0
- package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
- package/packages/pi-coding-agent/dist/theme/theme.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/theme/theme.js +45 -17
- package/packages/pi-coding-agent/dist/theme/theme.js.map +1 -1
- package/packages/pi-coding-agent/package.json +7 -7
- package/packages/pi-tui/README.md +15 -0
- package/packages/pi-tui/dist/index.d.ts +2 -2
- package/packages/pi-tui/dist/index.d.ts.map +1 -1
- package/packages/pi-tui/dist/index.js +2 -2
- package/packages/pi-tui/dist/index.js.map +1 -1
- package/packages/pi-tui/dist/terminal-image.d.ts +33 -0
- package/packages/pi-tui/dist/terminal-image.d.ts.map +1 -1
- package/packages/pi-tui/dist/terminal-image.js +54 -2
- package/packages/pi-tui/dist/terminal-image.js.map +1 -1
- package/packages/pi-tui/dist/terminal.d.ts +12 -0
- package/packages/pi-tui/dist/terminal.d.ts.map +1 -1
- package/packages/pi-tui/dist/terminal.js +70 -25
- package/packages/pi-tui/dist/terminal.js.map +1 -1
- package/packages/pi-tui/dist/tui.d.ts +15 -0
- package/packages/pi-tui/dist/tui.d.ts.map +1 -1
- package/packages/pi-tui/dist/tui.js +106 -21
- package/packages/pi-tui/dist/tui.js.map +1 -1
- package/packages/pi-tui/dist/utils.d.ts.map +1 -1
- package/packages/pi-tui/dist/utils.js +110 -36
- package/packages/pi-tui/dist/utils.js.map +1 -1
- package/packages/pi-tui/package.json +2 -2
- package/packages/rpc-client/package.json +2 -2
- package/pkg/dist/theme/theme.d.ts.map +1 -1
- package/pkg/dist/theme/theme.js +45 -17
- package/pkg/dist/theme/theme.js.map +1 -1
- package/pkg/package.json +1 -1
- package/src/resources/extensions/ask-user-questions.ts +7 -2
- package/src/resources/extensions/claude-code-cli/stream-adapter.ts +531 -226
- package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +672 -7
- package/src/resources/extensions/claude-code-cli/turn-assembler.ts +38 -1
- package/src/resources/extensions/gsd/auto/closeout.ts +309 -0
- package/src/resources/extensions/gsd/auto/dispatch-history.ts +22 -6
- package/src/resources/extensions/gsd/auto/dispatch.ts +449 -0
- package/src/resources/extensions/gsd/auto/finalize.ts +445 -0
- package/src/resources/extensions/gsd/auto/loop.ts +4 -1
- package/src/resources/extensions/gsd/auto/milestone-lease-reclaim.ts +74 -0
- package/src/resources/extensions/gsd/auto/orchestrator.ts +95 -15
- package/src/resources/extensions/gsd/auto/phase-helpers.ts +199 -0
- package/src/resources/extensions/gsd/auto/phases.ts +58 -3022
- package/src/resources/extensions/gsd/auto/pre-dispatch.ts +704 -0
- package/src/resources/extensions/gsd/auto/session.ts +3 -0
- package/src/resources/extensions/gsd/auto/unit-phase.ts +910 -0
- package/src/resources/extensions/gsd/auto/workflow-unit-dispatch.ts +1 -1
- package/src/resources/extensions/gsd/auto/worktree-safety-phase.ts +149 -0
- package/src/resources/extensions/gsd/auto-direct-dispatch.ts +10 -16
- package/src/resources/extensions/gsd/auto-dispatch.ts +11 -10
- package/src/resources/extensions/gsd/auto-post-unit.ts +21 -6
- package/src/resources/extensions/gsd/auto-start.ts +24 -4
- package/src/resources/extensions/gsd/auto-unit-closeout.ts +83 -28
- package/src/resources/extensions/gsd/auto-verification.ts +18 -2
- package/src/resources/extensions/gsd/auto-worktree.ts +15 -2
- package/src/resources/extensions/gsd/auto.ts +56 -2
- package/src/resources/extensions/gsd/bootstrap/dynamic-tools.ts +56 -6
- package/src/resources/extensions/gsd/commands/context.ts +16 -2
- package/src/resources/extensions/gsd/commands-mcp-status.ts +2 -2
- package/src/resources/extensions/gsd/commands-workflow-templates.ts +11 -4
- package/src/resources/extensions/gsd/crash-recovery.ts +10 -2
- package/src/resources/extensions/gsd/db/engine.ts +26 -6
- package/src/resources/extensions/gsd/db/queries.ts +29 -0
- package/src/resources/extensions/gsd/db-migration-backup.ts +56 -7
- package/src/resources/extensions/gsd/db-transaction.ts +37 -20
- package/src/resources/extensions/gsd/db-writer.ts +11 -19
- package/src/resources/extensions/gsd/doctor-engine-checks.ts +5 -4
- package/src/resources/extensions/gsd/doctor-environment.ts +267 -142
- package/src/resources/extensions/gsd/gsd-db.ts +15 -19
- package/src/resources/extensions/gsd/guided-flow.ts +145 -24
- package/src/resources/extensions/gsd/health-widget.ts +91 -27
- package/src/resources/extensions/gsd/mcp-bridge.ts +39 -0
- package/src/resources/extensions/gsd/memory-relations.ts +1 -1
- package/src/resources/extensions/gsd/milestone-planning-persistence.ts +2 -2
- package/src/resources/extensions/gsd/milestone-reopen-events.ts +3 -6
- package/src/resources/extensions/gsd/milestone-settlement.ts +2 -2
- package/src/resources/extensions/gsd/notifications.ts +13 -6
- package/src/resources/extensions/gsd/projection-flush.ts +20 -0
- package/src/resources/extensions/gsd/prompts/complete-slice.md +2 -2
- package/src/resources/extensions/gsd/prompts/execute-task.md +3 -2
- 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/quick-task.md +1 -1
- package/src/resources/extensions/gsd/prompts/reassess-roadmap.md +1 -1
- package/src/resources/extensions/gsd/prompts/refine-slice.md +1 -1
- package/src/resources/extensions/gsd/prompts/replan-slice.md +1 -1
- package/src/resources/extensions/gsd/prompts/research-milestone.md +1 -1
- package/src/resources/extensions/gsd/prompts/research-slice.md +1 -1
- package/src/resources/extensions/gsd/prompts/rewrite-docs.md +1 -1
- package/src/resources/extensions/gsd/prompts/run-uat.md +3 -1
- package/src/resources/extensions/gsd/prompts/triage-captures.md +1 -1
- package/src/resources/extensions/gsd/prompts/validate-milestone.md +1 -1
- package/src/resources/extensions/gsd/prompts/workflow-start.md +2 -1
- package/src/resources/extensions/gsd/roadmap-slices.ts +28 -3
- package/src/resources/extensions/gsd/session-lock.ts +1 -1
- package/src/resources/extensions/gsd/skill-activation.ts +3 -6
- package/src/resources/extensions/gsd/state.ts +7 -1
- package/src/resources/extensions/gsd/tests/auto-abort-pause-regression.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/auto-blocked-remediation-message.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/auto-loop.test.ts +206 -22
- package/src/resources/extensions/gsd/tests/auto-model-selection.test.ts +6 -1
- package/src/resources/extensions/gsd/tests/auto-orchestrator.test.ts +76 -12
- package/src/resources/extensions/gsd/tests/auto-pause-double-entry-guard.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/auto-paused-ui-cleanup.test.ts +77 -1
- package/src/resources/extensions/gsd/tests/auto-phases-lifecycle.test.ts +2 -1
- package/src/resources/extensions/gsd/tests/auto-remote-session-lock-cleanup.test.ts +65 -3
- package/src/resources/extensions/gsd/tests/auto-start-orphan-bootstrap.test.ts +236 -0
- package/src/resources/extensions/gsd/tests/auto-unit-closeout.test.ts +169 -1
- package/src/resources/extensions/gsd/tests/complete-task.test.ts +141 -5
- package/src/resources/extensions/gsd/tests/db-migration-backup.test.ts +68 -19
- package/src/resources/extensions/gsd/tests/db-transaction.test.ts +59 -0
- package/src/resources/extensions/gsd/tests/db-writer.test.ts +15 -4
- package/src/resources/extensions/gsd/tests/deep-project-auto-loop.test.ts +2 -1
- package/src/resources/extensions/gsd/tests/derive-state-helpers.test.ts +62 -0
- package/src/resources/extensions/gsd/tests/discuss-routing-fixes.test.ts +12 -2
- package/src/resources/extensions/gsd/tests/dispatch-history.test.ts +55 -0
- package/src/resources/extensions/gsd/tests/dist-redirect.mjs +8 -0
- package/src/resources/extensions/gsd/tests/engine-interfaces-contract.test.ts +117 -91
- package/src/resources/extensions/gsd/tests/ensure-db-open.test.ts +113 -0
- package/src/resources/extensions/gsd/tests/gsd-db.test.ts +19 -0
- package/src/resources/extensions/gsd/tests/guided-dispatch-root.test.ts +18 -6
- package/src/resources/extensions/gsd/tests/integration/auto-worktree.test.ts +15 -0
- package/src/resources/extensions/gsd/tests/integration/doctor-environment-async.test.ts +104 -0
- package/src/resources/extensions/gsd/tests/integration/run-uat.test.ts +18 -0
- package/src/resources/extensions/gsd/tests/journal-integration.test.ts +47 -16
- package/src/resources/extensions/gsd/tests/mcp-readiness-preflight.test.ts +205 -0
- package/src/resources/extensions/gsd/tests/mcp-status.test.ts +6 -5
- package/src/resources/extensions/gsd/tests/milestone-merge-stash-restore.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/milestone-report-path.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/milestone-settlement.test.ts +92 -0
- package/src/resources/extensions/gsd/tests/milestone-transition-state-rebuild.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/notifications.test.ts +64 -9
- package/src/resources/extensions/gsd/tests/parallel-skill-prompt-integration.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/parsers-legacy-importers.test.ts +5 -0
- package/src/resources/extensions/gsd/tests/phases-merge-error-stops-auto.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/phases-terminal-complete-idempotent.test.ts +242 -0
- package/src/resources/extensions/gsd/tests/plan-gate-failed-doctor-heal-hint.test.ts +3 -3
- package/src/resources/extensions/gsd/tests/post-exec-retry-bypass.test.ts +63 -2
- package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +10 -2
- package/src/resources/extensions/gsd/tests/provider-errors.test.ts +2 -4
- package/src/resources/extensions/gsd/tests/remote-notification-from-desktop.test.ts +31 -81
- package/src/resources/extensions/gsd/tests/roadmap-slices.test.ts +68 -0
- package/src/resources/extensions/gsd/tests/runtime-invariant-modules.test.ts +26 -2
- package/src/resources/extensions/gsd/tests/single-writer-invariant.test.ts +170 -48
- package/src/resources/extensions/gsd/tests/skill-activation.test.ts +20 -17
- package/src/resources/extensions/gsd/tests/start-auto-detached.test.ts +7 -3
- package/src/resources/extensions/gsd/tests/stop-auto-race-null-unit.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/teardown-chdir-failure-clears-registry.test.ts +17 -0
- package/src/resources/extensions/gsd/tests/token-tool-gating.test.ts +4 -2
- package/src/resources/extensions/gsd/tests/tool-surface-readiness.test.ts +184 -10
- package/src/resources/extensions/gsd/tests/tool-unavailable-retry.test.ts +33 -0
- package/src/resources/extensions/gsd/tests/transport-gate-double-complete.test.ts +139 -0
- package/src/resources/extensions/gsd/tests/uok-audit-unified.test.ts +8 -0
- package/src/resources/extensions/gsd/tests/uok-plan-v2-wiring.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/verification-verdict.test.ts +2 -0
- package/src/resources/extensions/gsd/tests/workflow-events.test.ts +19 -0
- package/src/resources/extensions/gsd/tests/workflow-mcp-readiness-cache.test.ts +119 -0
- package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +65 -2
- package/src/resources/extensions/gsd/tests/workflow-phase-contract-matrix.test.ts +332 -0
- package/src/resources/extensions/gsd/tests/workflow-reconcile.test.ts +20 -0
- package/src/resources/extensions/gsd/tests/workflow-templates.test.ts +92 -0
- package/src/resources/extensions/gsd/tests/worktree-health-dispatch.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/worktree-project-root-degrade.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/worktree-safety-phase.test.ts +100 -0
- package/src/resources/extensions/gsd/tests/worktree-safety.test.ts +72 -0
- package/src/resources/extensions/gsd/tests/worktree-teardown-safety.test.ts +22 -0
- package/src/resources/extensions/gsd/tests/worktree.test.ts +18 -0
- package/src/resources/extensions/gsd/tool-contract.ts +38 -3
- package/src/resources/extensions/gsd/tool-surface-readiness.ts +126 -19
- package/src/resources/extensions/gsd/tools/complete-milestone.ts +3 -2
- package/src/resources/extensions/gsd/tools/complete-slice.ts +2 -2
- package/src/resources/extensions/gsd/tools/complete-task.ts +90 -2
- package/src/resources/extensions/gsd/tools/plan-slice.ts +2 -2
- package/src/resources/extensions/gsd/tools/plan-task.ts +2 -2
- package/src/resources/extensions/gsd/tools/reassess-roadmap.ts +2 -2
- package/src/resources/extensions/gsd/tools/reopen-milestone.ts +2 -2
- package/src/resources/extensions/gsd/tools/reopen-slice.ts +2 -2
- package/src/resources/extensions/gsd/tools/reopen-task.ts +2 -2
- package/src/resources/extensions/gsd/tools/replan-slice.ts +2 -2
- package/src/resources/extensions/gsd/unit-context-composer.ts +1 -1
- package/src/resources/extensions/gsd/unit-registry.ts +34 -4
- package/src/resources/extensions/gsd/verification-verdict.ts +4 -2
- package/src/resources/extensions/gsd/workflow-event-ledger.ts +131 -0
- package/src/resources/extensions/gsd/workflow-event-vocabulary.ts +59 -0
- package/src/resources/extensions/gsd/workflow-events.ts +12 -20
- package/src/resources/extensions/gsd/workflow-mcp-auto-prep.ts +2 -0
- package/src/resources/extensions/gsd/workflow-mcp-readiness-cache.ts +150 -0
- package/src/resources/extensions/gsd/workflow-reconcile.ts +29 -62
- package/src/resources/extensions/gsd/worktree-manager.ts +6 -1
- package/src/resources/extensions/gsd/worktree-safety.ts +41 -39
- package/src/resources/extensions/gsd/worktree.ts +7 -1
- package/src/resources/extensions/mcp-client/manager.ts +7 -1
- package/src/resources/skills/create-skill/SKILL.md +3 -0
- package/src/resources/skills/create-skill/references/skill-structure.md +1 -0
- package/dist/resources/skills/gsd-browser/SKILL.md +0 -41
- package/src/resources/skills/gsd-browser/SKILL.md +0 -41
- /package/dist/web/standalone/.next/static/{LDHRKiRBIVZmiuMjrL1Vy → 2T9IOdiiM3o3gZ4UbPi8E}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{LDHRKiRBIVZmiuMjrL1Vy → 2T9IOdiiM3o3gZ4UbPi8E}/_ssgManifest.js +0 -0
|
@@ -10,6 +10,9 @@ import { pathToFileURL } from "node:url";
|
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
import { WORKFLOW_TOOL_NAMES as CONTRACT_WORKFLOW_TOOL_NAMES, CANONICAL_WORKFLOW_TOOL_NAMES as CONTRACT_CANONICAL_WORKFLOW_TOOL_NAMES, WORKFLOW_TOOL_ALIAS_NAMES as CONTRACT_WORKFLOW_TOOL_ALIAS_NAMES, } from "@opengsd/contracts";
|
|
12
12
|
import { logAliasUsage } from "./alias-telemetry.js";
|
|
13
|
+
async function importBridgeModule() {
|
|
14
|
+
return importLocalModule("../../../src/resources/extensions/gsd/mcp-bridge.js");
|
|
15
|
+
}
|
|
13
16
|
let workflowToolExecutorsPromise = null;
|
|
14
17
|
let workflowExecutionQueue = Promise.resolve();
|
|
15
18
|
let workflowWriteGatePromise = null;
|
|
@@ -283,7 +286,7 @@ function getWriteGateModuleCandidates() {
|
|
|
283
286
|
warnCustomWorkflowModule("GSD_WORKFLOW_WRITE_GATE_MODULE", explicitModule);
|
|
284
287
|
candidates.push(explicitModule.startsWith("file:") ? explicitModule : toFileUrl(explicitModule));
|
|
285
288
|
}
|
|
286
|
-
candidates.push(...buildBridgeImportCandidates("../../../src/resources/extensions/gsd/
|
|
289
|
+
candidates.push(...buildBridgeImportCandidates("../../../src/resources/extensions/gsd/mcp-bridge.js")
|
|
287
290
|
.map((p) => new URL(p, import.meta.url).href));
|
|
288
291
|
return [...new Set(candidates)];
|
|
289
292
|
}
|
|
@@ -333,10 +336,27 @@ async function importLocalModule(relativePath) {
|
|
|
333
336
|
}
|
|
334
337
|
throw lastErr;
|
|
335
338
|
}
|
|
339
|
+
async function importWorkflowRuntimeModule(relativePath) {
|
|
340
|
+
const rawCandidates = import.meta.url.includes("/src/") || import.meta.url.includes("\\src\\")
|
|
341
|
+
? _buildImportCandidates(relativePath)
|
|
342
|
+
: buildBridgeImportCandidates(relativePath);
|
|
343
|
+
const candidates = rawCandidates
|
|
344
|
+
.map((p) => new URL(p, import.meta.url).href);
|
|
345
|
+
let lastErr;
|
|
346
|
+
for (const candidate of candidates) {
|
|
347
|
+
try {
|
|
348
|
+
return await import(candidate);
|
|
349
|
+
}
|
|
350
|
+
catch (err) {
|
|
351
|
+
lastErr = err;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
throw lastErr;
|
|
355
|
+
}
|
|
336
356
|
async function loadProjectPreferences(projectDir) {
|
|
337
|
-
const
|
|
357
|
+
const bridge = await importBridgeModule();
|
|
338
358
|
try {
|
|
339
|
-
return loadEffectiveGSDPreferences(projectDir).preferences;
|
|
359
|
+
return bridge.loadEffectiveGSDPreferences(projectDir).preferences;
|
|
340
360
|
}
|
|
341
361
|
catch {
|
|
342
362
|
return null;
|
|
@@ -523,8 +543,8 @@ async function runSerializedWorkflowOperation(fn) {
|
|
|
523
543
|
}
|
|
524
544
|
async function runSerializedWorkflowDbOperation(projectDir, fn) {
|
|
525
545
|
return runSerializedWorkflowOperation(async () => {
|
|
526
|
-
const
|
|
527
|
-
const dbAvailable = await ensureDbOpen(projectDir);
|
|
546
|
+
const bridge = await importBridgeModule();
|
|
547
|
+
const dbAvailable = await bridge.ensureDbOpen(projectDir);
|
|
528
548
|
if (!dbAvailable) {
|
|
529
549
|
throw new Error("GSD database is not available");
|
|
530
550
|
}
|
|
@@ -620,23 +640,22 @@ async function inferSaveGateResultScope(projectDir, prepared) {
|
|
|
620
640
|
return out;
|
|
621
641
|
if (!gateId)
|
|
622
642
|
return out;
|
|
623
|
-
const
|
|
624
|
-
if (!(await ensureDbOpen(projectDir)))
|
|
643
|
+
const bridge = await importBridgeModule();
|
|
644
|
+
if (!(await bridge.ensureDbOpen(projectDir)))
|
|
625
645
|
return out;
|
|
626
|
-
|
|
627
|
-
if (!db.getMilestoneSlices || !db.getPendingGates || !db.getGateResults)
|
|
646
|
+
if (!bridge.getMilestoneSlices || !bridge.getPendingGates || !bridge.getGateResults)
|
|
628
647
|
return out;
|
|
629
648
|
const milestoneFilter = stringValue(out.milestoneId);
|
|
630
649
|
const sliceFilter = stringValue(out.sliceId);
|
|
631
650
|
const milestones = milestoneFilter
|
|
632
651
|
? [{ id: milestoneFilter }]
|
|
633
|
-
: (
|
|
652
|
+
: (bridge.getAllMilestones?.() ?? []).filter((milestone) => stringValue(milestone.id));
|
|
634
653
|
const candidates = [];
|
|
635
654
|
for (const milestone of milestones) {
|
|
636
655
|
const milestoneId = stringValue(milestone.id);
|
|
637
656
|
if (!milestoneId)
|
|
638
657
|
continue;
|
|
639
|
-
const slices =
|
|
658
|
+
const slices = bridge.getMilestoneSlices(milestoneId)
|
|
640
659
|
.filter((slice) => {
|
|
641
660
|
const sliceId = stringValue(slice.id);
|
|
642
661
|
return sliceId && (!sliceFilter || sliceId === sliceFilter);
|
|
@@ -646,8 +665,8 @@ async function inferSaveGateResultScope(projectDir, prepared) {
|
|
|
646
665
|
if (!sliceId)
|
|
647
666
|
continue;
|
|
648
667
|
const rows = [
|
|
649
|
-
...
|
|
650
|
-
...
|
|
668
|
+
...bridge.getPendingGates(milestoneId, sliceId),
|
|
669
|
+
...bridge.getGateResults(milestoneId, sliceId),
|
|
651
670
|
];
|
|
652
671
|
for (const row of rows) {
|
|
653
672
|
if (stringValue(row.gate_id)?.toUpperCase() !== gateId)
|
|
@@ -682,8 +701,8 @@ async function handleSaveGateResult(projectDir, args) {
|
|
|
682
701
|
}
|
|
683
702
|
async function ensureMilestoneDbRow(milestoneId) {
|
|
684
703
|
try {
|
|
685
|
-
const
|
|
686
|
-
insertMilestone({ id: milestoneId, status: "queued" });
|
|
704
|
+
const bridge = await importBridgeModule();
|
|
705
|
+
bridge.insertMilestone({ id: milestoneId, status: "queued" });
|
|
687
706
|
}
|
|
688
707
|
catch {
|
|
689
708
|
// Ignore pre-existing rows or transient DB availability issues.
|
|
@@ -691,8 +710,8 @@ async function ensureMilestoneDbRow(milestoneId) {
|
|
|
691
710
|
}
|
|
692
711
|
async function findDatabaseMilestoneIds() {
|
|
693
712
|
try {
|
|
694
|
-
const
|
|
695
|
-
return (getAllMilestones?.() ?? [])
|
|
713
|
+
const bridge = await importBridgeModule();
|
|
714
|
+
return (bridge.getAllMilestones?.() ?? [])
|
|
696
715
|
.map((milestone) => {
|
|
697
716
|
const id = milestone?.id;
|
|
698
717
|
return typeof id === "string" ? id : null;
|
|
@@ -712,7 +731,8 @@ async function findDatabaseMilestoneIds() {
|
|
|
712
731
|
* from an earlier call to this same tool.
|
|
713
732
|
*/
|
|
714
733
|
async function generateOrReuseMilestoneId(projectDir) {
|
|
715
|
-
const
|
|
734
|
+
const bridge = await importBridgeModule();
|
|
735
|
+
const { claimReservedId, findMilestoneIds, getReservedMilestoneIds, nextMilestoneId, milestoneIdSort, } = bridge;
|
|
716
736
|
const reserved = claimReservedId();
|
|
717
737
|
if (reserved) {
|
|
718
738
|
await ensureMilestoneDbRow(reserved);
|
|
@@ -726,7 +746,7 @@ async function generateOrReuseMilestoneId(projectDir) {
|
|
|
726
746
|
]),
|
|
727
747
|
];
|
|
728
748
|
// Attempt ghost-ID reuse before falling back to max+1.
|
|
729
|
-
const { isReusableGhostMilestone } =
|
|
749
|
+
const { isReusableGhostMilestone } = bridge;
|
|
730
750
|
const sorted = [...allIds].sort(milestoneIdSort);
|
|
731
751
|
for (const candidate of sorted) {
|
|
732
752
|
if (isReusableGhostMilestone(projectDir, candidate)) {
|
|
@@ -734,7 +754,7 @@ async function generateOrReuseMilestoneId(projectDir) {
|
|
|
734
754
|
return candidate;
|
|
735
755
|
}
|
|
736
756
|
}
|
|
737
|
-
const prefsMod = await
|
|
757
|
+
const prefsMod = await importBridgeModule().catch(() => null);
|
|
738
758
|
// Graceful degradation: a corrupt preferences file should not crash
|
|
739
759
|
// milestone-id generation. Fall back to non-unique IDs if anything
|
|
740
760
|
// throws here — matches the pre-fix behavior for missing prefs.
|
|
@@ -1405,8 +1425,8 @@ export function registerWorkflowTools(realServer, options = {}) {
|
|
|
1405
1425
|
const { projectDir, ...params } = parsed;
|
|
1406
1426
|
await enforceWorkflowWriteGate("gsd_decision_save", projectDir);
|
|
1407
1427
|
const result = await runSerializedWorkflowDbOperation(projectDir, async () => {
|
|
1408
|
-
const
|
|
1409
|
-
return saveDecisionToDb(params, projectDir);
|
|
1428
|
+
const bridge = await importBridgeModule();
|
|
1429
|
+
return bridge.saveDecisionToDb(params, projectDir);
|
|
1410
1430
|
});
|
|
1411
1431
|
return { content: [{ type: "text", text: `Saved decision ${result.id}` }] };
|
|
1412
1432
|
});
|
|
@@ -1416,8 +1436,8 @@ export function registerWorkflowTools(realServer, options = {}) {
|
|
|
1416
1436
|
const { projectDir, ...params } = parsed;
|
|
1417
1437
|
await enforceWorkflowWriteGate("gsd_decision_save", projectDir);
|
|
1418
1438
|
const result = await runSerializedWorkflowDbOperation(projectDir, async () => {
|
|
1419
|
-
const
|
|
1420
|
-
return saveDecisionToDb(params, projectDir);
|
|
1439
|
+
const bridge = await importBridgeModule();
|
|
1440
|
+
return bridge.saveDecisionToDb(params, projectDir);
|
|
1421
1441
|
});
|
|
1422
1442
|
return { content: [{ type: "text", text: `Saved decision ${result.id}` }] };
|
|
1423
1443
|
});
|
|
@@ -1426,8 +1446,8 @@ export function registerWorkflowTools(realServer, options = {}) {
|
|
|
1426
1446
|
const { projectDir, id, ...updates } = parsed;
|
|
1427
1447
|
await enforceWorkflowWriteGate("gsd_requirement_update", projectDir);
|
|
1428
1448
|
await runSerializedWorkflowDbOperation(projectDir, async () => {
|
|
1429
|
-
const
|
|
1430
|
-
return updateRequirementInDb(id, updates, projectDir);
|
|
1449
|
+
const bridge = await importBridgeModule();
|
|
1450
|
+
return bridge.updateRequirementInDb(id, updates, projectDir);
|
|
1431
1451
|
});
|
|
1432
1452
|
return { content: [{ type: "text", text: `Updated requirement ${id}` }] };
|
|
1433
1453
|
});
|
|
@@ -1437,8 +1457,8 @@ export function registerWorkflowTools(realServer, options = {}) {
|
|
|
1437
1457
|
const { projectDir, id, ...updates } = parsed;
|
|
1438
1458
|
await enforceWorkflowWriteGate("gsd_requirement_update", projectDir);
|
|
1439
1459
|
await runSerializedWorkflowDbOperation(projectDir, async () => {
|
|
1440
|
-
const
|
|
1441
|
-
return updateRequirementInDb(id, updates, projectDir);
|
|
1460
|
+
const bridge = await importBridgeModule();
|
|
1461
|
+
return bridge.updateRequirementInDb(id, updates, projectDir);
|
|
1442
1462
|
});
|
|
1443
1463
|
return { content: [{ type: "text", text: `Updated requirement ${id}` }] };
|
|
1444
1464
|
});
|
|
@@ -1447,8 +1467,8 @@ export function registerWorkflowTools(realServer, options = {}) {
|
|
|
1447
1467
|
const { projectDir, ...params } = parsed;
|
|
1448
1468
|
await enforceWorkflowWriteGate("gsd_requirement_save", projectDir);
|
|
1449
1469
|
const result = await runSerializedWorkflowDbOperation(projectDir, async () => {
|
|
1450
|
-
const
|
|
1451
|
-
return saveRequirementToDb(params, projectDir);
|
|
1470
|
+
const bridge = await importBridgeModule();
|
|
1471
|
+
return bridge.saveRequirementToDb(params, projectDir);
|
|
1452
1472
|
});
|
|
1453
1473
|
return { content: [{ type: "text", text: `Saved requirement ${result.id}` }] };
|
|
1454
1474
|
});
|
|
@@ -1458,8 +1478,8 @@ export function registerWorkflowTools(realServer, options = {}) {
|
|
|
1458
1478
|
const { projectDir, ...params } = parsed;
|
|
1459
1479
|
await enforceWorkflowWriteGate("gsd_requirement_save", projectDir);
|
|
1460
1480
|
const result = await runSerializedWorkflowDbOperation(projectDir, async () => {
|
|
1461
|
-
const
|
|
1462
|
-
return saveRequirementToDb(params, projectDir);
|
|
1481
|
+
const bridge = await importBridgeModule();
|
|
1482
|
+
return bridge.saveRequirementToDb(params, projectDir);
|
|
1463
1483
|
});
|
|
1464
1484
|
return { content: [{ type: "text", text: `Saved requirement ${result.id}` }] };
|
|
1465
1485
|
});
|
|
@@ -1560,14 +1580,13 @@ export function registerWorkflowTools(realServer, options = {}) {
|
|
|
1560
1580
|
await enforceWorkflowWriteGate("gsd_skip_slice", projectDir, milestoneId);
|
|
1561
1581
|
await runSerializedWorkflowDbOperation(projectDir, async () => {
|
|
1562
1582
|
const { handleSkipSlice } = await importLocalModule("../../../src/resources/extensions/gsd/tools/skip-slice.js");
|
|
1563
|
-
const
|
|
1564
|
-
const { rebuildState } = await importLocalModule("../../../src/resources/extensions/gsd/doctor.js");
|
|
1583
|
+
const bridge = await importBridgeModule();
|
|
1565
1584
|
const result = handleSkipSlice({ milestoneId, sliceId, reason });
|
|
1566
1585
|
if (result.error) {
|
|
1567
1586
|
throw new Error(result.error);
|
|
1568
1587
|
}
|
|
1569
|
-
invalidateStateCache();
|
|
1570
|
-
await rebuildState(projectDir);
|
|
1588
|
+
bridge.invalidateStateCache();
|
|
1589
|
+
await bridge.rebuildState(projectDir);
|
|
1571
1590
|
});
|
|
1572
1591
|
return {
|
|
1573
1592
|
content: [{ type: "text", text: `Skipped slice ${sliceId} (${milestoneId}). Reason: ${reason ?? "User-directed skip"}.` }],
|
|
@@ -1695,8 +1714,8 @@ export function registerWorkflowTools(realServer, options = {}) {
|
|
|
1695
1714
|
server.tool("gsd_checkpoint_db", "Flush the SQLite WAL into gsd.db so git add stages the current GSD database state.", checkpointDbParams, async (args) => {
|
|
1696
1715
|
const { projectDir } = parseWorkflowArgs(checkpointDbSchema, args);
|
|
1697
1716
|
await runSerializedWorkflowDbOperation(projectDir, async () => {
|
|
1698
|
-
const
|
|
1699
|
-
checkpointDatabase();
|
|
1717
|
+
const bridge = await importBridgeModule();
|
|
1718
|
+
bridge.checkpointDatabase();
|
|
1700
1719
|
});
|
|
1701
1720
|
return {
|
|
1702
1721
|
content: [{
|
|
@@ -1708,8 +1727,8 @@ export function registerWorkflowTools(realServer, options = {}) {
|
|
|
1708
1727
|
});
|
|
1709
1728
|
server.tool("gsd_journal_query", "Query the structured event journal for auto-mode iterations.", journalQueryParams, async (args) => {
|
|
1710
1729
|
const { projectDir, limit, ...filters } = parseWorkflowArgs(journalQuerySchema, args);
|
|
1711
|
-
const
|
|
1712
|
-
const entries = queryJournal(projectDir, filters).slice(0, limit ?? 100);
|
|
1730
|
+
const bridge = await importBridgeModule();
|
|
1731
|
+
const entries = bridge.queryJournal(projectDir, filters).slice(0, limit ?? 100);
|
|
1713
1732
|
if (entries.length === 0) {
|
|
1714
1733
|
return { content: [{ type: "text", text: "No matching journal entries found." }] };
|
|
1715
1734
|
}
|
|
@@ -1788,7 +1807,7 @@ export function registerWorkflowTools(realServer, options = {}) {
|
|
|
1788
1807
|
const { projectDir, ...params } = parseWorkflowArgs(captureThoughtSchema, args);
|
|
1789
1808
|
await enforceWorkflowWriteGate("gsd_capture_thought", projectDir);
|
|
1790
1809
|
return runSerializedWorkflowDbOperation(projectDir, async () => {
|
|
1791
|
-
const { executeMemoryCapture } = await
|
|
1810
|
+
const { executeMemoryCapture } = await importWorkflowRuntimeModule("../../../src/resources/extensions/gsd/tools/memory-tools.js");
|
|
1792
1811
|
return executeMemoryCapture(params);
|
|
1793
1812
|
});
|
|
1794
1813
|
});
|
|
@@ -1817,7 +1836,7 @@ export function registerWorkflowTools(realServer, options = {}) {
|
|
|
1817
1836
|
server.tool("gsd_memory_query", "Search the GSD memory store by keyword. Returns ranked memories with id, category, content, confidence, scope, and tags. Mirrors the in-process memory_query tool for external MCP clients.", memoryQueryParams, async (args) => {
|
|
1818
1837
|
const { projectDir, ...params } = parseWorkflowArgs(memoryQuerySchema, args);
|
|
1819
1838
|
return runSerializedWorkflowDbOperation(projectDir, async () => {
|
|
1820
|
-
const { executeMemoryQuery } = await
|
|
1839
|
+
const { executeMemoryQuery } = await importWorkflowRuntimeModule("../../../src/resources/extensions/gsd/tools/memory-tools.js");
|
|
1821
1840
|
return executeMemoryQuery(params);
|
|
1822
1841
|
});
|
|
1823
1842
|
});
|
|
@@ -1838,7 +1857,7 @@ export function registerWorkflowTools(realServer, options = {}) {
|
|
|
1838
1857
|
server.tool("gsd_memory_graph", "Inspect the relationship graph between memories. mode=query walks edges from a given memoryId. mode=build is a placeholder reserved for future graph rebuilds. Distinct from gsd_graph (project knowledge graph) — see ADR-013.", memoryGraphParams, async (args) => {
|
|
1839
1858
|
const { projectDir, ...params } = parseWorkflowArgs(memoryGraphSchema, args);
|
|
1840
1859
|
return runSerializedWorkflowDbOperation(projectDir, async () => {
|
|
1841
|
-
const { executeGsdGraph } = await
|
|
1860
|
+
const { executeGsdGraph } = await importWorkflowRuntimeModule("../../../src/resources/extensions/gsd/tools/memory-tools.js");
|
|
1842
1861
|
return executeGsdGraph(params);
|
|
1843
1862
|
});
|
|
1844
1863
|
});
|