gsd-pi 2.79.0 → 2.80.0-dev.c5f2443b3
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/extensions/github-sync/templates.js +55 -70
- 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 +359 -523
- package/dist/resources/extensions/gsd/auto/orchestrator.js +146 -0
- package/dist/resources/extensions/gsd/auto/phases.js +61 -7
- 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 +3 -0
- package/dist/resources/extensions/gsd/auto-dispatch.js +2 -0
- package/dist/resources/extensions/gsd/auto-prompts.js +220 -32
- package/dist/resources/extensions/gsd/auto-recovery.js +63 -55
- package/dist/resources/extensions/gsd/auto-runtime-state.js +4 -0
- package/dist/resources/extensions/gsd/auto-start.js +3 -2
- 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 +159 -2
- package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +9 -1
- 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 +52 -50
- package/dist/resources/extensions/gsd/bootstrap/write-gate.js +8 -8
- package/dist/resources/extensions/gsd/commands/context.js +1 -1
- 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/custom-workflow-engine.js +4 -0
- package/dist/resources/extensions/gsd/db-adapter.js +47 -0
- package/dist/resources/extensions/gsd/db-base-schema.js +337 -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 +394 -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/escalation.js +2 -0
- package/dist/resources/extensions/gsd/gsd-db.js +215 -1519
- package/dist/resources/extensions/gsd/guided-flow.js +40 -0
- 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/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/post-execution-checks.js +27 -6
- package/dist/resources/extensions/gsd/pr-evidence.js +76 -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 -30
- 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 +45 -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/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/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/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/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 +11 -11
- package/dist/web/standalone/.next/build-manifest.json +3 -3
- package/dist/web/standalone/.next/prerender-manifest.json +3 -3
- 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 +11 -11
- 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 +2 -2
- package/dist/web/standalone/.next/server/middleware-build-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/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/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 +9 -2
- 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/contracts/tsconfig.tsbuildinfo +1 -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/package.json +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +14 -0
- 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/tool-card-cleanup-and-success-runtime.test.js +20 -0
- 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.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +6 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +9 -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 +31 -10
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
- 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/package.json +2 -1
- package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +23 -2
- package/packages/pi-coding-agent/src/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.ts +31 -0
- package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +6 -1
- package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +50 -9
- package/packages/pi-coding-agent/src/modes/rpc/rpc-types.ts +3 -336
- package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
- package/packages/pi-tui/dist/tui.d.ts +1 -0
- package/packages/pi-tui/dist/tui.d.ts.map +1 -1
- package/packages/pi-tui/dist/tui.js +8 -2
- package/packages/pi-tui/dist/tui.js.map +1 -1
- package/packages/pi-tui/package.json +1 -1
- package/packages/pi-tui/src/tui.ts +8 -2
- 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/package.json +1 -1
- package/src/resources/extensions/github-sync/templates.ts +59 -84
- 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 +10 -3
- package/src/resources/extensions/gsd/auto/loop.ts +411 -598
- package/src/resources/extensions/gsd/auto/orchestrator.ts +161 -0
- package/src/resources/extensions/gsd/auto/phases.ts +88 -9
- 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 +4 -0
- package/src/resources/extensions/gsd/auto-dispatch.ts +1 -0
- package/src/resources/extensions/gsd/auto-prompts.ts +276 -31
- package/src/resources/extensions/gsd/auto-recovery.ts +59 -53
- package/src/resources/extensions/gsd/auto-runtime-state.ts +7 -0
- package/src/resources/extensions/gsd/auto-start.ts +3 -2
- 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 +167 -1
- package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +14 -1
- 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 +62 -51
- package/src/resources/extensions/gsd/bootstrap/tests/write-gate-shouldblock-basepath.test.ts +97 -0
- package/src/resources/extensions/gsd/bootstrap/write-gate.ts +8 -4
- package/src/resources/extensions/gsd/commands/context.ts +1 -1
- 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/custom-workflow-engine.ts +6 -0
- package/src/resources/extensions/gsd/db-adapter.ts +75 -0
- package/src/resources/extensions/gsd/db-base-schema.ts +368 -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 +434 -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/escalation.ts +3 -1
- package/src/resources/extensions/gsd/gsd-db.ts +260 -1659
- package/src/resources/extensions/gsd/guided-flow.ts +47 -0
- 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/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/post-execution-checks.ts +35 -7
- package/src/resources/extensions/gsd/pr-evidence.ts +124 -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 -30
- 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 +45 -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/state.ts +6 -3
- package/src/resources/extensions/gsd/tests/auto-abort-pause-regression.test.ts +32 -0
- package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +65 -0
- package/src/resources/extensions/gsd/tests/auto-loop.test.ts +38 -0
- 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 +108 -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/commands-eval-review.test.ts +2 -2
- 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/current-directory-root-homedir-fallback.test.ts +63 -0
- package/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts +38 -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 +12 -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.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/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/forensics-prompt-rendering.test.ts +36 -0
- package/src/resources/extensions/gsd/tests/gsd-db.test.ts +95 -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/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/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 +27 -0
- package/src/resources/extensions/gsd/tests/post-execution-checks.test.ts +46 -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/run-uat-composer.test.ts +2 -0
- 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/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/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/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/tools/complete-milestone.ts +15 -9
- package/src/resources/extensions/gsd/tools/complete-task.ts +4 -1
- 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/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/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 → bQDK5_LtkGVS64AirQgQG}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{J-CU-p_sp45CJHT3R9TJS → bQDK5_LtkGVS64AirQgQG}/_ssgManifest.js +0 -0
|
@@ -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,7 +34,7 @@ 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";
|
|
@@ -89,6 +90,30 @@ function capPreamble(preamble: string): string {
|
|
|
89
90
|
return truncateAtSectionBoundary(preamble, budget).content;
|
|
90
91
|
}
|
|
91
92
|
|
|
93
|
+
function renderContextModeForPrompt(
|
|
94
|
+
unitType: string,
|
|
95
|
+
base: string,
|
|
96
|
+
renderMode: ContextModeRenderMode = "standalone",
|
|
97
|
+
): string {
|
|
98
|
+
const effectivePrefs = loadEffectiveGSDPreferences(base)?.preferences;
|
|
99
|
+
return composeContextModeInstructions(unitType, {
|
|
100
|
+
enabled: isContextModeEnabled(effectivePrefs),
|
|
101
|
+
renderMode,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function prependContextModeToBlock(
|
|
106
|
+
unitType: string,
|
|
107
|
+
base: string,
|
|
108
|
+
block: string,
|
|
109
|
+
renderMode: ContextModeRenderMode = "standalone",
|
|
110
|
+
): string {
|
|
111
|
+
const contextMode = renderContextModeForPrompt(unitType, base, renderMode);
|
|
112
|
+
if (!contextMode) return block;
|
|
113
|
+
if (!block.trim()) return contextMode;
|
|
114
|
+
return `${contextMode}\n\n${block}`;
|
|
115
|
+
}
|
|
116
|
+
|
|
92
117
|
// ─── Executor Constraints ─────────────────────────────────────────────────────
|
|
93
118
|
|
|
94
119
|
/**
|
|
@@ -250,6 +275,171 @@ export async function inlineFileSmart(
|
|
|
250
275
|
return `### ${label}\nSource: \`${relPath}\`\n\n${truncated}`;
|
|
251
276
|
}
|
|
252
277
|
|
|
278
|
+
function inlineCompactTemplate(name: "plan" | "task-summary" | "slice-summary", label: string): string {
|
|
279
|
+
const compact: Record<typeof name, string> = {
|
|
280
|
+
plan: [
|
|
281
|
+
"# {{sliceId}}: {{sliceTitle}}",
|
|
282
|
+
"",
|
|
283
|
+
"**Goal:** {{goal}}",
|
|
284
|
+
"**Demo:** {{demo}}",
|
|
285
|
+
"",
|
|
286
|
+
"## Must-Haves",
|
|
287
|
+
"- {{mustHave}}",
|
|
288
|
+
"",
|
|
289
|
+
"## Threat Surface",
|
|
290
|
+
"- Abuse: {{abuseScenarios}}",
|
|
291
|
+
"- Data exposure: {{sensitiveDataAccessible}}",
|
|
292
|
+
"- Input trust: {{untrustedInput}}",
|
|
293
|
+
"",
|
|
294
|
+
"## Requirement Impact",
|
|
295
|
+
"- Requirements touched: {{requirementIds}}",
|
|
296
|
+
"- Re-verify: {{whatMustBeRetested}}",
|
|
297
|
+
"- Decisions revisited: {{decisionIds}}",
|
|
298
|
+
"",
|
|
299
|
+
"## Proof Level",
|
|
300
|
+
"- This slice proves: {{contract | integration | operational | final-assembly}}",
|
|
301
|
+
"- Real runtime required: {{yes/no}}",
|
|
302
|
+
"- Human/UAT required: {{yes/no}}",
|
|
303
|
+
"",
|
|
304
|
+
"## Verification",
|
|
305
|
+
"- {{testFileOrCommand}}",
|
|
306
|
+
"",
|
|
307
|
+
"## Observability / Diagnostics",
|
|
308
|
+
"- Runtime signals: {{signalOrNone}}",
|
|
309
|
+
"- Inspection surfaces: {{surfaceOrNone}}",
|
|
310
|
+
"- Failure visibility: {{failureSignalOrNone}}",
|
|
311
|
+
"- Redaction constraints: {{secretOrPiiBoundaryOrNone}}",
|
|
312
|
+
"",
|
|
313
|
+
"## Integration Closure",
|
|
314
|
+
"- Upstream surfaces consumed: {{filesModulesContracts}}",
|
|
315
|
+
"- New wiring introduced: {{entrypointOrNone}}",
|
|
316
|
+
"- Remaining end-to-end work: {{listOrNothing}}",
|
|
317
|
+
"",
|
|
318
|
+
"## Tasks",
|
|
319
|
+
"- [ ] **T01: {{taskTitle}}** `est:{{estimate}}`",
|
|
320
|
+
" - Why: {{whyThisTaskExists}}",
|
|
321
|
+
" - Files: `{{filePath}}`",
|
|
322
|
+
" - Do: {{specificImplementationStepsAndConstraints}}",
|
|
323
|
+
" - Verify: {{testCommandOrRuntimeCheck}}",
|
|
324
|
+
" - Done when: {{measurableAcceptanceCondition}}",
|
|
325
|
+
"",
|
|
326
|
+
"## Files Likely Touched",
|
|
327
|
+
"- `{{filePath}}`",
|
|
328
|
+
].join("\n"),
|
|
329
|
+
"task-summary": [
|
|
330
|
+
"---",
|
|
331
|
+
"id: {{taskId}}",
|
|
332
|
+
"parent: {{sliceId}}",
|
|
333
|
+
"milestone: {{milestoneId}}",
|
|
334
|
+
"provides: [{{whatThisTaskProvides}}]",
|
|
335
|
+
"key_files: [{{filePath}}]",
|
|
336
|
+
"key_decisions: [{{decision}}]",
|
|
337
|
+
"patterns_established: [{{pattern}}]",
|
|
338
|
+
"observability_surfaces: [{{diagnosticOrNone}}]",
|
|
339
|
+
"duration: {{duration}}",
|
|
340
|
+
"verification_result: passed",
|
|
341
|
+
"completed_at: {{date}}",
|
|
342
|
+
"blocker_discovered: false",
|
|
343
|
+
"---",
|
|
344
|
+
"",
|
|
345
|
+
"# {{taskId}}: {{taskTitle}}",
|
|
346
|
+
"**{{oneLiner}}**",
|
|
347
|
+
"",
|
|
348
|
+
"## What Happened",
|
|
349
|
+
"{{narrative}}",
|
|
350
|
+
"",
|
|
351
|
+
"## Verification",
|
|
352
|
+
"{{whatWasVerifiedAndHow}}",
|
|
353
|
+
"",
|
|
354
|
+
"## Verification Evidence",
|
|
355
|
+
"| # | Command | Exit Code | Verdict | Duration |",
|
|
356
|
+
"|---|---------|-----------|---------|----------|",
|
|
357
|
+
"| {{row}} | {{command}} | {{exitCode}} | {{verdict}} | {{duration}} |",
|
|
358
|
+
"",
|
|
359
|
+
"## Diagnostics",
|
|
360
|
+
"{{diagnosticsOrNone}}",
|
|
361
|
+
"",
|
|
362
|
+
"## Deviations",
|
|
363
|
+
"{{deviationsFromPlan_OR_none}}",
|
|
364
|
+
"",
|
|
365
|
+
"## Known Issues",
|
|
366
|
+
"{{issuesDiscoveredButNotFixed_OR_none}}",
|
|
367
|
+
"",
|
|
368
|
+
"## Files Created/Modified",
|
|
369
|
+
"- `{{filePath}}` - {{description}}",
|
|
370
|
+
].join("\n"),
|
|
371
|
+
"slice-summary": [
|
|
372
|
+
"---",
|
|
373
|
+
"id: {{sliceId}}",
|
|
374
|
+
"parent: {{milestoneId}}",
|
|
375
|
+
"milestone: {{milestoneId}}",
|
|
376
|
+
"provides: [{{whatThisSliceProvides}}]",
|
|
377
|
+
"requires: []",
|
|
378
|
+
"affects: []",
|
|
379
|
+
"key_files: [{{filePath}}]",
|
|
380
|
+
"key_decisions: [{{decision}}]",
|
|
381
|
+
"patterns_established: [{{pattern}}]",
|
|
382
|
+
"observability_surfaces: [{{diagnosticOrNone}}]",
|
|
383
|
+
"drill_down_paths: [{{pathToTaskSummary}}]",
|
|
384
|
+
"duration: {{duration}}",
|
|
385
|
+
"verification_result: passed",
|
|
386
|
+
"completed_at: {{date}}",
|
|
387
|
+
"---",
|
|
388
|
+
"",
|
|
389
|
+
"# {{sliceId}}: {{sliceTitle}}",
|
|
390
|
+
"**{{oneLiner}}**",
|
|
391
|
+
"",
|
|
392
|
+
"## What Happened",
|
|
393
|
+
"{{narrative}}",
|
|
394
|
+
"",
|
|
395
|
+
"## Verification",
|
|
396
|
+
"{{whatWasVerifiedAcrossAllTasks}}",
|
|
397
|
+
"",
|
|
398
|
+
"## Requirements Advanced",
|
|
399
|
+
"- {{requirementId}} - {{howThisSliceAdvancedIt}}",
|
|
400
|
+
"",
|
|
401
|
+
"## Requirements Validated",
|
|
402
|
+
"- {{requirementId}} - {{whatProofNowMakesItValidated}}",
|
|
403
|
+
"",
|
|
404
|
+
"## New Requirements Surfaced",
|
|
405
|
+
"- {{newRequirementOr_none}}",
|
|
406
|
+
"",
|
|
407
|
+
"## Requirements Invalidated or Re-scoped",
|
|
408
|
+
"- {{requirementIdOr_none}} - {{whatChanged}}",
|
|
409
|
+
"",
|
|
410
|
+
"## Operational Readiness",
|
|
411
|
+
"- Health signal: {{healthSignalOrNA}}",
|
|
412
|
+
"- Failure signal: {{failureSignalOrNA}}",
|
|
413
|
+
"- Recovery: {{recoveryOrNA}}",
|
|
414
|
+
"- Monitoring gaps: {{gapsOrNone}}",
|
|
415
|
+
"",
|
|
416
|
+
"## Deviations",
|
|
417
|
+
"{{deviationsFromPlan_OR_none}}",
|
|
418
|
+
"",
|
|
419
|
+
"## Known Limitations",
|
|
420
|
+
"{{whatDoesntWorkYet_OR_whatWasDeferredToLaterSlices}}",
|
|
421
|
+
"",
|
|
422
|
+
"## Follow-ups",
|
|
423
|
+
"{{workDeferredOrDiscoveredDuringExecution_OR_none}}",
|
|
424
|
+
"",
|
|
425
|
+
"## Files Created/Modified",
|
|
426
|
+
"- `{{filePath}}` - {{description}}",
|
|
427
|
+
"",
|
|
428
|
+
"## Forward Intelligence",
|
|
429
|
+
"### What the next slice should know",
|
|
430
|
+
"- {{insightThatWouldHelpDownstreamWork}}",
|
|
431
|
+
"### What's fragile",
|
|
432
|
+
"- {{fragileAreaOrThinImplementation}} - {{whyItMatters}}",
|
|
433
|
+
"### Authoritative diagnostics",
|
|
434
|
+
"- {{whereAFutureAgentShouldLookFirst}} - {{whyThisSignalIsTrustworthy}}",
|
|
435
|
+
"### What assumptions changed",
|
|
436
|
+
"- {{originalAssumption}} - {{whatActuallyHappened}}",
|
|
437
|
+
].join("\n"),
|
|
438
|
+
};
|
|
439
|
+
|
|
440
|
+
return `${compact[name]}\n\n### Output Template: ${label}\nSource: \`templates/${name}.md\``;
|
|
441
|
+
}
|
|
442
|
+
|
|
253
443
|
/**
|
|
254
444
|
* Compact slice-summary excerpt for milestone-level closers (#4780).
|
|
255
445
|
*
|
|
@@ -1266,6 +1456,7 @@ export async function buildDiscussMilestonePrompt(
|
|
|
1266
1456
|
structuredQuestionsAvailable = "false",
|
|
1267
1457
|
): Promise<string> {
|
|
1268
1458
|
const discussTemplates = inlineTemplate("context", "Context");
|
|
1459
|
+
const contextModeInstructions = renderContextModeForPrompt("discuss-milestone", base);
|
|
1269
1460
|
|
|
1270
1461
|
const basePrompt = loadPrompt("guided-discuss-milestone", {
|
|
1271
1462
|
workingDirectory: base,
|
|
@@ -1276,16 +1467,17 @@ export async function buildDiscussMilestonePrompt(
|
|
|
1276
1467
|
commitInstruction: "Do not commit planning artifacts — .gsd/ is managed externally.",
|
|
1277
1468
|
fastPathInstruction: "",
|
|
1278
1469
|
});
|
|
1470
|
+
const promptWithContextMode = prependContextModeToBlock("discuss-milestone", base, basePrompt);
|
|
1279
1471
|
|
|
1280
1472
|
// If a CONTEXT-DRAFT.md exists, append it as seed material
|
|
1281
1473
|
const draftPath = resolveMilestoneFile(base, mid, "CONTEXT-DRAFT");
|
|
1282
1474
|
const draftContent = draftPath ? await loadFile(draftPath) : null;
|
|
1283
1475
|
|
|
1284
1476
|
if (draftContent) {
|
|
1285
|
-
return `${
|
|
1477
|
+
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
1478
|
}
|
|
1287
1479
|
|
|
1288
|
-
return basePrompt;
|
|
1480
|
+
return contextModeInstructions ? promptWithContextMode : basePrompt;
|
|
1289
1481
|
}
|
|
1290
1482
|
|
|
1291
1483
|
/**
|
|
@@ -1298,10 +1490,10 @@ export async function buildWorkflowPreferencesPrompt(
|
|
|
1298
1490
|
base: string,
|
|
1299
1491
|
structuredQuestionsAvailable = "false",
|
|
1300
1492
|
): Promise<string> {
|
|
1301
|
-
return loadPrompt("guided-workflow-preferences", {
|
|
1493
|
+
return prependContextModeToBlock("workflow-preferences", base, loadPrompt("guided-workflow-preferences", {
|
|
1302
1494
|
workingDirectory: base,
|
|
1303
1495
|
structuredQuestionsAvailable,
|
|
1304
|
-
});
|
|
1496
|
+
}));
|
|
1305
1497
|
}
|
|
1306
1498
|
|
|
1307
1499
|
/**
|
|
@@ -1315,10 +1507,10 @@ export async function buildResearchProjectPrompt(
|
|
|
1315
1507
|
base: string,
|
|
1316
1508
|
structuredQuestionsAvailable = "false",
|
|
1317
1509
|
): Promise<string> {
|
|
1318
|
-
return loadPrompt("guided-research-project", {
|
|
1510
|
+
return prependContextModeToBlock("research-project", base, loadPrompt("guided-research-project", {
|
|
1319
1511
|
workingDirectory: base,
|
|
1320
1512
|
structuredQuestionsAvailable,
|
|
1321
|
-
});
|
|
1513
|
+
}));
|
|
1322
1514
|
}
|
|
1323
1515
|
|
|
1324
1516
|
/**
|
|
@@ -1331,10 +1523,10 @@ export async function buildResearchDecisionPrompt(
|
|
|
1331
1523
|
base: string,
|
|
1332
1524
|
structuredQuestionsAvailable = "false",
|
|
1333
1525
|
): Promise<string> {
|
|
1334
|
-
return loadPrompt("guided-research-decision", {
|
|
1526
|
+
return prependContextModeToBlock("research-decision", base, loadPrompt("guided-research-decision", {
|
|
1335
1527
|
workingDirectory: base,
|
|
1336
1528
|
structuredQuestionsAvailable,
|
|
1337
|
-
});
|
|
1529
|
+
}));
|
|
1338
1530
|
}
|
|
1339
1531
|
|
|
1340
1532
|
/**
|
|
@@ -1349,12 +1541,12 @@ export async function buildDiscussProjectPrompt(
|
|
|
1349
1541
|
): Promise<string> {
|
|
1350
1542
|
const inlinedTemplates = inlineTemplate("project", "Project");
|
|
1351
1543
|
|
|
1352
|
-
return loadPrompt("guided-discuss-project", {
|
|
1544
|
+
return prependContextModeToBlock("discuss-project", base, loadPrompt("guided-discuss-project", {
|
|
1353
1545
|
workingDirectory: base,
|
|
1354
1546
|
inlinedTemplates,
|
|
1355
1547
|
structuredQuestionsAvailable,
|
|
1356
1548
|
commitInstruction: "Do not commit planning artifacts — .gsd/ is managed externally.",
|
|
1357
|
-
});
|
|
1549
|
+
}));
|
|
1358
1550
|
}
|
|
1359
1551
|
|
|
1360
1552
|
/**
|
|
@@ -1369,12 +1561,12 @@ export async function buildDiscussRequirementsPrompt(
|
|
|
1369
1561
|
): Promise<string> {
|
|
1370
1562
|
const inlinedTemplates = inlineTemplate("requirements", "Requirements");
|
|
1371
1563
|
|
|
1372
|
-
return loadPrompt("guided-discuss-requirements", {
|
|
1564
|
+
return prependContextModeToBlock("discuss-requirements", base, loadPrompt("guided-discuss-requirements", {
|
|
1373
1565
|
workingDirectory: base,
|
|
1374
1566
|
inlinedTemplates,
|
|
1375
1567
|
structuredQuestionsAvailable,
|
|
1376
1568
|
commitInstruction: "Do not commit planning artifacts — .gsd/ is managed externally.",
|
|
1377
|
-
});
|
|
1569
|
+
}));
|
|
1378
1570
|
}
|
|
1379
1571
|
|
|
1380
1572
|
export async function buildResearchMilestonePrompt(mid: string, midTitle: string, base: string): Promise<string> {
|
|
@@ -1428,7 +1620,11 @@ export async function buildResearchMilestonePrompt(mid: string, midTitle: string
|
|
|
1428
1620
|
if (knowledgeInlineRM) parts.push(knowledgeInlineRM);
|
|
1429
1621
|
}
|
|
1430
1622
|
|
|
1431
|
-
const inlinedContext =
|
|
1623
|
+
const inlinedContext = prependContextModeToBlock(
|
|
1624
|
+
"research-milestone",
|
|
1625
|
+
base,
|
|
1626
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${parts.join("\n\n---\n\n")}`),
|
|
1627
|
+
);
|
|
1432
1628
|
|
|
1433
1629
|
const outputRelPath = relMilestoneFile(base, mid, "RESEARCH");
|
|
1434
1630
|
return loadPrompt("research-milestone", {
|
|
@@ -1501,7 +1697,11 @@ export async function buildPlanMilestonePrompt(mid: string, midTitle: string, ba
|
|
|
1501
1697
|
inlined.push(inlineTemplate("task-plan", "Task Plan"));
|
|
1502
1698
|
}
|
|
1503
1699
|
|
|
1504
|
-
const inlinedContext =
|
|
1700
|
+
const inlinedContext = prependContextModeToBlock(
|
|
1701
|
+
"plan-milestone",
|
|
1702
|
+
base,
|
|
1703
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${inlined.join("\n\n---\n\n")}`),
|
|
1704
|
+
);
|
|
1505
1705
|
|
|
1506
1706
|
const outputRelPath = relMilestoneFile(base, mid, "ROADMAP");
|
|
1507
1707
|
const researchOutputPath = join(base, relMilestoneFile(base, mid, "RESEARCH"));
|
|
@@ -1530,6 +1730,7 @@ export async function buildPlanMilestonePrompt(mid: string, midTitle: string, ba
|
|
|
1530
1730
|
|
|
1531
1731
|
export async function buildResearchSlicePrompt(
|
|
1532
1732
|
mid: string, _midTitle: string, sid: string, sTitle: string, base: string,
|
|
1733
|
+
options?: { contextModeRenderMode?: ContextModeRenderMode },
|
|
1533
1734
|
): Promise<string> {
|
|
1534
1735
|
const roadmapPath = resolveMilestoneFile(base, mid, "ROADMAP");
|
|
1535
1736
|
const roadmapRel = relMilestoneFile(base, mid, "ROADMAP");
|
|
@@ -1582,7 +1783,12 @@ export async function buildResearchSlicePrompt(
|
|
|
1582
1783
|
const overridesInline = formatOverridesSection(activeOverrides);
|
|
1583
1784
|
if (overridesInline) inlined.unshift(overridesInline);
|
|
1584
1785
|
|
|
1585
|
-
const inlinedContext =
|
|
1786
|
+
const inlinedContext = prependContextModeToBlock(
|
|
1787
|
+
"research-slice",
|
|
1788
|
+
base,
|
|
1789
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${inlined.join("\n\n---\n\n")}`),
|
|
1790
|
+
options?.contextModeRenderMode,
|
|
1791
|
+
);
|
|
1586
1792
|
|
|
1587
1793
|
const outputRelPath = relSliceFile(base, mid, sid, "RESEARCH");
|
|
1588
1794
|
return loadPrompt("research-slice", {
|
|
@@ -1629,6 +1835,7 @@ async function renderSlicePrompt(options: {
|
|
|
1629
1835
|
sessionContextWindow?: number;
|
|
1630
1836
|
modelRegistry?: MinimalModelRegistry;
|
|
1631
1837
|
sessionProvider?: string;
|
|
1838
|
+
contextModeRenderMode?: ContextModeRenderMode;
|
|
1632
1839
|
}): Promise<string> {
|
|
1633
1840
|
const {
|
|
1634
1841
|
mid, sid, sTitle, base, level, promptTemplate, prependBlocks = [], extraVars = {},
|
|
@@ -1675,7 +1882,7 @@ async function renderSlicePrompt(options: {
|
|
|
1675
1882
|
const graphBlock = await inlineGraphSubgraph(base, `${sid} ${sTitle}`, { budget: 3000 });
|
|
1676
1883
|
if (graphBlock) inlined.push(graphBlock);
|
|
1677
1884
|
|
|
1678
|
-
inlined.push(inlineTemplate("plan", "Slice Plan"));
|
|
1885
|
+
inlined.push(level === "minimal" ? inlineCompactTemplate("plan", "Slice Plan") : inlineTemplate("plan", "Slice Plan"));
|
|
1679
1886
|
if (level === "full") {
|
|
1680
1887
|
inlined.push(inlineTemplate("task-plan", "Task Plan"));
|
|
1681
1888
|
}
|
|
@@ -1684,7 +1891,12 @@ async function renderSlicePrompt(options: {
|
|
|
1684
1891
|
const overridesInline = formatOverridesSection(await loadActiveOverrides(base));
|
|
1685
1892
|
if (overridesInline) inlined.unshift(overridesInline);
|
|
1686
1893
|
|
|
1687
|
-
const inlinedContext =
|
|
1894
|
+
const inlinedContext = prependContextModeToBlock(
|
|
1895
|
+
promptTemplate,
|
|
1896
|
+
base,
|
|
1897
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${inlined.join("\n\n---\n\n")}`),
|
|
1898
|
+
options.contextModeRenderMode,
|
|
1899
|
+
);
|
|
1688
1900
|
const executorContextConstraints = formatExecutorConstraints(sessionContextWindow, modelRegistry, sessionProvider);
|
|
1689
1901
|
const outputRelPath = relSliceFile(base, mid, sid, "PLAN");
|
|
1690
1902
|
const commitInstruction = "Do not commit — .gsd/ planning docs are managed externally and not tracked in git.";
|
|
@@ -1820,6 +2032,8 @@ export interface ExecuteTaskPromptOptions {
|
|
|
1820
2032
|
modelRegistry?: MinimalModelRegistry;
|
|
1821
2033
|
/** Session model provider, used for provider-specific effective context windows. */
|
|
1822
2034
|
sessionProvider?: string;
|
|
2035
|
+
/** Render compact Context Mode guidance when embedded inside another prompt. */
|
|
2036
|
+
contextModeRenderMode?: ContextModeRenderMode;
|
|
1823
2037
|
}
|
|
1824
2038
|
|
|
1825
2039
|
export async function buildExecuteTaskPrompt(
|
|
@@ -1896,7 +2110,7 @@ export async function buildExecuteTaskPrompt(
|
|
|
1896
2110
|
const graphBlockET = await inlineGraphSubgraph(base, `${tid} ${tTitle}`, { budget: 2000 });
|
|
1897
2111
|
|
|
1898
2112
|
const inlinedTemplates = inlineLevel === "minimal"
|
|
1899
|
-
?
|
|
2113
|
+
? inlineCompactTemplate("task-summary", "Task Summary")
|
|
1900
2114
|
: [
|
|
1901
2115
|
inlineTemplate("task-summary", "Task Summary"),
|
|
1902
2116
|
inlineTemplate("decisions", "Decisions"),
|
|
@@ -1962,6 +2176,7 @@ export async function buildExecuteTaskPrompt(
|
|
|
1962
2176
|
getGatesForTurn("execute-task"),
|
|
1963
2177
|
{ pending: new Set(etPending.map((g) => g.gate_id)), allowOmit: true },
|
|
1964
2178
|
);
|
|
2179
|
+
phaseAnchorSection = prependContextModeToBlock("execute-task", base, phaseAnchorSection, opts.contextModeRenderMode);
|
|
1965
2180
|
|
|
1966
2181
|
return loadPrompt("execute-task", {
|
|
1967
2182
|
overridesSection,
|
|
@@ -1990,6 +2205,7 @@ export async function buildExecuteTaskPrompt(
|
|
|
1990
2205
|
taskTitle: tTitle,
|
|
1991
2206
|
taskPlanContent,
|
|
1992
2207
|
extraContext: [taskPlanInline, slicePlanExcerpt, finalCarryForward, resumeSection],
|
|
2208
|
+
unitType: "execute-task",
|
|
1993
2209
|
}),
|
|
1994
2210
|
});
|
|
1995
2211
|
}
|
|
@@ -2040,7 +2256,9 @@ export async function buildCompleteSlicePrompt(
|
|
|
2040
2256
|
return blocks.length > 0 ? blocks.join("\n\n---\n\n") : null;
|
|
2041
2257
|
}
|
|
2042
2258
|
case "templates": {
|
|
2043
|
-
const parts = [
|
|
2259
|
+
const parts = [inlineLevel === "minimal"
|
|
2260
|
+
? inlineCompactTemplate("slice-summary", "Slice Summary")
|
|
2261
|
+
: inlineTemplate("slice-summary", "Slice Summary")];
|
|
2044
2262
|
if (inlineLevel !== "minimal") {
|
|
2045
2263
|
parts.push(inlineTemplate("uat", "UAT"));
|
|
2046
2264
|
}
|
|
@@ -2088,7 +2306,11 @@ export async function buildCompleteSlicePrompt(
|
|
|
2088
2306
|
? `${completeOverridesInline}\n\n---\n\n${body}`
|
|
2089
2307
|
: body;
|
|
2090
2308
|
|
|
2091
|
-
const inlinedContext =
|
|
2309
|
+
const inlinedContext = prependContextModeToBlock(
|
|
2310
|
+
"complete-slice",
|
|
2311
|
+
base,
|
|
2312
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${finalBody}`),
|
|
2313
|
+
);
|
|
2092
2314
|
const roadmapRel = relMilestoneFile(base, mid, "ROADMAP");
|
|
2093
2315
|
|
|
2094
2316
|
const sliceRel = relSlicePath(base, mid, sid);
|
|
@@ -2187,7 +2409,11 @@ export async function buildCompleteMilestonePrompt(
|
|
|
2187
2409
|
if (contextInline) inlined.push(contextInline);
|
|
2188
2410
|
inlined.push(inlineTemplate("milestone-summary", "Milestone Summary"));
|
|
2189
2411
|
|
|
2190
|
-
const inlinedContext =
|
|
2412
|
+
const inlinedContext = prependContextModeToBlock(
|
|
2413
|
+
"complete-milestone",
|
|
2414
|
+
base,
|
|
2415
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${inlined.join("\n\n---\n\n")}`),
|
|
2416
|
+
);
|
|
2191
2417
|
|
|
2192
2418
|
const milestoneSummaryPath = join(base, `${relMilestonePath(base, mid)}/${mid}-SUMMARY.md`);
|
|
2193
2419
|
|
|
@@ -2324,7 +2550,11 @@ export async function buildValidateMilestonePrompt(
|
|
|
2324
2550
|
const contextInline = await inlineFileOptional(contextPath, contextRel, "Milestone Context");
|
|
2325
2551
|
if (contextInline) inlined.push(contextInline);
|
|
2326
2552
|
|
|
2327
|
-
const inlinedContext =
|
|
2553
|
+
const inlinedContext = prependContextModeToBlock(
|
|
2554
|
+
"validate-milestone",
|
|
2555
|
+
base,
|
|
2556
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${inlined.join("\n\n---\n\n")}`),
|
|
2557
|
+
);
|
|
2328
2558
|
|
|
2329
2559
|
const validationOutputPath = join(base, `${relMilestonePath(base, mid)}/${mid}-VALIDATION.md`);
|
|
2330
2560
|
const roadmapOutputPath = `${relMilestonePath(base, mid)}/${mid}-ROADMAP.md`;
|
|
@@ -2400,7 +2630,11 @@ export async function buildReplanSlicePrompt(
|
|
|
2400
2630
|
const replanOverridesInline = formatOverridesSection(replanActiveOverrides);
|
|
2401
2631
|
if (replanOverridesInline) inlined.unshift(replanOverridesInline);
|
|
2402
2632
|
|
|
2403
|
-
const inlinedContext =
|
|
2633
|
+
const inlinedContext = prependContextModeToBlock(
|
|
2634
|
+
"replan-slice",
|
|
2635
|
+
base,
|
|
2636
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${inlined.join("\n\n---\n\n")}`),
|
|
2637
|
+
);
|
|
2404
2638
|
|
|
2405
2639
|
const replanPath = join(base, `${relSlicePath(base, mid, sid)}/${sid}-REPLAN.md`);
|
|
2406
2640
|
|
|
@@ -2474,7 +2708,11 @@ export async function buildRunUatPrompt(
|
|
|
2474
2708
|
};
|
|
2475
2709
|
|
|
2476
2710
|
const composed = await composeInlinedContext("run-uat", resolveArtifact);
|
|
2477
|
-
const inlinedContext =
|
|
2711
|
+
const inlinedContext = prependContextModeToBlock(
|
|
2712
|
+
"run-uat",
|
|
2713
|
+
base,
|
|
2714
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${composed}`),
|
|
2715
|
+
);
|
|
2478
2716
|
|
|
2479
2717
|
const uatResultPath = join(base, relSliceFile(base, mid, sliceId, "ASSESSMENT"));
|
|
2480
2718
|
const uatType = getUatType(uatContent);
|
|
@@ -2548,7 +2786,11 @@ export async function buildReassessRoadmapPrompt(
|
|
|
2548
2786
|
const knowledgeInlineRA = await inlineKnowledgeBudgeted(base, extractKeywords(midTitle));
|
|
2549
2787
|
if (knowledgeInlineRA) parts.push(knowledgeInlineRA);
|
|
2550
2788
|
|
|
2551
|
-
const inlinedContext =
|
|
2789
|
+
const inlinedContext = prependContextModeToBlock(
|
|
2790
|
+
"reassess-roadmap",
|
|
2791
|
+
base,
|
|
2792
|
+
capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${parts.join("\n\n---\n\n")}`),
|
|
2793
|
+
);
|
|
2552
2794
|
|
|
2553
2795
|
const assessmentPath = join(base, relSliceFile(base, mid, completedSliceId, "ASSESSMENT"));
|
|
2554
2796
|
|
|
@@ -2641,6 +2883,7 @@ export async function buildReactiveExecutePrompt(
|
|
|
2641
2883
|
sessionContextWindow: opts?.sessionContextWindow,
|
|
2642
2884
|
modelRegistry: opts?.modelRegistry,
|
|
2643
2885
|
sessionProvider: opts?.sessionProvider,
|
|
2886
|
+
contextModeRenderMode: "nested",
|
|
2644
2887
|
},
|
|
2645
2888
|
);
|
|
2646
2889
|
|
|
@@ -2664,7 +2907,7 @@ export async function buildReactiveExecutePrompt(
|
|
|
2664
2907
|
milestoneTitle: midTitle,
|
|
2665
2908
|
sliceId: sid,
|
|
2666
2909
|
sliceTitle: sTitle,
|
|
2667
|
-
graphContext,
|
|
2910
|
+
graphContext: prependContextModeToBlock("reactive-execute", base, graphContext),
|
|
2668
2911
|
readyTaskCount: String(readyTaskIds.length),
|
|
2669
2912
|
readyTaskList: readyTaskListLines.join("\n"),
|
|
2670
2913
|
subagentPrompts: subagentSections.join("\n\n---\n\n"),
|
|
@@ -2730,7 +2973,7 @@ export async function buildParallelResearchSlicesPrompt(
|
|
|
2730
2973
|
const subagentSections: string[] = [];
|
|
2731
2974
|
const modelSuffix = subagentModel ? ` with model: "${subagentModel}"` : "";
|
|
2732
2975
|
for (const slice of slices) {
|
|
2733
|
-
const slicePrompt = await buildResearchSlicePrompt(mid, midTitle, slice.id, slice.title, basePath);
|
|
2976
|
+
const slicePrompt = await buildResearchSlicePrompt(mid, midTitle, slice.id, slice.title, basePath, { contextModeRenderMode: "nested" });
|
|
2734
2977
|
subagentSections.push([
|
|
2735
2978
|
`### ${slice.id}: ${slice.title}`,
|
|
2736
2979
|
"",
|
|
@@ -2786,6 +3029,8 @@ export async function buildGateEvaluatePrompt(
|
|
|
2786
3029
|
gateListLines.push(`- **${def.id}**: ${def.question}`);
|
|
2787
3030
|
|
|
2788
3031
|
const subPrompt = [
|
|
3032
|
+
renderContextModeForPrompt("gate-evaluate", base, "nested"),
|
|
3033
|
+
"",
|
|
2789
3034
|
`You are evaluating quality gate **${def.id}** for slice ${sid} (${sTitle}).`,
|
|
2790
3035
|
"",
|
|
2791
3036
|
`**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 +3073,7 @@ export async function buildGateEvaluatePrompt(
|
|
|
2828
3073
|
milestoneTitle: midTitle,
|
|
2829
3074
|
sliceId: sid,
|
|
2830
3075
|
sliceTitle: sTitle,
|
|
2831
|
-
slicePlanContent: planContent,
|
|
3076
|
+
slicePlanContent: prependContextModeToBlock("gate-evaluate", base, planContent),
|
|
2832
3077
|
gateCount: String(pending.length),
|
|
2833
3078
|
gateList: gateListLines.join("\n"),
|
|
2834
3079
|
subagentPrompts: subagentSections.join("\n\n---\n\n"),
|
|
@@ -2905,7 +3150,7 @@ export async function buildRewriteDocsPrompt(
|
|
|
2905
3150
|
|
|
2906
3151
|
const documentList = docList.length > 0 ? docList.join("\n") : "- No active plan documents found.";
|
|
2907
3152
|
|
|
2908
|
-
return loadPrompt("rewrite-docs", {
|
|
3153
|
+
return prependContextModeToBlock("rewrite-docs", base, loadPrompt("rewrite-docs", {
|
|
2909
3154
|
workingDirectory: base,
|
|
2910
3155
|
milestoneId: mid,
|
|
2911
3156
|
milestoneTitle: midTitle,
|
|
@@ -2914,5 +3159,5 @@ export async function buildRewriteDocsPrompt(
|
|
|
2914
3159
|
overrideContent,
|
|
2915
3160
|
documentList,
|
|
2916
3161
|
overridesPath: relGsdRootFile("OVERRIDES"),
|
|
2917
|
-
});
|
|
3162
|
+
}));
|
|
2918
3163
|
}
|