@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,127 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Prodara Compiler — Verification
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Post-build verification: checks that the Product Graph is consistent,
|
|
5
|
+
// all plan tasks are addressed, spec tests pass, and constitution policies
|
|
6
|
+
// are represented. This runs after the full workflow completes.
|
|
7
|
+
import { collectAllNodeIds } from '../graph/graph-types.js';
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// Main entry point
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
export function verify(graph, spec, workflow, reviewCycles) {
|
|
12
|
+
const checks = [];
|
|
13
|
+
checkGraphIntegrity(graph, checks);
|
|
14
|
+
checkTasksCovered(spec, checks);
|
|
15
|
+
checkWorkflowPassed(workflow, checks);
|
|
16
|
+
checkReviewAcceptance(reviewCycles, checks);
|
|
17
|
+
checkConstitutionPresence(graph, checks);
|
|
18
|
+
const passCount = checks.filter((c) => c.severity === 'pass').length;
|
|
19
|
+
const failCount = checks.filter((c) => c.severity === 'fail').length;
|
|
20
|
+
const warnCount = checks.filter((c) => c.severity === 'warn').length;
|
|
21
|
+
return {
|
|
22
|
+
passed: failCount === 0,
|
|
23
|
+
checks,
|
|
24
|
+
passCount,
|
|
25
|
+
failCount,
|
|
26
|
+
warnCount,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Individual checks
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
function checkGraphIntegrity(graph, checks) {
|
|
33
|
+
const allIds = collectAllNodeIds(graph);
|
|
34
|
+
// All edge endpoints exist
|
|
35
|
+
let orphanEdges = 0;
|
|
36
|
+
for (const edge of graph.edges) {
|
|
37
|
+
if (!allIds.has(edge.from) || !allIds.has(edge.to))
|
|
38
|
+
orphanEdges++;
|
|
39
|
+
}
|
|
40
|
+
if (orphanEdges === 0) {
|
|
41
|
+
checks.push({ name: 'graph_edges_valid', severity: 'pass', message: 'All edge endpoints reference existing nodes' });
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
checks.push({ name: 'graph_edges_valid', severity: 'fail', message: `${orphanEdges} edge(s) reference non-existent nodes` });
|
|
45
|
+
}
|
|
46
|
+
// Product lists all modules
|
|
47
|
+
const declaredIds = new Set(graph.product.modules);
|
|
48
|
+
const actualIds = new Set(graph.modules.map((m) => m.id));
|
|
49
|
+
const missing = [...declaredIds].filter((id) => !actualIds.has(id));
|
|
50
|
+
const unlisted = [...actualIds].filter((id) => !declaredIds.has(id));
|
|
51
|
+
if (missing.length === 0 && unlisted.length === 0) {
|
|
52
|
+
checks.push({ name: 'modules_consistent', severity: 'pass', message: 'Product module list matches actual modules' });
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
if (missing.length > 0) {
|
|
56
|
+
checks.push({ name: 'modules_consistent', severity: 'fail', message: `Product references missing modules: ${missing.join(', ')}` });
|
|
57
|
+
}
|
|
58
|
+
if (unlisted.length > 0) {
|
|
59
|
+
checks.push({ name: 'modules_consistent', severity: 'warn', message: `Modules not listed in product: ${unlisted.join(', ')}` });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function checkTasksCovered(spec, checks) {
|
|
64
|
+
const removeCount = spec.tasks.filter((t) => t.action === 'remove').length;
|
|
65
|
+
const generateCount = spec.tasks.filter((t) => t.action === 'generate' || t.action === 'regenerate').length;
|
|
66
|
+
const verifyCount = spec.tasks.filter((t) => t.action === 'verify').length;
|
|
67
|
+
if (spec.tasks.length === 0) {
|
|
68
|
+
checks.push({ name: 'tasks_present', severity: 'pass', message: 'No tasks required (clean state)' });
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
checks.push({
|
|
72
|
+
name: 'tasks_present',
|
|
73
|
+
severity: 'pass',
|
|
74
|
+
message: `${spec.tasks.length} task(s): ${generateCount} generate, ${removeCount} remove, ${verifyCount} verify`,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function checkWorkflowPassed(workflow, checks) {
|
|
79
|
+
if (workflow.ok) {
|
|
80
|
+
checks.push({ name: 'workflow_phases', severity: 'pass', message: `All ${workflow.phases.length} workflow phases completed` });
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const failed = workflow.phases.filter((p) => !p.ok).map((p) => p.phase);
|
|
84
|
+
checks.push({ name: 'workflow_phases', severity: 'fail', message: `Workflow phases failed: ${failed.join(', ')}` });
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function checkReviewAcceptance(cycles, checks) {
|
|
88
|
+
if (cycles.length === 0) {
|
|
89
|
+
checks.push({ name: 'review_acceptance', severity: 'warn', message: 'No review cycles were run' });
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const lastCycle = cycles[cycles.length - 1];
|
|
93
|
+
if (lastCycle.accepted) {
|
|
94
|
+
checks.push({
|
|
95
|
+
name: 'review_acceptance',
|
|
96
|
+
severity: 'pass',
|
|
97
|
+
message: `Review accepted after ${cycles.length} cycle(s)`,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
checks.push({
|
|
102
|
+
name: 'review_acceptance',
|
|
103
|
+
severity: 'fail',
|
|
104
|
+
message: `Review not accepted after ${cycles.length} cycle(s): ${lastCycle.criticalCount} critical, ${lastCycle.errorCount} errors`,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function checkConstitutionPresence(graph, checks) {
|
|
109
|
+
let constitutionCount = 0;
|
|
110
|
+
for (const mod of graph.modules) {
|
|
111
|
+
const constitutions = getNodeArray(mod, 'constitutions');
|
|
112
|
+
constitutionCount += constitutions.length;
|
|
113
|
+
}
|
|
114
|
+
if (constitutionCount > 0) {
|
|
115
|
+
checks.push({ name: 'constitution_present', severity: 'pass', message: `${constitutionCount} constitution(s) defined` });
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
checks.push({ name: 'constitution_present', severity: 'warn', message: 'No constitutions defined — consider adding governance policies' });
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function getNodeArray(mod, category) {
|
|
122
|
+
const val = mod[category];
|
|
123
|
+
if (!Array.isArray(val))
|
|
124
|
+
return [];
|
|
125
|
+
return val;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/verification/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ProductGraph } from '../graph/graph-types.js';
|
|
2
|
+
import type { IncrementalSpec } from '../incremental/types.js';
|
|
3
|
+
import type { ResolvedClarifyConfig, AmbiguityThreshold } from '../config/config.js';
|
|
4
|
+
import type { ClarifyOutput, ClarifyQuestion, PhaseResult, AutoClarifyResult } from './types.js';
|
|
5
|
+
export declare function runClarifyPhase(graph: ProductGraph, spec: IncrementalSpec, config: ResolvedClarifyConfig): PhaseResult<ClarifyOutput>;
|
|
6
|
+
export declare function autoResolveClarifications(questions: readonly ClarifyQuestion[], threshold: AmbiguityThreshold, graph: ProductGraph): AutoClarifyResult;
|
|
7
|
+
//# sourceMappingURL=clarify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clarify.d.ts","sourceRoot":"","sources":["../../src/workflow/clarify.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAoB,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEvG,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAsC,WAAW,EAAE,iBAAiB,EAAoB,MAAM,YAAY,CAAC;AAMvJ,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,qBAAqB,GAC5B,WAAW,CAAC,aAAa,CAAC,CAiB5B;AA2HD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,SAAS,eAAe,EAAE,EACrC,SAAS,EAAE,kBAAkB,EAC7B,KAAK,EAAE,YAAY,GAClB,iBAAiB,CAiBnB"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Prodara Compiler — Clarify Phase
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Generates prioritized clarification questions by analyzing the Product
|
|
5
|
+
// Graph for ambiguities, missing constructs, and incomplete definitions.
|
|
6
|
+
import { priorityRank } from '../config/config.js';
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Main entry point
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
export function runClarifyPhase(graph, spec, config) {
|
|
11
|
+
const allQuestions = generateQuestions(graph, spec);
|
|
12
|
+
const minRank = priorityRank(config.minimumQuestionPriority);
|
|
13
|
+
const filtered = allQuestions.filter((q) => priorityRank(q.priority) >= minRank);
|
|
14
|
+
const limited = filtered.slice(0, config.maxQuestions);
|
|
15
|
+
return {
|
|
16
|
+
phase: 'clarify',
|
|
17
|
+
ok: true,
|
|
18
|
+
data: {
|
|
19
|
+
questions: limited,
|
|
20
|
+
filteredCount: limited.length,
|
|
21
|
+
totalCount: allQuestions.length,
|
|
22
|
+
},
|
|
23
|
+
warnings: [],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
// Question generators
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
function generateQuestions(graph, _spec) {
|
|
30
|
+
const questions = [];
|
|
31
|
+
let nextId = 1;
|
|
32
|
+
for (const mod of graph.modules) {
|
|
33
|
+
// Empty modules → what should they contain?
|
|
34
|
+
const entities = getNodeArray(mod, 'entities');
|
|
35
|
+
const workflows = getNodeArray(mod, 'workflows');
|
|
36
|
+
if (entities.length === 0 && workflows.length === 0) {
|
|
37
|
+
questions.push(makeQuestion(nextId++, 'medium', 'empty_module', mod.id, `Module "${mod.name}" has no entities or workflows. What domain constructs should it contain?`, 'low'));
|
|
38
|
+
}
|
|
39
|
+
// Entities without identity fields → which field is the ID?
|
|
40
|
+
for (const entity of entities) {
|
|
41
|
+
const fields = getFields(entity);
|
|
42
|
+
const hasId = fields.some((f) => f === 'id' || f.endsWith('_id'));
|
|
43
|
+
if (!hasId && fields.length > 0) {
|
|
44
|
+
questions.push(makeQuestion(nextId++, 'high', 'missing_field', entity.id, `Entity "${entity.name}" in module "${mod.name}" has no obvious identity field. Which field uniquely identifies it?`, 'high'));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Workflows without authorization
|
|
48
|
+
for (const wf of getNodeArray(mod, 'workflows')) {
|
|
49
|
+
const hasAuth = graph.edges.some((e) => e.from === wf.id && e.kind === 'authorized_as');
|
|
50
|
+
if (!hasAuth) {
|
|
51
|
+
questions.push(makeQuestion(nextId++, 'high', 'missing_authorization', wf.id, `Workflow "${wf.name}" in module "${mod.name}" has no authorization. Who should be allowed to trigger it?`, 'medium'));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Surfaces without actions
|
|
55
|
+
for (const surface of getNodeArray(mod, 'surfaces')) {
|
|
56
|
+
const hasAction = graph.edges.some((e) => e.from === surface.id && e.kind === 'exposes_action');
|
|
57
|
+
if (!hasAction) {
|
|
58
|
+
questions.push(makeQuestion(nextId++, 'medium', 'missing_action', surface.id, `Surface "${surface.name}" in module "${mod.name}" has no exposed actions. What can the user do here?`, 'low'));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Unresolved imports
|
|
62
|
+
for (const imp of mod.imports) {
|
|
63
|
+
const found = graph.modules.some((m) => m.name === imp.from);
|
|
64
|
+
if (!found) {
|
|
65
|
+
questions.push(makeQuestion(nextId++, 'critical', 'unresolved_import', mod.id, `Module "${mod.name}" imports "${imp.symbol}" from "${imp.from}" which cannot be resolved. Is this an external dependency or a typo?`, 'low'));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return questions;
|
|
70
|
+
}
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
// Helpers
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
function makeQuestion(id, priority, category, nodeId, question, confidence = 'medium') {
|
|
75
|
+
return { id: `q${id}`, priority, category, nodeId, question, confidence };
|
|
76
|
+
}
|
|
77
|
+
function getNodeArray(mod, category) {
|
|
78
|
+
const val = mod[category];
|
|
79
|
+
if (!Array.isArray(val))
|
|
80
|
+
return [];
|
|
81
|
+
return val;
|
|
82
|
+
}
|
|
83
|
+
function getFields(entity) {
|
|
84
|
+
const raw = entity;
|
|
85
|
+
const fields = raw['fields'];
|
|
86
|
+
if (!Array.isArray(fields))
|
|
87
|
+
return [];
|
|
88
|
+
return fields
|
|
89
|
+
.filter((f) => typeof f === 'object' && f !== null && 'name' in f)
|
|
90
|
+
.map((f) => f.name);
|
|
91
|
+
}
|
|
92
|
+
// ---------------------------------------------------------------------------
|
|
93
|
+
// Auto-clarify — resolve questions the system can answer automatically
|
|
94
|
+
// ---------------------------------------------------------------------------
|
|
95
|
+
const confidenceRank = {
|
|
96
|
+
low: 0,
|
|
97
|
+
medium: 1,
|
|
98
|
+
high: 2,
|
|
99
|
+
};
|
|
100
|
+
const thresholdRank = {
|
|
101
|
+
low: 0,
|
|
102
|
+
medium: 1,
|
|
103
|
+
high: 2,
|
|
104
|
+
};
|
|
105
|
+
export function autoResolveClarifications(questions, threshold, graph) {
|
|
106
|
+
const minRank = thresholdRank[threshold];
|
|
107
|
+
const autoResolved = [];
|
|
108
|
+
const needsInput = [];
|
|
109
|
+
for (const q of questions) {
|
|
110
|
+
if (confidenceRank[q.confidence] >= minRank) {
|
|
111
|
+
const answer = deriveAnswer(q, graph);
|
|
112
|
+
if (answer !== null) {
|
|
113
|
+
autoResolved.push({ question: q, answer: answer.answer, reason: answer.reason });
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
needsInput.push(q);
|
|
118
|
+
}
|
|
119
|
+
return { autoResolved, needsInput };
|
|
120
|
+
}
|
|
121
|
+
function deriveAnswer(q, graph) {
|
|
122
|
+
switch (q.category) {
|
|
123
|
+
case 'empty_module': {
|
|
124
|
+
// Suggest based on module name if it hints at a domain
|
|
125
|
+
const mod = graph.modules.find((m) => m.id === q.nodeId);
|
|
126
|
+
if (mod) {
|
|
127
|
+
return {
|
|
128
|
+
answer: `Add domain entities and workflows appropriate for the "${mod.name}" module.`,
|
|
129
|
+
reason: `Module "${mod.name}" exists but is empty; standard practice is to define at least one entity.`,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
case 'missing_field': {
|
|
135
|
+
return {
|
|
136
|
+
answer: 'Add an "id" field of type "uuid" as the primary identifier.',
|
|
137
|
+
reason: 'Convention: every entity should have an explicit identity field; "id: uuid" is the standard default.',
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
case 'missing_authorization': {
|
|
141
|
+
return {
|
|
142
|
+
answer: 'Restrict to authenticated users by default.',
|
|
143
|
+
reason: 'Security best practice: workflows should require authentication unless explicitly public.',
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
case 'missing_action': {
|
|
147
|
+
const surface = graph.modules
|
|
148
|
+
.flatMap((m) => (m['surfaces'] ?? []))
|
|
149
|
+
.find((s) => s.id === q.nodeId);
|
|
150
|
+
if (surface) {
|
|
151
|
+
return {
|
|
152
|
+
answer: `Add at least one user action to surface "${surface.name}".`,
|
|
153
|
+
reason: 'A surface without actions provides no interactivity.',
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
case 'unresolved_import':
|
|
159
|
+
// Cannot safely auto-resolve — could be a typo or missing dependency
|
|
160
|
+
return null;
|
|
161
|
+
default:
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=clarify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clarify.js","sourceRoot":"","sources":["../../src/workflow/clarify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ProductGraph } from '../graph/graph-types.js';
|
|
2
|
+
import type { IncrementalSpec } from '../incremental/types.js';
|
|
3
|
+
import type { ResolvedConfig } from '../config/config.js';
|
|
4
|
+
import type { PhaseResult, SpecifyOutput, PlanOutput, TasksOutput, AnalyzeOutput, ImplementOutput } from './types.js';
|
|
5
|
+
export interface WorkflowResult {
|
|
6
|
+
readonly phases: readonly PhaseResult[];
|
|
7
|
+
readonly ok: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Run all workflow phases in sequence, producing structured outputs for
|
|
11
|
+
* each phase. The full pipeline: specify → clarify → plan → tasks → analyze → implement.
|
|
12
|
+
*/
|
|
13
|
+
export declare function runWorkflow(graph: ProductGraph, spec: IncrementalSpec, config: ResolvedConfig): WorkflowResult;
|
|
14
|
+
export declare function runSpecifyPhase(_graph: ProductGraph, spec: IncrementalSpec): PhaseResult<SpecifyOutput>;
|
|
15
|
+
export declare function runPlanPhase(graph: ProductGraph, spec: IncrementalSpec): PhaseResult<PlanOutput>;
|
|
16
|
+
export declare function runTasksPhase(graph: ProductGraph, spec: IncrementalSpec): PhaseResult<TasksOutput>;
|
|
17
|
+
export declare function runAnalyzePhase(graph: ProductGraph, spec: IncrementalSpec): PhaseResult<AnalyzeOutput>;
|
|
18
|
+
export declare function runImplementPhase(graph: ProductGraph, spec: IncrementalSpec): PhaseResult<ImplementOutput>;
|
|
19
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EAEb,UAAU,EAEV,WAAW,EAEX,aAAa,EAEb,eAAe,EAEhB,MAAM,YAAY,CAAC;AAOpB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,cAAc,GACrB,cAAc,CAYhB;AAMD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,eAAe,GACpB,WAAW,CAAC,aAAa,CAAC,CAuC5B;AAiBD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,eAAe,GACpB,WAAW,CAAC,UAAU,CAAC,CA4BzB;AAMD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,eAAe,GACpB,WAAW,CAAC,WAAW,CAAC,CAqC1B;AAMD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,eAAe,GACpB,WAAW,CAAC,aAAa,CAAC,CAoC5B;AAMD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,eAAe,GACpB,WAAW,CAAC,eAAe,CAAC,CA2B9B"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Prodara Compiler — Workflow Phase Engine
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Deterministic phase orchestrator. Each phase analyzes the Product Graph
|
|
5
|
+
// and IncrementalSpec to produce structured data that external agents consume.
|
|
6
|
+
// No AI or generative work is performed — all outputs are rule-based.
|
|
7
|
+
import { runClarifyPhase } from './clarify.js';
|
|
8
|
+
/**
|
|
9
|
+
* Run all workflow phases in sequence, producing structured outputs for
|
|
10
|
+
* each phase. The full pipeline: specify → clarify → plan → tasks → analyze → implement.
|
|
11
|
+
*/
|
|
12
|
+
export function runWorkflow(graph, spec, config) {
|
|
13
|
+
const phases = [];
|
|
14
|
+
phases.push(runSpecifyPhase(graph, spec));
|
|
15
|
+
phases.push(runClarifyPhase(graph, spec, config.phases.clarify));
|
|
16
|
+
phases.push(runPlanPhase(graph, spec));
|
|
17
|
+
phases.push(runTasksPhase(graph, spec));
|
|
18
|
+
phases.push(runAnalyzePhase(graph, spec));
|
|
19
|
+
phases.push(runImplementPhase(graph, spec));
|
|
20
|
+
const ok = phases.every((p) => p.ok);
|
|
21
|
+
return { phases, ok };
|
|
22
|
+
}
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Specify phase — describe what changed and what's affected
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
export function runSpecifyPhase(_graph, spec) {
|
|
27
|
+
const added = [];
|
|
28
|
+
const removed = [];
|
|
29
|
+
const modified = [];
|
|
30
|
+
const impacted = [];
|
|
31
|
+
for (const c of spec.changes) {
|
|
32
|
+
const entry = {
|
|
33
|
+
nodeId: c.nodeId,
|
|
34
|
+
nodeKind: c.nodeKind,
|
|
35
|
+
module: c.module,
|
|
36
|
+
description: describeChange(c.changeKind, c.nodeId),
|
|
37
|
+
};
|
|
38
|
+
if (c.changeKind === 'added')
|
|
39
|
+
added.push(entry);
|
|
40
|
+
else if (c.changeKind === 'removed')
|
|
41
|
+
removed.push(entry);
|
|
42
|
+
else
|
|
43
|
+
modified.push(entry);
|
|
44
|
+
}
|
|
45
|
+
for (const i of spec.impacts) {
|
|
46
|
+
impacted.push({
|
|
47
|
+
nodeId: i.nodeId,
|
|
48
|
+
nodeKind: i.nodeKind,
|
|
49
|
+
module: i.module,
|
|
50
|
+
description: `Impacted via ${i.via}: ${i.reason}`,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
phase: 'specify',
|
|
55
|
+
ok: true,
|
|
56
|
+
data: {
|
|
57
|
+
affectedModules: [...spec.summary.affectedModules],
|
|
58
|
+
addedNodes: added,
|
|
59
|
+
removedNodes: removed,
|
|
60
|
+
modifiedNodes: modified,
|
|
61
|
+
impactedNodes: impacted,
|
|
62
|
+
},
|
|
63
|
+
warnings: [],
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function describeChange(changeKind, nodeId) {
|
|
67
|
+
switch (changeKind) {
|
|
68
|
+
case 'added': return `New node "${nodeId}" added`;
|
|
69
|
+
case 'removed': return `Node "${nodeId}" removed`;
|
|
70
|
+
case 'renamed': return `Node "${nodeId}" renamed`;
|
|
71
|
+
case 'structurally_changed': return `Node "${nodeId}" structure changed`;
|
|
72
|
+
case 'behaviorally_changed': return `Node "${nodeId}" behavior changed`;
|
|
73
|
+
case 'policy_changed': return `Node "${nodeId}" policy changed`;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
// Plan phase — produce implementation steps from incremental spec tasks
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
export function runPlanPhase(graph, spec) {
|
|
80
|
+
const meta = buildNodeMetaMap(graph);
|
|
81
|
+
const steps = [];
|
|
82
|
+
for (const task of spec.tasks) {
|
|
83
|
+
const m = meta.get(task.nodeId);
|
|
84
|
+
const deps = findDependencies(graph, task.nodeId);
|
|
85
|
+
steps.push({
|
|
86
|
+
stepId: `step_${task.taskId}`,
|
|
87
|
+
taskId: task.taskId,
|
|
88
|
+
nodeId: task.nodeId,
|
|
89
|
+
action: task.action,
|
|
90
|
+
module: m?.module ?? '',
|
|
91
|
+
nodeKind: m?.kind ?? 'unknown',
|
|
92
|
+
description: task.reason,
|
|
93
|
+
dependsOn: deps
|
|
94
|
+
.filter((d) => spec.tasks.some((t) => t.nodeId === d))
|
|
95
|
+
.map((d) => `step_${spec.tasks.find((t) => t.nodeId === d).taskId}`),
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
phase: 'plan',
|
|
100
|
+
ok: true,
|
|
101
|
+
data: { steps },
|
|
102
|
+
warnings: [],
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// ---------------------------------------------------------------------------
|
|
106
|
+
// Tasks phase — topological ordering of tasks
|
|
107
|
+
// ---------------------------------------------------------------------------
|
|
108
|
+
export function runTasksPhase(graph, spec) {
|
|
109
|
+
const meta = buildNodeMetaMap(graph);
|
|
110
|
+
// Build task dependency graph
|
|
111
|
+
const taskNodeIds = new Set(spec.tasks.map((t) => t.nodeId));
|
|
112
|
+
const taskDeps = new Map();
|
|
113
|
+
for (const task of spec.tasks) {
|
|
114
|
+
const deps = findDependencies(graph, task.nodeId)
|
|
115
|
+
.filter((d) => taskNodeIds.has(d) && d !== task.nodeId);
|
|
116
|
+
taskDeps.set(task.taskId, deps
|
|
117
|
+
.map((d) => spec.tasks.find((t) => t.nodeId === d).taskId));
|
|
118
|
+
}
|
|
119
|
+
// Topological sort (Kahn's algorithm)
|
|
120
|
+
const ordered = topologicalSort(spec.tasks.map((t) => t.taskId), taskDeps);
|
|
121
|
+
const orderedTasks = spec.tasks.map((task) => {
|
|
122
|
+
const order = ordered.indexOf(task.taskId);
|
|
123
|
+
const blockedBy = taskDeps.get(task.taskId);
|
|
124
|
+
return {
|
|
125
|
+
taskId: task.taskId,
|
|
126
|
+
order,
|
|
127
|
+
nodeId: task.nodeId,
|
|
128
|
+
action: task.action,
|
|
129
|
+
module: meta.get(task.nodeId)?.module ?? '',
|
|
130
|
+
blocked: false,
|
|
131
|
+
blockedBy,
|
|
132
|
+
};
|
|
133
|
+
}).sort((a, b) => a.order - b.order);
|
|
134
|
+
return {
|
|
135
|
+
phase: 'tasks',
|
|
136
|
+
ok: true,
|
|
137
|
+
data: { orderedTasks },
|
|
138
|
+
warnings: [],
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
// ---------------------------------------------------------------------------
|
|
142
|
+
// Analyze phase — risk and dependency analysis
|
|
143
|
+
// ---------------------------------------------------------------------------
|
|
144
|
+
export function runAnalyzePhase(graph, spec) {
|
|
145
|
+
const analyses = [];
|
|
146
|
+
for (const task of spec.tasks) {
|
|
147
|
+
const inbound = graph.edges.filter((e) => e.to === task.nodeId);
|
|
148
|
+
const outbound = graph.edges.filter((e) => e.from === task.nodeId);
|
|
149
|
+
const riskFactors = [];
|
|
150
|
+
if (task.action === 'remove')
|
|
151
|
+
riskFactors.push('removal');
|
|
152
|
+
if (inbound.length > 5)
|
|
153
|
+
riskFactors.push('high_inbound_edges');
|
|
154
|
+
if (outbound.length > 5)
|
|
155
|
+
riskFactors.push('high_outbound_edges');
|
|
156
|
+
// Check if node is an entity (higher risk changes)
|
|
157
|
+
const isEntity = spec.changes.some((c) => c.nodeId === task.nodeId && c.nodeKind === 'entity');
|
|
158
|
+
if (isEntity && task.action === 'regenerate')
|
|
159
|
+
riskFactors.push('entity_modification');
|
|
160
|
+
const riskLevel = riskFactors.length >= 3 ? 'high' : riskFactors.length >= 1 ? 'medium' : 'low';
|
|
161
|
+
analyses.push({
|
|
162
|
+
taskId: task.taskId,
|
|
163
|
+
nodeId: task.nodeId,
|
|
164
|
+
riskLevel,
|
|
165
|
+
riskFactors,
|
|
166
|
+
dependencyCount: outbound.length,
|
|
167
|
+
dependentCount: inbound.length,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
phase: 'analyze',
|
|
172
|
+
ok: true,
|
|
173
|
+
data: { analyses },
|
|
174
|
+
warnings: [],
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
// ---------------------------------------------------------------------------
|
|
178
|
+
// Implement phase — generate task instructions
|
|
179
|
+
// ---------------------------------------------------------------------------
|
|
180
|
+
export function runImplementPhase(graph, spec) {
|
|
181
|
+
const meta = buildNodeMetaMap(graph);
|
|
182
|
+
const instructions = [];
|
|
183
|
+
for (const task of spec.tasks) {
|
|
184
|
+
const m = meta.get(task.nodeId);
|
|
185
|
+
const related = graph.edges
|
|
186
|
+
.filter((e) => e.from === task.nodeId || e.to === task.nodeId)
|
|
187
|
+
.map((e) => `${e.from} -[${e.kind}]-> ${e.to}`);
|
|
188
|
+
instructions.push({
|
|
189
|
+
taskId: task.taskId,
|
|
190
|
+
nodeId: task.nodeId,
|
|
191
|
+
module: m?.module ?? '',
|
|
192
|
+
action: task.action,
|
|
193
|
+
nodeKind: m?.kind ?? 'unknown',
|
|
194
|
+
context: task.reason,
|
|
195
|
+
relatedEdges: related,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
phase: 'implement',
|
|
200
|
+
ok: true,
|
|
201
|
+
data: { instructions },
|
|
202
|
+
warnings: [],
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
function buildNodeMetaMap(graph) {
|
|
206
|
+
const map = new Map();
|
|
207
|
+
map.set('product', { kind: 'product', module: '' });
|
|
208
|
+
for (const mod of graph.modules) {
|
|
209
|
+
map.set(mod.id, { kind: 'module', module: mod.name });
|
|
210
|
+
for (const [, value] of Object.entries(mod)) {
|
|
211
|
+
if (Array.isArray(value)) {
|
|
212
|
+
for (const item of value) {
|
|
213
|
+
if (typeof item === 'object' && item !== null && 'id' in item && 'kind' in item) {
|
|
214
|
+
const typed = item;
|
|
215
|
+
map.set(typed.id, { kind: typed.kind, module: mod.name });
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return map;
|
|
222
|
+
}
|
|
223
|
+
function findDependencies(graph, nodeId) {
|
|
224
|
+
return graph.edges
|
|
225
|
+
.filter((e) => e.from === nodeId)
|
|
226
|
+
.map((e) => e.to);
|
|
227
|
+
}
|
|
228
|
+
function topologicalSort(nodes, blockedBy) {
|
|
229
|
+
// Build reverse adjacency: prerequisite → nodes it unblocks
|
|
230
|
+
const unblocks = new Map();
|
|
231
|
+
const inDegree = new Map();
|
|
232
|
+
for (const n of nodes)
|
|
233
|
+
inDegree.set(n, 0);
|
|
234
|
+
for (const [node, prereqs] of blockedBy) {
|
|
235
|
+
inDegree.set(node, inDegree.get(node) + prereqs.length);
|
|
236
|
+
for (const p of prereqs) {
|
|
237
|
+
if (!unblocks.has(p))
|
|
238
|
+
unblocks.set(p, []);
|
|
239
|
+
unblocks.get(p).push(node);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
const queue = [];
|
|
243
|
+
for (const [n, deg] of inDegree) {
|
|
244
|
+
if (deg === 0)
|
|
245
|
+
queue.push(n);
|
|
246
|
+
}
|
|
247
|
+
const result = [];
|
|
248
|
+
while (queue.length > 0) {
|
|
249
|
+
const current = queue.shift();
|
|
250
|
+
result.push(current);
|
|
251
|
+
for (const dep of unblocks.get(current) ?? []) {
|
|
252
|
+
const newDeg = inDegree.get(dep) - 1;
|
|
253
|
+
inDegree.set(dep, newDeg);
|
|
254
|
+
if (newDeg === 0)
|
|
255
|
+
queue.push(dep);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
// If there are remaining nodes (cycle), append them
|
|
259
|
+
for (const n of nodes) {
|
|
260
|
+
if (!result.includes(n))
|
|
261
|
+
result.push(n);
|
|
262
|
+
}
|
|
263
|
+
return result;
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { PhaseKind, PhaseResult, SpecifyOutput, SpecifyNodeEntry, ClarifyOutput, ClarifyQuestion, ClarifyCategory, ClarifyConfidence, AutoClarifyResult, ResolvedQuestion, PlanOutput, PlanStep, TasksOutput, OrderedTask, AnalyzeOutput, TaskAnalysis, ImplementOutput, ImplementInstruction, } from './types.js';
|
|
2
|
+
export { PHASE_KINDS } from './types.js';
|
|
3
|
+
export { runClarifyPhase, autoResolveClarifications } from './clarify.js';
|
|
4
|
+
export type { WorkflowResult } from './engine.js';
|
|
5
|
+
export { runWorkflow, runSpecifyPhase, runPlanPhase, runTasksPhase, runAnalyzePhase, runImplementPhase, } from './engine.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,SAAS,EACT,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,eAAe,EACf,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAC1E,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,WAAW,EACX,eAAe,EACf,YAAY,EACZ,aAAa,EACb,eAAe,EACf,iBAAiB,GAClB,MAAM,aAAa,CAAC"}
|