ai-spector 0.9.21 → 0.9.24
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/contracts/bootstrap/config/prototype-screen-map.json +25 -0
- package/contracts/bootstrap/config/prototype.config.json +17 -0
- package/contracts/bootstrap/config/review-queue-pending.json +4 -0
- package/contracts/bootstrap/config/review-queue-registry.json +4 -0
- package/contracts/bootstrap/config/review.config.json +5 -0
- package/contracts/bootstrap/docs/ENTITY_REGISTRY_MIGRATION.md +192 -0
- package/contracts/bootstrap/docs/MIGRATION.md +463 -0
- package/contracts/bootstrap/docs/README.md +48 -0
- package/contracts/bootstrap/docs/adapters/README.md +32 -0
- package/contracts/bootstrap/docs/guides/COMMENTS_ENTITY_MIGRATION.md +195 -0
- package/contracts/bootstrap/docs/guides/DOCOPS_MANUAL_FALLBACK.md +177 -0
- package/contracts/bootstrap/docs/guides/PROJECT_LAYOUT.md +84 -0
- package/contracts/bootstrap/docs/modules/comments.md +77 -0
- package/contracts/bootstrap/docs/modules/generate.md +25 -0
- package/contracts/bootstrap/docs/modules/graph.md +31 -0
- package/contracts/bootstrap/docs/modules/prototype.md +26 -0
- package/contracts/bootstrap/docs/modules/review.md +25 -0
- package/contracts/bootstrap/docs/modules/translate.md +26 -0
- package/contracts/bootstrap/scripts/migrate-entity-registry.sh +55 -0
- package/contracts/bootstrap/templates/basic-design/db-design-template.md +177 -0
- package/contracts/bootstrap/templates/basic-design/detail-api-template.md +278 -0
- package/contracts/bootstrap/templates/basic-design/detail-screen-template.md +281 -0
- package/contracts/bootstrap/templates/basic-design/list-api-template.md +130 -0
- package/contracts/bootstrap/templates/basic-design/list-screen-template.md +242 -0
- package/contracts/bootstrap/templates/detail-design/common/architecture-overview-template.md +302 -0
- package/contracts/bootstrap/templates/detail-design/common/deployment-infrastructure-template.md +461 -0
- package/contracts/bootstrap/templates/detail-design/common/error-handling-patterns-template.md +460 -0
- package/contracts/bootstrap/templates/detail-design/common/integration-patterns-template.md +410 -0
- package/contracts/bootstrap/templates/detail-design/common/performance-standards-template.md +406 -0
- package/contracts/bootstrap/templates/detail-design/common/security-patterns-template.md +395 -0
- package/contracts/bootstrap/templates/detail-design/feature-detail-design-template.md +773 -0
- package/contracts/bootstrap/templates/detail-design/feature-list-template.md +39 -0
- package/contracts/bootstrap/templates/srs/1-introduction.md +58 -0
- package/contracts/bootstrap/templates/srs/2-overall-description.md +91 -0
- package/contracts/bootstrap/templates/srs/3-use-case-detail-template.md +142 -0
- package/contracts/bootstrap/templates/srs/3-use-cases.md +53 -0
- package/contracts/bootstrap/templates/srs/4-system-feature-detail-template.md +131 -0
- package/contracts/bootstrap/templates/srs/4-system-features-list-template.md +39 -0
- package/contracts/bootstrap/templates/srs/5-data-requirements.md +59 -0
- package/contracts/bootstrap/templates/srs/6-external-interfaces.md +56 -0
- package/contracts/bootstrap/templates/srs/7-quality-attributes.md +74 -0
- package/contracts/bootstrap/templates/srs/8-internationalization.md +36 -0
- package/contracts/bootstrap/templates/srs/9-other-requirements.md +46 -0
- package/contracts/examples/full-docops.config.json +54 -0
- package/contracts/examples/migrate-lifecycle.json +18 -0
- package/contracts/examples/minimal-comment-thread/comment-root.json +10 -0
- package/contracts/examples/minimal-comment-thread/meta_data.json +22 -0
- package/contracts/examples/minimal-docops.config.json +33 -0
- package/contracts/examples/minimal-lifecycle.json +17 -0
- package/contracts/examples/minimal-prototype.config.json +18 -0
- package/contracts/examples/minimal-screen-map.json +25 -0
- package/contracts/examples/registry/minimal-document.entity.json +15 -0
- package/contracts/examples/registry/minimal-manifest.json +7 -0
- package/contracts/examples/registry/minimal-screen.entity.json +11 -0
- package/contracts/examples/review/minimal-pending.json +14 -0
- package/contracts/examples/review/minimal-registry.json +31 -0
- package/contracts/examples/review/minimal-review.config.json +7 -0
- package/contracts/schemas/comments/comment_body.schema.json +19 -0
- package/contracts/schemas/comments/meta_data.schema.json +59 -0
- package/contracts/schemas/docops.config.schema.json +97 -0
- package/contracts/schemas/lifecycle.schema.json +43 -0
- package/contracts/schemas/prototype/config.schema.json +56 -0
- package/contracts/schemas/prototype/screen-map.schema.json +51 -0
- package/contracts/schemas/registry/document.entity.schema.json +38 -0
- package/contracts/schemas/registry/manifest.schema.json +18 -0
- package/contracts/schemas/registry/screen.entity.schema.json +28 -0
- package/contracts/schemas/review/registry.schema.json +72 -0
- package/contracts/schemas/review/review.config.schema.json +42 -0
- package/dist/cli.js +26 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/docops/bootstrap.d.ts +4 -1
- package/dist/core/docops/bootstrap.d.ts.map +1 -1
- package/dist/core/docops/bootstrap.js +16 -9
- package/dist/core/docops/bootstrap.js.map +1 -1
- package/dist/core/docops/guide.d.ts +78 -0
- package/dist/core/docops/guide.d.ts.map +1 -0
- package/dist/core/docops/guide.js +554 -0
- package/dist/core/docops/guide.js.map +1 -0
- package/dist/core/docops/migrate.d.ts.map +1 -1
- package/dist/core/docops/migrate.js +40 -6
- package/dist/core/docops/migrate.js.map +1 -1
- package/dist/core/graph/doc-extract.d.ts.map +1 -1
- package/dist/core/graph/doc-extract.js +12 -0
- package/dist/core/graph/doc-extract.js.map +1 -1
- package/dist/core/graph/impact.d.ts.map +1 -1
- package/dist/core/graph/impact.js +2 -1
- package/dist/core/graph/impact.js.map +1 -1
- package/dist/core/graph/link-testcases.d.ts +14 -0
- package/dist/core/graph/link-testcases.d.ts.map +1 -0
- package/dist/core/graph/link-testcases.js +46 -0
- package/dist/core/graph/link-testcases.js.map +1 -0
- package/dist/core/operations/docops.d.ts +8 -0
- package/dist/core/operations/docops.d.ts.map +1 -1
- package/dist/core/operations/docops.js +40 -0
- package/dist/core/operations/docops.js.map +1 -1
- package/dist/core/operations/index.d.ts.map +1 -1
- package/dist/core/operations/index.js +25 -0
- package/dist/core/operations/index.js.map +1 -1
- package/dist/core/operations/task-gates.d.ts +8 -1
- package/dist/core/operations/task-gates.d.ts.map +1 -1
- package/dist/core/operations/task-gates.js +14 -0
- package/dist/core/operations/task-gates.js.map +1 -1
- package/dist/core/operations/task.d.ts +2 -0
- package/dist/core/operations/task.d.ts.map +1 -1
- package/dist/core/operations/task.js +40 -2
- package/dist/core/operations/task.js.map +1 -1
- package/dist/core/sync/audit.d.ts.map +1 -1
- package/dist/core/sync/audit.js +14 -6
- package/dist/core/sync/audit.js.map +1 -1
- package/dist/core/sync/baseline.d.ts.map +1 -1
- package/dist/core/sync/baseline.js +5 -2
- package/dist/core/sync/baseline.js.map +1 -1
- package/dist/core/sync/constants.d.ts.map +1 -1
- package/dist/core/sync/constants.js +2 -1
- package/dist/core/sync/constants.js.map +1 -1
- package/dist/core/sync/gaps.d.ts.map +1 -1
- package/dist/core/sync/gaps.js +23 -2
- package/dist/core/sync/gaps.js.map +1 -1
- package/dist/core/sync/git-diff.d.ts +1 -0
- package/dist/core/sync/git-diff.d.ts.map +1 -1
- package/dist/core/sync/git-diff.js +14 -0
- package/dist/core/sync/git-diff.js.map +1 -1
- package/dist/core/sync/repo-context.d.ts +23 -0
- package/dist/core/sync/repo-context.d.ts.map +1 -0
- package/dist/core/sync/repo-context.js +28 -0
- package/dist/core/sync/repo-context.js.map +1 -0
- package/dist/core/sync/snapshot.d.ts.map +1 -1
- package/dist/core/sync/snapshot.js +24 -18
- package/dist/core/sync/snapshot.js.map +1 -1
- package/dist/core/sync/types.d.ts +7 -2
- package/dist/core/sync/types.d.ts.map +1 -1
- package/dist/core/upgrade/checklist.json +2 -2
- package/dist/interfaces/mcp/schemas.d.ts +2 -0
- package/dist/interfaces/mcp/schemas.d.ts.map +1 -1
- package/dist/interfaces/mcp/schemas.js +4 -0
- package/dist/interfaces/mcp/schemas.js.map +1 -1
- package/dist/interfaces/mcp/server.js +0 -0
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -1
- package/scaffold/claude/.claude/skills/_skill-router.md +11 -8
- package/scaffold/claude/.claude/skills/ai-spector/references/cli-failures.md +3 -3
- package/scaffold/claude/.claude/skills/ai-spector/references/docops-migrate.md +112 -0
- package/scaffold/claude/.claude/skills/ai-spector/references/help.md +1 -1
- package/scaffold/claude/.claude/skills/ai-spector/references/runbook.md +49 -26
- package/scaffold/claude/.claude/skills/ai-spector/skill.md +3 -2
- package/scaffold/cursor/skills/_skill-router.md +11 -8
- package/scaffold/cursor/skills/ai-spector/SKILL.md +3 -2
- package/scaffold/cursor/skills/ai-spector/references/cli-failures.md +3 -3
- package/scaffold/cursor/skills/ai-spector/references/docops-migrate.md +112 -0
- package/scaffold/cursor/skills/ai-spector/references/help.md +1 -1
- package/scaffold/cursor/skills/ai-spector/references/runbook.md +49 -26
- package/schemas/rules.impact.json +3 -2
- package/schemas/schema.graph.json +4 -2
- package/dist/commands/analyze.d.ts +0 -12
- package/dist/commands/analyze.d.ts.map +0 -1
- package/dist/commands/analyze.js +0 -53
- package/dist/commands/analyze.js.map +0 -1
- package/dist/commands/bootstrap.d.ts +0 -4
- package/dist/commands/bootstrap.d.ts.map +0 -1
- package/dist/commands/bootstrap.js +0 -58
- package/dist/commands/bootstrap.js.map +0 -1
- package/dist/commands/comments.d.ts +0 -44
- package/dist/commands/comments.d.ts.map +0 -1
- package/dist/commands/comments.js +0 -79
- package/dist/commands/comments.js.map +0 -1
- package/dist/commands/graph-impact.d.ts +0 -28
- package/dist/commands/graph-impact.d.ts.map +0 -1
- package/dist/commands/graph-impact.js +0 -174
- package/dist/commands/graph-impact.js.map +0 -1
- package/dist/commands/graph-merge.d.ts +0 -32
- package/dist/commands/graph-merge.d.ts.map +0 -1
- package/dist/commands/graph-merge.js +0 -101
- package/dist/commands/graph-merge.js.map +0 -1
- package/dist/commands/graph-query.d.ts +0 -10
- package/dist/commands/graph-query.d.ts.map +0 -1
- package/dist/commands/graph-query.js +0 -24
- package/dist/commands/graph-query.js.map +0 -1
- package/dist/commands/graph-report.d.ts +0 -9
- package/dist/commands/graph-report.d.ts.map +0 -1
- package/dist/commands/graph-report.js +0 -10
- package/dist/commands/graph-report.js.map +0 -1
- package/dist/commands/graph-visualize.d.ts +0 -17
- package/dist/commands/graph-visualize.d.ts.map +0 -1
- package/dist/commands/graph-visualize.js +0 -44
- package/dist/commands/graph-visualize.js.map +0 -1
- package/dist/commands/hooks-constants.d.ts +0 -2
- package/dist/commands/hooks-constants.d.ts.map +0 -1
- package/dist/commands/hooks-constants.js +0 -2
- package/dist/commands/hooks-constants.js.map +0 -1
- package/dist/commands/hooks.d.ts +0 -28
- package/dist/commands/hooks.d.ts.map +0 -1
- package/dist/commands/hooks.js +0 -187
- package/dist/commands/hooks.js.map +0 -1
- package/dist/commands/index.d.ts +0 -22
- package/dist/commands/index.d.ts.map +0 -1
- package/dist/commands/index.js +0 -472
- package/dist/commands/index.js.map +0 -1
- package/dist/commands/init.d.ts +0 -19
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -210
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/lang-queue.d.ts +0 -28
- package/dist/commands/lang-queue.d.ts.map +0 -1
- package/dist/commands/lang-queue.js +0 -49
- package/dist/commands/lang-queue.js.map +0 -1
- package/dist/commands/lang.d.ts +0 -16
- package/dist/commands/lang.d.ts.map +0 -1
- package/dist/commands/lang.js +0 -69
- package/dist/commands/lang.js.map +0 -1
- package/dist/commands/prototype.d.ts +0 -66
- package/dist/commands/prototype.d.ts.map +0 -1
- package/dist/commands/prototype.js +0 -370
- package/dist/commands/prototype.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -26
- package/dist/commands/setup.d.ts.map +0 -1
- package/dist/commands/setup.js +0 -259
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/sync-cursor.d.ts +0 -10
- package/dist/commands/sync-cursor.d.ts.map +0 -1
- package/dist/commands/sync-cursor.js +0 -18
- package/dist/commands/sync-cursor.js.map +0 -1
- package/dist/commands/template-regen.d.ts +0 -24
- package/dist/commands/template-regen.d.ts.map +0 -1
- package/dist/commands/template-regen.js +0 -240
- package/dist/commands/template-regen.js.map +0 -1
- package/dist/commands/template.d.ts +0 -3
- package/dist/commands/template.d.ts.map +0 -1
- package/dist/commands/template.js +0 -1285
- package/dist/commands/template.js.map +0 -1
- package/dist/commands/validate.d.ts +0 -10
- package/dist/commands/validate.d.ts.map +0 -1
- package/dist/commands/validate.js +0 -89
- package/dist/commands/validate.js.map +0 -1
- package/dist/comments/anchor.d.ts +0 -16
- package/dist/comments/anchor.d.ts.map +0 -1
- package/dist/comments/anchor.js +0 -59
- package/dist/comments/anchor.js.map +0 -1
- package/dist/comments/inbox.d.ts +0 -82
- package/dist/comments/inbox.d.ts.map +0 -1
- package/dist/comments/inbox.js +0 -179
- package/dist/comments/inbox.js.map +0 -1
- package/dist/comments/paths.d.ts +0 -12
- package/dist/comments/paths.d.ts.map +0 -1
- package/dist/comments/paths.js +0 -54
- package/dist/comments/paths.js.map +0 -1
- package/dist/comments/plan.d.ts +0 -20
- package/dist/comments/plan.d.ts.map +0 -1
- package/dist/comments/plan.js +0 -62
- package/dist/comments/plan.js.map +0 -1
- package/dist/comments/storage.d.ts +0 -30
- package/dist/comments/storage.d.ts.map +0 -1
- package/dist/comments/storage.js +0 -272
- package/dist/comments/storage.js.map +0 -1
- package/dist/comments/types.d.ts +0 -54
- package/dist/comments/types.d.ts.map +0 -1
- package/dist/comments/types.js +0 -2
- package/dist/comments/types.js.map +0 -1
- package/dist/config/load.d.ts +0 -47
- package/dist/config/load.d.ts.map +0 -1
- package/dist/config/load.js +0 -148
- package/dist/config/load.js.map +0 -1
- package/dist/config/types.d.ts +0 -56
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js +0 -2
- package/dist/config/types.js.map +0 -1
- package/dist/core/adopt/apply.d.ts +0 -15
- package/dist/core/adopt/apply.d.ts.map +0 -1
- package/dist/core/adopt/apply.js +0 -127
- package/dist/core/adopt/apply.js.map +0 -1
- package/dist/core/adopt/bootstrap.d.ts +0 -16
- package/dist/core/adopt/bootstrap.d.ts.map +0 -1
- package/dist/core/adopt/bootstrap.js +0 -195
- package/dist/core/adopt/bootstrap.js.map +0 -1
- package/dist/core/adopt/classify.d.ts +0 -22
- package/dist/core/adopt/classify.d.ts.map +0 -1
- package/dist/core/adopt/classify.js +0 -295
- package/dist/core/adopt/classify.js.map +0 -1
- package/dist/core/adopt/paths.d.ts +0 -10
- package/dist/core/adopt/paths.d.ts.map +0 -1
- package/dist/core/adopt/paths.js +0 -16
- package/dist/core/adopt/paths.js.map +0 -1
- package/dist/core/adopt/plan.d.ts +0 -10
- package/dist/core/adopt/plan.d.ts.map +0 -1
- package/dist/core/adopt/plan.js +0 -269
- package/dist/core/adopt/plan.js.map +0 -1
- package/dist/core/adopt/scan.d.ts +0 -5
- package/dist/core/adopt/scan.d.ts.map +0 -1
- package/dist/core/adopt/scan.js +0 -169
- package/dist/core/adopt/scan.js.map +0 -1
- package/dist/core/adopt/setup.d.ts +0 -7
- package/dist/core/adopt/setup.d.ts.map +0 -1
- package/dist/core/adopt/setup.js +0 -64
- package/dist/core/adopt/setup.js.map +0 -1
- package/dist/core/adopt/tasks.d.ts +0 -9
- package/dist/core/adopt/tasks.d.ts.map +0 -1
- package/dist/core/adopt/tasks.js +0 -153
- package/dist/core/adopt/tasks.js.map +0 -1
- package/dist/core/adopt/types.d.ts +0 -75
- package/dist/core/adopt/types.d.ts.map +0 -1
- package/dist/core/adopt/types.js +0 -2
- package/dist/core/adopt/types.js.map +0 -1
- package/dist/core/adopt/validate.d.ts +0 -20
- package/dist/core/adopt/validate.d.ts.map +0 -1
- package/dist/core/adopt/validate.js +0 -129
- package/dist/core/adopt/validate.js.map +0 -1
- package/dist/core/docops/dual-write.d.ts +0 -12
- package/dist/core/docops/dual-write.d.ts.map +0 -1
- package/dist/core/docops/dual-write.js +0 -44
- package/dist/core/docops/dual-write.js.map +0 -1
- package/dist/core/engine/local-adapter.d.ts +0 -3
- package/dist/core/engine/local-adapter.d.ts.map +0 -1
- package/dist/core/engine/local-adapter.js +0 -18
- package/dist/core/engine/local-adapter.js.map +0 -1
- package/dist/core/graph/rules/default-impact.json +0 -24
- package/dist/core/operations/adopt-gates.d.ts +0 -19
- package/dist/core/operations/adopt-gates.d.ts.map +0 -1
- package/dist/core/operations/adopt-gates.js +0 -71
- package/dist/core/operations/adopt-gates.js.map +0 -1
- package/dist/core/operations/adopt-plan.d.ts +0 -15
- package/dist/core/operations/adopt-plan.d.ts.map +0 -1
- package/dist/core/operations/adopt-plan.js +0 -24
- package/dist/core/operations/adopt-plan.js.map +0 -1
- package/dist/core/operations/adopt.d.ts +0 -11
- package/dist/core/operations/adopt.d.ts.map +0 -1
- package/dist/core/operations/adopt.js +0 -150
- package/dist/core/operations/adopt.js.map +0 -1
- package/dist/core/operations/analyze.d.ts +0 -12
- package/dist/core/operations/analyze.d.ts.map +0 -1
- package/dist/core/operations/analyze.js +0 -53
- package/dist/core/operations/analyze.js.map +0 -1
- package/dist/core/prototype/spa-route-fallbacks.d.ts +0 -21
- package/dist/core/prototype/spa-route-fallbacks.d.ts.map +0 -1
- package/dist/core/prototype/spa-route-fallbacks.js +0 -93
- package/dist/core/prototype/spa-route-fallbacks.js.map +0 -1
- package/dist/graph/InMemoryGraph.d.ts +0 -2
- package/dist/graph/InMemoryGraph.d.ts.map +0 -1
- package/dist/graph/InMemoryGraph.js +0 -2
- package/dist/graph/InMemoryGraph.js.map +0 -1
- package/dist/graph/bundles.d.ts +0 -32
- package/dist/graph/bundles.d.ts.map +0 -1
- package/dist/graph/bundles.js +0 -109
- package/dist/graph/bundles.js.map +0 -1
- package/dist/graph/defaults.d.ts +0 -23
- package/dist/graph/defaults.d.ts.map +0 -1
- package/dist/graph/defaults.js +0 -25
- package/dist/graph/defaults.js.map +0 -1
- package/dist/graph/detail-sections.d.ts +0 -28
- package/dist/graph/detail-sections.d.ts.map +0 -1
- package/dist/graph/detail-sections.js +0 -220
- package/dist/graph/detail-sections.js.map +0 -1
- package/dist/graph/doc-extract.d.ts +0 -84
- package/dist/graph/doc-extract.d.ts.map +0 -1
- package/dist/graph/doc-extract.js +0 -821
- package/dist/graph/doc-extract.js.map +0 -1
- package/dist/graph/impact.d.ts +0 -5
- package/dist/graph/impact.d.ts.map +0 -1
- package/dist/graph/impact.js +0 -7
- package/dist/graph/impact.js.map +0 -1
- package/dist/graph/knowledge.d.ts +0 -11
- package/dist/graph/knowledge.d.ts.map +0 -1
- package/dist/graph/knowledge.js +0 -62
- package/dist/graph/knowledge.js.map +0 -1
- package/dist/graph/layer-audit.d.ts +0 -5
- package/dist/graph/layer-audit.d.ts.map +0 -1
- package/dist/graph/layer-audit.js +0 -29
- package/dist/graph/layer-audit.js.map +0 -1
- package/dist/graph/load.d.ts +0 -4
- package/dist/graph/load.d.ts.map +0 -1
- package/dist/graph/load.js +0 -12
- package/dist/graph/load.js.map +0 -1
- package/dist/graph/loadGraph.d.ts +0 -3
- package/dist/graph/loadGraph.d.ts.map +0 -1
- package/dist/graph/loadGraph.js +0 -7
- package/dist/graph/loadGraph.js.map +0 -1
- package/dist/graph/merge.d.ts +0 -27
- package/dist/graph/merge.d.ts.map +0 -1
- package/dist/graph/merge.js +0 -239
- package/dist/graph/merge.js.map +0 -1
- package/dist/graph/path-target-edges.d.ts +0 -2
- package/dist/graph/path-target-edges.d.ts.map +0 -1
- package/dist/graph/path-target-edges.js +0 -2
- package/dist/graph/path-target-edges.js.map +0 -1
- package/dist/graph/provenance.d.ts +0 -19
- package/dist/graph/provenance.d.ts.map +0 -1
- package/dist/graph/provenance.js +0 -199
- package/dist/graph/provenance.js.map +0 -1
- package/dist/graph/query.d.ts +0 -3
- package/dist/graph/query.d.ts.map +0 -1
- package/dist/graph/query.js +0 -2
- package/dist/graph/query.js.map +0 -1
- package/dist/graph/resolve.d.ts +0 -15
- package/dist/graph/resolve.d.ts.map +0 -1
- package/dist/graph/resolve.js +0 -117
- package/dist/graph/resolve.js.map +0 -1
- package/dist/graph/source-refs.d.ts +0 -2
- package/dist/graph/source-refs.d.ts.map +0 -1
- package/dist/graph/source-refs.js +0 -30
- package/dist/graph/source-refs.js.map +0 -1
- package/dist/graph/translation.d.ts +0 -14
- package/dist/graph/translation.d.ts.map +0 -1
- package/dist/graph/translation.js +0 -65
- package/dist/graph/translation.js.map +0 -1
- package/dist/index/doc-semantics.d.ts +0 -14
- package/dist/index/doc-semantics.d.ts.map +0 -1
- package/dist/index/doc-semantics.js +0 -101
- package/dist/index/doc-semantics.js.map +0 -1
- package/dist/index/docs-build.d.ts +0 -40
- package/dist/index/docs-build.d.ts.map +0 -1
- package/dist/index/docs-build.js +0 -136
- package/dist/index/docs-build.js.map +0 -1
- package/dist/index/docs-config.d.ts +0 -19
- package/dist/index/docs-config.d.ts.map +0 -1
- package/dist/index/docs-config.js +0 -5
- package/dist/index/docs-config.js.map +0 -1
- package/dist/interfaces/cli/format/adopt.d.ts +0 -23
- package/dist/interfaces/cli/format/adopt.d.ts.map +0 -1
- package/dist/interfaces/cli/format/adopt.js +0 -89
- package/dist/interfaces/cli/format/adopt.js.map +0 -1
- package/dist/interfaces/mcp/tools/adopt.d.ts +0 -22
- package/dist/interfaces/mcp/tools/adopt.d.ts.map +0 -1
- package/dist/interfaces/mcp/tools/adopt.js +0 -55
- package/dist/interfaces/mcp/tools/adopt.js.map +0 -1
- package/dist/lang/diff.d.ts +0 -12
- package/dist/lang/diff.d.ts.map +0 -1
- package/dist/lang/diff.js +0 -71
- package/dist/lang/diff.js.map +0 -1
- package/dist/lang/paths.d.ts +0 -16
- package/dist/lang/paths.d.ts.map +0 -1
- package/dist/lang/paths.js +0 -32
- package/dist/lang/paths.js.map +0 -1
- package/dist/lang/queue-layout.d.ts +0 -11
- package/dist/lang/queue-layout.d.ts.map +0 -1
- package/dist/lang/queue-layout.js +0 -56
- package/dist/lang/queue-layout.js.map +0 -1
- package/dist/lang/queue-store.d.ts +0 -23
- package/dist/lang/queue-store.d.ts.map +0 -1
- package/dist/lang/queue-store.js +0 -285
- package/dist/lang/queue-store.js.map +0 -1
- package/dist/lang/queue-types.d.ts +0 -122
- package/dist/lang/queue-types.d.ts.map +0 -1
- package/dist/lang/queue-types.js +0 -2
- package/dist/lang/queue-types.js.map +0 -1
- package/dist/lang/queue.d.ts +0 -17
- package/dist/lang/queue.d.ts.map +0 -1
- package/dist/lang/queue.js +0 -362
- package/dist/lang/queue.js.map +0 -1
- package/dist/lang/sections.d.ts +0 -26
- package/dist/lang/sections.d.ts.map +0 -1
- package/dist/lang/sections.js +0 -85
- package/dist/lang/sections.js.map +0 -1
- package/dist/markdown/parse.d.ts +0 -25
- package/dist/markdown/parse.d.ts.map +0 -1
- package/dist/markdown/parse.js +0 -100
- package/dist/markdown/parse.js.map +0 -1
- package/dist/prototype/build-base-path.d.ts +0 -11
- package/dist/prototype/build-base-path.d.ts.map +0 -1
- package/dist/prototype/build-base-path.js +0 -84
- package/dist/prototype/build-base-path.js.map +0 -1
- package/dist/prototype/build-manifest.d.ts +0 -21
- package/dist/prototype/build-manifest.d.ts.map +0 -1
- package/dist/prototype/build-manifest.js +0 -171
- package/dist/prototype/build-manifest.js.map +0 -1
- package/dist/prototype/config.d.ts +0 -21
- package/dist/prototype/config.d.ts.map +0 -1
- package/dist/prototype/config.js +0 -131
- package/dist/prototype/config.js.map +0 -1
- package/dist/prototype/deploy-path.d.ts +0 -9
- package/dist/prototype/deploy-path.d.ts.map +0 -1
- package/dist/prototype/deploy-path.js +0 -21
- package/dist/prototype/deploy-path.js.map +0 -1
- package/dist/prototype/htpasswd.d.ts +0 -8
- package/dist/prototype/htpasswd.d.ts.map +0 -1
- package/dist/prototype/htpasswd.js +0 -36
- package/dist/prototype/htpasswd.js.map +0 -1
- package/dist/prototype/nginx-config.d.ts +0 -16
- package/dist/prototype/nginx-config.d.ts.map +0 -1
- package/dist/prototype/nginx-config.js +0 -39
- package/dist/prototype/nginx-config.js.map +0 -1
- package/dist/prototype/parse-screen-index.d.ts +0 -10
- package/dist/prototype/parse-screen-index.d.ts.map +0 -1
- package/dist/prototype/parse-screen-index.js +0 -109
- package/dist/prototype/parse-screen-index.js.map +0 -1
- package/dist/prototype/preview-uri.d.ts +0 -8
- package/dist/prototype/preview-uri.d.ts.map +0 -1
- package/dist/prototype/preview-uri.js +0 -35
- package/dist/prototype/preview-uri.js.map +0 -1
- package/dist/prototype/relative-assets.d.ts +0 -9
- package/dist/prototype/relative-assets.d.ts.map +0 -1
- package/dist/prototype/relative-assets.js +0 -23
- package/dist/prototype/relative-assets.js.map +0 -1
- package/dist/prototype/resolve-default-screen.d.ts +0 -17
- package/dist/prototype/resolve-default-screen.d.ts.map +0 -1
- package/dist/prototype/resolve-default-screen.js +0 -31
- package/dist/prototype/resolve-default-screen.js.map +0 -1
- package/dist/prototype/rewrite-build-assets.d.ts +0 -8
- package/dist/prototype/rewrite-build-assets.d.ts.map +0 -1
- package/dist/prototype/rewrite-build-assets.js +0 -40
- package/dist/prototype/rewrite-build-assets.js.map +0 -1
- package/dist/prototype/route-defaults.d.ts +0 -43
- package/dist/prototype/route-defaults.d.ts.map +0 -1
- package/dist/prototype/route-defaults.js +0 -50
- package/dist/prototype/route-defaults.js.map +0 -1
- package/dist/prototype/screen-doc-paths.d.ts +0 -15
- package/dist/prototype/screen-doc-paths.d.ts.map +0 -1
- package/dist/prototype/screen-doc-paths.js +0 -38
- package/dist/prototype/screen-doc-paths.js.map +0 -1
- package/dist/prototype/spa-route-fallbacks.d.ts +0 -21
- package/dist/prototype/spa-route-fallbacks.d.ts.map +0 -1
- package/dist/prototype/spa-route-fallbacks.js +0 -93
- package/dist/prototype/spa-route-fallbacks.js.map +0 -1
- package/dist/prototype/theme-preview.d.ts +0 -17
- package/dist/prototype/theme-preview.d.ts.map +0 -1
- package/dist/prototype/theme-preview.js +0 -73
- package/dist/prototype/theme-preview.js.map +0 -1
- package/dist/prototype/themes.d.ts +0 -6
- package/dist/prototype/themes.d.ts.map +0 -1
- package/dist/prototype/themes.js +0 -55
- package/dist/prototype/themes.js.map +0 -1
- package/dist/prototype/types.d.ts +0 -160
- package/dist/prototype/types.d.ts.map +0 -1
- package/dist/prototype/types.js +0 -2
- package/dist/prototype/types.js.map +0 -1
- package/dist/prototype/validate.d.ts +0 -16
- package/dist/prototype/validate.d.ts.map +0 -1
- package/dist/prototype/validate.js +0 -149
- package/dist/prototype/validate.js.map +0 -1
- package/dist/registry/build.d.ts +0 -5
- package/dist/registry/build.d.ts.map +0 -1
- package/dist/registry/build.js +0 -71
- package/dist/registry/build.js.map +0 -1
- package/dist/registry/slug.d.ts +0 -4
- package/dist/registry/slug.d.ts.map +0 -1
- package/dist/registry/slug.js +0 -16
- package/dist/registry/slug.js.map +0 -1
- package/dist/registry/structure-patch.d.ts +0 -6
- package/dist/registry/structure-patch.d.ts.map +0 -1
- package/dist/registry/structure-patch.js +0 -49
- package/dist/registry/structure-patch.js.map +0 -1
- package/dist/template/scan.d.ts +0 -21
- package/dist/template/scan.d.ts.map +0 -1
- package/dist/template/scan.js +0 -84
- package/dist/template/scan.js.map +0 -1
- package/dist/template/validate.d.ts +0 -10
- package/dist/template/validate.d.ts.map +0 -1
- package/dist/template/validate.js +0 -64
- package/dist/template/validate.js.map +0 -1
- package/dist/util/fs.d.ts +0 -6
- package/dist/util/fs.d.ts.map +0 -1
- package/dist/util/fs.js +0 -24
- package/dist/util/fs.js.map +0 -1
- package/dist/util/git-diff.d.ts +0 -16
- package/dist/util/git-diff.d.ts.map +0 -1
- package/dist/util/git-diff.js +0 -93
- package/dist/util/git-diff.js.map +0 -1
- package/dist/util/gitignore.d.ts +0 -9
- package/dist/util/gitignore.d.ts.map +0 -1
- package/dist/util/gitignore.js +0 -44
- package/dist/util/gitignore.js.map +0 -1
- package/dist/util/open-browser.d.ts +0 -3
- package/dist/util/open-browser.d.ts.map +0 -1
- package/dist/util/open-browser.js +0 -24
- package/dist/util/open-browser.js.map +0 -1
- package/dist/util/paths.d.ts +0 -16
- package/dist/util/paths.d.ts.map +0 -1
- package/dist/util/paths.js +0 -19
- package/dist/util/paths.js.map +0 -1
- package/dist/util/prompt.d.ts +0 -14
- package/dist/util/prompt.d.ts.map +0 -1
- package/dist/util/prompt.js +0 -65
- package/dist/util/prompt.js.map +0 -1
- package/dist/visualize/html.d.ts +0 -13
- package/dist/visualize/html.d.ts.map +0 -1
- package/dist/visualize/html.js +0 -766
- package/dist/visualize/html.js.map +0 -1
- package/dist/visualize/stats.d.ts +0 -8
- package/dist/visualize/stats.d.ts.map +0 -1
- package/dist/visualize/stats.js +0 -9
- package/dist/visualize/stats.js.map +0 -1
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { mkdir } from "node:fs/promises";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { loadDocflowConfig } from "../config/load.js";
|
|
4
|
-
import { runCheck } from "../operations/check.js";
|
|
5
|
-
import { validateGraph } from "../operations/validate.js";
|
|
6
|
-
import { pathExists, readJson, writeJson } from "../util/fs.js";
|
|
7
|
-
import { resolveProjectPaths } from "../util/paths.js";
|
|
8
|
-
import { adoptArtifactPaths } from "./paths.js";
|
|
9
|
-
import { loadAdoptSetup } from "./setup.js";
|
|
10
|
-
import { discoverMarkdownFiles } from "../index/docs-build.js";
|
|
11
|
-
import { SRS_MINIMUM_PATHS } from "../operations/derive.js";
|
|
12
|
-
function isStructOrCfgError(finding) {
|
|
13
|
-
return (finding.severity === "error" &&
|
|
14
|
-
(finding.ruleId.startsWith("STRUCT-") || finding.ruleId.startsWith("CFG-")));
|
|
15
|
-
}
|
|
16
|
-
function checkFindingToGap(finding, severity) {
|
|
17
|
-
return {
|
|
18
|
-
id: finding.ruleId,
|
|
19
|
-
severity,
|
|
20
|
-
message: finding.message,
|
|
21
|
-
...(finding.fix ? { fix: finding.fix } : {}),
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
async function syncSetupFromPlan(root, plan) {
|
|
25
|
-
const { setup, dir } = adoptArtifactPaths(root);
|
|
26
|
-
await mkdir(dir, { recursive: true });
|
|
27
|
-
const state = await loadAdoptSetup(root);
|
|
28
|
-
const now = new Date().toISOString();
|
|
29
|
-
let changed = false;
|
|
30
|
-
if ((plan.status === "approved" || plan.status === "applied") &&
|
|
31
|
-
!state.items["plan.approved"]?.done) {
|
|
32
|
-
state.items["plan.approved"] = { done: true, at: now };
|
|
33
|
-
changed = true;
|
|
34
|
-
}
|
|
35
|
-
if (plan.status === "applied" && !state.items["apply.done"]?.done) {
|
|
36
|
-
state.items["apply.done"] = { done: true, at: now };
|
|
37
|
-
changed = true;
|
|
38
|
-
}
|
|
39
|
-
if (changed) {
|
|
40
|
-
await writeJson(setup, state);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
export async function validateAdopt(opts = {}) {
|
|
44
|
-
const { root } = await loadDocflowConfig(opts.root);
|
|
45
|
-
const gaps = [];
|
|
46
|
-
const questionsForUser = [];
|
|
47
|
-
const adoptPaths = adoptArtifactPaths(root);
|
|
48
|
-
if (!(await pathExists(adoptPaths.plan))) {
|
|
49
|
-
gaps.push({
|
|
50
|
-
id: "plan.missing",
|
|
51
|
-
severity: "blocking",
|
|
52
|
-
message: "No adopt plan found.",
|
|
53
|
-
fix: "npx ai-spector adopt plan",
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
const plan = await readJson(adoptPaths.plan);
|
|
58
|
-
if (plan.status !== "applied") {
|
|
59
|
-
gaps.push({
|
|
60
|
-
id: "plan.not-applied",
|
|
61
|
-
severity: "blocking",
|
|
62
|
-
message: `Migration plan is not applied (status: ${plan.status}).`,
|
|
63
|
-
fix: "npx ai-spector adopt apply",
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
if (opts.sync) {
|
|
67
|
-
await syncSetupFromPlan(root, plan);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
const checkResult = await runCheck({ root });
|
|
71
|
-
for (const finding of checkResult.findings) {
|
|
72
|
-
if (isStructOrCfgError(finding)) {
|
|
73
|
-
gaps.push(checkFindingToGap(finding, "blocking"));
|
|
74
|
-
}
|
|
75
|
-
else if (finding.severity === "warning") {
|
|
76
|
-
gaps.push(checkFindingToGap(finding, "warning"));
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
const projectPaths = await resolveProjectPaths(root);
|
|
80
|
-
if (await pathExists(projectPaths.graph)) {
|
|
81
|
-
const issues = await validateGraph({
|
|
82
|
-
graphPath: projectPaths.graph,
|
|
83
|
-
schemaPath: projectPaths.schema,
|
|
84
|
-
registryPath: projectPaths.registry,
|
|
85
|
-
rulesPath: projectPaths.rulesTraceability,
|
|
86
|
-
});
|
|
87
|
-
for (const issue of issues) {
|
|
88
|
-
if (issue.severity === "error") {
|
|
89
|
-
gaps.push({
|
|
90
|
-
id: `graph.${issue.ruleId}`,
|
|
91
|
-
severity: "blocking",
|
|
92
|
-
message: issue.message,
|
|
93
|
-
fix: "npx ai-spector graph validate",
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
else if (issue.severity === "warn") {
|
|
97
|
-
gaps.push({
|
|
98
|
-
id: `graph.${issue.ruleId}`,
|
|
99
|
-
severity: "warning",
|
|
100
|
-
message: issue.message,
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
const blockingCount = gaps.filter((g) => g.severity === "blocking").length;
|
|
106
|
-
const srsFiles = await discoverMarkdownFiles(root, "docs/srs");
|
|
107
|
-
const bdFiles = await discoverMarkdownFiles(root, "docs/basic-design");
|
|
108
|
-
const ddFiles = await discoverMarkdownFiles(root, "docs/detail-design");
|
|
109
|
-
const hasSrsMinimum = (await Promise.all(SRS_MINIMUM_PATHS.map((p) => pathExists(join(root, p))))).every(Boolean);
|
|
110
|
-
if (bdFiles.length > 0 && ddFiles.length > 0 && srsFiles.length === 0 && !hasSrsMinimum) {
|
|
111
|
-
gaps.push({
|
|
112
|
-
id: "derive.srs-missing",
|
|
113
|
-
severity: "warning",
|
|
114
|
-
message: "SRS missing but basic + detail design exist.",
|
|
115
|
-
fix: 'Say "generate SRS from basic design" (sourceMode: derive-downstream, extract pass)',
|
|
116
|
-
layer: "srs",
|
|
117
|
-
suggestion: "generate-srs",
|
|
118
|
-
deriveFrom: ["basic-design", "detail-design"],
|
|
119
|
-
});
|
|
120
|
-
questionsForUser.push("SRS is missing — backfill with generate SRS from basic design (derive-downstream extract pass)?");
|
|
121
|
-
}
|
|
122
|
-
return {
|
|
123
|
-
ready: blockingCount === 0,
|
|
124
|
-
blockingCount,
|
|
125
|
-
gaps,
|
|
126
|
-
questionsForUser,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=validate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/core/adopt/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAqB,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAoB5D,SAAS,kBAAkB,CAAC,OAAqB;IAC/C,OAAO,CACL,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC5B,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAC5E,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAqB,EACrB,QAAgC;IAEhC,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,MAAM;QAClB,QAAQ;QACR,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,IAAe;IAC5D,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IACE,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;QACzD,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,IAAI,EACnC,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QACvD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC;QAClE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QACpD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAA0C,EAAE;IAE5C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,IAAI,GAAyB,EAAE,CAAC;IACtC,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAE5C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC;YACR,EAAE,EAAE,cAAc;YAClB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,sBAAsB;YAC/B,GAAG,EAAE,2BAA2B;SACjC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAY,UAAU,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC;gBACR,EAAE,EAAE,kBAAkB;gBACtB,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,0CAA0C,IAAI,CAAC,MAAM,IAAI;gBAClE,GAAG,EAAE,4BAA4B;aAClC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,MAAM,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,SAAS,EAAE,YAAY,CAAC,KAAK;YAC7B,UAAU,EAAE,YAAY,CAAC,MAAM;YAC/B,YAAY,EAAE,YAAY,CAAC,QAAQ;YACnC,SAAS,EAAE,YAAY,CAAC,iBAAiB;SAC1C,CAAC,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE,EAAE,SAAS,KAAK,CAAC,MAAM,EAAE;oBAC3B,QAAQ,EAAE,UAAU;oBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,GAAG,EAAE,+BAA+B;iBACrC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE,EAAE,SAAS,KAAK,CAAC,MAAM,EAAE;oBAC3B,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IAE3E,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,CACpB,MAAM,OAAO,CAAC,GAAG,CACf,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CACxD,CACF,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEjB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACxF,IAAI,CAAC,IAAI,CAAC;YACR,EAAE,EAAE,oBAAoB;YACxB,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,8CAA8C;YACvD,GAAG,EAAE,oFAAoF;YACzF,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,cAAc;YAC1B,UAAU,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;SAC9C,CAAC,CAAC;QACH,gBAAgB,CAAC,IAAI,CACnB,iGAAiG,CAClG,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,aAAa,KAAK,CAAC;QAC1B,aAAa;QACb,IAAI;QACJ,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export interface DualWriteRoots {
|
|
2
|
-
primary: string;
|
|
3
|
-
legacy?: string;
|
|
4
|
-
}
|
|
5
|
-
export declare function mirrorRoots(primaryRel: string, legacyRel?: string): DualWriteRoots;
|
|
6
|
-
export declare function writeJsonDual(projectRoot: string, roots: DualWriteRoots, relativePath: string, data: unknown): Promise<void>;
|
|
7
|
-
export declare function writeJsonAtomicDual(projectRoot: string, roots: DualWriteRoots, relativePath: string, data: unknown): Promise<void>;
|
|
8
|
-
export declare function writeFileDual(projectRoot: string, roots: DualWriteRoots, relativePath: string, content: string, options?: {
|
|
9
|
-
append?: boolean;
|
|
10
|
-
}): Promise<void>;
|
|
11
|
-
export declare function mirrorTree(projectRoot: string, srcRel: string, destRel: string): Promise<void>;
|
|
12
|
-
//# sourceMappingURL=dual-write.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dual-write.d.ts","sourceRoot":"","sources":["../../../src/core/docops/dual-write.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAKlF;AAED,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAKf"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { cp, mkdir, writeFile } from "node:fs/promises";
|
|
2
|
-
import { dirname, join } from "node:path";
|
|
3
|
-
import { writeJson, writeJsonAtomic } from "../util/fs.js";
|
|
4
|
-
import { docopsDualWriteEnabled } from "./paths.js";
|
|
5
|
-
export function mirrorRoots(primaryRel, legacyRel) {
|
|
6
|
-
if (!docopsDualWriteEnabled() || !legacyRel || legacyRel === primaryRel) {
|
|
7
|
-
return { primary: primaryRel };
|
|
8
|
-
}
|
|
9
|
-
return { primary: primaryRel, legacy: legacyRel };
|
|
10
|
-
}
|
|
11
|
-
export async function writeJsonDual(projectRoot, roots, relativePath, data) {
|
|
12
|
-
const primaryAbs = join(projectRoot, roots.primary, relativePath);
|
|
13
|
-
await writeJson(primaryAbs, data);
|
|
14
|
-
if (roots.legacy) {
|
|
15
|
-
const legacyAbs = join(projectRoot, roots.legacy, relativePath);
|
|
16
|
-
await writeJson(legacyAbs, data);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
export async function writeJsonAtomicDual(projectRoot, roots, relativePath, data) {
|
|
20
|
-
const primaryAbs = join(projectRoot, roots.primary, relativePath);
|
|
21
|
-
await writeJsonAtomic(primaryAbs, data);
|
|
22
|
-
if (roots.legacy) {
|
|
23
|
-
const legacyAbs = join(projectRoot, roots.legacy, relativePath);
|
|
24
|
-
await writeJsonAtomic(legacyAbs, data);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
export async function writeFileDual(projectRoot, roots, relativePath, content, options) {
|
|
28
|
-
const writeOpts = options?.append ? { flag: "a" } : undefined;
|
|
29
|
-
const primaryAbs = join(projectRoot, roots.primary, relativePath);
|
|
30
|
-
await mkdir(dirname(primaryAbs), { recursive: true });
|
|
31
|
-
await writeFile(primaryAbs, content, writeOpts);
|
|
32
|
-
if (roots.legacy) {
|
|
33
|
-
const legacyAbs = join(projectRoot, roots.legacy, relativePath);
|
|
34
|
-
await mkdir(dirname(legacyAbs), { recursive: true });
|
|
35
|
-
await writeFile(legacyAbs, content, writeOpts);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
export async function mirrorTree(projectRoot, srcRel, destRel) {
|
|
39
|
-
const srcAbs = join(projectRoot, srcRel);
|
|
40
|
-
const destAbs = join(projectRoot, destRel);
|
|
41
|
-
await mkdir(dirname(destAbs), { recursive: true });
|
|
42
|
-
await cp(srcAbs, destAbs, { recursive: true, force: true });
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=dual-write.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dual-write.js","sourceRoot":"","sources":["../../../src/core/docops/dual-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-adapter.d.ts","sourceRoot":"","sources":["../../../src/core/engine/local-adapter.ts"],"names":[],"mappings":"AAKA,sFAAsF;AACtF,wBAAsB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWpF"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
import { LEGACY_DOCFLOW_CONFIG_REL } from "../docops/paths.js";
|
|
3
|
-
import { pathExists } from "../util/fs.js";
|
|
4
|
-
import { ENGINE_CONFIG_REL } from "./paths.js";
|
|
5
|
-
/** True when ai-spector local engine markers exist (not Writer-cloud-only docops). */
|
|
6
|
-
export async function hasLocalAiSpectorAdapter(projectRoot) {
|
|
7
|
-
const markers = [
|
|
8
|
-
join(projectRoot, ENGINE_CONFIG_REL),
|
|
9
|
-
join(projectRoot, LEGACY_DOCFLOW_CONFIG_REL),
|
|
10
|
-
];
|
|
11
|
-
for (const marker of markers) {
|
|
12
|
-
if (await pathExists(marker)) {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=local-adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-adapter.js","sourceRoot":"","sources":["../../../src/core/engine/local-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,WAAmB;IAChE,MAAM,OAAO,GAAG;QACd,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC;QACpC,IAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC;KAC7C,CAAC;IACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 2,
|
|
3
|
-
"description": "Impact propagation rules (v2). Two-pass algorithm used by /impact (graph impact CLI).",
|
|
4
|
-
"pass1_expand": {
|
|
5
|
-
"partOf": { "direction": "out", "depth": "unbounded" },
|
|
6
|
-
"listedIn": { "direction": "in", "depth": 1 },
|
|
7
|
-
"definedIn": { "direction": "in", "depth": 1 },
|
|
8
|
-
"describedIn": { "direction": "in", "depth": 1 },
|
|
9
|
-
"dependsOn": { "direction": "in", "depth": "unbounded" }
|
|
10
|
-
},
|
|
11
|
-
"pass2_downstream": {
|
|
12
|
-
"tracesTo": { "direction": "in", "depth": "unbounded" },
|
|
13
|
-
"satisfies": { "direction": "in", "depth": 1 },
|
|
14
|
-
"references": { "direction": "in", "depth": 2 },
|
|
15
|
-
"listedIn": { "direction": "out", "depth": "unbounded" },
|
|
16
|
-
"definedIn": { "direction": "out", "depth": "unbounded" },
|
|
17
|
-
"describedIn": { "direction": "out", "depth": "unbounded" },
|
|
18
|
-
"partOf": { "direction": "out", "depth": "unbounded" }
|
|
19
|
-
},
|
|
20
|
-
"buckets": {
|
|
21
|
-
"regenerate": ["section", "document"],
|
|
22
|
-
"review": ["useCase", "feature", "requirement", "nfr", "actor", "dataEntity"]
|
|
23
|
-
}
|
|
24
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { TaskState } from "./task.js";
|
|
2
|
-
import type { AdoptPlan } from "../adopt/types.js";
|
|
3
|
-
export declare function assertTaskApproveAdoptPlanAllowed(task: TaskState): asserts task is TaskState & {
|
|
4
|
-
plan: {
|
|
5
|
-
kind: "adopt";
|
|
6
|
-
};
|
|
7
|
-
};
|
|
8
|
-
export declare function assertAdoptApplyAllowed(task: TaskState | null, opts: {
|
|
9
|
-
legacy?: boolean;
|
|
10
|
-
}): void;
|
|
11
|
-
export declare function assertAdoptPlanApprovedOnDisk(root: string): Promise<AdoptPlan>;
|
|
12
|
-
export declare function assertAdoptBootstrapAllowed(task: TaskState | null, opts: {
|
|
13
|
-
legacy?: boolean;
|
|
14
|
-
}): void;
|
|
15
|
-
export declare function assertAdoptMigrationCompleteAllowed(task: TaskState | null, opts: {
|
|
16
|
-
legacy?: boolean;
|
|
17
|
-
validateReady: boolean;
|
|
18
|
-
}): void;
|
|
19
|
-
//# sourceMappingURL=adopt-gates.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adopt-gates.d.ts","sourceRoot":"","sources":["../../../src/core/operations/adopt-gates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAI3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAMnD,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,IAAI,IAAI,SAAS,GAAG;IAAE,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,CAqEzD;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,GAAG,IAAI,EACtB,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,IAAI,CAsBN;AAED,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAOpF;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,SAAS,GAAG,IAAI,EACtB,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,IAAI,CAeN;AAED,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,SAAS,GAAG,IAAI,EACtB,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,GACjD,IAAI,CAkBN"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { TaskPreconditionError } from "./task-gates.js";
|
|
2
|
-
import { readJson } from "../util/fs.js";
|
|
3
|
-
import { adoptArtifactPaths } from "../adopt/paths.js";
|
|
4
|
-
function stepStatus(task, stepId) {
|
|
5
|
-
return task.steps.find((s) => s.id === stepId)?.status ?? "missing";
|
|
6
|
-
}
|
|
7
|
-
export function assertTaskApproveAdoptPlanAllowed(task) {
|
|
8
|
-
if (task.kind !== "adopt") {
|
|
9
|
-
throw new TaskPreconditionError("step_premature", `task_approve_adopt_plan is only for adopt tasks (got kind "${task.kind}").`, "Use task_approve_plan for generate/resolve; task_approve_import_plan for import.", ["task_approve_plan", "task_approve_import_plan"], task);
|
|
10
|
-
}
|
|
11
|
-
if (task.planApprovedAt) {
|
|
12
|
-
throw new TaskPreconditionError("plan_already_approved", `Adopt task "${task.id}" plan already approved.`, "Continue with adopt_apply. Do not call task_approve_adopt_plan again.", ["adopt_apply", "task_get"], task);
|
|
13
|
-
}
|
|
14
|
-
if (!task.plan || task.plan.kind !== "adopt") {
|
|
15
|
-
throw new TaskPreconditionError("plan_missing", `Adopt task "${task.id}" has no adopt plan summary.`, "Run adopt_plan, store summary via task_update, present mapping table.", ["adopt_plan", "task_update"], task, "plan");
|
|
16
|
-
}
|
|
17
|
-
if (stepStatus(task, "check") !== "done" || !task.snapshot.workspaceCheckAt) {
|
|
18
|
-
throw new TaskPreconditionError("step_incomplete", `Adopt task "${task.id}" — complete check first.`, "Run workspace_check, set snapshot.workspaceCheckAt, mark check done.", ["workspace_check", "task_update"], task, "check");
|
|
19
|
-
}
|
|
20
|
-
if (stepStatus(task, "clarify") !== "done" || !task.snapshot.adoptClarifyCompleteAt) {
|
|
21
|
-
throw new TaskPreconditionError("step_incomplete", `Adopt task "${task.id}" — complete clarify first.`, "Resolve adopt_scan blocking questions, set adoptClarifyCompleteAt.", ["adopt_scan", "adopt_context_record", "task_update"], task, "clarify");
|
|
22
|
-
}
|
|
23
|
-
if (!task.snapshot.adoptPlanPresentedAt) {
|
|
24
|
-
throw new TaskPreconditionError("snapshot_missing", `Adopt task "${task.id}" — mapping table not presented.`, "Show mapping table in chat, set snapshot.adoptPlanPresentedAt.", ["task_update"], task, "plan");
|
|
25
|
-
}
|
|
26
|
-
if (stepStatus(task, "plan") === "done") {
|
|
27
|
-
throw new TaskPreconditionError("step_premature", `Adopt task "${task.id}" plan step done without task_approve_adopt_plan.`, "Wait for user yes, then task_approve_adopt_plan — not task_update on plan.", ["task_approve_adopt_plan"], task, "plan");
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
export function assertAdoptApplyAllowed(task, opts) {
|
|
31
|
-
if (opts.legacy)
|
|
32
|
-
return;
|
|
33
|
-
if (!task || task.kind !== "adopt") {
|
|
34
|
-
throw new TaskPreconditionError("step_incomplete", "adopt_apply requires an active adopt task or --legacy.", 'task_create({ kind: "adopt", workflow: "adopt" }) then task_approve_adopt_plan.', ["task_create", "task_approve_adopt_plan"], task ?? { id: "none", kind: "adopt", workflow: "adopt" }, "apply");
|
|
35
|
-
}
|
|
36
|
-
if (!task.planApprovedAt || stepStatus(task, "plan") !== "done") {
|
|
37
|
-
throw new TaskPreconditionError("plan_not_approved", `Cannot apply — adopt plan not approved for task "${task.id}".`, "Present mapping table and call task_approve_adopt_plan after user confirms.", ["task_approve_adopt_plan"], task, "plan");
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
export async function assertAdoptPlanApprovedOnDisk(root) {
|
|
41
|
-
const { plan: planPath } = adoptArtifactPaths(root);
|
|
42
|
-
const plan = await readJson(planPath);
|
|
43
|
-
if (plan.status !== "approved" && plan.status !== "applied") {
|
|
44
|
-
throw new Error(`adopt plan status is "${plan.status}" — expected approved`);
|
|
45
|
-
}
|
|
46
|
-
return plan;
|
|
47
|
-
}
|
|
48
|
-
export function assertAdoptBootstrapAllowed(task, opts) {
|
|
49
|
-
if (opts.legacy)
|
|
50
|
-
return;
|
|
51
|
-
if (!task || task.kind !== "adopt") {
|
|
52
|
-
throw new Error("adopt_bootstrap requires active adopt task or --legacy");
|
|
53
|
-
}
|
|
54
|
-
if (stepStatus(task, "apply") !== "done" || !task.snapshot.adoptApplyAt) {
|
|
55
|
-
throw new TaskPreconditionError("step_incomplete", `Adopt task "${task.id}" — complete apply before bootstrap.`, "Run adopt_apply after plan approval, mark apply done.", ["adopt_apply", "task_update"], task, "bootstrap");
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
export function assertAdoptMigrationCompleteAllowed(task, opts) {
|
|
59
|
-
if (opts.legacy)
|
|
60
|
-
return;
|
|
61
|
-
if (!task || task.kind !== "adopt") {
|
|
62
|
-
throw new Error("migration.complete requires active adopt task or --legacy");
|
|
63
|
-
}
|
|
64
|
-
if (!opts.validateReady) {
|
|
65
|
-
throw new Error("adopt_validate must report ready: true before migration.complete");
|
|
66
|
-
}
|
|
67
|
-
if (stepStatus(task, "validate") !== "done" || !task.snapshot.adoptValidateReadyAt) {
|
|
68
|
-
throw new TaskPreconditionError("step_incomplete", `Adopt task "${task.id}" — complete validate before migration.complete.`, "Run adopt_validate until ready, mark validate done.", ["adopt_validate", "task_update"], task, "complete");
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=adopt-gates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adopt-gates.js","sourceRoot":"","sources":["../../../src/core/operations/adopt-gates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,SAAS,UAAU,CAAC,IAAe,EAAE,MAAc;IACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,IAAe;IAEf,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,qBAAqB,CAC7B,gBAAgB,EAChB,8DAA8D,IAAI,CAAC,IAAI,KAAK,EAC5E,kFAAkF,EAClF,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,EACjD,IAAI,CACL,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,IAAI,qBAAqB,CAC7B,uBAAuB,EACvB,eAAe,IAAI,CAAC,EAAE,0BAA0B,EAChD,uEAAuE,EACvE,CAAC,aAAa,EAAE,UAAU,CAAC,EAC3B,IAAI,CACL,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7C,MAAM,IAAI,qBAAqB,CAC7B,cAAc,EACd,eAAe,IAAI,CAAC,EAAE,8BAA8B,EACpD,uEAAuE,EACvE,CAAC,YAAY,EAAE,aAAa,CAAC,EAC7B,IAAI,EACJ,MAAM,CACP,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC5E,MAAM,IAAI,qBAAqB,CAC7B,iBAAiB,EACjB,eAAe,IAAI,CAAC,EAAE,2BAA2B,EACjD,sEAAsE,EACtE,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAClC,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QACpF,MAAM,IAAI,qBAAqB,CAC7B,iBAAiB,EACjB,eAAe,IAAI,CAAC,EAAE,6BAA6B,EACnD,oEAAoE,EACpE,CAAC,YAAY,EAAE,sBAAsB,EAAE,aAAa,CAAC,EACrD,IAAI,EACJ,SAAS,CACV,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QACxC,MAAM,IAAI,qBAAqB,CAC7B,kBAAkB,EAClB,eAAe,IAAI,CAAC,EAAE,kCAAkC,EACxD,gEAAgE,EAChE,CAAC,aAAa,CAAC,EACf,IAAI,EACJ,MAAM,CACP,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;QACxC,MAAM,IAAI,qBAAqB,CAC7B,gBAAgB,EAChB,eAAe,IAAI,CAAC,EAAE,mDAAmD,EACzE,4EAA4E,EAC5E,CAAC,yBAAyB,CAAC,EAC3B,IAAI,EACJ,MAAM,CACP,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAsB,EACtB,IAA0B;IAE1B,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO;IACxB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnC,MAAM,IAAI,qBAAqB,CAC7B,iBAAiB,EACjB,wDAAwD,EACxD,iFAAiF,EACjF,CAAC,aAAa,EAAE,yBAAyB,CAAC,EAC1C,IAAI,IAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAgB,EACvE,OAAO,CACR,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;QAChE,MAAM,IAAI,qBAAqB,CAC7B,mBAAmB,EACnB,oDAAoD,IAAI,CAAC,EAAE,IAAI,EAC/D,6EAA6E,EAC7E,CAAC,yBAAyB,CAAC,EAC3B,IAAI,EACJ,MAAM,CACP,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,IAAY;IAC9D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAY,QAAQ,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,MAAM,uBAAuB,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,IAAsB,EACtB,IAA0B;IAE1B,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO;IACxB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QACxE,MAAM,IAAI,qBAAqB,CAC7B,iBAAiB,EACjB,eAAe,IAAI,CAAC,EAAE,sCAAsC,EAC5D,uDAAuD,EACvD,CAAC,aAAa,EAAE,aAAa,CAAC,EAC9B,IAAI,EACJ,WAAW,CACZ,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,IAAsB,EACtB,IAAkD;IAElD,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO;IACxB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QACnF,MAAM,IAAI,qBAAqB,CAC7B,iBAAiB,EACjB,eAAe,IAAI,CAAC,EAAE,kDAAkD,EACxE,qDAAqD,EACrD,CAAC,gBAAgB,EAAE,aAAa,CAAC,EACjC,IAAI,EACJ,UAAU,CACX,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { AdoptPlan, AdoptScanResult } from "../adopt/types.js";
|
|
2
|
-
export interface AdoptPlanSummary {
|
|
3
|
-
moveCount: number;
|
|
4
|
-
layers: {
|
|
5
|
-
srs: number;
|
|
6
|
-
basicDesign: number;
|
|
7
|
-
detailDesign: number;
|
|
8
|
-
prototype: number;
|
|
9
|
-
};
|
|
10
|
-
lowConfidenceCount: number;
|
|
11
|
-
classification: AdoptScanResult["classification"];
|
|
12
|
-
warnings: string[];
|
|
13
|
-
}
|
|
14
|
-
export declare function buildAdoptPlanSummary(plan: AdoptPlan, classification: AdoptScanResult["classification"]): AdoptPlanSummary;
|
|
15
|
-
//# sourceMappingURL=adopt-plan.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adopt-plan.d.ts","sourceRoot":"","sources":["../../../src/core/operations/adopt-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACtF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,EACf,cAAc,EAAE,eAAe,CAAC,gBAAgB,CAAC,GAChD,gBAAgB,CAiBlB"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export function buildAdoptPlanSummary(plan, classification) {
|
|
2
|
-
const layers = { srs: 0, basicDesign: 0, detailDesign: 0, prototype: 0 };
|
|
3
|
-
let lowConfidenceCount = 0;
|
|
4
|
-
for (const move of plan.moves) {
|
|
5
|
-
if (move.layer === "srs")
|
|
6
|
-
layers.srs++;
|
|
7
|
-
else if (move.layer === "basic-design")
|
|
8
|
-
layers.basicDesign++;
|
|
9
|
-
else if (move.layer === "detail-design")
|
|
10
|
-
layers.detailDesign++;
|
|
11
|
-
else if (move.layer === "prototype")
|
|
12
|
-
layers.prototype++;
|
|
13
|
-
if (move.confidence === "low")
|
|
14
|
-
lowConfidenceCount++;
|
|
15
|
-
}
|
|
16
|
-
return {
|
|
17
|
-
moveCount: plan.moves.length,
|
|
18
|
-
layers,
|
|
19
|
-
lowConfidenceCount,
|
|
20
|
-
classification,
|
|
21
|
-
warnings: plan.warnings,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=adopt-plan.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adopt-plan.js","sourceRoot":"","sources":["../../../src/core/operations/adopt-plan.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,qBAAqB,CACnC,IAAe,EACf,cAAiD;IAEjD,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACzE,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;YAAE,MAAM,CAAC,GAAG,EAAE,CAAC;aAClC,IAAI,IAAI,CAAC,KAAK,KAAK,cAAc;YAAE,MAAM,CAAC,WAAW,EAAE,CAAC;aACxD,IAAI,IAAI,CAAC,KAAK,KAAK,eAAe;YAAE,MAAM,CAAC,YAAY,EAAE,CAAC;aAC1D,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;YAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK;YAAE,kBAAkB,EAAE,CAAC;IACtD,CAAC;IACD,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;QAC5B,MAAM;QACN,kBAAkB;QAClB,cAAc;QACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { Command } from "commander";
|
|
2
|
-
export { runAdoptScan } from "../adopt/scan.js";
|
|
3
|
-
export { runAdoptPlan, approveAdoptPlan } from "../adopt/plan.js";
|
|
4
|
-
export { runAdoptApply } from "../adopt/apply.js";
|
|
5
|
-
export { runAdoptBootstrap } from "../adopt/bootstrap.js";
|
|
6
|
-
export { validateAdopt } from "../adopt/validate.js";
|
|
7
|
-
export { markAdoptSetupItem, recordAdoptAnswer } from "../adopt/setup.js";
|
|
8
|
-
export type { AdoptScanResult, AdoptPlan, AdoptSetupState, AdoptQuestion, AdoptInventoryItem, } from "../adopt/types.js";
|
|
9
|
-
export type { AdoptValidationResult, AdoptValidationGap } from "../adopt/validate.js";
|
|
10
|
-
export declare function registerAdoptCommand(program: Command): void;
|
|
11
|
-
//# sourceMappingURL=adopt.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adopt.d.ts","sourceRoot":"","sources":["../../../src/core/operations/adopt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,YAAY,EACV,eAAe,EACf,SAAS,EACT,eAAe,EACf,aAAa,EACb,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAStF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuI3D"}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import { resolve } from "node:path";
|
|
2
|
-
import { loadDocflowConfig } from "../config/load.js";
|
|
3
|
-
import { runAdoptApply } from "../adopt/apply.js";
|
|
4
|
-
import { runAdoptBootstrap } from "../adopt/bootstrap.js";
|
|
5
|
-
import { runAdoptPlan, approveAdoptPlan } from "../adopt/plan.js";
|
|
6
|
-
import { runAdoptScan } from "../adopt/scan.js";
|
|
7
|
-
import { markAdoptSetupItem, recordAdoptAnswer } from "../adopt/setup.js";
|
|
8
|
-
import { validateAdopt } from "../adopt/validate.js";
|
|
9
|
-
import { formatAdoptApply, formatAdoptBootstrap, formatAdoptContextRecord, formatAdoptPlan, formatAdoptScan, formatAdoptSetupMark, formatAdoptValidate, } from "../../interfaces/cli/format/adopt.js";
|
|
10
|
-
export { runAdoptScan } from "../adopt/scan.js";
|
|
11
|
-
export { runAdoptPlan, approveAdoptPlan } from "../adopt/plan.js";
|
|
12
|
-
export { runAdoptApply } from "../adopt/apply.js";
|
|
13
|
-
export { runAdoptBootstrap } from "../adopt/bootstrap.js";
|
|
14
|
-
export { validateAdopt } from "../adopt/validate.js";
|
|
15
|
-
export { markAdoptSetupItem, recordAdoptAnswer } from "../adopt/setup.js";
|
|
16
|
-
import { getActiveTaskForSlot } from "./task.js";
|
|
17
|
-
async function projectRoot(cwd) {
|
|
18
|
-
const { root } = await loadDocflowConfig(cwd ? resolve(cwd) : undefined);
|
|
19
|
-
return root;
|
|
20
|
-
}
|
|
21
|
-
export function registerAdoptCommand(program) {
|
|
22
|
-
const adopt = program
|
|
23
|
-
.command("adopt")
|
|
24
|
-
.description("Migrate existing docs to canonical AI Spector layout");
|
|
25
|
-
adopt
|
|
26
|
-
.command("scan")
|
|
27
|
-
.description("Classify project layout and inventory existing docs")
|
|
28
|
-
.option("-C, --cwd <path>", "Project root", process.cwd())
|
|
29
|
-
.option("--json", "JSON output")
|
|
30
|
-
.action(async (opts) => {
|
|
31
|
-
const result = await runAdoptScan({ root: resolve(opts.cwd ?? process.cwd()) });
|
|
32
|
-
if (opts.json) {
|
|
33
|
-
console.log(JSON.stringify(result, null, 2));
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
console.log(formatAdoptScan(result));
|
|
37
|
-
});
|
|
38
|
-
adopt
|
|
39
|
-
.command("plan")
|
|
40
|
-
.description("Build migration plan from scan result and stored answers")
|
|
41
|
-
.option("-C, --cwd <path>", "Project root", process.cwd())
|
|
42
|
-
.option("--json", "JSON output")
|
|
43
|
-
.option("--approve", "Approve plan after generation (Gate 2)")
|
|
44
|
-
.option("--by <email>", "Approver identity when using --approve")
|
|
45
|
-
.option("--sync", "Refresh heuristics from scan (overwrite draft plan)")
|
|
46
|
-
.action(async (opts) => {
|
|
47
|
-
const root = resolve(opts.cwd ?? process.cwd());
|
|
48
|
-
let result = await runAdoptPlan({ root, sync: opts.sync });
|
|
49
|
-
if (opts.approve) {
|
|
50
|
-
result = await approveAdoptPlan({ root, by: opts.by });
|
|
51
|
-
}
|
|
52
|
-
if (opts.json) {
|
|
53
|
-
console.log(JSON.stringify(result, null, 2));
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
console.log(formatAdoptPlan(result));
|
|
57
|
-
});
|
|
58
|
-
adopt
|
|
59
|
-
.command("apply")
|
|
60
|
-
.description("Execute approved migration plan (git mv when in a git repo)")
|
|
61
|
-
.option("-C, --cwd <path>", "Project root", process.cwd())
|
|
62
|
-
.option("--dry-run", "Preview moves without changing files")
|
|
63
|
-
.option("--legacy", "Bypass adopt task gates (scripts/CI only)")
|
|
64
|
-
.option("--json", "JSON output")
|
|
65
|
-
.action(async (opts) => {
|
|
66
|
-
const root = resolve(opts.cwd ?? process.cwd());
|
|
67
|
-
const activeTask = opts.legacy ? null : await getActiveTaskForSlot(root, "adopt");
|
|
68
|
-
const result = await runAdoptApply({
|
|
69
|
-
root,
|
|
70
|
-
dryRun: opts.dryRun,
|
|
71
|
-
legacy: opts.legacy,
|
|
72
|
-
activeTask,
|
|
73
|
-
});
|
|
74
|
-
if (opts.json) {
|
|
75
|
-
console.log(JSON.stringify(result, null, 2));
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
console.log(formatAdoptApply(result));
|
|
79
|
-
});
|
|
80
|
-
adopt
|
|
81
|
-
.command("bootstrap")
|
|
82
|
-
.description("Post-move index, analyze, prototype, review registry, and adopt tasks")
|
|
83
|
-
.option("-C, --cwd <path>", "Project root", process.cwd())
|
|
84
|
-
.option("--json", "JSON output")
|
|
85
|
-
.option("--skip-analyze", "Skip optional analyze step")
|
|
86
|
-
.option("--legacy", "Bypass adopt task gates (scripts/CI only)")
|
|
87
|
-
.action(async (opts) => {
|
|
88
|
-
const root = resolve(opts.cwd ?? process.cwd());
|
|
89
|
-
const activeTask = opts.legacy ? null : await getActiveTaskForSlot(root, "adopt");
|
|
90
|
-
const result = await runAdoptBootstrap({
|
|
91
|
-
root,
|
|
92
|
-
skipAnalyze: opts.skipAnalyze,
|
|
93
|
-
legacy: opts.legacy,
|
|
94
|
-
activeTask,
|
|
95
|
-
});
|
|
96
|
-
if (opts.json) {
|
|
97
|
-
console.log(JSON.stringify(result, null, 2));
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
console.log(formatAdoptBootstrap(result));
|
|
101
|
-
});
|
|
102
|
-
adopt
|
|
103
|
-
.command("validate")
|
|
104
|
-
.description("Readiness gate — workspace + graph checks after migration")
|
|
105
|
-
.option("-C, --cwd <path>", "Project root", process.cwd())
|
|
106
|
-
.option("--json", "JSON output")
|
|
107
|
-
.option("--sync", "Update adopt-setup.json from plan status")
|
|
108
|
-
.action(async (opts) => {
|
|
109
|
-
const result = await validateAdopt({
|
|
110
|
-
root: resolve(opts.cwd ?? process.cwd()),
|
|
111
|
-
sync: opts.sync,
|
|
112
|
-
});
|
|
113
|
-
if (opts.json) {
|
|
114
|
-
console.log(JSON.stringify(result, null, 2));
|
|
115
|
-
process.exitCode = result.ready ? 0 : 1;
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
console.log(formatAdoptValidate(result));
|
|
119
|
-
process.exitCode = result.ready ? 0 : 1;
|
|
120
|
-
});
|
|
121
|
-
adopt
|
|
122
|
-
.command("setup-mark <item-id>")
|
|
123
|
-
.description("Mark a human-confirmed adopt setup item done (e.g. migration.complete)")
|
|
124
|
-
.option("-C, --cwd <path>", "Project root", process.cwd())
|
|
125
|
-
.option("--json", "JSON output")
|
|
126
|
-
.action(async (itemId, opts) => {
|
|
127
|
-
const root = await projectRoot(opts.cwd);
|
|
128
|
-
const result = await markAdoptSetupItem(root, itemId);
|
|
129
|
-
if (opts.json) {
|
|
130
|
-
console.log(JSON.stringify(result, null, 2));
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
console.log(formatAdoptSetupMark(itemId, result));
|
|
134
|
-
});
|
|
135
|
-
adopt
|
|
136
|
-
.command("context-record <id> <answer>")
|
|
137
|
-
.description("Record Gate 1 answer in adopt context.json")
|
|
138
|
-
.option("-C, --cwd <path>", "Project root", process.cwd())
|
|
139
|
-
.option("--json", "JSON output")
|
|
140
|
-
.action(async (id, answer, opts) => {
|
|
141
|
-
const root = await projectRoot(opts.cwd);
|
|
142
|
-
await recordAdoptAnswer(root, id, answer);
|
|
143
|
-
if (opts.json) {
|
|
144
|
-
console.log(JSON.stringify({ id, answer }, null, 2));
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
console.log(formatAdoptContextRecord(id, answer));
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
//# sourceMappingURL=adopt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adopt.js","sourceRoot":"","sources":["../../../src/core/operations/adopt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export interface AnalyzePrepOptions {
|
|
2
|
-
merge?: boolean;
|
|
3
|
-
}
|
|
4
|
-
export interface AnalyzePrepResult {
|
|
5
|
-
documentCount: number;
|
|
6
|
-
sectionCount: number;
|
|
7
|
-
registryPath: string;
|
|
8
|
-
graphPath: string;
|
|
9
|
-
merged: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare function runAnalyzePrep(root?: string, opts?: AnalyzePrepOptions): Promise<AnalyzePrepResult>;
|
|
12
|
-
//# sourceMappingURL=analyze.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../src/core/operations/analyze.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,cAAc,CAClC,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAkD5B"}
|