gsd-pi 2.79.0 → 2.80.0-dev.0aaa4fc17
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 +94 -47
- package/dist/loader.js +0 -0
- package/dist/resources/.managed-resources-content-hash +1 -1
- package/dist/resources/GSD-WORKFLOW.md +2 -2
- package/dist/resources/extensions/github-sync/templates.js +90 -74
- package/dist/resources/extensions/gsd/auto/contracts.js +1 -0
- package/dist/resources/extensions/gsd/auto/custom-verify-retry-store.js +53 -0
- package/dist/resources/extensions/gsd/auto/loop.js +394 -520
- package/dist/resources/extensions/gsd/auto/orchestrator.js +146 -0
- package/dist/resources/extensions/gsd/auto/phases.js +98 -37
- package/dist/resources/extensions/gsd/auto/run-unit.js +19 -15
- package/dist/resources/extensions/gsd/auto/session.js +8 -0
- package/dist/resources/extensions/gsd/auto/workflow-custom-engine-dispatch-outcome.js +12 -0
- package/dist/resources/extensions/gsd/auto/workflow-custom-engine-iteration.js +24 -0
- package/dist/resources/extensions/gsd/auto/workflow-custom-engine-reconcile-outcome.js +33 -0
- package/dist/resources/extensions/gsd/auto/workflow-custom-engine-reconcile.js +26 -0
- package/dist/resources/extensions/gsd/auto/workflow-custom-engine-retry.js +49 -0
- package/dist/resources/extensions/gsd/auto/workflow-custom-engine-verify-outcome.js +25 -0
- package/dist/resources/extensions/gsd/auto/workflow-dispatch-claim.js +48 -0
- package/dist/resources/extensions/gsd/auto/workflow-dispatch-ledger.js +26 -0
- package/dist/resources/extensions/gsd/auto/workflow-iteration-completion.js +10 -0
- package/dist/resources/extensions/gsd/auto/workflow-journal-reporter.js +16 -0
- package/dist/resources/extensions/gsd/auto/workflow-kernel.js +263 -0
- package/dist/resources/extensions/gsd/auto/workflow-memory-pressure.js +36 -0
- package/dist/resources/extensions/gsd/auto/workflow-phase-reporter.js +9 -0
- package/dist/resources/extensions/gsd/auto/workflow-session-lock.js +35 -0
- package/dist/resources/extensions/gsd/auto/workflow-sidecar-iteration.js +24 -0
- package/dist/resources/extensions/gsd/auto/workflow-sidecar-queue.js +26 -0
- package/dist/resources/extensions/gsd/auto/workflow-turn-reporter.js +36 -0
- package/dist/resources/extensions/gsd/auto/workflow-unit-dispatch.js +44 -0
- package/dist/resources/extensions/gsd/auto/workflow-worker-heartbeat.js +15 -0
- package/dist/resources/extensions/gsd/auto-artifact-paths.js +2 -2
- package/dist/resources/extensions/gsd/auto-dashboard.js +54 -15
- package/dist/resources/extensions/gsd/auto-dispatch.js +12 -0
- package/dist/resources/extensions/gsd/auto-post-unit.js +10 -10
- package/dist/resources/extensions/gsd/auto-prompts.js +331 -33
- package/dist/resources/extensions/gsd/auto-recovery.js +216 -62
- package/dist/resources/extensions/gsd/auto-runtime-state.js +4 -0
- package/dist/resources/extensions/gsd/auto-start.js +4 -4
- package/dist/resources/extensions/gsd/auto-verification.js +2 -11
- package/dist/resources/extensions/gsd/auto-worktree.js +87 -38
- package/dist/resources/extensions/gsd/auto.js +168 -3
- package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +24 -2
- package/dist/resources/extensions/gsd/bootstrap/db-tools.js +10 -0
- package/dist/resources/extensions/gsd/bootstrap/exec-tools.js +2 -2
- package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +63 -51
- package/dist/resources/extensions/gsd/bootstrap/write-gate.js +137 -9
- package/dist/resources/extensions/gsd/clean-root-preflight.js +42 -4
- package/dist/resources/extensions/gsd/commands/context.js +1 -1
- package/dist/resources/extensions/gsd/commands/dispatcher.js +5 -0
- package/dist/resources/extensions/gsd/commands-extract-learnings.js +17 -12
- package/dist/resources/extensions/gsd/commands-ship.js +23 -46
- package/dist/resources/extensions/gsd/commands-workflow-templates.js +12 -7
- package/dist/resources/extensions/gsd/component-loader.js +5 -11
- package/dist/resources/extensions/gsd/crash-recovery.js +56 -10
- package/dist/resources/extensions/gsd/custom-workflow-engine.js +25 -1
- package/dist/resources/extensions/gsd/db-adapter.js +47 -0
- package/dist/resources/extensions/gsd/db-base-schema.js +351 -0
- package/dist/resources/extensions/gsd/db-connection-cache.js +31 -0
- package/dist/resources/extensions/gsd/db-coordination-schema.js +104 -0
- package/dist/resources/extensions/gsd/db-decision-requirement-rows.js +71 -0
- package/dist/resources/extensions/gsd/db-gate-rows.js +16 -0
- package/dist/resources/extensions/gsd/db-lightweight-query-rows.js +29 -0
- package/dist/resources/extensions/gsd/db-memory-fts-schema.js +56 -0
- package/dist/resources/extensions/gsd/db-migration-backup.js +22 -0
- package/dist/resources/extensions/gsd/db-migration-steps.js +410 -0
- package/dist/resources/extensions/gsd/db-milestone-artifact-rows.js +35 -0
- package/dist/resources/extensions/gsd/db-open-state.js +32 -0
- package/dist/resources/extensions/gsd/db-provider.js +108 -0
- package/dist/resources/extensions/gsd/db-runtime-kv-schema.js +27 -0
- package/dist/resources/extensions/gsd/db-schema-metadata.js +23 -0
- package/dist/resources/extensions/gsd/db-task-slice-rows.js +86 -0
- package/dist/resources/extensions/gsd/db-transaction.js +63 -0
- package/dist/resources/extensions/gsd/db-verification-evidence-rows.js +3 -0
- package/dist/resources/extensions/gsd/db-verification-evidence-schema.js +19 -0
- package/dist/resources/extensions/gsd/detection.js +106 -0
- package/dist/resources/extensions/gsd/escalation.js +2 -0
- package/dist/resources/extensions/gsd/graph.js +9 -3
- package/dist/resources/extensions/gsd/gsd-db.js +316 -1520
- package/dist/resources/extensions/gsd/guided-flow.js +103 -12
- package/dist/resources/extensions/gsd/legacy-telemetry.js +70 -0
- package/dist/resources/extensions/gsd/markdown-renderer.js +2 -0
- package/dist/resources/extensions/gsd/migrate/command.js +40 -1
- package/dist/resources/extensions/gsd/migration-auto-check.js +87 -0
- package/dist/resources/extensions/gsd/model-router.js +9 -6
- package/dist/resources/extensions/gsd/notification-widget.js +21 -3
- package/dist/resources/extensions/gsd/paths.js +5 -1
- package/dist/resources/extensions/gsd/planning-path-scope.js +26 -0
- package/dist/resources/extensions/gsd/post-execution-checks.js +27 -6
- package/dist/resources/extensions/gsd/pr-evidence.js +117 -0
- package/dist/resources/extensions/gsd/pre-execution-checks.js +2 -0
- package/dist/resources/extensions/gsd/preferences-types.js +20 -2
- package/dist/resources/extensions/gsd/preferences-validation.js +3 -3
- package/dist/resources/extensions/gsd/process-task-path.js +61 -0
- package/dist/resources/extensions/gsd/prompt-loader.js +9 -5
- package/dist/resources/extensions/gsd/prompts/complete-milestone.md +32 -31
- package/dist/resources/extensions/gsd/prompts/complete-slice.md +23 -34
- package/dist/resources/extensions/gsd/prompts/discuss-headless.md +50 -96
- package/dist/resources/extensions/gsd/prompts/discuss.md +81 -181
- package/dist/resources/extensions/gsd/prompts/execute-task.md +40 -67
- package/dist/resources/extensions/gsd/prompts/forensics.md +41 -84
- package/dist/resources/extensions/gsd/prompts/guided-discuss-milestone.md +29 -39
- package/dist/resources/extensions/gsd/prompts/guided-discuss-project.md +30 -65
- package/dist/resources/extensions/gsd/prompts/guided-discuss-requirements.md +25 -52
- package/dist/resources/extensions/gsd/prompts/guided-discuss-slice.md +36 -36
- package/dist/resources/extensions/gsd/prompts/guided-research-project.md +20 -38
- package/dist/resources/extensions/gsd/prompts/plan-milestone.md +47 -59
- package/dist/resources/extensions/gsd/prompts/plan-slice.md +25 -87
- package/dist/resources/extensions/gsd/prompts/queue.md +46 -53
- package/dist/resources/extensions/gsd/prompts/refine-slice.md +23 -23
- package/dist/resources/extensions/gsd/prompts/research-slice.md +23 -23
- package/dist/resources/extensions/gsd/prompts/rethink.md +10 -10
- package/dist/resources/extensions/gsd/prompts/system.md +65 -107
- package/dist/resources/extensions/gsd/prompts/triage-captures.md +15 -15
- package/dist/resources/extensions/gsd/prompts/validate-milestone.md +24 -24
- package/dist/resources/extensions/gsd/prompts/worktree-merge.md +35 -35
- package/dist/resources/extensions/gsd/safety/evidence-collector.js +10 -2
- package/dist/resources/extensions/gsd/state.js +4 -0
- package/dist/resources/extensions/gsd/tools/complete-milestone.js +14 -9
- package/dist/resources/extensions/gsd/tools/complete-task.js +2 -0
- package/dist/resources/extensions/gsd/tools/plan-slice.js +9 -0
- package/dist/resources/extensions/gsd/tools/plan-task.js +9 -0
- package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +88 -3
- package/dist/resources/extensions/gsd/unit-context-composer.js +32 -0
- package/dist/resources/extensions/gsd/unit-context-manifest.js +21 -0
- package/dist/resources/extensions/gsd/unit-runtime.js +11 -0
- package/dist/resources/extensions/gsd/uok/audit.js +23 -9
- package/dist/resources/extensions/gsd/uok/contracts.js +69 -1
- package/dist/resources/extensions/gsd/uok/dispatch-envelope.js +3 -0
- package/dist/resources/extensions/gsd/uok/kernel.js +8 -3
- package/dist/resources/extensions/gsd/uok/loop-adapter.js +48 -33
- package/dist/resources/extensions/gsd/uok/plan-v2.js +2 -0
- package/dist/resources/extensions/gsd/uok/timeline.js +125 -0
- package/dist/resources/extensions/gsd/workflow-logger.js +13 -13
- package/dist/resources/extensions/gsd/workflow-manifest.js +2 -0
- package/dist/resources/extensions/gsd/workflow-projections.js +2 -0
- package/dist/resources/extensions/gsd/workflow-templates.js +9 -0
- package/dist/resources/extensions/gsd/working-output-messages.js +64 -0
- package/dist/resources/extensions/gsd/worktree-manager.js +16 -14
- package/dist/resources/extensions/shared/gsd-phase-state.js +45 -3
- package/dist/resources/extensions/shared/interview-ui.js +15 -4
- 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 +12 -12
- 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 +4 -4
- 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 +3 -3
- package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- 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 +1 -1
- package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/input/route_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 +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/sessions/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/index.html +1 -1
- package/dist/web/standalone/.next/server/app/index.rsc +4 -4
- 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 +4 -4
- 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 +3 -3
- package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/page.js +2 -2
- package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app-paths-manifest.json +12 -12
- package/dist/web/standalone/.next/server/chunks/167.js +2 -0
- 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-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/{8336.6f6f30e410419aff.js → 8336.631939fb583761fa.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/app/page-fab3ebb85b006001.js +1 -0
- package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
- package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
- package/dist/web/standalone/.next/static/chunks/{webpack-d82dbee6356c1733.js → webpack-0481f1221120a7c6.js} +1 -1
- 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/package.json +1 -0
- package/dist/web/standalone/server.js +1 -1
- package/package.json +18 -7
- package/packages/contracts/dist/index.d.ts +3 -0
- package/packages/contracts/dist/index.d.ts.map +1 -0
- package/packages/contracts/dist/index.js +5 -0
- package/packages/contracts/dist/index.js.map +1 -0
- package/packages/contracts/dist/rpc.d.ts +549 -0
- package/packages/contracts/dist/rpc.d.ts.map +1 -0
- package/packages/contracts/dist/rpc.js +53 -0
- package/packages/contracts/dist/rpc.js.map +1 -0
- package/packages/contracts/dist/rpc.test.d.ts +2 -0
- package/packages/contracts/dist/rpc.test.d.ts.map +1 -0
- package/packages/contracts/dist/rpc.test.js +47 -0
- package/packages/contracts/dist/rpc.test.js.map +1 -0
- package/packages/contracts/dist/workflow.d.ts +180 -0
- package/packages/contracts/dist/workflow.d.ts.map +1 -0
- package/packages/contracts/dist/workflow.js +201 -0
- package/packages/contracts/dist/workflow.js.map +1 -0
- package/packages/contracts/package.json +39 -0
- package/packages/contracts/src/index.ts +5 -0
- package/packages/contracts/src/rpc.test.ts +72 -0
- package/packages/contracts/src/rpc.ts +286 -0
- package/packages/contracts/src/workflow.ts +213 -0
- package/packages/contracts/tsconfig.json +25 -0
- package/packages/daemon/package.json +3 -2
- package/packages/daemon/src/event-bridge.test.ts +2 -1
- package/packages/daemon/src/event-bridge.ts +1 -1
- package/packages/daemon/src/event-formatter.test.ts +1 -2
- package/packages/daemon/src/event-formatter.ts +1 -2
- package/packages/daemon/src/session-manager.ts +2 -2
- package/packages/daemon/src/types.ts +3 -18
- package/packages/mcp-server/dist/server.d.ts +13 -0
- package/packages/mcp-server/dist/server.d.ts.map +1 -1
- package/packages/mcp-server/dist/server.js +77 -0
- package/packages/mcp-server/dist/server.js.map +1 -1
- package/packages/mcp-server/dist/session-manager.js +1 -1
- package/packages/mcp-server/dist/session-manager.js.map +1 -1
- package/packages/mcp-server/dist/types.d.ts +3 -11
- package/packages/mcp-server/dist/types.d.ts.map +1 -1
- package/packages/mcp-server/dist/types.js.map +1 -1
- package/packages/mcp-server/dist/workflow-tools.d.ts +1 -1
- package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
- package/packages/mcp-server/dist/workflow-tools.js +52 -37
- package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
- package/packages/mcp-server/package.json +3 -2
- package/packages/mcp-server/src/mcp-server.test.ts +138 -0
- package/packages/mcp-server/src/server.ts +99 -1
- package/packages/mcp-server/src/session-manager.ts +2 -2
- package/packages/mcp-server/src/types.ts +7 -18
- package/packages/mcp-server/src/workflow-tools.test.ts +129 -2
- package/packages/mcp-server/src/workflow-tools.ts +80 -37
- package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
- package/packages/native/package.json +1 -1
- package/packages/pi-agent-core/package.json +1 -1
- package/packages/pi-ai/dist/models/fake-model.d.ts +12 -0
- package/packages/pi-ai/dist/models/fake-model.d.ts.map +1 -0
- package/packages/pi-ai/dist/models/fake-model.js +27 -0
- package/packages/pi-ai/dist/models/fake-model.js.map +1 -0
- package/packages/pi-ai/dist/models/index.d.ts.map +1 -1
- package/packages/pi-ai/dist/models/index.js +8 -0
- package/packages/pi-ai/dist/models/index.js.map +1 -1
- package/packages/pi-ai/dist/providers/fake.d.ts +42 -0
- package/packages/pi-ai/dist/providers/fake.d.ts.map +1 -0
- package/packages/pi-ai/dist/providers/fake.js +319 -0
- package/packages/pi-ai/dist/providers/fake.js.map +1 -0
- package/packages/pi-ai/dist/providers/register-builtins.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/register-builtins.js +24 -0
- package/packages/pi-ai/dist/providers/register-builtins.js.map +1 -1
- package/packages/pi-ai/package.json +1 -1
- package/packages/pi-ai/src/models/fake-model.ts +30 -0
- package/packages/pi-ai/src/models/index.ts +9 -0
- package/packages/pi-ai/src/providers/fake.ts +376 -0
- package/packages/pi-ai/src/providers/register-builtins.ts +23 -0
- package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
- package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +74 -0
- package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/db-snapshot.d.ts +15 -0
- package/packages/pi-coding-agent/dist/core/db-snapshot.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/db-snapshot.js +66 -0
- package/packages/pi-coding-agent/dist/core/db-snapshot.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/db-snapshot.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/core/db-snapshot.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/db-snapshot.test.js +24 -0
- package/packages/pi-coding-agent/dist/core/db-snapshot.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +2 -0
- package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.js +14 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.test.js +97 -0
- package/packages/pi-coding-agent/dist/core/extensions/runner.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/model-registry.js +5 -0
- package/packages/pi-coding-agent/dist/core/model-registry.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +4 -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 +8 -0
- package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/slash-commands.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/slash-commands.js +1 -0
- package/packages/pi-coding-agent/dist/core/slash-commands.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.js +6 -4
- package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +67 -14
- package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.d.ts +26 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.js +112 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.test.js +51 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js +10 -9
- package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +3 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +11 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.js +27 -6
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +16 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +112 -18
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +60 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.js +40 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.test.js +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.d.ts +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +12 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +54 -10
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js +20 -0
- package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.test.js +79 -0
- package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts +12 -0
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js +13 -0
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +1 -1
- 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 +18 -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.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +36 -27
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.d.ts +11 -0
- package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.js +18 -0
- package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.test.js +48 -0
- package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts +1 -512
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.js +3 -7
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.js.map +1 -1
- package/packages/pi-coding-agent/dist/resources/extensions/memory/storage-safety-guard.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/resources/extensions/memory/storage-safety-guard.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/resources/extensions/memory/storage-safety-guard.test.js +10 -0
- package/packages/pi-coding-agent/dist/resources/extensions/memory/storage-safety-guard.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/resources/extensions/memory/storage.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/resources/extensions/memory/storage.js +3 -2
- package/packages/pi-coding-agent/dist/resources/extensions/memory/storage.js.map +1 -1
- package/packages/pi-coding-agent/package.json +2 -1
- package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +87 -0
- package/packages/pi-coding-agent/src/core/db-snapshot.test.ts +32 -0
- package/packages/pi-coding-agent/src/core/db-snapshot.ts +66 -0
- package/packages/pi-coding-agent/src/core/extensions/runner.test.ts +108 -0
- package/packages/pi-coding-agent/src/core/extensions/runner.ts +16 -1
- package/packages/pi-coding-agent/src/core/model-registry.ts +4 -0
- package/packages/pi-coding-agent/src/core/settings-manager.ts +12 -0
- package/packages/pi-coding-agent/src/core/slash-commands.ts +1 -0
- package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.ts +7 -5
- package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +100 -16
- package/packages/pi-coding-agent/src/modes/interactive/components/adaptive-layout.test.ts +59 -0
- package/packages/pi-coding-agent/src/modes/interactive/components/adaptive-layout.ts +160 -0
- package/packages/pi-coding-agent/src/modes/interactive/components/assistant-message.ts +1 -0
- package/packages/pi-coding-agent/src/modes/interactive/components/chat-frame.ts +10 -9
- package/packages/pi-coding-agent/src/modes/interactive/components/settings-selector.ts +15 -0
- package/packages/pi-coding-agent/src/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.ts +41 -9
- package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +124 -18
- package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.test.ts +43 -1
- package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +75 -1
- package/packages/pi-coding-agent/src/modes/interactive/controllers/input-controller.test.ts +1 -0
- package/packages/pi-coding-agent/src/modes/interactive/interactive-mode-state.ts +1 -1
- package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +75 -9
- package/packages/pi-coding-agent/src/modes/interactive/slash-command-handlers.test.ts +95 -0
- package/packages/pi-coding-agent/src/modes/interactive/slash-command-handlers.ts +24 -1
- package/packages/pi-coding-agent/src/modes/interactive/theme/theme-schema.ts +13 -0
- package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +32 -2
- package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +36 -27
- package/packages/pi-coding-agent/src/modes/interactive/tui-mode.test.ts +65 -0
- package/packages/pi-coding-agent/src/modes/interactive/tui-mode.ts +29 -0
- package/packages/pi-coding-agent/src/modes/rpc/rpc-types.ts +3 -336
- package/packages/pi-coding-agent/src/resources/extensions/memory/storage-safety-guard.test.ts +14 -0
- package/packages/pi-coding-agent/src/resources/extensions/memory/storage.ts +3 -2
- package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
- package/packages/pi-tui/dist/__tests__/style.test.d.ts +2 -0
- package/packages/pi-tui/dist/__tests__/style.test.d.ts.map +1 -0
- package/packages/pi-tui/dist/__tests__/style.test.js +63 -0
- package/packages/pi-tui/dist/__tests__/style.test.js.map +1 -0
- package/packages/pi-tui/dist/__tests__/tui.test.js +24 -3
- package/packages/pi-tui/dist/__tests__/tui.test.js.map +1 -1
- package/packages/pi-tui/dist/index.d.ts +1 -0
- package/packages/pi-tui/dist/index.d.ts.map +1 -1
- package/packages/pi-tui/dist/index.js +2 -0
- package/packages/pi-tui/dist/index.js.map +1 -1
- package/packages/pi-tui/dist/style.d.ts +41 -0
- package/packages/pi-tui/dist/style.d.ts.map +1 -0
- package/packages/pi-tui/dist/style.js +158 -0
- package/packages/pi-tui/dist/style.js.map +1 -0
- package/packages/pi-tui/dist/tui.d.ts.map +1 -1
- package/packages/pi-tui/dist/tui.js +1 -0
- package/packages/pi-tui/dist/tui.js.map +1 -1
- package/packages/pi-tui/package.json +1 -1
- package/packages/pi-tui/src/__tests__/style.test.ts +76 -0
- package/packages/pi-tui/src/__tests__/tui.test.ts +29 -3
- package/packages/pi-tui/src/index.ts +9 -0
- package/packages/pi-tui/src/style.ts +225 -0
- package/packages/pi-tui/src/tui.ts +1 -0
- package/packages/pi-tui/tsconfig.tsbuildinfo +1 -1
- package/packages/rpc-client/README.md +3 -3
- package/packages/rpc-client/dist/index.d.ts +1 -1
- package/packages/rpc-client/dist/index.d.ts.map +1 -1
- package/packages/rpc-client/dist/index.js.map +1 -1
- package/packages/rpc-client/dist/rpc-client.d.ts +2 -6
- package/packages/rpc-client/dist/rpc-client.d.ts.map +1 -1
- package/packages/rpc-client/dist/rpc-client.js.map +1 -1
- package/packages/rpc-client/dist/rpc-types.d.ts +1 -565
- package/packages/rpc-client/dist/rpc-types.d.ts.map +1 -1
- package/packages/rpc-client/dist/rpc-types.js +3 -11
- package/packages/rpc-client/dist/rpc-types.js.map +1 -1
- package/packages/rpc-client/package.json +4 -1
- package/packages/rpc-client/src/index.ts +1 -1
- package/packages/rpc-client/src/rpc-client.ts +3 -6
- package/packages/rpc-client/src/rpc-types.ts +3 -398
- package/packages/rpc-client/tsconfig.tsbuildinfo +1 -1
- package/pkg/dist/modes/interactive/theme/theme-schema.d.ts +12 -0
- package/pkg/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
- package/pkg/dist/modes/interactive/theme/theme-schema.js +13 -0
- package/pkg/dist/modes/interactive/theme/theme-schema.js.map +1 -1
- package/pkg/dist/modes/interactive/theme/theme.d.ts +1 -1
- package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/pkg/dist/modes/interactive/theme/theme.js +18 -1
- package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
- package/pkg/dist/modes/interactive/theme/themes.d.ts.map +1 -1
- package/pkg/dist/modes/interactive/theme/themes.js +36 -27
- package/pkg/dist/modes/interactive/theme/themes.js.map +1 -1
- package/pkg/package.json +1 -1
- package/src/resources/GSD-WORKFLOW.md +2 -2
- package/src/resources/extensions/github-sync/templates.ts +93 -88
- package/src/resources/extensions/github-sync/tests/inline-code.test.ts +66 -0
- package/src/resources/extensions/github-sync/tests/templates.test.ts +10 -2
- package/src/resources/extensions/gsd/auto/contracts.ts +87 -0
- package/src/resources/extensions/gsd/auto/custom-verify-retry-store.ts +72 -0
- package/src/resources/extensions/gsd/auto/loop-deps.ts +11 -3
- package/src/resources/extensions/gsd/auto/loop.ts +461 -599
- package/src/resources/extensions/gsd/auto/orchestrator.ts +161 -0
- package/src/resources/extensions/gsd/auto/phases.ts +130 -37
- package/src/resources/extensions/gsd/auto/run-unit.ts +24 -14
- package/src/resources/extensions/gsd/auto/session.ts +11 -0
- package/src/resources/extensions/gsd/auto/workflow-custom-engine-dispatch-outcome.ts +28 -0
- package/src/resources/extensions/gsd/auto/workflow-custom-engine-iteration.ts +52 -0
- package/src/resources/extensions/gsd/auto/workflow-custom-engine-reconcile-outcome.ts +58 -0
- package/src/resources/extensions/gsd/auto/workflow-custom-engine-reconcile.ts +71 -0
- package/src/resources/extensions/gsd/auto/workflow-custom-engine-retry.ts +90 -0
- package/src/resources/extensions/gsd/auto/workflow-custom-engine-verify-outcome.ts +50 -0
- package/src/resources/extensions/gsd/auto/workflow-dispatch-claim.ts +97 -0
- package/src/resources/extensions/gsd/auto/workflow-dispatch-ledger.ts +45 -0
- package/src/resources/extensions/gsd/auto/workflow-iteration-completion.ts +26 -0
- package/src/resources/extensions/gsd/auto/workflow-journal-reporter.ts +33 -0
- package/src/resources/extensions/gsd/auto/workflow-kernel.ts +520 -0
- package/src/resources/extensions/gsd/auto/workflow-memory-pressure.ts +58 -0
- package/src/resources/extensions/gsd/auto/workflow-phase-reporter.ts +22 -0
- package/src/resources/extensions/gsd/auto/workflow-session-lock.ts +68 -0
- package/src/resources/extensions/gsd/auto/workflow-sidecar-iteration.ts +46 -0
- package/src/resources/extensions/gsd/auto/workflow-sidecar-queue.ts +46 -0
- package/src/resources/extensions/gsd/auto/workflow-turn-reporter.ts +68 -0
- package/src/resources/extensions/gsd/auto/workflow-unit-dispatch.ts +89 -0
- package/src/resources/extensions/gsd/auto/workflow-worker-heartbeat.ts +38 -0
- package/src/resources/extensions/gsd/auto-artifact-paths.ts +2 -2
- package/src/resources/extensions/gsd/auto-dashboard.ts +61 -8
- package/src/resources/extensions/gsd/auto-dispatch.ts +18 -0
- package/src/resources/extensions/gsd/auto-post-unit.ts +10 -10
- package/src/resources/extensions/gsd/auto-prompts.ts +392 -32
- package/src/resources/extensions/gsd/auto-recovery.ts +211 -59
- package/src/resources/extensions/gsd/auto-runtime-state.ts +7 -0
- package/src/resources/extensions/gsd/auto-start.ts +9 -7
- package/src/resources/extensions/gsd/auto-verification.ts +5 -1
- package/src/resources/extensions/gsd/auto-worktree.ts +85 -36
- package/src/resources/extensions/gsd/auto.ts +179 -2
- package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +30 -2
- package/src/resources/extensions/gsd/bootstrap/db-tools.ts +11 -0
- package/src/resources/extensions/gsd/bootstrap/exec-tools.ts +2 -2
- package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +79 -52
- package/src/resources/extensions/gsd/bootstrap/tests/write-gate-shouldblock-basepath.test.ts +97 -0
- package/src/resources/extensions/gsd/bootstrap/write-gate.ts +143 -5
- package/src/resources/extensions/gsd/clean-root-preflight.ts +41 -3
- package/src/resources/extensions/gsd/commands/context.ts +1 -1
- package/src/resources/extensions/gsd/commands/dispatcher.ts +6 -0
- package/src/resources/extensions/gsd/commands-extract-learnings.ts +17 -12
- package/src/resources/extensions/gsd/commands-ship.ts +24 -51
- package/src/resources/extensions/gsd/commands-workflow-templates.ts +13 -0
- package/src/resources/extensions/gsd/component-loader.ts +5 -11
- package/src/resources/extensions/gsd/crash-recovery.ts +67 -10
- package/src/resources/extensions/gsd/custom-workflow-engine.ts +29 -0
- package/src/resources/extensions/gsd/db-adapter.ts +75 -0
- package/src/resources/extensions/gsd/db-base-schema.ts +383 -0
- package/src/resources/extensions/gsd/db-connection-cache.ts +45 -0
- package/src/resources/extensions/gsd/db-coordination-schema.ts +109 -0
- package/src/resources/extensions/gsd/db-decision-requirement-rows.ts +77 -0
- package/src/resources/extensions/gsd/db-gate-rows.ts +19 -0
- package/src/resources/extensions/gsd/db-lightweight-query-rows.ts +50 -0
- package/src/resources/extensions/gsd/db-memory-fts-schema.ts +66 -0
- package/src/resources/extensions/gsd/db-migration-backup.ts +34 -0
- package/src/resources/extensions/gsd/db-migration-steps.ts +451 -0
- package/src/resources/extensions/gsd/db-milestone-artifact-rows.ts +70 -0
- package/src/resources/extensions/gsd/db-open-state.ts +47 -0
- package/src/resources/extensions/gsd/db-provider.ts +148 -0
- package/src/resources/extensions/gsd/db-runtime-kv-schema.ts +30 -0
- package/src/resources/extensions/gsd/db-schema-metadata.ts +33 -0
- package/src/resources/extensions/gsd/db-task-slice-rows.ts +146 -0
- package/src/resources/extensions/gsd/db-transaction.ts +76 -0
- package/src/resources/extensions/gsd/db-verification-evidence-rows.ts +14 -0
- package/src/resources/extensions/gsd/db-verification-evidence-schema.ts +22 -0
- package/src/resources/extensions/gsd/detection.ts +128 -0
- package/src/resources/extensions/gsd/escalation.ts +3 -1
- package/src/resources/extensions/gsd/graph.ts +12 -5
- package/src/resources/extensions/gsd/gsd-db.ts +379 -1660
- package/src/resources/extensions/gsd/guided-flow.ts +113 -12
- package/src/resources/extensions/gsd/interrupted-session.ts +1 -0
- package/src/resources/extensions/gsd/legacy-telemetry.ts +99 -0
- package/src/resources/extensions/gsd/markdown-renderer.ts +4 -1
- package/src/resources/extensions/gsd/migrate/command.ts +47 -1
- package/src/resources/extensions/gsd/migration-auto-check.ts +129 -0
- package/src/resources/extensions/gsd/model-router.ts +10 -6
- package/src/resources/extensions/gsd/notification-widget.ts +25 -4
- package/src/resources/extensions/gsd/paths.ts +6 -1
- package/src/resources/extensions/gsd/planning-path-scope.ts +35 -0
- package/src/resources/extensions/gsd/post-execution-checks.ts +35 -7
- package/src/resources/extensions/gsd/pr-evidence.ts +182 -0
- package/src/resources/extensions/gsd/pre-execution-checks.ts +4 -1
- package/src/resources/extensions/gsd/preferences-types.ts +23 -4
- package/src/resources/extensions/gsd/preferences-validation.ts +3 -3
- package/src/resources/extensions/gsd/process-task-path.ts +81 -0
- package/src/resources/extensions/gsd/prompt-loader.ts +9 -5
- package/src/resources/extensions/gsd/prompts/complete-milestone.md +32 -31
- package/src/resources/extensions/gsd/prompts/complete-slice.md +23 -34
- package/src/resources/extensions/gsd/prompts/discuss-headless.md +50 -96
- package/src/resources/extensions/gsd/prompts/discuss.md +81 -181
- package/src/resources/extensions/gsd/prompts/execute-task.md +40 -67
- package/src/resources/extensions/gsd/prompts/forensics.md +41 -84
- package/src/resources/extensions/gsd/prompts/guided-discuss-milestone.md +29 -39
- package/src/resources/extensions/gsd/prompts/guided-discuss-project.md +30 -65
- package/src/resources/extensions/gsd/prompts/guided-discuss-requirements.md +25 -52
- package/src/resources/extensions/gsd/prompts/guided-discuss-slice.md +36 -36
- package/src/resources/extensions/gsd/prompts/guided-research-project.md +20 -38
- package/src/resources/extensions/gsd/prompts/plan-milestone.md +47 -59
- package/src/resources/extensions/gsd/prompts/plan-slice.md +25 -87
- package/src/resources/extensions/gsd/prompts/queue.md +46 -53
- package/src/resources/extensions/gsd/prompts/refine-slice.md +23 -23
- package/src/resources/extensions/gsd/prompts/research-slice.md +23 -23
- package/src/resources/extensions/gsd/prompts/rethink.md +10 -10
- package/src/resources/extensions/gsd/prompts/system.md +65 -107
- package/src/resources/extensions/gsd/prompts/triage-captures.md +15 -15
- package/src/resources/extensions/gsd/prompts/validate-milestone.md +24 -24
- package/src/resources/extensions/gsd/prompts/worktree-merge.md +35 -35
- package/src/resources/extensions/gsd/safety/evidence-collector.ts +11 -2
- package/src/resources/extensions/gsd/state.ts +6 -3
- package/src/resources/extensions/gsd/tests/auto-abort-pause-regression.test.ts +38 -0
- package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +98 -0
- package/src/resources/extensions/gsd/tests/auto-loop.test.ts +118 -1
- package/src/resources/extensions/gsd/tests/auto-orchestrator.test.ts +353 -0
- package/src/resources/extensions/gsd/tests/auto-pr-bugs.test.ts +19 -0
- package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +277 -1
- package/src/resources/extensions/gsd/tests/auto-runtime-state.test.ts +39 -0
- package/src/resources/extensions/gsd/tests/auto-session-encapsulation.test.ts +3 -0
- package/src/resources/extensions/gsd/tests/bootstrap-derive-state-db-open.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/check-auto-start-pending-gate.test.ts +203 -0
- package/src/resources/extensions/gsd/tests/check-auto-start-ready-guard.test.ts +148 -0
- package/src/resources/extensions/gsd/tests/clean-root-preflight.test.ts +88 -2
- package/src/resources/extensions/gsd/tests/commands-eval-review.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/commands-extract-learnings.test.ts +9 -0
- package/src/resources/extensions/gsd/tests/commands-ship-eval-warn.test.ts +3 -2
- package/src/resources/extensions/gsd/tests/complete-milestone-prompt-rendering.test.ts +47 -0
- package/src/resources/extensions/gsd/tests/complete-milestone.test.ts +19 -5
- package/src/resources/extensions/gsd/tests/component-loader.test.ts +2 -9
- package/src/resources/extensions/gsd/tests/crash-handler-secondary.test.ts +55 -0
- package/src/resources/extensions/gsd/tests/crash-recovery-via-db.test.ts +22 -0
- package/src/resources/extensions/gsd/tests/current-directory-root-homedir-fallback.test.ts +63 -0
- package/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts +144 -0
- package/src/resources/extensions/gsd/tests/custom-verify-retry-store.test.ts +139 -0
- package/src/resources/extensions/gsd/tests/custom-workflow-engine.test.ts +50 -0
- package/src/resources/extensions/gsd/tests/dashboard-custom-engine.test.ts +3 -3
- package/src/resources/extensions/gsd/tests/db-adapter.test.ts +82 -0
- package/src/resources/extensions/gsd/tests/db-base-schema.test.ts +62 -0
- package/src/resources/extensions/gsd/tests/db-connection-cache.test.ts +60 -0
- package/src/resources/extensions/gsd/tests/db-coordination-schema.test.ts +39 -0
- package/src/resources/extensions/gsd/tests/db-decision-requirement-rows.test.ts +135 -0
- package/src/resources/extensions/gsd/tests/db-gate-rows.test.ts +53 -0
- package/src/resources/extensions/gsd/tests/db-lightweight-query-rows.test.ts +45 -0
- package/src/resources/extensions/gsd/tests/db-memory-fts-schema.test.ts +86 -0
- package/src/resources/extensions/gsd/tests/db-migration-backup.test.ts +105 -0
- package/src/resources/extensions/gsd/tests/db-migration-steps.integration.test.ts +428 -0
- package/src/resources/extensions/gsd/tests/db-migration-steps.test.ts +159 -0
- package/src/resources/extensions/gsd/tests/db-milestone-artifact-rows.test.ts +53 -0
- package/src/resources/extensions/gsd/tests/db-open-state.test.ts +56 -0
- package/src/resources/extensions/gsd/tests/db-provider.test.ts +105 -0
- package/src/resources/extensions/gsd/tests/db-runtime-kv-schema.test.ts +37 -0
- package/src/resources/extensions/gsd/tests/db-schema-metadata.test.ts +115 -0
- package/src/resources/extensions/gsd/tests/db-task-slice-rows.test.ts +128 -0
- package/src/resources/extensions/gsd/tests/db-transaction.test.ts +110 -0
- package/src/resources/extensions/gsd/tests/db-verification-evidence-schema.test.ts +76 -0
- package/src/resources/extensions/gsd/tests/deep-planning-mode-dispatch.test.ts +42 -0
- package/src/resources/extensions/gsd/tests/deep-project-auto-loop.test.ts +63 -2
- package/src/resources/extensions/gsd/tests/detection.test.ts +140 -0
- package/src/resources/extensions/gsd/tests/discuss-headless-rendering.test.ts +37 -0
- package/src/resources/extensions/gsd/tests/execute-summary-save-empty-project.test.ts +109 -0
- package/src/resources/extensions/gsd/tests/execute-task-rendering.test.ts +59 -0
- package/src/resources/extensions/gsd/tests/fixtures/pr-body/commands-ship-basic.md +52 -0
- package/src/resources/extensions/gsd/tests/fixtures/pr-body/commands-ship-empty-optionals.md +42 -0
- package/src/resources/extensions/gsd/tests/fixtures/pr-body/swarm-lane-no-blockers.md +55 -0
- package/src/resources/extensions/gsd/tests/fixtures/pr-body/swarm-lane-with-blockers.md +60 -0
- package/src/resources/extensions/gsd/tests/forensics-prompt-rendering.test.ts +36 -0
- package/src/resources/extensions/gsd/tests/graph-operations.test.ts +10 -0
- package/src/resources/extensions/gsd/tests/gsd-db.test.ts +139 -0
- package/src/resources/extensions/gsd/tests/guided-discuss-milestone-prompt-rendering.test.ts +43 -0
- package/src/resources/extensions/gsd/tests/guided-discuss-project-prompt-rendering.test.ts +41 -0
- package/src/resources/extensions/gsd/tests/guided-discuss-requirements-prompt-rendering.test.ts +45 -0
- package/src/resources/extensions/gsd/tests/guided-flow-prompt-consolidation.test.ts +14 -0
- package/src/resources/extensions/gsd/tests/has-pending-deep-stage.test.ts +33 -1
- package/src/resources/extensions/gsd/tests/integration/auto-recovery.test.ts +79 -0
- package/src/resources/extensions/gsd/tests/integration/auto-worktree-milestone-merge.test.ts +37 -0
- package/src/resources/extensions/gsd/tests/integration/state-machine-live-validation.test.ts +5 -3
- package/src/resources/extensions/gsd/tests/journal-integration.test.ts +134 -0
- package/src/resources/extensions/gsd/tests/legacy-component-format-telemetry.test.ts +62 -0
- package/src/resources/extensions/gsd/tests/legacy-telemetry.test.ts +144 -0
- package/src/resources/extensions/gsd/tests/memory-pressure-stuck-state.test.ts +40 -16
- package/src/resources/extensions/gsd/tests/migrate-writer-integration.test.ts +48 -0
- package/src/resources/extensions/gsd/tests/migration-auto-check.test.ts +127 -0
- package/src/resources/extensions/gsd/tests/model-router.test.ts +33 -12
- package/src/resources/extensions/gsd/tests/notification-store.test.ts +8 -0
- package/src/resources/extensions/gsd/tests/notification-widget.test.ts +40 -1
- package/src/resources/extensions/gsd/tests/parallel-skill-prompt-integration.test.ts +8 -0
- package/src/resources/extensions/gsd/tests/paused-session-via-db.test.ts +2 -0
- package/src/resources/extensions/gsd/tests/plan-milestone-rendering.test.ts +45 -0
- package/src/resources/extensions/gsd/tests/plan-slice-prompt.test.ts +65 -16
- package/src/resources/extensions/gsd/tests/plan-slice.test.ts +77 -0
- package/src/resources/extensions/gsd/tests/plan-task.test.ts +21 -0
- package/src/resources/extensions/gsd/tests/post-execution-checks.test.ts +46 -0
- package/src/resources/extensions/gsd/tests/pr-evidence-equivalence.test.ts +102 -0
- package/src/resources/extensions/gsd/tests/pr-evidence-hardening.test.ts +165 -0
- package/src/resources/extensions/gsd/tests/pr-evidence.test.ts +79 -0
- package/src/resources/extensions/gsd/tests/pre-exec-gate-loop.test.ts +3 -0
- package/src/resources/extensions/gsd/tests/process-task-path.test.ts +51 -0
- package/src/resources/extensions/gsd/tests/prompt-step-ordering.test.ts +16 -1
- package/src/resources/extensions/gsd/tests/queue-prompt-rendering.test.ts +37 -0
- package/src/resources/extensions/gsd/tests/register-hooks-compaction-checkpoint.test.ts +85 -0
- package/src/resources/extensions/gsd/tests/right-sized-workflow-prompts.test.ts +192 -0
- package/src/resources/extensions/gsd/tests/run-uat-composer.test.ts +2 -0
- package/src/resources/extensions/gsd/tests/safety-harness-false-positives.test.ts +29 -0
- package/src/resources/extensions/gsd/tests/smart-entry-complete.test.ts +38 -0
- package/src/resources/extensions/gsd/tests/start-auto-detached.test.ts +46 -2
- package/src/resources/extensions/gsd/tests/subagent-model-dispatch.test.ts +59 -0
- package/src/resources/extensions/gsd/tests/tool-naming.test.ts +32 -9
- package/src/resources/extensions/gsd/tests/unit-context-composer.test.ts +42 -4
- package/src/resources/extensions/gsd/tests/unit-context-manifest.test.ts +32 -0
- package/src/resources/extensions/gsd/tests/unit-runtime.test.ts +7 -0
- package/src/resources/extensions/gsd/tests/uok-contracts.test.ts +109 -1
- package/src/resources/extensions/gsd/tests/uok-kernel-path.test.ts +12 -0
- package/src/resources/extensions/gsd/tests/uok-loop-adapter-writer.test.ts +98 -0
- package/src/resources/extensions/gsd/tests/uok-plan-v2-wiring.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/workflow-custom-engine-dispatch-outcome.test.ts +55 -0
- package/src/resources/extensions/gsd/tests/workflow-custom-engine-iteration.test.ts +93 -0
- package/src/resources/extensions/gsd/tests/workflow-custom-engine-reconcile-outcome.test.ts +108 -0
- package/src/resources/extensions/gsd/tests/workflow-custom-engine-reconcile.test.ts +146 -0
- package/src/resources/extensions/gsd/tests/workflow-custom-engine-retry.test.ts +136 -0
- package/src/resources/extensions/gsd/tests/workflow-custom-engine-verify-outcome.test.ts +95 -0
- package/src/resources/extensions/gsd/tests/workflow-dispatch-claim.test.ts +158 -0
- package/src/resources/extensions/gsd/tests/workflow-dispatch-ledger.test.ts +82 -0
- package/src/resources/extensions/gsd/tests/workflow-iteration-completion.test.ts +44 -0
- package/src/resources/extensions/gsd/tests/workflow-journal-reporter.test.ts +49 -0
- package/src/resources/extensions/gsd/tests/workflow-kernel.test.ts +607 -0
- package/src/resources/extensions/gsd/tests/workflow-logger.test.ts +20 -4
- package/src/resources/extensions/gsd/tests/workflow-memory-pressure.test.ts +71 -0
- package/src/resources/extensions/gsd/tests/workflow-phase-reporter.test.ts +40 -0
- package/src/resources/extensions/gsd/tests/workflow-session-lock.test.ts +135 -0
- package/src/resources/extensions/gsd/tests/workflow-sidecar-iteration.test.ts +110 -0
- package/src/resources/extensions/gsd/tests/workflow-sidecar-queue.test.ts +116 -0
- package/src/resources/extensions/gsd/tests/workflow-templates.test.ts +21 -0
- package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +164 -3
- package/src/resources/extensions/gsd/tests/workflow-turn-reporter.test.ts +87 -0
- package/src/resources/extensions/gsd/tests/workflow-unit-dispatch.test.ts +160 -0
- package/src/resources/extensions/gsd/tests/workflow-worker-heartbeat.test.ts +123 -0
- package/src/resources/extensions/gsd/tests/working-output-messages.test.ts +93 -0
- package/src/resources/extensions/gsd/tests/worktree-health-dispatch.test.ts +37 -6
- package/src/resources/extensions/gsd/tests/worktree-manager.test.ts +7 -0
- package/src/resources/extensions/gsd/tests/worktree-nested-git-safety.test.ts +9 -2
- package/src/resources/extensions/gsd/tests/worktree-path-injection.test.ts +3 -0
- package/src/resources/extensions/gsd/tests/worktree-submodule-safety.test.ts +17 -33
- package/src/resources/extensions/gsd/tests/worktree-write-gate.test.ts +179 -0
- package/src/resources/extensions/gsd/tools/complete-milestone.ts +15 -9
- package/src/resources/extensions/gsd/tools/complete-task.ts +4 -1
- package/src/resources/extensions/gsd/tools/plan-slice.ts +13 -0
- package/src/resources/extensions/gsd/tools/plan-task.ts +10 -0
- package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +90 -2
- package/src/resources/extensions/gsd/unit-context-composer.ts +49 -0
- package/src/resources/extensions/gsd/unit-context-manifest.ts +34 -0
- package/src/resources/extensions/gsd/unit-runtime.ts +14 -0
- package/src/resources/extensions/gsd/uok/audit.ts +25 -9
- package/src/resources/extensions/gsd/uok/contracts.ts +105 -0
- package/src/resources/extensions/gsd/uok/dispatch-envelope.ts +4 -0
- package/src/resources/extensions/gsd/uok/kernel.ts +10 -3
- package/src/resources/extensions/gsd/uok/loop-adapter.ts +60 -45
- package/src/resources/extensions/gsd/uok/plan-v2.ts +5 -1
- package/src/resources/extensions/gsd/uok/timeline.ts +158 -0
- package/src/resources/extensions/gsd/workflow-logger.ts +13 -13
- package/src/resources/extensions/gsd/workflow-manifest.ts +6 -15
- package/src/resources/extensions/gsd/workflow-projections.ts +5 -1
- package/src/resources/extensions/gsd/workflow-templates.ts +11 -0
- package/src/resources/extensions/gsd/working-output-messages.ts +120 -0
- package/src/resources/extensions/gsd/worktree-manager.ts +15 -4
- package/src/resources/extensions/shared/gsd-phase-state.ts +56 -3
- package/src/resources/extensions/shared/interview-ui.ts +18 -5
- package/src/resources/extensions/shared/tests/gsd-phase-state.test.ts +43 -1
- package/src/resources/extensions/shared/tests/interview-notes-loop.test.ts +41 -0
- package/dist/web/standalone/.next/server/chunks/6336.js +0 -1
- package/dist/web/standalone/.next/static/chunks/app/page-ff639266d978f2a0.js +0 -1
- package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
- package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
- /package/dist/web/standalone/.next/static/{J-CU-p_sp45CJHT3R9TJS → YRK7-Es93MwpIn3VL35K0}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{J-CU-p_sp45CJHT3R9TJS → YRK7-Es93MwpIn3VL35K0}/_ssgManifest.js +0 -0
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
import { loadFile, parseContinue, parseSummary, loadActiveOverrides, formatOverridesSection, parseTaskPlanFile } from "./files.js";
|
|
10
10
|
import type { Override, UatType } from "./files.js";
|
|
11
|
-
import { hasVerdict, getUatType } from "./verdict-parser.js";
|
|
11
|
+
import { hasVerdict, getUatType, extractVerdict } from "./verdict-parser.js";
|
|
12
12
|
import { loadPrompt, inlineTemplate } from "./prompt-loader.js";
|
|
13
13
|
import {
|
|
14
14
|
resolveMilestoneFile, resolveSliceFile, resolveSlicePath,
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
resolveGsdRootFile, relGsdRootFile, resolveRuntimeFile,
|
|
18
18
|
} from "./paths.js";
|
|
19
19
|
import { resolveSkillDiscoveryMode, resolveInlineLevel, loadEffectiveGSDPreferences, resolveAllSkillReferences } from "./preferences.js";
|
|
20
|
+
import { isContextModeEnabled } from "./preferences-types.js";
|
|
20
21
|
import { parseRoadmap } from "./parsers-legacy.js";
|
|
21
22
|
import type { GSDState, InlineLevel } from "./types.js";
|
|
22
23
|
import type { GSDPreferences } from "./preferences.js";
|
|
@@ -33,11 +34,12 @@ import {
|
|
|
33
34
|
} from "./gate-registry.js";
|
|
34
35
|
import { formatDecisionsCompact, formatRequirementsCompact } from "./structured-data-formatter.js";
|
|
35
36
|
import { readPhaseAnchor, formatAnchorForPrompt } from "./phase-anchor.js";
|
|
36
|
-
import { composeInlinedContext, type ArtifactResolver } from "./unit-context-composer.js";
|
|
37
|
+
import { composeContextModeInstructions, composeInlinedContext, type ArtifactResolver, type ContextModeRenderMode } from "./unit-context-composer.js";
|
|
37
38
|
import { logWarning } from "./workflow-logger.js";
|
|
38
39
|
import { inlineGraphSubgraph } from "./graph-context.js";
|
|
39
40
|
import { buildExtractionStepsBlock } from "./commands-extract-learnings.js";
|
|
40
41
|
import { resolveSkillManifest, warnIfManifestHasMissingSkills } from "./skill-manifest.js";
|
|
42
|
+
import { classifyProject, type ProjectClassification } from "./detection.js";
|
|
41
43
|
|
|
42
44
|
// ─── Preamble Cap ─────────────────────────────────────────────────────────────
|
|
43
45
|
|
|
@@ -79,6 +81,108 @@ function resolveSummaryBudgetChars(): number {
|
|
|
79
81
|
return resolvePromptBudgets().summaryBudgetChars;
|
|
80
82
|
}
|
|
81
83
|
|
|
84
|
+
function formatProjectClassificationForPlanning(classification: ProjectClassification): string {
|
|
85
|
+
const sampleFiles = classification.contentFiles.slice(0, 8);
|
|
86
|
+
const sample = sampleFiles.length > 0 ? sampleFiles.map((file) => `\`${file}\``).join(", ") : "(none)";
|
|
87
|
+
const lines = [
|
|
88
|
+
"### Project Classification",
|
|
89
|
+
"",
|
|
90
|
+
`- **Kind:** ${classification.kind}`,
|
|
91
|
+
`- **Content files:** ${classification.contentFiles.length}`,
|
|
92
|
+
`- **Sample files:** ${sample}`,
|
|
93
|
+
`- **Reason:** ${classification.reason}`,
|
|
94
|
+
"",
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
if (classification.kind === "untyped-existing") {
|
|
98
|
+
if (classification.contentFiles.length <= 2) {
|
|
99
|
+
lines.push(
|
|
100
|
+
"**Workflow sizing:** This is a tiny existing untyped project. Prefer exactly one slice unless the milestone request clearly spans multiple independent user-visible capabilities.",
|
|
101
|
+
);
|
|
102
|
+
} else if (classification.contentFiles.length <= 5) {
|
|
103
|
+
lines.push(
|
|
104
|
+
"**Workflow sizing:** This is a small existing untyped project. Prefer 1-2 slices unless the milestone request clearly spans multiple independent user-visible capabilities.",
|
|
105
|
+
);
|
|
106
|
+
} else {
|
|
107
|
+
lines.push(
|
|
108
|
+
"**Workflow sizing:** Existing untyped project. Use generic file-level workflow guidance and size slices by real capability boundaries, not by missing tooling markers.",
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
} else if (classification.kind === "greenfield") {
|
|
112
|
+
lines.push("**Workflow sizing:** No project content exists yet. Use normal greenfield sizing for the requested scope.");
|
|
113
|
+
} else if (classification.kind === "typed-existing") {
|
|
114
|
+
lines.push("**Workflow sizing:** Known project markers exist. Use normal ecosystem-aware planning guidance.");
|
|
115
|
+
} else {
|
|
116
|
+
lines.push("**Workflow sizing:** Invalid repository state. Planning should surface this as a blocker rather than inventing project structure.");
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return lines.join("\n");
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
function normalizeArtifactRef(value: string): string {
|
|
123
|
+
return value.trim().replace(/^[-\s]+/, "").replace(/^["'`]+|["'`]+$/g, "").replaceAll("\\", "/").replace(/^\.\//, "");
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function parseCoveredArtifacts(validationContent: string): Set<string> {
|
|
127
|
+
const covered = new Set<string>();
|
|
128
|
+
const lines = validationContent.split(/\r?\n/);
|
|
129
|
+
let inCoveredArtifacts = false;
|
|
130
|
+
for (const line of lines) {
|
|
131
|
+
if (/^\s*covered[-_]?artifacts\s*:/i.test(line)) {
|
|
132
|
+
inCoveredArtifacts = true;
|
|
133
|
+
const inline = line.split(/covered[-_]?artifacts\s*:/i)[1]?.trim();
|
|
134
|
+
if (inline && inline !== "[]") {
|
|
135
|
+
inline.replace(/^\[|\]$/g, "").split(",").map(normalizeArtifactRef).filter(Boolean).forEach((item) => covered.add(item));
|
|
136
|
+
}
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (!inCoveredArtifacts) continue;
|
|
140
|
+
if (/^\S/.test(line) && !/^\s*-/.test(line)) break;
|
|
141
|
+
const item = line.match(/^\s*-\s*(.+)$/)?.[1];
|
|
142
|
+
if (item) covered.add(normalizeArtifactRef(item));
|
|
143
|
+
}
|
|
144
|
+
return covered;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function isValidationFreshOrApplicable(validationContent: string | null, currentArtifacts: string[]): boolean {
|
|
148
|
+
if (!validationContent) return false;
|
|
149
|
+
if (!/validation_metadata:/i.test(validationContent)) return false;
|
|
150
|
+
const coveredArtifacts = parseCoveredArtifacts(validationContent);
|
|
151
|
+
if (coveredArtifacts.size === 0) return false;
|
|
152
|
+
return currentArtifacts
|
|
153
|
+
.map(normalizeArtifactRef)
|
|
154
|
+
.filter(Boolean)
|
|
155
|
+
.every((artifact) => coveredArtifacts.has(artifact));
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
function formatCloseoutReviewInstructions(validationContent: string | null, validationRel: string, currentArtifacts: string[]): string {
|
|
159
|
+
const verdict = validationContent ? extractVerdict(validationContent) : null;
|
|
160
|
+
const validationFresh = isValidationFreshOrApplicable(validationContent, currentArtifacts);
|
|
161
|
+
if (verdict === "pass" && validationFresh) {
|
|
162
|
+
return [
|
|
163
|
+
"### Passing Validation Artifact",
|
|
164
|
+
"",
|
|
165
|
+
`A passing validation artifact is present at \`${validationRel}\`. Treat it as authoritative for success criteria, requirement coverage, verification classes, and cross-slice integration.`,
|
|
166
|
+
"",
|
|
167
|
+
"Do not delegate fresh reviewer/security/tester audits and do not redo the validation evidence review unless the artifact is internally inconsistent with the inlined summaries. Focus this unit on final milestone narrative, learnings, PROJECT/requirements updates, and `gsd_complete_milestone`.",
|
|
168
|
+
].join("\n");
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
if (verdict) {
|
|
172
|
+
return [
|
|
173
|
+
"### Validation Requires Attention",
|
|
174
|
+
"",
|
|
175
|
+
`A validation artifact is present at \`${validationRel}\` with verdict \`${verdict}\`, but it is missing freshness metadata or does not cover current milestone artifacts. Do not treat the milestone as complete unless the issues are resolved and evidence supports completion.`,
|
|
176
|
+
].join("\n");
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
return [
|
|
180
|
+
"### No Passing Validation Artifact",
|
|
181
|
+
"",
|
|
182
|
+
`No passing validation artifact was found at \`${validationRel}\`. Use the full closeout review path before completion.`,
|
|
183
|
+
].join("\n");
|
|
184
|
+
}
|
|
185
|
+
|
|
82
186
|
function capPreamble(preamble: string): string {
|
|
83
187
|
// Cap inlined context at min(historical 30K ceiling, scaled inline budget).
|
|
84
188
|
// The ceiling preserves pre-fix behavior for large-window users; the scaled
|
|
@@ -89,6 +193,30 @@ function capPreamble(preamble: string): string {
|
|
|
89
193
|
return truncateAtSectionBoundary(preamble, budget).content;
|
|
90
194
|
}
|
|
91
195
|
|
|
196
|
+
function renderContextModeForPrompt(
|
|
197
|
+
unitType: string,
|
|
198
|
+
base: string,
|
|
199
|
+
renderMode: ContextModeRenderMode = "standalone",
|
|
200
|
+
): string {
|
|
201
|
+
const effectivePrefs = loadEffectiveGSDPreferences(base)?.preferences;
|
|
202
|
+
return composeContextModeInstructions(unitType, {
|
|
203
|
+
enabled: isContextModeEnabled(effectivePrefs),
|
|
204
|
+
renderMode,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
function prependContextModeToBlock(
|
|
209
|
+
unitType: string,
|
|
210
|
+
base: string,
|
|
211
|
+
block: string,
|
|
212
|
+
renderMode: ContextModeRenderMode = "standalone",
|
|
213
|
+
): string {
|
|
214
|
+
const contextMode = renderContextModeForPrompt(unitType, base, renderMode);
|
|
215
|
+
if (!contextMode) return block;
|
|
216
|
+
if (!block.trim()) return contextMode;
|
|
217
|
+
return `${contextMode}\n\n${block}`;
|
|
218
|
+
}
|
|
219
|
+
|
|
92
220
|
// ─── Executor Constraints ─────────────────────────────────────────────────────
|
|
93
221
|
|
|
94
222
|
/**
|
|
@@ -250,6 +378,171 @@ export async function inlineFileSmart(
|
|
|
250
378
|
return `### ${label}\nSource: \`${relPath}\`\n\n${truncated}`;
|
|
251
379
|
}
|
|
252
380
|
|
|
381
|
+
function inlineCompactTemplate(name: "plan" | "task-summary" | "slice-summary", label: string): string {
|
|
382
|
+
const compact: Record<typeof name, string> = {
|
|
383
|
+
plan: [
|
|
384
|
+
"# {{sliceId}}: {{sliceTitle}}",
|
|
385
|
+
"",
|
|
386
|
+
"**Goal:** {{goal}}",
|
|
387
|
+
"**Demo:** {{demo}}",
|
|
388
|
+
"",
|
|
389
|
+
"## Must-Haves",
|
|
390
|
+
"- {{mustHave}}",
|
|
391
|
+
"",
|
|
392
|
+
"## Threat Surface",
|
|
393
|
+
"- Abuse: {{abuseScenarios}}",
|
|
394
|
+
"- Data exposure: {{sensitiveDataAccessible}}",
|
|
395
|
+
"- Input trust: {{untrustedInput}}",
|
|
396
|
+
"",
|
|
397
|
+
"## Requirement Impact",
|
|
398
|
+
"- Requirements touched: {{requirementIds}}",
|
|
399
|
+
"- Re-verify: {{whatMustBeRetested}}",
|
|
400
|
+
"- Decisions revisited: {{decisionIds}}",
|
|
401
|
+
"",
|
|
402
|
+
"## Proof Level",
|
|
403
|
+
"- This slice proves: {{contract | integration | operational | final-assembly}}",
|
|
404
|
+
"- Real runtime required: {{yes/no}}",
|
|
405
|
+
"- Human/UAT required: {{yes/no}}",
|
|
406
|
+
"",
|
|
407
|
+
"## Verification",
|
|
408
|
+
"- {{testFileOrCommand}}",
|
|
409
|
+
"",
|
|
410
|
+
"## Observability / Diagnostics",
|
|
411
|
+
"- Runtime signals: {{signalOrNone}}",
|
|
412
|
+
"- Inspection surfaces: {{surfaceOrNone}}",
|
|
413
|
+
"- Failure visibility: {{failureSignalOrNone}}",
|
|
414
|
+
"- Redaction constraints: {{secretOrPiiBoundaryOrNone}}",
|
|
415
|
+
"",
|
|
416
|
+
"## Integration Closure",
|
|
417
|
+
"- Upstream surfaces consumed: {{filesModulesContracts}}",
|
|
418
|
+
"- New wiring introduced: {{entrypointOrNone}}",
|
|
419
|
+
"- Remaining end-to-end work: {{listOrNothing}}",
|
|
420
|
+
"",
|
|
421
|
+
"## Tasks",
|
|
422
|
+
"- [ ] **T01: {{taskTitle}}** `est:{{estimate}}`",
|
|
423
|
+
" - Why: {{whyThisTaskExists}}",
|
|
424
|
+
" - Files: `{{filePath}}`",
|
|
425
|
+
" - Do: {{specificImplementationStepsAndConstraints}}",
|
|
426
|
+
" - Verify: {{testCommandOrRuntimeCheck}}",
|
|
427
|
+
" - Done when: {{measurableAcceptanceCondition}}",
|
|
428
|
+
"",
|
|
429
|
+
"## Files Likely Touched",
|
|
430
|
+
"- `{{filePath}}`",
|
|
431
|
+
].join("\n"),
|
|
432
|
+
"task-summary": [
|
|
433
|
+
"---",
|
|
434
|
+
"id: {{taskId}}",
|
|
435
|
+
"parent: {{sliceId}}",
|
|
436
|
+
"milestone: {{milestoneId}}",
|
|
437
|
+
"provides: [{{whatThisTaskProvides}}]",
|
|
438
|
+
"key_files: [{{filePath}}]",
|
|
439
|
+
"key_decisions: [{{decision}}]",
|
|
440
|
+
"patterns_established: [{{pattern}}]",
|
|
441
|
+
"observability_surfaces: [{{diagnosticOrNone}}]",
|
|
442
|
+
"duration: {{duration}}",
|
|
443
|
+
"verification_result: passed",
|
|
444
|
+
"completed_at: {{date}}",
|
|
445
|
+
"blocker_discovered: false",
|
|
446
|
+
"---",
|
|
447
|
+
"",
|
|
448
|
+
"# {{taskId}}: {{taskTitle}}",
|
|
449
|
+
"**{{oneLiner}}**",
|
|
450
|
+
"",
|
|
451
|
+
"## What Happened",
|
|
452
|
+
"{{narrative}}",
|
|
453
|
+
"",
|
|
454
|
+
"## Verification",
|
|
455
|
+
"{{whatWasVerifiedAndHow}}",
|
|
456
|
+
"",
|
|
457
|
+
"## Verification Evidence",
|
|
458
|
+
"| # | Command | Exit Code | Verdict | Duration |",
|
|
459
|
+
"|---|---------|-----------|---------|----------|",
|
|
460
|
+
"| {{row}} | {{command}} | {{exitCode}} | {{verdict}} | {{duration}} |",
|
|
461
|
+
"",
|
|
462
|
+
"## Diagnostics",
|
|
463
|
+
"{{diagnosticsOrNone}}",
|
|
464
|
+
"",
|
|
465
|
+
"## Deviations",
|
|
466
|
+
"{{deviationsFromPlan_OR_none}}",
|
|
467
|
+
"",
|
|
468
|
+
"## Known Issues",
|
|
469
|
+
"{{issuesDiscoveredButNotFixed_OR_none}}",
|
|
470
|
+
"",
|
|
471
|
+
"## Files Created/Modified",
|
|
472
|
+
"- `{{filePath}}` - {{description}}",
|
|
473
|
+
].join("\n"),
|
|
474
|
+
"slice-summary": [
|
|
475
|
+
"---",
|
|
476
|
+
"id: {{sliceId}}",
|
|
477
|
+
"parent: {{milestoneId}}",
|
|
478
|
+
"milestone: {{milestoneId}}",
|
|
479
|
+
"provides: [{{whatThisSliceProvides}}]",
|
|
480
|
+
"requires: []",
|
|
481
|
+
"affects: []",
|
|
482
|
+
"key_files: [{{filePath}}]",
|
|
483
|
+
"key_decisions: [{{decision}}]",
|
|
484
|
+
"patterns_established: [{{pattern}}]",
|
|
485
|
+
"observability_surfaces: [{{diagnosticOrNone}}]",
|
|
486
|
+
"drill_down_paths: [{{pathToTaskSummary}}]",
|
|
487
|
+
"duration: {{duration}}",
|
|
488
|
+
"verification_result: passed",
|
|
489
|
+
"completed_at: {{date}}",
|
|
490
|
+
"---",
|
|
491
|
+
"",
|
|
492
|
+
"# {{sliceId}}: {{sliceTitle}}",
|
|
493
|
+
"**{{oneLiner}}**",
|
|
494
|
+
"",
|
|
495
|
+
"## What Happened",
|
|
496
|
+
"{{narrative}}",
|
|
497
|
+
"",
|
|
498
|
+
"## Verification",
|
|
499
|
+
"{{whatWasVerifiedAcrossAllTasks}}",
|
|
500
|
+
"",
|
|
501
|
+
"## Requirements Advanced",
|
|
502
|
+
"- {{requirementId}} - {{howThisSliceAdvancedIt}}",
|
|
503
|
+
"",
|
|
504
|
+
"## Requirements Validated",
|
|
505
|
+
"- {{requirementId}} - {{whatProofNowMakesItValidated}}",
|
|
506
|
+
"",
|
|
507
|
+
"## New Requirements Surfaced",
|
|
508
|
+
"- {{newRequirementOr_none}}",
|
|
509
|
+
"",
|
|
510
|
+
"## Requirements Invalidated or Re-scoped",
|
|
511
|
+
"- {{requirementIdOr_none}} - {{whatChanged}}",
|
|
512
|
+
"",
|
|
513
|
+
"## Operational Readiness",
|
|
514
|
+
"- Health signal: {{healthSignalOrNA}}",
|
|
515
|
+
"- Failure signal: {{failureSignalOrNA}}",
|
|
516
|
+
"- Recovery: {{recoveryOrNA}}",
|
|
517
|
+
"- Monitoring gaps: {{gapsOrNone}}",
|
|
518
|
+
"",
|
|
519
|
+
"## Deviations",
|
|
520
|
+
"{{deviationsFromPlan_OR_none}}",
|
|
521
|
+
"",
|
|
522
|
+
"## Known Limitations",
|
|
523
|
+
"{{whatDoesntWorkYet_OR_whatWasDeferredToLaterSlices}}",
|
|
524
|
+
"",
|
|
525
|
+
"## Follow-ups",
|
|
526
|
+
"{{workDeferredOrDiscoveredDuringExecution_OR_none}}",
|
|
527
|
+
"",
|
|
528
|
+
"## Files Created/Modified",
|
|
529
|
+
"- `{{filePath}}` - {{description}}",
|
|
530
|
+
"",
|
|
531
|
+
"## Forward Intelligence",
|
|
532
|
+
"### What the next slice should know",
|
|
533
|
+
"- {{insightThatWouldHelpDownstreamWork}}",
|
|
534
|
+
"### What's fragile",
|
|
535
|
+
"- {{fragileAreaOrThinImplementation}} - {{whyItMatters}}",
|
|
536
|
+
"### Authoritative diagnostics",
|
|
537
|
+
"- {{whereAFutureAgentShouldLookFirst}} - {{whyThisSignalIsTrustworthy}}",
|
|
538
|
+
"### What assumptions changed",
|
|
539
|
+
"- {{originalAssumption}} - {{whatActuallyHappened}}",
|
|
540
|
+
].join("\n"),
|
|
541
|
+
};
|
|
542
|
+
|
|
543
|
+
return `${compact[name]}\n\n### Output Template: ${label}\nSource: \`templates/${name}.md\``;
|
|
544
|
+
}
|
|
545
|
+
|
|
253
546
|
/**
|
|
254
547
|
* Compact slice-summary excerpt for milestone-level closers (#4780).
|
|
255
548
|
*
|
|
@@ -1266,6 +1559,7 @@ export async function buildDiscussMilestonePrompt(
|
|
|
1266
1559
|
structuredQuestionsAvailable = "false",
|
|
1267
1560
|
): Promise<string> {
|
|
1268
1561
|
const discussTemplates = inlineTemplate("context", "Context");
|
|
1562
|
+
const contextModeInstructions = renderContextModeForPrompt("discuss-milestone", base);
|
|
1269
1563
|
|
|
1270
1564
|
const basePrompt = loadPrompt("guided-discuss-milestone", {
|
|
1271
1565
|
workingDirectory: base,
|
|
@@ -1276,16 +1570,17 @@ export async function buildDiscussMilestonePrompt(
|
|
|
1276
1570
|
commitInstruction: "Do not commit planning artifacts — .gsd/ is managed externally.",
|
|
1277
1571
|
fastPathInstruction: "",
|
|
1278
1572
|
});
|
|
1573
|
+
const promptWithContextMode = prependContextModeToBlock("discuss-milestone", base, basePrompt);
|
|
1279
1574
|
|
|
1280
1575
|
// If a CONTEXT-DRAFT.md exists, append it as seed material
|
|
1281
1576
|
const draftPath = resolveMilestoneFile(base, mid, "CONTEXT-DRAFT");
|
|
1282
1577
|
const draftContent = draftPath ? await loadFile(draftPath) : null;
|
|
1283
1578
|
|
|
1284
1579
|
if (draftContent) {
|
|
1285
|
-
return `${
|
|
1580
|
+
return `${promptWithContextMode}\n\n## Prior Discussion (Draft Seed)\n\nThe following draft was captured from a prior multi-milestone discussion. Use it as seed material — the user has already provided this context. Start with a brief reflection on what the draft covers, then probe for any gaps or open questions before writing the full CONTEXT.md.\n\n${draftContent}`;
|
|
1286
1581
|
}
|
|
1287
1582
|
|
|
1288
|
-
return basePrompt;
|
|
1583
|
+
return contextModeInstructions ? promptWithContextMode : basePrompt;
|
|
1289
1584
|
}
|
|
1290
1585
|
|
|
1291
1586
|
/**
|
|
@@ -1298,10 +1593,10 @@ export async function buildWorkflowPreferencesPrompt(
|
|
|
1298
1593
|
base: string,
|
|
1299
1594
|
structuredQuestionsAvailable = "false",
|
|
1300
1595
|
): Promise<string> {
|
|
1301
|
-
return loadPrompt("guided-workflow-preferences", {
|
|
1596
|
+
return prependContextModeToBlock("workflow-preferences", base, loadPrompt("guided-workflow-preferences", {
|
|
1302
1597
|
workingDirectory: base,
|
|
1303
1598
|
structuredQuestionsAvailable,
|
|
1304
|
-
});
|
|
1599
|
+
}));
|
|
1305
1600
|
}
|
|
1306
1601
|
|
|
1307
1602
|
/**
|
|
@@ -1315,10 +1610,10 @@ export async function buildResearchProjectPrompt(
|
|
|
1315
1610
|
base: string,
|
|
1316
1611
|
structuredQuestionsAvailable = "false",
|
|
1317
1612
|
): Promise<string> {
|
|
1318
|
-
return loadPrompt("guided-research-project", {
|
|
1613
|
+
return prependContextModeToBlock("research-project", base, loadPrompt("guided-research-project", {
|
|
1319
1614
|
workingDirectory: base,
|
|
1320
1615
|
structuredQuestionsAvailable,
|
|
1321
|
-
});
|
|
1616
|
+
}));
|
|
1322
1617
|
}
|
|
1323
1618
|
|
|
1324
1619
|
/**
|
|
@@ -1331,10 +1626,10 @@ export async function buildResearchDecisionPrompt(
|
|
|
1331
1626
|
base: string,
|
|
1332
1627
|
structuredQuestionsAvailable = "false",
|
|
1333
1628
|
): Promise<string> {
|
|
1334
|
-
return loadPrompt("guided-research-decision", {
|
|
1629
|
+
return prependContextModeToBlock("research-decision", base, loadPrompt("guided-research-decision", {
|
|
1335
1630
|
workingDirectory: base,
|
|
1336
1631
|
structuredQuestionsAvailable,
|
|
1337
|
-
});
|
|
1632
|
+
}));
|
|
1338
1633
|
}
|
|
1339
1634
|
|
|
1340
1635
|
/**
|
|
@@ -1349,12 +1644,12 @@ export async function buildDiscussProjectPrompt(
|
|
|
1349
1644
|
): Promise<string> {
|
|
1350
1645
|
const inlinedTemplates = inlineTemplate("project", "Project");
|
|
1351
1646
|
|
|
1352
|
-
return loadPrompt("guided-discuss-project", {
|
|
1647
|
+
return prependContextModeToBlock("discuss-project", base, loadPrompt("guided-discuss-project", {
|
|
1353
1648
|
workingDirectory: base,
|
|
1354
1649
|
inlinedTemplates,
|
|
1355
1650
|
structuredQuestionsAvailable,
|
|
1356
1651
|
commitInstruction: "Do not commit planning artifacts — .gsd/ is managed externally.",
|
|
1357
|
-
});
|
|
1652
|
+
}));
|
|
1358
1653
|
}
|
|
1359
1654
|
|
|
1360
1655
|
/**
|
|
@@ -1369,12 +1664,12 @@ export async function buildDiscussRequirementsPrompt(
|
|
|
1369
1664
|
): Promise<string> {
|
|
1370
1665
|
const inlinedTemplates = inlineTemplate("requirements", "Requirements");
|
|
1371
1666
|
|
|
1372
|
-
return loadPrompt("guided-discuss-requirements", {
|
|
1667
|
+
return prependContextModeToBlock("discuss-requirements", base, loadPrompt("guided-discuss-requirements", {
|
|
1373
1668
|
workingDirectory: base,
|
|
1374
1669
|
inlinedTemplates,
|
|
1375
1670
|
structuredQuestionsAvailable,
|
|
1376
1671
|
commitInstruction: "Do not commit planning artifacts — .gsd/ is managed externally.",
|
|
1377
|
-
});
|
|
1672
|
+
}));
|
|
1378
1673
|
}
|
|
1379
1674
|
|
|
1380
1675
|
export async function buildResearchMilestonePrompt(mid: string, midTitle: string, base: string): Promise<string> {
|
|
@@ -1428,7 +1723,11 @@ export async function buildResearchMilestonePrompt(mid: string, midTitle: string
|
|
|
1428
1723
|
if (knowledgeInlineRM) parts.push(knowledgeInlineRM);
|
|
1429
1724
|
}
|
|
1430
1725
|
|
|
1431
|
-
const inlinedContext =
|
|
1726
|
+
const inlinedContext = prependContextModeToBlock(
|
|
1727
|
+
"research-milestone",
|
|
1728
|
+
base,
|
|
1729
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${parts.join("\n\n---\n\n")}`),
|
|
1730
|
+
);
|
|
1432
1731
|
|
|
1433
1732
|
const outputRelPath = relMilestoneFile(base, mid, "RESEARCH");
|
|
1434
1733
|
return loadPrompt("research-milestone", {
|
|
@@ -1462,6 +1761,8 @@ export async function buildPlanMilestonePrompt(mid: string, midTitle: string, ba
|
|
|
1462
1761
|
const researchAnchor = readPhaseAnchor(base, mid, "research-milestone");
|
|
1463
1762
|
if (researchAnchor) inlined.push(formatAnchorForPrompt(researchAnchor));
|
|
1464
1763
|
|
|
1764
|
+
inlined.push(formatProjectClassificationForPlanning(classifyProject(base)));
|
|
1765
|
+
|
|
1465
1766
|
inlined.push(await inlineFile(contextPath, contextRel, "Milestone Context"));
|
|
1466
1767
|
const researchInline = await inlineFileOptional(researchPath, researchRel, "Milestone Research");
|
|
1467
1768
|
if (researchInline) inlined.push(researchInline);
|
|
@@ -1501,7 +1802,11 @@ export async function buildPlanMilestonePrompt(mid: string, midTitle: string, ba
|
|
|
1501
1802
|
inlined.push(inlineTemplate("task-plan", "Task Plan"));
|
|
1502
1803
|
}
|
|
1503
1804
|
|
|
1504
|
-
const inlinedContext =
|
|
1805
|
+
const inlinedContext = prependContextModeToBlock(
|
|
1806
|
+
"plan-milestone",
|
|
1807
|
+
base,
|
|
1808
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${inlined.join("\n\n---\n\n")}`),
|
|
1809
|
+
);
|
|
1505
1810
|
|
|
1506
1811
|
const outputRelPath = relMilestoneFile(base, mid, "ROADMAP");
|
|
1507
1812
|
const researchOutputPath = join(base, relMilestoneFile(base, mid, "RESEARCH"));
|
|
@@ -1530,6 +1835,7 @@ export async function buildPlanMilestonePrompt(mid: string, midTitle: string, ba
|
|
|
1530
1835
|
|
|
1531
1836
|
export async function buildResearchSlicePrompt(
|
|
1532
1837
|
mid: string, _midTitle: string, sid: string, sTitle: string, base: string,
|
|
1838
|
+
options?: { contextModeRenderMode?: ContextModeRenderMode },
|
|
1533
1839
|
): Promise<string> {
|
|
1534
1840
|
const roadmapPath = resolveMilestoneFile(base, mid, "ROADMAP");
|
|
1535
1841
|
const roadmapRel = relMilestoneFile(base, mid, "ROADMAP");
|
|
@@ -1582,7 +1888,12 @@ export async function buildResearchSlicePrompt(
|
|
|
1582
1888
|
const overridesInline = formatOverridesSection(activeOverrides);
|
|
1583
1889
|
if (overridesInline) inlined.unshift(overridesInline);
|
|
1584
1890
|
|
|
1585
|
-
const inlinedContext =
|
|
1891
|
+
const inlinedContext = prependContextModeToBlock(
|
|
1892
|
+
"research-slice",
|
|
1893
|
+
base,
|
|
1894
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${inlined.join("\n\n---\n\n")}`),
|
|
1895
|
+
options?.contextModeRenderMode,
|
|
1896
|
+
);
|
|
1586
1897
|
|
|
1587
1898
|
const outputRelPath = relSliceFile(base, mid, sid, "RESEARCH");
|
|
1588
1899
|
return loadPrompt("research-slice", {
|
|
@@ -1629,6 +1940,7 @@ async function renderSlicePrompt(options: {
|
|
|
1629
1940
|
sessionContextWindow?: number;
|
|
1630
1941
|
modelRegistry?: MinimalModelRegistry;
|
|
1631
1942
|
sessionProvider?: string;
|
|
1943
|
+
contextModeRenderMode?: ContextModeRenderMode;
|
|
1632
1944
|
}): Promise<string> {
|
|
1633
1945
|
const {
|
|
1634
1946
|
mid, sid, sTitle, base, level, promptTemplate, prependBlocks = [], extraVars = {},
|
|
@@ -1675,7 +1987,7 @@ async function renderSlicePrompt(options: {
|
|
|
1675
1987
|
const graphBlock = await inlineGraphSubgraph(base, `${sid} ${sTitle}`, { budget: 3000 });
|
|
1676
1988
|
if (graphBlock) inlined.push(graphBlock);
|
|
1677
1989
|
|
|
1678
|
-
inlined.push(inlineTemplate("plan", "Slice Plan"));
|
|
1990
|
+
inlined.push(level === "minimal" ? inlineCompactTemplate("plan", "Slice Plan") : inlineTemplate("plan", "Slice Plan"));
|
|
1679
1991
|
if (level === "full") {
|
|
1680
1992
|
inlined.push(inlineTemplate("task-plan", "Task Plan"));
|
|
1681
1993
|
}
|
|
@@ -1684,7 +1996,12 @@ async function renderSlicePrompt(options: {
|
|
|
1684
1996
|
const overridesInline = formatOverridesSection(await loadActiveOverrides(base));
|
|
1685
1997
|
if (overridesInline) inlined.unshift(overridesInline);
|
|
1686
1998
|
|
|
1687
|
-
const inlinedContext =
|
|
1999
|
+
const inlinedContext = prependContextModeToBlock(
|
|
2000
|
+
promptTemplate,
|
|
2001
|
+
base,
|
|
2002
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${inlined.join("\n\n---\n\n")}`),
|
|
2003
|
+
options.contextModeRenderMode,
|
|
2004
|
+
);
|
|
1688
2005
|
const executorContextConstraints = formatExecutorConstraints(sessionContextWindow, modelRegistry, sessionProvider);
|
|
1689
2006
|
const outputRelPath = relSliceFile(base, mid, sid, "PLAN");
|
|
1690
2007
|
const commitInstruction = "Do not commit — .gsd/ planning docs are managed externally and not tracked in git.";
|
|
@@ -1820,6 +2137,8 @@ export interface ExecuteTaskPromptOptions {
|
|
|
1820
2137
|
modelRegistry?: MinimalModelRegistry;
|
|
1821
2138
|
/** Session model provider, used for provider-specific effective context windows. */
|
|
1822
2139
|
sessionProvider?: string;
|
|
2140
|
+
/** Render compact Context Mode guidance when embedded inside another prompt. */
|
|
2141
|
+
contextModeRenderMode?: ContextModeRenderMode;
|
|
1823
2142
|
}
|
|
1824
2143
|
|
|
1825
2144
|
export async function buildExecuteTaskPrompt(
|
|
@@ -1896,7 +2215,7 @@ export async function buildExecuteTaskPrompt(
|
|
|
1896
2215
|
const graphBlockET = await inlineGraphSubgraph(base, `${tid} ${tTitle}`, { budget: 2000 });
|
|
1897
2216
|
|
|
1898
2217
|
const inlinedTemplates = inlineLevel === "minimal"
|
|
1899
|
-
?
|
|
2218
|
+
? inlineCompactTemplate("task-summary", "Task Summary")
|
|
1900
2219
|
: [
|
|
1901
2220
|
inlineTemplate("task-summary", "Task Summary"),
|
|
1902
2221
|
inlineTemplate("decisions", "Decisions"),
|
|
@@ -1962,6 +2281,7 @@ export async function buildExecuteTaskPrompt(
|
|
|
1962
2281
|
getGatesForTurn("execute-task"),
|
|
1963
2282
|
{ pending: new Set(etPending.map((g) => g.gate_id)), allowOmit: true },
|
|
1964
2283
|
);
|
|
2284
|
+
phaseAnchorSection = prependContextModeToBlock("execute-task", base, phaseAnchorSection, opts.contextModeRenderMode);
|
|
1965
2285
|
|
|
1966
2286
|
return loadPrompt("execute-task", {
|
|
1967
2287
|
overridesSection,
|
|
@@ -1990,6 +2310,7 @@ export async function buildExecuteTaskPrompt(
|
|
|
1990
2310
|
taskTitle: tTitle,
|
|
1991
2311
|
taskPlanContent,
|
|
1992
2312
|
extraContext: [taskPlanInline, slicePlanExcerpt, finalCarryForward, resumeSection],
|
|
2313
|
+
unitType: "execute-task",
|
|
1993
2314
|
}),
|
|
1994
2315
|
});
|
|
1995
2316
|
}
|
|
@@ -2040,7 +2361,9 @@ export async function buildCompleteSlicePrompt(
|
|
|
2040
2361
|
return blocks.length > 0 ? blocks.join("\n\n---\n\n") : null;
|
|
2041
2362
|
}
|
|
2042
2363
|
case "templates": {
|
|
2043
|
-
const parts = [
|
|
2364
|
+
const parts = [inlineLevel === "minimal"
|
|
2365
|
+
? inlineCompactTemplate("slice-summary", "Slice Summary")
|
|
2366
|
+
: inlineTemplate("slice-summary", "Slice Summary")];
|
|
2044
2367
|
if (inlineLevel !== "minimal") {
|
|
2045
2368
|
parts.push(inlineTemplate("uat", "UAT"));
|
|
2046
2369
|
}
|
|
@@ -2088,7 +2411,11 @@ export async function buildCompleteSlicePrompt(
|
|
|
2088
2411
|
? `${completeOverridesInline}\n\n---\n\n${body}`
|
|
2089
2412
|
: body;
|
|
2090
2413
|
|
|
2091
|
-
const inlinedContext =
|
|
2414
|
+
const inlinedContext = prependContextModeToBlock(
|
|
2415
|
+
"complete-slice",
|
|
2416
|
+
base,
|
|
2417
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${finalBody}`),
|
|
2418
|
+
);
|
|
2092
2419
|
const roadmapRel = relMilestoneFile(base, mid, "ROADMAP");
|
|
2093
2420
|
|
|
2094
2421
|
const sliceRel = relSlicePath(base, mid, sid);
|
|
@@ -2126,6 +2453,9 @@ export async function buildCompleteMilestonePrompt(
|
|
|
2126
2453
|
const inlineLevel = level ?? resolveInlineLevel();
|
|
2127
2454
|
const roadmapPath = resolveMilestoneFile(base, mid, "ROADMAP");
|
|
2128
2455
|
const roadmapRel = relMilestoneFile(base, mid, "ROADMAP");
|
|
2456
|
+
const validationPath = resolveMilestoneFile(base, mid, "VALIDATION");
|
|
2457
|
+
const validationRel = relMilestoneFile(base, mid, "VALIDATION");
|
|
2458
|
+
const validationContent = validationPath ? await loadFile(validationPath) : null;
|
|
2129
2459
|
|
|
2130
2460
|
const inlined: string[] = [];
|
|
2131
2461
|
inlined.push(await inlineFile(roadmapPath, roadmapRel, "Milestone Roadmap"));
|
|
@@ -2167,6 +2497,13 @@ export async function buildCompleteMilestonePrompt(
|
|
|
2167
2497
|
`### On-demand Slice Summaries\n\nExcerpted above. Read the full file for any slice when the excerpt's section heads don't carry enough narrative for the milestone summary you're drafting:\n\n${pathList}`,
|
|
2168
2498
|
);
|
|
2169
2499
|
}
|
|
2500
|
+
const validationContext = [
|
|
2501
|
+
formatCloseoutReviewInstructions(validationContent, validationRel, [validationRel, roadmapRel, ...summaryRelPaths]),
|
|
2502
|
+
];
|
|
2503
|
+
if (validationContent) {
|
|
2504
|
+
validationContext.push(`### Milestone Validation\nSource: \`${validationRel}\`\n\n${validationContent.trim()}`);
|
|
2505
|
+
}
|
|
2506
|
+
inlined.unshift(...validationContext);
|
|
2170
2507
|
|
|
2171
2508
|
// Inline root GSD files (skip for minimal — completion can read these if needed)
|
|
2172
2509
|
if (inlineLevel !== "minimal") {
|
|
@@ -2187,7 +2524,11 @@ export async function buildCompleteMilestonePrompt(
|
|
|
2187
2524
|
if (contextInline) inlined.push(contextInline);
|
|
2188
2525
|
inlined.push(inlineTemplate("milestone-summary", "Milestone Summary"));
|
|
2189
2526
|
|
|
2190
|
-
const inlinedContext =
|
|
2527
|
+
const inlinedContext = prependContextModeToBlock(
|
|
2528
|
+
"complete-milestone",
|
|
2529
|
+
base,
|
|
2530
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${inlined.join("\n\n---\n\n")}`),
|
|
2531
|
+
);
|
|
2191
2532
|
|
|
2192
2533
|
const milestoneSummaryPath = join(base, `${relMilestonePath(base, mid)}/${mid}-SUMMARY.md`);
|
|
2193
2534
|
|
|
@@ -2324,7 +2665,11 @@ export async function buildValidateMilestonePrompt(
|
|
|
2324
2665
|
const contextInline = await inlineFileOptional(contextPath, contextRel, "Milestone Context");
|
|
2325
2666
|
if (contextInline) inlined.push(contextInline);
|
|
2326
2667
|
|
|
2327
|
-
const inlinedContext =
|
|
2668
|
+
const inlinedContext = prependContextModeToBlock(
|
|
2669
|
+
"validate-milestone",
|
|
2670
|
+
base,
|
|
2671
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${inlined.join("\n\n---\n\n")}`),
|
|
2672
|
+
);
|
|
2328
2673
|
|
|
2329
2674
|
const validationOutputPath = join(base, `${relMilestonePath(base, mid)}/${mid}-VALIDATION.md`);
|
|
2330
2675
|
const roadmapOutputPath = `${relMilestonePath(base, mid)}/${mid}-ROADMAP.md`;
|
|
@@ -2400,7 +2745,11 @@ export async function buildReplanSlicePrompt(
|
|
|
2400
2745
|
const replanOverridesInline = formatOverridesSection(replanActiveOverrides);
|
|
2401
2746
|
if (replanOverridesInline) inlined.unshift(replanOverridesInline);
|
|
2402
2747
|
|
|
2403
|
-
const inlinedContext =
|
|
2748
|
+
const inlinedContext = prependContextModeToBlock(
|
|
2749
|
+
"replan-slice",
|
|
2750
|
+
base,
|
|
2751
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${inlined.join("\n\n---\n\n")}`),
|
|
2752
|
+
);
|
|
2404
2753
|
|
|
2405
2754
|
const replanPath = join(base, `${relSlicePath(base, mid, sid)}/${sid}-REPLAN.md`);
|
|
2406
2755
|
|
|
@@ -2474,7 +2823,11 @@ export async function buildRunUatPrompt(
|
|
|
2474
2823
|
};
|
|
2475
2824
|
|
|
2476
2825
|
const composed = await composeInlinedContext("run-uat", resolveArtifact);
|
|
2477
|
-
const inlinedContext =
|
|
2826
|
+
const inlinedContext = prependContextModeToBlock(
|
|
2827
|
+
"run-uat",
|
|
2828
|
+
base,
|
|
2829
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${composed}`),
|
|
2830
|
+
);
|
|
2478
2831
|
|
|
2479
2832
|
const uatResultPath = join(base, relSliceFile(base, mid, sliceId, "ASSESSMENT"));
|
|
2480
2833
|
const uatType = getUatType(uatContent);
|
|
@@ -2548,7 +2901,11 @@ export async function buildReassessRoadmapPrompt(
|
|
|
2548
2901
|
const knowledgeInlineRA = await inlineKnowledgeBudgeted(base, extractKeywords(midTitle));
|
|
2549
2902
|
if (knowledgeInlineRA) parts.push(knowledgeInlineRA);
|
|
2550
2903
|
|
|
2551
|
-
const inlinedContext =
|
|
2904
|
+
const inlinedContext = prependContextModeToBlock(
|
|
2905
|
+
"reassess-roadmap",
|
|
2906
|
+
base,
|
|
2907
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${parts.join("\n\n---\n\n")}`),
|
|
2908
|
+
);
|
|
2552
2909
|
|
|
2553
2910
|
const assessmentPath = join(base, relSliceFile(base, mid, completedSliceId, "ASSESSMENT"));
|
|
2554
2911
|
|
|
@@ -2641,6 +2998,7 @@ export async function buildReactiveExecutePrompt(
|
|
|
2641
2998
|
sessionContextWindow: opts?.sessionContextWindow,
|
|
2642
2999
|
modelRegistry: opts?.modelRegistry,
|
|
2643
3000
|
sessionProvider: opts?.sessionProvider,
|
|
3001
|
+
contextModeRenderMode: "nested",
|
|
2644
3002
|
},
|
|
2645
3003
|
);
|
|
2646
3004
|
|
|
@@ -2664,7 +3022,7 @@ export async function buildReactiveExecutePrompt(
|
|
|
2664
3022
|
milestoneTitle: midTitle,
|
|
2665
3023
|
sliceId: sid,
|
|
2666
3024
|
sliceTitle: sTitle,
|
|
2667
|
-
graphContext,
|
|
3025
|
+
graphContext: prependContextModeToBlock("reactive-execute", base, graphContext),
|
|
2668
3026
|
readyTaskCount: String(readyTaskIds.length),
|
|
2669
3027
|
readyTaskList: readyTaskListLines.join("\n"),
|
|
2670
3028
|
subagentPrompts: subagentSections.join("\n\n---\n\n"),
|
|
@@ -2730,7 +3088,7 @@ export async function buildParallelResearchSlicesPrompt(
|
|
|
2730
3088
|
const subagentSections: string[] = [];
|
|
2731
3089
|
const modelSuffix = subagentModel ? ` with model: "${subagentModel}"` : "";
|
|
2732
3090
|
for (const slice of slices) {
|
|
2733
|
-
const slicePrompt = await buildResearchSlicePrompt(mid, midTitle, slice.id, slice.title, basePath);
|
|
3091
|
+
const slicePrompt = await buildResearchSlicePrompt(mid, midTitle, slice.id, slice.title, basePath, { contextModeRenderMode: "nested" });
|
|
2734
3092
|
subagentSections.push([
|
|
2735
3093
|
`### ${slice.id}: ${slice.title}`,
|
|
2736
3094
|
"",
|
|
@@ -2786,6 +3144,8 @@ export async function buildGateEvaluatePrompt(
|
|
|
2786
3144
|
gateListLines.push(`- **${def.id}**: ${def.question}`);
|
|
2787
3145
|
|
|
2788
3146
|
const subPrompt = [
|
|
3147
|
+
renderContextModeForPrompt("gate-evaluate", base, "nested"),
|
|
3148
|
+
"",
|
|
2789
3149
|
`You are evaluating quality gate **${def.id}** for slice ${sid} (${sTitle}).`,
|
|
2790
3150
|
"",
|
|
2791
3151
|
`**Working directory:** \`${normalizedBase}\`. All file reads, writes, and shell commands MUST operate relative to this directory. Do NOT \`cd\` to any other directory.`,
|
|
@@ -2828,7 +3188,7 @@ export async function buildGateEvaluatePrompt(
|
|
|
2828
3188
|
milestoneTitle: midTitle,
|
|
2829
3189
|
sliceId: sid,
|
|
2830
3190
|
sliceTitle: sTitle,
|
|
2831
|
-
slicePlanContent: planContent,
|
|
3191
|
+
slicePlanContent: prependContextModeToBlock("gate-evaluate", base, planContent),
|
|
2832
3192
|
gateCount: String(pending.length),
|
|
2833
3193
|
gateList: gateListLines.join("\n"),
|
|
2834
3194
|
subagentPrompts: subagentSections.join("\n\n---\n\n"),
|
|
@@ -2905,7 +3265,7 @@ export async function buildRewriteDocsPrompt(
|
|
|
2905
3265
|
|
|
2906
3266
|
const documentList = docList.length > 0 ? docList.join("\n") : "- No active plan documents found.";
|
|
2907
3267
|
|
|
2908
|
-
return loadPrompt("rewrite-docs", {
|
|
3268
|
+
return prependContextModeToBlock("rewrite-docs", base, loadPrompt("rewrite-docs", {
|
|
2909
3269
|
workingDirectory: base,
|
|
2910
3270
|
milestoneId: mid,
|
|
2911
3271
|
milestoneTitle: midTitle,
|
|
@@ -2914,5 +3274,5 @@ export async function buildRewriteDocsPrompt(
|
|
|
2914
3274
|
overrideContent,
|
|
2915
3275
|
documentList,
|
|
2916
3276
|
overridesPath: relGsdRootFile("OVERRIDES"),
|
|
2917
|
-
});
|
|
3277
|
+
}));
|
|
2918
3278
|
}
|