@bhargavvc/sdd-cc 1.35.0 → 1.42.4
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.ja-JP.md +54 -52
- package/README.ko-KR.md +47 -45
- package/README.md +86 -733
- package/README.pt-BR.md +14 -12
- package/README.zh-CN.md +31 -29
- package/agents/sdd-ai-researcher.md +2 -2
- package/agents/sdd-code-fixer.md +169 -17
- package/agents/sdd-code-reviewer.md +40 -8
- package/agents/sdd-codebase-mapper.md +89 -6
- package/agents/sdd-debug-session-manager.md +314 -0
- package/agents/sdd-debugger.md +147 -80
- package/agents/sdd-doc-classifier.md +168 -0
- package/agents/sdd-doc-synthesizer.md +204 -0
- package/agents/sdd-doc-verifier.md +20 -4
- package/agents/sdd-doc-writer.md +22 -9
- package/agents/sdd-domain-researcher.md +2 -2
- package/agents/sdd-eval-auditor.md +30 -3
- package/agents/sdd-eval-planner.md +2 -2
- package/agents/sdd-executor.md +203 -43
- package/agents/sdd-framework-selector.md +1 -1
- package/agents/sdd-integration-checker.md +30 -3
- package/agents/sdd-intel-updater.md +51 -23
- package/agents/sdd-nyquist-auditor.md +31 -4
- package/agents/sdd-pattern-mapper.md +335 -0
- package/agents/sdd-phase-researcher.md +195 -32
- package/agents/sdd-plan-checker.md +135 -24
- package/agents/sdd-planner.md +190 -205
- package/agents/sdd-project-researcher.md +7 -7
- package/agents/sdd-research-synthesizer.md +6 -6
- package/agents/sdd-roadmapper.md +19 -10
- package/agents/sdd-security-auditor.md +33 -6
- package/agents/sdd-ui-auditor.md +23 -7
- package/agents/sdd-ui-checker.md +16 -7
- package/agents/sdd-ui-researcher.md +8 -8
- package/agents/sdd-verifier.md +124 -27
- package/bin/install.js +5016 -372
- package/bin/sdd-sdk.js +37 -0
- package/commands/sdd/add-tests.md +5 -4
- package/commands/sdd/ai-integration-phase.md +4 -3
- package/commands/sdd/audit-fix.md +2 -1
- package/commands/sdd/audit-milestone.md +3 -2
- package/commands/sdd/autonomous.md +3 -3
- package/commands/sdd/capture.md +62 -0
- package/commands/sdd/cleanup.md +2 -1
- package/commands/sdd/code-review.md +8 -4
- package/commands/sdd/commit.md +39 -0
- package/commands/sdd/complete-milestone.md +15 -8
- package/commands/sdd/config.md +58 -0
- package/commands/sdd/debug.md +21 -155
- package/commands/sdd/discuss-phase.md +18 -11
- package/commands/sdd/docs-update.md +3 -2
- package/commands/sdd/eval-review.md +4 -3
- package/commands/sdd/execute-phase.md +5 -4
- package/commands/sdd/explore.md +3 -3
- package/commands/sdd/extract-learnings.md +23 -0
- package/commands/sdd/fast.md +4 -3
- package/commands/sdd/forensics.md +3 -2
- package/commands/sdd/graphify.md +199 -0
- package/commands/sdd/health.md +12 -3
- package/commands/sdd/help.md +1 -1
- package/commands/sdd/import.md +10 -5
- package/commands/sdd/inbox.md +39 -0
- package/commands/sdd/ingest-docs.md +42 -0
- package/commands/sdd/manager.md +8 -3
- package/commands/sdd/map-codebase.md +18 -6
- package/commands/sdd/milestone-summary.md +1 -1
- package/commands/sdd/mvp-phase.md +45 -0
- package/commands/sdd/new-milestone.md +4 -3
- package/commands/sdd/new-project.md +4 -3
- package/commands/sdd/ns-context.md +23 -0
- package/commands/sdd/ns-ideate.md +24 -0
- package/commands/sdd/ns-manage.md +29 -0
- package/commands/sdd/ns-project.md +22 -0
- package/commands/sdd/ns-review.md +26 -0
- package/commands/sdd/ns-workflow.md +28 -0
- package/commands/sdd/pause-work.md +6 -1
- package/commands/sdd/phase.md +56 -0
- package/commands/sdd/plan-phase.md +15 -5
- package/commands/sdd/plan-review-convergence.md +59 -0
- package/commands/sdd/pr-branch.md +2 -1
- package/commands/sdd/profile-user.md +1 -1
- package/commands/sdd/progress.md +27 -5
- package/commands/sdd/quick.md +128 -3
- package/commands/sdd/resume-work.md +2 -12
- package/commands/sdd/review-backlog.md +3 -2
- package/commands/sdd/review.md +3 -2
- package/commands/sdd/secure-phase.md +3 -2
- package/commands/sdd/settings.md +2 -9
- package/commands/sdd/ship.md +2 -1
- package/commands/sdd/sketch.md +60 -0
- package/commands/sdd/spec-phase.md +63 -0
- package/commands/sdd/spike.md +57 -0
- package/commands/sdd/stats.md +2 -1
- package/commands/sdd/surface.md +129 -0
- package/commands/sdd/thread.md +8 -111
- package/commands/sdd/ui-phase.md +3 -2
- package/commands/sdd/ui-review.md +3 -2
- package/commands/sdd/ultraplan-phase.md +34 -0
- package/commands/sdd/undo.md +2 -1
- package/commands/sdd/update.md +21 -10
- package/commands/sdd/validate-phase.md +3 -2
- package/commands/sdd/verify-work.md +5 -4
- package/commands/sdd/workspace.md +52 -0
- package/commands/sdd/workstreams.md +12 -11
- package/hooks/dist/sdd-check-update-worker.js +116 -0
- package/hooks/dist/sdd-check-update.js +13 -88
- package/hooks/dist/sdd-context-monitor.js +28 -1
- package/hooks/dist/sdd-phase-boundary.sh +23 -3
- package/hooks/dist/sdd-read-guard.js +21 -2
- package/hooks/dist/sdd-read-injection-scanner.js +152 -0
- package/hooks/dist/sdd-session-state.sh +38 -12
- package/hooks/dist/sdd-statusline.js +324 -28
- package/hooks/dist/sdd-update-banner.js +134 -0
- package/hooks/dist/sdd-validate-commit.sh +15 -5
- package/hooks/dist/sdd-workflow-guard.js +2 -2
- package/hooks/lib/git-cmd.js +150 -0
- package/hooks/sdd-check-update-worker.js +116 -0
- package/hooks/sdd-check-update.js +13 -88
- package/hooks/sdd-context-monitor.js +28 -1
- package/hooks/sdd-phase-boundary.sh +23 -3
- package/hooks/sdd-read-guard.js +21 -2
- package/hooks/sdd-read-injection-scanner.js +152 -0
- package/hooks/sdd-session-state.sh +38 -12
- package/hooks/sdd-statusline.js +324 -28
- package/hooks/sdd-update-banner.js +134 -0
- package/hooks/sdd-validate-commit.sh +15 -5
- package/hooks/sdd-workflow-guard.js +2 -2
- package/package.json +32 -7
- package/scripts/audit-workflow-script-paths.cjs +73 -0
- package/scripts/build-hooks.js +98 -4
- package/scripts/changeset/cli.cjs +269 -0
- package/scripts/changeset/github-release-notes.cjs +198 -0
- package/scripts/changeset/lint.cjs +110 -0
- package/scripts/changeset/new.cjs +137 -0
- package/scripts/changeset/parse.cjs +60 -0
- package/scripts/changeset/render.cjs +34 -0
- package/scripts/changeset/serialize.cjs +74 -0
- package/scripts/command-contract-helpers.cjs +61 -0
- package/scripts/diff-touches-shipped-paths.cjs +147 -0
- package/scripts/fix-slash-commands.cjs +106 -0
- package/scripts/gen-inventory-manifest.cjs +109 -0
- package/scripts/lint-command-contract.cjs +108 -0
- package/scripts/lint-descriptions.cjs +83 -0
- package/scripts/lint-no-source-grep-extras.cjs +81 -0
- package/scripts/lint-no-source-grep.cjs +174 -0
- package/scripts/lint-shell-command-projection-drift.cjs +57 -0
- package/scripts/lint-skill-deps.cjs +180 -0
- package/scripts/pr-template-policy.cjs +169 -0
- package/scripts/prompt-injection-scan.sh +2 -0
- package/scripts/rebrand-gsd-to-sdd.sh +4 -3
- package/scripts/strip-prose-atrefs.cjs +106 -0
- package/scripts/verify-tarball-sdk-dist.sh +69 -0
- package/sdd/bin/check-latest-version.cjs +104 -0
- package/sdd/bin/lib/active-workstream-store.cjs +85 -0
- package/sdd/bin/lib/adr-parser.cjs +394 -0
- package/sdd/bin/lib/artifacts.cjs +53 -0
- package/sdd/bin/lib/audit.cjs +755 -0
- package/sdd/bin/lib/cjs-command-router-adapter.cjs +39 -0
- package/sdd/bin/lib/clusters.cjs +136 -0
- package/sdd/bin/lib/command-aliases.generated.cjs +838 -0
- package/sdd/bin/lib/commands.cjs +108 -98
- package/sdd/bin/lib/config-schema.cjs +135 -0
- package/sdd/bin/lib/config.cjs +253 -68
- package/sdd/bin/lib/context-utilization.cjs +47 -0
- package/sdd/bin/lib/core.cjs +997 -607
- package/sdd/bin/lib/decisions.cjs +48 -0
- package/sdd/bin/lib/docs.cjs +36 -33
- package/sdd/bin/lib/drift.cjs +379 -0
- package/sdd/bin/lib/fallow-runner.cjs +109 -0
- package/sdd/bin/lib/frontmatter.cjs +19 -11
- package/sdd/bin/lib/gap-checker.cjs +197 -0
- package/sdd/bin/lib/graphify.cjs +577 -0
- package/sdd/bin/lib/init-command-router.cjs +70 -0
- package/sdd/bin/lib/init.cjs +603 -102
- package/sdd/bin/lib/install-profiles.cjs +572 -0
- package/sdd/bin/lib/installer-migration-authoring.cjs +117 -0
- package/sdd/bin/lib/installer-migration-report.cjs +328 -0
- package/sdd/bin/lib/installer-migrations/000-first-time-baseline.cjs +220 -0
- package/sdd/bin/lib/installer-migrations/001-legacy-orphan-files.cjs +41 -0
- package/sdd/bin/lib/installer-migrations/002-codex-legacy-hooks-json.cjs +80 -0
- package/sdd/bin/lib/installer-migrations.cjs +703 -0
- package/sdd/bin/lib/intel.cjs +35 -52
- package/sdd/bin/lib/learnings.cjs +2 -1
- package/sdd/bin/lib/milestone.cjs +313 -283
- package/sdd/bin/lib/model-catalog.cjs +136 -0
- package/sdd/bin/lib/model-profiles.cjs +25 -70
- package/sdd/bin/lib/phase-command-router.cjs +96 -0
- package/sdd/bin/lib/phase.cjs +556 -102
- package/sdd/bin/lib/phases-command-router.cjs +39 -0
- package/sdd/bin/lib/plan-scan.cjs +138 -0
- package/sdd/bin/lib/planning-workspace.cjs +361 -0
- package/sdd/bin/lib/profile-output.cjs +109 -43
- package/sdd/bin/lib/profile-pipeline.cjs +1 -1
- package/sdd/bin/lib/review-reviewer-selection.cjs +125 -0
- package/sdd/bin/lib/roadmap-command-router.cjs +23 -0
- package/sdd/bin/lib/roadmap.cjs +278 -17
- package/sdd/bin/lib/runtime-homes.cjs +178 -0
- package/sdd/bin/lib/sdd2-import.cjs +3 -3
- package/sdd/bin/lib/secrets.cjs +33 -0
- package/sdd/bin/lib/security.cjs +8 -7
- package/sdd/bin/lib/shell-command-projection.cjs +548 -0
- package/sdd/bin/lib/state-command-router.cjs +100 -0
- package/sdd/bin/lib/state-document.cjs +12 -0
- package/sdd/bin/lib/state-document.generated.cjs +127 -0
- package/sdd/bin/lib/state.cjs +720 -218
- package/sdd/bin/lib/surface.cjs +398 -0
- package/sdd/bin/lib/template.cjs +4 -2
- package/sdd/bin/lib/uat.cjs +9 -2
- package/sdd/bin/lib/validate-command-router.cjs +55 -0
- package/sdd/bin/lib/verify-command-router.cjs +34 -0
- package/sdd/bin/lib/verify.cjs +464 -137
- package/sdd/bin/lib/workstream-inventory.cjs +159 -0
- package/sdd/bin/lib/workstream-name-policy.cjs +33 -0
- package/sdd/bin/lib/workstream.cjs +73 -195
- package/sdd/bin/lib/worktree-safety.cjs +563 -0
- package/sdd/bin/sdd-tools.cjs +386 -252
- package/sdd/bin/verify-reapply-patches.cjs +247 -0
- package/sdd/contexts/review.md +1 -0
- package/sdd/references/artifact-types.md +18 -0
- package/sdd/references/autonomous-smart-discuss.md +277 -0
- package/sdd/references/checkpoints.md +36 -0
- package/sdd/references/context-budget.md +85 -49
- package/sdd/references/continuation-format.md +26 -22
- package/sdd/references/debugger-philosophy.md +76 -0
- package/sdd/references/decimal-phase-calculation.md +5 -5
- package/sdd/references/doc-conflict-engine.md +91 -0
- package/sdd/references/domain-probes.md +1 -1
- package/sdd/references/execute-mvp-tdd.md +81 -0
- package/sdd/references/executor-examples.md +110 -0
- package/sdd/references/gate-prompts.md +2 -2
- package/sdd/references/git-integration.md +10 -7
- package/sdd/references/git-planning-commit.md +6 -4
- package/sdd/references/mandatory-initial-read.md +2 -0
- package/sdd/references/model-profiles.md +106 -6
- package/sdd/references/mvp-concepts.md +49 -0
- package/sdd/references/phase-argument-parsing.md +3 -3
- package/sdd/references/planner-antipatterns.md +89 -0
- package/sdd/references/planner-chunked.md +49 -0
- package/sdd/references/planner-human-verify-mode.md +57 -0
- package/sdd/references/planner-mvp-mode.md +53 -0
- package/sdd/references/planner-revision.md +1 -1
- package/sdd/references/planner-source-audit.md +73 -0
- package/sdd/references/planning-config.md +30 -13
- package/sdd/references/project-skills-discovery.md +19 -0
- package/sdd/references/scout-codebase.md +51 -0
- package/sdd/references/skeleton-template.md +48 -0
- package/sdd/references/sketch-interactivity.md +41 -0
- package/sdd/references/sketch-theme-system.md +94 -0
- package/sdd/references/sketch-tooling.md +45 -0
- package/sdd/references/sketch-variant-patterns.md +81 -0
- package/sdd/references/spidr-splitting.md +69 -0
- package/sdd/references/tdd.md +67 -0
- package/sdd/references/thinking-partner.md +1 -1
- package/sdd/references/universal-anti-patterns.md +4 -4
- package/sdd/references/user-story-template.md +58 -0
- package/sdd/references/verification-overrides.md +3 -3
- package/sdd/references/verify-mvp-mode.md +85 -0
- package/sdd/references/workstream-flag.md +11 -11
- package/sdd/references/worktree-path-safety.md +89 -0
- package/sdd/templates/AI-SPEC.md +1 -1
- package/sdd/templates/DEBUG.md +8 -3
- package/sdd/templates/README.md +77 -0
- package/sdd/templates/UAT.md +4 -4
- package/sdd/templates/VALIDATION.md +1 -1
- package/sdd/templates/claude-md.md +5 -5
- package/sdd/templates/config.json +16 -2
- package/sdd/templates/debug-subagent-prompt.md +1 -1
- package/sdd/templates/dev-preferences.md +1 -1
- package/sdd/templates/discovery.md +2 -2
- package/sdd/templates/phase-prompt.md +1 -1
- package/sdd/templates/planner-subagent-prompt.md +3 -3
- package/sdd/templates/project.md +1 -1
- package/sdd/templates/research.md +41 -1
- package/sdd/templates/spec.md +307 -0
- package/sdd/templates/state.md +9 -1
- package/sdd/workflows/add-backlog.md +90 -0
- package/sdd/workflows/add-phase.md +7 -7
- package/sdd/workflows/add-tests.md +12 -12
- package/sdd/workflows/add-todo.md +4 -4
- package/sdd/workflows/ai-integration-phase.md +26 -16
- package/sdd/workflows/analyze-dependencies.md +3 -3
- package/sdd/workflows/audit-fix.md +23 -3
- package/sdd/workflows/audit-milestone.md +37 -20
- package/sdd/workflows/audit-uat.md +3 -3
- package/sdd/workflows/autonomous.md +31 -301
- package/sdd/workflows/check-todos.md +6 -6
- package/sdd/workflows/cleanup.md +1 -1
- package/sdd/workflows/code-review-fix.md +20 -16
- package/sdd/workflows/code-review.md +114 -16
- package/sdd/workflows/commit.md +166 -0
- package/sdd/workflows/complete-milestone.md +68 -15
- package/sdd/workflows/debug.md +231 -0
- package/sdd/workflows/diagnose-issues.md +8 -6
- package/sdd/workflows/discovery-phase.md +3 -3
- package/sdd/workflows/discuss-phase/modes/advisor.md +175 -0
- package/sdd/workflows/discuss-phase/modes/all.md +28 -0
- package/sdd/workflows/discuss-phase/modes/analyze.md +44 -0
- package/sdd/workflows/discuss-phase/modes/auto.md +56 -0
- package/sdd/workflows/discuss-phase/modes/batch.md +52 -0
- package/sdd/workflows/discuss-phase/modes/chain.md +97 -0
- package/sdd/workflows/discuss-phase/modes/default.md +141 -0
- package/sdd/workflows/discuss-phase/modes/power.md +44 -0
- package/sdd/workflows/discuss-phase/modes/text.md +55 -0
- package/sdd/workflows/discuss-phase/templates/checkpoint.json +18 -0
- package/sdd/workflows/discuss-phase/templates/context.md +136 -0
- package/sdd/workflows/discuss-phase/templates/discussion-log.md +50 -0
- package/sdd/workflows/discuss-phase-assumptions.md +24 -21
- package/sdd/workflows/discuss-phase-power.md +3 -3
- package/sdd/workflows/discuss-phase.md +203 -905
- package/sdd/workflows/do.md +25 -21
- package/sdd/workflows/docs-update.md +23 -17
- package/sdd/workflows/edit-phase.md +294 -0
- package/sdd/workflows/eval-review.md +7 -7
- package/sdd/workflows/execute-phase/steps/codebase-drift-gate.md +81 -0
- package/sdd/workflows/execute-phase/steps/per-plan-worktree-gate.md +94 -0
- package/sdd/workflows/execute-phase/steps/post-merge-gate.md +116 -0
- package/sdd/workflows/execute-phase.md +650 -252
- package/sdd/workflows/execute-plan.md +75 -35
- package/sdd/workflows/explore.md +7 -3
- package/sdd/workflows/extract-learnings.md +242 -0
- package/sdd/workflows/fast.md +13 -12
- package/sdd/workflows/forensics.md +19 -6
- package/sdd/workflows/graduation.md +195 -0
- package/sdd/workflows/health.md +49 -7
- package/sdd/workflows/help.md +340 -149
- package/sdd/workflows/import.md +20 -43
- package/sdd/workflows/inbox.md +5 -5
- package/sdd/workflows/ingest-docs.md +339 -0
- package/sdd/workflows/insert-phase.md +33 -12
- package/sdd/workflows/list-phase-assumptions.md +2 -2
- package/sdd/workflows/list-workspaces.md +2 -2
- package/sdd/workflows/manager.md +38 -11
- package/sdd/workflows/map-codebase.md +87 -23
- package/sdd/workflows/milestone-summary.md +8 -8
- package/sdd/workflows/mvp-phase.md +221 -0
- package/sdd/workflows/new-milestone.md +163 -23
- package/sdd/workflows/new-project.md +254 -53
- package/sdd/workflows/new-workspace.md +8 -8
- package/sdd/workflows/next.md +85 -18
- package/sdd/workflows/note.md +2 -2
- package/sdd/workflows/pause-work.md +13 -9
- package/sdd/workflows/plan-milestone-gaps.md +18 -11
- package/sdd/workflows/plan-phase.md +767 -94
- package/sdd/workflows/plan-review-convergence.md +329 -0
- package/sdd/workflows/plant-seed.md +146 -89
- package/sdd/workflows/pr-branch.md +1 -1
- package/sdd/workflows/profile-user.md +15 -15
- package/sdd/workflows/progress.md +198 -56
- package/sdd/workflows/quick.md +318 -54
- package/{commands/sdd → sdd/workflows}/reapply-patches.md +102 -23
- package/sdd/workflows/remove-phase.md +10 -10
- package/sdd/workflows/remove-workspace.md +21 -6
- package/sdd/workflows/resume-project.md +26 -23
- package/sdd/workflows/review.md +151 -20
- package/sdd/workflows/scan.md +5 -3
- package/sdd/workflows/secure-phase.md +26 -13
- package/sdd/workflows/settings-advanced.md +579 -0
- package/sdd/workflows/settings-integrations.md +281 -0
- package/sdd/workflows/settings.md +202 -23
- package/sdd/workflows/ship.md +131 -16
- package/sdd/workflows/sketch-wrap-up.md +285 -0
- package/sdd/workflows/sketch.md +360 -0
- package/sdd/workflows/spec-phase.md +262 -0
- package/sdd/workflows/spike-wrap-up.md +306 -0
- package/sdd/workflows/spike.md +452 -0
- package/sdd/workflows/stats.md +21 -2
- package/sdd/workflows/sync-skills.md +182 -0
- package/sdd/workflows/thread.md +221 -0
- package/sdd/workflows/transition.md +52 -30
- package/sdd/workflows/ui-phase.md +37 -20
- package/sdd/workflows/ui-review.md +12 -10
- package/sdd/workflows/ultraplan-phase.md +198 -0
- package/sdd/workflows/undo.md +9 -9
- package/sdd/workflows/update.md +187 -17
- package/sdd/workflows/validate-phase.md +12 -10
- package/sdd/workflows/verify-phase.md +112 -27
- package/sdd/workflows/verify-work.md +97 -28
- package/sdk/dist/cli-transport.d.ts +19 -0
- package/sdk/dist/cli-transport.d.ts.map +1 -0
- package/sdk/dist/cli-transport.js +104 -0
- package/sdk/dist/cli-transport.js.map +1 -0
- package/sdk/dist/cli.d.ts +46 -0
- package/sdk/dist/cli.d.ts.map +1 -0
- package/sdk/dist/cli.js +511 -0
- package/sdk/dist/cli.js.map +1 -0
- package/sdk/dist/config.d.ts +84 -0
- package/sdk/dist/config.d.ts.map +1 -0
- package/sdk/dist/config.js +135 -0
- package/sdk/dist/config.js.map +1 -0
- package/sdk/dist/context-engine.d.ts +49 -0
- package/sdk/dist/context-engine.d.ts.map +1 -0
- package/sdk/dist/context-engine.js +142 -0
- package/sdk/dist/context-engine.js.map +1 -0
- package/sdk/dist/context-truncation.d.ts +33 -0
- package/sdk/dist/context-truncation.d.ts.map +1 -0
- package/sdk/dist/context-truncation.js +197 -0
- package/sdk/dist/context-truncation.js.map +1 -0
- package/sdk/dist/errors.d.ts +46 -0
- package/sdk/dist/errors.d.ts.map +1 -0
- package/sdk/dist/errors.js +64 -0
- package/sdk/dist/errors.js.map +1 -0
- package/sdk/dist/event-stream.d.ts +53 -0
- package/sdk/dist/event-stream.d.ts.map +1 -0
- package/sdk/dist/event-stream.js +321 -0
- package/sdk/dist/event-stream.js.map +1 -0
- package/sdk/dist/golden/capture.d.ts +15 -0
- package/sdk/dist/golden/capture.d.ts.map +1 -0
- package/sdk/dist/golden/capture.js +67 -0
- package/sdk/dist/golden/capture.js.map +1 -0
- package/sdk/dist/golden/golden-integration-covered.d.ts +6 -0
- package/sdk/dist/golden/golden-integration-covered.d.ts.map +1 -0
- package/sdk/dist/golden/golden-integration-covered.js +30 -0
- package/sdk/dist/golden/golden-integration-covered.js.map +1 -0
- package/sdk/dist/golden/golden-mutation-covered.d.ts +7 -0
- package/sdk/dist/golden/golden-mutation-covered.d.ts.map +1 -0
- package/sdk/dist/golden/golden-mutation-covered.js +17 -0
- package/sdk/dist/golden/golden-mutation-covered.js.map +1 -0
- package/sdk/dist/golden/golden-policy.d.ts +10 -0
- package/sdk/dist/golden/golden-policy.d.ts.map +1 -0
- package/sdk/dist/golden/golden-policy.js +98 -0
- package/sdk/dist/golden/golden-policy.js.map +1 -0
- package/sdk/dist/golden/init-golden-normalize.d.ts +8 -0
- package/sdk/dist/golden/init-golden-normalize.d.ts.map +1 -0
- package/sdk/dist/golden/init-golden-normalize.js +14 -0
- package/sdk/dist/golden/init-golden-normalize.js.map +1 -0
- package/sdk/dist/golden/read-only-golden-rows.d.ts +20 -0
- package/sdk/dist/golden/read-only-golden-rows.d.ts.map +1 -0
- package/sdk/dist/golden/read-only-golden-rows.js +67 -0
- package/sdk/dist/golden/read-only-golden-rows.js.map +1 -0
- package/sdk/dist/golden/registry-canonical-commands.d.ts +6 -0
- package/sdk/dist/golden/registry-canonical-commands.d.ts.map +1 -0
- package/sdk/dist/golden/registry-canonical-commands.js +30 -0
- package/sdk/dist/golden/registry-canonical-commands.js.map +1 -0
- package/sdk/dist/index.d.ts +125 -0
- package/sdk/dist/index.d.ts.map +1 -0
- package/sdk/dist/index.js +298 -0
- package/sdk/dist/index.js.map +1 -0
- package/sdk/dist/init-runner.d.ts +90 -0
- package/sdk/dist/init-runner.d.ts.map +1 -0
- package/sdk/dist/init-runner.js +613 -0
- package/sdk/dist/init-runner.js.map +1 -0
- package/sdk/dist/logger.d.ts +50 -0
- package/sdk/dist/logger.d.ts.map +1 -0
- package/sdk/dist/logger.js +70 -0
- package/sdk/dist/logger.js.map +1 -0
- package/sdk/dist/model-catalog.d.ts +31 -0
- package/sdk/dist/model-catalog.d.ts.map +1 -0
- package/sdk/dist/model-catalog.js +31 -0
- package/sdk/dist/model-catalog.js.map +1 -0
- package/sdk/dist/phase-prompt.d.ts +72 -0
- package/sdk/dist/phase-prompt.d.ts.map +1 -0
- package/sdk/dist/phase-prompt.js +213 -0
- package/sdk/dist/phase-prompt.js.map +1 -0
- package/sdk/dist/phase-runner.d.ts +145 -0
- package/sdk/dist/phase-runner.d.ts.map +1 -0
- package/sdk/dist/phase-runner.js +1206 -0
- package/sdk/dist/phase-runner.js.map +1 -0
- package/sdk/dist/plan-parser.d.ts +55 -0
- package/sdk/dist/plan-parser.d.ts.map +1 -0
- package/sdk/dist/plan-parser.js +389 -0
- package/sdk/dist/plan-parser.js.map +1 -0
- package/sdk/dist/planning-journal.d.ts +64 -0
- package/sdk/dist/planning-journal.d.ts.map +1 -0
- package/sdk/dist/planning-journal.js +88 -0
- package/sdk/dist/planning-journal.js.map +1 -0
- package/sdk/dist/planning-runtime.d.ts +67 -0
- package/sdk/dist/planning-runtime.d.ts.map +1 -0
- package/sdk/dist/planning-runtime.js +58 -0
- package/sdk/dist/planning-runtime.js.map +1 -0
- package/sdk/dist/prompt-builder.d.ts +44 -0
- package/sdk/dist/prompt-builder.d.ts.map +1 -0
- package/sdk/dist/prompt-builder.js +180 -0
- package/sdk/dist/prompt-builder.js.map +1 -0
- package/sdk/dist/prompt-sanitizer.d.ts +35 -0
- package/sdk/dist/prompt-sanitizer.d.ts.map +1 -0
- package/sdk/dist/prompt-sanitizer.js +101 -0
- package/sdk/dist/prompt-sanitizer.js.map +1 -0
- package/sdk/dist/query/active-workstream-store.d.ts +7 -0
- package/sdk/dist/query/active-workstream-store.d.ts.map +1 -0
- package/sdk/dist/query/active-workstream-store.js +56 -0
- package/sdk/dist/query/active-workstream-store.js.map +1 -0
- package/sdk/dist/query/agent-failure-classifier.d.ts +38 -0
- package/sdk/dist/query/agent-failure-classifier.d.ts.map +1 -0
- package/sdk/dist/query/agent-failure-classifier.js +83 -0
- package/sdk/dist/query/agent-failure-classifier.js.map +1 -0
- package/sdk/dist/query/audit-open.d.ts +46 -0
- package/sdk/dist/query/audit-open.d.ts.map +1 -0
- package/sdk/dist/query/audit-open.js +662 -0
- package/sdk/dist/query/audit-open.js.map +1 -0
- package/sdk/dist/query/check-auto-mode.d.ts +13 -0
- package/sdk/dist/query/check-auto-mode.d.ts.map +1 -0
- package/sdk/dist/query/check-auto-mode.js +40 -0
- package/sdk/dist/query/check-auto-mode.js.map +1 -0
- package/sdk/dist/query/check-completion.d.ts +10 -0
- package/sdk/dist/query/check-completion.d.ts.map +1 -0
- package/sdk/dist/query/check-completion.js +157 -0
- package/sdk/dist/query/check-completion.js.map +1 -0
- package/sdk/dist/query/check-decision-coverage.d.ts +33 -0
- package/sdk/dist/query/check-decision-coverage.d.ts.map +1 -0
- package/sdk/dist/query/check-decision-coverage.js +472 -0
- package/sdk/dist/query/check-decision-coverage.js.map +1 -0
- package/sdk/dist/query/check-gates.d.ts +10 -0
- package/sdk/dist/query/check-gates.d.ts.map +1 -0
- package/sdk/dist/query/check-gates.js +89 -0
- package/sdk/dist/query/check-gates.js.map +1 -0
- package/sdk/dist/query/check-ship-ready.d.ts +10 -0
- package/sdk/dist/query/check-ship-ready.d.ts.map +1 -0
- package/sdk/dist/query/check-ship-ready.js +93 -0
- package/sdk/dist/query/check-ship-ready.js.map +1 -0
- package/sdk/dist/query/check-verification-status.d.ts +10 -0
- package/sdk/dist/query/check-verification-status.d.ts.map +1 -0
- package/sdk/dist/query/check-verification-status.js +142 -0
- package/sdk/dist/query/check-verification-status.js.map +1 -0
- package/sdk/dist/query/command-aliases.generated.d.ts +31 -0
- package/sdk/dist/query/command-aliases.generated.d.ts.map +1 -0
- package/sdk/dist/query/command-aliases.generated.js +135 -0
- package/sdk/dist/query/command-aliases.generated.js.map +1 -0
- package/sdk/dist/query/command-catalog.d.ts +9 -0
- package/sdk/dist/query/command-catalog.d.ts.map +1 -0
- package/sdk/dist/query/command-catalog.js +17 -0
- package/sdk/dist/query/command-catalog.js.map +1 -0
- package/sdk/dist/query/command-definition.d.ts +19 -0
- package/sdk/dist/query/command-definition.d.ts.map +1 -0
- package/sdk/dist/query/command-definition.js +44 -0
- package/sdk/dist/query/command-definition.js.map +1 -0
- package/sdk/dist/query/command-family-handlers.d.ts +3 -0
- package/sdk/dist/query/command-family-handlers.d.ts.map +1 -0
- package/sdk/dist/query/command-family-handlers.js +94 -0
- package/sdk/dist/query/command-family-handlers.js.map +1 -0
- package/sdk/dist/query/command-manifest.d.ts +2 -0
- package/sdk/dist/query/command-manifest.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.init.d.ts +6 -0
- package/sdk/dist/query/command-manifest.init.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.init.js +23 -0
- package/sdk/dist/query/command-manifest.init.js.map +1 -0
- package/sdk/dist/query/command-manifest.js +17 -0
- package/sdk/dist/query/command-manifest.js.map +1 -0
- package/sdk/dist/query/command-manifest.non-family.d.ts +9 -0
- package/sdk/dist/query/command-manifest.non-family.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.non-family.js +59 -0
- package/sdk/dist/query/command-manifest.non-family.js.map +1 -0
- package/sdk/dist/query/command-manifest.phase.d.ts +6 -0
- package/sdk/dist/query/command-manifest.phase.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.phase.js +15 -0
- package/sdk/dist/query/command-manifest.phase.js.map +1 -0
- package/sdk/dist/query/command-manifest.phases.d.ts +7 -0
- package/sdk/dist/query/command-manifest.phases.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.phases.js +10 -0
- package/sdk/dist/query/command-manifest.phases.js.map +1 -0
- package/sdk/dist/query/command-manifest.roadmap.d.ts +6 -0
- package/sdk/dist/query/command-manifest.roadmap.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.roadmap.js +10 -0
- package/sdk/dist/query/command-manifest.roadmap.js.map +1 -0
- package/sdk/dist/query/command-manifest.state.d.ts +9 -0
- package/sdk/dist/query/command-manifest.state.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.state.js +30 -0
- package/sdk/dist/query/command-manifest.state.js.map +1 -0
- package/sdk/dist/query/command-manifest.types.d.ts +12 -0
- package/sdk/dist/query/command-manifest.types.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.types.js +2 -0
- package/sdk/dist/query/command-manifest.types.js.map +1 -0
- package/sdk/dist/query/command-manifest.validate.d.ts +6 -0
- package/sdk/dist/query/command-manifest.validate.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.validate.js +10 -0
- package/sdk/dist/query/command-manifest.validate.js.map +1 -0
- package/sdk/dist/query/command-manifest.verify.d.ts +6 -0
- package/sdk/dist/query/command-manifest.verify.d.ts.map +1 -0
- package/sdk/dist/query/command-manifest.verify.js +14 -0
- package/sdk/dist/query/command-manifest.verify.js.map +1 -0
- package/sdk/dist/query/command-static-catalog-domain.d.ts +3 -0
- package/sdk/dist/query/command-static-catalog-domain.d.ts.map +1 -0
- package/sdk/dist/query/command-static-catalog-domain.js +116 -0
- package/sdk/dist/query/command-static-catalog-domain.js.map +1 -0
- package/sdk/dist/query/command-static-catalog-foundation.d.ts +7 -0
- package/sdk/dist/query/command-static-catalog-foundation.d.ts.map +1 -0
- package/sdk/dist/query/command-static-catalog-foundation.js +98 -0
- package/sdk/dist/query/command-static-catalog-foundation.js.map +1 -0
- package/sdk/dist/query/command-topology.d.ts +32 -0
- package/sdk/dist/query/command-topology.d.ts.map +1 -0
- package/sdk/dist/query/command-topology.js +66 -0
- package/sdk/dist/query/command-topology.js.map +1 -0
- package/sdk/dist/query/commands-list.d.ts +14 -0
- package/sdk/dist/query/commands-list.d.ts.map +1 -0
- package/sdk/dist/query/commands-list.js +18 -0
- package/sdk/dist/query/commands-list.js.map +1 -0
- package/sdk/dist/query/commit.d.ts +79 -0
- package/sdk/dist/query/commit.d.ts.map +1 -0
- package/sdk/dist/query/commit.js +340 -0
- package/sdk/dist/query/commit.js.map +1 -0
- package/sdk/dist/query/config-gates.d.ts +12 -0
- package/sdk/dist/query/config-gates.d.ts.map +1 -0
- package/sdk/dist/query/config-gates.js +66 -0
- package/sdk/dist/query/config-gates.js.map +1 -0
- package/sdk/dist/query/config-mutation.d.ts +86 -0
- package/sdk/dist/query/config-mutation.d.ts.map +1 -0
- package/sdk/dist/query/config-mutation.js +518 -0
- package/sdk/dist/query/config-mutation.js.map +1 -0
- package/sdk/dist/query/config-query.d.ts +57 -0
- package/sdk/dist/query/config-query.d.ts.map +1 -0
- package/sdk/dist/query/config-query.js +208 -0
- package/sdk/dist/query/config-query.js.map +1 -0
- package/sdk/dist/query/config-schema.d.ts +36 -0
- package/sdk/dist/query/config-schema.d.ts.map +1 -0
- package/sdk/dist/query/config-schema.js +147 -0
- package/sdk/dist/query/config-schema.js.map +1 -0
- package/sdk/dist/query/decisions.d.ts +58 -0
- package/sdk/dist/query/decisions.d.ts.map +1 -0
- package/sdk/dist/query/decisions.js +161 -0
- package/sdk/dist/query/decisions.js.map +1 -0
- package/sdk/dist/query/detect-custom-files.d.ts +11 -0
- package/sdk/dist/query/detect-custom-files.d.ts.map +1 -0
- package/sdk/dist/query/detect-custom-files.js +89 -0
- package/sdk/dist/query/detect-custom-files.js.map +1 -0
- package/sdk/dist/query/detect-phase-type.d.ts +9 -0
- package/sdk/dist/query/detect-phase-type.d.ts.map +1 -0
- package/sdk/dist/query/detect-phase-type.js +124 -0
- package/sdk/dist/query/detect-phase-type.js.map +1 -0
- package/sdk/dist/query/docs-init.d.ts +26 -0
- package/sdk/dist/query/docs-init.d.ts.map +1 -0
- package/sdk/dist/query/docs-init.js +231 -0
- package/sdk/dist/query/docs-init.js.map +1 -0
- package/sdk/dist/query/fallow-audit.d.ts +44 -0
- package/sdk/dist/query/fallow-audit.d.ts.map +1 -0
- package/sdk/dist/query/fallow-audit.js +44 -0
- package/sdk/dist/query/fallow-audit.js.map +1 -0
- package/sdk/dist/query/frontmatter-mutation.d.ts +77 -0
- package/sdk/dist/query/frontmatter-mutation.d.ts.map +1 -0
- package/sdk/dist/query/frontmatter-mutation.js +317 -0
- package/sdk/dist/query/frontmatter-mutation.js.map +1 -0
- package/sdk/dist/query/frontmatter.d.ts +93 -0
- package/sdk/dist/query/frontmatter.d.ts.map +1 -0
- package/sdk/dist/query/frontmatter.js +365 -0
- package/sdk/dist/query/frontmatter.js.map +1 -0
- package/sdk/dist/query/helpers.d.ts +191 -0
- package/sdk/dist/query/helpers.d.ts.map +1 -0
- package/sdk/dist/query/helpers.js +613 -0
- package/sdk/dist/query/helpers.js.map +1 -0
- package/sdk/dist/query/index.d.ts +8 -0
- package/sdk/dist/query/index.d.ts.map +1 -0
- package/sdk/dist/query/index.js +6 -0
- package/sdk/dist/query/index.js.map +1 -0
- package/sdk/dist/query/init-complex.d.ts +47 -0
- package/sdk/dist/query/init-complex.d.ts.map +1 -0
- package/sdk/dist/query/init-complex.js +718 -0
- package/sdk/dist/query/init-complex.js.map +1 -0
- package/sdk/dist/query/init.d.ts +106 -0
- package/sdk/dist/query/init.d.ts.map +1 -0
- package/sdk/dist/query/init.js +1159 -0
- package/sdk/dist/query/init.js.map +1 -0
- package/sdk/dist/query/intel.d.ts +43 -0
- package/sdk/dist/query/intel.d.ts.map +1 -0
- package/sdk/dist/query/intel.js +416 -0
- package/sdk/dist/query/intel.js.map +1 -0
- package/sdk/dist/query/mutation-event-decorator.d.ts +5 -0
- package/sdk/dist/query/mutation-event-decorator.d.ts.map +1 -0
- package/sdk/dist/query/mutation-event-decorator.js +28 -0
- package/sdk/dist/query/mutation-event-decorator.js.map +1 -0
- package/sdk/dist/query/mutation-event-mapper.d.ts +4 -0
- package/sdk/dist/query/mutation-event-mapper.d.ts.map +1 -0
- package/sdk/dist/query/mutation-event-mapper.js +70 -0
- package/sdk/dist/query/mutation-event-mapper.js.map +1 -0
- package/sdk/dist/query/mvp.d.ts +113 -0
- package/sdk/dist/query/mvp.d.ts.map +1 -0
- package/sdk/dist/query/mvp.js +225 -0
- package/sdk/dist/query/mvp.js.map +1 -0
- package/sdk/dist/query/phase-filesystem-adapter.d.ts +4 -0
- package/sdk/dist/query/phase-filesystem-adapter.d.ts.map +1 -0
- package/sdk/dist/query/phase-filesystem-adapter.js +33 -0
- package/sdk/dist/query/phase-filesystem-adapter.js.map +1 -0
- package/sdk/dist/query/phase-lifecycle-policy.d.ts +34 -0
- package/sdk/dist/query/phase-lifecycle-policy.d.ts.map +1 -0
- package/sdk/dist/query/phase-lifecycle-policy.js +138 -0
- package/sdk/dist/query/phase-lifecycle-policy.js.map +1 -0
- package/sdk/dist/query/phase-lifecycle.d.ts +116 -0
- package/sdk/dist/query/phase-lifecycle.d.ts.map +1 -0
- package/sdk/dist/query/phase-lifecycle.js +1486 -0
- package/sdk/dist/query/phase-lifecycle.js.map +1 -0
- package/sdk/dist/query/phase-list-queries.d.ts +18 -0
- package/sdk/dist/query/phase-list-queries.d.ts.map +1 -0
- package/sdk/dist/query/phase-list-queries.js +129 -0
- package/sdk/dist/query/phase-list-queries.js.map +1 -0
- package/sdk/dist/query/phase-ready.d.ts +9 -0
- package/sdk/dist/query/phase-ready.d.ts.map +1 -0
- package/sdk/dist/query/phase-ready.js +132 -0
- package/sdk/dist/query/phase-ready.js.map +1 -0
- package/sdk/dist/query/phase-roadmap-mutation.d.ts +13 -0
- package/sdk/dist/query/phase-roadmap-mutation.d.ts.map +1 -0
- package/sdk/dist/query/phase-roadmap-mutation.js +65 -0
- package/sdk/dist/query/phase-roadmap-mutation.js.map +1 -0
- package/sdk/dist/query/phase.d.ts +48 -0
- package/sdk/dist/query/phase.d.ts.map +1 -0
- package/sdk/dist/query/phase.js +451 -0
- package/sdk/dist/query/phase.js.map +1 -0
- package/sdk/dist/query/pipeline.d.ts +53 -0
- package/sdk/dist/query/pipeline.d.ts.map +1 -0
- package/sdk/dist/query/pipeline.js +198 -0
- package/sdk/dist/query/pipeline.js.map +1 -0
- package/sdk/dist/query/plan-scan.d.ts +14 -0
- package/sdk/dist/query/plan-scan.d.ts.map +1 -0
- package/sdk/dist/query/plan-scan.js +70 -0
- package/sdk/dist/query/plan-scan.js.map +1 -0
- package/sdk/dist/query/plan-task-structure.d.ts +9 -0
- package/sdk/dist/query/plan-task-structure.d.ts.map +1 -0
- package/sdk/dist/query/plan-task-structure.js +59 -0
- package/sdk/dist/query/plan-task-structure.js.map +1 -0
- package/sdk/dist/query/profile-extract-messages.d.ts +40 -0
- package/sdk/dist/query/profile-extract-messages.d.ts.map +1 -0
- package/sdk/dist/query/profile-extract-messages.js +195 -0
- package/sdk/dist/query/profile-extract-messages.js.map +1 -0
- package/sdk/dist/query/profile-output.d.ts +11 -0
- package/sdk/dist/query/profile-output.d.ts.map +1 -0
- package/sdk/dist/query/profile-output.js +873 -0
- package/sdk/dist/query/profile-output.js.map +1 -0
- package/sdk/dist/query/profile-questionnaire-data.d.ts +21 -0
- package/sdk/dist/query/profile-questionnaire-data.d.ts.map +1 -0
- package/sdk/dist/query/profile-questionnaire-data.js +171 -0
- package/sdk/dist/query/profile-questionnaire-data.js.map +1 -0
- package/sdk/dist/query/profile-sample.d.ts +22 -0
- package/sdk/dist/query/profile-sample.d.ts.map +1 -0
- package/sdk/dist/query/profile-sample.js +136 -0
- package/sdk/dist/query/profile-sample.js.map +1 -0
- package/sdk/dist/query/profile-scan-sessions.d.ts +49 -0
- package/sdk/dist/query/profile-scan-sessions.d.ts.map +1 -0
- package/sdk/dist/query/profile-scan-sessions.js +137 -0
- package/sdk/dist/query/profile-scan-sessions.js.map +1 -0
- package/sdk/dist/query/profile.d.ts +61 -0
- package/sdk/dist/query/profile.d.ts.map +1 -0
- package/sdk/dist/query/profile.js +307 -0
- package/sdk/dist/query/profile.js.map +1 -0
- package/sdk/dist/query/progress.d.ts +77 -0
- package/sdk/dist/query/progress.d.ts.map +1 -0
- package/sdk/dist/query/progress.js +481 -0
- package/sdk/dist/query/progress.js.map +1 -0
- package/sdk/dist/query/query-cli-adapter.d.ts +8 -0
- package/sdk/dist/query/query-cli-adapter.d.ts.map +1 -0
- package/sdk/dist/query/query-cli-adapter.js +32 -0
- package/sdk/dist/query/query-cli-adapter.js.map +1 -0
- package/sdk/dist/query/query-cli-output.d.ts +9 -0
- package/sdk/dist/query/query-cli-output.d.ts.map +1 -0
- package/sdk/dist/query/query-cli-output.js +28 -0
- package/sdk/dist/query/query-cli-output.js.map +1 -0
- package/sdk/dist/query/query-command-diagnosis.d.ts +6 -0
- package/sdk/dist/query/query-command-diagnosis.d.ts.map +1 -0
- package/sdk/dist/query/query-command-diagnosis.js +6 -0
- package/sdk/dist/query/query-command-diagnosis.js.map +1 -0
- package/sdk/dist/query/query-command-resolution-strategy.d.ts +29 -0
- package/sdk/dist/query/query-command-resolution-strategy.d.ts.map +1 -0
- package/sdk/dist/query/query-command-resolution-strategy.js +103 -0
- package/sdk/dist/query/query-command-resolution-strategy.js.map +1 -0
- package/sdk/dist/query/query-command-semantics.d.ts +7 -0
- package/sdk/dist/query/query-command-semantics.d.ts.map +1 -0
- package/sdk/dist/query/query-command-semantics.js +7 -0
- package/sdk/dist/query/query-command-semantics.js.map +1 -0
- package/sdk/dist/query/query-dispatch-contract.d.ts +21 -0
- package/sdk/dist/query/query-dispatch-contract.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-contract.js +2 -0
- package/sdk/dist/query/query-dispatch-contract.js.map +1 -0
- package/sdk/dist/query/query-dispatch-error-mapper.d.ts +6 -0
- package/sdk/dist/query/query-dispatch-error-mapper.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-error-mapper.js +6 -0
- package/sdk/dist/query/query-dispatch-error-mapper.js.map +1 -0
- package/sdk/dist/query/query-dispatch-formatting.d.ts +6 -0
- package/sdk/dist/query/query-dispatch-formatting.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-formatting.js +6 -0
- package/sdk/dist/query/query-dispatch-formatting.js.map +1 -0
- package/sdk/dist/query/query-dispatch-input-validation.d.ts +6 -0
- package/sdk/dist/query/query-dispatch-input-validation.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-input-validation.js +6 -0
- package/sdk/dist/query/query-dispatch-input-validation.js.map +1 -0
- package/sdk/dist/query/query-dispatch-observability.d.ts +2 -0
- package/sdk/dist/query/query-dispatch-observability.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-observability.js +7 -0
- package/sdk/dist/query/query-dispatch-observability.js.map +1 -0
- package/sdk/dist/query/query-dispatch-plan.d.ts +6 -0
- package/sdk/dist/query/query-dispatch-plan.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-plan.js +6 -0
- package/sdk/dist/query/query-dispatch-plan.js.map +1 -0
- package/sdk/dist/query/query-dispatch-result-builder.d.ts +6 -0
- package/sdk/dist/query/query-dispatch-result-builder.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch-result-builder.js +6 -0
- package/sdk/dist/query/query-dispatch-result-builder.js.map +1 -0
- package/sdk/dist/query/query-dispatch.d.ts +48 -0
- package/sdk/dist/query/query-dispatch.d.ts.map +1 -0
- package/sdk/dist/query/query-dispatch.js +175 -0
- package/sdk/dist/query/query-dispatch.js.map +1 -0
- package/sdk/dist/query/query-error-details-schema.d.ts +19 -0
- package/sdk/dist/query/query-error-details-schema.d.ts.map +1 -0
- package/sdk/dist/query/query-error-details-schema.js +10 -0
- package/sdk/dist/query/query-error-details-schema.js.map +1 -0
- package/sdk/dist/query/query-error-taxonomy.d.ts +38 -0
- package/sdk/dist/query/query-error-taxonomy.d.ts.map +1 -0
- package/sdk/dist/query/query-error-taxonomy.js +74 -0
- package/sdk/dist/query/query-error-taxonomy.js.map +1 -0
- package/sdk/dist/query/query-fallback-bridge-adapter.d.ts +14 -0
- package/sdk/dist/query/query-fallback-bridge-adapter.d.ts.map +1 -0
- package/sdk/dist/query/query-fallback-bridge-adapter.js +33 -0
- package/sdk/dist/query/query-fallback-bridge-adapter.js.map +1 -0
- package/sdk/dist/query/query-fallback-executor.d.ts +11 -0
- package/sdk/dist/query/query-fallback-executor.d.ts.map +1 -0
- package/sdk/dist/query/query-fallback-executor.js +31 -0
- package/sdk/dist/query/query-fallback-executor.js.map +1 -0
- package/sdk/dist/query/query-fallback-output-classifier.d.ts +6 -0
- package/sdk/dist/query/query-fallback-output-classifier.d.ts.map +1 -0
- package/sdk/dist/query/query-fallback-output-classifier.js +27 -0
- package/sdk/dist/query/query-fallback-output-classifier.js.map +1 -0
- package/sdk/dist/query/query-fallback-policy.d.ts +6 -0
- package/sdk/dist/query/query-fallback-policy.d.ts.map +1 -0
- package/sdk/dist/query/query-fallback-policy.js +7 -0
- package/sdk/dist/query/query-fallback-policy.js.map +1 -0
- package/sdk/dist/query/query-native-dispatch-adapter.d.ts +7 -0
- package/sdk/dist/query/query-native-dispatch-adapter.d.ts.map +1 -0
- package/sdk/dist/query/query-native-dispatch-adapter.js +6 -0
- package/sdk/dist/query/query-native-dispatch-adapter.js.map +1 -0
- package/sdk/dist/query/query-policy-capability.d.ts +10 -0
- package/sdk/dist/query/query-policy-capability.d.ts.map +1 -0
- package/sdk/dist/query/query-policy-capability.js +17 -0
- package/sdk/dist/query/query-policy-capability.js.map +1 -0
- package/sdk/dist/query/query-runtime-context.d.ts +19 -0
- package/sdk/dist/query/query-runtime-context.d.ts.map +1 -0
- package/sdk/dist/query/query-runtime-context.js +31 -0
- package/sdk/dist/query/query-runtime-context.js.map +1 -0
- package/sdk/dist/query/query-unknown-command-hints.d.ts +2 -0
- package/sdk/dist/query/query-unknown-command-hints.d.ts.map +1 -0
- package/sdk/dist/query/query-unknown-command-hints.js +6 -0
- package/sdk/dist/query/query-unknown-command-hints.js.map +1 -0
- package/sdk/dist/query/registry-assembly-descriptor.d.ts +12 -0
- package/sdk/dist/query/registry-assembly-descriptor.d.ts.map +1 -0
- package/sdk/dist/query/registry-assembly-descriptor.js +61 -0
- package/sdk/dist/query/registry-assembly-descriptor.js.map +1 -0
- package/sdk/dist/query/registry-assembly-invariants.d.ts +30 -0
- package/sdk/dist/query/registry-assembly-invariants.d.ts.map +1 -0
- package/sdk/dist/query/registry-assembly-invariants.js +77 -0
- package/sdk/dist/query/registry-assembly-invariants.js.map +1 -0
- package/sdk/dist/query/registry-assembly.d.ts +10 -0
- package/sdk/dist/query/registry-assembly.d.ts.map +1 -0
- package/sdk/dist/query/registry-assembly.js +53 -0
- package/sdk/dist/query/registry-assembly.js.map +1 -0
- package/sdk/dist/query/registry.d.ts +90 -0
- package/sdk/dist/query/registry.d.ts.map +1 -0
- package/sdk/dist/query/registry.js +129 -0
- package/sdk/dist/query/registry.js.map +1 -0
- package/sdk/dist/query/requirements-extract-from-plans.d.ts +9 -0
- package/sdk/dist/query/requirements-extract-from-plans.d.ts.map +1 -0
- package/sdk/dist/query/requirements-extract-from-plans.js +76 -0
- package/sdk/dist/query/requirements-extract-from-plans.js.map +1 -0
- package/sdk/dist/query/roadmap-update-plan-progress.d.ts +11 -0
- package/sdk/dist/query/roadmap-update-plan-progress.d.ts.map +1 -0
- package/sdk/dist/query/roadmap-update-plan-progress.js +124 -0
- package/sdk/dist/query/roadmap-update-plan-progress.js.map +1 -0
- package/sdk/dist/query/roadmap.d.ts +137 -0
- package/sdk/dist/query/roadmap.d.ts.map +1 -0
- package/sdk/dist/query/roadmap.js +753 -0
- package/sdk/dist/query/roadmap.js.map +1 -0
- package/sdk/dist/query/route-next-action.d.ts +9 -0
- package/sdk/dist/query/route-next-action.d.ts.map +1 -0
- package/sdk/dist/query/route-next-action.js +318 -0
- package/sdk/dist/query/route-next-action.js.map +1 -0
- package/sdk/dist/query/schema-detect.d.ts +21 -0
- package/sdk/dist/query/schema-detect.d.ts.map +1 -0
- package/sdk/dist/query/schema-detect.js +146 -0
- package/sdk/dist/query/schema-detect.js.map +1 -0
- package/sdk/dist/query/secrets.d.ts +27 -0
- package/sdk/dist/query/secrets.d.ts.map +1 -0
- package/sdk/dist/query/secrets.js +42 -0
- package/sdk/dist/query/secrets.js.map +1 -0
- package/sdk/dist/query/skill-manifest.d.ts +50 -0
- package/sdk/dist/query/skill-manifest.d.ts.map +1 -0
- package/sdk/dist/query/skill-manifest.js +171 -0
- package/sdk/dist/query/skill-manifest.js.map +1 -0
- package/sdk/dist/query/skills.d.ts +27 -0
- package/sdk/dist/query/skills.d.ts.map +1 -0
- package/sdk/dist/query/skills.js +137 -0
- package/sdk/dist/query/skills.js.map +1 -0
- package/sdk/dist/query/state-document.d.ts +14 -0
- package/sdk/dist/query/state-document.d.ts.map +1 -0
- package/sdk/dist/query/state-document.js +110 -0
- package/sdk/dist/query/state-document.js.map +1 -0
- package/sdk/dist/query/state-mutation.d.ts +224 -0
- package/sdk/dist/query/state-mutation.d.ts.map +1 -0
- package/sdk/dist/query/state-mutation.js +1539 -0
- package/sdk/dist/query/state-mutation.js.map +1 -0
- package/sdk/dist/query/state-project-load.d.ts +23 -0
- package/sdk/dist/query/state-project-load.d.ts.map +1 -0
- package/sdk/dist/query/state-project-load.js +75 -0
- package/sdk/dist/query/state-project-load.js.map +1 -0
- package/sdk/dist/query/state.d.ts +78 -0
- package/sdk/dist/query/state.d.ts.map +1 -0
- package/sdk/dist/query/state.js +430 -0
- package/sdk/dist/query/state.js.map +1 -0
- package/sdk/dist/query/summary.d.ts +18 -0
- package/sdk/dist/query/summary.d.ts.map +1 -0
- package/sdk/dist/query/summary.js +249 -0
- package/sdk/dist/query/summary.js.map +1 -0
- package/sdk/dist/query/template.d.ts +46 -0
- package/sdk/dist/query/template.d.ts.map +1 -0
- package/sdk/dist/query/template.js +210 -0
- package/sdk/dist/query/template.js.map +1 -0
- package/sdk/dist/query/uat.d.ts +34 -0
- package/sdk/dist/query/uat.d.ts.map +1 -0
- package/sdk/dist/query/uat.js +339 -0
- package/sdk/dist/query/uat.js.map +1 -0
- package/sdk/dist/query/utils.d.ts +59 -0
- package/sdk/dist/query/utils.d.ts.map +1 -0
- package/sdk/dist/query/utils.js +74 -0
- package/sdk/dist/query/utils.js.map +1 -0
- package/sdk/dist/query/validate.d.ts +67 -0
- package/sdk/dist/query/validate.d.ts.map +1 -0
- package/sdk/dist/query/validate.js +908 -0
- package/sdk/dist/query/validate.js.map +1 -0
- package/sdk/dist/query/verify.d.ts +110 -0
- package/sdk/dist/query/verify.d.ts.map +1 -0
- package/sdk/dist/query/verify.js +631 -0
- package/sdk/dist/query/verify.js.map +1 -0
- package/sdk/dist/query/websearch.d.ts +24 -0
- package/sdk/dist/query/websearch.d.ts.map +1 -0
- package/sdk/dist/query/websearch.js +68 -0
- package/sdk/dist/query/websearch.js.map +1 -0
- package/sdk/dist/query/workspace.d.ts +62 -0
- package/sdk/dist/query/workspace.d.ts.map +1 -0
- package/sdk/dist/query/workspace.js +104 -0
- package/sdk/dist/query/workspace.js.map +1 -0
- package/sdk/dist/query/workstream-inventory.d.ts +52 -0
- package/sdk/dist/query/workstream-inventory.d.ts.map +1 -0
- package/sdk/dist/query/workstream-inventory.js +141 -0
- package/sdk/dist/query/workstream-inventory.js.map +1 -0
- package/sdk/dist/query/workstream.d.ts +35 -0
- package/sdk/dist/query/workstream.d.ts.map +1 -0
- package/sdk/dist/query/workstream.js +298 -0
- package/sdk/dist/query/workstream.js.map +1 -0
- package/sdk/dist/query/worktree.d.ts +3 -0
- package/sdk/dist/query/worktree.d.ts.map +1 -0
- package/sdk/dist/query/worktree.js +36 -0
- package/sdk/dist/query/worktree.js.map +1 -0
- package/sdk/dist/query-command-executor.d.ts +22 -0
- package/sdk/dist/query-command-executor.d.ts.map +1 -0
- package/sdk/dist/query-command-executor.js +22 -0
- package/sdk/dist/query-command-executor.js.map +1 -0
- package/sdk/dist/query-execution-policy.d.ts +24 -0
- package/sdk/dist/query-execution-policy.d.ts.map +1 -0
- package/sdk/dist/query-execution-policy.js +27 -0
- package/sdk/dist/query-execution-policy.js.map +1 -0
- package/sdk/dist/query-failure-classification.d.ts +9 -0
- package/sdk/dist/query-failure-classification.d.ts.map +1 -0
- package/sdk/dist/query-failure-classification.js +32 -0
- package/sdk/dist/query-failure-classification.js.map +1 -0
- package/sdk/dist/query-hotpath-methods.d.ts +19 -0
- package/sdk/dist/query-hotpath-methods.d.ts.map +1 -0
- package/sdk/dist/query-hotpath-methods.js +34 -0
- package/sdk/dist/query-hotpath-methods.js.map +1 -0
- package/sdk/dist/query-native-direct-adapter.d.ts +20 -0
- package/sdk/dist/query-native-direct-adapter.d.ts.map +1 -0
- package/sdk/dist/query-native-direct-adapter.js +52 -0
- package/sdk/dist/query-native-direct-adapter.js.map +1 -0
- package/sdk/dist/query-native-hotpath-adapter.d.ts +15 -0
- package/sdk/dist/query-native-hotpath-adapter.d.ts.map +1 -0
- package/sdk/dist/query-native-hotpath-adapter.js +32 -0
- package/sdk/dist/query-native-hotpath-adapter.js.map +1 -0
- package/sdk/dist/query-raw-output-projection.d.ts +6 -0
- package/sdk/dist/query-raw-output-projection.d.ts.map +1 -0
- package/sdk/dist/query-raw-output-projection.js +67 -0
- package/sdk/dist/query-raw-output-projection.js.map +1 -0
- package/sdk/dist/query-runtime-bridge.d.ts +61 -0
- package/sdk/dist/query-runtime-bridge.d.ts.map +1 -0
- package/sdk/dist/query-runtime-bridge.js +144 -0
- package/sdk/dist/query-runtime-bridge.js.map +1 -0
- package/sdk/dist/query-sdd-tools-path.d.ts +2 -0
- package/sdk/dist/query-sdd-tools-path.d.ts.map +1 -0
- package/sdk/dist/query-sdd-tools-path.js +2 -0
- package/sdk/dist/query-sdd-tools-path.js.map +1 -0
- package/sdk/dist/query-sdd-tools-runtime.d.ts +20 -0
- package/sdk/dist/query-sdd-tools-runtime.d.ts.map +1 -0
- package/sdk/dist/query-sdd-tools-runtime.js +47 -0
- package/sdk/dist/query-sdd-tools-runtime.js.map +1 -0
- package/sdk/dist/query-subprocess-adapter.d.ts +18 -0
- package/sdk/dist/query-subprocess-adapter.d.ts.map +1 -0
- package/sdk/dist/query-subprocess-adapter.js +92 -0
- package/sdk/dist/query-subprocess-adapter.js.map +1 -0
- package/sdk/dist/query-tools-error-factory.d.ts +16 -0
- package/sdk/dist/query-tools-error-factory.d.ts.map +1 -0
- package/sdk/dist/query-tools-error-factory.js +33 -0
- package/sdk/dist/query-tools-error-factory.js.map +1 -0
- package/sdk/dist/research-gate.d.ts +24 -0
- package/sdk/dist/research-gate.d.ts.map +1 -0
- package/sdk/dist/research-gate.js +70 -0
- package/sdk/dist/research-gate.js.map +1 -0
- package/sdk/dist/runtime-gate.d.ts +14 -0
- package/sdk/dist/runtime-gate.d.ts.map +1 -0
- package/sdk/dist/runtime-gate.js +48 -0
- package/sdk/dist/runtime-gate.js.map +1 -0
- package/sdk/dist/sdd-tools-error.d.ts +23 -0
- package/sdk/dist/sdd-tools-error.d.ts.map +1 -0
- package/sdk/dist/sdd-tools-error.js +29 -0
- package/sdk/dist/sdd-tools-error.js.map +1 -0
- package/sdk/dist/sdd-tools.d.ts +97 -0
- package/sdk/dist/sdd-tools.d.ts.map +1 -0
- package/sdk/dist/sdd-tools.js +168 -0
- package/sdk/dist/sdd-tools.js.map +1 -0
- package/sdk/dist/sdd-transport-policy.d.ts +10 -0
- package/sdk/dist/sdd-transport-policy.d.ts.map +1 -0
- package/sdk/dist/sdd-transport-policy.js +32 -0
- package/sdk/dist/sdd-transport-policy.js.map +1 -0
- package/sdk/dist/sdd-transport.d.ts +39 -0
- package/sdk/dist/sdd-transport.d.ts.map +1 -0
- package/sdk/dist/sdd-transport.js +78 -0
- package/sdk/dist/sdd-transport.js.map +1 -0
- package/sdk/dist/sdk-package-compatibility.d.ts +38 -0
- package/sdk/dist/sdk-package-compatibility.d.ts.map +1 -0
- package/sdk/dist/sdk-package-compatibility.js +90 -0
- package/sdk/dist/sdk-package-compatibility.js.map +1 -0
- package/sdk/dist/session-runner.d.ts +40 -0
- package/sdk/dist/session-runner.d.ts.map +1 -0
- package/sdk/dist/session-runner.js +274 -0
- package/sdk/dist/session-runner.js.map +1 -0
- package/sdk/dist/tool-scoping.d.ts +31 -0
- package/sdk/dist/tool-scoping.d.ts.map +1 -0
- package/sdk/dist/tool-scoping.js +54 -0
- package/sdk/dist/tool-scoping.js.map +1 -0
- package/sdk/dist/types.d.ts +794 -0
- package/sdk/dist/types.d.ts.map +1 -0
- package/sdk/dist/types.js +77 -0
- package/sdk/dist/types.js.map +1 -0
- package/sdk/dist/workstream-name-policy.d.ts +13 -0
- package/sdk/dist/workstream-name-policy.d.ts.map +1 -0
- package/sdk/dist/workstream-name-policy.js +24 -0
- package/sdk/dist/workstream-name-policy.js.map +1 -0
- package/sdk/dist/workstream-utils.d.ts +15 -0
- package/sdk/dist/workstream-utils.d.ts.map +1 -0
- package/sdk/dist/workstream-utils.js +21 -0
- package/sdk/dist/workstream-utils.js.map +1 -0
- package/sdk/dist/ws-transport.d.ts +32 -0
- package/sdk/dist/ws-transport.d.ts.map +1 -0
- package/sdk/dist/ws-transport.js +84 -0
- package/sdk/dist/ws-transport.js.map +1 -0
- package/sdk/package-lock.json +2502 -0
- package/sdk/package.json +57 -0
- package/sdk/prompts/templates/project.md +186 -0
- package/sdk/prompts/templates/requirements.md +231 -0
- package/sdk/prompts/templates/research-project/ARCHITECTURE.md +204 -0
- package/sdk/prompts/templates/research-project/FEATURES.md +147 -0
- package/sdk/prompts/templates/research-project/PITFALLS.md +200 -0
- package/sdk/prompts/templates/research-project/STACK.md +120 -0
- package/sdk/prompts/templates/research-project/SUMMARY.md +170 -0
- package/sdk/prompts/templates/roadmap.md +202 -0
- package/sdk/prompts/templates/state.md +175 -0
- package/sdk/shared/model-catalog.json +122 -0
- package/sdk/src/assembled-prompts.test.ts +349 -0
- package/sdk/src/bug-3591-sddtools-runtime-workstream.test.ts +179 -0
- package/sdk/src/cli-transport.test.ts +388 -0
- package/sdk/src/cli-transport.ts +130 -0
- package/sdk/src/cli.test.ts +426 -0
- package/sdk/src/cli.ts +589 -0
- package/sdk/src/config.test.ts +271 -0
- package/sdk/src/config.ts +218 -0
- package/sdk/src/context-engine.test.ts +295 -0
- package/sdk/src/context-engine.ts +170 -0
- package/sdk/src/context-truncation.test.ts +163 -0
- package/sdk/src/context-truncation.ts +233 -0
- package/sdk/src/e2e.integration.test.ts +181 -0
- package/sdk/src/errors.ts +72 -0
- package/sdk/src/event-stream.test.ts +661 -0
- package/sdk/src/event-stream.ts +441 -0
- package/sdk/src/golden/capture.ts +95 -0
- package/sdk/src/golden/fixtures/generate-slug.golden.json +1 -0
- package/sdk/src/golden/fixtures/profile-sample-sessions/demo-project/sample.jsonl +3 -0
- package/sdk/src/golden/fixtures/summary-extract-sample.md +26 -0
- package/sdk/src/golden/fixtures/uat-render-checkpoint-sample.md +15 -0
- package/sdk/src/golden/golden-integration-covered.ts +30 -0
- package/sdk/src/golden/golden-mutation-covered.ts +17 -0
- package/sdk/src/golden/golden-policy.test.ts +8 -0
- package/sdk/src/golden/golden-policy.ts +120 -0
- package/sdk/src/golden/golden.integration.test.ts +677 -0
- package/sdk/src/golden/init-golden-normalize.ts +15 -0
- package/sdk/src/golden/read-only-golden-rows.ts +77 -0
- package/sdk/src/golden/read-only-parity.integration.test.ts +133 -0
- package/sdk/src/golden/registry-canonical-commands.ts +31 -0
- package/sdk/src/index.ts +352 -0
- package/sdk/src/init-e2e.integration.test.ts +138 -0
- package/sdk/src/init-runner.test.ts +740 -0
- package/sdk/src/init-runner.ts +734 -0
- package/sdk/src/lifecycle-e2e.integration.test.ts +258 -0
- package/sdk/src/logger.test.ts +149 -0
- package/sdk/src/logger.ts +113 -0
- package/sdk/src/milestone-runner.test.ts +421 -0
- package/sdk/src/model-catalog.ts +70 -0
- package/sdk/src/phase-prompt.test.ts +535 -0
- package/sdk/src/phase-prompt.ts +259 -0
- package/sdk/src/phase-runner-types.test.ts +421 -0
- package/sdk/src/phase-runner.integration.test.ts +377 -0
- package/sdk/src/phase-runner.test.ts +2720 -0
- package/sdk/src/phase-runner.ts +1442 -0
- package/sdk/src/plan-parser.test.ts +579 -0
- package/sdk/src/plan-parser.ts +431 -0
- package/sdk/src/planning-journal.test.ts +70 -0
- package/sdk/src/planning-journal.ts +153 -0
- package/sdk/src/planning-runtime.test.ts +29 -0
- package/sdk/src/planning-runtime.ts +100 -0
- package/sdk/src/prompt-builder.test.ts +318 -0
- package/sdk/src/prompt-builder.ts +218 -0
- package/sdk/src/prompt-sanitizer.test.ts +260 -0
- package/sdk/src/prompt-sanitizer.ts +116 -0
- package/sdk/src/query/QUERY-HANDLERS.md +349 -0
- package/sdk/src/query/active-workstream-store.ts +50 -0
- package/sdk/src/query/agent-failure-classifier.test.ts +157 -0
- package/sdk/src/query/agent-failure-classifier.ts +105 -0
- package/sdk/src/query/audit-open.ts +722 -0
- package/sdk/src/query/check-auto-mode.test.ts +77 -0
- package/sdk/src/query/check-auto-mode.ts +49 -0
- package/sdk/src/query/check-completion.test.ts +113 -0
- package/sdk/src/query/check-completion.ts +182 -0
- package/sdk/src/query/check-decision-coverage.test.ts +519 -0
- package/sdk/src/query/check-decision-coverage.ts +554 -0
- package/sdk/src/query/check-gates.test.ts +103 -0
- package/sdk/src/query/check-gates.ts +112 -0
- package/sdk/src/query/check-ship-ready.test.ts +111 -0
- package/sdk/src/query/check-ship-ready.ts +104 -0
- package/sdk/src/query/check-verification-status.test.ts +143 -0
- package/sdk/src/query/check-verification-status.ts +160 -0
- package/sdk/src/query/command-aliases.generated.ts +156 -0
- package/sdk/src/query/command-catalog.ts +31 -0
- package/sdk/src/query/command-definition.test.ts +47 -0
- package/sdk/src/query/command-definition.ts +70 -0
- package/sdk/src/query/command-family-handlers.ts +117 -0
- package/sdk/src/query/command-manifest.init.ts +24 -0
- package/sdk/src/query/command-manifest.non-family.ts +85 -0
- package/sdk/src/query/command-manifest.phase.ts +16 -0
- package/sdk/src/query/command-manifest.phases.ts +11 -0
- package/sdk/src/query/command-manifest.roadmap.ts +11 -0
- package/sdk/src/query/command-manifest.state.ts +31 -0
- package/sdk/src/query/command-manifest.ts +17 -0
- package/sdk/src/query/command-manifest.types.ts +13 -0
- package/sdk/src/query/command-manifest.validate.ts +11 -0
- package/sdk/src/query/command-manifest.verify.ts +15 -0
- package/sdk/src/query/command-resolution.test.ts +70 -0
- package/sdk/src/query/command-seam-coverage.test.ts +118 -0
- package/sdk/src/query/command-static-catalog-domain.ts +117 -0
- package/sdk/src/query/command-static-catalog-foundation.ts +103 -0
- package/sdk/src/query/command-topology.test.ts +28 -0
- package/sdk/src/query/command-topology.ts +114 -0
- package/sdk/src/query/commands-list.test.ts +36 -0
- package/sdk/src/query/commands-list.ts +19 -0
- package/sdk/src/query/commit.test.ts +485 -0
- package/sdk/src/query/commit.ts +383 -0
- package/sdk/src/query/config-gates.test.ts +89 -0
- package/sdk/src/query/config-gates.ts +69 -0
- package/sdk/src/query/config-mutation.test.ts +598 -0
- package/sdk/src/query/config-mutation.ts +575 -0
- package/sdk/src/query/config-query.test.ts +367 -0
- package/sdk/src/query/config-query.ts +244 -0
- package/sdk/src/query/config-schema.ts +159 -0
- package/sdk/src/query/decisions.test.ts +215 -0
- package/sdk/src/query/decisions.ts +192 -0
- package/sdk/src/query/decomposed-handlers.test.ts +431 -0
- package/sdk/src/query/detect-custom-files.test.ts +115 -0
- package/sdk/src/query/detect-custom-files.ts +96 -0
- package/sdk/src/query/detect-phase-type.test.ts +105 -0
- package/sdk/src/query/detect-phase-type.ts +141 -0
- package/sdk/src/query/docs-init.ts +258 -0
- package/sdk/src/query/fallow-audit.ts +88 -0
- package/sdk/src/query/frontmatter-array.test.ts +14 -0
- package/sdk/src/query/frontmatter-mutation.test.ts +259 -0
- package/sdk/src/query/frontmatter-mutation.ts +343 -0
- package/sdk/src/query/frontmatter.test.ts +326 -0
- package/sdk/src/query/frontmatter.ts +395 -0
- package/sdk/src/query/helpers.test.ts +615 -0
- package/sdk/src/query/helpers.ts +646 -0
- package/sdk/src/query/index-thin-seam.test.ts +16 -0
- package/sdk/src/query/index.ts +9 -0
- package/sdk/src/query/init-complex.test.ts +616 -0
- package/sdk/src/query/init-complex.ts +799 -0
- package/sdk/src/query/init-progress-precedence.test.ts +177 -0
- package/sdk/src/query/init-workstream-milestone-op.test.ts +321 -0
- package/sdk/src/query/init.test.ts +792 -0
- package/sdk/src/query/init.ts +1262 -0
- package/sdk/src/query/intel.test.ts +90 -0
- package/sdk/src/query/intel.ts +404 -0
- package/sdk/src/query/mutation-event-decorator.test.ts +45 -0
- package/sdk/src/query/mutation-event-decorator.ts +37 -0
- package/sdk/src/query/mutation-event-mapper.test.ts +33 -0
- package/sdk/src/query/mutation-event-mapper.ts +102 -0
- package/sdk/src/query/mvp.test.ts +335 -0
- package/sdk/src/query/mvp.ts +292 -0
- package/sdk/src/query/normalize-query-command.test.ts +102 -0
- package/sdk/src/query/phase-filesystem-adapter.ts +35 -0
- package/sdk/src/query/phase-lifecycle-policy.ts +171 -0
- package/sdk/src/query/phase-lifecycle.test.ts +1750 -0
- package/sdk/src/query/phase-lifecycle.ts +1833 -0
- package/sdk/src/query/phase-list-queries.test.ts +88 -0
- package/sdk/src/query/phase-list-queries.ts +152 -0
- package/sdk/src/query/phase-ready.test.ts +65 -0
- package/sdk/src/query/phase-ready.ts +159 -0
- package/sdk/src/query/phase-roadmap-mutation.ts +77 -0
- package/sdk/src/query/phase.test.ts +651 -0
- package/sdk/src/query/phase.ts +550 -0
- package/sdk/src/query/pipeline.test.ts +169 -0
- package/sdk/src/query/pipeline.ts +243 -0
- package/sdk/src/query/plan-scan.test.ts +35 -0
- package/sdk/src/query/plan-scan.ts +82 -0
- package/sdk/src/query/plan-task-structure.test.ts +65 -0
- package/sdk/src/query/plan-task-structure.ts +63 -0
- package/sdk/src/query/policy-convergence.test.ts +28 -0
- package/sdk/src/query/profile-extract-messages.ts +247 -0
- package/sdk/src/query/profile-output.ts +929 -0
- package/sdk/src/query/profile-questionnaire-data.ts +181 -0
- package/sdk/src/query/profile-sample.ts +184 -0
- package/sdk/src/query/profile-scan-sessions.ts +174 -0
- package/sdk/src/query/profile.test.ts +136 -0
- package/sdk/src/query/profile.ts +337 -0
- package/sdk/src/query/progress.test.ts +156 -0
- package/sdk/src/query/progress.ts +566 -0
- package/sdk/src/query/query-cli-adapter.test.ts +79 -0
- package/sdk/src/query/query-cli-adapter.ts +39 -0
- package/sdk/src/query/query-cli-output.test.ts +33 -0
- package/sdk/src/query/query-cli-output.ts +35 -0
- package/sdk/src/query/query-command-diagnosis.test.ts +22 -0
- package/sdk/src/query/query-command-diagnosis.ts +5 -0
- package/sdk/src/query/query-command-resolution-strategy.test.ts +34 -0
- package/sdk/src/query/query-command-resolution-strategy.ts +121 -0
- package/sdk/src/query/query-command-semantics.test.ts +22 -0
- package/sdk/src/query/query-command-semantics.ts +22 -0
- package/sdk/src/query/query-dispatch-contract.ts +30 -0
- package/sdk/src/query/query-dispatch-error-mapper.test.ts +62 -0
- package/sdk/src/query/query-dispatch-error-mapper.ts +5 -0
- package/sdk/src/query/query-dispatch-formatting.test.ts +28 -0
- package/sdk/src/query/query-dispatch-formatting.ts +5 -0
- package/sdk/src/query/query-dispatch-input-validation.test.ts +23 -0
- package/sdk/src/query/query-dispatch-input-validation.ts +5 -0
- package/sdk/src/query/query-dispatch-observability.test.ts +10 -0
- package/sdk/src/query/query-dispatch-observability.ts +6 -0
- package/sdk/src/query/query-dispatch-plan.test.ts +25 -0
- package/sdk/src/query/query-dispatch-plan.ts +5 -0
- package/sdk/src/query/query-dispatch-result-builder.test.ts +16 -0
- package/sdk/src/query/query-dispatch-result-builder.ts +5 -0
- package/sdk/src/query/query-dispatch.test.ts +399 -0
- package/sdk/src/query/query-dispatch.ts +243 -0
- package/sdk/src/query/query-error-details-schema.ts +29 -0
- package/sdk/src/query/query-error-taxonomy.test.ts +39 -0
- package/sdk/src/query/query-error-taxonomy.ts +117 -0
- package/sdk/src/query/query-fallback-bridge-adapter.test.ts +32 -0
- package/sdk/src/query/query-fallback-bridge-adapter.ts +54 -0
- package/sdk/src/query/query-fallback-executor.test.ts +82 -0
- package/sdk/src/query/query-fallback-executor.ts +44 -0
- package/sdk/src/query/query-fallback-output-classifier.test.ts +36 -0
- package/sdk/src/query/query-fallback-output-classifier.ts +31 -0
- package/sdk/src/query/query-fallback-policy.test.ts +13 -0
- package/sdk/src/query/query-fallback-policy.ts +11 -0
- package/sdk/src/query/query-native-dispatch-adapter.ts +16 -0
- package/sdk/src/query/query-policy-capability.test.ts +10 -0
- package/sdk/src/query/query-policy-capability.ts +26 -0
- package/sdk/src/query/query-policy-snapshot.test.ts +9 -0
- package/sdk/src/query/query-registry-capability.test.ts +14 -0
- package/sdk/src/query/query-runtime-context.ts +44 -0
- package/sdk/src/query/query-unknown-command-hints.test.ts +9 -0
- package/sdk/src/query/query-unknown-command-hints.ts +5 -0
- package/sdk/src/query/registry-assembly-descriptor.ts +87 -0
- package/sdk/src/query/registry-assembly-invariants.ts +127 -0
- package/sdk/src/query/registry-assembly.test.ts +138 -0
- package/sdk/src/query/registry-assembly.ts +78 -0
- package/sdk/src/query/registry.test.ts +208 -0
- package/sdk/src/query/registry.ts +142 -0
- package/sdk/src/query/requirements-extract-from-plans.test.ts +58 -0
- package/sdk/src/query/requirements-extract-from-plans.ts +86 -0
- package/sdk/src/query/roadmap-update-plan-progress.test.ts +233 -0
- package/sdk/src/query/roadmap-update-plan-progress.ts +159 -0
- package/sdk/src/query/roadmap.test.ts +1181 -0
- package/sdk/src/query/roadmap.ts +894 -0
- package/sdk/src/query/route-next-action.test.ts +61 -0
- package/sdk/src/query/route-next-action.ts +345 -0
- package/sdk/src/query/schema-detect.ts +189 -0
- package/sdk/src/query/secrets.test.ts +66 -0
- package/sdk/src/query/secrets.ts +43 -0
- package/sdk/src/query/skill-manifest.test.ts +62 -0
- package/sdk/src/query/skill-manifest.ts +216 -0
- package/sdk/src/query/skills.test.ts +234 -0
- package/sdk/src/query/skills.ts +143 -0
- package/sdk/src/query/state-document.test.ts +197 -0
- package/sdk/src/query/state-document.ts +129 -0
- package/sdk/src/query/state-mutation.test.ts +1198 -0
- package/sdk/src/query/state-mutation.ts +1718 -0
- package/sdk/src/query/state-project-load.ts +80 -0
- package/sdk/src/query/state.test.ts +616 -0
- package/sdk/src/query/state.ts +463 -0
- package/sdk/src/query/sub-repos-root.integration.test.ts +79 -0
- package/sdk/src/query/summary.test.ts +95 -0
- package/sdk/src/query/summary.ts +296 -0
- package/sdk/src/query/template.test.ts +180 -0
- package/sdk/src/query/template.ts +242 -0
- package/sdk/src/query/uat.test.ts +77 -0
- package/sdk/src/query/uat.ts +365 -0
- package/sdk/src/query/utils.test.ts +82 -0
- package/sdk/src/query/utils.ts +106 -0
- package/sdk/src/query/validate.test.ts +831 -0
- package/sdk/src/query/validate.ts +952 -0
- package/sdk/src/query/verify.test.ts +414 -0
- package/sdk/src/query/verify.ts +692 -0
- package/sdk/src/query/websearch.test.ts +31 -0
- package/sdk/src/query/websearch.ts +82 -0
- package/sdk/src/query/workspace.test.ts +120 -0
- package/sdk/src/query/workspace.ts +145 -0
- package/sdk/src/query/workstream-inventory.ts +195 -0
- package/sdk/src/query/workstream.test.ts +153 -0
- package/sdk/src/query/workstream.ts +324 -0
- package/sdk/src/query/worktree.ts +39 -0
- package/sdk/src/query-command-executor.ts +31 -0
- package/sdk/src/query-execution-policy.test.ts +52 -0
- package/sdk/src/query-execution-policy.ts +46 -0
- package/sdk/src/query-failure-classification.test.ts +23 -0
- package/sdk/src/query-failure-classification.ts +42 -0
- package/sdk/src/query-hotpath-methods.ts +48 -0
- package/sdk/src/query-native-direct-adapter.test.ts +35 -0
- package/sdk/src/query-native-direct-adapter.ts +70 -0
- package/sdk/src/query-native-hotpath-adapter.test.ts +43 -0
- package/sdk/src/query-native-hotpath-adapter.ts +45 -0
- package/sdk/src/query-raw-output-projection.test.ts +39 -0
- package/sdk/src/query-raw-output-projection.ts +74 -0
- package/sdk/src/query-runtime-bridge.test.ts +150 -0
- package/sdk/src/query-runtime-bridge.ts +215 -0
- package/sdk/src/query-runtime-seam-coverage.test.ts +20 -0
- package/sdk/src/query-sdd-tools-path.ts +1 -0
- package/sdk/src/query-sdd-tools-runtime.ts +89 -0
- package/sdk/src/query-subprocess-adapter.test.ts +84 -0
- package/sdk/src/query-subprocess-adapter.ts +146 -0
- package/sdk/src/query-tools-error-factory.test.ts +35 -0
- package/sdk/src/query-tools-error-factory.ts +76 -0
- package/sdk/src/research-gate.test.ts +190 -0
- package/sdk/src/research-gate.ts +94 -0
- package/sdk/src/runtime-bridge-options.test.ts +33 -0
- package/sdk/src/runtime-gate.test.ts +84 -0
- package/sdk/src/runtime-gate.ts +52 -0
- package/sdk/src/sdd-tools-error.test.ts +21 -0
- package/sdk/src/sdd-tools-error.ts +65 -0
- package/sdk/src/sdd-tools.test.ts +472 -0
- package/sdk/src/sdd-tools.ts +237 -0
- package/sdk/src/sdd-transport-policy.test.ts +34 -0
- package/sdk/src/sdd-transport-policy.ts +48 -0
- package/sdk/src/sdd-transport.test.ts +292 -0
- package/sdk/src/sdd-transport.ts +117 -0
- package/sdk/src/sdk-package-compatibility.test.ts +97 -0
- package/sdk/src/sdk-package-compatibility.ts +141 -0
- package/sdk/src/session-runner.test.ts +164 -0
- package/sdk/src/session-runner.ts +327 -0
- package/sdk/src/tool-scoping.test.ts +160 -0
- package/sdk/src/tool-scoping.ts +61 -0
- package/sdk/src/types.ts +927 -0
- package/sdk/src/workflow-agent-skills-consistency.test.ts +98 -0
- package/sdk/src/workstream-name-policy.ts +24 -0
- package/sdk/src/workstream-utils.ts +21 -0
- package/sdk/src/ws-flag.test.ts +285 -0
- package/sdk/src/ws-transport.test.ts +161 -0
- package/sdk/src/ws-transport.ts +93 -0
- package/sdk/tsconfig.json +20 -0
- package/commands/sdd/add-backlog.md +0 -76
- package/commands/sdd/add-phase.md +0 -43
- package/commands/sdd/add-todo.md +0 -47
- package/commands/sdd/analyze-dependencies.md +0 -34
- package/commands/sdd/check-todos.md +0 -45
- package/commands/sdd/code-review-fix.md +0 -52
- package/commands/sdd/do.md +0 -30
- package/commands/sdd/from-sdd2.md +0 -45
- package/commands/sdd/insert-phase.md +0 -32
- package/commands/sdd/intel.md +0 -179
- package/commands/sdd/join-discord.md +0 -19
- package/commands/sdd/list-phase-assumptions.md +0 -46
- package/commands/sdd/list-workspaces.md +0 -19
- package/commands/sdd/new-workspace.md +0 -44
- package/commands/sdd/next.md +0 -26
- package/commands/sdd/note.md +0 -34
- package/commands/sdd/plan-milestone-gaps.md +0 -34
- package/commands/sdd/plant-seed.md +0 -28
- package/commands/sdd/remove-phase.md +0 -31
- package/commands/sdd/remove-workspace.md +0 -26
- package/commands/sdd/research-phase.md +0 -195
- package/commands/sdd/scan.md +0 -26
- package/commands/sdd/session-report.md +0 -19
- package/commands/sdd/set-profile.md +0 -12
- package/scripts/sync-upstream.sh +0 -56
- package/sdd/workflows/research-phase.md +0 -82
package/sdd/bin/sdd-tools.cjs
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
+
* @deprecated The supported programmatic surface is `sdd-sdk query` (SDK query registry)
|
|
5
|
+
* and the `@bhargavvc/sdk` package. This Node CLI remains the compatibility implementation
|
|
6
|
+
* for shell scripts and older workflows; prefer calling the SDK from agents and automation.
|
|
7
|
+
*
|
|
4
8
|
* SDD Tools — CLI utility for SDD workflow operations
|
|
5
9
|
*
|
|
6
10
|
* Replaces repetitive inline bash patterns across ~50 SDD command/workflow/agent files.
|
|
@@ -45,6 +49,7 @@
|
|
|
45
49
|
* roadmap get-phase <phase> Extract phase section from ROADMAP.md
|
|
46
50
|
* roadmap analyze Full roadmap parse with disk status
|
|
47
51
|
* roadmap update-plan-progress <N> Update progress table row from disk (PLAN vs SUMMARY counts)
|
|
52
|
+
* roadmap annotate-dependencies <N> Add wave dependency notes + cross-cutting constraints to ROADMAP.md
|
|
48
53
|
*
|
|
49
54
|
* Requirements Operations:
|
|
50
55
|
* requirements mark-complete <ids> Mark requirement IDs as complete in REQUIREMENTS.md
|
|
@@ -70,6 +75,9 @@
|
|
|
70
75
|
* audit-uat Scan all phases for unresolved UAT/verification items
|
|
71
76
|
* uat render-checkpoint --file <path> Render the current UAT checkpoint block
|
|
72
77
|
*
|
|
78
|
+
* Open Artifact Audit:
|
|
79
|
+
* audit-open [--json] Scan all .planning/ artifact types for unresolved items
|
|
80
|
+
*
|
|
73
81
|
* Intel:
|
|
74
82
|
* intel query <term> Query intel files for a term
|
|
75
83
|
* intel status Show intel file freshness
|
|
@@ -104,6 +112,7 @@
|
|
|
104
112
|
* verify artifacts <plan-file> Check must_haves.artifacts
|
|
105
113
|
* verify key-links <plan-file> Check must_haves.key_links
|
|
106
114
|
* verify schema-drift <phase> [--skip] Detect schema file changes without push
|
|
115
|
+
* verify codebase-drift Detect structural drift since last codebase map (#2003)
|
|
107
116
|
*
|
|
108
117
|
* Template Fill:
|
|
109
118
|
* template fill summary --phase N Create pre-filled SUMMARY.md
|
|
@@ -163,7 +172,9 @@
|
|
|
163
172
|
const fs = require('fs');
|
|
164
173
|
const path = require('path');
|
|
165
174
|
const core = require('./lib/core.cjs');
|
|
166
|
-
const { error, findProjectRoot,
|
|
175
|
+
const { error, findProjectRoot, ERROR_REASON } = core;
|
|
176
|
+
const { getActiveWorkstream } = require('./lib/planning-workspace.cjs');
|
|
177
|
+
const { resolveActiveWorkstream, applyResolvedWorkstreamEnv } = require('./lib/active-workstream-store.cjs');
|
|
167
178
|
const state = require('./lib/state.cjs');
|
|
168
179
|
const phase = require('./lib/phase.cjs');
|
|
169
180
|
const roadmap = require('./lib/roadmap.cjs');
|
|
@@ -179,6 +190,14 @@ const profileOutput = require('./lib/profile-output.cjs');
|
|
|
179
190
|
const workstream = require('./lib/workstream.cjs');
|
|
180
191
|
const docs = require('./lib/docs.cjs');
|
|
181
192
|
const learnings = require('./lib/learnings.cjs');
|
|
193
|
+
const gapChecker = require('./lib/gap-checker.cjs');
|
|
194
|
+
const { routeStateCommand } = require('./lib/state-command-router.cjs');
|
|
195
|
+
const { routeVerifyCommand } = require('./lib/verify-command-router.cjs');
|
|
196
|
+
const { routeInitCommand } = require('./lib/init-command-router.cjs');
|
|
197
|
+
const { routePhaseCommand } = require('./lib/phase-command-router.cjs');
|
|
198
|
+
const { routePhasesCommand } = require('./lib/phases-command-router.cjs');
|
|
199
|
+
const { routeValidateCommand } = require('./lib/validate-command-router.cjs');
|
|
200
|
+
const { routeRoadmapCommand } = require('./lib/roadmap-command-router.cjs');
|
|
182
201
|
|
|
183
202
|
// ─── Arg parsing helpers ──────────────────────────────────────────────────────
|
|
184
203
|
|
|
@@ -223,7 +242,25 @@ function parseMultiwordArg(args, flag) {
|
|
|
223
242
|
// ─── CLI Router ───────────────────────────────────────────────────────────────
|
|
224
243
|
|
|
225
244
|
async function main() {
|
|
226
|
-
|
|
245
|
+
let args = process.argv.slice(2);
|
|
246
|
+
|
|
247
|
+
// --json-errors / SDD_JSON_ERRORS=1: when active, error() emits structured
|
|
248
|
+
// JSON ({ ok: false, reason: <ERROR_REASON code>, message }) to stderr
|
|
249
|
+
// instead of "Error: <text>". Lets test suites assert on typed reason codes
|
|
250
|
+
// per CONTRIBUTING.md "Prohibited: Raw Text Matching" (#2974).
|
|
251
|
+
//
|
|
252
|
+
// Detect early — before any flag parsing that can fire error() — so even
|
|
253
|
+
// --cwd and workstream-resolution failures emit structured stderr (#3310).
|
|
254
|
+
// The argv splice must happen here too, otherwise the dispatcher below sees
|
|
255
|
+
// "--json-errors" as an unknown command. Default off — human operators keep
|
|
256
|
+
// their plain-text diagnostic.
|
|
257
|
+
const jsonErrorsIdx = args.indexOf('--json-errors');
|
|
258
|
+
if (jsonErrorsIdx !== -1) {
|
|
259
|
+
core.setJsonErrorMode(true);
|
|
260
|
+
args.splice(jsonErrorsIdx, 1);
|
|
261
|
+
} else if (process.env.SDD_JSON_ERRORS === '1') {
|
|
262
|
+
core.setJsonErrorMode(true);
|
|
263
|
+
}
|
|
227
264
|
|
|
228
265
|
// Optional cwd override for sandboxed subagents running outside project root.
|
|
229
266
|
let cwd = process.cwd();
|
|
@@ -231,18 +268,18 @@ async function main() {
|
|
|
231
268
|
const cwdIdx = args.indexOf('--cwd');
|
|
232
269
|
if (cwdEqArg) {
|
|
233
270
|
const value = cwdEqArg.slice('--cwd='.length).trim();
|
|
234
|
-
if (!value) error('Missing value for --cwd');
|
|
271
|
+
if (!value) error('Missing value for --cwd', ERROR_REASON.USAGE);
|
|
235
272
|
args.splice(args.indexOf(cwdEqArg), 1);
|
|
236
273
|
cwd = path.resolve(value);
|
|
237
274
|
} else if (cwdIdx !== -1) {
|
|
238
275
|
const value = args[cwdIdx + 1];
|
|
239
|
-
if (!value || value.startsWith('--')) error('Missing value for --cwd');
|
|
276
|
+
if (!value || value.startsWith('--')) error('Missing value for --cwd', ERROR_REASON.USAGE);
|
|
240
277
|
args.splice(cwdIdx, 2);
|
|
241
278
|
cwd = path.resolve(value);
|
|
242
279
|
}
|
|
243
280
|
|
|
244
281
|
if (!fs.existsSync(cwd) || !fs.statSync(cwd).isDirectory()) {
|
|
245
|
-
error(`Invalid --cwd: ${cwd}
|
|
282
|
+
error(`Invalid --cwd: ${cwd}`, ERROR_REASON.USAGE);
|
|
246
283
|
}
|
|
247
284
|
|
|
248
285
|
// Resolve worktree root: in a linked worktree, .planning/ lives in the main worktree.
|
|
@@ -257,30 +294,18 @@ async function main() {
|
|
|
257
294
|
}
|
|
258
295
|
|
|
259
296
|
// Optional workstream override for parallel milestone work.
|
|
260
|
-
// Priority: --ws flag > SDD_WORKSTREAM env var > session
|
|
261
|
-
const wsEqArg = args.find(arg => arg.startsWith('--ws='));
|
|
262
|
-
const wsIdx = args.indexOf('--ws');
|
|
297
|
+
// Priority: --ws flag > SDD_WORKSTREAM env var > session/shared pointer > null.
|
|
263
298
|
let ws = null;
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
} else {
|
|
275
|
-
ws = getActiveWorkstream(cwd);
|
|
276
|
-
}
|
|
277
|
-
// Validate workstream name to prevent path traversal attacks.
|
|
278
|
-
if (ws && !/^[a-zA-Z0-9_-]+$/.test(ws)) {
|
|
279
|
-
error('Invalid workstream name: must be alphanumeric, hyphens, and underscores only');
|
|
280
|
-
}
|
|
281
|
-
// Set env var so all modules (planningDir, planningPaths) auto-resolve workstream paths
|
|
282
|
-
if (ws) {
|
|
283
|
-
process.env.SDD_WORKSTREAM = ws;
|
|
299
|
+
try {
|
|
300
|
+
const wsResolution = resolveActiveWorkstream(cwd, args, process.env, {
|
|
301
|
+
getStored: getActiveWorkstream,
|
|
302
|
+
});
|
|
303
|
+
ws = wsResolution.ws;
|
|
304
|
+
args = wsResolution.args;
|
|
305
|
+
// Set env var so all modules (planningDir, planningPaths) auto-resolve workstream paths.
|
|
306
|
+
applyResolvedWorkstreamEnv(wsResolution, process.env);
|
|
307
|
+
} catch (err) {
|
|
308
|
+
error(err.message || String(err));
|
|
284
309
|
}
|
|
285
310
|
|
|
286
311
|
const rawIndex = args.indexOf('--raw');
|
|
@@ -294,7 +319,7 @@ async function main() {
|
|
|
294
319
|
let pickField = null;
|
|
295
320
|
if (pickIdx !== -1) {
|
|
296
321
|
pickField = args[pickIdx + 1];
|
|
297
|
-
if (!pickField || pickField.startsWith('--')) error('Missing value for --pick');
|
|
322
|
+
if (!pickField || pickField.startsWith('--')) error('Missing value for --pick', ERROR_REASON.USAGE);
|
|
298
323
|
args.splice(pickIdx, 2);
|
|
299
324
|
}
|
|
300
325
|
|
|
@@ -309,19 +334,81 @@ async function main() {
|
|
|
309
334
|
args.splice(defaultIdx, 2);
|
|
310
335
|
}
|
|
311
336
|
|
|
312
|
-
|
|
337
|
+
let command = args[0];
|
|
338
|
+
|
|
339
|
+
// #3243: accept dotted canonical form (e.g. `state.update`) as well as the
|
|
340
|
+
// spaced form (`state update`). Workflow files and stale SDK binaries pass
|
|
341
|
+
// the dotted canonical form directly; any caller that bypasses the SDK
|
|
342
|
+
// client-side split hit "Unknown command" before this shim.
|
|
343
|
+
//
|
|
344
|
+
// Split on the FIRST dot only — `check.decision-coverage-plan` becomes
|
|
345
|
+
// command='check', args=['check','decision-coverage-plan',...rest].
|
|
346
|
+
// Parallel to dottedCommandToCjsArgv in sdk/src/query/query-fallback-bridge-adapter.ts;
|
|
347
|
+
// kept separate here to avoid SDK coupling (see TODO: extract to shared helper).
|
|
348
|
+
//
|
|
349
|
+
// Guard: head and rest must both be non-empty (rejects leading-dot args like
|
|
350
|
+
// ".hidden" and bare-dot ".").
|
|
351
|
+
const originalCommand = command; // preserved for "Unknown command" suggestion
|
|
352
|
+
if (typeof command === 'string' && command.includes('.')) {
|
|
353
|
+
const dotIdx = command.indexOf('.');
|
|
354
|
+
const head = command.slice(0, dotIdx);
|
|
355
|
+
const rest = command.slice(dotIdx + 1);
|
|
356
|
+
if (head && rest) {
|
|
357
|
+
command = head;
|
|
358
|
+
args = [head, rest, ...args.slice(1)];
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
// Top-level usage string — emitted by `sdd-tools` (no args) and by
|
|
363
|
+
// `sdd-tools --help` / any `--help` request below.
|
|
364
|
+
// CR feedback: the command list must enumerate every top-level command
|
|
365
|
+
// supported by the dispatcher so `--help` is actually useful for
|
|
366
|
+
// discovery; previously it was a partial subset that didn't include
|
|
367
|
+
// phase / roadmap / milestone / progress / etc.
|
|
368
|
+
const TOP_LEVEL_USAGE = 'Usage: sdd-tools <command> [args] [--raw] [--pick <field>] [--cwd <path>] [--ws <name>] [--json-errors]\n' +
|
|
369
|
+
'Commands: agent-skills, audit-open, audit-uat, check-commit, commit, commit-to-subrepo, ' +
|
|
370
|
+
'config-ensure-section, config-get, config-new-project, config-path, config-set, ' +
|
|
371
|
+
'current-timestamp, detect-custom-files, docs-init, extract-messages, find-phase, ' +
|
|
372
|
+
'from-sdd2, frontmatter, gap-analysis, generate-claude-md, generate-claude-profile, ' +
|
|
373
|
+
'generate-dev-preferences, generate-slug, graphify, history-digest, init, intel, ' +
|
|
374
|
+
'learnings, list-todos, milestone, phase, phase-plan-index, phases, profile-questionnaire, ' +
|
|
375
|
+
'profile-sample, progress, requirements, resolve-model, roadmap, scaffold, state, ' +
|
|
376
|
+
'template, validate, verify, verify-path-exists, verify-summary, workstream, worktree\n\n' +
|
|
377
|
+
'Global flags:\n' +
|
|
378
|
+
' --raw Emit raw output without post-processing\n' +
|
|
379
|
+
' --pick <field> Extract a single field from JSON output (dot/bracket notation)\n' +
|
|
380
|
+
' --cwd <path> Override working directory for project-root resolution\n' +
|
|
381
|
+
' --ws <name> Override active workstream (or set SDD_WORKSTREAM)\n' +
|
|
382
|
+
' --json-errors Emit structured JSON error objects on stderr (or set SDD_JSON_ERRORS=1)\n\n' +
|
|
383
|
+
'For command-specific argument requirements, invoke the command without args ' +
|
|
384
|
+
'(e.g. `sdd-tools phase add`) — the resulting error lists what is required.';
|
|
313
385
|
|
|
314
386
|
if (!command) {
|
|
315
|
-
error(
|
|
387
|
+
error(TOP_LEVEL_USAGE);
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
// #3019: a `--help` / `-h` flag in argv must render the top-level usage
|
|
391
|
+
// and exit 0 — not error out with "Unknown flag". The previous shape
|
|
392
|
+
// erred on agent-hallucinated flags, but it also blocked humans from
|
|
393
|
+
// discovering the command surface via subcommand help requests routed
|
|
394
|
+
// here from the SDK CLI's query dispatcher (after the cli.ts fix that
|
|
395
|
+
// stops harvesting --help as a global flag). Rendering top-level usage
|
|
396
|
+
// on --help is strictly better UX than the old short-circuit, which
|
|
397
|
+
// printed the SDK-level usage that doesn't mention any of these
|
|
398
|
+
// subcommands.
|
|
399
|
+
const HELP_FLAGS = new Set(['-h', '--help', '-?', '--h', '--usage']);
|
|
400
|
+
if (args.some((a) => HELP_FLAGS.has(a))) {
|
|
401
|
+
process.stdout.write(TOP_LEVEL_USAGE + '\n');
|
|
402
|
+
return;
|
|
316
403
|
}
|
|
317
404
|
|
|
318
|
-
// Reject flags
|
|
319
|
-
//
|
|
320
|
-
//
|
|
321
|
-
const NEVER_VALID_FLAGS = new Set(['
|
|
405
|
+
// Reject version flags. AI agents sometimes hallucinate --version on tool
|
|
406
|
+
// invocations; silently ignoring it can cause destructive operations to
|
|
407
|
+
// proceed unchecked. (Help flags are handled above.)
|
|
408
|
+
const NEVER_VALID_FLAGS = new Set(['--version', '-v']);
|
|
322
409
|
for (const arg of args) {
|
|
323
410
|
if (NEVER_VALID_FLAGS.has(arg)) {
|
|
324
|
-
error(`Unknown flag: ${arg}\nsdd-tools does not accept
|
|
411
|
+
error(`Unknown flag: ${arg}\nsdd-tools does not accept version flags. Run "sdd-tools" with no arguments for usage.`, ERROR_REASON.USAGE);
|
|
325
412
|
}
|
|
326
413
|
}
|
|
327
414
|
|
|
@@ -330,7 +417,8 @@ async function main() {
|
|
|
330
417
|
// filesystem traversal on every invocation.
|
|
331
418
|
const SKIP_ROOT_RESOLUTION = new Set([
|
|
332
419
|
'generate-slug', 'current-timestamp', 'verify-path-exists',
|
|
333
|
-
'verify-summary', 'template', 'frontmatter',
|
|
420
|
+
'verify-summary', 'template', 'frontmatter', 'detect-custom-files',
|
|
421
|
+
'worktree',
|
|
334
422
|
]);
|
|
335
423
|
if (!SKIP_ROOT_RESOLUTION.has(command)) {
|
|
336
424
|
cwd = findProjectRoot(cwd);
|
|
@@ -361,7 +449,7 @@ async function main() {
|
|
|
361
449
|
}
|
|
362
450
|
};
|
|
363
451
|
try {
|
|
364
|
-
await runCommand(command, args, cwd, raw, defaultValue);
|
|
452
|
+
await runCommand(command, args, cwd, raw, defaultValue, originalCommand);
|
|
365
453
|
cleanup();
|
|
366
454
|
} catch (e) {
|
|
367
455
|
fs.writeSync = origWriteSync;
|
|
@@ -382,7 +470,7 @@ async function main() {
|
|
|
382
470
|
return origWriteSync2.call(fs, fd, data, ...rest);
|
|
383
471
|
};
|
|
384
472
|
try {
|
|
385
|
-
await runCommand(command, args, cwd, raw, defaultValue);
|
|
473
|
+
await runCommand(command, args, cwd, raw, defaultValue, originalCommand);
|
|
386
474
|
} finally {
|
|
387
475
|
fs.writeSync = origWriteSync2;
|
|
388
476
|
}
|
|
@@ -416,63 +504,17 @@ function extractField(obj, fieldPath) {
|
|
|
416
504
|
return current;
|
|
417
505
|
}
|
|
418
506
|
|
|
419
|
-
async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
507
|
+
async function runCommand(command, args, cwd, raw, defaultValue, originalCommand) {
|
|
420
508
|
switch (command) {
|
|
421
509
|
case 'state': {
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
}
|
|
430
|
-
const patches = {};
|
|
431
|
-
for (let i = 2; i < args.length; i += 2) {
|
|
432
|
-
const key = args[i].replace(/^--/, '');
|
|
433
|
-
const value = args[i + 1];
|
|
434
|
-
if (key && value !== undefined) {
|
|
435
|
-
patches[key] = value;
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
state.cmdStatePatch(cwd, patches, raw);
|
|
439
|
-
} else if (subcommand === 'advance-plan') {
|
|
440
|
-
state.cmdStateAdvancePlan(cwd, raw);
|
|
441
|
-
} else if (subcommand === 'record-metric') {
|
|
442
|
-
const { phase: p, plan, duration, tasks, files } = parseNamedArgs(args, ['phase', 'plan', 'duration', 'tasks', 'files']);
|
|
443
|
-
state.cmdStateRecordMetric(cwd, { phase: p, plan, duration, tasks, files }, raw);
|
|
444
|
-
} else if (subcommand === 'update-progress') {
|
|
445
|
-
state.cmdStateUpdateProgress(cwd, raw);
|
|
446
|
-
} else if (subcommand === 'add-decision') {
|
|
447
|
-
const { phase: p, summary, 'summary-file': summary_file, rationale, 'rationale-file': rationale_file } = parseNamedArgs(args, ['phase', 'summary', 'summary-file', 'rationale', 'rationale-file']);
|
|
448
|
-
state.cmdStateAddDecision(cwd, { phase: p, summary, summary_file, rationale: rationale || '', rationale_file }, raw);
|
|
449
|
-
} else if (subcommand === 'add-blocker') {
|
|
450
|
-
const { text, 'text-file': text_file } = parseNamedArgs(args, ['text', 'text-file']);
|
|
451
|
-
state.cmdStateAddBlocker(cwd, { text, text_file }, raw);
|
|
452
|
-
} else if (subcommand === 'resolve-blocker') {
|
|
453
|
-
state.cmdStateResolveBlocker(cwd, parseNamedArgs(args, ['text']).text, raw);
|
|
454
|
-
} else if (subcommand === 'record-session') {
|
|
455
|
-
const { 'stopped-at': stopped_at, 'resume-file': resume_file } = parseNamedArgs(args, ['stopped-at', 'resume-file']);
|
|
456
|
-
state.cmdStateRecordSession(cwd, { stopped_at, resume_file: resume_file || 'None' }, raw);
|
|
457
|
-
} else if (subcommand === 'begin-phase') {
|
|
458
|
-
const { phase: p, name, plans } = parseNamedArgs(args, ['phase', 'name', 'plans']);
|
|
459
|
-
state.cmdStateBeginPhase(cwd, p, name, plans !== null ? parseInt(plans, 10) : null, raw);
|
|
460
|
-
} else if (subcommand === 'signal-waiting') {
|
|
461
|
-
const { type, question, options, phase: p } = parseNamedArgs(args, ['type', 'question', 'options', 'phase']);
|
|
462
|
-
state.cmdSignalWaiting(cwd, type, question, options, p, raw);
|
|
463
|
-
} else if (subcommand === 'signal-resume') {
|
|
464
|
-
state.cmdSignalResume(cwd, raw);
|
|
465
|
-
} else if (subcommand === 'planned-phase') {
|
|
466
|
-
const { phase: p, name, plans } = parseNamedArgs(args, ['phase', 'name', 'plans']);
|
|
467
|
-
state.cmdStatePlannedPhase(cwd, p, plans !== null ? parseInt(plans, 10) : null, raw);
|
|
468
|
-
} else if (subcommand === 'validate') {
|
|
469
|
-
state.cmdStateValidate(cwd, raw);
|
|
470
|
-
} else if (subcommand === 'sync') {
|
|
471
|
-
const { verify } = parseNamedArgs(args, [], ['verify']);
|
|
472
|
-
state.cmdStateSync(cwd, { verify }, raw);
|
|
473
|
-
} else {
|
|
474
|
-
state.cmdStateLoad(cwd, raw);
|
|
475
|
-
}
|
|
510
|
+
routeStateCommand({
|
|
511
|
+
state,
|
|
512
|
+
args,
|
|
513
|
+
cwd,
|
|
514
|
+
raw,
|
|
515
|
+
parseNamedArgs,
|
|
516
|
+
error,
|
|
517
|
+
});
|
|
476
518
|
break;
|
|
477
519
|
}
|
|
478
520
|
|
|
@@ -542,7 +584,7 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
542
584
|
wave: wave || '1',
|
|
543
585
|
}, raw);
|
|
544
586
|
} else {
|
|
545
|
-
error('Unknown template subcommand. Available: select, fill');
|
|
587
|
+
error('Unknown template subcommand. Available: select, fill', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
546
588
|
}
|
|
547
589
|
break;
|
|
548
590
|
}
|
|
@@ -560,31 +602,19 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
560
602
|
} else if (subcommand === 'validate') {
|
|
561
603
|
frontmatter.cmdFrontmatterValidate(cwd, file, parseNamedArgs(args, ['schema']).schema, raw);
|
|
562
604
|
} else {
|
|
563
|
-
error('Unknown frontmatter subcommand. Available: get, set, merge, validate');
|
|
605
|
+
error('Unknown frontmatter subcommand. Available: get, set, merge, validate', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
564
606
|
}
|
|
565
607
|
break;
|
|
566
608
|
}
|
|
567
609
|
|
|
568
610
|
case 'verify': {
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
} else if (subcommand === 'commits') {
|
|
577
|
-
verify.cmdVerifyCommits(cwd, args.slice(2), raw);
|
|
578
|
-
} else if (subcommand === 'artifacts') {
|
|
579
|
-
verify.cmdVerifyArtifacts(cwd, args[2], raw);
|
|
580
|
-
} else if (subcommand === 'key-links') {
|
|
581
|
-
verify.cmdVerifyKeyLinks(cwd, args[2], raw);
|
|
582
|
-
} else if (subcommand === 'schema-drift') {
|
|
583
|
-
const skipFlag = args.includes('--skip');
|
|
584
|
-
verify.cmdVerifySchemaDrift(cwd, args[2], skipFlag, raw);
|
|
585
|
-
} else {
|
|
586
|
-
error('Unknown verify subcommand. Available: plan-structure, phase-completeness, references, commits, artifacts, key-links, schema-drift');
|
|
587
|
-
}
|
|
611
|
+
routeVerifyCommand({
|
|
612
|
+
verify,
|
|
613
|
+
args,
|
|
614
|
+
cwd,
|
|
615
|
+
raw,
|
|
616
|
+
error,
|
|
617
|
+
});
|
|
588
618
|
break;
|
|
589
619
|
}
|
|
590
620
|
|
|
@@ -633,46 +663,46 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
633
663
|
break;
|
|
634
664
|
}
|
|
635
665
|
|
|
666
|
+
case 'config-path': {
|
|
667
|
+
config.cmdConfigPath(cwd, raw);
|
|
668
|
+
break;
|
|
669
|
+
}
|
|
670
|
+
|
|
636
671
|
case 'agent-skills': {
|
|
637
672
|
init.cmdAgentSkills(cwd, args[1], raw);
|
|
638
673
|
break;
|
|
639
674
|
}
|
|
640
675
|
|
|
676
|
+
case 'skill-manifest': {
|
|
677
|
+
init.cmdSkillManifest(cwd, args, raw);
|
|
678
|
+
break;
|
|
679
|
+
}
|
|
680
|
+
|
|
641
681
|
case 'history-digest': {
|
|
642
682
|
commands.cmdHistoryDigest(cwd, raw);
|
|
643
683
|
break;
|
|
644
684
|
}
|
|
645
685
|
|
|
646
686
|
case 'phases': {
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
};
|
|
656
|
-
phase.cmdPhasesList(cwd, options, raw);
|
|
657
|
-
} else if (subcommand === 'clear') {
|
|
658
|
-
milestone.cmdPhasesClear(cwd, raw, args.slice(2));
|
|
659
|
-
} else {
|
|
660
|
-
error('Unknown phases subcommand. Available: list, clear');
|
|
661
|
-
}
|
|
687
|
+
routePhasesCommand({
|
|
688
|
+
phase,
|
|
689
|
+
milestone,
|
|
690
|
+
args,
|
|
691
|
+
cwd,
|
|
692
|
+
raw,
|
|
693
|
+
error,
|
|
694
|
+
});
|
|
662
695
|
break;
|
|
663
696
|
}
|
|
664
697
|
|
|
665
698
|
case 'roadmap': {
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
} else {
|
|
674
|
-
error('Unknown roadmap subcommand. Available: get-phase, analyze, update-plan-progress');
|
|
675
|
-
}
|
|
699
|
+
routeRoadmapCommand({
|
|
700
|
+
roadmap,
|
|
701
|
+
args,
|
|
702
|
+
cwd,
|
|
703
|
+
raw,
|
|
704
|
+
error,
|
|
705
|
+
});
|
|
676
706
|
break;
|
|
677
707
|
}
|
|
678
708
|
|
|
@@ -681,38 +711,26 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
681
711
|
if (subcommand === 'mark-complete') {
|
|
682
712
|
milestone.cmdRequirementsMarkComplete(cwd, args.slice(2), raw);
|
|
683
713
|
} else {
|
|
684
|
-
error('Unknown requirements subcommand. Available: mark-complete');
|
|
714
|
+
error('Unknown requirements subcommand. Available: mark-complete', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
685
715
|
}
|
|
686
716
|
break;
|
|
687
717
|
}
|
|
688
718
|
|
|
719
|
+
case 'gap-analysis': {
|
|
720
|
+
// Post-planning gap checker (#2493) — unified REQUIREMENTS.md +
|
|
721
|
+
// CONTEXT.md <decisions> coverage report against PLAN.md files.
|
|
722
|
+
gapChecker.cmdGapAnalysis(cwd, args.slice(1), raw);
|
|
723
|
+
break;
|
|
724
|
+
}
|
|
725
|
+
|
|
689
726
|
case 'phase': {
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
for (let i = 2; i < args.length; i++) {
|
|
698
|
-
if (args[i] === '--id' && i + 1 < args.length) {
|
|
699
|
-
customId = args[i + 1];
|
|
700
|
-
i++; // skip value
|
|
701
|
-
} else {
|
|
702
|
-
descArgs.push(args[i]);
|
|
703
|
-
}
|
|
704
|
-
}
|
|
705
|
-
phase.cmdPhaseAdd(cwd, descArgs.join(' '), raw, customId);
|
|
706
|
-
} else if (subcommand === 'insert') {
|
|
707
|
-
phase.cmdPhaseInsert(cwd, args[2], args.slice(3).join(' '), raw);
|
|
708
|
-
} else if (subcommand === 'remove') {
|
|
709
|
-
const forceFlag = args.includes('--force');
|
|
710
|
-
phase.cmdPhaseRemove(cwd, args[2], { force: forceFlag }, raw);
|
|
711
|
-
} else if (subcommand === 'complete') {
|
|
712
|
-
phase.cmdPhaseComplete(cwd, args[2], raw);
|
|
713
|
-
} else {
|
|
714
|
-
error('Unknown phase subcommand. Available: next-decimal, add, insert, remove, complete');
|
|
715
|
-
}
|
|
727
|
+
routePhaseCommand({
|
|
728
|
+
phase,
|
|
729
|
+
args,
|
|
730
|
+
cwd,
|
|
731
|
+
raw,
|
|
732
|
+
error,
|
|
733
|
+
});
|
|
716
734
|
break;
|
|
717
735
|
}
|
|
718
736
|
|
|
@@ -723,23 +741,21 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
723
741
|
const archivePhases = args.includes('--archive-phases');
|
|
724
742
|
milestone.cmdMilestoneComplete(cwd, args[2], { name: milestoneName, archivePhases }, raw);
|
|
725
743
|
} else {
|
|
726
|
-
error('Unknown milestone subcommand. Available: complete');
|
|
744
|
+
error('Unknown milestone subcommand. Available: complete', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
727
745
|
}
|
|
728
746
|
break;
|
|
729
747
|
}
|
|
730
748
|
|
|
731
749
|
case 'validate': {
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
}
|
|
741
|
-
error('Unknown validate subcommand. Available: consistency, health, agents');
|
|
742
|
-
}
|
|
750
|
+
routeValidateCommand({
|
|
751
|
+
verify,
|
|
752
|
+
args,
|
|
753
|
+
cwd,
|
|
754
|
+
raw,
|
|
755
|
+
parseNamedArgs,
|
|
756
|
+
output: core.output,
|
|
757
|
+
error,
|
|
758
|
+
});
|
|
743
759
|
break;
|
|
744
760
|
}
|
|
745
761
|
|
|
@@ -755,6 +771,21 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
755
771
|
break;
|
|
756
772
|
}
|
|
757
773
|
|
|
774
|
+
case 'audit-open': {
|
|
775
|
+
const { auditOpenArtifacts, formatAuditReport } = require('./lib/audit.cjs');
|
|
776
|
+
const wantJson = args.includes('--json');
|
|
777
|
+
const result = auditOpenArtifacts(cwd);
|
|
778
|
+
if (wantJson) {
|
|
779
|
+
// core.output JSON-stringifies its first arg; pass the object directly.
|
|
780
|
+
core.output(result, raw);
|
|
781
|
+
} else {
|
|
782
|
+
// Human-readable report must bypass JSON encoding — use the rawValue
|
|
783
|
+
// form (third arg) which core.output emits verbatim.
|
|
784
|
+
core.output(null, true, formatAuditReport(result));
|
|
785
|
+
}
|
|
786
|
+
break;
|
|
787
|
+
}
|
|
788
|
+
|
|
758
789
|
case 'uat': {
|
|
759
790
|
const subcommand = args[1];
|
|
760
791
|
const uat = require('./lib/uat.cjs');
|
|
@@ -762,7 +793,7 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
762
793
|
const options = parseNamedArgs(args, ['file']);
|
|
763
794
|
uat.cmdRenderCheckpoint(cwd, options, raw);
|
|
764
795
|
} else {
|
|
765
|
-
error('Unknown uat subcommand. Available: render-checkpoint');
|
|
796
|
+
error('Unknown uat subcommand. Available: render-checkpoint', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
766
797
|
}
|
|
767
798
|
break;
|
|
768
799
|
}
|
|
@@ -780,7 +811,7 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
780
811
|
} else if (subcommand === 'match-phase') {
|
|
781
812
|
commands.cmdTodoMatchPhase(cwd, args[2], raw);
|
|
782
813
|
} else {
|
|
783
|
-
error('Unknown todo subcommand. Available: complete, match-phase');
|
|
814
|
+
error('Unknown todo subcommand. Available: complete, match-phase', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
784
815
|
}
|
|
785
816
|
break;
|
|
786
817
|
}
|
|
@@ -796,63 +827,14 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
796
827
|
}
|
|
797
828
|
|
|
798
829
|
case 'init': {
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
const { validate: ppValidate } = parseNamedArgs(args, [], ['validate']);
|
|
808
|
-
init.cmdInitPlanPhase(cwd, args[2], raw, { validate: ppValidate });
|
|
809
|
-
break;
|
|
810
|
-
}
|
|
811
|
-
case 'new-project':
|
|
812
|
-
init.cmdInitNewProject(cwd, raw);
|
|
813
|
-
break;
|
|
814
|
-
case 'new-milestone':
|
|
815
|
-
init.cmdInitNewMilestone(cwd, raw);
|
|
816
|
-
break;
|
|
817
|
-
case 'quick':
|
|
818
|
-
init.cmdInitQuick(cwd, args.slice(2).join(' '), raw);
|
|
819
|
-
break;
|
|
820
|
-
case 'resume':
|
|
821
|
-
init.cmdInitResume(cwd, raw);
|
|
822
|
-
break;
|
|
823
|
-
case 'verify-work':
|
|
824
|
-
init.cmdInitVerifyWork(cwd, args[2], raw);
|
|
825
|
-
break;
|
|
826
|
-
case 'phase-op':
|
|
827
|
-
init.cmdInitPhaseOp(cwd, args[2], raw);
|
|
828
|
-
break;
|
|
829
|
-
case 'todos':
|
|
830
|
-
init.cmdInitTodos(cwd, args[2], raw);
|
|
831
|
-
break;
|
|
832
|
-
case 'milestone-op':
|
|
833
|
-
init.cmdInitMilestoneOp(cwd, raw);
|
|
834
|
-
break;
|
|
835
|
-
case 'map-codebase':
|
|
836
|
-
init.cmdInitMapCodebase(cwd, raw);
|
|
837
|
-
break;
|
|
838
|
-
case 'progress':
|
|
839
|
-
init.cmdInitProgress(cwd, raw);
|
|
840
|
-
break;
|
|
841
|
-
case 'manager':
|
|
842
|
-
init.cmdInitManager(cwd, raw);
|
|
843
|
-
break;
|
|
844
|
-
case 'new-workspace':
|
|
845
|
-
init.cmdInitNewWorkspace(cwd, raw);
|
|
846
|
-
break;
|
|
847
|
-
case 'list-workspaces':
|
|
848
|
-
init.cmdInitListWorkspaces(cwd, raw);
|
|
849
|
-
break;
|
|
850
|
-
case 'remove-workspace':
|
|
851
|
-
init.cmdInitRemoveWorkspace(cwd, args[2], raw);
|
|
852
|
-
break;
|
|
853
|
-
default:
|
|
854
|
-
error(`Unknown init workflow: ${workflow}\nAvailable: execute-phase, plan-phase, new-project, new-milestone, quick, resume, verify-work, phase-op, todos, milestone-op, map-codebase, progress, manager, new-workspace, list-workspaces, remove-workspace`);
|
|
855
|
-
}
|
|
830
|
+
routeInitCommand({
|
|
831
|
+
init,
|
|
832
|
+
args,
|
|
833
|
+
cwd,
|
|
834
|
+
raw,
|
|
835
|
+
parseNamedArgs,
|
|
836
|
+
error,
|
|
837
|
+
});
|
|
856
838
|
break;
|
|
857
839
|
}
|
|
858
840
|
|
|
@@ -905,7 +887,7 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
905
887
|
const sessionsPath = pathIdx !== -1 ? args[pathIdx + 1] : null;
|
|
906
888
|
const projectArg = args[1];
|
|
907
889
|
if (!projectArg || projectArg.startsWith('--')) {
|
|
908
|
-
error('Usage: sdd-tools extract-messages <project> [--session <id>] [--limit N] [--path <dir>]\nRun scan-sessions first to see available projects.');
|
|
890
|
+
error('Usage: sdd-tools extract-messages <project> [--session <id>] [--limit N] [--path <dir>]\nRun scan-sessions first to see available projects.', ERROR_REASON.USAGE);
|
|
909
891
|
}
|
|
910
892
|
await profilePipeline.cmdExtractMessages(projectArg, { sessionId, limit }, raw, sessionsPath);
|
|
911
893
|
break;
|
|
@@ -929,7 +911,7 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
929
911
|
case 'write-profile': {
|
|
930
912
|
const inputIdx = args.indexOf('--input');
|
|
931
913
|
const inputPath = inputIdx !== -1 ? args[inputIdx + 1] : null;
|
|
932
|
-
if (!inputPath) error('--input <analysis-json-path> is required');
|
|
914
|
+
if (!inputPath) error('--input <analysis-json-path> is required', ERROR_REASON.USAGE);
|
|
933
915
|
const outputIdx = args.indexOf('--output');
|
|
934
916
|
const outputPath = outputIdx !== -1 ? args[outputIdx + 1] : null;
|
|
935
917
|
profileOutput.cmdWriteProfile(cwd, { input: inputPath, output: outputPath }, raw);
|
|
@@ -995,7 +977,18 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
995
977
|
} else if (subcommand === 'progress') {
|
|
996
978
|
workstream.cmdWorkstreamProgress(cwd, raw);
|
|
997
979
|
} else {
|
|
998
|
-
error('Unknown workstream subcommand. Available: create, list, status, complete, set, get, progress');
|
|
980
|
+
error('Unknown workstream subcommand. Available: create, list, status, complete, set, get, progress', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
981
|
+
}
|
|
982
|
+
break;
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
case 'worktree': {
|
|
986
|
+
const subcommand = args[1];
|
|
987
|
+
const worktreeSafety = require('./lib/worktree-safety.cjs');
|
|
988
|
+
if (subcommand === 'cleanup-wave') {
|
|
989
|
+
worktreeSafety.cmdWorktreeCleanupWave(cwd, args.slice(2));
|
|
990
|
+
} else {
|
|
991
|
+
error('Unknown worktree subcommand. Available: cleanup-wave', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
999
992
|
}
|
|
1000
993
|
break;
|
|
1001
994
|
}
|
|
@@ -1007,12 +1000,20 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
1007
1000
|
const subcommand = args[1];
|
|
1008
1001
|
if (subcommand === 'query') {
|
|
1009
1002
|
const term = args[2];
|
|
1010
|
-
if (!term) error('Usage: sdd-tools intel query <term>');
|
|
1003
|
+
if (!term) error('Usage: sdd-tools intel query <term>', ERROR_REASON.USAGE);
|
|
1011
1004
|
const planningDir = path.join(cwd, '.planning');
|
|
1012
1005
|
core.output(intel.intelQuery(term, planningDir), raw);
|
|
1013
1006
|
} else if (subcommand === 'status') {
|
|
1014
1007
|
const planningDir = path.join(cwd, '.planning');
|
|
1015
|
-
|
|
1008
|
+
const status = intel.intelStatus(planningDir);
|
|
1009
|
+
if (!raw && status.files) {
|
|
1010
|
+
for (const file of Object.values(status.files)) {
|
|
1011
|
+
if (file.updated_at) {
|
|
1012
|
+
file.updated_at = core.timeAgo(new Date(file.updated_at));
|
|
1013
|
+
}
|
|
1014
|
+
}
|
|
1015
|
+
}
|
|
1016
|
+
core.output(status, raw);
|
|
1016
1017
|
} else if (subcommand === 'diff') {
|
|
1017
1018
|
const planningDir = path.join(cwd, '.planning');
|
|
1018
1019
|
core.output(intel.intelDiff(planningDir), raw);
|
|
@@ -1021,20 +1022,47 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
1021
1022
|
core.output(intel.intelSnapshot(planningDir), raw);
|
|
1022
1023
|
} else if (subcommand === 'patch-meta') {
|
|
1023
1024
|
const filePath = args[2];
|
|
1024
|
-
if (!filePath) error('Usage: sdd-tools intel patch-meta <file-path>');
|
|
1025
|
+
if (!filePath) error('Usage: sdd-tools intel patch-meta <file-path>', ERROR_REASON.USAGE);
|
|
1025
1026
|
core.output(intel.intelPatchMeta(path.resolve(cwd, filePath)), raw);
|
|
1026
1027
|
} else if (subcommand === 'validate') {
|
|
1027
1028
|
const planningDir = path.join(cwd, '.planning');
|
|
1028
1029
|
core.output(intel.intelValidate(planningDir), raw);
|
|
1029
1030
|
} else if (subcommand === 'extract-exports') {
|
|
1030
1031
|
const filePath = args[2];
|
|
1031
|
-
if (!filePath) error('Usage: sdd-tools intel extract-exports <file-path>');
|
|
1032
|
+
if (!filePath) error('Usage: sdd-tools intel extract-exports <file-path>', ERROR_REASON.USAGE);
|
|
1032
1033
|
core.output(intel.intelExtractExports(path.resolve(cwd, filePath)), raw);
|
|
1033
1034
|
} else if (subcommand === 'update') {
|
|
1034
1035
|
const planningDir = path.join(cwd, '.planning');
|
|
1035
1036
|
core.output(intel.intelUpdate(planningDir), raw);
|
|
1036
1037
|
} else {
|
|
1037
|
-
error('Unknown intel subcommand. Available: query, status, update, diff, snapshot, patch-meta, validate, extract-exports');
|
|
1038
|
+
error('Unknown intel subcommand. Available: query, status, update, diff, snapshot, patch-meta, validate, extract-exports', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
1039
|
+
}
|
|
1040
|
+
break;
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
// ─── Graphify ──────────────────────────────────────────────────────────
|
|
1044
|
+
|
|
1045
|
+
case 'graphify': {
|
|
1046
|
+
const graphify = require('./lib/graphify.cjs');
|
|
1047
|
+
const subcommand = args[1];
|
|
1048
|
+
if (subcommand === 'query') {
|
|
1049
|
+
const term = args[2];
|
|
1050
|
+
if (!term) error('Usage: sdd-tools graphify query <term>', ERROR_REASON.USAGE);
|
|
1051
|
+
const budgetIdx = args.indexOf('--budget');
|
|
1052
|
+
const budget = budgetIdx !== -1 ? parseInt(args[budgetIdx + 1], 10) : null;
|
|
1053
|
+
core.output(graphify.graphifyQuery(cwd, term, { budget }), raw);
|
|
1054
|
+
} else if (subcommand === 'status') {
|
|
1055
|
+
core.output(graphify.graphifyStatus(cwd), raw);
|
|
1056
|
+
} else if (subcommand === 'diff') {
|
|
1057
|
+
core.output(graphify.graphifyDiff(cwd), raw);
|
|
1058
|
+
} else if (subcommand === 'build') {
|
|
1059
|
+
if (args[2] === 'snapshot') {
|
|
1060
|
+
core.output(graphify.writeSnapshot(cwd), raw);
|
|
1061
|
+
} else {
|
|
1062
|
+
core.output(graphify.graphifyBuild(cwd), raw);
|
|
1063
|
+
}
|
|
1064
|
+
} else {
|
|
1065
|
+
error('Unknown graphify subcommand. Available: build, query, status, diff', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
1038
1066
|
}
|
|
1039
1067
|
break;
|
|
1040
1068
|
}
|
|
@@ -1055,25 +1083,114 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
1055
1083
|
} else if (subcommand === 'query') {
|
|
1056
1084
|
const tagIdx = args.indexOf('--tag');
|
|
1057
1085
|
const tag = tagIdx !== -1 ? args[tagIdx + 1] : null;
|
|
1058
|
-
if (!tag) error('Usage: sdd-tools learnings query --tag <tag>');
|
|
1086
|
+
if (!tag) error('Usage: sdd-tools learnings query --tag <tag>', ERROR_REASON.USAGE);
|
|
1059
1087
|
learnings.cmdLearningsQuery(tag, raw);
|
|
1060
1088
|
} else if (subcommand === 'copy') {
|
|
1061
1089
|
learnings.cmdLearningsCopy(cwd, raw);
|
|
1062
1090
|
} else if (subcommand === 'prune') {
|
|
1063
1091
|
const olderIdx = args.indexOf('--older-than');
|
|
1064
1092
|
const olderThan = olderIdx !== -1 ? args[olderIdx + 1] : null;
|
|
1065
|
-
if (!olderThan) error('Usage: sdd-tools learnings prune --older-than <duration>');
|
|
1093
|
+
if (!olderThan) error('Usage: sdd-tools learnings prune --older-than <duration>', ERROR_REASON.USAGE);
|
|
1066
1094
|
learnings.cmdLearningsPrune(olderThan, raw);
|
|
1067
1095
|
} else if (subcommand === 'delete') {
|
|
1068
1096
|
const id = args[2];
|
|
1069
|
-
if (!id) error('Usage: sdd-tools learnings delete <id>');
|
|
1097
|
+
if (!id) error('Usage: sdd-tools learnings delete <id>', ERROR_REASON.USAGE);
|
|
1070
1098
|
learnings.cmdLearningsDelete(id, raw);
|
|
1071
1099
|
} else {
|
|
1072
|
-
error('Unknown learnings subcommand. Available: list, query, copy, prune, delete');
|
|
1100
|
+
error('Unknown learnings subcommand. Available: list, query, copy, prune, delete', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
1073
1101
|
}
|
|
1074
1102
|
break;
|
|
1075
1103
|
}
|
|
1076
1104
|
|
|
1105
|
+
// ─── detect-custom-files ───────────────────────────────────────────────
|
|
1106
|
+
// Detect user-added files inside SDD-managed directories that are not
|
|
1107
|
+
// tracked in sdd-file-manifest.json. Used by the update workflow to back
|
|
1108
|
+
// up custom files before the installer wipes those directories.
|
|
1109
|
+
//
|
|
1110
|
+
// This replaces the fragile bash pattern:
|
|
1111
|
+
// MANIFEST_FILES=$(node -e "require('$RUNTIME_DIR/...')" 2>/dev/null)
|
|
1112
|
+
// ${filepath#$RUNTIME_DIR/} # unreliable path stripping
|
|
1113
|
+
// which silently returns CUSTOM_COUNT=0 when $RUNTIME_DIR is unset or
|
|
1114
|
+
// when the stripped path does not match the manifest key format (#1997).
|
|
1115
|
+
|
|
1116
|
+
case 'detect-custom-files': {
|
|
1117
|
+
const configDirIdx = args.indexOf('--config-dir');
|
|
1118
|
+
const configDir = configDirIdx !== -1 ? args[configDirIdx + 1] : null;
|
|
1119
|
+
if (!configDir) {
|
|
1120
|
+
error('Usage: sdd-tools detect-custom-files --config-dir <path>', ERROR_REASON.USAGE);
|
|
1121
|
+
}
|
|
1122
|
+
const resolvedConfigDir = path.resolve(configDir);
|
|
1123
|
+
if (!fs.existsSync(resolvedConfigDir)) {
|
|
1124
|
+
error(`Config directory not found: ${resolvedConfigDir}`, ERROR_REASON.USAGE);
|
|
1125
|
+
}
|
|
1126
|
+
|
|
1127
|
+
const manifestPath = path.join(resolvedConfigDir, 'sdd-file-manifest.json');
|
|
1128
|
+
if (!fs.existsSync(manifestPath)) {
|
|
1129
|
+
// No manifest — cannot determine what is custom. Return empty list
|
|
1130
|
+
// (same behaviour as saveLocalPatches in install.js when no manifest).
|
|
1131
|
+
const out = { custom_files: [], custom_count: 0, manifest_found: false };
|
|
1132
|
+
process.stdout.write(JSON.stringify(out, null, 2));
|
|
1133
|
+
break;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
let manifest;
|
|
1137
|
+
try {
|
|
1138
|
+
manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
|
|
1139
|
+
} catch {
|
|
1140
|
+
const out = { custom_files: [], custom_count: 0, manifest_found: false, error: 'manifest parse error' };
|
|
1141
|
+
process.stdout.write(JSON.stringify(out, null, 2));
|
|
1142
|
+
break;
|
|
1143
|
+
}
|
|
1144
|
+
|
|
1145
|
+
const manifestKeys = new Set(Object.keys(manifest.files || {}));
|
|
1146
|
+
|
|
1147
|
+
// SDD-managed directories to scan for user-added files.
|
|
1148
|
+
// These are the directories the installer wipes on update.
|
|
1149
|
+
const SDD_MANAGED_DIRS = [
|
|
1150
|
+
'sdd',
|
|
1151
|
+
'agents',
|
|
1152
|
+
path.join('commands', 'sdd'),
|
|
1153
|
+
'hooks',
|
|
1154
|
+
'skills',
|
|
1155
|
+
];
|
|
1156
|
+
|
|
1157
|
+
function walkDir(dir, baseDir) {
|
|
1158
|
+
const results = [];
|
|
1159
|
+
if (!fs.existsSync(dir)) return results;
|
|
1160
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
1161
|
+
const fullPath = path.join(dir, entry.name);
|
|
1162
|
+
if (entry.isDirectory()) {
|
|
1163
|
+
results.push(...walkDir(fullPath, baseDir));
|
|
1164
|
+
} else {
|
|
1165
|
+
// Use forward slashes for cross-platform manifest key compatibility
|
|
1166
|
+
const relPath = path.relative(baseDir, fullPath).replace(/\\/g, '/');
|
|
1167
|
+
results.push(relPath);
|
|
1168
|
+
}
|
|
1169
|
+
}
|
|
1170
|
+
return results;
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1173
|
+
const customFiles = [];
|
|
1174
|
+
for (const managedDir of SDD_MANAGED_DIRS) {
|
|
1175
|
+
const absDir = path.join(resolvedConfigDir, managedDir);
|
|
1176
|
+
if (!fs.existsSync(absDir)) continue;
|
|
1177
|
+
for (const relPath of walkDir(absDir, resolvedConfigDir)) {
|
|
1178
|
+
if (!manifestKeys.has(relPath)) {
|
|
1179
|
+
customFiles.push(relPath);
|
|
1180
|
+
}
|
|
1181
|
+
}
|
|
1182
|
+
}
|
|
1183
|
+
|
|
1184
|
+
const out = {
|
|
1185
|
+
custom_files: customFiles,
|
|
1186
|
+
custom_count: customFiles.length,
|
|
1187
|
+
manifest_found: true,
|
|
1188
|
+
manifest_version: manifest.version || null,
|
|
1189
|
+
};
|
|
1190
|
+
process.stdout.write(JSON.stringify(out, null, 2));
|
|
1191
|
+
break;
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1077
1194
|
// ─── SDD-2 Reverse Migration ───────────────────────────────────────────
|
|
1078
1195
|
|
|
1079
1196
|
case 'from-sdd2': {
|
|
@@ -1082,8 +1199,25 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
|
|
|
1082
1199
|
break;
|
|
1083
1200
|
}
|
|
1084
1201
|
|
|
1085
|
-
default:
|
|
1086
|
-
|
|
1202
|
+
default: {
|
|
1203
|
+
// #3243: if the caller passed a dotted form (e.g. "foo.bar"), the shim
|
|
1204
|
+
// above split it so `command` here is the head ("foo"). Use
|
|
1205
|
+
// originalCommand to reconstruct the original dotted form and suggest
|
|
1206
|
+
// the spaced equivalent — surfacing a useful diagnostic instead of just
|
|
1207
|
+
// "Unknown command: foo".
|
|
1208
|
+
const wasDotted =
|
|
1209
|
+
typeof originalCommand === 'string' &&
|
|
1210
|
+
originalCommand !== command &&
|
|
1211
|
+
originalCommand.includes('.');
|
|
1212
|
+
let suggestion = '';
|
|
1213
|
+
if (wasDotted) {
|
|
1214
|
+
const dotIdx = originalCommand.indexOf('.');
|
|
1215
|
+
const head = originalCommand.slice(0, dotIdx);
|
|
1216
|
+
const rest = originalCommand.slice(dotIdx + 1);
|
|
1217
|
+
suggestion = ` — did you mean: "${head} ${rest}"?`;
|
|
1218
|
+
}
|
|
1219
|
+
error(`Unknown command: ${command}${suggestion}`, ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
1220
|
+
}
|
|
1087
1221
|
}
|
|
1088
1222
|
}
|
|
1089
1223
|
|