@substrate-ai/factory 0.19.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/config.test.d.ts +11 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +215 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/__tests__/factory-run-command.test.d.ts +12 -0
- package/dist/__tests__/factory-run-command.test.d.ts.map +1 -0
- package/dist/__tests__/factory-run-command.test.js +454 -0
- package/dist/__tests__/factory-run-command.test.js.map +1 -0
- package/dist/__tests__/factory-validate-command.test.d.ts +15 -0
- package/dist/__tests__/factory-validate-command.test.d.ts.map +1 -0
- package/dist/__tests__/factory-validate-command.test.js +339 -0
- package/dist/__tests__/factory-validate-command.test.js.map +1 -0
- package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts +72 -0
- package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.d.ts.map +1 -0
- package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js +121 -0
- package/dist/__tests__/fixtures/advanced-cross-project-validation.dot.js.map +1 -0
- package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts +28 -0
- package/dist/__tests__/fixtures/llm-edge-routing.dot.d.ts.map +1 -0
- package/dist/__tests__/fixtures/llm-edge-routing.dot.js +55 -0
- package/dist/__tests__/fixtures/llm-edge-routing.dot.js.map +1 -0
- package/dist/__tests__/fixtures/manager-loop.dot.d.ts +34 -0
- package/dist/__tests__/fixtures/manager-loop.dot.d.ts.map +1 -0
- package/dist/__tests__/fixtures/manager-loop.dot.js +61 -0
- package/dist/__tests__/fixtures/manager-loop.dot.js.map +1 -0
- package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts +42 -0
- package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.d.ts.map +1 -0
- package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js +118 -0
- package/dist/__tests__/fixtures/parallel-fan-out-fan-in.dot.js.map +1 -0
- package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts +35 -0
- package/dist/__tests__/fixtures/subgraph-parent.dot.d.ts.map +1 -0
- package/dist/__tests__/fixtures/subgraph-parent.dot.js +69 -0
- package/dist/__tests__/fixtures/subgraph-parent.dot.js.map +1 -0
- package/dist/__tests__/integration/advanced-graph-events.test.d.ts +19 -0
- package/dist/__tests__/integration/advanced-graph-events.test.d.ts.map +1 -0
- package/dist/__tests__/integration/advanced-graph-events.test.js +288 -0
- package/dist/__tests__/integration/advanced-graph-events.test.js.map +1 -0
- package/dist/__tests__/integration/checkpoint-resume.test.d.ts +10 -0
- package/dist/__tests__/integration/checkpoint-resume.test.d.ts.map +1 -0
- package/dist/__tests__/integration/checkpoint-resume.test.js +125 -0
- package/dist/__tests__/integration/checkpoint-resume.test.js.map +1 -0
- package/dist/__tests__/integration/conditional-pipeline.test.d.ts +10 -0
- package/dist/__tests__/integration/conditional-pipeline.test.d.ts.map +1 -0
- package/dist/__tests__/integration/conditional-pipeline.test.js +106 -0
- package/dist/__tests__/integration/conditional-pipeline.test.js.map +1 -0
- package/dist/__tests__/integration/convergence-validation.test.d.ts +14 -0
- package/dist/__tests__/integration/convergence-validation.test.d.ts.map +1 -0
- package/dist/__tests__/integration/convergence-validation.test.js +449 -0
- package/dist/__tests__/integration/convergence-validation.test.js.map +1 -0
- package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts +12 -0
- package/dist/__tests__/integration/epic44-coverage-gate.test.d.ts.map +1 -0
- package/dist/__tests__/integration/epic44-coverage-gate.test.js +58 -0
- package/dist/__tests__/integration/epic44-coverage-gate.test.js.map +1 -0
- package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts +11 -0
- package/dist/__tests__/integration/epic45-coverage-gate.test.d.ts.map +1 -0
- package/dist/__tests__/integration/epic45-coverage-gate.test.js +64 -0
- package/dist/__tests__/integration/epic45-coverage-gate.test.js.map +1 -0
- package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts +2 -0
- package/dist/__tests__/integration/epic46-scenario-primary-executor.test.d.ts.map +1 -0
- package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js +285 -0
- package/dist/__tests__/integration/epic46-scenario-primary-executor.test.js.map +1 -0
- package/dist/__tests__/integration/events.test.d.ts +8 -0
- package/dist/__tests__/integration/events.test.d.ts.map +1 -0
- package/dist/__tests__/integration/events.test.js +194 -0
- package/dist/__tests__/integration/events.test.js.map +1 -0
- package/dist/__tests__/integration/graphs.d.ts +59 -0
- package/dist/__tests__/integration/graphs.d.ts.map +1 -0
- package/dist/__tests__/integration/graphs.js +164 -0
- package/dist/__tests__/integration/graphs.js.map +1 -0
- package/dist/__tests__/integration/helpers.d.ts +127 -0
- package/dist/__tests__/integration/helpers.d.ts.map +1 -0
- package/dist/__tests__/integration/helpers.js +167 -0
- package/dist/__tests__/integration/helpers.js.map +1 -0
- package/dist/__tests__/integration/integrity.test.d.ts +8 -0
- package/dist/__tests__/integration/integrity.test.d.ts.map +1 -0
- package/dist/__tests__/integration/integrity.test.js +198 -0
- package/dist/__tests__/integration/integrity.test.js.map +1 -0
- package/dist/__tests__/integration/llm-edge-routing.test.d.ts +21 -0
- package/dist/__tests__/integration/llm-edge-routing.test.d.ts.map +1 -0
- package/dist/__tests__/integration/llm-edge-routing.test.js +341 -0
- package/dist/__tests__/integration/llm-edge-routing.test.js.map +1 -0
- package/dist/__tests__/integration/manager-loop.test.d.ts +24 -0
- package/dist/__tests__/integration/manager-loop.test.d.ts.map +1 -0
- package/dist/__tests__/integration/manager-loop.test.js +276 -0
- package/dist/__tests__/integration/manager-loop.test.js.map +1 -0
- package/dist/__tests__/integration/multi-type-graph.test.d.ts +10 -0
- package/dist/__tests__/integration/multi-type-graph.test.d.ts.map +1 -0
- package/dist/__tests__/integration/multi-type-graph.test.js +100 -0
- package/dist/__tests__/integration/multi-type-graph.test.js.map +1 -0
- package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts +22 -0
- package/dist/__tests__/integration/parallel-fan-out-fan-in.test.d.ts.map +1 -0
- package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js +515 -0
- package/dist/__tests__/integration/parallel-fan-out-fan-in.test.js.map +1 -0
- package/dist/__tests__/integration/persistence.test.d.ts +8 -0
- package/dist/__tests__/integration/persistence.test.d.ts.map +1 -0
- package/dist/__tests__/integration/persistence.test.js +129 -0
- package/dist/__tests__/integration/persistence.test.js.map +1 -0
- package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts +16 -0
- package/dist/__tests__/integration/pipeline-templates-integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/pipeline-templates-integration.test.js +171 -0
- package/dist/__tests__/integration/pipeline-templates-integration.test.js.map +1 -0
- package/dist/__tests__/integration/scenario-pipeline.test.d.ts +11 -0
- package/dist/__tests__/integration/scenario-pipeline.test.d.ts.map +1 -0
- package/dist/__tests__/integration/scenario-pipeline.test.js +243 -0
- package/dist/__tests__/integration/scenario-pipeline.test.js.map +1 -0
- package/dist/__tests__/integration/stylesheet-application.test.d.ts +12 -0
- package/dist/__tests__/integration/stylesheet-application.test.d.ts.map +1 -0
- package/dist/__tests__/integration/stylesheet-application.test.js +119 -0
- package/dist/__tests__/integration/stylesheet-application.test.js.map +1 -0
- package/dist/__tests__/integration/subgraph-execution.test.d.ts +24 -0
- package/dist/__tests__/integration/subgraph-execution.test.d.ts.map +1 -0
- package/dist/__tests__/integration/subgraph-execution.test.js +291 -0
- package/dist/__tests__/integration/subgraph-execution.test.js.map +1 -0
- package/dist/__tests__/integration/validation-errors.test.d.ts +8 -0
- package/dist/__tests__/integration/validation-errors.test.d.ts.map +1 -0
- package/dist/__tests__/integration/validation-errors.test.js +150 -0
- package/dist/__tests__/integration/validation-errors.test.js.map +1 -0
- package/dist/agent/__tests__/loop-detection.test.d.ts +2 -0
- package/dist/agent/__tests__/loop-detection.test.d.ts.map +1 -0
- package/dist/agent/__tests__/loop-detection.test.js +236 -0
- package/dist/agent/__tests__/loop-detection.test.js.map +1 -0
- package/dist/agent/__tests__/loop.test.d.ts +2 -0
- package/dist/agent/__tests__/loop.test.d.ts.map +1 -0
- package/dist/agent/__tests__/loop.test.js +868 -0
- package/dist/agent/__tests__/loop.test.js.map +1 -0
- package/dist/agent/__tests__/truncation.test.d.ts +2 -0
- package/dist/agent/__tests__/truncation.test.d.ts.map +1 -0
- package/dist/agent/__tests__/truncation.test.js +276 -0
- package/dist/agent/__tests__/truncation.test.js.map +1 -0
- package/dist/agent/index.d.ts +11 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +13 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/loop-detection.d.ts +21 -0
- package/dist/agent/loop-detection.d.ts.map +1 -0
- package/dist/agent/loop-detection.js +61 -0
- package/dist/agent/loop-detection.js.map +1 -0
- package/dist/agent/loop.d.ts +88 -0
- package/dist/agent/loop.d.ts.map +1 -0
- package/dist/agent/loop.js +411 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts +6 -0
- package/dist/agent/tools/__tests__/anthropic-tools.test.d.ts.map +1 -0
- package/dist/agent/tools/__tests__/anthropic-tools.test.js +49 -0
- package/dist/agent/tools/__tests__/anthropic-tools.test.js.map +1 -0
- package/dist/agent/tools/__tests__/environment.test.d.ts +6 -0
- package/dist/agent/tools/__tests__/environment.test.d.ts.map +1 -0
- package/dist/agent/tools/__tests__/environment.test.js +33 -0
- package/dist/agent/tools/__tests__/environment.test.js.map +1 -0
- package/dist/agent/tools/__tests__/gemini-tools.test.d.ts +6 -0
- package/dist/agent/tools/__tests__/gemini-tools.test.d.ts.map +1 -0
- package/dist/agent/tools/__tests__/gemini-tools.test.js +98 -0
- package/dist/agent/tools/__tests__/gemini-tools.test.js.map +1 -0
- package/dist/agent/tools/__tests__/openai-tools.test.d.ts +6 -0
- package/dist/agent/tools/__tests__/openai-tools.test.d.ts.map +1 -0
- package/dist/agent/tools/__tests__/openai-tools.test.js +53 -0
- package/dist/agent/tools/__tests__/openai-tools.test.js.map +1 -0
- package/dist/agent/tools/__tests__/patch.test.d.ts +6 -0
- package/dist/agent/tools/__tests__/patch.test.d.ts.map +1 -0
- package/dist/agent/tools/__tests__/patch.test.js +116 -0
- package/dist/agent/tools/__tests__/patch.test.js.map +1 -0
- package/dist/agent/tools/__tests__/profiles.test.d.ts +6 -0
- package/dist/agent/tools/__tests__/profiles.test.d.ts.map +1 -0
- package/dist/agent/tools/__tests__/profiles.test.js +125 -0
- package/dist/agent/tools/__tests__/profiles.test.js.map +1 -0
- package/dist/agent/tools/__tests__/registry.test.d.ts +6 -0
- package/dist/agent/tools/__tests__/registry.test.d.ts.map +1 -0
- package/dist/agent/tools/__tests__/registry.test.js +94 -0
- package/dist/agent/tools/__tests__/registry.test.js.map +1 -0
- package/dist/agent/tools/__tests__/shared.test.d.ts +6 -0
- package/dist/agent/tools/__tests__/shared.test.d.ts.map +1 -0
- package/dist/agent/tools/__tests__/shared.test.js +131 -0
- package/dist/agent/tools/__tests__/shared.test.js.map +1 -0
- package/dist/agent/tools/anthropic-tools.d.ts +15 -0
- package/dist/agent/tools/anthropic-tools.d.ts.map +1 -0
- package/dist/agent/tools/anthropic-tools.js +45 -0
- package/dist/agent/tools/anthropic-tools.js.map +1 -0
- package/dist/agent/tools/environment.d.ts +11 -0
- package/dist/agent/tools/environment.d.ts.map +1 -0
- package/dist/agent/tools/environment.js +35 -0
- package/dist/agent/tools/environment.js.map +1 -0
- package/dist/agent/tools/gemini-tools.d.ts +29 -0
- package/dist/agent/tools/gemini-tools.d.ts.map +1 -0
- package/dist/agent/tools/gemini-tools.js +112 -0
- package/dist/agent/tools/gemini-tools.js.map +1 -0
- package/dist/agent/tools/index.d.ts +13 -0
- package/dist/agent/tools/index.d.ts.map +1 -0
- package/dist/agent/tools/index.js +13 -0
- package/dist/agent/tools/index.js.map +1 -0
- package/dist/agent/tools/openai-tools.d.ts +18 -0
- package/dist/agent/tools/openai-tools.d.ts.map +1 -0
- package/dist/agent/tools/openai-tools.js +208 -0
- package/dist/agent/tools/openai-tools.js.map +1 -0
- package/dist/agent/tools/profiles.d.ts +66 -0
- package/dist/agent/tools/profiles.d.ts.map +1 -0
- package/dist/agent/tools/profiles.js +121 -0
- package/dist/agent/tools/profiles.js.map +1 -0
- package/dist/agent/tools/registry.d.ts +16 -0
- package/dist/agent/tools/registry.d.ts.map +1 -0
- package/dist/agent/tools/registry.js +55 -0
- package/dist/agent/tools/registry.js.map +1 -0
- package/dist/agent/tools/shared.d.ts +10 -0
- package/dist/agent/tools/shared.d.ts.map +1 -0
- package/dist/agent/tools/shared.js +207 -0
- package/dist/agent/tools/shared.js.map +1 -0
- package/dist/agent/tools/types.d.ts +55 -0
- package/dist/agent/tools/types.d.ts.map +1 -0
- package/dist/agent/tools/types.js +14 -0
- package/dist/agent/tools/types.js.map +1 -0
- package/dist/agent/truncation.d.ts +29 -0
- package/dist/agent/truncation.d.ts.map +1 -0
- package/dist/agent/truncation.js +76 -0
- package/dist/agent/truncation.js.map +1 -0
- package/dist/agent/types.d.ts +91 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +45 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/backend/__tests__/direct-backend.test.d.ts +14 -0
- package/dist/backend/__tests__/direct-backend.test.d.ts.map +1 -0
- package/dist/backend/__tests__/direct-backend.test.js +393 -0
- package/dist/backend/__tests__/direct-backend.test.js.map +1 -0
- package/dist/backend/__tests__/direct-bootstrap.test.d.ts +7 -0
- package/dist/backend/__tests__/direct-bootstrap.test.d.ts.map +1 -0
- package/dist/backend/__tests__/direct-bootstrap.test.js +177 -0
- package/dist/backend/__tests__/direct-bootstrap.test.js.map +1 -0
- package/dist/backend/__tests__/mock-backend.test.d.ts +7 -0
- package/dist/backend/__tests__/mock-backend.test.d.ts.map +1 -0
- package/dist/backend/__tests__/mock-backend.test.js +273 -0
- package/dist/backend/__tests__/mock-backend.test.js.map +1 -0
- package/dist/backend/__tests__/parity.test.d.ts +17 -0
- package/dist/backend/__tests__/parity.test.d.ts.map +1 -0
- package/dist/backend/__tests__/parity.test.js +411 -0
- package/dist/backend/__tests__/parity.test.js.map +1 -0
- package/dist/backend/direct-backend.d.ts +27 -0
- package/dist/backend/direct-backend.d.ts.map +1 -0
- package/dist/backend/direct-backend.js +76 -0
- package/dist/backend/direct-backend.js.map +1 -0
- package/dist/backend/direct-bootstrap.d.ts +29 -0
- package/dist/backend/direct-bootstrap.d.ts.map +1 -0
- package/dist/backend/direct-bootstrap.js +109 -0
- package/dist/backend/direct-bootstrap.js.map +1 -0
- package/dist/backend/index.d.ts +11 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +8 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/mock-backend.d.ts +49 -0
- package/dist/backend/mock-backend.d.ts.map +1 -0
- package/dist/backend/mock-backend.js +87 -0
- package/dist/backend/mock-backend.js.map +1 -0
- package/dist/backend/types.d.ts +74 -0
- package/dist/backend/types.d.ts.map +1 -0
- package/dist/backend/types.js +12 -0
- package/dist/backend/types.js.map +1 -0
- package/dist/config.d.ts +196 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +140 -0
- package/dist/config.js.map +1 -0
- package/dist/context/__tests__/auto-summarizer.test.d.ts +14 -0
- package/dist/context/__tests__/auto-summarizer.test.d.ts.map +1 -0
- package/dist/context/__tests__/auto-summarizer.test.js +189 -0
- package/dist/context/__tests__/auto-summarizer.test.js.map +1 -0
- package/dist/context/__tests__/context-cli-command.test.d.ts +7 -0
- package/dist/context/__tests__/context-cli-command.test.d.ts.map +1 -0
- package/dist/context/__tests__/context-cli-command.test.js +331 -0
- package/dist/context/__tests__/context-cli-command.test.js.map +1 -0
- package/dist/context/__tests__/pyramid-summary-integration.test.d.ts +2 -0
- package/dist/context/__tests__/pyramid-summary-integration.test.d.ts.map +1 -0
- package/dist/context/__tests__/pyramid-summary-integration.test.js +533 -0
- package/dist/context/__tests__/pyramid-summary-integration.test.js.map +1 -0
- package/dist/context/__tests__/summarizer.test.d.ts +2 -0
- package/dist/context/__tests__/summarizer.test.d.ts.map +1 -0
- package/dist/context/__tests__/summarizer.test.js +189 -0
- package/dist/context/__tests__/summarizer.test.js.map +1 -0
- package/dist/context/__tests__/summary-cache.test.d.ts +2 -0
- package/dist/context/__tests__/summary-cache.test.d.ts.map +1 -0
- package/dist/context/__tests__/summary-cache.test.js +214 -0
- package/dist/context/__tests__/summary-cache.test.js.map +1 -0
- package/dist/context/__tests__/summary-metrics.test.d.ts +2 -0
- package/dist/context/__tests__/summary-metrics.test.d.ts.map +1 -0
- package/dist/context/__tests__/summary-metrics.test.js +172 -0
- package/dist/context/__tests__/summary-metrics.test.js.map +1 -0
- package/dist/context/__tests__/summary-types.test.d.ts +2 -0
- package/dist/context/__tests__/summary-types.test.d.ts.map +1 -0
- package/dist/context/__tests__/summary-types.test.js +130 -0
- package/dist/context/__tests__/summary-types.test.js.map +1 -0
- package/dist/context/auto-summarizer.d.ts +120 -0
- package/dist/context/auto-summarizer.d.ts.map +1 -0
- package/dist/context/auto-summarizer.js +91 -0
- package/dist/context/auto-summarizer.js.map +1 -0
- package/dist/context/cli-command.d.ts +109 -0
- package/dist/context/cli-command.d.ts.map +1 -0
- package/dist/context/cli-command.js +382 -0
- package/dist/context/cli-command.js.map +1 -0
- package/dist/context/index.d.ts +8 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +8 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/summarizer.d.ts +12 -0
- package/dist/context/summarizer.d.ts.map +1 -0
- package/dist/context/summarizer.js +105 -0
- package/dist/context/summarizer.js.map +1 -0
- package/dist/context/summary-cache.d.ts +41 -0
- package/dist/context/summary-cache.d.ts.map +1 -0
- package/dist/context/summary-cache.js +80 -0
- package/dist/context/summary-cache.js.map +1 -0
- package/dist/context/summary-engine.d.ts +46 -0
- package/dist/context/summary-engine.d.ts.map +1 -0
- package/dist/context/summary-engine.js +2 -0
- package/dist/context/summary-engine.js.map +1 -0
- package/dist/context/summary-metrics.d.ts +75 -0
- package/dist/context/summary-metrics.d.ts.map +1 -0
- package/dist/context/summary-metrics.js +160 -0
- package/dist/context/summary-metrics.js.map +1 -0
- package/dist/context/summary-types.d.ts +103 -0
- package/dist/context/summary-types.d.ts.map +1 -0
- package/dist/context/summary-types.js +39 -0
- package/dist/context/summary-types.js.map +1 -0
- package/dist/convergence/__tests__/budget.test.d.ts +6 -0
- package/dist/convergence/__tests__/budget.test.d.ts.map +1 -0
- package/dist/convergence/__tests__/budget.test.js +187 -0
- package/dist/convergence/__tests__/budget.test.js.map +1 -0
- package/dist/convergence/__tests__/controller.test.d.ts +9 -0
- package/dist/convergence/__tests__/controller.test.d.ts.map +1 -0
- package/dist/convergence/__tests__/controller.test.js +585 -0
- package/dist/convergence/__tests__/controller.test.js.map +1 -0
- package/dist/convergence/__tests__/dual-signal.test.d.ts +14 -0
- package/dist/convergence/__tests__/dual-signal.test.d.ts.map +1 -0
- package/dist/convergence/__tests__/dual-signal.test.js +123 -0
- package/dist/convergence/__tests__/dual-signal.test.js.map +1 -0
- package/dist/convergence/__tests__/epic46-integration.test.d.ts +15 -0
- package/dist/convergence/__tests__/epic46-integration.test.d.ts.map +1 -0
- package/dist/convergence/__tests__/epic46-integration.test.js +522 -0
- package/dist/convergence/__tests__/epic46-integration.test.js.map +1 -0
- package/dist/convergence/__tests__/plateau.test.d.ts +6 -0
- package/dist/convergence/__tests__/plateau.test.d.ts.map +1 -0
- package/dist/convergence/__tests__/plateau.test.js +163 -0
- package/dist/convergence/__tests__/plateau.test.js.map +1 -0
- package/dist/convergence/__tests__/remediation.test.d.ts +11 -0
- package/dist/convergence/__tests__/remediation.test.d.ts.map +1 -0
- package/dist/convergence/__tests__/remediation.test.js +209 -0
- package/dist/convergence/__tests__/remediation.test.js.map +1 -0
- package/dist/convergence/__tests__/scenario-primary.test.d.ts +13 -0
- package/dist/convergence/__tests__/scenario-primary.test.d.ts.map +1 -0
- package/dist/convergence/__tests__/scenario-primary.test.js +183 -0
- package/dist/convergence/__tests__/scenario-primary.test.js.map +1 -0
- package/dist/convergence/budget.d.ts +181 -0
- package/dist/convergence/budget.d.ts.map +1 -0
- package/dist/convergence/budget.js +218 -0
- package/dist/convergence/budget.js.map +1 -0
- package/dist/convergence/controller.d.ts +133 -0
- package/dist/convergence/controller.d.ts.map +1 -0
- package/dist/convergence/controller.js +102 -0
- package/dist/convergence/controller.js.map +1 -0
- package/dist/convergence/dual-signal.d.ts +73 -0
- package/dist/convergence/dual-signal.d.ts.map +1 -0
- package/dist/convergence/dual-signal.js +78 -0
- package/dist/convergence/dual-signal.js.map +1 -0
- package/dist/convergence/index.d.ts +17 -0
- package/dist/convergence/index.d.ts.map +1 -0
- package/dist/convergence/index.js +11 -0
- package/dist/convergence/index.js.map +1 -0
- package/dist/convergence/plateau.d.ts +99 -0
- package/dist/convergence/plateau.d.ts.map +1 -0
- package/dist/convergence/plateau.js +83 -0
- package/dist/convergence/plateau.js.map +1 -0
- package/dist/convergence/remediation.d.ts +105 -0
- package/dist/convergence/remediation.d.ts.map +1 -0
- package/dist/convergence/remediation.js +117 -0
- package/dist/convergence/remediation.js.map +1 -0
- package/dist/events.d.ts +331 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +13 -0
- package/dist/events.js.map +1 -0
- package/dist/factory-command.d.ts +40 -0
- package/dist/factory-command.d.ts.map +1 -0
- package/dist/factory-command.js +626 -0
- package/dist/factory-command.js.map +1 -0
- package/dist/factory-command.test.d.ts +8 -0
- package/dist/factory-command.test.d.ts.map +1 -0
- package/dist/factory-command.test.js +304 -0
- package/dist/factory-command.test.js.map +1 -0
- package/dist/graph/__tests__/attractor-compliance.test.d.ts +10 -0
- package/dist/graph/__tests__/attractor-compliance.test.d.ts.map +1 -0
- package/dist/graph/__tests__/attractor-compliance.test.js +766 -0
- package/dist/graph/__tests__/attractor-compliance.test.js.map +1 -0
- package/dist/graph/__tests__/checkpoint.test.d.ts +8 -0
- package/dist/graph/__tests__/checkpoint.test.d.ts.map +1 -0
- package/dist/graph/__tests__/checkpoint.test.js +329 -0
- package/dist/graph/__tests__/checkpoint.test.js.map +1 -0
- package/dist/graph/__tests__/condition-parser.test.d.ts +14 -0
- package/dist/graph/__tests__/condition-parser.test.d.ts.map +1 -0
- package/dist/graph/__tests__/condition-parser.test.js +406 -0
- package/dist/graph/__tests__/condition-parser.test.js.map +1 -0
- package/dist/graph/__tests__/context.test.d.ts +14 -0
- package/dist/graph/__tests__/context.test.d.ts.map +1 -0
- package/dist/graph/__tests__/context.test.js +276 -0
- package/dist/graph/__tests__/context.test.js.map +1 -0
- package/dist/graph/__tests__/edge-selector-events.test.d.ts +11 -0
- package/dist/graph/__tests__/edge-selector-events.test.d.ts.map +1 -0
- package/dist/graph/__tests__/edge-selector-events.test.js +184 -0
- package/dist/graph/__tests__/edge-selector-events.test.js.map +1 -0
- package/dist/graph/__tests__/edge-selector.test.d.ts +6 -0
- package/dist/graph/__tests__/edge-selector.test.d.ts.map +1 -0
- package/dist/graph/__tests__/edge-selector.test.js +452 -0
- package/dist/graph/__tests__/edge-selector.test.js.map +1 -0
- package/dist/graph/__tests__/executor-convergence.test.d.ts +12 -0
- package/dist/graph/__tests__/executor-convergence.test.d.ts.map +1 -0
- package/dist/graph/__tests__/executor-convergence.test.js +432 -0
- package/dist/graph/__tests__/executor-convergence.test.js.map +1 -0
- package/dist/graph/__tests__/executor-fidelity.test.d.ts +13 -0
- package/dist/graph/__tests__/executor-fidelity.test.d.ts.map +1 -0
- package/dist/graph/__tests__/executor-fidelity.test.js +335 -0
- package/dist/graph/__tests__/executor-fidelity.test.js.map +1 -0
- package/dist/graph/__tests__/executor.test.d.ts +14 -0
- package/dist/graph/__tests__/executor.test.d.ts.map +1 -0
- package/dist/graph/__tests__/executor.test.js +901 -0
- package/dist/graph/__tests__/executor.test.js.map +1 -0
- package/dist/graph/__tests__/fidelity.test.d.ts +8 -0
- package/dist/graph/__tests__/fidelity.test.d.ts.map +1 -0
- package/dist/graph/__tests__/fidelity.test.js +135 -0
- package/dist/graph/__tests__/fidelity.test.js.map +1 -0
- package/dist/graph/__tests__/llm-evaluator.test.d.ts +7 -0
- package/dist/graph/__tests__/llm-evaluator.test.d.ts.map +1 -0
- package/dist/graph/__tests__/llm-evaluator.test.js +106 -0
- package/dist/graph/__tests__/llm-evaluator.test.js.map +1 -0
- package/dist/graph/__tests__/parser-chaining.test.d.ts +13 -0
- package/dist/graph/__tests__/parser-chaining.test.d.ts.map +1 -0
- package/dist/graph/__tests__/parser-chaining.test.js +215 -0
- package/dist/graph/__tests__/parser-chaining.test.js.map +1 -0
- package/dist/graph/__tests__/parser.test.d.ts +22 -0
- package/dist/graph/__tests__/parser.test.d.ts.map +1 -0
- package/dist/graph/__tests__/parser.test.js +452 -0
- package/dist/graph/__tests__/parser.test.js.map +1 -0
- package/dist/graph/__tests__/run-state.test.d.ts +13 -0
- package/dist/graph/__tests__/run-state.test.d.ts.map +1 -0
- package/dist/graph/__tests__/run-state.test.js +189 -0
- package/dist/graph/__tests__/run-state.test.js.map +1 -0
- package/dist/graph/__tests__/transformer.test.d.ts +16 -0
- package/dist/graph/__tests__/transformer.test.d.ts.map +1 -0
- package/dist/graph/__tests__/transformer.test.js +350 -0
- package/dist/graph/__tests__/transformer.test.js.map +1 -0
- package/dist/graph/__tests__/validator-errors.test.d.ts +15 -0
- package/dist/graph/__tests__/validator-errors.test.d.ts.map +1 -0
- package/dist/graph/__tests__/validator-errors.test.js +572 -0
- package/dist/graph/__tests__/validator-errors.test.js.map +1 -0
- package/dist/graph/__tests__/validator-warnings.test.d.ts +15 -0
- package/dist/graph/__tests__/validator-warnings.test.d.ts.map +1 -0
- package/dist/graph/__tests__/validator-warnings.test.js +363 -0
- package/dist/graph/__tests__/validator-warnings.test.js.map +1 -0
- package/dist/graph/checkpoint.d.ts +61 -0
- package/dist/graph/checkpoint.d.ts.map +1 -0
- package/dist/graph/checkpoint.js +80 -0
- package/dist/graph/checkpoint.js.map +1 -0
- package/dist/graph/condition-parser.d.ts +55 -0
- package/dist/graph/condition-parser.d.ts.map +1 -0
- package/dist/graph/condition-parser.js +213 -0
- package/dist/graph/condition-parser.js.map +1 -0
- package/dist/graph/context.d.ts +53 -0
- package/dist/graph/context.d.ts.map +1 -0
- package/dist/graph/context.js +90 -0
- package/dist/graph/context.js.map +1 -0
- package/dist/graph/edge-selector.d.ts +74 -0
- package/dist/graph/edge-selector.d.ts.map +1 -0
- package/dist/graph/edge-selector.js +178 -0
- package/dist/graph/edge-selector.js.map +1 -0
- package/dist/graph/executor.d.ts +133 -0
- package/dist/graph/executor.d.ts.map +1 -0
- package/dist/graph/executor.js +787 -0
- package/dist/graph/executor.js.map +1 -0
- package/dist/graph/fidelity.d.ts +27 -0
- package/dist/graph/fidelity.d.ts.map +1 -0
- package/dist/graph/fidelity.js +38 -0
- package/dist/graph/fidelity.js.map +1 -0
- package/dist/graph/index.d.ts +13 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +9 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/llm-evaluator.d.ts +61 -0
- package/dist/graph/llm-evaluator.d.ts.map +1 -0
- package/dist/graph/llm-evaluator.js +106 -0
- package/dist/graph/llm-evaluator.js.map +1 -0
- package/dist/graph/parser.d.ts +28 -0
- package/dist/graph/parser.d.ts.map +1 -0
- package/dist/graph/parser.js +370 -0
- package/dist/graph/parser.js.map +1 -0
- package/dist/graph/rules/error-rules.d.ts +19 -0
- package/dist/graph/rules/error-rules.d.ts.map +1 -0
- package/dist/graph/rules/error-rules.js +264 -0
- package/dist/graph/rules/error-rules.js.map +1 -0
- package/dist/graph/rules/warning-rules.d.ts +7 -0
- package/dist/graph/rules/warning-rules.d.ts.map +1 -0
- package/dist/graph/rules/warning-rules.js +165 -0
- package/dist/graph/rules/warning-rules.js.map +1 -0
- package/dist/graph/run-state.d.ts +62 -0
- package/dist/graph/run-state.d.ts.map +1 -0
- package/dist/graph/run-state.js +79 -0
- package/dist/graph/run-state.js.map +1 -0
- package/dist/graph/transformer.d.ts +31 -0
- package/dist/graph/transformer.d.ts.map +1 -0
- package/dist/graph/transformer.js +64 -0
- package/dist/graph/transformer.js.map +1 -0
- package/dist/graph/types.d.ts +320 -0
- package/dist/graph/types.d.ts.map +1 -0
- package/dist/graph/types.js +6 -0
- package/dist/graph/types.js.map +1 -0
- package/dist/graph/validator.d.ts +16 -0
- package/dist/graph/validator.d.ts.map +1 -0
- package/dist/graph/validator.js +40 -0
- package/dist/graph/validator.js.map +1 -0
- package/dist/handlers/__tests__/codergen-handler.test.d.ts +14 -0
- package/dist/handlers/__tests__/codergen-handler.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/codergen-handler.test.js +442 -0
- package/dist/handlers/__tests__/codergen-handler.test.js.map +1 -0
- package/dist/handlers/__tests__/fan-in.test.d.ts +14 -0
- package/dist/handlers/__tests__/fan-in.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/fan-in.test.js +399 -0
- package/dist/handlers/__tests__/fan-in.test.js.map +1 -0
- package/dist/handlers/__tests__/join-policy.test.d.ts +9 -0
- package/dist/handlers/__tests__/join-policy.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/join-policy.test.js +201 -0
- package/dist/handlers/__tests__/join-policy.test.js.map +1 -0
- package/dist/handlers/__tests__/manager-loop.test.d.ts +14 -0
- package/dist/handlers/__tests__/manager-loop.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/manager-loop.test.js +322 -0
- package/dist/handlers/__tests__/manager-loop.test.js.map +1 -0
- package/dist/handlers/__tests__/parallel-events.test.d.ts +12 -0
- package/dist/handlers/__tests__/parallel-events.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/parallel-events.test.js +252 -0
- package/dist/handlers/__tests__/parallel-events.test.js.map +1 -0
- package/dist/handlers/__tests__/parallel-handler.test.d.ts +14 -0
- package/dist/handlers/__tests__/parallel-handler.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/parallel-handler.test.js +337 -0
- package/dist/handlers/__tests__/parallel-handler.test.js.map +1 -0
- package/dist/handlers/__tests__/parallel-join.test.d.ts +9 -0
- package/dist/handlers/__tests__/parallel-join.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/parallel-join.test.js +267 -0
- package/dist/handlers/__tests__/parallel-join.test.js.map +1 -0
- package/dist/handlers/__tests__/registry.test.d.ts +14 -0
- package/dist/handlers/__tests__/registry.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/registry.test.js +315 -0
- package/dist/handlers/__tests__/registry.test.js.map +1 -0
- package/dist/handlers/__tests__/subgraph-events.test.d.ts +10 -0
- package/dist/handlers/__tests__/subgraph-events.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/subgraph-events.test.js +189 -0
- package/dist/handlers/__tests__/subgraph-events.test.js.map +1 -0
- package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts +14 -0
- package/dist/handlers/__tests__/subgraph-inheritance.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/subgraph-inheritance.test.js +267 -0
- package/dist/handlers/__tests__/subgraph-inheritance.test.js.map +1 -0
- package/dist/handlers/__tests__/subgraph.test.d.ts +14 -0
- package/dist/handlers/__tests__/subgraph.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/subgraph.test.js +369 -0
- package/dist/handlers/__tests__/subgraph.test.js.map +1 -0
- package/dist/handlers/__tests__/tool-handler.test.d.ts +11 -0
- package/dist/handlers/__tests__/tool-handler.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/tool-handler.test.js +184 -0
- package/dist/handlers/__tests__/tool-handler.test.js.map +1 -0
- package/dist/handlers/__tests__/tool-scenario.test.d.ts +12 -0
- package/dist/handlers/__tests__/tool-scenario.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/tool-scenario.test.js +222 -0
- package/dist/handlers/__tests__/tool-scenario.test.js.map +1 -0
- package/dist/handlers/__tests__/wait-human-handler.test.d.ts +11 -0
- package/dist/handlers/__tests__/wait-human-handler.test.d.ts.map +1 -0
- package/dist/handlers/__tests__/wait-human-handler.test.js +251 -0
- package/dist/handlers/__tests__/wait-human-handler.test.js.map +1 -0
- package/dist/handlers/codergen-handler.d.ts +83 -0
- package/dist/handlers/codergen-handler.d.ts.map +1 -0
- package/dist/handlers/codergen-handler.js +152 -0
- package/dist/handlers/codergen-handler.js.map +1 -0
- package/dist/handlers/conditional.d.ts +15 -0
- package/dist/handlers/conditional.d.ts.map +1 -0
- package/dist/handlers/conditional.js +16 -0
- package/dist/handlers/conditional.js.map +1 -0
- package/dist/handlers/exit.d.ts +10 -0
- package/dist/handlers/exit.d.ts.map +1 -0
- package/dist/handlers/exit.js +11 -0
- package/dist/handlers/exit.js.map +1 -0
- package/dist/handlers/fan-in.d.ts +74 -0
- package/dist/handlers/fan-in.d.ts.map +1 -0
- package/dist/handlers/fan-in.js +191 -0
- package/dist/handlers/fan-in.js.map +1 -0
- package/dist/handlers/index.d.ts +29 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +22 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/handlers/join-policy.d.ts +117 -0
- package/dist/handlers/join-policy.d.ts.map +1 -0
- package/dist/handlers/join-policy.js +129 -0
- package/dist/handlers/join-policy.js.map +1 -0
- package/dist/handlers/manager-loop.d.ts +54 -0
- package/dist/handlers/manager-loop.d.ts.map +1 -0
- package/dist/handlers/manager-loop.js +177 -0
- package/dist/handlers/manager-loop.js.map +1 -0
- package/dist/handlers/parallel.d.ts +31 -0
- package/dist/handlers/parallel.d.ts.map +1 -0
- package/dist/handlers/parallel.js +362 -0
- package/dist/handlers/parallel.js.map +1 -0
- package/dist/handlers/registry.d.ts +75 -0
- package/dist/handlers/registry.d.ts.map +1 -0
- package/dist/handlers/registry.js +132 -0
- package/dist/handlers/registry.js.map +1 -0
- package/dist/handlers/start.d.ts +10 -0
- package/dist/handlers/start.d.ts.map +1 -0
- package/dist/handlers/start.js +11 -0
- package/dist/handlers/start.js.map +1 -0
- package/dist/handlers/subgraph.d.ts +46 -0
- package/dist/handlers/subgraph.d.ts.map +1 -0
- package/dist/handlers/subgraph.js +178 -0
- package/dist/handlers/subgraph.js.map +1 -0
- package/dist/handlers/tool.d.ts +36 -0
- package/dist/handlers/tool.d.ts.map +1 -0
- package/dist/handlers/tool.js +99 -0
- package/dist/handlers/tool.js.map +1 -0
- package/dist/handlers/types.d.ts +98 -0
- package/dist/handlers/types.d.ts.map +1 -0
- package/dist/handlers/types.js +6 -0
- package/dist/handlers/types.js.map +1 -0
- package/dist/handlers/wait-human.d.ts +65 -0
- package/dist/handlers/wait-human.d.ts.map +1 -0
- package/dist/handlers/wait-human.js +124 -0
- package/dist/handlers/wait-human.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/__tests__/client.test.d.ts +2 -0
- package/dist/llm/__tests__/client.test.d.ts.map +1 -0
- package/dist/llm/__tests__/client.test.js +198 -0
- package/dist/llm/__tests__/client.test.js.map +1 -0
- package/dist/llm/__tests__/types.test.d.ts +2 -0
- package/dist/llm/__tests__/types.test.d.ts.map +1 -0
- package/dist/llm/__tests__/types.test.js +289 -0
- package/dist/llm/__tests__/types.test.js.map +1 -0
- package/dist/llm/client.d.ts +19 -0
- package/dist/llm/client.d.ts.map +1 -0
- package/dist/llm/client.js +50 -0
- package/dist/llm/client.js.map +1 -0
- package/dist/llm/index.d.ts +6 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +6 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts +2 -0
- package/dist/llm/middleware/__tests__/cost-tracking.test.d.ts.map +1 -0
- package/dist/llm/middleware/__tests__/cost-tracking.test.js +73 -0
- package/dist/llm/middleware/__tests__/cost-tracking.test.js.map +1 -0
- package/dist/llm/middleware/__tests__/logging.test.d.ts +2 -0
- package/dist/llm/middleware/__tests__/logging.test.d.ts.map +1 -0
- package/dist/llm/middleware/__tests__/logging.test.js +127 -0
- package/dist/llm/middleware/__tests__/logging.test.js.map +1 -0
- package/dist/llm/middleware/__tests__/retry.test.d.ts +2 -0
- package/dist/llm/middleware/__tests__/retry.test.d.ts.map +1 -0
- package/dist/llm/middleware/__tests__/retry.test.js +126 -0
- package/dist/llm/middleware/__tests__/retry.test.js.map +1 -0
- package/dist/llm/middleware/cost-tracking.d.ts +8 -0
- package/dist/llm/middleware/cost-tracking.d.ts.map +1 -0
- package/dist/llm/middleware/cost-tracking.js +34 -0
- package/dist/llm/middleware/cost-tracking.js.map +1 -0
- package/dist/llm/middleware/index.d.ts +5 -0
- package/dist/llm/middleware/index.d.ts.map +1 -0
- package/dist/llm/middleware/index.js +6 -0
- package/dist/llm/middleware/index.js.map +1 -0
- package/dist/llm/middleware/logging.d.ts +6 -0
- package/dist/llm/middleware/logging.d.ts.map +1 -0
- package/dist/llm/middleware/logging.js +54 -0
- package/dist/llm/middleware/logging.js.map +1 -0
- package/dist/llm/middleware/retry.d.ts +14 -0
- package/dist/llm/middleware/retry.d.ts.map +1 -0
- package/dist/llm/middleware/retry.js +40 -0
- package/dist/llm/middleware/retry.js.map +1 -0
- package/dist/llm/middleware/types.d.ts +23 -0
- package/dist/llm/middleware/types.d.ts.map +1 -0
- package/dist/llm/middleware/types.js +24 -0
- package/dist/llm/middleware/types.js.map +1 -0
- package/dist/llm/model-registry.d.ts +14 -0
- package/dist/llm/model-registry.d.ts.map +1 -0
- package/dist/llm/model-registry.js +32 -0
- package/dist/llm/model-registry.js.map +1 -0
- package/dist/llm/providers/__tests__/anthropic.test.d.ts +2 -0
- package/dist/llm/providers/__tests__/anthropic.test.d.ts.map +1 -0
- package/dist/llm/providers/__tests__/anthropic.test.js +412 -0
- package/dist/llm/providers/__tests__/anthropic.test.js.map +1 -0
- package/dist/llm/providers/__tests__/gemini.test.d.ts +2 -0
- package/dist/llm/providers/__tests__/gemini.test.d.ts.map +1 -0
- package/dist/llm/providers/__tests__/gemini.test.js +591 -0
- package/dist/llm/providers/__tests__/gemini.test.js.map +1 -0
- package/dist/llm/providers/__tests__/openai.test.d.ts +2 -0
- package/dist/llm/providers/__tests__/openai.test.d.ts.map +1 -0
- package/dist/llm/providers/__tests__/openai.test.js +546 -0
- package/dist/llm/providers/__tests__/openai.test.js.map +1 -0
- package/dist/llm/providers/anthropic.d.ts +25 -0
- package/dist/llm/providers/anthropic.d.ts.map +1 -0
- package/dist/llm/providers/anthropic.js +315 -0
- package/dist/llm/providers/anthropic.js.map +1 -0
- package/dist/llm/providers/gemini.d.ts +28 -0
- package/dist/llm/providers/gemini.d.ts.map +1 -0
- package/dist/llm/providers/gemini.js +429 -0
- package/dist/llm/providers/gemini.js.map +1 -0
- package/dist/llm/providers/index.d.ts +7 -0
- package/dist/llm/providers/index.d.ts.map +1 -0
- package/dist/llm/providers/index.js +4 -0
- package/dist/llm/providers/index.js.map +1 -0
- package/dist/llm/providers/openai.d.ts +28 -0
- package/dist/llm/providers/openai.d.ts.map +1 -0
- package/dist/llm/providers/openai.js +426 -0
- package/dist/llm/providers/openai.js.map +1 -0
- package/dist/llm/types.d.ts +127 -0
- package/dist/llm/types.d.ts.map +1 -0
- package/dist/llm/types.js +21 -0
- package/dist/llm/types.js.map +1 -0
- package/dist/persistence/__tests__/factory-queries.test.d.ts +9 -0
- package/dist/persistence/__tests__/factory-queries.test.d.ts.map +1 -0
- package/dist/persistence/__tests__/factory-queries.test.js +372 -0
- package/dist/persistence/__tests__/factory-queries.test.js.map +1 -0
- package/dist/persistence/__tests__/factory-schema.test.d.ts +6 -0
- package/dist/persistence/__tests__/factory-schema.test.d.ts.map +1 -0
- package/dist/persistence/__tests__/factory-schema.test.js +105 -0
- package/dist/persistence/__tests__/factory-schema.test.js.map +1 -0
- package/dist/persistence/factory-queries.d.ts +204 -0
- package/dist/persistence/factory-queries.d.ts.map +1 -0
- package/dist/persistence/factory-queries.js +186 -0
- package/dist/persistence/factory-queries.js.map +1 -0
- package/dist/persistence/factory-schema.d.ts +16 -0
- package/dist/persistence/factory-schema.d.ts.map +1 -0
- package/dist/persistence/factory-schema.js +89 -0
- package/dist/persistence/factory-schema.js.map +1 -0
- package/dist/scenarios/__tests__/cli-command-list.test.d.ts +7 -0
- package/dist/scenarios/__tests__/cli-command-list.test.d.ts.map +1 -0
- package/dist/scenarios/__tests__/cli-command-list.test.js +237 -0
- package/dist/scenarios/__tests__/cli-command-list.test.js.map +1 -0
- package/dist/scenarios/__tests__/cli-command.test.d.ts +11 -0
- package/dist/scenarios/__tests__/cli-command.test.d.ts.map +1 -0
- package/dist/scenarios/__tests__/cli-command.test.js +275 -0
- package/dist/scenarios/__tests__/cli-command.test.js.map +1 -0
- package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts +15 -0
- package/dist/scenarios/__tests__/integrity-pipeline.test.d.ts.map +1 -0
- package/dist/scenarios/__tests__/integrity-pipeline.test.js +318 -0
- package/dist/scenarios/__tests__/integrity-pipeline.test.js.map +1 -0
- package/dist/scenarios/__tests__/runner-twins.test.d.ts +13 -0
- package/dist/scenarios/__tests__/runner-twins.test.d.ts.map +1 -0
- package/dist/scenarios/__tests__/runner-twins.test.js +205 -0
- package/dist/scenarios/__tests__/runner-twins.test.js.map +1 -0
- package/dist/scenarios/__tests__/scorer.test.d.ts +11 -0
- package/dist/scenarios/__tests__/scorer.test.d.ts.map +1 -0
- package/dist/scenarios/__tests__/scorer.test.js +225 -0
- package/dist/scenarios/__tests__/scorer.test.js.map +1 -0
- package/dist/scenarios/__tests__/scoring-integration.test.d.ts +8 -0
- package/dist/scenarios/__tests__/scoring-integration.test.d.ts.map +1 -0
- package/dist/scenarios/__tests__/scoring-integration.test.js +178 -0
- package/dist/scenarios/__tests__/scoring-integration.test.js.map +1 -0
- package/dist/scenarios/__tests__/store.test.d.ts +5 -0
- package/dist/scenarios/__tests__/store.test.d.ts.map +1 -0
- package/dist/scenarios/__tests__/store.test.js +169 -0
- package/dist/scenarios/__tests__/store.test.js.map +1 -0
- package/dist/scenarios/cli-command.d.ts +20 -0
- package/dist/scenarios/cli-command.d.ts.map +1 -0
- package/dist/scenarios/cli-command.js +66 -0
- package/dist/scenarios/cli-command.js.map +1 -0
- package/dist/scenarios/index.d.ts +11 -0
- package/dist/scenarios/index.d.ts.map +1 -0
- package/dist/scenarios/index.js +11 -0
- package/dist/scenarios/index.js.map +1 -0
- package/dist/scenarios/runner.d.ts +64 -0
- package/dist/scenarios/runner.d.ts.map +1 -0
- package/dist/scenarios/runner.js +205 -0
- package/dist/scenarios/runner.js.map +1 -0
- package/dist/scenarios/scorer.d.ts +69 -0
- package/dist/scenarios/scorer.d.ts.map +1 -0
- package/dist/scenarios/scorer.js +66 -0
- package/dist/scenarios/scorer.js.map +1 -0
- package/dist/scenarios/store.d.ts +33 -0
- package/dist/scenarios/store.d.ts.map +1 -0
- package/dist/scenarios/store.js +92 -0
- package/dist/scenarios/store.js.map +1 -0
- package/dist/scenarios/types.d.ts +40 -0
- package/dist/scenarios/types.d.ts.map +1 -0
- package/dist/scenarios/types.js +5 -0
- package/dist/scenarios/types.js.map +1 -0
- package/dist/stylesheet/__tests__/stylesheet.test.d.ts +17 -0
- package/dist/stylesheet/__tests__/stylesheet.test.d.ts.map +1 -0
- package/dist/stylesheet/__tests__/stylesheet.test.js +368 -0
- package/dist/stylesheet/__tests__/stylesheet.test.js.map +1 -0
- package/dist/stylesheet/parser.d.ts +44 -0
- package/dist/stylesheet/parser.d.ts.map +1 -0
- package/dist/stylesheet/parser.js +190 -0
- package/dist/stylesheet/parser.js.map +1 -0
- package/dist/stylesheet/resolver.d.ts +38 -0
- package/dist/stylesheet/resolver.d.ts.map +1 -0
- package/dist/stylesheet/resolver.js +96 -0
- package/dist/stylesheet/resolver.js.map +1 -0
- package/dist/templates/__tests__/templates.test.d.ts +7 -0
- package/dist/templates/__tests__/templates.test.d.ts.map +1 -0
- package/dist/templates/__tests__/templates.test.js +92 -0
- package/dist/templates/__tests__/templates.test.js.map +1 -0
- package/dist/templates/index.d.ts +38 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +153 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/twins/__tests__/docker-compose.test.d.ts +13 -0
- package/dist/twins/__tests__/docker-compose.test.d.ts.map +1 -0
- package/dist/twins/__tests__/docker-compose.test.js +247 -0
- package/dist/twins/__tests__/docker-compose.test.js.map +1 -0
- package/dist/twins/__tests__/health-monitor.test.d.ts +19 -0
- package/dist/twins/__tests__/health-monitor.test.d.ts.map +1 -0
- package/dist/twins/__tests__/health-monitor.test.js +301 -0
- package/dist/twins/__tests__/health-monitor.test.js.map +1 -0
- package/dist/twins/__tests__/integration/e2e.test.d.ts +18 -0
- package/dist/twins/__tests__/integration/e2e.test.d.ts.map +1 -0
- package/dist/twins/__tests__/integration/e2e.test.js +146 -0
- package/dist/twins/__tests__/integration/e2e.test.js.map +1 -0
- package/dist/twins/__tests__/integration/health-monitor-integration.test.d.ts +16 -0
- package/dist/twins/__tests__/integration/health-monitor-integration.test.d.ts.map +1 -0
- package/dist/twins/__tests__/integration/health-monitor-integration.test.js +183 -0
- package/dist/twins/__tests__/integration/health-monitor-integration.test.js.map +1 -0
- package/dist/twins/__tests__/integration/helpers.d.ts +32 -0
- package/dist/twins/__tests__/integration/helpers.d.ts.map +1 -0
- package/dist/twins/__tests__/integration/helpers.js +67 -0
- package/dist/twins/__tests__/integration/helpers.js.map +1 -0
- package/dist/twins/__tests__/integration/lifecycle.test.d.ts +14 -0
- package/dist/twins/__tests__/integration/lifecycle.test.d.ts.map +1 -0
- package/dist/twins/__tests__/integration/lifecycle.test.js +127 -0
- package/dist/twins/__tests__/integration/lifecycle.test.js.map +1 -0
- package/dist/twins/__tests__/integration/persistence-integration.test.d.ts +14 -0
- package/dist/twins/__tests__/integration/persistence-integration.test.d.ts.map +1 -0
- package/dist/twins/__tests__/integration/persistence-integration.test.js +132 -0
- package/dist/twins/__tests__/integration/persistence-integration.test.js.map +1 -0
- package/dist/twins/__tests__/persistence.test.d.ts +10 -0
- package/dist/twins/__tests__/persistence.test.d.ts.map +1 -0
- package/dist/twins/__tests__/persistence.test.js +300 -0
- package/dist/twins/__tests__/persistence.test.js.map +1 -0
- package/dist/twins/__tests__/registry.test.d.ts +7 -0
- package/dist/twins/__tests__/registry.test.d.ts.map +1 -0
- package/dist/twins/__tests__/registry.test.js +282 -0
- package/dist/twins/__tests__/registry.test.js.map +1 -0
- package/dist/twins/__tests__/run-state.test.d.ts +9 -0
- package/dist/twins/__tests__/run-state.test.d.ts.map +1 -0
- package/dist/twins/__tests__/run-state.test.js +112 -0
- package/dist/twins/__tests__/run-state.test.js.map +1 -0
- package/dist/twins/__tests__/templates-cli.test.d.ts +10 -0
- package/dist/twins/__tests__/templates-cli.test.d.ts.map +1 -0
- package/dist/twins/__tests__/templates-cli.test.js +187 -0
- package/dist/twins/__tests__/templates-cli.test.js.map +1 -0
- package/dist/twins/__tests__/templates.test.d.ts +7 -0
- package/dist/twins/__tests__/templates.test.d.ts.map +1 -0
- package/dist/twins/__tests__/templates.test.js +87 -0
- package/dist/twins/__tests__/templates.test.js.map +1 -0
- package/dist/twins/__tests__/twins-cli.test.d.ts +11 -0
- package/dist/twins/__tests__/twins-cli.test.d.ts.map +1 -0
- package/dist/twins/__tests__/twins-cli.test.js +365 -0
- package/dist/twins/__tests__/twins-cli.test.js.map +1 -0
- package/dist/twins/docker-compose.d.ts +48 -0
- package/dist/twins/docker-compose.d.ts.map +1 -0
- package/dist/twins/docker-compose.js +172 -0
- package/dist/twins/docker-compose.js.map +1 -0
- package/dist/twins/health-monitor.d.ts +36 -0
- package/dist/twins/health-monitor.d.ts.map +1 -0
- package/dist/twins/health-monitor.js +114 -0
- package/dist/twins/health-monitor.js.map +1 -0
- package/dist/twins/index.d.ts +22 -0
- package/dist/twins/index.d.ts.map +1 -0
- package/dist/twins/index.js +19 -0
- package/dist/twins/index.js.map +1 -0
- package/dist/twins/persistence.d.ts +100 -0
- package/dist/twins/persistence.d.ts.map +1 -0
- package/dist/twins/persistence.js +120 -0
- package/dist/twins/persistence.js.map +1 -0
- package/dist/twins/registry.d.ts +40 -0
- package/dist/twins/registry.d.ts.map +1 -0
- package/dist/twins/registry.js +175 -0
- package/dist/twins/registry.js.map +1 -0
- package/dist/twins/run-state.d.ts +47 -0
- package/dist/twins/run-state.d.ts.map +1 -0
- package/dist/twins/run-state.js +70 -0
- package/dist/twins/run-state.js.map +1 -0
- package/dist/twins/schema.d.ts +40 -0
- package/dist/twins/schema.d.ts.map +1 -0
- package/dist/twins/schema.js +46 -0
- package/dist/twins/schema.js.map +1 -0
- package/dist/twins/templates.d.ts +27 -0
- package/dist/twins/templates.d.ts.map +1 -0
- package/dist/twins/templates.js +63 -0
- package/dist/twins/templates.js.map +1 -0
- package/dist/twins/types.d.ts +55 -0
- package/dist/twins/types.d.ts.map +1 -0
- package/dist/twins/types.js +26 -0
- package/dist/twins/types.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory persistence query functions for graph runs, node results, and scenario results.
|
|
3
|
+
*
|
|
4
|
+
* All functions accept a DatabaseAdapter as first argument, follow the established
|
|
5
|
+
* pattern from @substrate-ai/core's metrics queries, and use portable SQL patterns
|
|
6
|
+
* (select-then-delete-then-insert in transactions) compatible with both
|
|
7
|
+
* InMemoryDatabaseAdapter and DoltDatabaseAdapter.
|
|
8
|
+
*
|
|
9
|
+
* Story 46-3: Score Persistence to Database.
|
|
10
|
+
*/
|
|
11
|
+
import type { DatabaseAdapter } from '@substrate-ai/core';
|
|
12
|
+
export interface GraphRunInput {
|
|
13
|
+
/** Unique run identifier */
|
|
14
|
+
id: string;
|
|
15
|
+
/** Path to the DOT graph file */
|
|
16
|
+
graph_file: string;
|
|
17
|
+
/** Run goal/objective (optional) */
|
|
18
|
+
graph_goal?: string;
|
|
19
|
+
/** Run status: 'running' | 'completed' | 'failed' */
|
|
20
|
+
status: string;
|
|
21
|
+
/** ISO timestamp when the run started */
|
|
22
|
+
started_at: string;
|
|
23
|
+
/** ISO timestamp when the run completed (optional) */
|
|
24
|
+
completed_at?: string;
|
|
25
|
+
/** Total cost in USD (optional) */
|
|
26
|
+
total_cost_usd?: number;
|
|
27
|
+
/** Number of nodes in the graph */
|
|
28
|
+
node_count?: number;
|
|
29
|
+
/** Final outcome string (optional) */
|
|
30
|
+
final_outcome?: string;
|
|
31
|
+
/** Path to checkpoint file (optional) */
|
|
32
|
+
checkpoint_path?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface GraphRunRow {
|
|
35
|
+
id: string;
|
|
36
|
+
graph_file: string;
|
|
37
|
+
/** Nullable in DB — undefined when column was NULL */
|
|
38
|
+
graph_goal: string | null;
|
|
39
|
+
status: string;
|
|
40
|
+
started_at: string;
|
|
41
|
+
/** Nullable in DB — null until the run completes */
|
|
42
|
+
completed_at: string | null;
|
|
43
|
+
total_cost_usd: number;
|
|
44
|
+
node_count: number;
|
|
45
|
+
/** Nullable in DB — null until the run terminates */
|
|
46
|
+
final_outcome: string | null;
|
|
47
|
+
/** Nullable in DB — null when no checkpoint was used */
|
|
48
|
+
checkpoint_path: string | null;
|
|
49
|
+
}
|
|
50
|
+
export interface GraphNodeResultInput {
|
|
51
|
+
/** Parent run identifier */
|
|
52
|
+
run_id: string;
|
|
53
|
+
/** Node identifier */
|
|
54
|
+
node_id: string;
|
|
55
|
+
/** Attempt number (1-indexed) */
|
|
56
|
+
attempt: number;
|
|
57
|
+
/** Node execution status */
|
|
58
|
+
status: string;
|
|
59
|
+
/** ISO timestamp when node started */
|
|
60
|
+
started_at: string;
|
|
61
|
+
/** ISO timestamp when node completed (optional) */
|
|
62
|
+
completed_at?: string;
|
|
63
|
+
/** Execution duration in milliseconds (optional) */
|
|
64
|
+
duration_ms?: number;
|
|
65
|
+
/** Cost in USD for this node (optional, default 0) */
|
|
66
|
+
cost_usd?: number;
|
|
67
|
+
/** Failure reason if status is FAIL (optional) */
|
|
68
|
+
failure_reason?: string;
|
|
69
|
+
/** JSON snapshot of context at completion (optional) */
|
|
70
|
+
context_snapshot?: string;
|
|
71
|
+
}
|
|
72
|
+
export interface GraphNodeResultRow {
|
|
73
|
+
/** Auto-generated row id */
|
|
74
|
+
id: number;
|
|
75
|
+
run_id: string;
|
|
76
|
+
node_id: string;
|
|
77
|
+
attempt: number;
|
|
78
|
+
status: string;
|
|
79
|
+
started_at: string;
|
|
80
|
+
/** Nullable in DB — null if node was interrupted */
|
|
81
|
+
completed_at: string | null;
|
|
82
|
+
/** Nullable in DB — null if not recorded */
|
|
83
|
+
duration_ms: number | null;
|
|
84
|
+
cost_usd: number;
|
|
85
|
+
/** Nullable in DB — null when node succeeded */
|
|
86
|
+
failure_reason: string | null;
|
|
87
|
+
/** Nullable in DB — null when not captured */
|
|
88
|
+
context_snapshot: string | null;
|
|
89
|
+
}
|
|
90
|
+
export interface ScenarioResultInput {
|
|
91
|
+
/** Parent run identifier */
|
|
92
|
+
run_id: string;
|
|
93
|
+
/** Node identifier that triggered the scenario run */
|
|
94
|
+
node_id: string;
|
|
95
|
+
/** Convergence iteration number */
|
|
96
|
+
iteration: number;
|
|
97
|
+
/** Total number of scenarios */
|
|
98
|
+
total_scenarios: number;
|
|
99
|
+
/** Number of scenarios that passed */
|
|
100
|
+
passed: number;
|
|
101
|
+
/** Number of scenarios that failed */
|
|
102
|
+
failed: number;
|
|
103
|
+
/** Satisfaction score (0.0 – 1.0) */
|
|
104
|
+
satisfaction_score: number;
|
|
105
|
+
/** Minimum threshold for passing */
|
|
106
|
+
threshold: number;
|
|
107
|
+
/** Whether satisfaction_score >= threshold */
|
|
108
|
+
passes: boolean;
|
|
109
|
+
/** JSON-serialized score breakdown (optional) */
|
|
110
|
+
details?: string;
|
|
111
|
+
/** ISO timestamp when scenarios were executed (optional) */
|
|
112
|
+
executed_at?: string;
|
|
113
|
+
}
|
|
114
|
+
export interface ScenarioResultRow {
|
|
115
|
+
/** Auto-generated row id */
|
|
116
|
+
id: number;
|
|
117
|
+
run_id: string;
|
|
118
|
+
node_id: string;
|
|
119
|
+
iteration: number;
|
|
120
|
+
total_scenarios: number;
|
|
121
|
+
passed: number;
|
|
122
|
+
failed: number;
|
|
123
|
+
satisfaction_score: number;
|
|
124
|
+
threshold: number;
|
|
125
|
+
passes: boolean;
|
|
126
|
+
/** Nullable in DB — null when no breakdown details were recorded */
|
|
127
|
+
details: string | null;
|
|
128
|
+
executed_at: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Insert or replace a graph_runs row.
|
|
132
|
+
*
|
|
133
|
+
* Uses portable select-then-delete-then-insert pattern inside a transaction
|
|
134
|
+
* (not INSERT OR REPLACE which is SQLite-specific).
|
|
135
|
+
*
|
|
136
|
+
* - First call (status: 'running'): inserts the row.
|
|
137
|
+
* - Second call (status: 'completed'/'failed'): deletes the old row and inserts
|
|
138
|
+
* the updated row with completion details.
|
|
139
|
+
*/
|
|
140
|
+
export declare function upsertGraphRun(adapter: DatabaseAdapter, input: GraphRunInput): Promise<void>;
|
|
141
|
+
/**
|
|
142
|
+
* Append a graph_node_results row for a single node execution attempt.
|
|
143
|
+
*
|
|
144
|
+
* Each attempt is a distinct row — no upsert needed since run_id + node_id + attempt
|
|
145
|
+
* together uniquely identify each record.
|
|
146
|
+
*/
|
|
147
|
+
export declare function insertGraphNodeResult(adapter: DatabaseAdapter, input: GraphNodeResultInput): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* Append a scenario_results row for a single scenario run iteration.
|
|
150
|
+
*
|
|
151
|
+
* The `details` field (score breakdown) should be serialized as JSON string
|
|
152
|
+
* before calling this function, or passed raw if already serialized.
|
|
153
|
+
*/
|
|
154
|
+
export declare function insertScenarioResult(adapter: DatabaseAdapter, input: ScenarioResultInput): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* Retrieve all scenario results for a given run, ordered by iteration ascending.
|
|
157
|
+
*
|
|
158
|
+
* @returns Array of ScenarioResultRow ordered by iteration. Empty array if none exist.
|
|
159
|
+
*/
|
|
160
|
+
export declare function getScenarioResultsForRun(adapter: DatabaseAdapter, runId: string): Promise<ScenarioResultRow[]>;
|
|
161
|
+
/**
|
|
162
|
+
* List graph run records in descending started_at order.
|
|
163
|
+
*
|
|
164
|
+
* @param limit - Maximum number of rows to return (default 20).
|
|
165
|
+
*/
|
|
166
|
+
export declare function listGraphRuns(adapter: DatabaseAdapter, limit?: number): Promise<GraphRunRow[]>;
|
|
167
|
+
/**
|
|
168
|
+
* Summarized view of a factory graph run for display in `substrate metrics`.
|
|
169
|
+
* Combines data from `graph_runs` and `scenario_results`.
|
|
170
|
+
*/
|
|
171
|
+
export interface FactoryRunSummary {
|
|
172
|
+
/** Unique run identifier */
|
|
173
|
+
run_id: string;
|
|
174
|
+
/** Latest satisfaction score (0.0–1.0); null if no scenario results exist */
|
|
175
|
+
satisfaction_score: number | null;
|
|
176
|
+
/** Number of scenario result iterations recorded for this run */
|
|
177
|
+
iterations: number;
|
|
178
|
+
/** Final outcome of the run (maps to final_outcome in graph_runs); null if not set */
|
|
179
|
+
convergence_status: string | null;
|
|
180
|
+
/** ISO timestamp when the run started */
|
|
181
|
+
started_at: string;
|
|
182
|
+
/** ISO timestamp when the run completed; null if still running */
|
|
183
|
+
completed_at: string | null;
|
|
184
|
+
/** Total cost in USD */
|
|
185
|
+
total_cost_usd: number;
|
|
186
|
+
/** Discriminator to distinguish from SDLC runs in JSON output */
|
|
187
|
+
type: 'factory';
|
|
188
|
+
/** Whether the latest iteration passed the satisfaction threshold; null if no scenario results */
|
|
189
|
+
passes: boolean | null;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Retrieve a summarized list of factory graph runs, enriched with per-run
|
|
193
|
+
* iteration counts and latest satisfaction scores from `scenario_results`.
|
|
194
|
+
*
|
|
195
|
+
* Uses two queries (not a JOIN) for portability across adapters:
|
|
196
|
+
* 1. SELECT from graph_runs ordered by started_at DESC
|
|
197
|
+
* 2. GROUP BY aggregation on scenario_results for iteration counts and scores
|
|
198
|
+
*
|
|
199
|
+
* @param adapter - Database adapter (already opened)
|
|
200
|
+
* @param limit - Maximum number of graph runs to return (default 20)
|
|
201
|
+
* @returns Array of FactoryRunSummary ordered by started_at DESC; empty array on error
|
|
202
|
+
*/
|
|
203
|
+
export declare function getFactoryRunSummaries(adapter: DatabaseAdapter, limit?: number): Promise<FactoryRunSummary[]>;
|
|
204
|
+
//# sourceMappingURL=factory-queries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory-queries.d.ts","sourceRoot":"","sources":["../../src/persistence/factory-queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory persistence query functions for graph runs, node results, and scenario results.
|
|
3
|
+
*
|
|
4
|
+
* All functions accept a DatabaseAdapter as first argument, follow the established
|
|
5
|
+
* pattern from @substrate-ai/core's metrics queries, and use portable SQL patterns
|
|
6
|
+
* (select-then-delete-then-insert in transactions) compatible with both
|
|
7
|
+
* InMemoryDatabaseAdapter and DoltDatabaseAdapter.
|
|
8
|
+
*
|
|
9
|
+
* Story 46-3: Score Persistence to Database.
|
|
10
|
+
*/
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// upsertGraphRun
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
/**
|
|
15
|
+
* Insert or replace a graph_runs row.
|
|
16
|
+
*
|
|
17
|
+
* Uses portable select-then-delete-then-insert pattern inside a transaction
|
|
18
|
+
* (not INSERT OR REPLACE which is SQLite-specific).
|
|
19
|
+
*
|
|
20
|
+
* - First call (status: 'running'): inserts the row.
|
|
21
|
+
* - Second call (status: 'completed'/'failed'): deletes the old row and inserts
|
|
22
|
+
* the updated row with completion details.
|
|
23
|
+
*/
|
|
24
|
+
export async function upsertGraphRun(adapter, input) {
|
|
25
|
+
await adapter.transaction(async (tx) => {
|
|
26
|
+
const existing = await tx.query('SELECT id FROM graph_runs WHERE id = ?', [input.id]);
|
|
27
|
+
if (existing.length > 0) {
|
|
28
|
+
await tx.query('DELETE FROM graph_runs WHERE id = ?', [input.id]);
|
|
29
|
+
}
|
|
30
|
+
await tx.query(`INSERT INTO graph_runs (
|
|
31
|
+
id, graph_file, graph_goal, status, started_at, completed_at,
|
|
32
|
+
total_cost_usd, node_count, final_outcome, checkpoint_path
|
|
33
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
34
|
+
input.id,
|
|
35
|
+
input.graph_file,
|
|
36
|
+
input.graph_goal ?? null,
|
|
37
|
+
input.status,
|
|
38
|
+
input.started_at,
|
|
39
|
+
input.completed_at ?? null,
|
|
40
|
+
input.total_cost_usd ?? 0,
|
|
41
|
+
input.node_count ?? 0,
|
|
42
|
+
input.final_outcome ?? null,
|
|
43
|
+
input.checkpoint_path ?? null,
|
|
44
|
+
]);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
// insertGraphNodeResult
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
/**
|
|
51
|
+
* Append a graph_node_results row for a single node execution attempt.
|
|
52
|
+
*
|
|
53
|
+
* Each attempt is a distinct row — no upsert needed since run_id + node_id + attempt
|
|
54
|
+
* together uniquely identify each record.
|
|
55
|
+
*/
|
|
56
|
+
export async function insertGraphNodeResult(adapter, input) {
|
|
57
|
+
await adapter.transaction(async (tx) => {
|
|
58
|
+
await tx.query(`INSERT INTO graph_node_results (
|
|
59
|
+
run_id, node_id, attempt, status, started_at, completed_at,
|
|
60
|
+
duration_ms, cost_usd, failure_reason, context_snapshot
|
|
61
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
62
|
+
input.run_id,
|
|
63
|
+
input.node_id,
|
|
64
|
+
input.attempt,
|
|
65
|
+
input.status,
|
|
66
|
+
input.started_at,
|
|
67
|
+
input.completed_at ?? null,
|
|
68
|
+
input.duration_ms ?? null,
|
|
69
|
+
input.cost_usd ?? 0,
|
|
70
|
+
input.failure_reason ?? null,
|
|
71
|
+
input.context_snapshot ?? null,
|
|
72
|
+
]);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
// ---------------------------------------------------------------------------
|
|
76
|
+
// insertScenarioResult
|
|
77
|
+
// ---------------------------------------------------------------------------
|
|
78
|
+
/**
|
|
79
|
+
* Append a scenario_results row for a single scenario run iteration.
|
|
80
|
+
*
|
|
81
|
+
* The `details` field (score breakdown) should be serialized as JSON string
|
|
82
|
+
* before calling this function, or passed raw if already serialized.
|
|
83
|
+
*/
|
|
84
|
+
export async function insertScenarioResult(adapter, input) {
|
|
85
|
+
await adapter.transaction(async (tx) => {
|
|
86
|
+
await tx.query(`INSERT INTO scenario_results (
|
|
87
|
+
run_id, node_id, iteration, total_scenarios, passed, failed,
|
|
88
|
+
satisfaction_score, threshold, passes, details, executed_at
|
|
89
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
90
|
+
input.run_id,
|
|
91
|
+
input.node_id,
|
|
92
|
+
input.iteration,
|
|
93
|
+
input.total_scenarios,
|
|
94
|
+
input.passed,
|
|
95
|
+
input.failed,
|
|
96
|
+
input.satisfaction_score,
|
|
97
|
+
input.threshold,
|
|
98
|
+
input.passes ? 1 : 0,
|
|
99
|
+
input.details ?? null,
|
|
100
|
+
input.executed_at ?? new Date().toISOString(),
|
|
101
|
+
]);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// ---------------------------------------------------------------------------
|
|
105
|
+
// getScenarioResultsForRun
|
|
106
|
+
// ---------------------------------------------------------------------------
|
|
107
|
+
/**
|
|
108
|
+
* Retrieve all scenario results for a given run, ordered by iteration ascending.
|
|
109
|
+
*
|
|
110
|
+
* @returns Array of ScenarioResultRow ordered by iteration. Empty array if none exist.
|
|
111
|
+
*/
|
|
112
|
+
export async function getScenarioResultsForRun(adapter, runId) {
|
|
113
|
+
const rows = await adapter.query('SELECT * FROM scenario_results WHERE run_id = ? ORDER BY iteration ASC', [runId]);
|
|
114
|
+
// Coerce `passes` from integer (0/1) to boolean — adapters store it as an
|
|
115
|
+
// integer for portability, so `row.passes` may be 0 or 1 on read.
|
|
116
|
+
return rows.map((row) => ({ ...row, passes: Boolean(row.passes) }));
|
|
117
|
+
}
|
|
118
|
+
// ---------------------------------------------------------------------------
|
|
119
|
+
// listGraphRuns
|
|
120
|
+
// ---------------------------------------------------------------------------
|
|
121
|
+
/**
|
|
122
|
+
* List graph run records in descending started_at order.
|
|
123
|
+
*
|
|
124
|
+
* @param limit - Maximum number of rows to return (default 20).
|
|
125
|
+
*/
|
|
126
|
+
export async function listGraphRuns(adapter, limit = 20) {
|
|
127
|
+
return adapter.query('SELECT * FROM graph_runs ORDER BY started_at DESC LIMIT ?', [limit]);
|
|
128
|
+
}
|
|
129
|
+
// ---------------------------------------------------------------------------
|
|
130
|
+
// getFactoryRunSummaries
|
|
131
|
+
// ---------------------------------------------------------------------------
|
|
132
|
+
/**
|
|
133
|
+
* Retrieve a summarized list of factory graph runs, enriched with per-run
|
|
134
|
+
* iteration counts and latest satisfaction scores from `scenario_results`.
|
|
135
|
+
*
|
|
136
|
+
* Uses two queries (not a JOIN) for portability across adapters:
|
|
137
|
+
* 1. SELECT from graph_runs ordered by started_at DESC
|
|
138
|
+
* 2. GROUP BY aggregation on scenario_results for iteration counts and scores
|
|
139
|
+
*
|
|
140
|
+
* @param adapter - Database adapter (already opened)
|
|
141
|
+
* @param limit - Maximum number of graph runs to return (default 20)
|
|
142
|
+
* @returns Array of FactoryRunSummary ordered by started_at DESC; empty array on error
|
|
143
|
+
*/
|
|
144
|
+
export async function getFactoryRunSummaries(adapter, limit = 20) {
|
|
145
|
+
// Query 1: fetch run list
|
|
146
|
+
const runs = await adapter.query('SELECT id, started_at, completed_at, total_cost_usd, final_outcome FROM graph_runs ORDER BY started_at DESC LIMIT ?', [limit]);
|
|
147
|
+
if (runs.length === 0) {
|
|
148
|
+
return [];
|
|
149
|
+
}
|
|
150
|
+
// Query 2: aggregate scenario_results by run_id (iteration count and max satisfaction score)
|
|
151
|
+
const scenarioAgg = await adapter.query('SELECT run_id, COUNT(*) as iterations, MAX(satisfaction_score) as satisfaction_score FROM scenario_results GROUP BY run_id', []);
|
|
152
|
+
// Query 3: get the passes value from the latest iteration for each run_id.
|
|
153
|
+
// Using a JOIN with a MAX(iteration) subquery is the most portable approach
|
|
154
|
+
// (works in both SQLite and MySQL/Dolt) and avoids the MAX(passes) pitfall
|
|
155
|
+
// where any passing iteration would incorrectly show ✓ for a regressed run.
|
|
156
|
+
const latestPassesRows = await adapter.query('SELECT s.run_id, s.passes FROM scenario_results s INNER JOIN (SELECT run_id, MAX(iteration) AS max_iter FROM scenario_results GROUP BY run_id) latest ON s.run_id = latest.run_id AND s.iteration = latest.max_iter', []);
|
|
157
|
+
// Build a lookup map from run_id → scenario aggregation
|
|
158
|
+
const scenarioMap = new Map();
|
|
159
|
+
for (const row of scenarioAgg) {
|
|
160
|
+
scenarioMap.set(row.run_id, {
|
|
161
|
+
iterations: row.iterations,
|
|
162
|
+
satisfaction_score: row.satisfaction_score,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
// Build a lookup map from run_id → latest-iteration passes (boolean)
|
|
166
|
+
const latestPassesMap = new Map();
|
|
167
|
+
for (const row of latestPassesRows) {
|
|
168
|
+
latestPassesMap.set(row.run_id, row.passes !== 0);
|
|
169
|
+
}
|
|
170
|
+
// Combine
|
|
171
|
+
return runs.map((run) => {
|
|
172
|
+
const agg = scenarioMap.get(run.id);
|
|
173
|
+
return {
|
|
174
|
+
run_id: run.id,
|
|
175
|
+
satisfaction_score: agg !== undefined ? agg.satisfaction_score : null,
|
|
176
|
+
iterations: agg !== undefined ? agg.iterations : 0,
|
|
177
|
+
convergence_status: run.final_outcome,
|
|
178
|
+
started_at: run.started_at,
|
|
179
|
+
completed_at: run.completed_at,
|
|
180
|
+
total_cost_usd: run.total_cost_usd,
|
|
181
|
+
type: 'factory',
|
|
182
|
+
passes: latestPassesMap.has(run.id) ? (latestPassesMap.get(run.id) ?? null) : null,
|
|
183
|
+
};
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=factory-queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory-queries.js","sourceRoot":"","sources":["../../src/persistence/factory-queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory schema DDL for graph execution and scenario validation tables.
|
|
3
|
+
* Companion to `@substrate-ai/core`'s `initSchema` — call both during factory initialization.
|
|
4
|
+
*/
|
|
5
|
+
import type { DatabaseAdapter } from '@substrate-ai/core';
|
|
6
|
+
/**
|
|
7
|
+
* Initialize all factory-specific persistence tables on the given adapter.
|
|
8
|
+
* Idempotent — safe to call multiple times.
|
|
9
|
+
*
|
|
10
|
+
* Creates:
|
|
11
|
+
* - graph_runs: top-level graph execution run records
|
|
12
|
+
* - graph_node_results: per-node execution results within a run
|
|
13
|
+
* - scenario_results: scenario validation outcomes within a run
|
|
14
|
+
*/
|
|
15
|
+
export declare function factorySchema(adapter: DatabaseAdapter): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=factory-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory-schema.d.ts","sourceRoot":"","sources":["../../src/persistence/factory-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAgF3E"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory schema DDL for graph execution and scenario validation tables.
|
|
3
|
+
* Companion to `@substrate-ai/core`'s `initSchema` — call both during factory initialization.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Initialize all factory-specific persistence tables on the given adapter.
|
|
7
|
+
* Idempotent — safe to call multiple times.
|
|
8
|
+
*
|
|
9
|
+
* Creates:
|
|
10
|
+
* - graph_runs: top-level graph execution run records
|
|
11
|
+
* - graph_node_results: per-node execution results within a run
|
|
12
|
+
* - scenario_results: scenario validation outcomes within a run
|
|
13
|
+
*/
|
|
14
|
+
export async function factorySchema(adapter) {
|
|
15
|
+
// -- graph_runs (AC1) -------------------------------------------------------
|
|
16
|
+
await adapter.exec(`
|
|
17
|
+
CREATE TABLE IF NOT EXISTS graph_runs (
|
|
18
|
+
id VARCHAR(255) PRIMARY KEY,
|
|
19
|
+
graph_file TEXT NOT NULL,
|
|
20
|
+
graph_goal TEXT,
|
|
21
|
+
status VARCHAR(32) NOT NULL DEFAULT 'running',
|
|
22
|
+
started_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
23
|
+
completed_at DATETIME,
|
|
24
|
+
total_cost_usd DOUBLE NOT NULL DEFAULT 0.0,
|
|
25
|
+
node_count INTEGER NOT NULL DEFAULT 0,
|
|
26
|
+
final_outcome VARCHAR(32),
|
|
27
|
+
checkpoint_path TEXT
|
|
28
|
+
)
|
|
29
|
+
`);
|
|
30
|
+
// -- graph_node_results (AC2, AC4) ------------------------------------------
|
|
31
|
+
await adapter.exec(`
|
|
32
|
+
CREATE TABLE IF NOT EXISTS graph_node_results (
|
|
33
|
+
id INTEGER PRIMARY KEY AUTO_INCREMENT,
|
|
34
|
+
run_id VARCHAR(255) NOT NULL ,
|
|
35
|
+
node_id VARCHAR(255) NOT NULL,
|
|
36
|
+
attempt INTEGER NOT NULL DEFAULT 1,
|
|
37
|
+
status VARCHAR(32) NOT NULL,
|
|
38
|
+
started_at DATETIME NOT NULL,
|
|
39
|
+
completed_at DATETIME,
|
|
40
|
+
duration_ms INTEGER,
|
|
41
|
+
cost_usd DOUBLE NOT NULL DEFAULT 0.0,
|
|
42
|
+
failure_reason TEXT,
|
|
43
|
+
context_snapshot TEXT
|
|
44
|
+
)
|
|
45
|
+
`);
|
|
46
|
+
await adapter.exec('CREATE INDEX IF NOT EXISTS idx_graph_node_results_run ON graph_node_results(run_id)');
|
|
47
|
+
// -- scenario_results (AC3, AC4) --------------------------------------------
|
|
48
|
+
await adapter.exec(`
|
|
49
|
+
CREATE TABLE IF NOT EXISTS scenario_results (
|
|
50
|
+
id INTEGER PRIMARY KEY AUTO_INCREMENT,
|
|
51
|
+
run_id VARCHAR(255) NOT NULL ,
|
|
52
|
+
node_id VARCHAR(255) NOT NULL,
|
|
53
|
+
iteration INTEGER NOT NULL DEFAULT 1,
|
|
54
|
+
total_scenarios INTEGER NOT NULL,
|
|
55
|
+
passed INTEGER NOT NULL,
|
|
56
|
+
failed INTEGER NOT NULL,
|
|
57
|
+
satisfaction_score DOUBLE NOT NULL,
|
|
58
|
+
threshold DOUBLE NOT NULL DEFAULT 0.8,
|
|
59
|
+
passes BOOLEAN NOT NULL,
|
|
60
|
+
details TEXT,
|
|
61
|
+
executed_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
62
|
+
)
|
|
63
|
+
`);
|
|
64
|
+
await adapter.exec('CREATE INDEX IF NOT EXISTS idx_scenario_results_run ON scenario_results(run_id)');
|
|
65
|
+
// -- twin_runs (AC1) --------------------------------------------------------
|
|
66
|
+
await adapter.exec(`
|
|
67
|
+
CREATE TABLE IF NOT EXISTS twin_runs (
|
|
68
|
+
id VARCHAR(255) PRIMARY KEY,
|
|
69
|
+
run_id VARCHAR(255),
|
|
70
|
+
twin_name VARCHAR(255) NOT NULL,
|
|
71
|
+
started_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
72
|
+
stopped_at DATETIME,
|
|
73
|
+
status VARCHAR(32) NOT NULL DEFAULT 'running',
|
|
74
|
+
ports_json TEXT
|
|
75
|
+
)
|
|
76
|
+
`);
|
|
77
|
+
// -- twin_health_failures (AC2) ---------------------------------------------
|
|
78
|
+
await adapter.exec(`
|
|
79
|
+
CREATE TABLE IF NOT EXISTS twin_health_failures (
|
|
80
|
+
id INTEGER PRIMARY KEY AUTO_INCREMENT,
|
|
81
|
+
twin_name VARCHAR(255) NOT NULL,
|
|
82
|
+
run_id VARCHAR(255),
|
|
83
|
+
checked_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
84
|
+
error_message TEXT NOT NULL
|
|
85
|
+
)
|
|
86
|
+
`);
|
|
87
|
+
await adapter.exec('CREATE INDEX IF NOT EXISTS idx_twin_health_failures_twin ON twin_health_failures(twin_name)');
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=factory-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory-schema.js","sourceRoot":"","sources":["../../src/persistence/factory-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAwB;IAC1D,8EAA8E;IAC9E,MAAM,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;GAalB,CAAC,CAAA;IAEF,8EAA8E;IAC9E,MAAM,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAclB,CAAC,CAAA;IACF,MAAM,OAAO,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAA;IAEzG,8EAA8E;IAC9E,MAAM,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;GAelB,CAAC,CAAA;IACF,MAAM,OAAO,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAA;IAErG,8EAA8E;IAC9E,MAAM,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;GAUlB,CAAC,CAAA;IAEF,8EAA8E;IAC9E,MAAM,OAAO,CAAC,IAAI,CAAC;;;;;;;;GAQlB,CAAC,CAAA;IACF,MAAM,OAAO,CAAC,IAAI,CAChB,6FAA6F,CAC9F,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-command-list.test.d.ts","sourceRoot":"","sources":["../../../src/scenarios/__tests__/cli-command-list.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|