@planu/cli 0.43.1 → 0.44.0
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/dist/cli/colors.d.ts +14 -0
- package/dist/cli/colors.d.ts.map +1 -0
- package/dist/cli/colors.js +26 -0
- package/dist/cli/colors.js.map +1 -0
- package/dist/cli/commands/audit.d.ts +3 -0
- package/dist/cli/commands/audit.d.ts.map +1 -0
- package/dist/cli/commands/audit.js +38 -0
- package/dist/cli/commands/audit.js.map +1 -0
- package/dist/cli/commands/create.d.ts +3 -0
- package/dist/cli/commands/create.d.ts.map +1 -0
- package/dist/cli/commands/create.js +50 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/dashboard.d.ts +3 -0
- package/dist/cli/commands/dashboard.d.ts.map +1 -0
- package/dist/cli/commands/dashboard.js +29 -0
- package/dist/cli/commands/dashboard.js.map +1 -0
- package/dist/cli/commands/estimate.d.ts +3 -0
- package/dist/cli/commands/estimate.d.ts.map +1 -0
- package/dist/cli/commands/estimate.js +36 -0
- package/dist/cli/commands/estimate.js.map +1 -0
- package/dist/cli/commands/handoff.d.ts +3 -0
- package/dist/cli/commands/handoff.d.ts.map +1 -0
- package/dist/cli/commands/handoff.js +49 -0
- package/dist/cli/commands/handoff.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +43 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/list.d.ts +3 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +36 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +3 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +34 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/status.d.ts +3 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +49 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +3 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +36 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/commands/watch.d.ts +3 -0
- package/dist/cli/commands/watch.d.ts.map +1 -0
- package/dist/cli/commands/watch.js +156 -0
- package/dist/cli/commands/watch.js.map +1 -0
- package/dist/cli/formatter.d.ts +18 -0
- package/dist/cli/formatter.d.ts.map +1 -0
- package/dist/cli/formatter.js +78 -0
- package/dist/cli/formatter.js.map +1 -0
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +7 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/interactive.d.ts +13 -0
- package/dist/cli/interactive.d.ts.map +1 -0
- package/dist/cli/interactive.js +42 -0
- package/dist/cli/interactive.js.map +1 -0
- package/dist/cli/project-detector.d.ts +6 -0
- package/dist/cli/project-detector.d.ts.map +1 -0
- package/dist/cli/project-detector.js +12 -0
- package/dist/cli/project-detector.js.map +1 -0
- package/dist/cli/router.d.ts +5 -0
- package/dist/cli/router.d.ts.map +1 -0
- package/dist/cli/router.js +104 -0
- package/dist/cli/router.js.map +1 -0
- package/dist/config/hook-defaults.json +19 -0
- package/dist/config/license-plans.json +16 -1
- package/dist/config/tool-groups.json +12 -1
- package/dist/engine/analyzer/analyze-project.d.ts +15 -0
- package/dist/engine/analyzer/analyze-project.d.ts.map +1 -0
- package/dist/engine/analyzer/analyze-project.js +101 -0
- package/dist/engine/analyzer/analyze-project.js.map +1 -0
- package/dist/engine/analyzer/completeness-checker.d.ts +6 -0
- package/dist/engine/analyzer/completeness-checker.d.ts.map +1 -0
- package/dist/engine/analyzer/completeness-checker.js +79 -0
- package/dist/engine/analyzer/completeness-checker.js.map +1 -0
- package/dist/engine/analyzer/db-engine.d.ts +9 -0
- package/dist/engine/analyzer/db-engine.d.ts.map +1 -0
- package/dist/engine/analyzer/db-engine.js +137 -0
- package/dist/engine/analyzer/db-engine.js.map +1 -0
- package/dist/engine/analyzer/detectors.d.ts +7 -0
- package/dist/engine/analyzer/detectors.d.ts.map +1 -0
- package/dist/engine/analyzer/detectors.js +234 -0
- package/dist/engine/analyzer/detectors.js.map +1 -0
- package/dist/engine/analyzer/env-setup.d.ts +6 -0
- package/dist/engine/analyzer/env-setup.d.ts.map +1 -0
- package/dist/engine/analyzer/env-setup.js +174 -0
- package/dist/engine/analyzer/env-setup.js.map +1 -0
- package/dist/engine/analyzer/index.d.ts +6 -0
- package/dist/engine/analyzer/index.d.ts.map +1 -0
- package/dist/engine/analyzer/index.js +8 -0
- package/dist/engine/analyzer/index.js.map +1 -0
- package/dist/engine/analyzer-db.d.ts +1 -8
- package/dist/engine/analyzer-db.d.ts.map +1 -1
- package/dist/engine/analyzer-db.js +3 -136
- package/dist/engine/analyzer-db.js.map +1 -1
- package/dist/engine/analyzer-detectors.d.ts +1 -6
- package/dist/engine/analyzer-detectors.d.ts.map +1 -1
- package/dist/engine/analyzer-detectors.js +3 -231
- package/dist/engine/analyzer-detectors.js.map +1 -1
- package/dist/engine/analyzer-env.d.ts +1 -5
- package/dist/engine/analyzer-env.d.ts.map +1 -1
- package/dist/engine/analyzer-env.js +3 -173
- package/dist/engine/analyzer-env.js.map +1 -1
- package/dist/engine/analyzer.d.ts +2 -18
- package/dist/engine/analyzer.d.ts.map +1 -1
- package/dist/engine/analyzer.js +4 -172
- package/dist/engine/analyzer.js.map +1 -1
- package/dist/engine/dashboard/data-loader.d.ts +16 -1
- package/dist/engine/dashboard/data-loader.d.ts.map +1 -1
- package/dist/engine/dashboard/data-loader.js +140 -2
- package/dist/engine/dashboard/data-loader.js.map +1 -1
- package/dist/engine/dashboard/index.d.ts +2 -0
- package/dist/engine/dashboard/index.d.ts.map +1 -1
- package/dist/engine/dashboard/index.js +2 -0
- package/dist/engine/dashboard/index.js.map +1 -1
- package/dist/engine/dashboard/kanban-logic.d.ts +31 -0
- package/dist/engine/dashboard/kanban-logic.d.ts.map +1 -0
- package/dist/engine/dashboard/kanban-logic.js +122 -0
- package/dist/engine/dashboard/kanban-logic.js.map +1 -0
- package/dist/engine/dashboard/routes.d.ts +2 -0
- package/dist/engine/dashboard/routes.d.ts.map +1 -1
- package/dist/engine/dashboard/routes.js +112 -23
- package/dist/engine/dashboard/routes.js.map +1 -1
- package/dist/engine/dashboard/server.d.ts +5 -0
- package/dist/engine/dashboard/server.d.ts.map +1 -1
- package/dist/engine/dashboard/server.js +48 -0
- package/dist/engine/dashboard/server.js.map +1 -1
- package/dist/engine/dashboard/spec-updater.d.ts +8 -0
- package/dist/engine/dashboard/spec-updater.d.ts.map +1 -0
- package/dist/engine/dashboard/spec-updater.js +37 -0
- package/dist/engine/dashboard/spec-updater.js.map +1 -0
- package/dist/engine/dashboard/templates-kanban.d.ts +6 -0
- package/dist/engine/dashboard/templates-kanban.d.ts.map +1 -0
- package/dist/engine/dashboard/templates-kanban.js +100 -0
- package/dist/engine/dashboard/templates-kanban.js.map +1 -0
- package/dist/engine/dashboard/templates-layout.d.ts +3 -3
- package/dist/engine/dashboard/templates-layout.d.ts.map +1 -1
- package/dist/engine/dashboard/templates-layout.js +167 -44
- package/dist/engine/dashboard/templates-layout.js.map +1 -1
- package/dist/engine/dashboard/templates-project.d.ts +1 -1
- package/dist/engine/dashboard/templates-project.d.ts.map +1 -1
- package/dist/engine/dashboard/templates-project.js +109 -3
- package/dist/engine/dashboard/templates-project.js.map +1 -1
- package/dist/engine/dashboard/templates.d.ts +1 -0
- package/dist/engine/dashboard/templates.d.ts.map +1 -1
- package/dist/engine/dashboard/templates.js +1 -0
- package/dist/engine/dashboard/templates.js.map +1 -1
- package/dist/engine/hooks/config-loader.d.ts +36 -0
- package/dist/engine/hooks/config-loader.d.ts.map +1 -0
- package/dist/engine/hooks/config-loader.js +142 -0
- package/dist/engine/hooks/config-loader.js.map +1 -0
- package/dist/engine/hooks/debouncer.d.ts +30 -0
- package/dist/engine/hooks/debouncer.d.ts.map +1 -0
- package/dist/engine/hooks/debouncer.js +124 -0
- package/dist/engine/hooks/debouncer.js.map +1 -0
- package/dist/engine/hooks/event-bus.d.ts +40 -0
- package/dist/engine/hooks/event-bus.d.ts.map +1 -0
- package/dist/engine/hooks/event-bus.js +83 -0
- package/dist/engine/hooks/event-bus.js.map +1 -0
- package/dist/engine/hooks/file-watcher.d.ts +48 -0
- package/dist/engine/hooks/file-watcher.d.ts.map +1 -0
- package/dist/engine/hooks/file-watcher.js +193 -0
- package/dist/engine/hooks/file-watcher.js.map +1 -0
- package/dist/engine/hooks/handlers/on-commit.d.ts +26 -0
- package/dist/engine/hooks/handlers/on-commit.d.ts.map +1 -0
- package/dist/engine/hooks/handlers/on-commit.js +198 -0
- package/dist/engine/hooks/handlers/on-commit.js.map +1 -0
- package/dist/engine/hooks/handlers/on-create.d.ts +8 -0
- package/dist/engine/hooks/handlers/on-create.d.ts.map +1 -0
- package/dist/engine/hooks/handlers/on-create.js +30 -0
- package/dist/engine/hooks/handlers/on-create.js.map +1 -0
- package/dist/engine/hooks/handlers/on-delete.d.ts +9 -0
- package/dist/engine/hooks/handlers/on-delete.d.ts.map +1 -0
- package/dist/engine/hooks/handlers/on-delete.js +33 -0
- package/dist/engine/hooks/handlers/on-delete.js.map +1 -0
- package/dist/engine/hooks/handlers/on-save.d.ts +29 -0
- package/dist/engine/hooks/handlers/on-save.d.ts.map +1 -0
- package/dist/engine/hooks/handlers/on-save.js +118 -0
- package/dist/engine/hooks/handlers/on-save.js.map +1 -0
- package/dist/engine/hooks/handlers/on-test-pass.d.ts +33 -0
- package/dist/engine/hooks/handlers/on-test-pass.d.ts.map +1 -0
- package/dist/engine/hooks/handlers/on-test-pass.js +103 -0
- package/dist/engine/hooks/handlers/on-test-pass.js.map +1 -0
- package/dist/engine/hooks/hook-engine.d.ts +50 -0
- package/dist/engine/hooks/hook-engine.d.ts.map +1 -0
- package/dist/engine/hooks/hook-engine.js +159 -0
- package/dist/engine/hooks/hook-engine.js.map +1 -0
- package/dist/engine/hooks/index.d.ts +10 -0
- package/dist/engine/hooks/index.d.ts.map +1 -1
- package/dist/engine/hooks/index.js +12 -0
- package/dist/engine/hooks/index.js.map +1 -1
- package/dist/engine/living-spec/annotation-parser.d.ts +18 -0
- package/dist/engine/living-spec/annotation-parser.d.ts.map +1 -0
- package/dist/engine/living-spec/annotation-parser.js +105 -0
- package/dist/engine/living-spec/annotation-parser.js.map +1 -0
- package/dist/engine/living-spec/auto-reconciler.d.ts +28 -0
- package/dist/engine/living-spec/auto-reconciler.d.ts.map +1 -0
- package/dist/engine/living-spec/auto-reconciler.js +103 -0
- package/dist/engine/living-spec/auto-reconciler.js.map +1 -0
- package/dist/engine/living-spec/bidirectional-sync.d.ts +26 -0
- package/dist/engine/living-spec/bidirectional-sync.d.ts.map +1 -0
- package/dist/engine/living-spec/bidirectional-sync.js +160 -0
- package/dist/engine/living-spec/bidirectional-sync.js.map +1 -0
- package/dist/engine/living-spec/dashboard-collector.d.ts +22 -0
- package/dist/engine/living-spec/dashboard-collector.d.ts.map +1 -0
- package/dist/engine/living-spec/dashboard-collector.js +97 -0
- package/dist/engine/living-spec/dashboard-collector.js.map +1 -0
- package/dist/engine/living-spec/drift-watcher.d.ts +15 -0
- package/dist/engine/living-spec/drift-watcher.d.ts.map +1 -0
- package/dist/engine/living-spec/drift-watcher.js +126 -0
- package/dist/engine/living-spec/drift-watcher.js.map +1 -0
- package/dist/engine/living-spec/hash-tracker.d.ts +24 -0
- package/dist/engine/living-spec/hash-tracker.d.ts.map +1 -0
- package/dist/engine/living-spec/hash-tracker.js +123 -0
- package/dist/engine/living-spec/hash-tracker.js.map +1 -0
- package/dist/engine/living-spec/index.d.ts +9 -0
- package/dist/engine/living-spec/index.d.ts.map +1 -0
- package/dist/engine/living-spec/index.js +10 -0
- package/dist/engine/living-spec/index.js.map +1 -0
- package/dist/engine/living-spec/signature-tracker.d.ts +18 -0
- package/dist/engine/living-spec/signature-tracker.d.ts.map +1 -0
- package/dist/engine/living-spec/signature-tracker.js +136 -0
- package/dist/engine/living-spec/signature-tracker.js.map +1 -0
- package/dist/engine/living-spec/test-coverage-correlator.d.ts +22 -0
- package/dist/engine/living-spec/test-coverage-correlator.d.ts.map +1 -0
- package/dist/engine/living-spec/test-coverage-correlator.js +130 -0
- package/dist/engine/living-spec/test-coverage-correlator.js.map +1 -0
- package/dist/engine/plugins/extensions/worker-extension.d.ts.map +1 -1
- package/dist/engine/plugins/extensions/worker-extension.js +3 -1
- package/dist/engine/plugins/extensions/worker-extension.js.map +1 -1
- package/dist/engine/safety/file-mutex.d.ts.map +1 -1
- package/dist/engine/safety/file-mutex.js +3 -0
- package/dist/engine/safety/file-mutex.js.map +1 -1
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -1
- package/dist/storage/hash-snapshot-store.d.ts +18 -0
- package/dist/storage/hash-snapshot-store.d.ts.map +1 -0
- package/dist/storage/hash-snapshot-store.js +43 -0
- package/dist/storage/hash-snapshot-store.js.map +1 -0
- package/dist/storage/index.d.ts +3 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +3 -0
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/living-dashboard-store.d.ts +10 -0
- package/dist/storage/living-dashboard-store.d.ts.map +1 -0
- package/dist/storage/living-dashboard-store.js +31 -0
- package/dist/storage/living-dashboard-store.js.map +1 -0
- package/dist/storage/sync-log-store.d.ts +26 -0
- package/dist/storage/sync-log-store.d.ts.map +1 -0
- package/dist/storage/sync-log-store.js +60 -0
- package/dist/storage/sync-log-store.js.map +1 -0
- package/dist/tools/auto-reconcile.d.ts +3 -0
- package/dist/tools/auto-reconcile.d.ts.map +1 -0
- package/dist/tools/auto-reconcile.js +81 -0
- package/dist/tools/auto-reconcile.js.map +1 -0
- package/dist/tools/challenge-spec/platform-challenge-scenarios-b2.d.ts.map +1 -1
- package/dist/tools/challenge-spec/platform-challenge-scenarios-b2.js +6 -0
- package/dist/tools/challenge-spec/platform-challenge-scenarios-b2.js.map +1 -1
- package/dist/tools/create-spec/spec-builder.js +2 -0
- package/dist/tools/create-spec/spec-builder.js.map +1 -1
- package/dist/tools/dashboard.d.ts.map +1 -1
- package/dist/tools/dashboard.js +20 -13
- package/dist/tools/dashboard.js.map +1 -1
- package/dist/tools/generate-annotations.d.ts +3 -0
- package/dist/tools/generate-annotations.d.ts.map +1 -0
- package/dist/tools/generate-annotations.js +70 -0
- package/dist/tools/generate-annotations.js.map +1 -0
- package/dist/tools/generate-execution-plan.d.ts.map +1 -1
- package/dist/tools/generate-execution-plan.js +1 -0
- package/dist/tools/generate-execution-plan.js.map +1 -1
- package/dist/tools/github-pr-handler.d.ts.map +1 -1
- package/dist/tools/github-pr-handler.js +1 -0
- package/dist/tools/github-pr-handler.js.map +1 -1
- package/dist/tools/github-review-handler.d.ts.map +1 -1
- package/dist/tools/github-review-handler.js +1 -0
- package/dist/tools/github-review-handler.js.map +1 -1
- package/dist/tools/ide-config-handler.d.ts.map +1 -1
- package/dist/tools/ide-config-handler.js +3 -0
- package/dist/tools/ide-config-handler.js.map +1 -1
- package/dist/tools/init-project/handler.d.ts.map +1 -1
- package/dist/tools/init-project/handler.js +0 -3
- package/dist/tools/init-project/handler.js.map +1 -1
- package/dist/tools/living-spec-coverage.d.ts +3 -0
- package/dist/tools/living-spec-coverage.d.ts.map +1 -0
- package/dist/tools/living-spec-coverage.js +100 -0
- package/dist/tools/living-spec-coverage.js.map +1 -0
- package/dist/tools/living-spec-watch.d.ts +4 -0
- package/dist/tools/living-spec-watch.d.ts.map +1 -0
- package/dist/tools/living-spec-watch.js +94 -0
- package/dist/tools/living-spec-watch.js.map +1 -0
- package/dist/tools/manage-plugins-handler.d.ts.map +1 -1
- package/dist/tools/manage-plugins-handler.js +2 -1
- package/dist/tools/manage-plugins-handler.js.map +1 -1
- package/dist/tools/orchestrate-distribution.d.ts.map +1 -1
- package/dist/tools/orchestrate-distribution.js +1 -0
- package/dist/tools/orchestrate-distribution.js.map +1 -1
- package/dist/tools/orchestrate-runtime.js +2 -0
- package/dist/tools/orchestrate-runtime.js.map +1 -1
- package/dist/tools/plan-team-distribution.d.ts.map +1 -1
- package/dist/tools/plan-team-distribution.js +2 -0
- package/dist/tools/plan-team-distribution.js.map +1 -1
- package/dist/tools/register-dashboard-tools.d.ts.map +1 -1
- package/dist/tools/register-dashboard-tools.js +5 -1
- package/dist/tools/register-dashboard-tools.js.map +1 -1
- package/dist/tools/register-hooks-tools.d.ts.map +1 -1
- package/dist/tools/register-hooks-tools.js +82 -1
- package/dist/tools/register-hooks-tools.js.map +1 -1
- package/dist/tools/register-living-spec-advanced-tools.d.ts +6 -0
- package/dist/tools/register-living-spec-advanced-tools.d.ts.map +1 -0
- package/dist/tools/register-living-spec-advanced-tools.js +113 -0
- package/dist/tools/register-living-spec-advanced-tools.js.map +1 -0
- package/dist/tools/register-living-spec-tools.d.ts +6 -0
- package/dist/tools/register-living-spec-tools.d.ts.map +1 -0
- package/dist/tools/register-living-spec-tools.js +67 -0
- package/dist/tools/register-living-spec-tools.js.map +1 -0
- package/dist/tools/resolve-sync-conflict.d.ts +3 -0
- package/dist/tools/resolve-sync-conflict.d.ts.map +1 -0
- package/dist/tools/resolve-sync-conflict.js +38 -0
- package/dist/tools/resolve-sync-conflict.js.map +1 -0
- package/dist/tools/snapshot-spec-hashes.d.ts +3 -0
- package/dist/tools/snapshot-spec-hashes.d.ts.map +1 -0
- package/dist/tools/snapshot-spec-hashes.js +100 -0
- package/dist/tools/snapshot-spec-hashes.js.map +1 -0
- package/dist/tools/spec-diff.d.ts +3 -0
- package/dist/tools/spec-diff.d.ts.map +1 -0
- package/dist/tools/spec-diff.js +58 -0
- package/dist/tools/spec-diff.js.map +1 -0
- package/dist/tools/start-hooks.d.ts +17 -0
- package/dist/tools/start-hooks.d.ts.map +1 -0
- package/dist/tools/start-hooks.js +209 -0
- package/dist/tools/start-hooks.js.map +1 -0
- package/dist/tools/sync-code-to-spec.d.ts +3 -0
- package/dist/tools/sync-code-to-spec.d.ts.map +1 -0
- package/dist/tools/sync-code-to-spec.js +51 -0
- package/dist/tools/sync-code-to-spec.js.map +1 -0
- package/dist/tools/sync-spec-to-code.d.ts +3 -0
- package/dist/tools/sync-spec-to-code.d.ts.map +1 -0
- package/dist/tools/sync-spec-to-code.js +58 -0
- package/dist/tools/sync-spec-to-code.js.map +1 -0
- package/dist/tools/validate-annotations.d.ts +3 -0
- package/dist/tools/validate-annotations.d.ts.map +1 -0
- package/dist/tools/validate-annotations.js +90 -0
- package/dist/tools/validate-annotations.js.map +1 -0
- package/dist/types/cli.d.ts +14 -0
- package/dist/types/cli.d.ts.map +1 -0
- package/dist/types/cli.js +3 -0
- package/dist/types/cli.js.map +1 -0
- package/dist/types/dashboard.d.ts +86 -1
- package/dist/types/dashboard.d.ts.map +1 -1
- package/dist/types/file-hooks.d.ts +230 -0
- package/dist/types/file-hooks.d.ts.map +1 -0
- package/dist/types/file-hooks.js +3 -0
- package/dist/types/file-hooks.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/living-spec.d.ts +382 -0
- package/dist/types/living-spec.d.ts.map +1 -0
- package/dist/types/living-spec.js +3 -0
- package/dist/types/living-spec.js.map +1 -0
- package/package.json +1 -1
- package/src/config/hook-defaults.json +19 -0
- package/src/config/license-plans.json +16 -1
- package/src/config/tool-groups.json +12 -1
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
/** A single @spec annotation extracted from source code. */
|
|
2
|
+
export interface SpecAnnotation {
|
|
3
|
+
/** Spec ID referenced (e.g., "SPEC-120"). */
|
|
4
|
+
specId: string;
|
|
5
|
+
/** Acceptance criteria numbers (e.g., [1, 3, 5] from "AC-1,AC-3,AC-5"). */
|
|
6
|
+
criteria: number[];
|
|
7
|
+
/** Optional description after the dash. */
|
|
8
|
+
description: string;
|
|
9
|
+
/** File where the annotation was found. */
|
|
10
|
+
file: string;
|
|
11
|
+
/** Line number (1-based). */
|
|
12
|
+
line: number;
|
|
13
|
+
/** Raw annotation text as written in the source. */
|
|
14
|
+
raw: string;
|
|
15
|
+
}
|
|
16
|
+
/** Result of parsing all @spec annotations from a set of files. */
|
|
17
|
+
export interface AnnotationParseResult {
|
|
18
|
+
annotations: SpecAnnotation[];
|
|
19
|
+
fileCount: number;
|
|
20
|
+
annotatedFileCount: number;
|
|
21
|
+
}
|
|
22
|
+
/** Result of validating annotations against stored specs. */
|
|
23
|
+
export interface AnnotationValidationResult {
|
|
24
|
+
valid: AnnotationValidationEntry[];
|
|
25
|
+
invalid: AnnotationValidationEntry[];
|
|
26
|
+
totalAnnotations: number;
|
|
27
|
+
validCount: number;
|
|
28
|
+
invalidCount: number;
|
|
29
|
+
}
|
|
30
|
+
/** A single annotation validation entry. */
|
|
31
|
+
export interface AnnotationValidationEntry {
|
|
32
|
+
annotation: SpecAnnotation;
|
|
33
|
+
reason: string;
|
|
34
|
+
}
|
|
35
|
+
/** Suggestion for annotating a file that lacks annotations. */
|
|
36
|
+
export interface AnnotationSuggestion {
|
|
37
|
+
file: string;
|
|
38
|
+
suggestedAnnotation: string;
|
|
39
|
+
reason: string;
|
|
40
|
+
confidence: 'high' | 'medium' | 'low';
|
|
41
|
+
}
|
|
42
|
+
/** SHA-256 hash snapshot of a file. */
|
|
43
|
+
export interface FileHashEntry {
|
|
44
|
+
file: string;
|
|
45
|
+
hash: string;
|
|
46
|
+
/** Size in bytes. */
|
|
47
|
+
size: number;
|
|
48
|
+
/** ISO timestamp of last snapshot. */
|
|
49
|
+
snapshotAt: string;
|
|
50
|
+
}
|
|
51
|
+
/** Exported function signature tracked for drift detection. */
|
|
52
|
+
export interface FunctionSignature {
|
|
53
|
+
name: string;
|
|
54
|
+
params: string;
|
|
55
|
+
returnType: string;
|
|
56
|
+
file: string;
|
|
57
|
+
line: number;
|
|
58
|
+
}
|
|
59
|
+
/** A complete hash snapshot for a spec, including file hashes and function signatures. */
|
|
60
|
+
export interface SpecHashSnapshot {
|
|
61
|
+
specId: string;
|
|
62
|
+
createdAt: string;
|
|
63
|
+
files: FileHashEntry[];
|
|
64
|
+
signatures: FunctionSignature[];
|
|
65
|
+
}
|
|
66
|
+
/** Change classification for function signatures. */
|
|
67
|
+
export type SignatureChangeType = 'added' | 'modified' | 'removed';
|
|
68
|
+
/** A single signature change between two snapshots. */
|
|
69
|
+
export interface SignatureChange {
|
|
70
|
+
name: string;
|
|
71
|
+
file: string;
|
|
72
|
+
changeType: SignatureChangeType;
|
|
73
|
+
/** Previous signature string (empty for 'added'). */
|
|
74
|
+
before: string;
|
|
75
|
+
/** Current signature string (empty for 'removed'). */
|
|
76
|
+
after: string;
|
|
77
|
+
}
|
|
78
|
+
/** File hash diff between two snapshots. */
|
|
79
|
+
export interface FileHashDiff {
|
|
80
|
+
file: string;
|
|
81
|
+
/** Previous hash (empty for new files). */
|
|
82
|
+
previousHash: string;
|
|
83
|
+
/** Current hash (empty for deleted files). */
|
|
84
|
+
currentHash: string;
|
|
85
|
+
/** Criteria linked to this file via annotations. */
|
|
86
|
+
linkedCriteria: number[];
|
|
87
|
+
}
|
|
88
|
+
/** Report of hash and signature changes for a spec. */
|
|
89
|
+
export interface HashDiffReport {
|
|
90
|
+
specId: string;
|
|
91
|
+
changedFiles: FileHashDiff[];
|
|
92
|
+
signatureChanges: SignatureChange[];
|
|
93
|
+
unchangedFileCount: number;
|
|
94
|
+
comparedAt: string;
|
|
95
|
+
}
|
|
96
|
+
/** Extended criterion status that includes annotation-based statuses. */
|
|
97
|
+
export type AnnotatedCriterionStatus = 'met' | 'pending' | 'drift' | 'regression' | 'untracked';
|
|
98
|
+
/** Extended drift report fields for annotation-based mode. */
|
|
99
|
+
export interface AnnotationDriftInfo {
|
|
100
|
+
annotationCoverage: number;
|
|
101
|
+
annotatedCriteria: number;
|
|
102
|
+
totalCriteria: number;
|
|
103
|
+
regressions: string[];
|
|
104
|
+
untrackedCriteria: string[];
|
|
105
|
+
}
|
|
106
|
+
/** Entry in the auto-reconciliation log. */
|
|
107
|
+
export interface ReconcileLogEntry {
|
|
108
|
+
timestamp: string;
|
|
109
|
+
changeType: 'completion-update' | 'status-flip' | 'hash-update' | 'timestamp-update';
|
|
110
|
+
specId: string;
|
|
111
|
+
description: string;
|
|
112
|
+
previousValue: string;
|
|
113
|
+
newValue: string;
|
|
114
|
+
}
|
|
115
|
+
/** Classification of reconciliation changes. */
|
|
116
|
+
export type ReconcileChangeClass = 'safe' | 'unsafe';
|
|
117
|
+
/** Input for the validate_annotations tool. */
|
|
118
|
+
export interface ValidateAnnotationsInput {
|
|
119
|
+
projectId: string;
|
|
120
|
+
projectPath: string;
|
|
121
|
+
specId?: string;
|
|
122
|
+
}
|
|
123
|
+
/** Input for the generate_annotations tool. */
|
|
124
|
+
export interface GenerateAnnotationsInput {
|
|
125
|
+
projectId: string;
|
|
126
|
+
projectPath: string;
|
|
127
|
+
specId: string;
|
|
128
|
+
}
|
|
129
|
+
/** Input for the snapshot_spec_hashes tool. */
|
|
130
|
+
export interface SnapshotSpecHashesInput {
|
|
131
|
+
projectId: string;
|
|
132
|
+
specId: string;
|
|
133
|
+
}
|
|
134
|
+
/** Input for the auto_reconcile tool. */
|
|
135
|
+
export interface AutoReconcileInput {
|
|
136
|
+
projectId: string;
|
|
137
|
+
specId?: string;
|
|
138
|
+
changedFiles?: string[];
|
|
139
|
+
}
|
|
140
|
+
/** Result of auto-reconciliation. */
|
|
141
|
+
export interface AutoReconcileResult {
|
|
142
|
+
specId: string;
|
|
143
|
+
appliedChanges: ReconcileLogEntry[];
|
|
144
|
+
skippedUnsafe: string[];
|
|
145
|
+
rateLimited: boolean;
|
|
146
|
+
reconciledAt: string;
|
|
147
|
+
}
|
|
148
|
+
/** Options for creating a drift watcher. */
|
|
149
|
+
export interface DriftWatcherOptions {
|
|
150
|
+
/** TTL in seconds for cached drift entries. Default 60. */
|
|
151
|
+
ttlSeconds?: number;
|
|
152
|
+
/** Glob patterns to exclude from watching. */
|
|
153
|
+
excludePatterns?: string[];
|
|
154
|
+
/** Project ID to watch. */
|
|
155
|
+
projectId: string;
|
|
156
|
+
}
|
|
157
|
+
/** In-memory state of the drift watcher. */
|
|
158
|
+
export interface DriftWatcherState {
|
|
159
|
+
/** Whether the watcher is currently running. */
|
|
160
|
+
running: boolean;
|
|
161
|
+
/** ISO timestamp when the watcher was started. */
|
|
162
|
+
startedAt: string | null;
|
|
163
|
+
/** Number of cached entries. */
|
|
164
|
+
cacheSize: number;
|
|
165
|
+
/** Project ID being watched. */
|
|
166
|
+
projectId: string;
|
|
167
|
+
}
|
|
168
|
+
/** A single cached drift entry. */
|
|
169
|
+
export interface DriftCacheEntry {
|
|
170
|
+
/** Spec ID this entry is for. */
|
|
171
|
+
specId: string;
|
|
172
|
+
/** Cached drift report data. */
|
|
173
|
+
data: HashDiffReport;
|
|
174
|
+
/** ISO timestamp when the entry was cached. */
|
|
175
|
+
cachedAt: string;
|
|
176
|
+
/** ISO timestamp when the entry expires. */
|
|
177
|
+
expiresAt: string;
|
|
178
|
+
}
|
|
179
|
+
/** Drift watcher instance interface. */
|
|
180
|
+
export interface DriftWatcherInstance {
|
|
181
|
+
start: () => void;
|
|
182
|
+
stop: () => void;
|
|
183
|
+
status: () => DriftWatcherState;
|
|
184
|
+
invalidate: (specId?: string) => void;
|
|
185
|
+
getCachedDrift: (specId: string) => DriftCacheEntry | null;
|
|
186
|
+
setCachedDrift: (specId: string, data: HashDiffReport) => void;
|
|
187
|
+
}
|
|
188
|
+
/** Minimal spec shape needed for dashboard collection. */
|
|
189
|
+
export interface DashboardSpecInput {
|
|
190
|
+
id: string;
|
|
191
|
+
status: string;
|
|
192
|
+
completion: number;
|
|
193
|
+
}
|
|
194
|
+
/** A single spec entry for the living dashboard. */
|
|
195
|
+
export interface DashboardSpecEntry {
|
|
196
|
+
specId: string;
|
|
197
|
+
status: string;
|
|
198
|
+
completion: number;
|
|
199
|
+
driftDetected: boolean;
|
|
200
|
+
changedFileCount: number;
|
|
201
|
+
signatureChangeCount: number;
|
|
202
|
+
lastCheckedAt: string;
|
|
203
|
+
}
|
|
204
|
+
/** Summary statistics for the dashboard. */
|
|
205
|
+
export interface DashboardSummary {
|
|
206
|
+
totalSpecs: number;
|
|
207
|
+
specsWithDrift: number;
|
|
208
|
+
averageCompletion: number;
|
|
209
|
+
healthScore: number;
|
|
210
|
+
generatedAt: string;
|
|
211
|
+
}
|
|
212
|
+
/** A single trend data point. */
|
|
213
|
+
export interface DashboardTrendPoint {
|
|
214
|
+
timestamp: string;
|
|
215
|
+
specsWithDrift: number;
|
|
216
|
+
averageCompletion: number;
|
|
217
|
+
healthScore: number;
|
|
218
|
+
}
|
|
219
|
+
/** A row in the spec diff table. */
|
|
220
|
+
export interface SpecDiffRow {
|
|
221
|
+
specId: string;
|
|
222
|
+
file: string;
|
|
223
|
+
previousHash: string;
|
|
224
|
+
currentHash: string;
|
|
225
|
+
status: 'added' | 'modified' | 'removed';
|
|
226
|
+
}
|
|
227
|
+
/** Status of a criterion's test coverage. */
|
|
228
|
+
export type CriterionCoverageStatus = 'verified' | 'regression' | 'untested';
|
|
229
|
+
/** Coverage information for a group of annotations. */
|
|
230
|
+
export interface AnnotationCoverageGroup {
|
|
231
|
+
specId: string;
|
|
232
|
+
criterion: number;
|
|
233
|
+
status: CriterionCoverageStatus;
|
|
234
|
+
testCount: number;
|
|
235
|
+
passCount: number;
|
|
236
|
+
failCount: number;
|
|
237
|
+
files: string[];
|
|
238
|
+
}
|
|
239
|
+
/** Full test coverage report correlated with specs (living-spec). */
|
|
240
|
+
export interface LivingSpecCoverageReport {
|
|
241
|
+
projectId: string;
|
|
242
|
+
groups: AnnotationCoverageGroup[];
|
|
243
|
+
totalTests: number;
|
|
244
|
+
passedTests: number;
|
|
245
|
+
failedTests: number;
|
|
246
|
+
coveragePercentage: number;
|
|
247
|
+
generatedAt: string;
|
|
248
|
+
}
|
|
249
|
+
/** Minimal shape of a Vitest JSON test result. */
|
|
250
|
+
export interface VitestTestResult {
|
|
251
|
+
name: string;
|
|
252
|
+
status: 'passed' | 'failed' | 'skipped' | 'pending';
|
|
253
|
+
duration?: number;
|
|
254
|
+
}
|
|
255
|
+
/** Minimal shape of a Vitest JSON test file. */
|
|
256
|
+
export interface VitestFileResult {
|
|
257
|
+
filepath: string;
|
|
258
|
+
tests: VitestTestResult[];
|
|
259
|
+
}
|
|
260
|
+
/** Minimal shape of the full Vitest JSON report. */
|
|
261
|
+
export interface VitestJsonReport {
|
|
262
|
+
testResults: VitestFileResult[];
|
|
263
|
+
}
|
|
264
|
+
/** A single test case from JUnit XML. */
|
|
265
|
+
export interface JUnitTestCase {
|
|
266
|
+
name: string;
|
|
267
|
+
classname: string;
|
|
268
|
+
file: string;
|
|
269
|
+
passed: boolean;
|
|
270
|
+
}
|
|
271
|
+
/** A normalized test result for grouping. */
|
|
272
|
+
export interface NormalizedTestResult {
|
|
273
|
+
name: string;
|
|
274
|
+
file: string;
|
|
275
|
+
passed: boolean;
|
|
276
|
+
}
|
|
277
|
+
/** Direction of synchronization. */
|
|
278
|
+
export type SyncDirection = 'spec-to-code' | 'code-to-spec';
|
|
279
|
+
/** Criterion info for TODO generation. */
|
|
280
|
+
export interface CriterionInfo {
|
|
281
|
+
specId: string;
|
|
282
|
+
criterion: number;
|
|
283
|
+
description: string;
|
|
284
|
+
status: string;
|
|
285
|
+
}
|
|
286
|
+
/** A TODO comment to be generated in code. */
|
|
287
|
+
export interface TodoComment {
|
|
288
|
+
file: string;
|
|
289
|
+
line: number;
|
|
290
|
+
text: string;
|
|
291
|
+
specId: string;
|
|
292
|
+
criterion: number;
|
|
293
|
+
}
|
|
294
|
+
/** A progress update to apply to a spec. */
|
|
295
|
+
export interface ProgressUpdate {
|
|
296
|
+
specId: string;
|
|
297
|
+
criterion: number;
|
|
298
|
+
previousStatus: string;
|
|
299
|
+
newStatus: string;
|
|
300
|
+
reason: string;
|
|
301
|
+
}
|
|
302
|
+
/** A conflict detected during sync. */
|
|
303
|
+
export interface SyncConflict {
|
|
304
|
+
id: string;
|
|
305
|
+
specId: string;
|
|
306
|
+
criterion: number;
|
|
307
|
+
direction: SyncDirection;
|
|
308
|
+
description: string;
|
|
309
|
+
codeState: string;
|
|
310
|
+
specState: string;
|
|
311
|
+
detectedAt: string;
|
|
312
|
+
resolved: boolean;
|
|
313
|
+
resolution?: string;
|
|
314
|
+
}
|
|
315
|
+
/** An entry in the sync log. */
|
|
316
|
+
export interface SyncLogEntry {
|
|
317
|
+
timestamp: string;
|
|
318
|
+
direction: SyncDirection;
|
|
319
|
+
specId: string;
|
|
320
|
+
action: string;
|
|
321
|
+
details: string;
|
|
322
|
+
}
|
|
323
|
+
/** Result of a sync operation. */
|
|
324
|
+
export interface SyncResult {
|
|
325
|
+
direction: SyncDirection;
|
|
326
|
+
specId: string;
|
|
327
|
+
todosGenerated: TodoComment[];
|
|
328
|
+
progressUpdates: ProgressUpdate[];
|
|
329
|
+
conflicts: SyncConflict[];
|
|
330
|
+
logEntries: SyncLogEntry[];
|
|
331
|
+
syncedAt: string;
|
|
332
|
+
}
|
|
333
|
+
/** Input for the living_spec_watch tool. */
|
|
334
|
+
export interface LivingSpecWatchInput {
|
|
335
|
+
projectId: string;
|
|
336
|
+
action: 'start' | 'stop' | 'status';
|
|
337
|
+
ttlSeconds?: number;
|
|
338
|
+
excludePatterns?: string[];
|
|
339
|
+
}
|
|
340
|
+
/** Input for the living_spec_status tool. */
|
|
341
|
+
export interface LivingSpecStatusInput {
|
|
342
|
+
projectId: string;
|
|
343
|
+
specId?: string;
|
|
344
|
+
}
|
|
345
|
+
/** Input for the spec_diff tool. */
|
|
346
|
+
export interface SpecDiffInput {
|
|
347
|
+
projectId: string;
|
|
348
|
+
specId?: string;
|
|
349
|
+
}
|
|
350
|
+
/** Input for the living_spec_coverage tool. */
|
|
351
|
+
export interface LivingSpecCoverageInput {
|
|
352
|
+
projectId: string;
|
|
353
|
+
coverageJsonPath?: string;
|
|
354
|
+
junitXmlPath?: string;
|
|
355
|
+
}
|
|
356
|
+
/** Input for the sync_spec_to_code tool. */
|
|
357
|
+
export interface SyncSpecToCodeInput {
|
|
358
|
+
projectId: string;
|
|
359
|
+
specId: string;
|
|
360
|
+
projectPath: string;
|
|
361
|
+
}
|
|
362
|
+
/** Input for the sync_code_to_spec tool. */
|
|
363
|
+
export interface SyncCodeToSpecInput {
|
|
364
|
+
projectId: string;
|
|
365
|
+
specId: string;
|
|
366
|
+
projectPath: string;
|
|
367
|
+
}
|
|
368
|
+
/** Input for the resolve_sync_conflict tool. */
|
|
369
|
+
export interface ResolveSyncConflictInput {
|
|
370
|
+
projectId: string;
|
|
371
|
+
conflictId: string;
|
|
372
|
+
resolution: 'accept-code' | 'accept-spec' | 'manual';
|
|
373
|
+
manualResolution?: string;
|
|
374
|
+
}
|
|
375
|
+
/** Dashboard data persisted to disk. */
|
|
376
|
+
export interface LivingDashboardData {
|
|
377
|
+
entries: DashboardSpecEntry[];
|
|
378
|
+
summary: DashboardSummary;
|
|
379
|
+
trends: DashboardTrendPoint[];
|
|
380
|
+
updatedAt: string;
|
|
381
|
+
}
|
|
382
|
+
//# sourceMappingURL=living-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"living-spec.d.ts","sourceRoot":"","sources":["../../src/types/living-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"living-spec.js","sourceRoot":"","sources":["../../src/types/living-spec.ts"],"names":[],"mappings":"AAAA,8EAA8E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planu/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.44.0",
|
|
4
4
|
"description": "Planu — MCP Server for Spec Driven Development. Manages specs, estimations, reverse engineering, and auto-learning across any language/framework.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"enabled": true,
|
|
3
|
+
"debounceMs": 300,
|
|
4
|
+
"rateLimitPerFileMs": 5000,
|
|
5
|
+
"hooks": {
|
|
6
|
+
"on-save": {
|
|
7
|
+
"enabled": true,
|
|
8
|
+
"include": ["src/**/*.ts"],
|
|
9
|
+
"exclude": ["**/*.test.ts"]
|
|
10
|
+
},
|
|
11
|
+
"on-create": {
|
|
12
|
+
"enabled": true,
|
|
13
|
+
"include": ["src/**/*.ts"]
|
|
14
|
+
},
|
|
15
|
+
"on-delete": {
|
|
16
|
+
"enabled": true
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -96,6 +96,10 @@
|
|
|
96
96
|
"estimate_ai_cost",
|
|
97
97
|
"generate_ci",
|
|
98
98
|
"manage_hooks",
|
|
99
|
+
"start_hooks",
|
|
100
|
+
"stop_hooks",
|
|
101
|
+
"hook_status",
|
|
102
|
+
"configure_hooks",
|
|
99
103
|
"apply_template",
|
|
100
104
|
"check_spec_accuracy",
|
|
101
105
|
"update_registry",
|
|
@@ -125,7 +129,18 @@
|
|
|
125
129
|
"audit_claude_config",
|
|
126
130
|
"generate_docs_site",
|
|
127
131
|
"export_spec",
|
|
128
|
-
"analyze_spec_dependencies"
|
|
132
|
+
"analyze_spec_dependencies",
|
|
133
|
+
"validate_annotations",
|
|
134
|
+
"generate_annotations",
|
|
135
|
+
"snapshot_spec_hashes",
|
|
136
|
+
"auto_reconcile",
|
|
137
|
+
"living_spec_watch",
|
|
138
|
+
"living_spec_status",
|
|
139
|
+
"spec_diff",
|
|
140
|
+
"living_spec_coverage",
|
|
141
|
+
"sync_spec_to_code",
|
|
142
|
+
"sync_code_to_spec",
|
|
143
|
+
"resolve_sync_conflict"
|
|
129
144
|
],
|
|
130
145
|
"alwaysAllowed": [
|
|
131
146
|
"activate_license",
|
|
@@ -45,7 +45,18 @@
|
|
|
45
45
|
"reality_check",
|
|
46
46
|
"check_spec_accuracy",
|
|
47
47
|
"paradigm_report",
|
|
48
|
-
"spec_coverage"
|
|
48
|
+
"spec_coverage",
|
|
49
|
+
"validate_annotations",
|
|
50
|
+
"generate_annotations",
|
|
51
|
+
"snapshot_spec_hashes",
|
|
52
|
+
"auto_reconcile",
|
|
53
|
+
"living_spec_watch",
|
|
54
|
+
"living_spec_status",
|
|
55
|
+
"spec_diff",
|
|
56
|
+
"living_spec_coverage",
|
|
57
|
+
"sync_spec_to_code",
|
|
58
|
+
"sync_code_to_spec",
|
|
59
|
+
"resolve_sync_conflict"
|
|
49
60
|
],
|
|
50
61
|
"defaultEnabled": false,
|
|
51
62
|
"locked": false,
|