@bhargavvc/sdd-cc 1.30.1 → 1.42.3
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 +165 -129
- package/README.ko-KR.md +161 -123
- package/README.md +103 -679
- package/README.pt-BR.md +92 -52
- package/README.zh-CN.md +145 -103
- package/agents/sdd-advisor-researcher.md +23 -0
- package/agents/sdd-ai-researcher.md +133 -0
- package/agents/sdd-code-fixer.md +668 -0
- package/agents/sdd-code-reviewer.md +387 -0
- package/agents/sdd-codebase-mapper.md +86 -3
- package/agents/sdd-debug-session-manager.md +314 -0
- package/agents/sdd-debugger.md +157 -78
- package/agents/sdd-doc-classifier.md +168 -0
- package/agents/sdd-doc-synthesizer.md +204 -0
- package/agents/sdd-doc-verifier.md +217 -0
- package/agents/sdd-doc-writer.md +615 -0
- package/agents/sdd-domain-researcher.md +153 -0
- package/agents/sdd-eval-auditor.md +191 -0
- package/agents/sdd-eval-planner.md +154 -0
- package/agents/sdd-executor.md +283 -40
- package/agents/sdd-framework-selector.md +160 -0
- package/agents/sdd-integration-checker.md +30 -3
- package/agents/sdd-intel-updater.md +342 -0
- package/agents/sdd-nyquist-auditor.md +31 -4
- package/agents/sdd-pattern-mapper.md +335 -0
- package/agents/sdd-phase-researcher.md +254 -24
- package/agents/sdd-plan-checker.md +223 -18
- package/agents/sdd-planner.md +286 -362
- package/agents/sdd-project-researcher.md +28 -5
- package/agents/sdd-research-synthesizer.md +4 -4
- package/agents/sdd-roadmapper.md +14 -5
- package/agents/sdd-security-auditor.md +155 -0
- package/agents/sdd-ui-auditor.md +60 -4
- package/agents/sdd-ui-checker.md +11 -2
- package/agents/sdd-ui-researcher.md +27 -4
- package/agents/sdd-user-profiler.md +2 -2
- package/agents/sdd-verifier.md +258 -41
- package/bin/install.js +6862 -618
- package/bin/sdd-sdk.js +37 -0
- package/commands/sdd/add-tests.md +3 -2
- package/commands/sdd/ai-integration-phase.md +37 -0
- package/commands/sdd/audit-fix.md +34 -0
- package/commands/sdd/audit-milestone.md +3 -2
- package/commands/sdd/autonomous.md +10 -5
- package/commands/sdd/capture.md +62 -0
- package/commands/sdd/cleanup.md +7 -1
- package/commands/sdd/code-review.md +59 -0
- package/commands/sdd/complete-milestone.md +11 -4
- package/commands/sdd/config.md +58 -0
- package/commands/sdd/debug.md +23 -144
- package/commands/sdd/discuss-phase.md +22 -10
- package/commands/sdd/docs-update.md +49 -0
- package/commands/sdd/eval-review.md +33 -0
- package/commands/sdd/execute-phase.md +9 -4
- package/commands/sdd/explore.md +27 -0
- package/commands/sdd/extract-learnings.md +23 -0
- package/commands/sdd/fast.md +2 -1
- 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 +3 -1
- package/commands/sdd/import.md +41 -0
- package/commands/sdd/inbox.md +39 -0
- package/commands/sdd/ingest-docs.md +42 -0
- package/commands/sdd/manager.md +9 -3
- package/commands/sdd/map-codebase.md +15 -3
- package/commands/sdd/milestone-summary.md +1 -1
- package/commands/sdd/mvp-phase.md +45 -0
- package/commands/sdd/new-milestone.md +3 -2
- package/commands/sdd/new-project.md +7 -2
- 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 +19 -4
- package/commands/sdd/plan-review-convergence.md +59 -0
- package/commands/sdd/pr-branch.md +2 -1
- package/commands/sdd/profile-user.md +2 -2
- package/commands/sdd/progress.md +27 -5
- package/commands/sdd/quick.md +132 -5
- package/commands/sdd/resume-work.md +2 -12
- package/commands/sdd/review-backlog.md +4 -2
- package/commands/sdd/review.md +7 -3
- package/commands/sdd/secure-phase.md +36 -0
- package/commands/sdd/settings.md +2 -9
- package/commands/sdd/ship.md +1 -0
- 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 +35 -0
- package/commands/sdd/update.md +21 -10
- package/commands/sdd/validate-phase.md +3 -2
- package/commands/sdd/verify-work.md +4 -3
- package/commands/sdd/workspace.md +52 -0
- package/commands/sdd/workstreams.md +15 -8
- package/hooks/dist/sdd-check-update-worker.js +116 -0
- package/hooks/dist/sdd-check-update.js +19 -69
- package/hooks/dist/sdd-context-monitor.js +43 -7
- package/hooks/dist/sdd-phase-boundary.sh +47 -0
- package/hooks/dist/sdd-prompt-guard.js +1 -0
- package/hooks/dist/sdd-read-guard.js +101 -0
- package/hooks/dist/sdd-read-injection-scanner.js +152 -0
- package/hooks/dist/sdd-session-state.sh +59 -0
- package/hooks/dist/sdd-statusline.js +439 -21
- package/hooks/dist/sdd-update-banner.js +134 -0
- package/hooks/dist/sdd-validate-commit.sh +57 -0
- 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 +64 -0
- package/hooks/sdd-context-monitor.js +192 -0
- package/hooks/sdd-phase-boundary.sh +47 -0
- package/hooks/sdd-prompt-guard.js +97 -0
- package/hooks/sdd-read-guard.js +101 -0
- package/hooks/sdd-read-injection-scanner.js +152 -0
- package/hooks/sdd-session-state.sh +59 -0
- package/hooks/sdd-statusline.js +537 -0
- package/hooks/sdd-update-banner.js +134 -0
- package/hooks/sdd-validate-commit.sh +57 -0
- package/hooks/sdd-workflow-guard.js +94 -0
- package/package.json +34 -9
- package/scripts/audit-workflow-script-paths.cjs +73 -0
- package/scripts/build-hooks.js +114 -9
- 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 +3 -0
- package/scripts/rebrand-gsd-to-sdd.sh +222 -220
- package/scripts/run-tests.cjs +5 -1
- 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 +135 -0
- package/sdd/bin/lib/command-aliases.generated.cjs +838 -0
- package/sdd/bin/lib/commands.cjs +179 -107
- package/sdd/bin/lib/config-schema.cjs +135 -0
- package/sdd/bin/lib/config.cjs +313 -86
- package/sdd/bin/lib/context-utilization.cjs +47 -0
- package/sdd/bin/lib/core.cjs +1146 -391
- package/sdd/bin/lib/decisions.cjs +48 -0
- package/sdd/bin/lib/docs.cjs +270 -0
- package/sdd/bin/lib/drift.cjs +379 -0
- package/sdd/bin/lib/fallow-runner.cjs +109 -0
- package/sdd/bin/lib/frontmatter.cjs +389 -336
- 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 +692 -97
- 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 +643 -0
- package/sdd/bin/lib/learnings.cjs +379 -0
- package/sdd/bin/lib/milestone.cjs +313 -252
- package/sdd/bin/lib/model-catalog.cjs +136 -0
- package/sdd/bin/lib/model-profiles.cjs +25 -68
- package/sdd/bin/lib/phase-command-router.cjs +96 -0
- package/sdd/bin/lib/phase.cjs +868 -335
- 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 +197 -35
- 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 +416 -124
- package/sdd/bin/lib/runtime-homes.cjs +178 -0
- package/sdd/bin/lib/schema-detect.cjs +238 -0
- package/sdd/bin/lib/sdd2-import.cjs +511 -0
- package/sdd/bin/lib/secrets.cjs +33 -0
- package/sdd/bin/lib/security.cjs +131 -9
- 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 +1253 -367
- package/sdd/bin/lib/surface.cjs +398 -0
- package/sdd/bin/lib/template.cjs +11 -5
- 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 +648 -140
- 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 +78 -196
- package/sdd/bin/lib/worktree-safety.cjs +563 -0
- package/sdd/bin/sdd-tools.cjs +528 -222
- package/sdd/bin/verify-reapply-patches.cjs +247 -0
- package/sdd/contexts/dev.md +21 -0
- package/sdd/contexts/research.md +22 -0
- package/sdd/contexts/review.md +23 -0
- package/sdd/references/agent-contracts.md +79 -0
- package/sdd/references/ai-evals.md +156 -0
- package/sdd/references/ai-frameworks.md +186 -0
- package/sdd/references/artifact-types.md +131 -0
- package/sdd/references/autonomous-smart-discuss.md +277 -0
- package/sdd/references/checkpoints.md +36 -0
- package/sdd/references/common-bug-patterns.md +114 -0
- package/sdd/references/context-budget.md +85 -0
- package/sdd/references/continuation-format.md +30 -26
- 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 +125 -0
- package/sdd/references/execute-mvp-tdd.md +81 -0
- package/sdd/references/executor-examples.md +110 -0
- package/sdd/references/few-shot-examples/plan-checker.md +73 -0
- package/sdd/references/few-shot-examples/verifier.md +109 -0
- package/sdd/references/gate-prompts.md +100 -0
- package/sdd/references/gates.md +70 -0
- package/sdd/references/git-integration.md +9 -6
- package/sdd/references/git-planning-commit.md +6 -4
- package/sdd/references/ios-scaffold.md +123 -0
- package/sdd/references/mandatory-initial-read.md +2 -0
- package/sdd/references/model-profile-resolution.md +2 -0
- package/sdd/references/model-profiles.md +128 -22
- 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-gap-closure.md +62 -0
- package/sdd/references/planner-human-verify-mode.md +57 -0
- package/sdd/references/planner-mvp-mode.md +53 -0
- package/sdd/references/planner-reviews.md +39 -0
- package/sdd/references/planner-revision.md +87 -0
- package/sdd/references/planner-source-audit.md +73 -0
- package/sdd/references/planning-config.md +276 -7
- package/sdd/references/project-skills-discovery.md +19 -0
- package/sdd/references/revision-loop.md +97 -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-models-debug.md +44 -0
- package/sdd/references/thinking-models-execution.md +50 -0
- package/sdd/references/thinking-models-planning.md +62 -0
- package/sdd/references/thinking-models-research.md +50 -0
- package/sdd/references/thinking-models-verification.md +55 -0
- package/sdd/references/thinking-partner.md +96 -0
- package/sdd/references/ui-brand.md +4 -4
- package/sdd/references/universal-anti-patterns.md +63 -0
- package/sdd/references/user-story-template.md +58 -0
- package/sdd/references/verification-overrides.md +227 -0
- package/sdd/references/verify-mvp-mode.md +85 -0
- package/sdd/references/workstream-flag.md +63 -10
- package/sdd/references/worktree-path-safety.md +89 -0
- package/sdd/templates/AI-SPEC.md +246 -0
- package/sdd/templates/DEBUG.md +7 -2
- package/sdd/templates/README.md +77 -0
- package/sdd/templates/SECURITY.md +61 -0
- package/sdd/templates/VALIDATION.md +3 -3
- package/sdd/templates/claude-md.md +27 -4
- package/sdd/templates/config.json +20 -2
- package/sdd/templates/discovery.md +2 -2
- package/sdd/templates/research.md +40 -0
- package/sdd/templates/spec.md +307 -0
- package/sdd/templates/state.md +10 -2
- package/sdd/workflows/add-backlog.md +90 -0
- package/sdd/workflows/add-phase.md +12 -12
- package/sdd/workflows/add-tests.md +6 -3
- package/sdd/workflows/add-todo.md +8 -6
- package/sdd/workflows/ai-integration-phase.md +294 -0
- package/sdd/workflows/analyze-dependencies.md +96 -0
- package/sdd/workflows/audit-fix.md +177 -0
- package/sdd/workflows/audit-milestone.md +35 -18
- package/sdd/workflows/audit-uat.md +1 -1
- package/sdd/workflows/autonomous.md +202 -304
- package/sdd/workflows/check-todos.md +12 -10
- package/sdd/workflows/cleanup.md +3 -1
- package/sdd/workflows/code-review-fix.md +501 -0
- package/sdd/workflows/code-review.md +613 -0
- package/sdd/workflows/complete-milestone.md +115 -28
- package/sdd/workflows/debug.md +231 -0
- package/sdd/workflows/diagnose-issues.md +14 -5
- package/sdd/workflows/discovery-phase.md +3 -1
- 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 +41 -20
- package/sdd/workflows/discuss-phase-power.md +291 -0
- package/sdd/workflows/discuss-phase.md +242 -792
- package/sdd/workflows/do.md +13 -7
- package/sdd/workflows/docs-update.md +1161 -0
- package/sdd/workflows/edit-phase.md +294 -0
- package/sdd/workflows/eval-review.md +155 -0
- 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 +1062 -108
- package/sdd/workflows/execute-plan.md +118 -107
- package/sdd/workflows/explore.md +143 -0
- package/sdd/workflows/extract-learnings.md +242 -0
- package/sdd/workflows/forensics.md +17 -4
- package/sdd/workflows/graduation.md +195 -0
- package/sdd/workflows/health.md +45 -3
- package/sdd/workflows/help.md +265 -88
- package/sdd/workflows/import.md +253 -0
- package/sdd/workflows/inbox.md +387 -0
- package/sdd/workflows/ingest-docs.md +339 -0
- package/sdd/workflows/insert-phase.md +37 -16
- package/sdd/workflows/list-phase-assumptions.md +2 -2
- package/sdd/workflows/list-workspaces.md +3 -3
- package/sdd/workflows/manager.md +62 -32
- package/sdd/workflows/map-codebase.md +90 -24
- package/sdd/workflows/milestone-summary.md +6 -6
- package/sdd/workflows/mvp-phase.md +221 -0
- package/sdd/workflows/new-milestone.md +168 -20
- package/sdd/workflows/new-project.md +273 -47
- package/sdd/workflows/new-workspace.md +8 -6
- package/sdd/workflows/next.md +127 -4
- package/sdd/workflows/note.md +7 -5
- package/sdd/workflows/pause-work.md +79 -12
- package/sdd/workflows/plan-milestone-gaps.md +14 -7
- package/sdd/workflows/plan-phase.md +987 -62
- package/sdd/workflows/plan-review-convergence.md +329 -0
- package/sdd/workflows/plant-seed.md +145 -85
- package/sdd/workflows/pr-branch.md +41 -13
- package/sdd/workflows/profile-user.md +20 -18
- package/sdd/workflows/progress.md +186 -44
- package/sdd/workflows/quick.md +470 -58
- package/sdd/workflows/reapply-patches.md +390 -0
- package/sdd/workflows/remove-phase.md +12 -12
- package/sdd/workflows/remove-workspace.md +24 -7
- package/sdd/workflows/resume-project.md +18 -15
- package/sdd/workflows/review.md +242 -11
- package/sdd/workflows/scan.md +104 -0
- package/sdd/workflows/secure-phase.md +179 -0
- package/sdd/workflows/session-report.md +2 -2
- package/sdd/workflows/settings-advanced.md +579 -0
- package/sdd/workflows/settings-integrations.md +281 -0
- package/sdd/workflows/settings.md +221 -16
- package/sdd/workflows/ship.md +140 -13
- 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 +20 -1
- package/sdd/workflows/sync-skills.md +182 -0
- package/sdd/workflows/thread.md +221 -0
- package/sdd/workflows/transition.md +44 -22
- package/sdd/workflows/ui-phase.md +39 -14
- package/sdd/workflows/ui-review.md +33 -6
- package/sdd/workflows/ultraplan-phase.md +198 -0
- package/sdd/workflows/undo.md +314 -0
- package/sdd/workflows/update.md +350 -29
- package/sdd/workflows/validate-phase.md +10 -6
- package/sdd/workflows/verify-phase.md +307 -18
- package/sdd/workflows/verify-work.md +153 -10
- 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/check-todos.md +0 -45
- package/commands/sdd/do.md +0 -30
- package/commands/sdd/insert-phase.md +0 -32
- package/commands/sdd/join-discord.md +0 -18
- 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 -24
- 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/reapply-patches.md +0 -123
- 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/session-report.md +0 -19
- package/commands/sdd/set-profile.md +0 -12
- package/scripts/sync-upstream.sh +0 -56
- package/sdd/commands/sdd/workstreams.md +0 -63
- 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,19 @@
|
|
|
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
|
+
*
|
|
81
|
+
* Intel:
|
|
82
|
+
* intel query <term> Query intel files for a term
|
|
83
|
+
* intel status Show intel file freshness
|
|
84
|
+
* intel update Trigger intel refresh (returns agent spawn hint)
|
|
85
|
+
* intel diff Show changed intel entries since last snapshot
|
|
86
|
+
* intel snapshot Save current intel state as diff baseline
|
|
87
|
+
* intel patch-meta <file> Update _meta.updated_at in an intel file
|
|
88
|
+
* intel validate Validate intel file structure
|
|
89
|
+
* intel extract-exports <file> Extract exported symbols from a source file
|
|
90
|
+
*
|
|
73
91
|
* Scaffolding:
|
|
74
92
|
* scaffold context --phase <N> Create CONTEXT.md template
|
|
75
93
|
* scaffold uat --phase <N> Create UAT.md template
|
|
@@ -93,6 +111,8 @@
|
|
|
93
111
|
* verify commits <h1> [h2] ... Batch verify commit hashes
|
|
94
112
|
* verify artifacts <plan-file> Check must_haves.artifacts
|
|
95
113
|
* verify key-links <plan-file> Check must_haves.key_links
|
|
114
|
+
* verify schema-drift <phase> [--skip] Detect schema file changes without push
|
|
115
|
+
* verify codebase-drift Detect structural drift since last codebase map (#2003)
|
|
96
116
|
*
|
|
97
117
|
* Template Fill:
|
|
98
118
|
* template fill summary --phase N Create pre-filled SUMMARY.md
|
|
@@ -133,12 +153,28 @@
|
|
|
133
153
|
* init milestone-op All context for milestone operations
|
|
134
154
|
* init map-codebase All context for map-codebase workflow
|
|
135
155
|
* init progress All context for progress workflow
|
|
156
|
+
*
|
|
157
|
+
* Documentation:
|
|
158
|
+
* docs-init Project context for docs-update workflow
|
|
159
|
+
*
|
|
160
|
+
* Learnings:
|
|
161
|
+
* learnings list List all global learnings (JSON)
|
|
162
|
+
* learnings query --tag <tag> Query learnings by tag
|
|
163
|
+
* learnings copy Copy from current project's LEARNINGS.md
|
|
164
|
+
* learnings prune --older-than <dur> Remove entries older than duration (e.g. 90d)
|
|
165
|
+
* learnings delete <id> Delete a learning by ID
|
|
166
|
+
*
|
|
167
|
+
* SDD-2 Migration:
|
|
168
|
+
* from-sdd2 [--path <dir>] [--force] [--dry-run]
|
|
169
|
+
* Import a SDD-2 (.sdd/) project back to SDD v1 (.planning/) format
|
|
136
170
|
*/
|
|
137
171
|
|
|
138
172
|
const fs = require('fs');
|
|
139
173
|
const path = require('path');
|
|
140
174
|
const core = require('./lib/core.cjs');
|
|
141
|
-
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');
|
|
142
178
|
const state = require('./lib/state.cjs');
|
|
143
179
|
const phase = require('./lib/phase.cjs');
|
|
144
180
|
const roadmap = require('./lib/roadmap.cjs');
|
|
@@ -152,6 +188,16 @@ const frontmatter = require('./lib/frontmatter.cjs');
|
|
|
152
188
|
const profilePipeline = require('./lib/profile-pipeline.cjs');
|
|
153
189
|
const profileOutput = require('./lib/profile-output.cjs');
|
|
154
190
|
const workstream = require('./lib/workstream.cjs');
|
|
191
|
+
const docs = require('./lib/docs.cjs');
|
|
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');
|
|
155
201
|
|
|
156
202
|
// ─── Arg parsing helpers ──────────────────────────────────────────────────────
|
|
157
203
|
|
|
@@ -196,7 +242,25 @@ function parseMultiwordArg(args, flag) {
|
|
|
196
242
|
// ─── CLI Router ───────────────────────────────────────────────────────────────
|
|
197
243
|
|
|
198
244
|
async function main() {
|
|
199
|
-
|
|
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
|
+
}
|
|
200
264
|
|
|
201
265
|
// Optional cwd override for sandboxed subagents running outside project root.
|
|
202
266
|
let cwd = process.cwd();
|
|
@@ -204,18 +268,18 @@ async function main() {
|
|
|
204
268
|
const cwdIdx = args.indexOf('--cwd');
|
|
205
269
|
if (cwdEqArg) {
|
|
206
270
|
const value = cwdEqArg.slice('--cwd='.length).trim();
|
|
207
|
-
if (!value) error('Missing value for --cwd');
|
|
271
|
+
if (!value) error('Missing value for --cwd', ERROR_REASON.USAGE);
|
|
208
272
|
args.splice(args.indexOf(cwdEqArg), 1);
|
|
209
273
|
cwd = path.resolve(value);
|
|
210
274
|
} else if (cwdIdx !== -1) {
|
|
211
275
|
const value = args[cwdIdx + 1];
|
|
212
|
-
if (!value || value.startsWith('--')) error('Missing value for --cwd');
|
|
276
|
+
if (!value || value.startsWith('--')) error('Missing value for --cwd', ERROR_REASON.USAGE);
|
|
213
277
|
args.splice(cwdIdx, 2);
|
|
214
278
|
cwd = path.resolve(value);
|
|
215
279
|
}
|
|
216
280
|
|
|
217
281
|
if (!fs.existsSync(cwd) || !fs.statSync(cwd).isDirectory()) {
|
|
218
|
-
error(`Invalid --cwd: ${cwd}
|
|
282
|
+
error(`Invalid --cwd: ${cwd}`, ERROR_REASON.USAGE);
|
|
219
283
|
}
|
|
220
284
|
|
|
221
285
|
// Resolve worktree root: in a linked worktree, .planning/ lives in the main worktree.
|
|
@@ -230,30 +294,18 @@ async function main() {
|
|
|
230
294
|
}
|
|
231
295
|
|
|
232
296
|
// Optional workstream override for parallel milestone work.
|
|
233
|
-
// Priority: --ws flag > SDD_WORKSTREAM env var >
|
|
234
|
-
const wsEqArg = args.find(arg => arg.startsWith('--ws='));
|
|
235
|
-
const wsIdx = args.indexOf('--ws');
|
|
297
|
+
// Priority: --ws flag > SDD_WORKSTREAM env var > session/shared pointer > null.
|
|
236
298
|
let ws = null;
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
} else {
|
|
248
|
-
ws = getActiveWorkstream(cwd);
|
|
249
|
-
}
|
|
250
|
-
// Validate workstream name to prevent path traversal attacks.
|
|
251
|
-
if (ws && !/^[a-zA-Z0-9_-]+$/.test(ws)) {
|
|
252
|
-
error('Invalid workstream name: must be alphanumeric, hyphens, and underscores only');
|
|
253
|
-
}
|
|
254
|
-
// Set env var so all modules (planningDir, planningPaths) auto-resolve workstream paths
|
|
255
|
-
if (ws) {
|
|
256
|
-
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));
|
|
257
309
|
}
|
|
258
310
|
|
|
259
311
|
const rawIndex = args.indexOf('--raw');
|
|
@@ -267,14 +319,97 @@ async function main() {
|
|
|
267
319
|
let pickField = null;
|
|
268
320
|
if (pickIdx !== -1) {
|
|
269
321
|
pickField = args[pickIdx + 1];
|
|
270
|
-
if (!pickField || pickField.startsWith('--')) error('Missing value for --pick');
|
|
322
|
+
if (!pickField || pickField.startsWith('--')) error('Missing value for --pick', ERROR_REASON.USAGE);
|
|
271
323
|
args.splice(pickIdx, 2);
|
|
272
324
|
}
|
|
273
325
|
|
|
274
|
-
|
|
326
|
+
// --default <value>: for config-get, return this value instead of erroring
|
|
327
|
+
// when the key is absent. Allows workflows to express optional config reads
|
|
328
|
+
// without defensive `2>/dev/null || true` boilerplate (#1893).
|
|
329
|
+
const defaultIdx = args.indexOf('--default');
|
|
330
|
+
let defaultValue = undefined;
|
|
331
|
+
if (defaultIdx !== -1) {
|
|
332
|
+
defaultValue = args[defaultIdx + 1];
|
|
333
|
+
if (defaultValue === undefined) defaultValue = '';
|
|
334
|
+
args.splice(defaultIdx, 2);
|
|
335
|
+
}
|
|
336
|
+
|
|
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.';
|
|
275
385
|
|
|
276
386
|
if (!command) {
|
|
277
|
-
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;
|
|
403
|
+
}
|
|
404
|
+
|
|
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']);
|
|
409
|
+
for (const arg of args) {
|
|
410
|
+
if (NEVER_VALID_FLAGS.has(arg)) {
|
|
411
|
+
error(`Unknown flag: ${arg}\nsdd-tools does not accept version flags. Run "sdd-tools" with no arguments for usage.`, ERROR_REASON.USAGE);
|
|
412
|
+
}
|
|
278
413
|
}
|
|
279
414
|
|
|
280
415
|
// Multi-repo guard: resolve project root for commands that read/write .planning/.
|
|
@@ -282,7 +417,8 @@ async function main() {
|
|
|
282
417
|
// filesystem traversal on every invocation.
|
|
283
418
|
const SKIP_ROOT_RESOLUTION = new Set([
|
|
284
419
|
'generate-slug', 'current-timestamp', 'verify-path-exists',
|
|
285
|
-
'verify-summary', 'template', 'frontmatter',
|
|
420
|
+
'verify-summary', 'template', 'frontmatter', 'detect-custom-files',
|
|
421
|
+
'worktree',
|
|
286
422
|
]);
|
|
287
423
|
if (!SKIP_ROOT_RESOLUTION.has(command)) {
|
|
288
424
|
cwd = findProjectRoot(cwd);
|
|
@@ -313,7 +449,7 @@ async function main() {
|
|
|
313
449
|
}
|
|
314
450
|
};
|
|
315
451
|
try {
|
|
316
|
-
await runCommand(command, args, cwd, raw);
|
|
452
|
+
await runCommand(command, args, cwd, raw, defaultValue, originalCommand);
|
|
317
453
|
cleanup();
|
|
318
454
|
} catch (e) {
|
|
319
455
|
fs.writeSync = origWriteSync;
|
|
@@ -322,7 +458,27 @@ async function main() {
|
|
|
322
458
|
return;
|
|
323
459
|
}
|
|
324
460
|
|
|
325
|
-
|
|
461
|
+
// Intercept stdout to transparently resolve @file: references (#1891).
|
|
462
|
+
// core.cjs output() writes @file:<path> when JSON > 50KB. The --pick path
|
|
463
|
+
// already resolves this, but the normal path wrote @file: to stdout, forcing
|
|
464
|
+
// every workflow to have a bash-specific `if [[ "$INIT" == @file:* ]]` check
|
|
465
|
+
// that breaks on PowerShell and other non-bash shells.
|
|
466
|
+
const origWriteSync2 = fs.writeSync;
|
|
467
|
+
const outChunks = [];
|
|
468
|
+
fs.writeSync = function (fd, data, ...rest) {
|
|
469
|
+
if (fd === 1) { outChunks.push(String(data)); return; }
|
|
470
|
+
return origWriteSync2.call(fs, fd, data, ...rest);
|
|
471
|
+
};
|
|
472
|
+
try {
|
|
473
|
+
await runCommand(command, args, cwd, raw, defaultValue, originalCommand);
|
|
474
|
+
} finally {
|
|
475
|
+
fs.writeSync = origWriteSync2;
|
|
476
|
+
}
|
|
477
|
+
let captured = outChunks.join('');
|
|
478
|
+
if (captured.startsWith('@file:')) {
|
|
479
|
+
captured = fs.readFileSync(captured.slice(6), 'utf-8');
|
|
480
|
+
}
|
|
481
|
+
origWriteSync2.call(fs, 1, captured);
|
|
326
482
|
}
|
|
327
483
|
|
|
328
484
|
/**
|
|
@@ -348,55 +504,17 @@ function extractField(obj, fieldPath) {
|
|
|
348
504
|
return current;
|
|
349
505
|
}
|
|
350
506
|
|
|
351
|
-
async function runCommand(command, args, cwd, raw) {
|
|
507
|
+
async function runCommand(command, args, cwd, raw, defaultValue, originalCommand) {
|
|
352
508
|
switch (command) {
|
|
353
509
|
case 'state': {
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
}
|
|
362
|
-
const patches = {};
|
|
363
|
-
for (let i = 2; i < args.length; i += 2) {
|
|
364
|
-
const key = args[i].replace(/^--/, '');
|
|
365
|
-
const value = args[i + 1];
|
|
366
|
-
if (key && value !== undefined) {
|
|
367
|
-
patches[key] = value;
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
state.cmdStatePatch(cwd, patches, raw);
|
|
371
|
-
} else if (subcommand === 'advance-plan') {
|
|
372
|
-
state.cmdStateAdvancePlan(cwd, raw);
|
|
373
|
-
} else if (subcommand === 'record-metric') {
|
|
374
|
-
const { phase: p, plan, duration, tasks, files } = parseNamedArgs(args, ['phase', 'plan', 'duration', 'tasks', 'files']);
|
|
375
|
-
state.cmdStateRecordMetric(cwd, { phase: p, plan, duration, tasks, files }, raw);
|
|
376
|
-
} else if (subcommand === 'update-progress') {
|
|
377
|
-
state.cmdStateUpdateProgress(cwd, raw);
|
|
378
|
-
} else if (subcommand === 'add-decision') {
|
|
379
|
-
const { phase: p, summary, 'summary-file': summary_file, rationale, 'rationale-file': rationale_file } = parseNamedArgs(args, ['phase', 'summary', 'summary-file', 'rationale', 'rationale-file']);
|
|
380
|
-
state.cmdStateAddDecision(cwd, { phase: p, summary, summary_file, rationale: rationale || '', rationale_file }, raw);
|
|
381
|
-
} else if (subcommand === 'add-blocker') {
|
|
382
|
-
const { text, 'text-file': text_file } = parseNamedArgs(args, ['text', 'text-file']);
|
|
383
|
-
state.cmdStateAddBlocker(cwd, { text, text_file }, raw);
|
|
384
|
-
} else if (subcommand === 'resolve-blocker') {
|
|
385
|
-
state.cmdStateResolveBlocker(cwd, parseNamedArgs(args, ['text']).text, raw);
|
|
386
|
-
} else if (subcommand === 'record-session') {
|
|
387
|
-
const { 'stopped-at': stopped_at, 'resume-file': resume_file } = parseNamedArgs(args, ['stopped-at', 'resume-file']);
|
|
388
|
-
state.cmdStateRecordSession(cwd, { stopped_at, resume_file: resume_file || 'None' }, raw);
|
|
389
|
-
} else if (subcommand === 'begin-phase') {
|
|
390
|
-
const { phase: p, name, plans } = parseNamedArgs(args, ['phase', 'name', 'plans']);
|
|
391
|
-
state.cmdStateBeginPhase(cwd, p, name, plans !== null ? parseInt(plans, 10) : null, raw);
|
|
392
|
-
} else if (subcommand === 'signal-waiting') {
|
|
393
|
-
const { type, question, options, phase: p } = parseNamedArgs(args, ['type', 'question', 'options', 'phase']);
|
|
394
|
-
state.cmdSignalWaiting(cwd, type, question, options, p, raw);
|
|
395
|
-
} else if (subcommand === 'signal-resume') {
|
|
396
|
-
state.cmdSignalResume(cwd, raw);
|
|
397
|
-
} else {
|
|
398
|
-
state.cmdStateLoad(cwd, raw);
|
|
399
|
-
}
|
|
510
|
+
routeStateCommand({
|
|
511
|
+
state,
|
|
512
|
+
args,
|
|
513
|
+
cwd,
|
|
514
|
+
raw,
|
|
515
|
+
parseNamedArgs,
|
|
516
|
+
error,
|
|
517
|
+
});
|
|
400
518
|
break;
|
|
401
519
|
}
|
|
402
520
|
|
|
@@ -425,6 +543,11 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
425
543
|
break;
|
|
426
544
|
}
|
|
427
545
|
|
|
546
|
+
case 'check-commit': {
|
|
547
|
+
commands.cmdCheckCommit(cwd, raw);
|
|
548
|
+
break;
|
|
549
|
+
}
|
|
550
|
+
|
|
428
551
|
case 'commit-to-subrepo': {
|
|
429
552
|
const message = args[1];
|
|
430
553
|
const filesIndex = args.indexOf('--files');
|
|
@@ -461,7 +584,7 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
461
584
|
wave: wave || '1',
|
|
462
585
|
}, raw);
|
|
463
586
|
} else {
|
|
464
|
-
error('Unknown template subcommand. Available: select, fill');
|
|
587
|
+
error('Unknown template subcommand. Available: select, fill', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
465
588
|
}
|
|
466
589
|
break;
|
|
467
590
|
}
|
|
@@ -479,28 +602,19 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
479
602
|
} else if (subcommand === 'validate') {
|
|
480
603
|
frontmatter.cmdFrontmatterValidate(cwd, file, parseNamedArgs(args, ['schema']).schema, raw);
|
|
481
604
|
} else {
|
|
482
|
-
error('Unknown frontmatter subcommand. Available: get, set, merge, validate');
|
|
605
|
+
error('Unknown frontmatter subcommand. Available: get, set, merge, validate', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
483
606
|
}
|
|
484
607
|
break;
|
|
485
608
|
}
|
|
486
609
|
|
|
487
610
|
case 'verify': {
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
} else if (subcommand === 'commits') {
|
|
496
|
-
verify.cmdVerifyCommits(cwd, args.slice(2), raw);
|
|
497
|
-
} else if (subcommand === 'artifacts') {
|
|
498
|
-
verify.cmdVerifyArtifacts(cwd, args[2], raw);
|
|
499
|
-
} else if (subcommand === 'key-links') {
|
|
500
|
-
verify.cmdVerifyKeyLinks(cwd, args[2], raw);
|
|
501
|
-
} else {
|
|
502
|
-
error('Unknown verify subcommand. Available: plan-structure, phase-completeness, references, commits, artifacts, key-links');
|
|
503
|
-
}
|
|
611
|
+
routeVerifyCommand({
|
|
612
|
+
verify,
|
|
613
|
+
args,
|
|
614
|
+
cwd,
|
|
615
|
+
raw,
|
|
616
|
+
error,
|
|
617
|
+
});
|
|
504
618
|
break;
|
|
505
619
|
}
|
|
506
620
|
|
|
@@ -540,7 +654,7 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
540
654
|
}
|
|
541
655
|
|
|
542
656
|
case 'config-get': {
|
|
543
|
-
config.cmdConfigGet(cwd, args[1], raw);
|
|
657
|
+
config.cmdConfigGet(cwd, args[1], raw, defaultValue);
|
|
544
658
|
break;
|
|
545
659
|
}
|
|
546
660
|
|
|
@@ -549,44 +663,46 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
549
663
|
break;
|
|
550
664
|
}
|
|
551
665
|
|
|
666
|
+
case 'config-path': {
|
|
667
|
+
config.cmdConfigPath(cwd, raw);
|
|
668
|
+
break;
|
|
669
|
+
}
|
|
670
|
+
|
|
552
671
|
case 'agent-skills': {
|
|
553
672
|
init.cmdAgentSkills(cwd, args[1], raw);
|
|
554
673
|
break;
|
|
555
674
|
}
|
|
556
675
|
|
|
676
|
+
case 'skill-manifest': {
|
|
677
|
+
init.cmdSkillManifest(cwd, args, raw);
|
|
678
|
+
break;
|
|
679
|
+
}
|
|
680
|
+
|
|
557
681
|
case 'history-digest': {
|
|
558
682
|
commands.cmdHistoryDigest(cwd, raw);
|
|
559
683
|
break;
|
|
560
684
|
}
|
|
561
685
|
|
|
562
686
|
case 'phases': {
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
};
|
|
572
|
-
phase.cmdPhasesList(cwd, options, raw);
|
|
573
|
-
} else {
|
|
574
|
-
error('Unknown phases subcommand. Available: list');
|
|
575
|
-
}
|
|
687
|
+
routePhasesCommand({
|
|
688
|
+
phase,
|
|
689
|
+
milestone,
|
|
690
|
+
args,
|
|
691
|
+
cwd,
|
|
692
|
+
raw,
|
|
693
|
+
error,
|
|
694
|
+
});
|
|
576
695
|
break;
|
|
577
696
|
}
|
|
578
697
|
|
|
579
698
|
case 'roadmap': {
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
} else {
|
|
588
|
-
error('Unknown roadmap subcommand. Available: get-phase, analyze, update-plan-progress');
|
|
589
|
-
}
|
|
699
|
+
routeRoadmapCommand({
|
|
700
|
+
roadmap,
|
|
701
|
+
args,
|
|
702
|
+
cwd,
|
|
703
|
+
raw,
|
|
704
|
+
error,
|
|
705
|
+
});
|
|
590
706
|
break;
|
|
591
707
|
}
|
|
592
708
|
|
|
@@ -595,38 +711,26 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
595
711
|
if (subcommand === 'mark-complete') {
|
|
596
712
|
milestone.cmdRequirementsMarkComplete(cwd, args.slice(2), raw);
|
|
597
713
|
} else {
|
|
598
|
-
error('Unknown requirements subcommand. Available: mark-complete');
|
|
714
|
+
error('Unknown requirements subcommand. Available: mark-complete', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
599
715
|
}
|
|
600
716
|
break;
|
|
601
717
|
}
|
|
602
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
|
+
|
|
603
726
|
case 'phase': {
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
for (let i = 2; i < args.length; i++) {
|
|
612
|
-
if (args[i] === '--id' && i + 1 < args.length) {
|
|
613
|
-
customId = args[i + 1];
|
|
614
|
-
i++; // skip value
|
|
615
|
-
} else {
|
|
616
|
-
descArgs.push(args[i]);
|
|
617
|
-
}
|
|
618
|
-
}
|
|
619
|
-
phase.cmdPhaseAdd(cwd, descArgs.join(' '), raw, customId);
|
|
620
|
-
} else if (subcommand === 'insert') {
|
|
621
|
-
phase.cmdPhaseInsert(cwd, args[2], args.slice(3).join(' '), raw);
|
|
622
|
-
} else if (subcommand === 'remove') {
|
|
623
|
-
const forceFlag = args.includes('--force');
|
|
624
|
-
phase.cmdPhaseRemove(cwd, args[2], { force: forceFlag }, raw);
|
|
625
|
-
} else if (subcommand === 'complete') {
|
|
626
|
-
phase.cmdPhaseComplete(cwd, args[2], raw);
|
|
627
|
-
} else {
|
|
628
|
-
error('Unknown phase subcommand. Available: next-decimal, add, insert, remove, complete');
|
|
629
|
-
}
|
|
727
|
+
routePhaseCommand({
|
|
728
|
+
phase,
|
|
729
|
+
args,
|
|
730
|
+
cwd,
|
|
731
|
+
raw,
|
|
732
|
+
error,
|
|
733
|
+
});
|
|
630
734
|
break;
|
|
631
735
|
}
|
|
632
736
|
|
|
@@ -637,23 +741,21 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
637
741
|
const archivePhases = args.includes('--archive-phases');
|
|
638
742
|
milestone.cmdMilestoneComplete(cwd, args[2], { name: milestoneName, archivePhases }, raw);
|
|
639
743
|
} else {
|
|
640
|
-
error('Unknown milestone subcommand. Available: complete');
|
|
744
|
+
error('Unknown milestone subcommand. Available: complete', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
641
745
|
}
|
|
642
746
|
break;
|
|
643
747
|
}
|
|
644
748
|
|
|
645
749
|
case 'validate': {
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
}
|
|
655
|
-
error('Unknown validate subcommand. Available: consistency, health, agents');
|
|
656
|
-
}
|
|
750
|
+
routeValidateCommand({
|
|
751
|
+
verify,
|
|
752
|
+
args,
|
|
753
|
+
cwd,
|
|
754
|
+
raw,
|
|
755
|
+
parseNamedArgs,
|
|
756
|
+
output: core.output,
|
|
757
|
+
error,
|
|
758
|
+
});
|
|
657
759
|
break;
|
|
658
760
|
}
|
|
659
761
|
|
|
@@ -669,6 +771,21 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
669
771
|
break;
|
|
670
772
|
}
|
|
671
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
|
+
|
|
672
789
|
case 'uat': {
|
|
673
790
|
const subcommand = args[1];
|
|
674
791
|
const uat = require('./lib/uat.cjs');
|
|
@@ -676,7 +793,7 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
676
793
|
const options = parseNamedArgs(args, ['file']);
|
|
677
794
|
uat.cmdRenderCheckpoint(cwd, options, raw);
|
|
678
795
|
} else {
|
|
679
|
-
error('Unknown uat subcommand. Available: render-checkpoint');
|
|
796
|
+
error('Unknown uat subcommand. Available: render-checkpoint', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
680
797
|
}
|
|
681
798
|
break;
|
|
682
799
|
}
|
|
@@ -694,7 +811,7 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
694
811
|
} else if (subcommand === 'match-phase') {
|
|
695
812
|
commands.cmdTodoMatchPhase(cwd, args[2], raw);
|
|
696
813
|
} else {
|
|
697
|
-
error('Unknown todo subcommand. Available: complete, match-phase');
|
|
814
|
+
error('Unknown todo subcommand. Available: complete, match-phase', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
698
815
|
}
|
|
699
816
|
break;
|
|
700
817
|
}
|
|
@@ -710,59 +827,14 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
710
827
|
}
|
|
711
828
|
|
|
712
829
|
case 'init': {
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
case 'new-project':
|
|
722
|
-
init.cmdInitNewProject(cwd, raw);
|
|
723
|
-
break;
|
|
724
|
-
case 'new-milestone':
|
|
725
|
-
init.cmdInitNewMilestone(cwd, raw);
|
|
726
|
-
break;
|
|
727
|
-
case 'quick':
|
|
728
|
-
init.cmdInitQuick(cwd, args.slice(2).join(' '), raw);
|
|
729
|
-
break;
|
|
730
|
-
case 'resume':
|
|
731
|
-
init.cmdInitResume(cwd, raw);
|
|
732
|
-
break;
|
|
733
|
-
case 'verify-work':
|
|
734
|
-
init.cmdInitVerifyWork(cwd, args[2], raw);
|
|
735
|
-
break;
|
|
736
|
-
case 'phase-op':
|
|
737
|
-
init.cmdInitPhaseOp(cwd, args[2], raw);
|
|
738
|
-
break;
|
|
739
|
-
case 'todos':
|
|
740
|
-
init.cmdInitTodos(cwd, args[2], raw);
|
|
741
|
-
break;
|
|
742
|
-
case 'milestone-op':
|
|
743
|
-
init.cmdInitMilestoneOp(cwd, raw);
|
|
744
|
-
break;
|
|
745
|
-
case 'map-codebase':
|
|
746
|
-
init.cmdInitMapCodebase(cwd, raw);
|
|
747
|
-
break;
|
|
748
|
-
case 'progress':
|
|
749
|
-
init.cmdInitProgress(cwd, raw);
|
|
750
|
-
break;
|
|
751
|
-
case 'manager':
|
|
752
|
-
init.cmdInitManager(cwd, raw);
|
|
753
|
-
break;
|
|
754
|
-
case 'new-workspace':
|
|
755
|
-
init.cmdInitNewWorkspace(cwd, raw);
|
|
756
|
-
break;
|
|
757
|
-
case 'list-workspaces':
|
|
758
|
-
init.cmdInitListWorkspaces(cwd, raw);
|
|
759
|
-
break;
|
|
760
|
-
case 'remove-workspace':
|
|
761
|
-
init.cmdInitRemoveWorkspace(cwd, args[2], raw);
|
|
762
|
-
break;
|
|
763
|
-
default:
|
|
764
|
-
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`);
|
|
765
|
-
}
|
|
830
|
+
routeInitCommand({
|
|
831
|
+
init,
|
|
832
|
+
args,
|
|
833
|
+
cwd,
|
|
834
|
+
raw,
|
|
835
|
+
parseNamedArgs,
|
|
836
|
+
error,
|
|
837
|
+
});
|
|
766
838
|
break;
|
|
767
839
|
}
|
|
768
840
|
|
|
@@ -815,7 +887,7 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
815
887
|
const sessionsPath = pathIdx !== -1 ? args[pathIdx + 1] : null;
|
|
816
888
|
const projectArg = args[1];
|
|
817
889
|
if (!projectArg || projectArg.startsWith('--')) {
|
|
818
|
-
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);
|
|
819
891
|
}
|
|
820
892
|
await profilePipeline.cmdExtractMessages(projectArg, { sessionId, limit }, raw, sessionsPath);
|
|
821
893
|
break;
|
|
@@ -839,7 +911,7 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
839
911
|
case 'write-profile': {
|
|
840
912
|
const inputIdx = args.indexOf('--input');
|
|
841
913
|
const inputPath = inputIdx !== -1 ? args[inputIdx + 1] : null;
|
|
842
|
-
if (!inputPath) error('--input <analysis-json-path> is required');
|
|
914
|
+
if (!inputPath) error('--input <analysis-json-path> is required', ERROR_REASON.USAGE);
|
|
843
915
|
const outputIdx = args.indexOf('--output');
|
|
844
916
|
const outputPath = outputIdx !== -1 ? args[outputIdx + 1] : null;
|
|
845
917
|
profileOutput.cmdWriteProfile(cwd, { input: inputPath, output: outputPath }, raw);
|
|
@@ -905,13 +977,247 @@ async function runCommand(command, args, cwd, raw) {
|
|
|
905
977
|
} else if (subcommand === 'progress') {
|
|
906
978
|
workstream.cmdWorkstreamProgress(cwd, raw);
|
|
907
979
|
} else {
|
|
908
|
-
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);
|
|
909
981
|
}
|
|
910
982
|
break;
|
|
911
983
|
}
|
|
912
984
|
|
|
913
|
-
|
|
914
|
-
|
|
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);
|
|
992
|
+
}
|
|
993
|
+
break;
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
// ─── Intel ────────────────────────────────────────────────────────────
|
|
997
|
+
|
|
998
|
+
case 'intel': {
|
|
999
|
+
const intel = require('./lib/intel.cjs');
|
|
1000
|
+
const subcommand = args[1];
|
|
1001
|
+
if (subcommand === 'query') {
|
|
1002
|
+
const term = args[2];
|
|
1003
|
+
if (!term) error('Usage: sdd-tools intel query <term>', ERROR_REASON.USAGE);
|
|
1004
|
+
const planningDir = path.join(cwd, '.planning');
|
|
1005
|
+
core.output(intel.intelQuery(term, planningDir), raw);
|
|
1006
|
+
} else if (subcommand === 'status') {
|
|
1007
|
+
const planningDir = path.join(cwd, '.planning');
|
|
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);
|
|
1017
|
+
} else if (subcommand === 'diff') {
|
|
1018
|
+
const planningDir = path.join(cwd, '.planning');
|
|
1019
|
+
core.output(intel.intelDiff(planningDir), raw);
|
|
1020
|
+
} else if (subcommand === 'snapshot') {
|
|
1021
|
+
const planningDir = path.join(cwd, '.planning');
|
|
1022
|
+
core.output(intel.intelSnapshot(planningDir), raw);
|
|
1023
|
+
} else if (subcommand === 'patch-meta') {
|
|
1024
|
+
const filePath = args[2];
|
|
1025
|
+
if (!filePath) error('Usage: sdd-tools intel patch-meta <file-path>', ERROR_REASON.USAGE);
|
|
1026
|
+
core.output(intel.intelPatchMeta(path.resolve(cwd, filePath)), raw);
|
|
1027
|
+
} else if (subcommand === 'validate') {
|
|
1028
|
+
const planningDir = path.join(cwd, '.planning');
|
|
1029
|
+
core.output(intel.intelValidate(planningDir), raw);
|
|
1030
|
+
} else if (subcommand === 'extract-exports') {
|
|
1031
|
+
const filePath = args[2];
|
|
1032
|
+
if (!filePath) error('Usage: sdd-tools intel extract-exports <file-path>', ERROR_REASON.USAGE);
|
|
1033
|
+
core.output(intel.intelExtractExports(path.resolve(cwd, filePath)), raw);
|
|
1034
|
+
} else if (subcommand === 'update') {
|
|
1035
|
+
const planningDir = path.join(cwd, '.planning');
|
|
1036
|
+
core.output(intel.intelUpdate(planningDir), raw);
|
|
1037
|
+
} else {
|
|
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);
|
|
1066
|
+
}
|
|
1067
|
+
break;
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
// ─── Documentation ────────────────────────────────────────────────────
|
|
1071
|
+
|
|
1072
|
+
case 'docs-init': {
|
|
1073
|
+
docs.cmdDocsInit(cwd, raw);
|
|
1074
|
+
break;
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
// ─── Learnings ─────────────────────────────────────────────────────────
|
|
1078
|
+
|
|
1079
|
+
case 'learnings': {
|
|
1080
|
+
const subcommand = args[1];
|
|
1081
|
+
if (subcommand === 'list') {
|
|
1082
|
+
learnings.cmdLearningsList(raw);
|
|
1083
|
+
} else if (subcommand === 'query') {
|
|
1084
|
+
const tagIdx = args.indexOf('--tag');
|
|
1085
|
+
const tag = tagIdx !== -1 ? args[tagIdx + 1] : null;
|
|
1086
|
+
if (!tag) error('Usage: sdd-tools learnings query --tag <tag>', ERROR_REASON.USAGE);
|
|
1087
|
+
learnings.cmdLearningsQuery(tag, raw);
|
|
1088
|
+
} else if (subcommand === 'copy') {
|
|
1089
|
+
learnings.cmdLearningsCopy(cwd, raw);
|
|
1090
|
+
} else if (subcommand === 'prune') {
|
|
1091
|
+
const olderIdx = args.indexOf('--older-than');
|
|
1092
|
+
const olderThan = olderIdx !== -1 ? args[olderIdx + 1] : null;
|
|
1093
|
+
if (!olderThan) error('Usage: sdd-tools learnings prune --older-than <duration>', ERROR_REASON.USAGE);
|
|
1094
|
+
learnings.cmdLearningsPrune(olderThan, raw);
|
|
1095
|
+
} else if (subcommand === 'delete') {
|
|
1096
|
+
const id = args[2];
|
|
1097
|
+
if (!id) error('Usage: sdd-tools learnings delete <id>', ERROR_REASON.USAGE);
|
|
1098
|
+
learnings.cmdLearningsDelete(id, raw);
|
|
1099
|
+
} else {
|
|
1100
|
+
error('Unknown learnings subcommand. Available: list, query, copy, prune, delete', ERROR_REASON.SDK_UNKNOWN_COMMAND);
|
|
1101
|
+
}
|
|
1102
|
+
break;
|
|
1103
|
+
}
|
|
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
|
+
|
|
1194
|
+
// ─── SDD-2 Reverse Migration ───────────────────────────────────────────
|
|
1195
|
+
|
|
1196
|
+
case 'from-sdd2': {
|
|
1197
|
+
const sdd2Import = require('./lib/sdd2-import.cjs');
|
|
1198
|
+
sdd2Import.cmdFromSdd2(args.slice(1), cwd, raw);
|
|
1199
|
+
break;
|
|
1200
|
+
}
|
|
1201
|
+
|
|
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
|
+
}
|
|
915
1221
|
}
|
|
916
1222
|
}
|
|
917
1223
|
|