@planu/cli 0.63.6 → 0.64.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/config/license-plans.json +16 -1
- package/dist/engine/a2a/capability-card.d.ts +16 -0
- package/dist/engine/a2a/capability-card.d.ts.map +1 -0
- package/dist/engine/a2a/capability-card.js +69 -0
- package/dist/engine/a2a/capability-card.js.map +1 -0
- package/dist/engine/a2a/delegate.d.ts +15 -0
- package/dist/engine/a2a/delegate.d.ts.map +1 -0
- package/dist/engine/a2a/delegate.js +47 -0
- package/dist/engine/a2a/delegate.js.map +1 -0
- package/dist/engine/a2a/fallback.d.ts +12 -0
- package/dist/engine/a2a/fallback.d.ts.map +1 -0
- package/dist/engine/a2a/fallback.js +52 -0
- package/dist/engine/a2a/fallback.js.map +1 -0
- package/dist/engine/a2a/index.d.ts +5 -0
- package/dist/engine/a2a/index.d.ts.map +1 -0
- package/dist/engine/a2a/index.js +6 -0
- package/dist/engine/a2a/index.js.map +1 -0
- package/dist/engine/a2a/task-manager.d.ts +39 -0
- package/dist/engine/a2a/task-manager.d.ts.map +1 -0
- package/dist/engine/a2a/task-manager.js +84 -0
- package/dist/engine/a2a/task-manager.js.map +1 -0
- package/dist/engine/ac-gap-detector/analyze-gaps.d.ts +13 -0
- package/dist/engine/ac-gap-detector/analyze-gaps.d.ts.map +1 -0
- package/dist/engine/ac-gap-detector/analyze-gaps.js +43 -0
- package/dist/engine/ac-gap-detector/analyze-gaps.js.map +1 -0
- package/dist/engine/ac-gap-detector/constants.d.ts +22 -0
- package/dist/engine/ac-gap-detector/constants.d.ts.map +1 -0
- package/dist/engine/ac-gap-detector/constants.js +143 -0
- package/dist/engine/ac-gap-detector/constants.js.map +1 -0
- package/dist/engine/ac-gap-detector/gap-rules.d.ts +16 -0
- package/dist/engine/ac-gap-detector/gap-rules.d.ts.map +1 -0
- package/dist/engine/ac-gap-detector/gap-rules.js +180 -0
- package/dist/engine/ac-gap-detector/gap-rules.js.map +1 -0
- package/dist/engine/ac-gap-detector/pattern-matcher.d.ts +16 -0
- package/dist/engine/ac-gap-detector/pattern-matcher.d.ts.map +1 -0
- package/dist/engine/ac-gap-detector/pattern-matcher.js +62 -0
- package/dist/engine/ac-gap-detector/pattern-matcher.js.map +1 -0
- package/dist/engine/ac-gap-detector.d.ts +3 -0
- package/dist/engine/ac-gap-detector.d.ts.map +1 -0
- package/dist/engine/ac-gap-detector.js +5 -0
- package/dist/engine/ac-gap-detector.js.map +1 -0
- package/dist/engine/analyzer/analyze-project.js +1 -1
- package/dist/engine/analyzer/analyze-project.js.map +1 -1
- package/dist/engine/analyzer/completeness-checker.js +1 -1
- package/dist/engine/analyzer/completeness-checker.js.map +1 -1
- package/dist/engine/analyzer/detectors.js +2 -2
- package/dist/engine/analyzer/detectors.js.map +1 -1
- package/dist/engine/audit-trail/attestation.d.ts +11 -0
- package/dist/engine/audit-trail/attestation.d.ts.map +1 -0
- package/dist/engine/audit-trail/attestation.js +47 -0
- package/dist/engine/audit-trail/attestation.js.map +1 -0
- package/dist/engine/audit-trail/index.d.ts +6 -0
- package/dist/engine/audit-trail/index.d.ts.map +1 -0
- package/dist/engine/audit-trail/index.js +6 -0
- package/dist/engine/audit-trail/index.js.map +1 -0
- package/dist/engine/audit-trail/logger.d.ts +17 -0
- package/dist/engine/audit-trail/logger.d.ts.map +1 -0
- package/dist/engine/audit-trail/logger.js +78 -0
- package/dist/engine/audit-trail/logger.js.map +1 -0
- package/dist/engine/audit-trail/query.d.ts +7 -0
- package/dist/engine/audit-trail/query.d.ts.map +1 -0
- package/dist/engine/audit-trail/query.js +61 -0
- package/dist/engine/audit-trail/query.js.map +1 -0
- package/dist/engine/audit-trail/utils.d.ts +18 -0
- package/dist/engine/audit-trail/utils.d.ts.map +1 -0
- package/dist/engine/audit-trail/utils.js +44 -0
- package/dist/engine/audit-trail/utils.js.map +1 -0
- package/dist/engine/audit-trail/verifier.d.ts +10 -0
- package/dist/engine/audit-trail/verifier.d.ts.map +1 -0
- package/dist/engine/audit-trail/verifier.js +78 -0
- package/dist/engine/audit-trail/verifier.js.map +1 -0
- package/dist/engine/auth/config.d.ts +20 -0
- package/dist/engine/auth/config.d.ts.map +1 -0
- package/dist/engine/auth/config.js +49 -0
- package/dist/engine/auth/config.js.map +1 -0
- package/dist/engine/auth/index.d.ts +6 -0
- package/dist/engine/auth/index.d.ts.map +1 -0
- package/dist/engine/auth/index.js +7 -0
- package/dist/engine/auth/index.js.map +1 -0
- package/dist/engine/auth/middleware.d.ts +19 -0
- package/dist/engine/auth/middleware.d.ts.map +1 -0
- package/dist/engine/auth/middleware.js +64 -0
- package/dist/engine/auth/middleware.js.map +1 -0
- package/dist/engine/auth/pkce.d.ts +17 -0
- package/dist/engine/auth/pkce.d.ts.map +1 -0
- package/dist/engine/auth/pkce.js +33 -0
- package/dist/engine/auth/pkce.js.map +1 -0
- package/dist/engine/auth/scope-mapper.d.ts +21 -0
- package/dist/engine/auth/scope-mapper.d.ts.map +1 -0
- package/dist/engine/auth/scope-mapper.js +124 -0
- package/dist/engine/auth/scope-mapper.js.map +1 -0
- package/dist/engine/auth/token-validator.d.ts +15 -0
- package/dist/engine/auth/token-validator.d.ts.map +1 -0
- package/dist/engine/auth/token-validator.js +121 -0
- package/dist/engine/auth/token-validator.js.map +1 -0
- package/dist/engine/ci-generator/index.d.ts.map +1 -1
- package/dist/engine/ci-generator/index.js +8 -2
- package/dist/engine/ci-generator/index.js.map +1 -1
- package/dist/engine/ci-generator/yaml-builder.d.ts +7 -2
- package/dist/engine/ci-generator/yaml-builder.d.ts.map +1 -1
- package/dist/engine/ci-generator/yaml-builder.js +49 -1
- package/dist/engine/ci-generator/yaml-builder.js.map +1 -1
- package/dist/engine/code-transforms/typescript/ast-utils.js +1 -1
- package/dist/engine/code-transforms/typescript/ast-utils.js.map +1 -1
- package/dist/engine/design-to-spec/ac-generator.d.ts +21 -0
- package/dist/engine/design-to-spec/ac-generator.d.ts.map +1 -0
- package/dist/engine/design-to-spec/ac-generator.js +185 -0
- package/dist/engine/design-to-spec/ac-generator.js.map +1 -0
- package/dist/engine/design-to-spec/index.d.ts +11 -0
- package/dist/engine/design-to-spec/index.d.ts.map +1 -0
- package/dist/engine/design-to-spec/index.js +19 -0
- package/dist/engine/design-to-spec/index.js.map +1 -0
- package/dist/engine/design-to-spec/parser.d.ts +7 -0
- package/dist/engine/design-to-spec/parser.d.ts.map +1 -0
- package/dist/engine/design-to-spec/parser.js +290 -0
- package/dist/engine/design-to-spec/parser.js.map +1 -0
- package/dist/engine/design-to-spec/spec-builder.d.ts +12 -0
- package/dist/engine/design-to-spec/spec-builder.d.ts.map +1 -0
- package/dist/engine/design-to-spec/spec-builder.js +148 -0
- package/dist/engine/design-to-spec/spec-builder.js.map +1 -0
- package/dist/engine/design-to-spec/ui-contract-builder.d.ts +17 -0
- package/dist/engine/design-to-spec/ui-contract-builder.d.ts.map +1 -0
- package/dist/engine/design-to-spec/ui-contract-builder.js +175 -0
- package/dist/engine/design-to-spec/ui-contract-builder.js.map +1 -0
- package/dist/engine/detectors/css-framework-detector.js +9 -9
- package/dist/engine/detectors/css-framework-detector.js.map +1 -1
- package/dist/engine/detectors/mcp-server-detector.js +2 -2
- package/dist/engine/detectors/mcp-server-detector.js.map +1 -1
- package/dist/engine/docs-site-generator/markdown-renderer.js +1 -1
- package/dist/engine/docs-site-generator/markdown-renderer.js.map +1 -1
- package/dist/engine/elicitation/builder.d.ts +37 -0
- package/dist/engine/elicitation/builder.d.ts.map +1 -0
- package/dist/engine/elicitation/builder.js +115 -0
- package/dist/engine/elicitation/builder.js.map +1 -0
- package/dist/engine/elicitation/fallback.d.ts +20 -0
- package/dist/engine/elicitation/fallback.d.ts.map +1 -0
- package/dist/engine/elicitation/fallback.js +72 -0
- package/dist/engine/elicitation/fallback.js.map +1 -0
- package/dist/engine/elicitation/index.d.ts +4 -0
- package/dist/engine/elicitation/index.d.ts.map +1 -0
- package/dist/engine/elicitation/index.js +5 -0
- package/dist/engine/elicitation/index.js.map +1 -0
- package/dist/engine/elicitation/response-parser.d.ts +9 -0
- package/dist/engine/elicitation/response-parser.d.ts.map +1 -0
- package/dist/engine/elicitation/response-parser.js +163 -0
- package/dist/engine/elicitation/response-parser.js.map +1 -0
- package/dist/engine/federation/cross-repo-resolver.d.ts +21 -0
- package/dist/engine/federation/cross-repo-resolver.d.ts.map +1 -0
- package/dist/engine/federation/cross-repo-resolver.js +75 -0
- package/dist/engine/federation/cross-repo-resolver.js.map +1 -0
- package/dist/engine/federation/drift-checker.d.ts +19 -0
- package/dist/engine/federation/drift-checker.d.ts.map +1 -0
- package/dist/engine/federation/drift-checker.js +114 -0
- package/dist/engine/federation/drift-checker.js.map +1 -0
- package/dist/engine/federation/federation-store.d.ts +25 -0
- package/dist/engine/federation/federation-store.d.ts.map +1 -0
- package/dist/engine/federation/federation-store.js +58 -0
- package/dist/engine/federation/federation-store.js.map +1 -0
- package/dist/engine/federation/index.d.ts +4 -0
- package/dist/engine/federation/index.d.ts.map +1 -0
- package/dist/engine/federation/index.js +5 -0
- package/dist/engine/federation/index.js.map +1 -0
- package/dist/engine/github/spec-ac-analyzer.d.ts +40 -0
- package/dist/engine/github/spec-ac-analyzer.d.ts.map +1 -0
- package/dist/engine/github/spec-ac-analyzer.js +181 -0
- package/dist/engine/github/spec-ac-analyzer.js.map +1 -0
- package/dist/engine/hooks/handlers/on-impl-change.d.ts +3 -1
- package/dist/engine/hooks/handlers/on-impl-change.d.ts.map +1 -1
- package/dist/engine/hooks/handlers/on-impl-change.js +25 -1
- package/dist/engine/hooks/handlers/on-impl-change.js.map +1 -1
- package/dist/engine/infrastructure/component-mapper.d.ts +9 -0
- package/dist/engine/infrastructure/component-mapper.d.ts.map +1 -0
- package/dist/engine/infrastructure/component-mapper.js +162 -0
- package/dist/engine/infrastructure/component-mapper.js.map +1 -0
- package/dist/engine/infrastructure/cost-estimator.d.ts +6 -0
- package/dist/engine/infrastructure/cost-estimator.d.ts.map +1 -0
- package/dist/engine/infrastructure/cost-estimator.js +48 -0
- package/dist/engine/infrastructure/cost-estimator.js.map +1 -0
- package/dist/engine/infrastructure/docker-compose-generator.d.ts +6 -0
- package/dist/engine/infrastructure/docker-compose-generator.d.ts.map +1 -0
- package/dist/engine/infrastructure/docker-compose-generator.js +201 -0
- package/dist/engine/infrastructure/docker-compose-generator.js.map +1 -0
- package/dist/engine/infrastructure/index.d.ts +15 -0
- package/dist/engine/infrastructure/index.d.ts.map +1 -0
- package/dist/engine/infrastructure/index.js +67 -0
- package/dist/engine/infrastructure/index.js.map +1 -0
- package/dist/engine/infrastructure/kubernetes-generator.d.ts +6 -0
- package/dist/engine/infrastructure/kubernetes-generator.d.ts.map +1 -0
- package/dist/engine/infrastructure/kubernetes-generator.js +141 -0
- package/dist/engine/infrastructure/kubernetes-generator.js.map +1 -0
- package/dist/engine/infrastructure/railway-generator.d.ts +6 -0
- package/dist/engine/infrastructure/railway-generator.d.ts.map +1 -0
- package/dist/engine/infrastructure/railway-generator.js +87 -0
- package/dist/engine/infrastructure/railway-generator.js.map +1 -0
- package/dist/engine/infrastructure/signal-detector.d.ts +7 -0
- package/dist/engine/infrastructure/signal-detector.d.ts.map +1 -0
- package/dist/engine/infrastructure/signal-detector.js +174 -0
- package/dist/engine/infrastructure/signal-detector.js.map +1 -0
- package/dist/engine/infrastructure/terraform-generator.d.ts +6 -0
- package/dist/engine/infrastructure/terraform-generator.d.ts.map +1 -0
- package/dist/engine/infrastructure/terraform-generator.js +241 -0
- package/dist/engine/infrastructure/terraform-generator.js.map +1 -0
- package/dist/engine/legal-compliance/detector.js +1 -1
- package/dist/engine/legal-compliance/detector.js.map +1 -1
- package/dist/engine/living-spec/annotation-parser.d.ts.map +1 -1
- package/dist/engine/living-spec/annotation-parser.js.map +1 -1
- package/dist/engine/living-spec/auto-updater.d.ts +58 -0
- package/dist/engine/living-spec/auto-updater.d.ts.map +1 -0
- package/dist/engine/living-spec/auto-updater.js +311 -0
- package/dist/engine/living-spec/auto-updater.js.map +1 -0
- package/dist/engine/living-spec/bidirectional-sync.d.ts +10 -0
- package/dist/engine/living-spec/bidirectional-sync.d.ts.map +1 -1
- package/dist/engine/living-spec/bidirectional-sync.js +11 -3
- package/dist/engine/living-spec/bidirectional-sync.js.map +1 -1
- package/dist/engine/living-spec/conflict-resolver.d.ts +46 -0
- package/dist/engine/living-spec/conflict-resolver.d.ts.map +1 -0
- package/dist/engine/living-spec/conflict-resolver.js +301 -0
- package/dist/engine/living-spec/conflict-resolver.js.map +1 -0
- package/dist/engine/living-spec/hash-tracker.d.ts.map +1 -1
- package/dist/engine/living-spec/hash-tracker.js.map +1 -1
- package/dist/engine/living-spec/index.d.ts +1 -0
- package/dist/engine/living-spec/index.d.ts.map +1 -1
- package/dist/engine/living-spec/index.js +1 -0
- package/dist/engine/living-spec/index.js.map +1 -1
- package/dist/engine/living-spec/signature-tracker.d.ts.map +1 -1
- package/dist/engine/living-spec/signature-tracker.js.map +1 -1
- package/dist/engine/observability/config.d.ts +16 -0
- package/dist/engine/observability/config.d.ts.map +1 -0
- package/dist/engine/observability/config.js +44 -0
- package/dist/engine/observability/config.js.map +1 -0
- package/dist/engine/observability/index.d.ts +7 -0
- package/dist/engine/observability/index.d.ts.map +1 -0
- package/dist/engine/observability/index.js +8 -0
- package/dist/engine/observability/index.js.map +1 -0
- package/dist/engine/observability/metrics.d.ts +12 -0
- package/dist/engine/observability/metrics.d.ts.map +1 -0
- package/dist/engine/observability/metrics.js +61 -0
- package/dist/engine/observability/metrics.js.map +1 -0
- package/dist/engine/observability/noop-tracer.d.ts +13 -0
- package/dist/engine/observability/noop-tracer.d.ts.map +1 -0
- package/dist/engine/observability/noop-tracer.js +41 -0
- package/dist/engine/observability/noop-tracer.js.map +1 -0
- package/dist/engine/observability/otel-tracer.d.ts +19 -0
- package/dist/engine/observability/otel-tracer.d.ts.map +1 -0
- package/dist/engine/observability/otel-tracer.js +134 -0
- package/dist/engine/observability/otel-tracer.js.map +1 -0
- package/dist/engine/observability/span-helpers.d.ts +28 -0
- package/dist/engine/observability/span-helpers.d.ts.map +1 -0
- package/dist/engine/observability/span-helpers.js +68 -0
- package/dist/engine/observability/span-helpers.js.map +1 -0
- package/dist/engine/observability/tracer.d.ts +26 -0
- package/dist/engine/observability/tracer.d.ts.map +1 -0
- package/dist/engine/observability/tracer.js +45 -0
- package/dist/engine/observability/tracer.js.map +1 -0
- package/dist/engine/rbac/index.d.ts +3 -0
- package/dist/engine/rbac/index.d.ts.map +1 -0
- package/dist/engine/rbac/index.js +4 -0
- package/dist/engine/rbac/index.js.map +1 -0
- package/dist/engine/rbac/permission-checker.d.ts +21 -0
- package/dist/engine/rbac/permission-checker.d.ts.map +1 -0
- package/dist/engine/rbac/permission-checker.js +74 -0
- package/dist/engine/rbac/permission-checker.js.map +1 -0
- package/dist/engine/rbac/roles.d.ts +12 -0
- package/dist/engine/rbac/roles.d.ts.map +1 -0
- package/dist/engine/rbac/roles.js +37 -0
- package/dist/engine/rbac/roles.js.map +1 -0
- package/dist/engine/shared/ac-extractor.d.ts +9 -0
- package/dist/engine/shared/ac-extractor.d.ts.map +1 -0
- package/dist/engine/shared/ac-extractor.js +36 -0
- package/dist/engine/shared/ac-extractor.js.map +1 -0
- package/dist/engine/shared/line-diff.d.ts +11 -0
- package/dist/engine/shared/line-diff.d.ts.map +1 -0
- package/dist/engine/shared/line-diff.js +32 -0
- package/dist/engine/shared/line-diff.js.map +1 -0
- package/dist/engine/skill-generator/sections-platform.d.ts.map +1 -1
- package/dist/engine/skill-generator/sections-platform.js +13 -37
- package/dist/engine/skill-generator/sections-platform.js.map +1 -1
- package/dist/engine/skill-registry/agentskill-adapter.d.ts +1 -2
- package/dist/engine/skill-registry/agentskill-adapter.d.ts.map +1 -1
- package/dist/engine/skill-registry/agentskill-adapter.js +1 -2
- package/dist/engine/skill-registry/agentskill-adapter.js.map +1 -1
- package/dist/engine/source-resolver.d.ts +1 -1
- package/dist/engine/source-resolver.d.ts.map +1 -1
- package/dist/engine/source-resolver.js +3 -2
- package/dist/engine/source-resolver.js.map +1 -1
- package/dist/engine/spec-decomposer/analyzer.d.ts +18 -0
- package/dist/engine/spec-decomposer/analyzer.d.ts.map +1 -0
- package/dist/engine/spec-decomposer/analyzer.js +263 -0
- package/dist/engine/spec-decomposer/analyzer.js.map +1 -0
- package/dist/engine/spec-decomposer/file-mapper.d.ts +17 -0
- package/dist/engine/spec-decomposer/file-mapper.d.ts.map +1 -0
- package/dist/engine/spec-decomposer/file-mapper.js +96 -0
- package/dist/engine/spec-decomposer/file-mapper.js.map +1 -0
- package/dist/engine/spec-decomposer/index.d.ts +14 -0
- package/dist/engine/spec-decomposer/index.d.ts.map +1 -0
- package/dist/engine/spec-decomposer/index.js +50 -0
- package/dist/engine/spec-decomposer/index.js.map +1 -0
- package/dist/engine/spec-decomposer/ownership-resolver.d.ts +7 -0
- package/dist/engine/spec-decomposer/ownership-resolver.d.ts.map +1 -0
- package/dist/engine/spec-decomposer/ownership-resolver.js +169 -0
- package/dist/engine/spec-decomposer/ownership-resolver.js.map +1 -0
- package/dist/engine/spec-observability/index.d.ts +4 -0
- package/dist/engine/spec-observability/index.d.ts.map +1 -0
- package/dist/engine/spec-observability/index.js +4 -0
- package/dist/engine/spec-observability/index.js.map +1 -0
- package/dist/engine/spec-observability/metrics.d.ts +8 -0
- package/dist/engine/spec-observability/metrics.d.ts.map +1 -0
- package/dist/engine/spec-observability/metrics.js +116 -0
- package/dist/engine/spec-observability/metrics.js.map +1 -0
- package/dist/engine/spec-observability/tracker.d.ts +22 -0
- package/dist/engine/spec-observability/tracker.d.ts.map +1 -0
- package/dist/engine/spec-observability/tracker.js +77 -0
- package/dist/engine/spec-observability/tracker.js.map +1 -0
- package/dist/engine/spec-reader.d.ts +7 -0
- package/dist/engine/spec-reader.d.ts.map +1 -0
- package/dist/engine/spec-reader.js +23 -0
- package/dist/engine/spec-reader.js.map +1 -0
- package/dist/engine/spec-repair.d.ts +10 -0
- package/dist/engine/spec-repair.d.ts.map +1 -0
- package/dist/engine/spec-repair.js +388 -0
- package/dist/engine/spec-repair.js.map +1 -0
- package/dist/engine/spec-summary-html.js +2 -2
- package/dist/engine/spec-versioning/brancher.d.ts +17 -0
- package/dist/engine/spec-versioning/brancher.d.ts.map +1 -0
- package/dist/engine/spec-versioning/brancher.js +113 -0
- package/dist/engine/spec-versioning/brancher.js.map +1 -0
- package/dist/engine/spec-versioning/differ.d.ts +19 -0
- package/dist/engine/spec-versioning/differ.d.ts.map +1 -0
- package/dist/engine/spec-versioning/differ.js +151 -0
- package/dist/engine/spec-versioning/differ.js.map +1 -0
- package/dist/engine/spec-versioning/index.d.ts +5 -0
- package/dist/engine/spec-versioning/index.d.ts.map +1 -0
- package/dist/engine/spec-versioning/index.js +6 -0
- package/dist/engine/spec-versioning/index.js.map +1 -0
- package/dist/engine/spec-versioning/merger.d.ts +18 -0
- package/dist/engine/spec-versioning/merger.d.ts.map +1 -0
- package/dist/engine/spec-versioning/merger.js +113 -0
- package/dist/engine/spec-versioning/merger.js.map +1 -0
- package/dist/engine/spec-versioning/version-store.d.ts +18 -0
- package/dist/engine/spec-versioning/version-store.d.ts.map +1 -0
- package/dist/engine/spec-versioning/version-store.js +96 -0
- package/dist/engine/spec-versioning/version-store.js.map +1 -0
- package/dist/engine/web-fetcher/stack-advisor.d.ts.map +1 -1
- package/dist/engine/web-fetcher/stack-advisor.js +5 -6
- package/dist/engine/web-fetcher/stack-advisor.js.map +1 -1
- package/dist/engine/well-known/discovery.d.ts +7 -0
- package/dist/engine/well-known/discovery.d.ts.map +1 -0
- package/dist/engine/well-known/discovery.js +109 -0
- package/dist/engine/well-known/discovery.js.map +1 -0
- package/dist/engine/well-known/index.d.ts +6 -0
- package/dist/engine/well-known/index.d.ts.map +1 -0
- package/dist/engine/well-known/index.js +5 -0
- package/dist/engine/well-known/index.js.map +1 -0
- package/dist/engine/well-known/manifest-generator.d.ts +7 -0
- package/dist/engine/well-known/manifest-generator.d.ts.map +1 -0
- package/dist/engine/well-known/manifest-generator.js +60 -0
- package/dist/engine/well-known/manifest-generator.js.map +1 -0
- package/dist/engine/well-known/manifest-schema.d.ts +92 -0
- package/dist/engine/well-known/manifest-schema.d.ts.map +1 -0
- package/dist/engine/well-known/manifest-schema.js +70 -0
- package/dist/engine/well-known/manifest-schema.js.map +1 -0
- package/dist/resources/spec-granular.d.ts +33 -0
- package/dist/resources/spec-granular.d.ts.map +1 -0
- package/dist/resources/spec-granular.js +299 -0
- package/dist/resources/spec-granular.js.map +1 -0
- package/dist/storage/federation-store.d.ts +29 -0
- package/dist/storage/federation-store.d.ts.map +1 -0
- package/dist/storage/federation-store.js +111 -0
- package/dist/storage/federation-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/rbac-store.d.ts +8 -0
- package/dist/storage/rbac-store.d.ts.map +1 -0
- package/dist/storage/rbac-store.js +75 -0
- package/dist/storage/rbac-store.js.map +1 -0
- package/dist/storage/spec-observability-store.d.ts +16 -0
- package/dist/storage/spec-observability-store.d.ts.map +1 -0
- package/dist/storage/spec-observability-store.js +55 -0
- package/dist/storage/spec-observability-store.js.map +1 -0
- package/dist/tools/a2a-handler.d.ts +14 -0
- package/dist/tools/a2a-handler.d.ts.map +1 -0
- package/dist/tools/a2a-handler.js +100 -0
- package/dist/tools/a2a-handler.js.map +1 -0
- package/dist/tools/assign-role-handler.d.ts +3 -0
- package/dist/tools/assign-role-handler.d.ts.map +1 -0
- package/dist/tools/assign-role-handler.js +25 -0
- package/dist/tools/assign-role-handler.js.map +1 -0
- package/dist/tools/audit-trail-handler.d.ts +4 -0
- package/dist/tools/audit-trail-handler.d.ts.map +1 -0
- package/dist/tools/audit-trail-handler.js +91 -0
- package/dist/tools/audit-trail-handler.js.map +1 -0
- package/dist/tools/audit.js +2 -2
- package/dist/tools/audit.js.map +1 -1
- package/dist/tools/auto-update-spec.d.ts +3 -0
- package/dist/tools/auto-update-spec.d.ts.map +1 -0
- package/dist/tools/auto-update-spec.js +43 -0
- package/dist/tools/auto-update-spec.js.map +1 -0
- package/dist/tools/branch-spec.d.ts +3 -0
- package/dist/tools/branch-spec.d.ts.map +1 -0
- package/dist/tools/branch-spec.js +68 -0
- package/dist/tools/branch-spec.js.map +1 -0
- package/dist/tools/challenge-spec/platform-challenge-scenarios-b.js +1 -1
- package/dist/tools/challenge-spec/platform-challenge-scenarios-b.js.map +1 -1
- package/dist/tools/challenge-spec/platform-challenge-scenarios.js +1 -1
- package/dist/tools/challenge-spec/platform-challenge-scenarios.js.map +1 -1
- package/dist/tools/configure-auth-handler.d.ts +15 -0
- package/dist/tools/configure-auth-handler.d.ts.map +1 -0
- package/dist/tools/configure-auth-handler.js +113 -0
- package/dist/tools/configure-auth-handler.js.map +1 -0
- package/dist/tools/configure-observability.d.ts +14 -0
- package/dist/tools/configure-observability.d.ts.map +1 -0
- package/dist/tools/configure-observability.js +96 -0
- package/dist/tools/configure-observability.js.map +1 -0
- package/dist/tools/configure-roles-handler.d.ts +4 -0
- package/dist/tools/configure-roles-handler.d.ts.map +1 -0
- package/dist/tools/configure-roles-handler.js +36 -0
- package/dist/tools/configure-roles-handler.js.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.d.ts +7 -0
- package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.d.ts.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.js +114 -0
- package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.js.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/database-adapter.d.ts +7 -0
- package/dist/tools/create-spec-hu/ac-adapters/database-adapter.d.ts.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/database-adapter.js +48 -0
- package/dist/tools/create-spec-hu/ac-adapters/database-adapter.js.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/index.d.ts +14 -0
- package/dist/tools/create-spec-hu/ac-adapters/index.d.ts.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/index.js +28 -0
- package/dist/tools/create-spec-hu/ac-adapters/index.js.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/stack-adapter.d.ts +7 -0
- package/dist/tools/create-spec-hu/ac-adapters/stack-adapter.d.ts.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/stack-adapter.js +99 -0
- package/dist/tools/create-spec-hu/ac-adapters/stack-adapter.js.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/testing-adapter.d.ts +7 -0
- package/dist/tools/create-spec-hu/ac-adapters/testing-adapter.d.ts.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/testing-adapter.js +62 -0
- package/dist/tools/create-spec-hu/ac-adapters/testing-adapter.js.map +1 -0
- package/dist/tools/create-spec-hu/ai-testing-governance-adapter.js +4 -4
- package/dist/tools/create-spec-hu/ai-testing-governance-adapter.js.map +1 -1
- package/dist/tools/create-spec-hu/hu-body-generators.d.ts.map +1 -1
- package/dist/tools/create-spec-hu/hu-body-generators.js +41 -19
- package/dist/tools/create-spec-hu/hu-body-generators.js.map +1 -1
- package/dist/tools/create-spec-hu/llm-security-hu-adapter.js +1 -1
- package/dist/tools/create-spec-hu/llm-security-hu-adapter.js.map +1 -1
- package/dist/tools/create-spec-hu/quality-helpers.d.ts.map +1 -1
- package/dist/tools/create-spec-hu/quality-helpers.js +2 -3
- package/dist/tools/create-spec-hu/quality-helpers.js.map +1 -1
- package/dist/tools/create-spec-hu/swift-android-hu-adapter.js +1 -1
- package/dist/tools/create-spec-hu/swift-android-hu-adapter.js.map +1 -1
- package/dist/tools/create-spec-tech/ficha-content.d.ts.map +1 -1
- package/dist/tools/create-spec-tech/ficha-content.js +236 -6
- package/dist/tools/create-spec-tech/ficha-content.js.map +1 -1
- package/dist/tools/decompose-spec.d.ts +7 -0
- package/dist/tools/decompose-spec.d.ts.map +1 -0
- package/dist/tools/decompose-spec.js +49 -0
- package/dist/tools/decompose-spec.js.map +1 -0
- package/dist/tools/design-to-spec.d.ts +12 -0
- package/dist/tools/design-to-spec.d.ts.map +1 -0
- package/dist/tools/design-to-spec.js +73 -0
- package/dist/tools/design-to-spec.js.map +1 -0
- package/dist/tools/detect-ac-gaps.d.ts +7 -0
- package/dist/tools/detect-ac-gaps.d.ts.map +1 -0
- package/dist/tools/detect-ac-gaps.js +63 -0
- package/dist/tools/detect-ac-gaps.js.map +1 -0
- package/dist/tools/discover-registry.d.ts +8 -0
- package/dist/tools/discover-registry.d.ts.map +1 -0
- package/dist/tools/discover-registry.js +79 -0
- package/dist/tools/discover-registry.js.map +1 -0
- package/dist/tools/federate-specs.d.ts +6 -0
- package/dist/tools/federate-specs.d.ts.map +1 -0
- package/dist/tools/federate-specs.js +41 -0
- package/dist/tools/federate-specs.js.map +1 -0
- package/dist/tools/federation-status.d.ts +6 -0
- package/dist/tools/federation-status.d.ts.map +1 -0
- package/dist/tools/federation-status.js +56 -0
- package/dist/tools/federation-status.js.map +1 -0
- package/dist/tools/generate-annotations.d.ts.map +1 -1
- package/dist/tools/generate-annotations.js +3 -1
- package/dist/tools/generate-annotations.js.map +1 -1
- package/dist/tools/generate-docs/agent-docs-generator.js +1 -1
- package/dist/tools/generate-docs/agent-docs-generator.js.map +1 -1
- package/dist/tools/generate-infrastructure.d.ts +3 -0
- package/dist/tools/generate-infrastructure.d.ts.map +1 -0
- package/dist/tools/generate-infrastructure.js +60 -0
- package/dist/tools/generate-infrastructure.js.map +1 -0
- package/dist/tools/generate-tests/generators/advanced-testing-generator.d.ts.map +1 -1
- package/dist/tools/generate-tests/generators/advanced-testing-generator.js +5 -4
- package/dist/tools/generate-tests/generators/advanced-testing-generator.js.map +1 -1
- package/dist/tools/merge-spec-branch.d.ts +3 -0
- package/dist/tools/merge-spec-branch.d.ts.map +1 -0
- package/dist/tools/merge-spec-branch.js +103 -0
- package/dist/tools/merge-spec-branch.js.map +1 -0
- package/dist/tools/publish-registry.d.ts +8 -0
- package/dist/tools/publish-registry.d.ts.map +1 -0
- package/dist/tools/publish-registry.js +76 -0
- package/dist/tools/publish-registry.js.map +1 -0
- package/dist/tools/register-a2a-tools.d.ts +3 -0
- package/dist/tools/register-a2a-tools.d.ts.map +1 -0
- package/dist/tools/register-a2a-tools.js +66 -0
- package/dist/tools/register-a2a-tools.js.map +1 -0
- package/dist/tools/register-audit-trail-tools.d.ts +3 -0
- package/dist/tools/register-audit-trail-tools.d.ts.map +1 -0
- package/dist/tools/register-audit-trail-tools.js +62 -0
- package/dist/tools/register-audit-trail-tools.js.map +1 -0
- package/dist/tools/register-decompose-tools.d.ts +3 -0
- package/dist/tools/register-decompose-tools.d.ts.map +1 -0
- package/dist/tools/register-decompose-tools.js +31 -0
- package/dist/tools/register-decompose-tools.js.map +1 -0
- package/dist/tools/register-federation-tools.d.ts +6 -0
- package/dist/tools/register-federation-tools.d.ts.map +1 -0
- package/dist/tools/register-federation-tools.js +48 -0
- package/dist/tools/register-federation-tools.js.map +1 -0
- package/dist/tools/register-infrastructure-tools.d.ts +3 -0
- package/dist/tools/register-infrastructure-tools.d.ts.map +1 -0
- package/dist/tools/register-infrastructure-tools.js +34 -0
- package/dist/tools/register-infrastructure-tools.js.map +1 -0
- package/dist/tools/register-living-spec-tools.d.ts.map +1 -1
- package/dist/tools/register-living-spec-tools.js +2 -8
- package/dist/tools/register-living-spec-tools.js.map +1 -1
- package/dist/tools/register-observability-tools.d.ts +3 -0
- package/dist/tools/register-observability-tools.d.ts.map +1 -0
- package/dist/tools/register-observability-tools.js +48 -0
- package/dist/tools/register-observability-tools.js.map +1 -0
- package/dist/tools/register-rbac-tools.d.ts +3 -0
- package/dist/tools/register-rbac-tools.d.ts.map +1 -0
- package/dist/tools/register-rbac-tools.js +36 -0
- package/dist/tools/register-rbac-tools.js.map +1 -0
- package/dist/tools/register-spec-observability-tools.d.ts +3 -0
- package/dist/tools/register-spec-observability-tools.d.ts.map +1 -0
- package/dist/tools/register-spec-observability-tools.js +24 -0
- package/dist/tools/register-spec-observability-tools.js.map +1 -0
- package/dist/tools/register-versioning-tools.d.ts +3 -0
- package/dist/tools/register-versioning-tools.d.ts.map +1 -0
- package/dist/tools/register-versioning-tools.js +93 -0
- package/dist/tools/register-versioning-tools.js.map +1 -0
- package/dist/tools/register-well-known-tools.d.ts +3 -0
- package/dist/tools/register-well-known-tools.d.ts.map +1 -0
- package/dist/tools/register-well-known-tools.js +36 -0
- package/dist/tools/register-well-known-tools.js.map +1 -0
- package/dist/tools/repair-spec.d.ts +9 -0
- package/dist/tools/repair-spec.d.ts.map +1 -0
- package/dist/tools/repair-spec.js +93 -0
- package/dist/tools/repair-spec.js.map +1 -0
- package/dist/tools/resolve-spec-conflict.d.ts +7 -0
- package/dist/tools/resolve-spec-conflict.d.ts.map +1 -0
- package/dist/tools/resolve-spec-conflict.js +63 -0
- package/dist/tools/resolve-spec-conflict.js.map +1 -0
- package/dist/tools/response-helpers.d.ts +42 -0
- package/dist/tools/response-helpers.d.ts.map +1 -1
- package/dist/tools/response-helpers.js +29 -0
- package/dist/tools/response-helpers.js.map +1 -1
- package/dist/tools/schemas/auth-schema.d.ts +12 -0
- package/dist/tools/schemas/auth-schema.d.ts.map +1 -0
- package/dist/tools/schemas/auth-schema.js +38 -0
- package/dist/tools/schemas/auth-schema.js.map +1 -0
- package/dist/tools/schemas/rbac.d.ts +26 -0
- package/dist/tools/schemas/rbac.d.ts.map +1 -0
- package/dist/tools/schemas/rbac.js +25 -0
- package/dist/tools/schemas/rbac.js.map +1 -0
- package/dist/tools/schemas/well-known.d.ts +12 -0
- package/dist/tools/schemas/well-known.d.ts.map +1 -0
- package/dist/tools/schemas/well-known.js +31 -0
- package/dist/tools/schemas/well-known.js.map +1 -0
- package/dist/tools/snapshot-spec-hashes.d.ts.map +1 -1
- package/dist/tools/snapshot-spec-hashes.js.map +1 -1
- package/dist/tools/spec-usage-report.d.ts +3 -0
- package/dist/tools/spec-usage-report.d.ts.map +1 -0
- package/dist/tools/spec-usage-report.js +95 -0
- package/dist/tools/spec-usage-report.js.map +1 -0
- package/dist/tools/start-hooks.d.ts.map +1 -1
- package/dist/tools/start-hooks.js +93 -16
- package/dist/tools/start-hooks.js.map +1 -1
- package/dist/tools/suggest-tooling/advanced-testing-catalog.d.ts.map +1 -1
- package/dist/tools/suggest-tooling/advanced-testing-catalog.js +8 -5
- package/dist/tools/suggest-tooling/advanced-testing-catalog.js.map +1 -1
- package/dist/tools/tool-registry.d.ts.map +1 -1
- package/dist/tools/tool-registry.js +2 -0
- package/dist/tools/tool-registry.js.map +1 -1
- package/dist/tools/version-spec.d.ts +3 -0
- package/dist/tools/version-spec.d.ts.map +1 -0
- package/dist/tools/version-spec.js +54 -0
- package/dist/tools/version-spec.js.map +1 -0
- package/dist/types/a2a.d.ts +125 -0
- package/dist/types/a2a.d.ts.map +1 -0
- package/dist/types/a2a.js +3 -0
- package/dist/types/a2a.js.map +1 -0
- package/dist/types/ac-gap.d.ts +57 -0
- package/dist/types/ac-gap.d.ts.map +1 -0
- package/dist/types/ac-gap.js +3 -0
- package/dist/types/ac-gap.js.map +1 -0
- package/dist/types/audit-trail.d.ts +77 -0
- package/dist/types/audit-trail.d.ts.map +1 -0
- package/dist/types/audit-trail.js +3 -0
- package/dist/types/audit-trail.js.map +1 -0
- package/dist/types/auth.d.ts +82 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +3 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/ci.d.ts +10 -25
- package/dist/types/ci.d.ts.map +1 -1
- package/dist/types/design-to-spec.d.ts +89 -0
- package/dist/types/design-to-spec.d.ts.map +1 -0
- package/dist/types/design-to-spec.js +3 -0
- package/dist/types/design-to-spec.js.map +1 -0
- package/dist/types/elicitation.d.ts +109 -0
- package/dist/types/elicitation.d.ts.map +1 -0
- package/dist/types/elicitation.js +3 -0
- package/dist/types/elicitation.js.map +1 -0
- package/dist/types/federation.d.ts +95 -0
- package/dist/types/federation.d.ts.map +1 -0
- package/dist/types/federation.js +3 -0
- package/dist/types/federation.js.map +1 -0
- package/dist/types/file-hooks.d.ts +8 -6
- package/dist/types/file-hooks.d.ts.map +1 -1
- package/dist/types/github.d.ts +17 -0
- package/dist/types/github.d.ts.map +1 -1
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +16 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/infrastructure.d.ts +71 -0
- package/dist/types/infrastructure.d.ts.map +1 -0
- package/dist/types/infrastructure.js +3 -0
- package/dist/types/infrastructure.js.map +1 -0
- package/dist/types/living-spec.d.ts +100 -0
- package/dist/types/living-spec.d.ts.map +1 -1
- package/dist/types/observability.d.ts +105 -0
- package/dist/types/observability.d.ts.map +1 -0
- package/dist/types/observability.js +3 -0
- package/dist/types/observability.js.map +1 -0
- package/dist/types/rbac.d.ts +51 -0
- package/dist/types/rbac.d.ts.map +1 -0
- package/dist/types/rbac.js +4 -0
- package/dist/types/rbac.js.map +1 -0
- package/dist/types/resources.d.ts +20 -0
- package/dist/types/resources.d.ts.map +1 -0
- package/dist/types/resources.js +3 -0
- package/dist/types/resources.js.map +1 -0
- package/dist/types/safe-schemas.js +1 -1
- package/dist/types/safe-schemas.js.map +1 -1
- package/dist/types/spec/repair.d.ts +33 -0
- package/dist/types/spec/repair.d.ts.map +1 -0
- package/dist/types/spec/repair.js +3 -0
- package/dist/types/spec/repair.js.map +1 -0
- package/dist/types/spec-decomposer.d.ts +108 -0
- package/dist/types/spec-decomposer.d.ts.map +1 -0
- package/dist/types/spec-decomposer.js +4 -0
- package/dist/types/spec-decomposer.js.map +1 -0
- package/dist/types/spec-observability.d.ts +71 -0
- package/dist/types/spec-observability.d.ts.map +1 -0
- package/dist/types/spec-observability.js +4 -0
- package/dist/types/spec-observability.js.map +1 -0
- package/dist/types/spec-versioning.d.ts +117 -0
- package/dist/types/spec-versioning.d.ts.map +1 -0
- package/dist/types/spec-versioning.js +3 -0
- package/dist/types/spec-versioning.js.map +1 -0
- package/dist/types/well-known.d.ts +70 -0
- package/dist/types/well-known.d.ts.map +1 -0
- package/dist/types/well-known.js +3 -0
- package/dist/types/well-known.js.map +1 -0
- package/package.json +1 -1
- package/src/config/license-plans.json +16 -1
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
// engine/spec-versioning/differ.ts — Diff two spec versions at AC-level granularity
|
|
2
|
+
import { getVersion } from './version-store.js';
|
|
3
|
+
import { extractAcceptanceCriteria } from '../shared/ac-extractor.js';
|
|
4
|
+
import { computeLineDiff } from '../shared/line-diff.js';
|
|
5
|
+
export { extractAcceptanceCriteria, computeLineDiff };
|
|
6
|
+
/** Extract section headers from spec content. */
|
|
7
|
+
function extractSectionHeaders(content) {
|
|
8
|
+
return content
|
|
9
|
+
.split('\n')
|
|
10
|
+
.filter((line) => /^#+\s/.test(line.trim()))
|
|
11
|
+
.map((line) => line.trim());
|
|
12
|
+
}
|
|
13
|
+
/** Compute AC-level diff between two sets of criteria. */
|
|
14
|
+
export function computeAcDiff(fromCriteria, toCriteria) {
|
|
15
|
+
const fromSet = new Set(fromCriteria);
|
|
16
|
+
const toSet = new Set(toCriteria);
|
|
17
|
+
const added = [];
|
|
18
|
+
const removed = [];
|
|
19
|
+
const modified = [];
|
|
20
|
+
// Find removed and potentially modified
|
|
21
|
+
for (const criterion of fromCriteria) {
|
|
22
|
+
if (!toSet.has(criterion)) {
|
|
23
|
+
// Check if it was modified (high similarity match)
|
|
24
|
+
const similar = findSimilar(criterion, toCriteria, fromCriteria);
|
|
25
|
+
if (similar !== null && !fromSet.has(similar)) {
|
|
26
|
+
modified.push({ before: criterion, after: similar });
|
|
27
|
+
toSet.delete(similar); // Mark as consumed
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
removed.push(criterion);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Find added (those in toCriteria not matched yet)
|
|
35
|
+
for (const criterion of toCriteria) {
|
|
36
|
+
if (!fromSet.has(criterion) && !modified.some((m) => m.after === criterion)) {
|
|
37
|
+
added.push(criterion);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return { added, removed, modified };
|
|
41
|
+
}
|
|
42
|
+
/** Find the most similar string in a list (similarity > 0.5). Returns null if none. */
|
|
43
|
+
function findSimilar(target, candidates, excludeFrom) {
|
|
44
|
+
const excludeSet = new Set(excludeFrom);
|
|
45
|
+
let bestScore = 0.5; // threshold
|
|
46
|
+
let bestMatch = null;
|
|
47
|
+
for (const candidate of candidates) {
|
|
48
|
+
if (excludeSet.has(candidate)) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const score = bigramSimilarity(target, candidate);
|
|
52
|
+
if (score > bestScore) {
|
|
53
|
+
bestScore = score;
|
|
54
|
+
bestMatch = candidate;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return bestMatch;
|
|
58
|
+
}
|
|
59
|
+
/** Compute bigram similarity between two strings (0–1). */
|
|
60
|
+
function bigramSimilarity(a, b) {
|
|
61
|
+
if (a === b) {
|
|
62
|
+
return 1;
|
|
63
|
+
}
|
|
64
|
+
if (a.length < 2 || b.length < 2) {
|
|
65
|
+
return 0;
|
|
66
|
+
}
|
|
67
|
+
const buildBigrams = (str) => {
|
|
68
|
+
const bigrams = new Set();
|
|
69
|
+
for (let i = 0; i < str.length - 1; i++) {
|
|
70
|
+
bigrams.add(str.slice(i, i + 2));
|
|
71
|
+
}
|
|
72
|
+
return bigrams;
|
|
73
|
+
};
|
|
74
|
+
const bigramsA = buildBigrams(a.toLowerCase());
|
|
75
|
+
const bigramsB = buildBigrams(b.toLowerCase());
|
|
76
|
+
let intersection = 0;
|
|
77
|
+
for (const bigram of bigramsA) {
|
|
78
|
+
if (bigramsB.has(bigram)) {
|
|
79
|
+
intersection++;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return (2 * intersection) / (bigramsA.size + bigramsB.size);
|
|
83
|
+
}
|
|
84
|
+
/** Detect which sections changed between two spec contents. */
|
|
85
|
+
export function detectSectionChanges(fromContent, toContent) {
|
|
86
|
+
const fromHeaders = new Set(extractSectionHeaders(fromContent));
|
|
87
|
+
const toHeaders = new Set(extractSectionHeaders(toContent));
|
|
88
|
+
const changes = [];
|
|
89
|
+
for (const header of toHeaders) {
|
|
90
|
+
if (!fromHeaders.has(header)) {
|
|
91
|
+
changes.push(`Added section: ${header}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
for (const header of fromHeaders) {
|
|
95
|
+
if (!toHeaders.has(header)) {
|
|
96
|
+
changes.push(`Removed section: ${header}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return changes;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Diff two spec versions stored on disk.
|
|
103
|
+
* Throws if either version tag is not found.
|
|
104
|
+
*/
|
|
105
|
+
export async function diffVersions(dataDir, specId, fromTag, toTag) {
|
|
106
|
+
const [fromVersion, toVersion] = await Promise.all([
|
|
107
|
+
getVersion(dataDir, specId, fromTag),
|
|
108
|
+
getVersion(dataDir, specId, toTag),
|
|
109
|
+
]);
|
|
110
|
+
if (fromVersion === null) {
|
|
111
|
+
throw new Error(`Version "${fromTag}" not found for spec ${specId}.`);
|
|
112
|
+
}
|
|
113
|
+
if (toVersion === null) {
|
|
114
|
+
throw new Error(`Version "${toTag}" not found for spec ${specId}.`);
|
|
115
|
+
}
|
|
116
|
+
const { added, removed } = computeLineDiff(fromVersion.content, toVersion.content);
|
|
117
|
+
const fromCriteria = extractAcceptanceCriteria(fromVersion.content);
|
|
118
|
+
const toCriteria = extractAcceptanceCriteria(toVersion.content);
|
|
119
|
+
const criteriaChanges = computeAcDiff(fromCriteria, toCriteria);
|
|
120
|
+
const sectionChanges = detectSectionChanges(fromVersion.content, toVersion.content);
|
|
121
|
+
return {
|
|
122
|
+
fromTag,
|
|
123
|
+
toTag,
|
|
124
|
+
specId,
|
|
125
|
+
added,
|
|
126
|
+
removed,
|
|
127
|
+
criteriaChanges,
|
|
128
|
+
sectionChanges,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Diff two spec content strings directly (no disk lookup).
|
|
133
|
+
* Used before merging to show what will change.
|
|
134
|
+
*/
|
|
135
|
+
export function diffContents(specId, fromTag, toTag, fromContent, toContent) {
|
|
136
|
+
const { added, removed } = computeLineDiff(fromContent, toContent);
|
|
137
|
+
const fromCriteria = extractAcceptanceCriteria(fromContent);
|
|
138
|
+
const toCriteria = extractAcceptanceCriteria(toContent);
|
|
139
|
+
const criteriaChanges = computeAcDiff(fromCriteria, toCriteria);
|
|
140
|
+
const sectionChanges = detectSectionChanges(fromContent, toContent);
|
|
141
|
+
return {
|
|
142
|
+
fromTag,
|
|
143
|
+
toTag,
|
|
144
|
+
specId,
|
|
145
|
+
added,
|
|
146
|
+
removed,
|
|
147
|
+
criteriaChanges,
|
|
148
|
+
sectionChanges,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=differ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"differ.js","sourceRoot":"","sources":["../../../src/engine/spec-versioning/differ.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/spec-versioning/index.ts"],"names":[],"mappings":"AACA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/spec-versioning/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SpecMergeResult, SpecMergeConflict, MergeSpecBranchInput } from '../../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Detect merge conflicts between branch content and latest main content.
|
|
4
|
+
* Simple strategy: if the branch diverged from the latest version, flag it.
|
|
5
|
+
*/
|
|
6
|
+
export declare function detectConflicts(baseContent: string, branchContent: string, mainContent: string): SpecMergeConflict[];
|
|
7
|
+
/**
|
|
8
|
+
* Attempt a simple auto-merge: apply branch additions to main content.
|
|
9
|
+
* Returns merged content or null if auto-merge is not safe.
|
|
10
|
+
*/
|
|
11
|
+
export declare function autoMerge(branchContent: string, mainContent: string): string | null;
|
|
12
|
+
/**
|
|
13
|
+
* Merge a spec branch back into main.
|
|
14
|
+
* Creates a new version snapshot with the merged content.
|
|
15
|
+
* Deletes the branch on success.
|
|
16
|
+
*/
|
|
17
|
+
export declare function mergeBranch(dataDir: string, input: MergeSpecBranchInput): Promise<SpecMergeResult>;
|
|
18
|
+
//# sourceMappingURL=merger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merger.d.ts","sourceRoot":"","sources":["../../../src/engine/spec-versioning/merger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAU9B;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,iBAAiB,EAAE,CA2BrB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASnF;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,eAAe,CAAC,CA+E1B"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// engine/spec-versioning/merger.ts — Merge a spec branch back into main with conflict detection
|
|
2
|
+
import { loadBranch, deleteBranch } from './brancher.js';
|
|
3
|
+
import { createVersion, getLatestVersionTag, loadVersionStore, suggestNextTag, } from './version-store.js';
|
|
4
|
+
import { diffContents } from './differ.js';
|
|
5
|
+
/**
|
|
6
|
+
* Detect merge conflicts between branch content and latest main content.
|
|
7
|
+
* Simple strategy: if the branch diverged from the latest version, flag it.
|
|
8
|
+
*/
|
|
9
|
+
export function detectConflicts(baseContent, branchContent, mainContent) {
|
|
10
|
+
const conflicts = [];
|
|
11
|
+
// If main content changed from the base (concurrent edit), flag it
|
|
12
|
+
if (mainContent !== baseContent) {
|
|
13
|
+
const mainLines = new Set(mainContent.split('\n'));
|
|
14
|
+
const branchLines = branchContent.split('\n');
|
|
15
|
+
const conflictingLines = [];
|
|
16
|
+
for (const line of branchLines) {
|
|
17
|
+
if (line.trim().length > 0 && !mainLines.has(line)) {
|
|
18
|
+
conflictingLines.push(line.trim());
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if (conflictingLines.length > 0) {
|
|
22
|
+
conflicts.push({
|
|
23
|
+
type: 'concurrent_edit',
|
|
24
|
+
description: 'The main spec was modified after the branch was created. ' +
|
|
25
|
+
'Some branch changes conflict with current main content.',
|
|
26
|
+
details: conflictingLines.slice(0, 10), // Show up to 10 conflicting lines
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return conflicts;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Attempt a simple auto-merge: apply branch additions to main content.
|
|
34
|
+
* Returns merged content or null if auto-merge is not safe.
|
|
35
|
+
*/
|
|
36
|
+
export function autoMerge(branchContent, mainContent) {
|
|
37
|
+
// Simple strategy: if main has no divergence (same as base), use branch content directly
|
|
38
|
+
if (branchContent === mainContent) {
|
|
39
|
+
return mainContent;
|
|
40
|
+
}
|
|
41
|
+
// For now, trust branch content as the resolved merge when no conflicts are critical
|
|
42
|
+
// A more sophisticated approach would do 3-way merge, but that requires the base content
|
|
43
|
+
return branchContent;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Merge a spec branch back into main.
|
|
47
|
+
* Creates a new version snapshot with the merged content.
|
|
48
|
+
* Deletes the branch on success.
|
|
49
|
+
*/
|
|
50
|
+
export async function mergeBranch(dataDir, input) {
|
|
51
|
+
const { specId, branchName, message } = input;
|
|
52
|
+
// Load the branch
|
|
53
|
+
const branch = await loadBranch(dataDir, specId, branchName);
|
|
54
|
+
if (branch === null) {
|
|
55
|
+
return {
|
|
56
|
+
success: false,
|
|
57
|
+
specId,
|
|
58
|
+
branchName,
|
|
59
|
+
conflicts: [],
|
|
60
|
+
message: `Branch "${branchName}" not found for spec ${specId}.`,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// Load the current main spec content (latest version snapshot)
|
|
64
|
+
const versionStore = await loadVersionStore(dataDir, specId);
|
|
65
|
+
const latestSnapshot = versionStore.versions[versionStore.versions.length - 1];
|
|
66
|
+
const mainContent = latestSnapshot?.content ?? '';
|
|
67
|
+
// Determine the content to use for the merge
|
|
68
|
+
const resolvedContent = input.resolvedContent ?? autoMerge(branch.content, mainContent);
|
|
69
|
+
if (resolvedContent === null) {
|
|
70
|
+
return {
|
|
71
|
+
success: false,
|
|
72
|
+
specId,
|
|
73
|
+
branchName,
|
|
74
|
+
conflicts: [
|
|
75
|
+
{
|
|
76
|
+
type: 'content_diverged',
|
|
77
|
+
description: 'Auto-merge failed. Provide resolvedContent to complete the merge.',
|
|
78
|
+
details: [],
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
message: 'Merge failed: could not auto-merge. Please provide resolvedContent.',
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
// Determine the new version tag
|
|
85
|
+
const latestTag = await getLatestVersionTag(dataDir, specId);
|
|
86
|
+
const newVersionTag = input.newVersionTag ?? suggestNextTag(latestTag);
|
|
87
|
+
// Create the new version snapshot
|
|
88
|
+
const newVersion = await createVersion(dataDir, {
|
|
89
|
+
projectId: input.projectId,
|
|
90
|
+
specId,
|
|
91
|
+
tag: newVersionTag,
|
|
92
|
+
content: resolvedContent,
|
|
93
|
+
message: message ?? `Merged branch "${branchName}" into main`,
|
|
94
|
+
author: `merge:${branchName}`,
|
|
95
|
+
});
|
|
96
|
+
// Compute diff for reporting
|
|
97
|
+
const diff = diffContents(specId, branch.fromVersion, newVersionTag, branch.content, resolvedContent);
|
|
98
|
+
// Delete the branch after successful merge
|
|
99
|
+
await deleteBranch(dataDir, specId, branchName);
|
|
100
|
+
const totalChanges = diff.criteriaChanges.added.length +
|
|
101
|
+
diff.criteriaChanges.removed.length +
|
|
102
|
+
diff.criteriaChanges.modified.length;
|
|
103
|
+
return {
|
|
104
|
+
success: true,
|
|
105
|
+
specId,
|
|
106
|
+
branchName,
|
|
107
|
+
newVersionTag: newVersion.tag,
|
|
108
|
+
conflicts: [],
|
|
109
|
+
message: `Merged branch "${branchName}" into spec ${specId} as version ${newVersion.tag}. ` +
|
|
110
|
+
`${totalChanges} AC-level change(s) detected.`,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=merger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merger.js","sourceRoot":"","sources":["../../../src/engine/spec-versioning/merger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SpecVersionSnapshot, SpecVersionSnapshotStore, CreateVersionSnapshotInput } from '../../types/index.js';
|
|
2
|
+
/** Build the storage directory for a spec's versions. */
|
|
3
|
+
export declare function getVersionsDir(dataDir: string, specId: string): string;
|
|
4
|
+
/** Load the version store for a spec. Returns empty store if not found. */
|
|
5
|
+
export declare function loadVersionStore(dataDir: string, specId: string): Promise<SpecVersionSnapshotStore>;
|
|
6
|
+
/** Validate that a tag matches semantic versioning (vMAJOR.MINOR.PATCH). */
|
|
7
|
+
export declare function isValidVersionTag(tag: string): boolean;
|
|
8
|
+
/** Create and persist a new version snapshot. Returns the created snapshot. */
|
|
9
|
+
export declare function createVersion(dataDir: string, input: CreateVersionSnapshotInput): Promise<SpecVersionSnapshot>;
|
|
10
|
+
/** Retrieve a specific snapshot by tag. Returns null if not found. */
|
|
11
|
+
export declare function getVersion(dataDir: string, specId: string, tag: string): Promise<SpecVersionSnapshot | null>;
|
|
12
|
+
/** List all snapshots for a spec, ordered from oldest to newest. */
|
|
13
|
+
export declare function listVersions(dataDir: string, specId: string): Promise<SpecVersionSnapshot[]>;
|
|
14
|
+
/** Get the latest version tag for a spec. Returns null if no versions exist. */
|
|
15
|
+
export declare function getLatestVersionTag(dataDir: string, specId: string): Promise<string | null>;
|
|
16
|
+
/** Suggest the next patch version given the current latest tag. */
|
|
17
|
+
export declare function suggestNextTag(latestTag: string | null): string;
|
|
18
|
+
//# sourceMappingURL=version-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-store.d.ts","sourceRoot":"","sources":["../../../src/engine/spec-versioning/version-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,sBAAsB,CAAC;AAI9B,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtE;AAOD,2EAA2E;AAC3E,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC,CAQnC;AAgBD,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEtD;AAOD,+EAA+E;AAC/E,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,mBAAmB,CAAC,CA0B9B;AAED,sEAAsE;AACtE,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAGrC;AAED,oEAAoE;AACpE,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAKhC;AAED,gFAAgF;AAChF,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOjG;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAY/D"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// engine/spec-versioning/version-store.ts — Store and retrieve spec version snapshots
|
|
2
|
+
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { existsSync } from 'node:fs';
|
|
5
|
+
const VERSIONS_FILENAME = 'versions.json';
|
|
6
|
+
/** Build the storage directory for a spec's versions. */
|
|
7
|
+
export function getVersionsDir(dataDir, specId) {
|
|
8
|
+
return join(dataDir, 'spec-versions', specId);
|
|
9
|
+
}
|
|
10
|
+
/** Build the path to the versions.json file for a spec. */
|
|
11
|
+
function getVersionsFilePath(dataDir, specId) {
|
|
12
|
+
return join(getVersionsDir(dataDir, specId), VERSIONS_FILENAME);
|
|
13
|
+
}
|
|
14
|
+
/** Load the version store for a spec. Returns empty store if not found. */
|
|
15
|
+
export async function loadVersionStore(dataDir, specId) {
|
|
16
|
+
const filePath = getVersionsFilePath(dataDir, specId);
|
|
17
|
+
try {
|
|
18
|
+
const raw = await readFile(filePath, 'utf-8');
|
|
19
|
+
return JSON.parse(raw);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return { specId, versions: [] };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** Persist the version store to disk. Creates directories as needed. */
|
|
26
|
+
async function saveVersionStore(dataDir, specId, store) {
|
|
27
|
+
const dir = getVersionsDir(dataDir, specId);
|
|
28
|
+
if (!existsSync(dir)) {
|
|
29
|
+
await mkdir(dir, { recursive: true });
|
|
30
|
+
}
|
|
31
|
+
const filePath = join(dir, VERSIONS_FILENAME);
|
|
32
|
+
await writeFile(filePath, JSON.stringify(store, null, 2), 'utf-8');
|
|
33
|
+
}
|
|
34
|
+
/** Validate that a tag matches semantic versioning (vMAJOR.MINOR.PATCH). */
|
|
35
|
+
export function isValidVersionTag(tag) {
|
|
36
|
+
return /^v\d+\.\d+\.\d+$/.test(tag);
|
|
37
|
+
}
|
|
38
|
+
/** Check if a tag already exists in the store. */
|
|
39
|
+
function tagExists(store, tag) {
|
|
40
|
+
return store.versions.some((v) => v.tag === tag);
|
|
41
|
+
}
|
|
42
|
+
/** Create and persist a new version snapshot. Returns the created snapshot. */
|
|
43
|
+
export async function createVersion(dataDir, input) {
|
|
44
|
+
const { specId, tag, content, message, author } = input;
|
|
45
|
+
if (!isValidVersionTag(tag)) {
|
|
46
|
+
throw new Error(`Invalid version tag "${tag}". Use semantic versioning format: v1.0.0, v1.1.0, v2.0.0`);
|
|
47
|
+
}
|
|
48
|
+
const store = await loadVersionStore(dataDir, specId);
|
|
49
|
+
if (tagExists(store, tag)) {
|
|
50
|
+
throw new Error(`Version "${tag}" already exists for spec ${specId}. Use a different tag.`);
|
|
51
|
+
}
|
|
52
|
+
const version = {
|
|
53
|
+
tag,
|
|
54
|
+
timestamp: new Date().toISOString(),
|
|
55
|
+
content,
|
|
56
|
+
...(message !== undefined ? { message } : {}),
|
|
57
|
+
...(author !== undefined ? { author } : {}),
|
|
58
|
+
};
|
|
59
|
+
store.versions.push(version);
|
|
60
|
+
await saveVersionStore(dataDir, specId, store);
|
|
61
|
+
return version;
|
|
62
|
+
}
|
|
63
|
+
/** Retrieve a specific snapshot by tag. Returns null if not found. */
|
|
64
|
+
export async function getVersion(dataDir, specId, tag) {
|
|
65
|
+
const store = await loadVersionStore(dataDir, specId);
|
|
66
|
+
return store.versions.find((v) => v.tag === tag) ?? null;
|
|
67
|
+
}
|
|
68
|
+
/** List all snapshots for a spec, ordered from oldest to newest. */
|
|
69
|
+
export async function listVersions(dataDir, specId) {
|
|
70
|
+
const store = await loadVersionStore(dataDir, specId);
|
|
71
|
+
return [...store.versions].sort((a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime());
|
|
72
|
+
}
|
|
73
|
+
/** Get the latest version tag for a spec. Returns null if no versions exist. */
|
|
74
|
+
export async function getLatestVersionTag(dataDir, specId) {
|
|
75
|
+
const versions = await listVersions(dataDir, specId);
|
|
76
|
+
if (versions.length === 0) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
const latest = versions[versions.length - 1];
|
|
80
|
+
return latest?.tag ?? null;
|
|
81
|
+
}
|
|
82
|
+
/** Suggest the next patch version given the current latest tag. */
|
|
83
|
+
export function suggestNextTag(latestTag) {
|
|
84
|
+
if (latestTag === null) {
|
|
85
|
+
return 'v1.0.0';
|
|
86
|
+
}
|
|
87
|
+
const match = /^v(\d+)\.(\d+)\.(\d+)$/.exec(latestTag);
|
|
88
|
+
if (!match) {
|
|
89
|
+
return 'v1.0.0';
|
|
90
|
+
}
|
|
91
|
+
const major = Number(match[1]);
|
|
92
|
+
const minor = Number(match[2]);
|
|
93
|
+
const patch = Number(match[3]);
|
|
94
|
+
return `v${major}.${minor}.${patch + 1}`;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=version-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-store.js","sourceRoot":"","sources":["../../../src/engine/spec-versioning/version-store.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAOrC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C,yDAAyD;AACzD,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,MAAc;IAC5D,OAAO,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,2DAA2D;AAC3D,SAAS,mBAAmB,CAAC,OAAe,EAAE,MAAc;IAC1D,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAClE,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,MAAc;IAEd,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAClC,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,KAAK,UAAU,gBAAgB,CAC7B,OAAe,EACf,MAAc,EACd,KAA+B;IAE/B,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC9C,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,kDAAkD;AAClD,SAAS,SAAS,CAAC,KAA+B,EAAE,GAAW;IAC7D,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACxE,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAe,EACf,KAAiC;IAEjC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAExD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,wBAAwB,GAAG,2DAA2D,CACvF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEtD,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,6BAA6B,MAAM,wBAAwB,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,OAAO,GAAwB;QACnC,GAAG;QACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO;QACP,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC;IAEF,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,MAAc,EACd,GAAW;IAEX,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC;AAChF,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,MAAc;IAEd,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAC5E,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAe,EAAE,MAAc;IACvE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,OAAO,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC;AAC7B,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,cAAc,CAAC,SAAwB;IACrD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-advisor.d.ts","sourceRoot":"","sources":["../../../src/engine/web-fetcher/stack-advisor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAwBpF,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAStF;AAwHD,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,EAAE,GACpB,mBAAmB,CAUrB;AAED,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EAAE,GACtB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"stack-advisor.d.ts","sourceRoot":"","sources":["../../../src/engine/web-fetcher/stack-advisor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAwBpF,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAStF;AAwHD,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,EAAE,GACpB,mBAAmB,CAUrB;AAED,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EAAE,GACtB,mBAAmB,CAiErB;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,CA4BpC;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,mBAAmB,GACzB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAgCvD;AAED,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,kBAAkB,CAAC,CA4B7B"}
|
|
@@ -135,9 +135,9 @@ export function recommendStack(projectType, requirements, constraints) {
|
|
|
135
135
|
const reqStr = requirements.join(' ').toLowerCase();
|
|
136
136
|
const constStr = constraints.join(' ').toLowerCase();
|
|
137
137
|
const recommendations = getBaseRecommendations();
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
138
|
+
const base =
|
|
139
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- 'web' key always exists in getBaseRecommendations()
|
|
140
|
+
recommendations[projectType] ?? recommendations.web;
|
|
141
141
|
return applyRequirementOverrides(base, reqStr, constStr);
|
|
142
142
|
}
|
|
143
143
|
export function recommendAlternativeStack(projectType, _requirements) {
|
|
@@ -198,9 +198,8 @@ export function recommendAlternativeStack(projectType, _requirements) {
|
|
|
198
198
|
ecosystem: ['cargo', 'serde', 'tokio'],
|
|
199
199
|
},
|
|
200
200
|
};
|
|
201
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- 'web' key
|
|
202
|
-
|
|
203
|
-
return alternatives[projectType] ?? defaultAlt;
|
|
201
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- 'web' key always exists in object literal above
|
|
202
|
+
return alternatives[projectType] ?? alternatives.web;
|
|
204
203
|
}
|
|
205
204
|
export function buildWhyNotOthers(_projectType, chosenFramework) {
|
|
206
205
|
const allAlternatives = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-advisor.js","sourceRoot":"","sources":["../../../src/engine/web-fetcher/stack-advisor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"stack-advisor.js","sourceRoot":"","sources":["../../../src/engine/web-fetcher/stack-advisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DiscoveryResult } from '../../types/well-known.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parse and validate a .well-known/planu.json manifest from a raw JSON string.
|
|
4
|
+
* Returns a DiscoveryResult with the parsed manifest or validation errors.
|
|
5
|
+
*/
|
|
6
|
+
export declare function parseManifest(source: string, rawJson: string): DiscoveryResult;
|
|
7
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/engine/well-known/discovery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAmC,eAAe,EAAE,MAAM,2BAA2B,CAAC;AA+FlG;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,CAiC9E"}
|