@prodara/compiler 0.1.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/README.md +204 -0
- package/dist/agent/agent.d.ts +10 -0
- package/dist/agent/agent.d.ts.map +1 -0
- package/dist/agent/agent.js +122 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/api-client.d.ts +29 -0
- package/dist/agent/api-client.d.ts.map +1 -0
- package/dist/agent/api-client.js +167 -0
- package/dist/agent/api-client.js.map +1 -0
- package/dist/agent/index.d.ts +5 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +3 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/party.d.ts +48 -0
- package/dist/agent/party.d.ts.map +1 -0
- package/dist/agent/party.js +79 -0
- package/dist/agent/party.js.map +1 -0
- package/dist/agent/types.d.ts +35 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +5 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/audit/audit.d.ts +32 -0
- package/dist/audit/audit.d.ts.map +1 -0
- package/dist/audit/audit.js +120 -0
- package/dist/audit/audit.js.map +1 -0
- package/dist/audit/index.d.ts +3 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +2 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/types.d.ts +25 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +5 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/binder/binder.d.ts +34 -0
- package/dist/binder/binder.d.ts.map +1 -0
- package/dist/binder/binder.js +202 -0
- package/dist/binder/binder.js.map +1 -0
- package/dist/binder/index.d.ts +3 -0
- package/dist/binder/index.d.ts.map +1 -0
- package/dist/binder/index.js +2 -0
- package/dist/binder/index.js.map +1 -0
- package/dist/build-state/build-state.d.ts +40 -0
- package/dist/build-state/build-state.d.ts.map +1 -0
- package/dist/build-state/build-state.js +180 -0
- package/dist/build-state/build-state.js.map +1 -0
- package/dist/build-state/index.d.ts +3 -0
- package/dist/build-state/index.d.ts.map +1 -0
- package/dist/build-state/index.js +2 -0
- package/dist/build-state/index.js.map +1 -0
- package/dist/checker/index.d.ts +5 -0
- package/dist/checker/index.d.ts.map +1 -0
- package/dist/checker/index.js +3 -0
- package/dist/checker/index.js.map +1 -0
- package/dist/checker/type-checker.d.ts +8 -0
- package/dist/checker/type-checker.d.ts.map +1 -0
- package/dist/checker/type-checker.js +136 -0
- package/dist/checker/type-checker.js.map +1 -0
- package/dist/checker/validator.d.ts +8 -0
- package/dist/checker/validator.d.ts.map +1 -0
- package/dist/checker/validator.js +251 -0
- package/dist/checker/validator.js.map +1 -0
- package/dist/cli/agent-setup.d.ts +27 -0
- package/dist/cli/agent-setup.d.ts.map +1 -0
- package/dist/cli/agent-setup.js +829 -0
- package/dist/cli/agent-setup.js.map +1 -0
- package/dist/cli/analyze.d.ts +28 -0
- package/dist/cli/analyze.d.ts.map +1 -0
- package/dist/cli/analyze.js +188 -0
- package/dist/cli/analyze.js.map +1 -0
- package/dist/cli/checklist.d.ts +27 -0
- package/dist/cli/checklist.d.ts.map +1 -0
- package/dist/cli/checklist.js +153 -0
- package/dist/cli/checklist.js.map +1 -0
- package/dist/cli/compile.d.ts +26 -0
- package/dist/cli/compile.d.ts.map +1 -0
- package/dist/cli/compile.js +112 -0
- package/dist/cli/compile.js.map +1 -0
- package/dist/cli/dashboard.d.ts +19 -0
- package/dist/cli/dashboard.d.ts.map +1 -0
- package/dist/cli/dashboard.js +73 -0
- package/dist/cli/dashboard.js.map +1 -0
- package/dist/cli/explain.d.ts +23 -0
- package/dist/cli/explain.d.ts.map +1 -0
- package/dist/cli/explain.js +144 -0
- package/dist/cli/explain.js.map +1 -0
- package/dist/cli/git.d.ts +14 -0
- package/dist/cli/git.d.ts.map +1 -0
- package/dist/cli/git.js +44 -0
- package/dist/cli/git.js.map +1 -0
- package/dist/cli/lifecycle.d.ts +28 -0
- package/dist/cli/lifecycle.d.ts.map +1 -0
- package/dist/cli/lifecycle.js +82 -0
- package/dist/cli/lifecycle.js.map +1 -0
- package/dist/cli/main.d.ts +10 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +1072 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/notify.d.ts +13 -0
- package/dist/cli/notify.d.ts.map +1 -0
- package/dist/cli/notify.js +36 -0
- package/dist/cli/notify.js.map +1 -0
- package/dist/cli/starters.d.ts +12 -0
- package/dist/cli/starters.d.ts.map +1 -0
- package/dist/cli/starters.js +439 -0
- package/dist/cli/starters.js.map +1 -0
- package/dist/config/config.d.ts +194 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +434 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +5 -0
- package/dist/config/index.js.map +1 -0
- package/dist/diagnostics/diagnostic.d.ts +44 -0
- package/dist/diagnostics/diagnostic.d.ts.map +1 -0
- package/dist/diagnostics/diagnostic.js +44 -0
- package/dist/diagnostics/diagnostic.js.map +1 -0
- package/dist/diagnostics/index.d.ts +4 -0
- package/dist/diagnostics/index.d.ts.map +1 -0
- package/dist/diagnostics/index.js +3 -0
- package/dist/diagnostics/index.js.map +1 -0
- package/dist/diagnostics/reporter.d.ts +43 -0
- package/dist/diagnostics/reporter.d.ts.map +1 -0
- package/dist/diagnostics/reporter.js +74 -0
- package/dist/diagnostics/reporter.js.map +1 -0
- package/dist/discovery/discovery.d.ts +6 -0
- package/dist/discovery/discovery.d.ts.map +1 -0
- package/dist/discovery/discovery.js +66 -0
- package/dist/discovery/discovery.js.map +1 -0
- package/dist/discovery/index.d.ts +2 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +2 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/doc-gen/doc-gen-types.d.ts +174 -0
- package/dist/doc-gen/doc-gen-types.d.ts.map +1 -0
- package/dist/doc-gen/doc-gen-types.js +7 -0
- package/dist/doc-gen/doc-gen-types.js.map +1 -0
- package/dist/doc-gen/doc-renderer.d.ts +17 -0
- package/dist/doc-gen/doc-renderer.d.ts.map +1 -0
- package/dist/doc-gen/doc-renderer.js +65 -0
- package/dist/doc-gen/doc-renderer.js.map +1 -0
- package/dist/doc-gen/format-helpers.d.ts +18 -0
- package/dist/doc-gen/format-helpers.d.ts.map +1 -0
- package/dist/doc-gen/format-helpers.js +92 -0
- package/dist/doc-gen/format-helpers.js.map +1 -0
- package/dist/doc-gen/index.d.ts +5 -0
- package/dist/doc-gen/index.d.ts.map +1 -0
- package/dist/doc-gen/index.js +5 -0
- package/dist/doc-gen/index.js.map +1 -0
- package/dist/doc-gen/link-resolver.d.ts +10 -0
- package/dist/doc-gen/link-resolver.d.ts.map +1 -0
- package/dist/doc-gen/link-resolver.js +87 -0
- package/dist/doc-gen/link-resolver.js.map +1 -0
- package/dist/doc-gen/mermaid-renderers.d.ts +12 -0
- package/dist/doc-gen/mermaid-renderers.d.ts.map +1 -0
- package/dist/doc-gen/mermaid-renderers.js +197 -0
- package/dist/doc-gen/mermaid-renderers.js.map +1 -0
- package/dist/doc-gen/module-renderer.d.ts +6 -0
- package/dist/doc-gen/module-renderer.d.ts.map +1 -0
- package/dist/doc-gen/module-renderer.js +54 -0
- package/dist/doc-gen/module-renderer.js.map +1 -0
- package/dist/doc-gen/product-renderer.d.ts +6 -0
- package/dist/doc-gen/product-renderer.d.ts.map +1 -0
- package/dist/doc-gen/product-renderer.js +101 -0
- package/dist/doc-gen/product-renderer.js.map +1 -0
- package/dist/doc-gen/section-renderers.d.ts +20 -0
- package/dist/doc-gen/section-renderers.d.ts.map +1 -0
- package/dist/doc-gen/section-renderers.js +357 -0
- package/dist/doc-gen/section-renderers.js.map +1 -0
- package/dist/doc-gen/string-resolver.d.ts +8 -0
- package/dist/doc-gen/string-resolver.d.ts.map +1 -0
- package/dist/doc-gen/string-resolver.js +47 -0
- package/dist/doc-gen/string-resolver.js.map +1 -0
- package/dist/doc-gen/surface-ascii.d.ts +7 -0
- package/dist/doc-gen/surface-ascii.d.ts.map +1 -0
- package/dist/doc-gen/surface-ascii.js +87 -0
- package/dist/doc-gen/surface-ascii.js.map +1 -0
- package/dist/drift/drift.d.ts +16 -0
- package/dist/drift/drift.d.ts.map +1 -0
- package/dist/drift/drift.js +149 -0
- package/dist/drift/drift.js.map +1 -0
- package/dist/drift/index.d.ts +3 -0
- package/dist/drift/index.d.ts.map +1 -0
- package/dist/drift/index.js +2 -0
- package/dist/drift/index.js.map +1 -0
- package/dist/extensions/index.d.ts +6 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +7 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/loader.d.ts +21 -0
- package/dist/extensions/loader.d.ts.map +1 -0
- package/dist/extensions/loader.js +101 -0
- package/dist/extensions/loader.js.map +1 -0
- package/dist/extensions/marketplace.d.ts +22 -0
- package/dist/extensions/marketplace.d.ts.map +1 -0
- package/dist/extensions/marketplace.js +40 -0
- package/dist/extensions/marketplace.js.map +1 -0
- package/dist/extensions/registry.d.ts +45 -0
- package/dist/extensions/registry.d.ts.map +1 -0
- package/dist/extensions/registry.js +82 -0
- package/dist/extensions/registry.js.map +1 -0
- package/dist/extensions/types.d.ts +41 -0
- package/dist/extensions/types.d.ts.map +1 -0
- package/dist/extensions/types.js +5 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/generator/contracts.d.ts +67 -0
- package/dist/generator/contracts.d.ts.map +1 -0
- package/dist/generator/contracts.js +94 -0
- package/dist/generator/contracts.js.map +1 -0
- package/dist/generator/index.d.ts +3 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +2 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/governance/governance.d.ts +24 -0
- package/dist/governance/governance.d.ts.map +1 -0
- package/dist/governance/governance.js +238 -0
- package/dist/governance/governance.js.map +1 -0
- package/dist/governance/index.d.ts +3 -0
- package/dist/governance/index.d.ts.map +1 -0
- package/dist/governance/index.js +2 -0
- package/dist/governance/index.js.map +1 -0
- package/dist/governance/types.d.ts +14 -0
- package/dist/governance/types.d.ts.map +1 -0
- package/dist/governance/types.js +5 -0
- package/dist/governance/types.js.map +1 -0
- package/dist/graph/builder.d.ts +10 -0
- package/dist/graph/builder.d.ts.map +1 -0
- package/dist/graph/builder.js +573 -0
- package/dist/graph/builder.js.map +1 -0
- package/dist/graph/graph-types.d.ts +64 -0
- package/dist/graph/graph-types.d.ts.map +1 -0
- package/dist/graph/graph-types.js +29 -0
- package/dist/graph/graph-types.js.map +1 -0
- package/dist/graph/index.d.ts +8 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +5 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/serializer.d.ts +9 -0
- package/dist/graph/serializer.d.ts.map +1 -0
- package/dist/graph/serializer.js +31 -0
- package/dist/graph/serializer.js.map +1 -0
- package/dist/graph/validator.d.ts +14 -0
- package/dist/graph/validator.d.ts.map +1 -0
- package/dist/graph/validator.js +96 -0
- package/dist/graph/validator.js.map +1 -0
- package/dist/implement/implement.d.ts +30 -0
- package/dist/implement/implement.d.ts.map +1 -0
- package/dist/implement/implement.js +299 -0
- package/dist/implement/implement.js.map +1 -0
- package/dist/implement/index.d.ts +3 -0
- package/dist/implement/index.d.ts.map +1 -0
- package/dist/implement/index.js +2 -0
- package/dist/implement/index.js.map +1 -0
- package/dist/implement/types.d.ts +41 -0
- package/dist/implement/types.d.ts.map +1 -0
- package/dist/implement/types.js +5 -0
- package/dist/implement/types.js.map +1 -0
- package/dist/incremental/incremental-spec.d.ts +12 -0
- package/dist/incremental/incremental-spec.d.ts.map +1 -0
- package/dist/incremental/incremental-spec.js +100 -0
- package/dist/incremental/incremental-spec.js.map +1 -0
- package/dist/incremental/index.d.ts +3 -0
- package/dist/incremental/index.d.ts.map +1 -0
- package/dist/incremental/index.js +5 -0
- package/dist/incremental/index.js.map +1 -0
- package/dist/incremental/types.d.ts +28 -0
- package/dist/incremental/types.d.ts.map +1 -0
- package/dist/incremental/types.js +7 -0
- package/dist/incremental/types.js.map +1 -0
- package/dist/index.d.ts +106 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +106 -0
- package/dist/index.js.map +1 -0
- package/dist/lexer/index.d.ts +6 -0
- package/dist/lexer/index.d.ts.map +1 -0
- package/dist/lexer/index.js +5 -0
- package/dist/lexer/index.js.map +1 -0
- package/dist/lexer/keywords.d.ts +3 -0
- package/dist/lexer/keywords.d.ts.map +1 -0
- package/dist/lexer/keywords.js +142 -0
- package/dist/lexer/keywords.js.map +1 -0
- package/dist/lexer/lexer.d.ts +19 -0
- package/dist/lexer/lexer.d.ts.map +1 -0
- package/dist/lexer/lexer.js +286 -0
- package/dist/lexer/lexer.js.map +1 -0
- package/dist/lexer/source.d.ts +13 -0
- package/dist/lexer/source.d.ts.map +1 -0
- package/dist/lexer/source.js +59 -0
- package/dist/lexer/source.js.map +1 -0
- package/dist/lexer/tokens.d.ts +157 -0
- package/dist/lexer/tokens.d.ts.map +1 -0
- package/dist/lexer/tokens.js +173 -0
- package/dist/lexer/tokens.js.map +1 -0
- package/dist/orchestrator/index.d.ts +5 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +3 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/orchestrator.d.ts +14 -0
- package/dist/orchestrator/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator.js +129 -0
- package/dist/orchestrator/orchestrator.js.map +1 -0
- package/dist/orchestrator/pipeline.d.ts +31 -0
- package/dist/orchestrator/pipeline.d.ts.map +1 -0
- package/dist/orchestrator/pipeline.js +290 -0
- package/dist/orchestrator/pipeline.js.map +1 -0
- package/dist/orchestrator/types.d.ts +60 -0
- package/dist/orchestrator/types.d.ts.map +1 -0
- package/dist/orchestrator/types.js +8 -0
- package/dist/orchestrator/types.js.map +1 -0
- package/dist/parser/ast.d.ts +502 -0
- package/dist/parser/ast.d.ts.map +1 -0
- package/dist/parser/ast.js +7 -0
- package/dist/parser/ast.js.map +1 -0
- package/dist/parser/expressions.d.ts +18 -0
- package/dist/parser/expressions.d.ts.map +1 -0
- package/dist/parser/expressions.js +230 -0
- package/dist/parser/expressions.js.map +1 -0
- package/dist/parser/index.d.ts +4 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +2 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/parser.d.ts +83 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +2149 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/planner/differ.d.ts +4 -0
- package/dist/planner/differ.d.ts.map +1 -0
- package/dist/planner/differ.js +96 -0
- package/dist/planner/differ.js.map +1 -0
- package/dist/planner/index.d.ts +7 -0
- package/dist/planner/index.d.ts.map +1 -0
- package/dist/planner/index.js +5 -0
- package/dist/planner/index.js.map +1 -0
- package/dist/planner/plan-types.d.ts +26 -0
- package/dist/planner/plan-types.d.ts.map +1 -0
- package/dist/planner/plan-types.js +5 -0
- package/dist/planner/plan-types.js.map +1 -0
- package/dist/planner/planner.d.ts +8 -0
- package/dist/planner/planner.d.ts.map +1 -0
- package/dist/planner/planner.js +83 -0
- package/dist/planner/planner.js.map +1 -0
- package/dist/planner/propagator.d.ts +4 -0
- package/dist/planner/propagator.d.ts.map +1 -0
- package/dist/planner/propagator.js +45 -0
- package/dist/planner/propagator.js.map +1 -0
- package/dist/planner/semantic-diff.d.ts +27 -0
- package/dist/planner/semantic-diff.d.ts.map +1 -0
- package/dist/planner/semantic-diff.js +253 -0
- package/dist/planner/semantic-diff.js.map +1 -0
- package/dist/presets/index.d.ts +3 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +5 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/loader.d.ts +28 -0
- package/dist/presets/loader.d.ts.map +1 -0
- package/dist/presets/loader.js +99 -0
- package/dist/presets/loader.js.map +1 -0
- package/dist/presets/types.d.ts +21 -0
- package/dist/presets/types.d.ts.map +1 -0
- package/dist/presets/types.js +5 -0
- package/dist/presets/types.js.map +1 -0
- package/dist/proposal/index.d.ts +3 -0
- package/dist/proposal/index.d.ts.map +1 -0
- package/dist/proposal/index.js +7 -0
- package/dist/proposal/index.js.map +1 -0
- package/dist/proposal/proposal.d.ts +9 -0
- package/dist/proposal/proposal.d.ts.map +1 -0
- package/dist/proposal/proposal.js +169 -0
- package/dist/proposal/proposal.js.map +1 -0
- package/dist/proposal/types.d.ts +15 -0
- package/dist/proposal/types.d.ts.map +1 -0
- package/dist/proposal/types.js +5 -0
- package/dist/proposal/types.js.map +1 -0
- package/dist/registry/index.d.ts +3 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +2 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/resolution.d.ts +39 -0
- package/dist/registry/resolution.d.ts.map +1 -0
- package/dist/registry/resolution.js +70 -0
- package/dist/registry/resolution.js.map +1 -0
- package/dist/reviewers/adversarial.d.ts +3 -0
- package/dist/reviewers/adversarial.d.ts.map +1 -0
- package/dist/reviewers/adversarial.js +111 -0
- package/dist/reviewers/adversarial.js.map +1 -0
- package/dist/reviewers/architecture.d.ts +3 -0
- package/dist/reviewers/architecture.d.ts.map +1 -0
- package/dist/reviewers/architecture.js +71 -0
- package/dist/reviewers/architecture.js.map +1 -0
- package/dist/reviewers/code-quality.d.ts +3 -0
- package/dist/reviewers/code-quality.d.ts.map +1 -0
- package/dist/reviewers/code-quality.js +72 -0
- package/dist/reviewers/code-quality.js.map +1 -0
- package/dist/reviewers/edge-case.d.ts +3 -0
- package/dist/reviewers/edge-case.d.ts.map +1 -0
- package/dist/reviewers/edge-case.js +107 -0
- package/dist/reviewers/edge-case.js.map +1 -0
- package/dist/reviewers/index.d.ts +21 -0
- package/dist/reviewers/index.d.ts.map +1 -0
- package/dist/reviewers/index.js +39 -0
- package/dist/reviewers/index.js.map +1 -0
- package/dist/reviewers/prompt-loader.d.ts +24 -0
- package/dist/reviewers/prompt-loader.d.ts.map +1 -0
- package/dist/reviewers/prompt-loader.js +67 -0
- package/dist/reviewers/prompt-loader.js.map +1 -0
- package/dist/reviewers/quality.d.ts +3 -0
- package/dist/reviewers/quality.d.ts.map +1 -0
- package/dist/reviewers/quality.js +76 -0
- package/dist/reviewers/quality.js.map +1 -0
- package/dist/reviewers/reviewer.d.ts +39 -0
- package/dist/reviewers/reviewer.d.ts.map +1 -0
- package/dist/reviewers/reviewer.js +149 -0
- package/dist/reviewers/reviewer.js.map +1 -0
- package/dist/reviewers/security.d.ts +3 -0
- package/dist/reviewers/security.d.ts.map +1 -0
- package/dist/reviewers/security.js +87 -0
- package/dist/reviewers/security.js.map +1 -0
- package/dist/reviewers/specification.d.ts +3 -0
- package/dist/reviewers/specification.d.ts.map +1 -0
- package/dist/reviewers/specification.js +79 -0
- package/dist/reviewers/specification.js.map +1 -0
- package/dist/reviewers/test-quality.d.ts +3 -0
- package/dist/reviewers/test-quality.d.ts.map +1 -0
- package/dist/reviewers/test-quality.js +88 -0
- package/dist/reviewers/test-quality.js.map +1 -0
- package/dist/reviewers/types.d.ts +32 -0
- package/dist/reviewers/types.d.ts.map +1 -0
- package/dist/reviewers/types.js +5 -0
- package/dist/reviewers/types.js.map +1 -0
- package/dist/reviewers/ux.d.ts +3 -0
- package/dist/reviewers/ux.d.ts.map +1 -0
- package/dist/reviewers/ux.js +94 -0
- package/dist/reviewers/ux.js.map +1 -0
- package/dist/runtime/index.d.ts +3 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +2 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/resolution.d.ts +30 -0
- package/dist/runtime/resolution.d.ts.map +1 -0
- package/dist/runtime/resolution.js +59 -0
- package/dist/runtime/resolution.js.map +1 -0
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +2 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/test-runner.d.ts +18 -0
- package/dist/testing/test-runner.d.ts.map +1 -0
- package/dist/testing/test-runner.js +131 -0
- package/dist/testing/test-runner.js.map +1 -0
- package/dist/types.d.ts +36 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +127 -0
- package/dist/types.js.map +1 -0
- package/dist/validation/index.d.ts +3 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +2 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/types.d.ts +16 -0
- package/dist/validation/types.d.ts.map +1 -0
- package/dist/validation/types.js +5 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/validation/validation.d.ts +8 -0
- package/dist/validation/validation.d.ts.map +1 -0
- package/dist/validation/validation.js +101 -0
- package/dist/validation/validation.js.map +1 -0
- package/dist/verification/index.d.ts +3 -0
- package/dist/verification/index.d.ts.map +1 -0
- package/dist/verification/index.js +5 -0
- package/dist/verification/index.js.map +1 -0
- package/dist/verification/types.d.ts +14 -0
- package/dist/verification/types.d.ts.map +1 -0
- package/dist/verification/types.js +5 -0
- package/dist/verification/types.js.map +1 -0
- package/dist/verification/verify.d.ts +7 -0
- package/dist/verification/verify.d.ts.map +1 -0
- package/dist/verification/verify.js +127 -0
- package/dist/verification/verify.js.map +1 -0
- package/dist/workflow/clarify.d.ts +7 -0
- package/dist/workflow/clarify.d.ts.map +1 -0
- package/dist/workflow/clarify.js +165 -0
- package/dist/workflow/clarify.js.map +1 -0
- package/dist/workflow/engine.d.ts +19 -0
- package/dist/workflow/engine.d.ts.map +1 -0
- package/dist/workflow/engine.js +265 -0
- package/dist/workflow/engine.js.map +1 -0
- package/dist/workflow/index.d.ts +6 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +7 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/types.d.ts +95 -0
- package/dist/workflow/types.d.ts.map +1 -0
- package/dist/workflow/types.js +18 -0
- package/dist/workflow/types.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
export type QuestionPriority = 'low' | 'medium' | 'high' | 'critical';
|
|
2
|
+
export type AmbiguityThreshold = 'low' | 'medium' | 'high';
|
|
3
|
+
export type FixSeverity = 'critical' | 'error' | 'warning';
|
|
4
|
+
export type AgentPlatform = 'copilot' | 'claude' | 'cursor' | 'opencode' | 'codex' | 'gemini' | 'windsurf' | 'kiro' | 'jules' | 'amp' | 'roo' | 'aider' | 'cline' | 'continue' | 'zed' | 'bolt' | 'aide' | 'trae' | 'augment' | 'sourcegraph' | 'tabnine' | 'supermaven' | 'void' | 'pear' | 'double' | 'generic';
|
|
5
|
+
export type ApiProvider = 'openai' | 'anthropic';
|
|
6
|
+
export interface PhaseConfig {
|
|
7
|
+
readonly agent?: string;
|
|
8
|
+
readonly model?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ClarifyConfig extends PhaseConfig {
|
|
11
|
+
readonly maxQuestions?: number;
|
|
12
|
+
readonly minimumQuestionPriority?: QuestionPriority;
|
|
13
|
+
readonly ambiguityThreshold?: AmbiguityThreshold;
|
|
14
|
+
}
|
|
15
|
+
export interface PhasesConfig {
|
|
16
|
+
readonly specify?: PhaseConfig;
|
|
17
|
+
readonly clarify?: ClarifyConfig;
|
|
18
|
+
readonly plan?: PhaseConfig;
|
|
19
|
+
readonly tasks?: PhaseConfig;
|
|
20
|
+
readonly analyze?: PhaseConfig;
|
|
21
|
+
readonly implement?: PhaseConfig;
|
|
22
|
+
readonly review?: PhaseConfig;
|
|
23
|
+
readonly fix?: PhaseConfig;
|
|
24
|
+
}
|
|
25
|
+
export interface ReviewFixConfig {
|
|
26
|
+
readonly maxIterations?: number;
|
|
27
|
+
readonly fixSeverity?: readonly FixSeverity[];
|
|
28
|
+
readonly parallel?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface ReviewerConfig {
|
|
31
|
+
readonly enabled?: boolean;
|
|
32
|
+
readonly promptPath?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ReviewersConfig {
|
|
35
|
+
readonly architecture?: ReviewerConfig;
|
|
36
|
+
readonly security?: ReviewerConfig;
|
|
37
|
+
readonly codeQuality?: ReviewerConfig;
|
|
38
|
+
readonly testQuality?: ReviewerConfig;
|
|
39
|
+
readonly uxQuality?: ReviewerConfig;
|
|
40
|
+
readonly adversarial?: ReviewerConfig;
|
|
41
|
+
readonly edgeCase?: ReviewerConfig;
|
|
42
|
+
readonly [key: string]: ReviewerConfig | undefined;
|
|
43
|
+
}
|
|
44
|
+
export interface ValidationConfig {
|
|
45
|
+
readonly lint?: string | null;
|
|
46
|
+
readonly typecheck?: string | null;
|
|
47
|
+
readonly test?: string | null;
|
|
48
|
+
readonly build?: string | null;
|
|
49
|
+
}
|
|
50
|
+
export interface AgentConfig {
|
|
51
|
+
readonly platforms?: readonly AgentPlatform[];
|
|
52
|
+
readonly defaultModel?: string | null;
|
|
53
|
+
readonly apiKey?: string | null;
|
|
54
|
+
readonly provider?: ApiProvider | null;
|
|
55
|
+
}
|
|
56
|
+
export interface AuditConfig {
|
|
57
|
+
readonly enabled?: boolean;
|
|
58
|
+
readonly path?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface ConstitutionConfig {
|
|
61
|
+
readonly path?: string;
|
|
62
|
+
}
|
|
63
|
+
export interface PreReviewConfig {
|
|
64
|
+
readonly enabled?: boolean;
|
|
65
|
+
readonly maxIterations?: number;
|
|
66
|
+
readonly fixSeverity?: readonly FixSeverity[];
|
|
67
|
+
}
|
|
68
|
+
export interface DocsConfig {
|
|
69
|
+
readonly enabled?: boolean;
|
|
70
|
+
readonly outputDir?: string;
|
|
71
|
+
}
|
|
72
|
+
export interface TemplateOverridesConfig {
|
|
73
|
+
readonly [templateId: string]: string;
|
|
74
|
+
}
|
|
75
|
+
/** Custom workflow definition. */
|
|
76
|
+
export interface WorkflowSchema {
|
|
77
|
+
readonly phases: readonly string[];
|
|
78
|
+
readonly reviewBefore?: readonly string[];
|
|
79
|
+
readonly reviewAfter?: readonly string[];
|
|
80
|
+
}
|
|
81
|
+
export interface ProdaraConfig {
|
|
82
|
+
readonly phases?: PhasesConfig;
|
|
83
|
+
readonly reviewFix?: ReviewFixConfig;
|
|
84
|
+
readonly postReview?: ReviewFixConfig;
|
|
85
|
+
readonly preReview?: PreReviewConfig;
|
|
86
|
+
readonly reviewers?: ReviewersConfig;
|
|
87
|
+
readonly validation?: ValidationConfig;
|
|
88
|
+
readonly agent?: AgentConfig;
|
|
89
|
+
readonly audit?: AuditConfig;
|
|
90
|
+
readonly constitution?: ConstitutionConfig;
|
|
91
|
+
readonly docs?: DocsConfig;
|
|
92
|
+
readonly templateOverrides?: TemplateOverridesConfig;
|
|
93
|
+
readonly artifactRules?: Readonly<Record<string, readonly string[]>>;
|
|
94
|
+
readonly workflows?: Readonly<Record<string, WorkflowSchema>>;
|
|
95
|
+
}
|
|
96
|
+
export interface ResolvedPhaseConfig {
|
|
97
|
+
readonly agent: string;
|
|
98
|
+
readonly model: string;
|
|
99
|
+
}
|
|
100
|
+
export interface ResolvedClarifyConfig extends ResolvedPhaseConfig {
|
|
101
|
+
readonly maxQuestions: number;
|
|
102
|
+
readonly minimumQuestionPriority: QuestionPriority;
|
|
103
|
+
readonly ambiguityThreshold: AmbiguityThreshold;
|
|
104
|
+
}
|
|
105
|
+
export interface ResolvedReviewFixConfig {
|
|
106
|
+
readonly maxIterations: number;
|
|
107
|
+
readonly fixSeverity: readonly FixSeverity[];
|
|
108
|
+
readonly parallel: boolean;
|
|
109
|
+
}
|
|
110
|
+
export interface ResolvedReviewerConfig {
|
|
111
|
+
readonly enabled: boolean;
|
|
112
|
+
readonly promptPath: string | null;
|
|
113
|
+
}
|
|
114
|
+
export interface ResolvedValidationConfig {
|
|
115
|
+
readonly lint: string | null;
|
|
116
|
+
readonly typecheck: string | null;
|
|
117
|
+
readonly test: string | null;
|
|
118
|
+
readonly build: string | null;
|
|
119
|
+
}
|
|
120
|
+
export interface ResolvedAgentConfig {
|
|
121
|
+
readonly platforms: readonly AgentPlatform[];
|
|
122
|
+
readonly defaultModel: string | null;
|
|
123
|
+
readonly apiKey: string | null;
|
|
124
|
+
readonly provider: ApiProvider | null;
|
|
125
|
+
}
|
|
126
|
+
export interface ResolvedAuditConfig {
|
|
127
|
+
readonly enabled: boolean;
|
|
128
|
+
readonly path: string;
|
|
129
|
+
}
|
|
130
|
+
export interface ResolvedConstitutionConfig {
|
|
131
|
+
readonly path: string | null;
|
|
132
|
+
}
|
|
133
|
+
export interface ResolvedPreReviewConfig {
|
|
134
|
+
readonly enabled: boolean;
|
|
135
|
+
readonly maxIterations: number;
|
|
136
|
+
readonly fixSeverity: readonly FixSeverity[];
|
|
137
|
+
}
|
|
138
|
+
export interface ResolvedDocsConfig {
|
|
139
|
+
readonly enabled: boolean;
|
|
140
|
+
readonly outputDir: string;
|
|
141
|
+
}
|
|
142
|
+
export interface ResolvedConfig {
|
|
143
|
+
readonly phases: {
|
|
144
|
+
readonly specify: ResolvedPhaseConfig;
|
|
145
|
+
readonly clarify: ResolvedClarifyConfig;
|
|
146
|
+
readonly plan: ResolvedPhaseConfig;
|
|
147
|
+
readonly tasks: ResolvedPhaseConfig;
|
|
148
|
+
readonly analyze: ResolvedPhaseConfig;
|
|
149
|
+
readonly implement: ResolvedPhaseConfig;
|
|
150
|
+
readonly review: ResolvedPhaseConfig;
|
|
151
|
+
readonly fix: ResolvedPhaseConfig;
|
|
152
|
+
};
|
|
153
|
+
readonly reviewFix: ResolvedReviewFixConfig;
|
|
154
|
+
readonly preReview: ResolvedPreReviewConfig;
|
|
155
|
+
readonly reviewers: {
|
|
156
|
+
readonly architecture: ResolvedReviewerConfig;
|
|
157
|
+
readonly security: ResolvedReviewerConfig;
|
|
158
|
+
readonly codeQuality: ResolvedReviewerConfig;
|
|
159
|
+
readonly testQuality: ResolvedReviewerConfig;
|
|
160
|
+
readonly uxQuality: ResolvedReviewerConfig;
|
|
161
|
+
readonly adversarial: ResolvedReviewerConfig;
|
|
162
|
+
readonly edgeCase: ResolvedReviewerConfig;
|
|
163
|
+
readonly [key: string]: ResolvedReviewerConfig | undefined;
|
|
164
|
+
};
|
|
165
|
+
readonly validation: ResolvedValidationConfig;
|
|
166
|
+
readonly agent: ResolvedAgentConfig;
|
|
167
|
+
readonly audit: ResolvedAuditConfig;
|
|
168
|
+
readonly constitution: ResolvedConstitutionConfig;
|
|
169
|
+
readonly docs: ResolvedDocsConfig;
|
|
170
|
+
readonly templateOverrides: Readonly<Record<string, string>>;
|
|
171
|
+
readonly artifactRules: Readonly<Record<string, readonly string[]>>;
|
|
172
|
+
readonly workflows: Readonly<Record<string, WorkflowSchema>>;
|
|
173
|
+
}
|
|
174
|
+
export declare const DEFAULT_CONFIG: ResolvedConfig;
|
|
175
|
+
export declare const CONFIG_FILENAME = "prodara.config.json";
|
|
176
|
+
export interface ConfigLoadResult {
|
|
177
|
+
readonly config: ResolvedConfig;
|
|
178
|
+
readonly warnings: readonly string[];
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Load `prodara.config.json` from the project root and merge with defaults.
|
|
182
|
+
* Returns the fully resolved config and any warnings (unknown keys, etc.).
|
|
183
|
+
*/
|
|
184
|
+
export declare function loadConfig(root: string): ConfigLoadResult;
|
|
185
|
+
/**
|
|
186
|
+
* Resolve a raw config object into a ResolvedConfig with all defaults applied.
|
|
187
|
+
*/
|
|
188
|
+
export declare function resolveConfig(obj: Record<string, unknown>, warnings?: string[]): ConfigLoadResult;
|
|
189
|
+
/**
|
|
190
|
+
* Return the numeric rank of a priority (higher = more important).
|
|
191
|
+
* Useful for filtering questions at or above a threshold.
|
|
192
|
+
*/
|
|
193
|
+
export declare function priorityRank(p: QuestionPriority): number;
|
|
194
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Prodara Compiler — Configuration Model
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Loads and validates `prodara.config.json` from the project root.
|
|
5
|
+
// An empty `{}` is always valid — all values have sensible defaults.
|
|
6
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
7
|
+
import { join } from 'node:path';
|
|
8
|
+
const QUESTION_PRIORITIES = ['low', 'medium', 'high', 'critical'];
|
|
9
|
+
const AMBIGUITY_THRESHOLDS = ['low', 'medium', 'high'];
|
|
10
|
+
const FIX_SEVERITIES = ['critical', 'error', 'warning'];
|
|
11
|
+
const AGENT_PLATFORMS = [
|
|
12
|
+
'copilot', 'claude', 'cursor', 'opencode', 'codex',
|
|
13
|
+
'gemini', 'windsurf', 'kiro', 'jules', 'amp', 'roo',
|
|
14
|
+
'aider', 'cline', 'continue', 'zed', 'bolt', 'aide',
|
|
15
|
+
'trae', 'augment', 'sourcegraph', 'tabnine', 'supermaven',
|
|
16
|
+
'void', 'pear', 'double', 'generic',
|
|
17
|
+
];
|
|
18
|
+
const API_PROVIDERS = ['openai', 'anthropic'];
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Defaults
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
const DEFAULT_PHASE = { agent: 'default', model: 'default' };
|
|
23
|
+
const DEFAULT_CLARIFY = {
|
|
24
|
+
agent: 'default',
|
|
25
|
+
model: 'default',
|
|
26
|
+
maxQuestions: 10,
|
|
27
|
+
minimumQuestionPriority: 'medium',
|
|
28
|
+
ambiguityThreshold: 'medium',
|
|
29
|
+
};
|
|
30
|
+
const DEFAULT_REVIEW_FIX = {
|
|
31
|
+
maxIterations: 3,
|
|
32
|
+
fixSeverity: ['critical', 'error'],
|
|
33
|
+
parallel: true,
|
|
34
|
+
};
|
|
35
|
+
const DEFAULT_PRE_REVIEW = {
|
|
36
|
+
enabled: false,
|
|
37
|
+
maxIterations: 2,
|
|
38
|
+
fixSeverity: ['critical', 'error'],
|
|
39
|
+
};
|
|
40
|
+
const DEFAULT_REVIEWER = { enabled: true, promptPath: null };
|
|
41
|
+
const DEFAULT_REVIEWER_DISABLED = { enabled: false, promptPath: null };
|
|
42
|
+
const DEFAULT_VALIDATION = {
|
|
43
|
+
lint: null,
|
|
44
|
+
typecheck: null,
|
|
45
|
+
test: null,
|
|
46
|
+
build: null,
|
|
47
|
+
};
|
|
48
|
+
const DEFAULT_AGENT = {
|
|
49
|
+
platforms: ['copilot'],
|
|
50
|
+
defaultModel: null,
|
|
51
|
+
apiKey: null,
|
|
52
|
+
provider: null,
|
|
53
|
+
};
|
|
54
|
+
const DEFAULT_AUDIT = {
|
|
55
|
+
enabled: true,
|
|
56
|
+
path: '.prodara/runs/',
|
|
57
|
+
};
|
|
58
|
+
const DEFAULT_CONSTITUTION = {
|
|
59
|
+
path: null,
|
|
60
|
+
};
|
|
61
|
+
const DEFAULT_DOCS = {
|
|
62
|
+
enabled: true,
|
|
63
|
+
outputDir: 'docs/spec',
|
|
64
|
+
};
|
|
65
|
+
export const DEFAULT_CONFIG = {
|
|
66
|
+
phases: {
|
|
67
|
+
specify: DEFAULT_PHASE,
|
|
68
|
+
clarify: DEFAULT_CLARIFY,
|
|
69
|
+
plan: DEFAULT_PHASE,
|
|
70
|
+
tasks: DEFAULT_PHASE,
|
|
71
|
+
analyze: DEFAULT_PHASE,
|
|
72
|
+
implement: DEFAULT_PHASE,
|
|
73
|
+
review: DEFAULT_PHASE,
|
|
74
|
+
fix: DEFAULT_PHASE,
|
|
75
|
+
},
|
|
76
|
+
reviewFix: DEFAULT_REVIEW_FIX,
|
|
77
|
+
preReview: DEFAULT_PRE_REVIEW,
|
|
78
|
+
reviewers: {
|
|
79
|
+
architecture: DEFAULT_REVIEWER,
|
|
80
|
+
security: DEFAULT_REVIEWER,
|
|
81
|
+
codeQuality: DEFAULT_REVIEWER,
|
|
82
|
+
testQuality: DEFAULT_REVIEWER,
|
|
83
|
+
uxQuality: DEFAULT_REVIEWER,
|
|
84
|
+
adversarial: DEFAULT_REVIEWER_DISABLED,
|
|
85
|
+
edgeCase: DEFAULT_REVIEWER_DISABLED,
|
|
86
|
+
},
|
|
87
|
+
validation: DEFAULT_VALIDATION,
|
|
88
|
+
agent: DEFAULT_AGENT,
|
|
89
|
+
audit: DEFAULT_AUDIT,
|
|
90
|
+
constitution: DEFAULT_CONSTITUTION,
|
|
91
|
+
docs: DEFAULT_DOCS,
|
|
92
|
+
templateOverrides: {},
|
|
93
|
+
artifactRules: {},
|
|
94
|
+
workflows: {
|
|
95
|
+
default: {
|
|
96
|
+
phases: ['specify', 'clarify', 'plan', 'implement', 'review', 'verify'],
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
// Config loading
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
export const CONFIG_FILENAME = 'prodara.config.json';
|
|
104
|
+
/**
|
|
105
|
+
* Load `prodara.config.json` from the project root and merge with defaults.
|
|
106
|
+
* Returns the fully resolved config and any warnings (unknown keys, etc.).
|
|
107
|
+
*/
|
|
108
|
+
export function loadConfig(root) {
|
|
109
|
+
const configPath = join(root, CONFIG_FILENAME);
|
|
110
|
+
const warnings = [];
|
|
111
|
+
if (!existsSync(configPath)) {
|
|
112
|
+
return { config: DEFAULT_CONFIG, warnings: [] };
|
|
113
|
+
}
|
|
114
|
+
let raw;
|
|
115
|
+
try {
|
|
116
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
117
|
+
raw = JSON.parse(content);
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
warnings.push(`Failed to parse ${CONFIG_FILENAME}; using defaults`);
|
|
121
|
+
return { config: DEFAULT_CONFIG, warnings };
|
|
122
|
+
}
|
|
123
|
+
if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
|
|
124
|
+
warnings.push(`${CONFIG_FILENAME} must be a JSON object; using defaults`);
|
|
125
|
+
return { config: DEFAULT_CONFIG, warnings };
|
|
126
|
+
}
|
|
127
|
+
const obj = raw;
|
|
128
|
+
return resolveConfig(obj, warnings);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Resolve a raw config object into a ResolvedConfig with all defaults applied.
|
|
132
|
+
*/
|
|
133
|
+
export function resolveConfig(obj, warnings = []) {
|
|
134
|
+
const known = new Set(['phases', 'reviewFix', 'postReview', 'preReview', 'reviewers', 'validation', 'agent', 'audit', 'constitution', 'docs', 'templateOverrides', 'artifactRules', 'workflows']);
|
|
135
|
+
for (const key of Object.keys(obj)) {
|
|
136
|
+
if (!known.has(key)) {
|
|
137
|
+
warnings.push(`Unknown config key: "${key}"`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const phases = resolvePhases(asObject(obj['phases']), warnings);
|
|
141
|
+
// postReview is a backward-compat alias for reviewFix
|
|
142
|
+
const reviewFixRaw = asObject(obj['reviewFix']) ?? asObject(obj['postReview']);
|
|
143
|
+
const reviewFix = resolveReviewFix(reviewFixRaw, warnings);
|
|
144
|
+
const preReview = resolvePreReview(asObject(obj['preReview']));
|
|
145
|
+
const reviewers = resolveReviewers(asObject(obj['reviewers']), warnings);
|
|
146
|
+
const validation = resolveValidation(asObject(obj['validation']), warnings);
|
|
147
|
+
const agent = resolveAgent(asObject(obj['agent']), warnings);
|
|
148
|
+
const audit = resolveAudit(asObject(obj['audit']), warnings);
|
|
149
|
+
const constitution = resolveConstitution(asObject(obj['constitution']));
|
|
150
|
+
const docs = resolveDocs(asObject(obj['docs']));
|
|
151
|
+
const templateOverrides = resolveTemplateOverrides(asObject(obj['templateOverrides']));
|
|
152
|
+
const artifactRules = resolveArtifactRules(asObject(obj['artifactRules']));
|
|
153
|
+
const workflows = resolveWorkflows(asObject(obj['workflows']), warnings);
|
|
154
|
+
return { config: { phases, reviewFix, preReview, reviewers, validation, agent, audit, constitution, docs, templateOverrides, artifactRules, workflows }, warnings };
|
|
155
|
+
}
|
|
156
|
+
// ---------------------------------------------------------------------------
|
|
157
|
+
// Resolution helpers
|
|
158
|
+
// ---------------------------------------------------------------------------
|
|
159
|
+
function resolvePhases(raw, warnings) {
|
|
160
|
+
if (!raw)
|
|
161
|
+
return DEFAULT_CONFIG.phases;
|
|
162
|
+
const knownPhases = new Set(['specify', 'clarify', 'plan', 'tasks', 'analyze', 'implement', 'review', 'fix']);
|
|
163
|
+
for (const key of Object.keys(raw)) {
|
|
164
|
+
if (!knownPhases.has(key)) {
|
|
165
|
+
warnings.push(`Unknown phase: "${key}"`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
specify: resolvePhase(asObject(raw['specify'])),
|
|
170
|
+
clarify: resolveClarify(asObject(raw['clarify']), warnings),
|
|
171
|
+
plan: resolvePhase(asObject(raw['plan'])),
|
|
172
|
+
tasks: resolvePhase(asObject(raw['tasks'])),
|
|
173
|
+
analyze: resolvePhase(asObject(raw['analyze'])),
|
|
174
|
+
implement: resolvePhase(asObject(raw['implement'])),
|
|
175
|
+
review: resolvePhase(asObject(raw['review'])),
|
|
176
|
+
fix: resolvePhase(asObject(raw['fix'])),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
function resolvePhase(raw) {
|
|
180
|
+
if (!raw)
|
|
181
|
+
return DEFAULT_PHASE;
|
|
182
|
+
return {
|
|
183
|
+
agent: typeof raw['agent'] === 'string' ? raw['agent'] : DEFAULT_PHASE.agent,
|
|
184
|
+
model: typeof raw['model'] === 'string' ? raw['model'] : DEFAULT_PHASE.model,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
function resolveClarify(raw, warnings) {
|
|
188
|
+
if (!raw)
|
|
189
|
+
return DEFAULT_CLARIFY;
|
|
190
|
+
const base = resolvePhase(raw);
|
|
191
|
+
let maxQuestions = DEFAULT_CLARIFY.maxQuestions;
|
|
192
|
+
if (typeof raw['maxQuestions'] === 'number' && Number.isInteger(raw['maxQuestions']) && raw['maxQuestions'] > 0) {
|
|
193
|
+
maxQuestions = raw['maxQuestions'];
|
|
194
|
+
}
|
|
195
|
+
else if (raw['maxQuestions'] !== undefined) {
|
|
196
|
+
warnings.push('phases.clarify.maxQuestions must be a positive integer');
|
|
197
|
+
}
|
|
198
|
+
let minimumQuestionPriority = DEFAULT_CLARIFY.minimumQuestionPriority;
|
|
199
|
+
if (typeof raw['minimumQuestionPriority'] === 'string') {
|
|
200
|
+
if (isQuestionPriority(raw['minimumQuestionPriority'])) {
|
|
201
|
+
minimumQuestionPriority = raw['minimumQuestionPriority'];
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
warnings.push(`phases.clarify.minimumQuestionPriority must be one of: ${QUESTION_PRIORITIES.join(', ')}`);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
let ambiguityThreshold = DEFAULT_CLARIFY.ambiguityThreshold;
|
|
208
|
+
if (typeof raw['ambiguityThreshold'] === 'string') {
|
|
209
|
+
if (isAmbiguityThreshold(raw['ambiguityThreshold'])) {
|
|
210
|
+
ambiguityThreshold = raw['ambiguityThreshold'];
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
warnings.push(`phases.clarify.ambiguityThreshold must be one of: ${AMBIGUITY_THRESHOLDS.join(', ')}`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return { ...base, maxQuestions, minimumQuestionPriority, ambiguityThreshold };
|
|
217
|
+
}
|
|
218
|
+
function resolveReviewFix(raw, warnings) {
|
|
219
|
+
if (!raw)
|
|
220
|
+
return DEFAULT_REVIEW_FIX;
|
|
221
|
+
let maxIterations = DEFAULT_REVIEW_FIX.maxIterations;
|
|
222
|
+
if (typeof raw['maxIterations'] === 'number' && Number.isInteger(raw['maxIterations']) && raw['maxIterations'] > 0) {
|
|
223
|
+
maxIterations = raw['maxIterations'];
|
|
224
|
+
}
|
|
225
|
+
let fixSeverity = DEFAULT_REVIEW_FIX.fixSeverity;
|
|
226
|
+
if (Array.isArray(raw['fixSeverity'])) {
|
|
227
|
+
const valid = raw['fixSeverity'].filter((v) => typeof v === 'string' && FIX_SEVERITIES.includes(v));
|
|
228
|
+
if (valid.length > 0) {
|
|
229
|
+
fixSeverity = valid;
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
warnings.push(`reviewFix.fixSeverity must contain valid severities: ${FIX_SEVERITIES.join(', ')}`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
let parallel = DEFAULT_REVIEW_FIX.parallel;
|
|
236
|
+
if (typeof raw['parallel'] === 'boolean') {
|
|
237
|
+
parallel = raw['parallel'];
|
|
238
|
+
}
|
|
239
|
+
return { maxIterations, fixSeverity, parallel };
|
|
240
|
+
}
|
|
241
|
+
function resolvePreReview(raw) {
|
|
242
|
+
if (!raw)
|
|
243
|
+
return DEFAULT_PRE_REVIEW;
|
|
244
|
+
const enabled = typeof raw['enabled'] === 'boolean' ? raw['enabled'] : DEFAULT_PRE_REVIEW.enabled;
|
|
245
|
+
let maxIterations = DEFAULT_PRE_REVIEW.maxIterations;
|
|
246
|
+
if (typeof raw['maxIterations'] === 'number' && raw['maxIterations'] > 0) {
|
|
247
|
+
maxIterations = Math.floor(raw['maxIterations']);
|
|
248
|
+
}
|
|
249
|
+
let fixSeverity = DEFAULT_PRE_REVIEW.fixSeverity;
|
|
250
|
+
if (Array.isArray(raw['fixSeverity'])) {
|
|
251
|
+
const valid = raw['fixSeverity'].filter((s) => typeof s === 'string' && ['critical', 'error', 'warning'].includes(s));
|
|
252
|
+
if (valid.length > 0)
|
|
253
|
+
fixSeverity = valid;
|
|
254
|
+
}
|
|
255
|
+
return { enabled, maxIterations, fixSeverity };
|
|
256
|
+
}
|
|
257
|
+
function resolveReviewers(raw, _warnings) {
|
|
258
|
+
if (!raw)
|
|
259
|
+
return DEFAULT_CONFIG.reviewers;
|
|
260
|
+
const builtIn = ['architecture', 'security', 'codeQuality', 'testQuality', 'uxQuality', 'adversarial', 'edgeCase'];
|
|
261
|
+
const result = {};
|
|
262
|
+
for (const name of builtIn) {
|
|
263
|
+
result[name] = resolveReviewer(asObject(raw[name]));
|
|
264
|
+
}
|
|
265
|
+
// Custom reviewers
|
|
266
|
+
for (const key of Object.keys(raw)) {
|
|
267
|
+
if (!(key in result)) {
|
|
268
|
+
result[key] = resolveReviewer(asObject(raw[key]));
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return result;
|
|
272
|
+
}
|
|
273
|
+
function resolveReviewer(raw) {
|
|
274
|
+
if (!raw)
|
|
275
|
+
return DEFAULT_REVIEWER;
|
|
276
|
+
return {
|
|
277
|
+
enabled: typeof raw['enabled'] === 'boolean' ? raw['enabled'] : DEFAULT_REVIEWER.enabled,
|
|
278
|
+
promptPath: typeof raw['promptPath'] === 'string' ? raw['promptPath'] : DEFAULT_REVIEWER.promptPath,
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
// ---------------------------------------------------------------------------
|
|
282
|
+
// Utilities
|
|
283
|
+
// ---------------------------------------------------------------------------
|
|
284
|
+
function asObject(val) {
|
|
285
|
+
if (typeof val === 'object' && val !== null && !Array.isArray(val)) {
|
|
286
|
+
return val;
|
|
287
|
+
}
|
|
288
|
+
return null;
|
|
289
|
+
}
|
|
290
|
+
function isQuestionPriority(val) {
|
|
291
|
+
return QUESTION_PRIORITIES.includes(val);
|
|
292
|
+
}
|
|
293
|
+
function isAmbiguityThreshold(val) {
|
|
294
|
+
return AMBIGUITY_THRESHOLDS.includes(val);
|
|
295
|
+
}
|
|
296
|
+
// ---------------------------------------------------------------------------
|
|
297
|
+
// New section resolvers
|
|
298
|
+
// ---------------------------------------------------------------------------
|
|
299
|
+
function resolveValidation(raw, warnings) {
|
|
300
|
+
if (!raw)
|
|
301
|
+
return DEFAULT_VALIDATION;
|
|
302
|
+
const knownKeys = new Set(['lint', 'typecheck', 'test', 'build']);
|
|
303
|
+
for (const key of Object.keys(raw)) {
|
|
304
|
+
if (!knownKeys.has(key)) {
|
|
305
|
+
warnings.push(`Unknown validation key: "${key}"`);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return {
|
|
309
|
+
lint: resolveCommandString(raw['lint']),
|
|
310
|
+
typecheck: resolveCommandString(raw['typecheck']),
|
|
311
|
+
test: resolveCommandString(raw['test']),
|
|
312
|
+
build: resolveCommandString(raw['build']),
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
function resolveCommandString(val) {
|
|
316
|
+
if (typeof val === 'string' && val.length > 0)
|
|
317
|
+
return val;
|
|
318
|
+
return null;
|
|
319
|
+
}
|
|
320
|
+
function resolveAgent(raw, warnings) {
|
|
321
|
+
if (!raw)
|
|
322
|
+
return DEFAULT_AGENT;
|
|
323
|
+
let platforms = DEFAULT_AGENT.platforms;
|
|
324
|
+
if (Array.isArray(raw['platforms'])) {
|
|
325
|
+
const valid = raw['platforms'].filter((v) => typeof v === 'string' && AGENT_PLATFORMS.includes(v));
|
|
326
|
+
if (valid.length > 0) {
|
|
327
|
+
platforms = valid;
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
warnings.push(`agent.platforms must contain valid platforms: ${AGENT_PLATFORMS.join(', ')}`);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
let defaultModel = DEFAULT_AGENT.defaultModel;
|
|
334
|
+
if (typeof raw['defaultModel'] === 'string') {
|
|
335
|
+
defaultModel = raw['defaultModel'] || null;
|
|
336
|
+
}
|
|
337
|
+
let apiKey = DEFAULT_AGENT.apiKey;
|
|
338
|
+
if (typeof raw['apiKey'] === 'string') {
|
|
339
|
+
apiKey = raw['apiKey'] || null;
|
|
340
|
+
}
|
|
341
|
+
let provider = DEFAULT_AGENT.provider;
|
|
342
|
+
if (typeof raw['provider'] === 'string') {
|
|
343
|
+
if (API_PROVIDERS.includes(raw['provider'])) {
|
|
344
|
+
provider = raw['provider'];
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
warnings.push(`agent.provider must be one of: ${API_PROVIDERS.join(', ')}`);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return { platforms, defaultModel, apiKey, provider };
|
|
351
|
+
}
|
|
352
|
+
function resolveAudit(raw, _warnings) {
|
|
353
|
+
if (!raw)
|
|
354
|
+
return DEFAULT_AUDIT;
|
|
355
|
+
let enabled = DEFAULT_AUDIT.enabled;
|
|
356
|
+
if (typeof raw['enabled'] === 'boolean') {
|
|
357
|
+
enabled = raw['enabled'];
|
|
358
|
+
}
|
|
359
|
+
let path = DEFAULT_AUDIT.path;
|
|
360
|
+
if (typeof raw['path'] === 'string' && raw['path'].length > 0) {
|
|
361
|
+
path = raw['path'];
|
|
362
|
+
}
|
|
363
|
+
return { enabled, path };
|
|
364
|
+
}
|
|
365
|
+
function resolveConstitution(raw) {
|
|
366
|
+
if (!raw)
|
|
367
|
+
return DEFAULT_CONSTITUTION;
|
|
368
|
+
let path = DEFAULT_CONSTITUTION.path;
|
|
369
|
+
if (typeof raw['path'] === 'string' && raw['path'].length > 0) {
|
|
370
|
+
path = raw['path'];
|
|
371
|
+
}
|
|
372
|
+
return { path };
|
|
373
|
+
}
|
|
374
|
+
function resolveDocs(raw) {
|
|
375
|
+
if (!raw)
|
|
376
|
+
return DEFAULT_DOCS;
|
|
377
|
+
const enabled = typeof raw['enabled'] === 'boolean' ? raw['enabled'] : DEFAULT_DOCS.enabled;
|
|
378
|
+
const outputDir = typeof raw['outputDir'] === 'string' && raw['outputDir'].length > 0
|
|
379
|
+
? raw['outputDir']
|
|
380
|
+
: DEFAULT_DOCS.outputDir;
|
|
381
|
+
return { enabled, outputDir };
|
|
382
|
+
}
|
|
383
|
+
function resolveTemplateOverrides(raw) {
|
|
384
|
+
if (!raw)
|
|
385
|
+
return {};
|
|
386
|
+
const result = {};
|
|
387
|
+
for (const [key, val] of Object.entries(raw)) {
|
|
388
|
+
if (typeof val === 'string' && val.length > 0) {
|
|
389
|
+
result[key] = val;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
return result;
|
|
393
|
+
}
|
|
394
|
+
function resolveArtifactRules(raw) {
|
|
395
|
+
if (!raw)
|
|
396
|
+
return {};
|
|
397
|
+
const result = {};
|
|
398
|
+
for (const [key, val] of Object.entries(raw)) {
|
|
399
|
+
if (Array.isArray(val)) {
|
|
400
|
+
result[key] = val.filter((v) => typeof v === 'string');
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
return result;
|
|
404
|
+
}
|
|
405
|
+
function resolveWorkflows(raw, warnings) {
|
|
406
|
+
const defaults = DEFAULT_CONFIG.workflows;
|
|
407
|
+
if (!raw)
|
|
408
|
+
return defaults;
|
|
409
|
+
const result = { ...defaults };
|
|
410
|
+
for (const [name, val] of Object.entries(raw)) {
|
|
411
|
+
const obj = asObject(val);
|
|
412
|
+
if (!obj || !Array.isArray(obj['phases'])) {
|
|
413
|
+
warnings.push(`Invalid workflow definition: "${name}"`);
|
|
414
|
+
continue;
|
|
415
|
+
}
|
|
416
|
+
const phases = obj['phases'].filter((p) => typeof p === 'string');
|
|
417
|
+
const reviewBefore = Array.isArray(obj['reviewBefore'])
|
|
418
|
+
? obj['reviewBefore'].filter((p) => typeof p === 'string')
|
|
419
|
+
: undefined;
|
|
420
|
+
const reviewAfter = Array.isArray(obj['reviewAfter'])
|
|
421
|
+
? obj['reviewAfter'].filter((p) => typeof p === 'string')
|
|
422
|
+
: undefined;
|
|
423
|
+
result[name] = { phases, ...(reviewBefore ? { reviewBefore } : {}), ...(reviewAfter ? { reviewAfter } : {}) };
|
|
424
|
+
}
|
|
425
|
+
return result;
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* Return the numeric rank of a priority (higher = more important).
|
|
429
|
+
* Useful for filtering questions at or above a threshold.
|
|
430
|
+
*/
|
|
431
|
+
export function priorityRank(p) {
|
|
432
|
+
return QUESTION_PRIORITIES.indexOf(p);
|
|
433
|
+
}
|
|
434
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
|