@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,143 @@
|
|
|
1
|
+
/** Numeric weight per priority (higher = more important). Used for sorting and scoring. */
|
|
2
|
+
export const PRIORITY_ORDER = {
|
|
3
|
+
critical: 4,
|
|
4
|
+
high: 3,
|
|
5
|
+
medium: 2,
|
|
6
|
+
low: 1,
|
|
7
|
+
};
|
|
8
|
+
/** Keywords that indicate an existing AC already covers error handling. */
|
|
9
|
+
export const ERROR_HANDLING_KEYWORDS = [
|
|
10
|
+
'error',
|
|
11
|
+
'fail',
|
|
12
|
+
'invalid',
|
|
13
|
+
'exception',
|
|
14
|
+
'reject',
|
|
15
|
+
'4xx',
|
|
16
|
+
'5xx',
|
|
17
|
+
'not found',
|
|
18
|
+
'404',
|
|
19
|
+
'500',
|
|
20
|
+
'timeout',
|
|
21
|
+
'unavailable',
|
|
22
|
+
'catch',
|
|
23
|
+
'handling',
|
|
24
|
+
];
|
|
25
|
+
/** Keywords that indicate existing ACs cover security concerns. */
|
|
26
|
+
export const SECURITY_KEYWORDS = [
|
|
27
|
+
'auth',
|
|
28
|
+
'permission',
|
|
29
|
+
'role',
|
|
30
|
+
'unauthorized',
|
|
31
|
+
'forbidden',
|
|
32
|
+
'jwt',
|
|
33
|
+
'token',
|
|
34
|
+
'csrf',
|
|
35
|
+
'xss',
|
|
36
|
+
'inject',
|
|
37
|
+
'sanitize',
|
|
38
|
+
'rate limit',
|
|
39
|
+
'throttle',
|
|
40
|
+
'secure',
|
|
41
|
+
'encrypt',
|
|
42
|
+
'https',
|
|
43
|
+
];
|
|
44
|
+
/** Keywords that indicate existing ACs cover performance concerns. */
|
|
45
|
+
export const PERFORMANCE_KEYWORDS = [
|
|
46
|
+
'performance',
|
|
47
|
+
'latency',
|
|
48
|
+
'response time',
|
|
49
|
+
'load',
|
|
50
|
+
'concurrent',
|
|
51
|
+
'throughput',
|
|
52
|
+
'cache',
|
|
53
|
+
'slow',
|
|
54
|
+
'fast',
|
|
55
|
+
'benchmark',
|
|
56
|
+
'sla',
|
|
57
|
+
'p95',
|
|
58
|
+
'p99',
|
|
59
|
+
];
|
|
60
|
+
/** Keywords that indicate existing ACs cover accessibility. */
|
|
61
|
+
export const ACCESSIBILITY_KEYWORDS = [
|
|
62
|
+
'accessibility',
|
|
63
|
+
'a11y',
|
|
64
|
+
'wcag',
|
|
65
|
+
'aria',
|
|
66
|
+
'screen reader',
|
|
67
|
+
'keyboard',
|
|
68
|
+
'focus',
|
|
69
|
+
'contrast',
|
|
70
|
+
'alt text',
|
|
71
|
+
];
|
|
72
|
+
/** Keywords that indicate existing ACs cover input/data validation. */
|
|
73
|
+
export const DATA_VALIDATION_KEYWORDS = [
|
|
74
|
+
'validate',
|
|
75
|
+
'validation',
|
|
76
|
+
'required field',
|
|
77
|
+
'max length',
|
|
78
|
+
'min length',
|
|
79
|
+
'format',
|
|
80
|
+
'schema',
|
|
81
|
+
'constraint',
|
|
82
|
+
'sanitize',
|
|
83
|
+
'input',
|
|
84
|
+
'boundary',
|
|
85
|
+
];
|
|
86
|
+
/** Keywords that indicate existing ACs cover observability. */
|
|
87
|
+
export const OBSERVABILITY_KEYWORDS = [
|
|
88
|
+
'log',
|
|
89
|
+
'metric',
|
|
90
|
+
'trace',
|
|
91
|
+
'monitor',
|
|
92
|
+
'alert',
|
|
93
|
+
'audit',
|
|
94
|
+
'observability',
|
|
95
|
+
'telemetry',
|
|
96
|
+
'event',
|
|
97
|
+
];
|
|
98
|
+
/** Keywords that indicate existing ACs cover edge cases broadly. */
|
|
99
|
+
export const EDGE_CASE_KEYWORDS = [
|
|
100
|
+
'edge',
|
|
101
|
+
'empty',
|
|
102
|
+
'null',
|
|
103
|
+
'boundary',
|
|
104
|
+
'concurrent',
|
|
105
|
+
'race condition',
|
|
106
|
+
'duplicate',
|
|
107
|
+
'overflow',
|
|
108
|
+
'underflow',
|
|
109
|
+
'missing',
|
|
110
|
+
'optional',
|
|
111
|
+
];
|
|
112
|
+
/** Keywords that indicate existing ACs cover rollback / undo. */
|
|
113
|
+
export const ROLLBACK_KEYWORDS = [
|
|
114
|
+
'rollback',
|
|
115
|
+
'undo',
|
|
116
|
+
'revert',
|
|
117
|
+
'restore',
|
|
118
|
+
'migration',
|
|
119
|
+
'transaction',
|
|
120
|
+
'atomic',
|
|
121
|
+
'idempotent',
|
|
122
|
+
];
|
|
123
|
+
/** Signal words that suggest this spec likely has UI / frontend components. */
|
|
124
|
+
export const WEB_UI_KEYWORDS = [
|
|
125
|
+
'ui',
|
|
126
|
+
'frontend',
|
|
127
|
+
'form',
|
|
128
|
+
'page',
|
|
129
|
+
'view',
|
|
130
|
+
'component',
|
|
131
|
+
'modal',
|
|
132
|
+
'button',
|
|
133
|
+
'screen',
|
|
134
|
+
'layout',
|
|
135
|
+
'render',
|
|
136
|
+
'display',
|
|
137
|
+
'react',
|
|
138
|
+
'vue',
|
|
139
|
+
'angular',
|
|
140
|
+
'html',
|
|
141
|
+
'css',
|
|
142
|
+
];
|
|
143
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/engine/ac-gap-detector/constants.ts"],"names":[],"mappings":"AAGA,2FAA2F;AAC3F,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;CACP,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,OAAO;IACP,MAAM;IACN,SAAS;IACT,WAAW;IACX,QAAQ;IACR,KAAK;IACL,KAAK;IACL,WAAW;IACX,KAAK;IACL,KAAK;IACL,SAAS;IACT,aAAa;IACb,OAAO;IACP,UAAU;CACX,CAAC;AAEF,mEAAmE;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,MAAM;IACN,YAAY;IACZ,MAAM;IACN,cAAc;IACd,WAAW;IACX,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,SAAS;IACT,OAAO;CACR,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,aAAa;IACb,SAAS;IACT,eAAe;IACf,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,MAAM;IACN,MAAM;IACN,WAAW;IACX,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,eAAe;IACf,MAAM;IACN,MAAM;IACN,MAAM;IACN,eAAe;IACf,UAAU;IACV,OAAO;IACP,UAAU;IACV,UAAU;CACX,CAAC;AAEF,uEAAuE;AACvE,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,UAAU;IACV,YAAY;IACZ,gBAAgB;IAChB,YAAY;IACZ,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,OAAO;IACP,UAAU;CACX,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,KAAK;IACL,QAAQ;IACR,OAAO;IACP,SAAS;IACT,OAAO;IACP,OAAO;IACP,eAAe;IACf,WAAW;IACX,OAAO;CACR,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,MAAM;IACN,OAAO;IACP,MAAM;IACN,UAAU;IACV,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,UAAU;IACV,WAAW;IACX,SAAS;IACT,UAAU;CACX,CAAC;AAEF,iEAAiE;AACjE,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,UAAU;IACV,MAAM;IACN,QAAQ;IACR,SAAS;IACT,WAAW;IACX,aAAa;IACb,QAAQ;IACR,YAAY;CACb,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD,IAAI;IACJ,UAAU;IACV,MAAM;IACN,MAAM;IACN,MAAM;IACN,WAAW;IACX,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,OAAO;IACP,KAAK;IACL,SAAS;IACT,MAAM;IACN,KAAK;CACN,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { GapRule } from '../../types/ac-gap.js';
|
|
2
|
+
export declare const ruleErrorHandling: GapRule;
|
|
3
|
+
export declare const ruleSecurityAuth: GapRule;
|
|
4
|
+
export declare const ruleDataValidation: GapRule;
|
|
5
|
+
export declare const rulePerformance: GapRule;
|
|
6
|
+
export declare const ruleAccessibility: GapRule;
|
|
7
|
+
export declare const ruleEdgeCases: GapRule;
|
|
8
|
+
export declare const ruleObservability: GapRule;
|
|
9
|
+
export declare const ruleRollback: GapRule;
|
|
10
|
+
/** All rules, ordered from highest to lowest default priority. */
|
|
11
|
+
export declare const ALL_RULES: readonly GapRule[];
|
|
12
|
+
/** Map from category name to its rule for targeted execution. */
|
|
13
|
+
export declare const RULE_BY_CATEGORY: Record<string, GapRule>;
|
|
14
|
+
/** Returns the rules to run given an optional category filter. */
|
|
15
|
+
export declare function selectRules(categories?: string[]): readonly GapRule[];
|
|
16
|
+
//# sourceMappingURL=gap-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gap-rules.d.ts","sourceRoot":"","sources":["../../../src/engine/ac-gap-detector/gap-rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,uBAAuB,CAAC;AA8BrE,eAAO,MAAM,iBAAiB,EAAE,OAe/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,OAoB9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAmBhC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,OAmB7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,OAkB/B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAmB3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,OAmB/B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAmB1B,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,SAAS,EAAE,SAAS,OAAO,EASvC,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CASpD,CAAC;AAEF,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,OAAO,EAAE,CAOrE"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { containsAny } from './pattern-matcher.js';
|
|
2
|
+
import { ERROR_HANDLING_KEYWORDS, SECURITY_KEYWORDS, PERFORMANCE_KEYWORDS, ACCESSIBILITY_KEYWORDS, DATA_VALIDATION_KEYWORDS, OBSERVABILITY_KEYWORDS, EDGE_CASE_KEYWORDS, ROLLBACK_KEYWORDS, } from './constants.js';
|
|
3
|
+
/** Generates a sequential ID for a suggestion (e.g. "GAP-01"). */
|
|
4
|
+
function nextId(ctx, prefix) {
|
|
5
|
+
const counter = ctx.idCounter;
|
|
6
|
+
counter.value += 1;
|
|
7
|
+
return `${prefix}-${String(counter.value).padStart(2, '0')}`;
|
|
8
|
+
}
|
|
9
|
+
/** Checks whether any existing AC already covers the given keywords. */
|
|
10
|
+
function acCovers(acLines, keywords) {
|
|
11
|
+
const combined = acLines.join(' ').toLowerCase();
|
|
12
|
+
return containsAny(combined, keywords);
|
|
13
|
+
}
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// Individual gap rules
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
export const ruleErrorHandling = (ctx) => {
|
|
18
|
+
if (acCovers(ctx.acLines, ERROR_HANDLING_KEYWORDS)) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
id: nextId(ctx, 'EH'),
|
|
23
|
+
category: 'error-handling',
|
|
24
|
+
priority: 'high',
|
|
25
|
+
suggestion: 'Add ACs covering error and failure scenarios',
|
|
26
|
+
rationale: 'No existing AC addresses error handling. Every user-facing operation should specify behavior on failure.',
|
|
27
|
+
example: 'When the operation fails due to a server error, the system shows an actionable error message and does not corrupt state.',
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export const ruleSecurityAuth = (ctx) => {
|
|
31
|
+
if (acCovers(ctx.acLines, SECURITY_KEYWORDS)) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
// Only flag if the spec text mentions anything that could be user-facing or data-mutating
|
|
35
|
+
const mutableKeywords = ['create', 'update', 'delete', 'submit', 'write', 'post', 'put'];
|
|
36
|
+
if (!containsAny(ctx.fullText, mutableKeywords)) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
id: nextId(ctx, 'SEC'),
|
|
41
|
+
category: 'security',
|
|
42
|
+
priority: 'critical',
|
|
43
|
+
suggestion: 'Add ACs specifying authentication and authorization requirements',
|
|
44
|
+
rationale: 'The spec describes mutable operations but no AC defines who is allowed to perform them.',
|
|
45
|
+
example: 'When an unauthenticated user attempts the action, the system returns 401 and logs the attempt.',
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export const ruleDataValidation = (ctx) => {
|
|
49
|
+
if (acCovers(ctx.acLines, DATA_VALIDATION_KEYWORDS)) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
const inputKeywords = ['input', 'form', 'field', 'parameter', 'payload', 'body', 'request'];
|
|
53
|
+
if (!containsAny(ctx.fullText, inputKeywords)) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
id: nextId(ctx, 'DV'),
|
|
58
|
+
category: 'data-validation',
|
|
59
|
+
priority: 'high',
|
|
60
|
+
suggestion: 'Add ACs covering input validation boundaries and constraints',
|
|
61
|
+
rationale: 'The spec references inputs or form fields but no AC defines validation rules, required fields, or format constraints.',
|
|
62
|
+
example: 'When the user submits a required field as empty, the system highlights the field and prevents submission.',
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
export const rulePerformance = (ctx) => {
|
|
66
|
+
if (acCovers(ctx.acLines, PERFORMANCE_KEYWORDS)) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
const heavyKeywords = ['list', 'search', 'query', 'load', 'export', 'report', 'bulk', 'batch'];
|
|
70
|
+
if (!containsAny(ctx.fullText, heavyKeywords)) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
id: nextId(ctx, 'PERF'),
|
|
75
|
+
category: 'performance',
|
|
76
|
+
priority: 'medium',
|
|
77
|
+
suggestion: 'Add ACs defining acceptable response time or throughput',
|
|
78
|
+
rationale: 'The spec involves potentially expensive operations (search/list/bulk) but no AC defines performance expectations.',
|
|
79
|
+
example: 'When the user triggers a list/search, the response completes in under 2 seconds for up to 10,000 records.',
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
export const ruleAccessibility = (ctx) => {
|
|
83
|
+
if (!ctx.hasWebUi) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
if (acCovers(ctx.acLines, ACCESSIBILITY_KEYWORDS)) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
id: nextId(ctx, 'A11Y'),
|
|
91
|
+
category: 'accessibility',
|
|
92
|
+
priority: 'medium',
|
|
93
|
+
suggestion: 'Add ACs verifying keyboard navigation and screen reader compatibility',
|
|
94
|
+
rationale: 'This spec appears to include UI components but no AC ensures WCAG accessibility compliance.',
|
|
95
|
+
example: 'When a keyboard-only user navigates the form, all interactive elements are reachable via Tab and operable via Enter/Space.',
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
export const ruleEdgeCases = (ctx) => {
|
|
99
|
+
if (acCovers(ctx.acLines, EDGE_CASE_KEYWORDS)) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
// Flag when there are fewer than 3 ACs — sparse specs likely miss edge cases
|
|
103
|
+
if (ctx.acLines.length >= 3) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
id: nextId(ctx, 'EDGE'),
|
|
108
|
+
category: 'edge-cases',
|
|
109
|
+
priority: 'medium',
|
|
110
|
+
suggestion: 'Add ACs covering empty/null/boundary input conditions',
|
|
111
|
+
rationale: 'The spec has few acceptance criteria and likely misses edge cases such as empty collections, null values, or boundary inputs.',
|
|
112
|
+
example: 'When the dataset is empty, the system renders a clear empty-state message instead of an error.',
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
export const ruleObservability = (ctx) => {
|
|
116
|
+
if (acCovers(ctx.acLines, OBSERVABILITY_KEYWORDS)) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
const criticalKeywords = ['payment', 'billing', 'order', 'transaction', 'deploy', 'migration'];
|
|
120
|
+
if (!containsAny(ctx.fullText, criticalKeywords)) {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
id: nextId(ctx, 'OBS'),
|
|
125
|
+
category: 'observability',
|
|
126
|
+
priority: 'high',
|
|
127
|
+
suggestion: 'Add ACs specifying logging and audit trail requirements',
|
|
128
|
+
rationale: 'The spec involves business-critical operations that typically require audit logs or metrics.',
|
|
129
|
+
example: 'When the operation completes (or fails), an audit log entry is written with actor, timestamp, and outcome.',
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
export const ruleRollback = (ctx) => {
|
|
133
|
+
if (acCovers(ctx.acLines, ROLLBACK_KEYWORDS)) {
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
const migrationKeywords = ['migration', 'schema change', 'deploy', 'upgrade', 'rollout'];
|
|
137
|
+
if (!containsAny(ctx.fullText, migrationKeywords)) {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
id: nextId(ctx, 'RB'),
|
|
142
|
+
category: 'rollback',
|
|
143
|
+
priority: 'high',
|
|
144
|
+
suggestion: 'Add ACs covering rollback or undo behavior if the operation fails midway',
|
|
145
|
+
rationale: 'The spec describes a multi-step or migration-like operation but no AC defines the rollback strategy.',
|
|
146
|
+
example: 'When the migration fails partway through, the system rolls back all changes and the database is left in its original state.',
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
/** All rules, ordered from highest to lowest default priority. */
|
|
150
|
+
export const ALL_RULES = [
|
|
151
|
+
ruleSecurityAuth,
|
|
152
|
+
ruleErrorHandling,
|
|
153
|
+
ruleDataValidation,
|
|
154
|
+
ruleRollback,
|
|
155
|
+
ruleObservability,
|
|
156
|
+
rulePerformance,
|
|
157
|
+
ruleAccessibility,
|
|
158
|
+
ruleEdgeCases,
|
|
159
|
+
];
|
|
160
|
+
/** Map from category name to its rule for targeted execution. */
|
|
161
|
+
export const RULE_BY_CATEGORY = {
|
|
162
|
+
'error-handling': ruleErrorHandling,
|
|
163
|
+
security: ruleSecurityAuth,
|
|
164
|
+
'data-validation': ruleDataValidation,
|
|
165
|
+
performance: rulePerformance,
|
|
166
|
+
accessibility: ruleAccessibility,
|
|
167
|
+
'edge-cases': ruleEdgeCases,
|
|
168
|
+
observability: ruleObservability,
|
|
169
|
+
rollback: ruleRollback,
|
|
170
|
+
};
|
|
171
|
+
/** Returns the rules to run given an optional category filter. */
|
|
172
|
+
export function selectRules(categories) {
|
|
173
|
+
if (!categories || categories.length === 0) {
|
|
174
|
+
return ALL_RULES;
|
|
175
|
+
}
|
|
176
|
+
return categories
|
|
177
|
+
.map((cat) => RULE_BY_CATEGORY[cat])
|
|
178
|
+
.filter((r) => r !== undefined);
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=gap-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gap-rules.js","sourceRoot":"","sources":["../../../src/engine/ac-gap-detector/gap-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns true if any keyword from the list appears in the text (case-insensitive).
|
|
3
|
+
*/
|
|
4
|
+
export declare function containsAny(text: string, keywords: readonly string[]): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Extracts acceptance criteria lines from markdown text.
|
|
7
|
+
* Looks for lines starting with "- [ ]", "- [x]", "- [X]", numbered items, or "AC:" prefix.
|
|
8
|
+
* Returns an array of cleaned criterion strings.
|
|
9
|
+
*/
|
|
10
|
+
export declare function extractAcLines(markdown: string): string[];
|
|
11
|
+
/**
|
|
12
|
+
* Computes a simple coverage score 0–100 based on how many gap categories
|
|
13
|
+
* are already addressed vs total expected categories.
|
|
14
|
+
*/
|
|
15
|
+
export declare function computeCoverageScore(coveredCategories: Set<string>, totalCategories: number): number;
|
|
16
|
+
//# sourceMappingURL=pattern-matcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-matcher.d.ts","sourceRoot":"","sources":["../../../src/engine/ac-gap-detector/pattern-matcher.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAG9E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAwCzD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC9B,eAAe,EAAE,MAAM,GACtB,MAAM,CAMR"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// engine/ac-gap-detector/pattern-matcher.ts — Low-level keyword matching utilities (SPEC-156)
|
|
2
|
+
/**
|
|
3
|
+
* Returns true if any keyword from the list appears in the text (case-insensitive).
|
|
4
|
+
*/
|
|
5
|
+
export function containsAny(text, keywords) {
|
|
6
|
+
const lower = text.toLowerCase();
|
|
7
|
+
return keywords.some((kw) => lower.includes(kw));
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Extracts acceptance criteria lines from markdown text.
|
|
11
|
+
* Looks for lines starting with "- [ ]", "- [x]", "- [X]", numbered items, or "AC:" prefix.
|
|
12
|
+
* Returns an array of cleaned criterion strings.
|
|
13
|
+
*/
|
|
14
|
+
export function extractAcLines(markdown) {
|
|
15
|
+
const lines = markdown.split('\n');
|
|
16
|
+
const results = [];
|
|
17
|
+
// Track whether we are inside an acceptance criteria section.
|
|
18
|
+
// Sections start at a heading that matches AC keywords and end at the next heading.
|
|
19
|
+
const AC_HEADING = /^#{1,4}\s+(?:acceptance\s+criteria|ac\b)/i;
|
|
20
|
+
const ANY_HEADING = /^#{1,4}\s+/;
|
|
21
|
+
let insideAcSection = false;
|
|
22
|
+
for (const raw of lines) {
|
|
23
|
+
const line = raw.trim();
|
|
24
|
+
// Update section tracking when we hit a heading
|
|
25
|
+
if (ANY_HEADING.test(line)) {
|
|
26
|
+
insideAcSection = AC_HEADING.test(line);
|
|
27
|
+
}
|
|
28
|
+
// BDD / checkbox style: "- [ ] Given...", "- [x] When..." — always captured regardless of section
|
|
29
|
+
if (/^-\s*\[[ xX]\]/.test(line)) {
|
|
30
|
+
results.push(line.replace(/^-\s*\[[ xX]\]\s*/, '').trim());
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
// Numbered list: "1. When the user..." — always captured regardless of section
|
|
34
|
+
if (/^\d+\.\s+/.test(line)) {
|
|
35
|
+
results.push(line.replace(/^\d+\.\s+/, '').trim());
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
// "AC:" prefix — always captured regardless of section
|
|
39
|
+
if (/^ac:/i.test(line)) {
|
|
40
|
+
results.push(line.replace(/^ac:\s*/i, '').trim());
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
// Plain bullet (- or *) — only captured when inside an acceptance criteria section
|
|
44
|
+
// to avoid pulling in unrelated list items from other sections of the spec.
|
|
45
|
+
if (insideAcSection && /^[-*]\s+/.test(line) && line.length > 5) {
|
|
46
|
+
results.push(line.replace(/^[-*]\s+/, '').trim());
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return results.filter((l) => l.length > 0);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Computes a simple coverage score 0–100 based on how many gap categories
|
|
53
|
+
* are already addressed vs total expected categories.
|
|
54
|
+
*/
|
|
55
|
+
export function computeCoverageScore(coveredCategories, totalCategories) {
|
|
56
|
+
if (totalCategories === 0) {
|
|
57
|
+
return 0;
|
|
58
|
+
}
|
|
59
|
+
const ratio = coveredCategories.size / totalCategories;
|
|
60
|
+
return Math.round(ratio * 100);
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=pattern-matcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-matcher.js","sourceRoot":"","sources":["../../../src/engine/ac-gap-detector/pattern-matcher.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAE9F;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,QAA2B;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,8DAA8D;IAC9D,oFAAoF;IACpF,MAAM,UAAU,GAAG,2CAA2C,CAAC;IAC/D,MAAM,WAAW,GAAG,YAAY,CAAC;IACjC,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAExB,gDAAgD;QAChD,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,kGAAkG;QAClG,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,SAAS;QACX,CAAC;QACD,+EAA+E;QAC/E,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QACD,uDAAuD;QACvD,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,SAAS;QACX,CAAC;QACD,mFAAmF;QACnF,4EAA4E;QAC5E,IAAI,eAAe,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,iBAA8B,EAC9B,eAAuB;IAEvB,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,GAAG,eAAe,CAAC;IACvD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ac-gap-detector.d.ts","sourceRoot":"","sources":["../../src/engine/ac-gap-detector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// engine/ac-gap-detector.ts — Analyzes a spec's acceptance criteria and finds gaps (SPEC-156)
|
|
2
|
+
// Barrel re-export — implementation in src/engine/ac-gap-detector/ subdirectory
|
|
3
|
+
export { analyzeAcGaps } from './ac-gap-detector/analyze-gaps.js';
|
|
4
|
+
export { PRIORITY_ORDER } from './ac-gap-detector/constants.js';
|
|
5
|
+
//# sourceMappingURL=ac-gap-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ac-gap-detector.js","sourceRoot":"","sources":["../../src/engine/ac-gap-detector.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gFAAgF;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -14,7 +14,7 @@ import { detectProjectCategory } from '../platform-detector.js';
|
|
|
14
14
|
/**
|
|
15
15
|
* Full project analysis: scans filesystem to build ProjectKnowledge.
|
|
16
16
|
*/
|
|
17
|
-
// eslint-disable-next-line max-lines-per-function -- orchestrator
|
|
17
|
+
// eslint-disable-next-line max-lines-per-function -- pure orchestrator: two batched Promise.all calls followed by result assembly. All logic lives in the imported detectors; splitting this function would just move the destructuring across files with no complexity reduction.
|
|
18
18
|
export async function analyzeProject(projectPath, projectId, locale = 'en', experienceLevel = 'intermediate', stackSignatures, archPatterns) {
|
|
19
19
|
const signatures = stackSignatures ?? (await loadStackSignatures());
|
|
20
20
|
const archConfig = archPatterns ?? (await loadArchPatterns());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-project.js","sourceRoot":"","sources":["../../../src/engine/analyzer/analyze-project.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,uEAAuE;AAUvE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,qBAAqB;AAErB;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"analyze-project.js","sourceRoot":"","sources":["../../../src/engine/analyzer/analyze-project.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,uEAAuE;AAUvE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,qBAAqB;AAErB;;GAEG;AACH,mRAAmR;AACnR,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,WAAmB,EACnB,SAAiB,EACjB,SAA0B,IAAI,EAC9B,kBAAmC,cAAc,EACjD,eAAiC,EACjC,YAA+B;IAE/B,MAAM,UAAU,GAAG,eAAe,IAAI,CAAC,MAAM,mBAAmB,EAAE,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;IAE9D,MAAM,CACJ,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,aAAa,EACd,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC;QACvC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC;QACxC,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC;QAC7C,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC;QACvC,SAAS,CAAC,WAAW,CAAC;QACtB,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC;QAC/C,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC;QAC3C,cAAc,CAAC,WAAW,CAAC;QAC3B,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC;QACvC,kBAAkB,CAAC,WAAW,CAAC;QAC/B,YAAY,CAAC,WAAW,CAAC;QACzB,iBAAiB,CAAC,WAAW,CAAC;QAC9B,iBAAiB,CAAC,WAAW,CAAC;QAC9B,wBAAwB,CAAC,WAAW,CAAC;KACtC,CAAC,CAAC;IAEH,MAAM,CACJ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,eAAe,EACf,cAAc,EACf,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC;QAC5C,sBAAsB,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC;QAC1D,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC;QAC/C,iBAAiB,CAAC,WAAW,EAAE,cAAc,CAAC;QAC9C,iBAAiB,CAAC,WAAW,EAAE,cAAc,CAAC;QAC9C,sBAAsB,CAAC,WAAW,CAAC;QACnC,aAAa,CAAC,WAAW,CAAC;QAC1B,kBAAkB,CAAC,WAAW,CAAC;QAC/B,qBAAqB,CAAC,WAAW,EAAE,SAAS,CAAC;QAC7C,2BAA2B,CAAC,WAAW,CAAC;KACzC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAEjE,OAAO;QACL,SAAS;QACT,WAAW;QACX,MAAM;QACN,eAAe;QACf,QAAQ;QACR,eAAe;QACf,SAAS;QACT,gBAAgB;QAChB,cAAc;QACd,YAAY;QACZ,WAAW;QACX,WAAW;QACX,KAAK;QACL,QAAQ;QACR,GAAG;QACH,YAAY;QACZ,IAAI;QACJ,WAAW;QACX,MAAM;QACN,YAAY;QACZ,YAAY;QACZ,QAAQ;QACR,gBAAgB;QAChB,OAAO;QACP,YAAY,EAAE,aAAa;QAC3B,QAAQ;QACR,OAAO;QACP,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,EAAE;QAChB,cAAc;QACd,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtC,eAAe;QACf,cAAc,EAAE,cAAc,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;KAC/E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IAMpD,MAAM,UAAU,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC/C,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxE,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC;QACvC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC;QACxC,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC;QAC7C,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC;KACxC,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AAC3D,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { fileExists, hasAnyFile } from '../detection-utils.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Check project completeness (has readme, gitignore, tests, ci, etc.)
|
|
6
6
|
*/
|
|
7
|
-
// eslint-disable-next-line max-lines-per-function -- checklist pattern
|
|
7
|
+
// eslint-disable-next-line max-lines-per-function -- checklist pattern: 20 parallel file-existence checks + destructured results. Each "line" is one named check; condensing them into arrays would lose the named destructuring that makes the return object readable.
|
|
8
8
|
export async function checkProjectCompleteness(projectPath) {
|
|
9
9
|
const checks = await Promise.all([
|
|
10
10
|
fileExists(projectPath, 'README.md'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completeness-checker.js","sourceRoot":"","sources":["../../../src/engine/analyzer/completeness-checker.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,qFAAqF;AAGrF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE/D;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"completeness-checker.js","sourceRoot":"","sources":["../../../src/engine/analyzer/completeness-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export async function analyzeLinting(projectPath) {
|
|
|
7
7
|
return analyzeLintingEnhanced(projectPath);
|
|
8
8
|
}
|
|
9
9
|
// === Convention Detection ===
|
|
10
|
-
// eslint-disable-next-line max-lines-per-function, complexity -- checklist pattern
|
|
10
|
+
// eslint-disable-next-line max-lines-per-function, complexity -- checklist pattern: 25+ sequential fileExists/hasAnyFile probes, one per AI agent platform. Each probe is a distinct config file path — grouping into arrays would lose the per-platform key names needed for the conventions map.
|
|
11
11
|
export async function detectConventions(projectPath) {
|
|
12
12
|
const conventions = {};
|
|
13
13
|
// AI agent configs — detect all major AI coding platforms
|
|
@@ -157,7 +157,7 @@ export async function detectExternalServices(projectPath) {
|
|
|
157
157
|
return [...services];
|
|
158
158
|
}
|
|
159
159
|
// === Tooling Detection ===
|
|
160
|
-
// eslint-disable-next-line complexity -- checklist pattern
|
|
160
|
+
// eslint-disable-next-line complexity -- checklist pattern: each branch detects one tooling category (CI, container, monorepo, bundler, test runner). Extracting to sub-functions would require returning partial records and merging them, adding boilerplate without clarity gains.
|
|
161
161
|
export async function detectTooling(projectPath) {
|
|
162
162
|
const tooling = {};
|
|
163
163
|
// CI/CD
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detectors.js","sourceRoot":"","sources":["../../../src/engine/analyzer/detectors.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,6EAA6E;AAG7E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,qEAAqE;AAErE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,WAAmB;IACtD,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED,+BAA+B;AAE/B,
|
|
1
|
+
{"version":3,"file":"detectors.js","sourceRoot":"","sources":["../../../src/engine/analyzer/detectors.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,6EAA6E;AAG7E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,qEAAqE;AAErE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,WAAmB;IACtD,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED,+BAA+B;AAE/B,mSAAmS;AACnS,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IACzD,MAAM,WAAW,GAA2B,EAAE,CAAC;IAE/C,0DAA0D;IAC1D,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;QAC/C,WAAW,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC;QAClD,WAAW,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACpD,WAAW,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;IACnD,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC;QACjD,WAAW,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,iCAAiC,CAAC,EAAE,CAAC;QACrE,WAAW,CAAC,eAAe,CAAC,GAAG,iCAAiC,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;QAC/C,WAAW,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC;IAC3C,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;QAC9C,WAAW,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,uBAAuB,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;QACjF,WAAW,CAAC,gBAAgB,CAAC,GAAG,uBAAuB,CAAC;IAC1D,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;QACvD,WAAW,CAAC,aAAa,CAAC,GAAG,iBAAiB,CAAC;IACjD,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC7E,WAAW,CAAC,cAAc,CAAC,GAAG,uBAAuB,CAAC;IACxD,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC,EAAE,CAAC;QACnF,WAAW,CAAC,gBAAgB,CAAC,GAAG,mBAAmB,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,sBAAsB,CAAC,EAAE,CAAC;QAC1D,WAAW,CAAC,aAAa,CAAC,GAAG,sBAAsB,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,wBAAwB,CAAC,EAAE,CAAC;QAC5D,WAAW,CAAC,YAAY,CAAC,GAAG,wBAAwB,CAAC;IACvD,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;QAC7C,WAAW,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;QAC1D,WAAW,CAAC,WAAW,CAAC,GAAG,oBAAoB,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAC9E,WAAW,CAAC,eAAe,CAAC,GAAG,sBAAsB,CAAC;IACxD,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,mBAAmB,CAAC,EAAE,CAAC;QACvD,WAAW,CAAC,YAAY,CAAC,GAAG,mBAAmB,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACrD,WAAW,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAC;IACrD,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,sBAAsB,CAAC,EAAE,CAAC;QAC1D,WAAW,CAAC,eAAe,CAAC,GAAG,sBAAsB,CAAC;IACxD,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC;QAC5E,WAAW,CAAC,mBAAmB,CAAC,GAAG,eAAe,CAAC;IACrD,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;QAC/C,uDAAuD;QACvD,WAAW,CAAC,mBAAmB,CAAC,KAAK,WAAW,CAAC;QACjD,WAAW,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;IAC5C,CAAC;IAED,gBAAgB;IAChB,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,CAAC;QACnD,WAAW,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;IACjD,CAAC;IAED,qBAAqB;IACrB,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAC7E,WAAW,CAAC,mBAAmB,CAAC,GAAG,sBAAsB,CAAC;IAC5D,CAAC;IAED,YAAY;IACZ,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC5C,WAAW,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;IACrC,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QACrE,WAAW,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC;QAC/D,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC;IAC1C,CAAC;IAED,cAAc;IACd,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC;QAC9E,WAAW,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;IAC7C,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,gCAAgC;AAEhC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IAC1D,MAAM,YAAY,GAAa,CAAC,aAAa,CAAC,CAAC;IAE/C,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC;QACpF,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC;YAClD,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;YAC/C,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,CAAC;YACrD,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,sCAAsC;AAEtC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,WAAmB;IAC9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAEpD,MAAM,UAAU,GAA6B;QAC3C,MAAM,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;QACvC,GAAG,EAAE,CAAC,SAAS,EAAE,oBAAoB,EAAE,qBAAqB,CAAC;QAC7D,cAAc,EAAE,CAAC,uBAAuB,EAAE,sBAAsB,EAAE,yBAAyB,CAAC;QAC5F,KAAK,EAAE,CAAC,qBAAqB,EAAE,eAAe,CAAC;QAC/C,QAAQ,EAAE,CAAC,uBAAuB,EAAE,eAAe,CAAC;QACpD,QAAQ,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC;QACxC,MAAM,EAAE,CAAC,QAAQ,CAAC;QAClB,QAAQ,EAAE,CAAC,gBAAgB,CAAC;QAC5B,MAAM,EAAE,CAAC,QAAQ,CAAC;QAClB,UAAU,EAAE,CAAC,2BAA2B,EAAE,UAAU,CAAC;QACrD,MAAM,EAAE,CAAC,mBAAmB,EAAE,YAAY,CAAC;QAC3C,MAAM,EAAE,CAAC,cAAc,EAAE,gBAAgB,EAAE,eAAe,CAAC;QAC3D,OAAO,EAAE,CAAC,UAAU,CAAC;QACrB,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;QAC3B,aAAa,EAAE,CAAC,wBAAwB,CAAC;QACzC,OAAO,EAAE,CAAC,eAAe,CAAC;QAC1B,MAAM,EAAE,CAAC,QAAQ,CAAC;QAClB,SAAS,EAAE,CAAC,mBAAmB,CAAC;QAChC,KAAK,EAAE,CAAC,qBAAqB,EAAE,OAAO,CAAC;QACvC,KAAK,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC;KAClD,CAAC;IAEF,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvB,CAAC;AAED,4BAA4B;AAE5B,sRAAsR;AACtR,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,QAAQ;IACR,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,EAAE,GAAG,gBAAgB,CAAC;IAChC,CAAC;SAAM,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,EAAE,GAAG,WAAW,CAAC;IAC3B,CAAC;SAAM,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IACzB,CAAC;SAAM,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC;IAC1B,CAAC;IAED,aAAa;IACb,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC;QACjF,OAAO,CAAC,aAAa,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC;IACvC,CAAC;IAED,6BAA6B;IAC7B,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC;IACjC,CAAC;SAAM,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,WAAW;IACX,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;IAC3B,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAC9B,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAC9B,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC7B,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;IAC3B,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;IAChC,CAAC;IAED,UAAU;IACV,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC7B,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;IAC3B,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAC5B,CAAC;SAAM,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC7B,CAAC;SAAM,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC;IACjC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AttestationData } from '../../types/audit-trail.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generate an attestation document for all events of a given spec.
|
|
4
|
+
* Verifies chain integrity and embeds the result in the attestation.
|
|
5
|
+
*
|
|
6
|
+
* @param filePath Absolute path to the project's audit-log.jsonl.
|
|
7
|
+
* @param projectId Project identifier.
|
|
8
|
+
* @param specId Spec identifier to filter events for.
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateAttestation(filePath: string, projectId: string, specId: string): Promise<AttestationData>;
|
|
11
|
+
//# sourceMappingURL=attestation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../../../src/engine/audit-trail/attestation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA8B,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAe9F;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC,CAyB1B"}
|