@substrate-ai/core 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/README.md +55 -0
- package/dist/__tests__/adapter.test.d.ts +12 -0
- package/dist/__tests__/adapter.test.d.ts.map +1 -0
- package/dist/__tests__/adapter.test.js +259 -0
- package/dist/__tests__/adapter.test.js.map +1 -0
- package/dist/__tests__/event-bus.test.d.ts +14 -0
- package/dist/__tests__/event-bus.test.d.ts.map +1 -0
- package/dist/__tests__/event-bus.test.js +199 -0
- package/dist/__tests__/event-bus.test.js.map +1 -0
- package/dist/__tests__/output-quality.test.d.ts +8 -0
- package/dist/__tests__/output-quality.test.d.ts.map +1 -0
- package/dist/__tests__/output-quality.test.js +166 -0
- package/dist/__tests__/output-quality.test.js.map +1 -0
- package/dist/__tests__/schema-suffix.test.d.ts +9 -0
- package/dist/__tests__/schema-suffix.test.d.ts.map +1 -0
- package/dist/__tests__/schema-suffix.test.js +126 -0
- package/dist/__tests__/schema-suffix.test.js.map +1 -0
- package/dist/__tests__/yaml-parser.test.d.ts +18 -0
- package/dist/__tests__/yaml-parser.test.d.ts.map +1 -0
- package/dist/__tests__/yaml-parser.test.js +475 -0
- package/dist/__tests__/yaml-parser.test.js.map +1 -0
- package/dist/__type-checks__.d.ts +11 -0
- package/dist/__type-checks__.d.ts.map +1 -0
- package/dist/__type-checks__.js +19 -0
- package/dist/__type-checks__.js.map +1 -0
- package/dist/adapters/__tests__/adapter-output-normalizer.test.d.ts +12 -0
- package/dist/adapters/__tests__/adapter-output-normalizer.test.d.ts.map +1 -0
- package/dist/adapters/__tests__/adapter-output-normalizer.test.js +193 -0
- package/dist/adapters/__tests__/adapter-output-normalizer.test.js.map +1 -0
- package/dist/adapters/adapter-format-error.d.ts +35 -0
- package/dist/adapters/adapter-format-error.d.ts.map +1 -0
- package/dist/adapters/adapter-format-error.js +38 -0
- package/dist/adapters/adapter-format-error.js.map +1 -0
- package/dist/adapters/adapter-output-normalizer.d.ts +50 -0
- package/dist/adapters/adapter-output-normalizer.d.ts.map +1 -0
- package/dist/adapters/adapter-output-normalizer.js +233 -0
- package/dist/adapters/adapter-output-normalizer.js.map +1 -0
- package/dist/adapters/adapter-registry.d.ts +50 -0
- package/dist/adapters/adapter-registry.d.ts.map +1 -0
- package/dist/adapters/adapter-registry.js +101 -0
- package/dist/adapters/adapter-registry.js.map +1 -0
- package/dist/adapters/claude-adapter.d.ts +59 -0
- package/dist/adapters/claude-adapter.d.ts.map +1 -0
- package/dist/adapters/claude-adapter.js +367 -0
- package/dist/adapters/claude-adapter.js.map +1 -0
- package/dist/adapters/codex-adapter.d.ts +64 -0
- package/dist/adapters/codex-adapter.d.ts.map +1 -0
- package/dist/adapters/codex-adapter.js +263 -0
- package/dist/adapters/codex-adapter.js.map +1 -0
- package/dist/adapters/gemini-adapter.d.ts +57 -0
- package/dist/adapters/gemini-adapter.d.ts.map +1 -0
- package/dist/adapters/gemini-adapter.js +311 -0
- package/dist/adapters/gemini-adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +10 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +14 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/schemas.d.ts +137 -0
- package/dist/adapters/schemas.d.ts.map +1 -0
- package/dist/adapters/schemas.js +140 -0
- package/dist/adapters/schemas.js.map +1 -0
- package/dist/adapters/types.d.ts +245 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +6 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/adapters/worker-adapter.d.ts +188 -0
- package/dist/adapters/worker-adapter.d.ts.map +1 -0
- package/dist/adapters/worker-adapter.js +19 -0
- package/dist/adapters/worker-adapter.js.map +1 -0
- package/dist/budget/budget-tracker.d.ts +22 -0
- package/dist/budget/budget-tracker.d.ts.map +1 -0
- package/dist/budget/budget-tracker.js +39 -0
- package/dist/budget/budget-tracker.js.map +1 -0
- package/dist/budget/index.d.ts +6 -0
- package/dist/budget/index.d.ts.map +1 -0
- package/dist/budget/index.js +5 -0
- package/dist/budget/index.js.map +1 -0
- package/dist/config/config-migrator.d.ts +58 -0
- package/dist/config/config-migrator.d.ts.map +1 -0
- package/dist/config/config-migrator.js +158 -0
- package/dist/config/config-migrator.js.map +1 -0
- package/dist/config/config-system-impl.d.ts +63 -0
- package/dist/config/config-system-impl.d.ts.map +1 -0
- package/dist/config/config-system-impl.js +364 -0
- package/dist/config/config-system-impl.js.map +1 -0
- package/dist/config/config-watcher.d.ts +59 -0
- package/dist/config/config-watcher.d.ts.map +1 -0
- package/dist/config/config-watcher.js +137 -0
- package/dist/config/config-watcher.js.map +1 -0
- package/dist/config/defaults.d.ts +13 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +62 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/errors.d.ts +25 -0
- package/dist/config/errors.d.ts.map +1 -0
- package/dist/config/errors.js +49 -0
- package/dist/config/errors.js.map +1 -0
- package/dist/config/index.d.ts +19 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +39 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/types.d.ts +456 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +174 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/version-utils.d.ts +39 -0
- package/dist/config/version-utils.d.ts.map +1 -0
- package/dist/config/version-utils.js +66 -0
- package/dist/config/version-utils.js.map +1 -0
- package/dist/context/index.d.ts +2 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +2 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/types.d.ts +113 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/context/types.js +59 -0
- package/dist/context/types.js.map +1 -0
- package/dist/cost-tracker/cost-tracker-impl.d.ts +51 -0
- package/dist/cost-tracker/cost-tracker-impl.d.ts.map +1 -0
- package/dist/cost-tracker/cost-tracker-impl.js +85 -0
- package/dist/cost-tracker/cost-tracker-impl.js.map +1 -0
- package/dist/cost-tracker/cost-tracker-subscriber.d.ts +31 -0
- package/dist/cost-tracker/cost-tracker-subscriber.d.ts.map +1 -0
- package/dist/cost-tracker/cost-tracker-subscriber.js +116 -0
- package/dist/cost-tracker/cost-tracker-subscriber.js.map +1 -0
- package/dist/cost-tracker/index.d.ts +11 -0
- package/dist/cost-tracker/index.d.ts.map +1 -0
- package/dist/cost-tracker/index.js +7 -0
- package/dist/cost-tracker/index.js.map +1 -0
- package/dist/cost-tracker/token-rates.d.ts +25 -0
- package/dist/cost-tracker/token-rates.d.ts.map +1 -0
- package/dist/cost-tracker/token-rates.js +99 -0
- package/dist/cost-tracker/token-rates.js.map +1 -0
- package/dist/cost-tracker/types.d.ts +6 -0
- package/dist/cost-tracker/types.d.ts.map +1 -0
- package/dist/cost-tracker/types.js +2 -0
- package/dist/cost-tracker/types.js.map +1 -0
- package/dist/dispatch/dispatcher-impl.d.ts +92 -0
- package/dist/dispatch/dispatcher-impl.d.ts.map +1 -0
- package/dist/dispatch/dispatcher-impl.js +847 -0
- package/dist/dispatch/dispatcher-impl.js.map +1 -0
- package/dist/dispatch/index.d.ts +15 -0
- package/dist/dispatch/index.d.ts.map +1 -0
- package/dist/dispatch/index.js +14 -0
- package/dist/dispatch/index.js.map +1 -0
- package/dist/dispatch/interface-change-detector.d.ts +46 -0
- package/dist/dispatch/interface-change-detector.d.ts.map +1 -0
- package/dist/dispatch/interface-change-detector.js +135 -0
- package/dist/dispatch/interface-change-detector.js.map +1 -0
- package/dist/dispatch/output-quality.d.ts +43 -0
- package/dist/dispatch/output-quality.d.ts.map +1 -0
- package/dist/dispatch/output-quality.js +148 -0
- package/dist/dispatch/output-quality.js.map +1 -0
- package/dist/dispatch/types.d.ts +271 -0
- package/dist/dispatch/types.d.ts.map +1 -0
- package/dist/dispatch/types.js +76 -0
- package/dist/dispatch/types.js.map +1 -0
- package/dist/dispatch/yaml-parser.d.ts +40 -0
- package/dist/dispatch/yaml-parser.d.ts.map +1 -0
- package/dist/dispatch/yaml-parser.js +323 -0
- package/dist/dispatch/yaml-parser.js.map +1 -0
- package/dist/events/core-events.d.ts +288 -0
- package/dist/events/core-events.d.ts.map +1 -0
- package/dist/events/core-events.js +10 -0
- package/dist/events/core-events.js.map +1 -0
- package/dist/events/event-bus.d.ts +55 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/event-bus.js +52 -0
- package/dist/events/event-bus.js.map +1 -0
- package/dist/events/index.d.ts +9 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +6 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/types.d.ts +21 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +8 -0
- package/dist/events/types.js.map +1 -0
- package/dist/git/git-manager.d.ts +31 -0
- package/dist/git/git-manager.d.ts.map +1 -0
- package/dist/git/git-manager.js +46 -0
- package/dist/git/git-manager.js.map +1 -0
- package/dist/git/git-utils.d.ts +166 -0
- package/dist/git/git-utils.d.ts.map +1 -0
- package/dist/git/git-utils.js +347 -0
- package/dist/git/git-utils.js.map +1 -0
- package/dist/git/git-worktree-manager-impl.d.ts +58 -0
- package/dist/git/git-worktree-manager-impl.d.ts.map +1 -0
- package/dist/git/git-worktree-manager-impl.js +336 -0
- package/dist/git/git-worktree-manager-impl.js.map +1 -0
- package/dist/git/git-worktree-manager.d.ts +122 -0
- package/dist/git/git-worktree-manager.d.ts.map +1 -0
- package/dist/git/git-worktree-manager.js +14 -0
- package/dist/git/git-worktree-manager.js.map +1 -0
- package/dist/git/index.d.ts +11 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +8 -0
- package/dist/git/index.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/client.d.ts +42 -0
- package/dist/llm/client.d.ts.map +1 -0
- package/dist/llm/client.js +27 -0
- package/dist/llm/client.js.map +1 -0
- package/dist/monitor/index.d.ts +15 -0
- package/dist/monitor/index.d.ts.map +1 -0
- package/dist/monitor/index.js +9 -0
- package/dist/monitor/index.js.map +1 -0
- package/dist/monitor/monitor-agent-impl.d.ts +56 -0
- package/dist/monitor/monitor-agent-impl.d.ts.map +1 -0
- package/dist/monitor/monitor-agent-impl.js +178 -0
- package/dist/monitor/monitor-agent-impl.js.map +1 -0
- package/dist/monitor/monitor-agent.d.ts +36 -0
- package/dist/monitor/monitor-agent.d.ts.map +1 -0
- package/dist/monitor/monitor-agent.js +6 -0
- package/dist/monitor/monitor-agent.js.map +1 -0
- package/dist/monitor/performance-aggregates.d.ts +41 -0
- package/dist/monitor/performance-aggregates.d.ts.map +1 -0
- package/dist/monitor/performance-aggregates.js +6 -0
- package/dist/monitor/performance-aggregates.js.map +1 -0
- package/dist/monitor/recommendation-engine.d.ts +27 -0
- package/dist/monitor/recommendation-engine.d.ts.map +1 -0
- package/dist/monitor/recommendation-engine.js +140 -0
- package/dist/monitor/recommendation-engine.js.map +1 -0
- package/dist/monitor/recommendation-types.d.ts +30 -0
- package/dist/monitor/recommendation-types.d.ts.map +1 -0
- package/dist/monitor/recommendation-types.js +43 -0
- package/dist/monitor/recommendation-types.js.map +1 -0
- package/dist/monitor/report-generator.d.ts +48 -0
- package/dist/monitor/report-generator.d.ts.map +1 -0
- package/dist/monitor/report-generator.js +123 -0
- package/dist/monitor/report-generator.js.map +1 -0
- package/dist/monitor/task-type-classifier.d.ts +19 -0
- package/dist/monitor/task-type-classifier.d.ts.map +1 -0
- package/dist/monitor/task-type-classifier.js +68 -0
- package/dist/monitor/task-type-classifier.js.map +1 -0
- package/dist/persistence/adapter.d.ts +4 -0
- package/dist/persistence/adapter.d.ts.map +1 -0
- package/dist/persistence/adapter.js +56 -0
- package/dist/persistence/adapter.js.map +1 -0
- package/dist/persistence/cost-types.d.ts +87 -0
- package/dist/persistence/cost-types.d.ts.map +1 -0
- package/dist/persistence/cost-types.js +14 -0
- package/dist/persistence/cost-types.js.map +1 -0
- package/dist/persistence/dolt-adapter-transaction.test.d.ts +10 -0
- package/dist/persistence/dolt-adapter-transaction.test.d.ts.map +1 -0
- package/dist/persistence/dolt-adapter-transaction.test.js +359 -0
- package/dist/persistence/dolt-adapter-transaction.test.js.map +1 -0
- package/dist/persistence/dolt-adapter.d.ts +77 -0
- package/dist/persistence/dolt-adapter.d.ts.map +1 -0
- package/dist/persistence/dolt-adapter.js +98 -0
- package/dist/persistence/dolt-adapter.js.map +1 -0
- package/dist/persistence/dolt-client.d.ts +69 -0
- package/dist/persistence/dolt-client.d.ts.map +1 -0
- package/dist/persistence/dolt-client.js +278 -0
- package/dist/persistence/dolt-client.js.map +1 -0
- package/dist/persistence/dolt-errors.d.ts +10 -0
- package/dist/persistence/dolt-errors.d.ts.map +1 -0
- package/dist/persistence/dolt-errors.js +15 -0
- package/dist/persistence/dolt-errors.js.map +1 -0
- package/dist/persistence/dolt-init.d.ts +64 -0
- package/dist/persistence/dolt-init.d.ts.map +1 -0
- package/dist/persistence/dolt-init.js +233 -0
- package/dist/persistence/dolt-init.js.map +1 -0
- package/dist/persistence/index.d.ts +23 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +23 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/memory-adapter.d.ts +156 -0
- package/dist/persistence/memory-adapter.d.ts.map +1 -0
- package/dist/persistence/memory-adapter.js +1167 -0
- package/dist/persistence/memory-adapter.js.map +1 -0
- package/dist/persistence/monitor-database.d.ts +113 -0
- package/dist/persistence/monitor-database.d.ts.map +1 -0
- package/dist/persistence/monitor-database.js +345 -0
- package/dist/persistence/monitor-database.js.map +1 -0
- package/dist/persistence/queries/amendments.d.ts +91 -0
- package/dist/persistence/queries/amendments.d.ts.map +1 -0
- package/dist/persistence/queries/amendments.js +185 -0
- package/dist/persistence/queries/amendments.js.map +1 -0
- package/dist/persistence/queries/cost.d.ts +130 -0
- package/dist/persistence/queries/cost.d.ts.map +1 -0
- package/dist/persistence/queries/cost.js +384 -0
- package/dist/persistence/queries/cost.js.map +1 -0
- package/dist/persistence/queries/decisions.d.ts +131 -0
- package/dist/persistence/queries/decisions.d.ts.map +1 -0
- package/dist/persistence/queries/decisions.js +339 -0
- package/dist/persistence/queries/decisions.js.map +1 -0
- package/dist/persistence/queries/metrics.d.ts +155 -0
- package/dist/persistence/queries/metrics.d.ts.map +1 -0
- package/dist/persistence/queries/metrics.js +237 -0
- package/dist/persistence/queries/metrics.js.map +1 -0
- package/dist/persistence/queries/retry-escalated.d.ts +35 -0
- package/dist/persistence/queries/retry-escalated.d.ts.map +1 -0
- package/dist/persistence/queries/retry-escalated.js +83 -0
- package/dist/persistence/queries/retry-escalated.js.map +1 -0
- package/dist/persistence/schema-version.d.ts +89 -0
- package/dist/persistence/schema-version.d.ts.map +1 -0
- package/dist/persistence/schema-version.js +67 -0
- package/dist/persistence/schema-version.js.map +1 -0
- package/dist/persistence/schema.d.ts +26 -0
- package/dist/persistence/schema.d.ts.map +1 -0
- package/dist/persistence/schema.js +509 -0
- package/dist/persistence/schema.js.map +1 -0
- package/dist/persistence/schemas/decisions.d.ts +176 -0
- package/dist/persistence/schemas/decisions.d.ts.map +1 -0
- package/dist/persistence/schemas/decisions.js +139 -0
- package/dist/persistence/schemas/decisions.js.map +1 -0
- package/dist/persistence/schemas/operational.d.ts +194 -0
- package/dist/persistence/schemas/operational.d.ts.map +1 -0
- package/dist/persistence/schemas/operational.js +197 -0
- package/dist/persistence/schemas/operational.js.map +1 -0
- package/dist/persistence/types.d.ts +98 -0
- package/dist/persistence/types.d.ts.map +1 -0
- package/dist/persistence/types.js +22 -0
- package/dist/persistence/types.js.map +1 -0
- package/dist/quality-gates/index.d.ts +2 -0
- package/dist/quality-gates/index.d.ts.map +1 -0
- package/dist/quality-gates/index.js +2 -0
- package/dist/quality-gates/index.js.map +1 -0
- package/dist/quality-gates/types.d.ts +106 -0
- package/dist/quality-gates/types.d.ts.map +1 -0
- package/dist/quality-gates/types.js +5 -0
- package/dist/quality-gates/types.js.map +1 -0
- package/dist/routing/index.d.ts +19 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +32 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/routing/model-routing-config.d.ts +75 -0
- package/dist/routing/model-routing-config.d.ts.map +1 -0
- package/dist/routing/model-routing-config.js +110 -0
- package/dist/routing/model-routing-config.js.map +1 -0
- package/dist/routing/model-routing-resolver.d.ts +48 -0
- package/dist/routing/model-routing-resolver.d.ts.map +1 -0
- package/dist/routing/model-routing-resolver.js +105 -0
- package/dist/routing/model-routing-resolver.js.map +1 -0
- package/dist/routing/model-tier.d.ts +21 -0
- package/dist/routing/model-tier.d.ts.map +1 -0
- package/dist/routing/model-tier.js +34 -0
- package/dist/routing/model-tier.js.map +1 -0
- package/dist/routing/provider-status.d.ts +99 -0
- package/dist/routing/provider-status.d.ts.map +1 -0
- package/dist/routing/provider-status.js +163 -0
- package/dist/routing/provider-status.js.map +1 -0
- package/dist/routing/routing-decision.d.ts +127 -0
- package/dist/routing/routing-decision.d.ts.map +1 -0
- package/dist/routing/routing-decision.js +111 -0
- package/dist/routing/routing-decision.js.map +1 -0
- package/dist/routing/routing-engine-impl.d.ts +132 -0
- package/dist/routing/routing-engine-impl.d.ts.map +1 -0
- package/dist/routing/routing-engine-impl.js +450 -0
- package/dist/routing/routing-engine-impl.js.map +1 -0
- package/dist/routing/routing-engine.d.ts +83 -0
- package/dist/routing/routing-engine.d.ts.map +1 -0
- package/dist/routing/routing-engine.js +24 -0
- package/dist/routing/routing-engine.js.map +1 -0
- package/dist/routing/routing-policy.d.ts +138 -0
- package/dist/routing/routing-policy.d.ts.map +1 -0
- package/dist/routing/routing-policy.js +159 -0
- package/dist/routing/routing-policy.js.map +1 -0
- package/dist/routing/routing-recommender.d.ts +60 -0
- package/dist/routing/routing-recommender.d.ts.map +1 -0
- package/dist/routing/routing-recommender.js +209 -0
- package/dist/routing/routing-recommender.js.map +1 -0
- package/dist/routing/routing-telemetry.d.ts +36 -0
- package/dist/routing/routing-telemetry.d.ts.map +1 -0
- package/dist/routing/routing-telemetry.js +39 -0
- package/dist/routing/routing-telemetry.js.map +1 -0
- package/dist/routing/routing-token-accumulator.d.ts +68 -0
- package/dist/routing/routing-token-accumulator.d.ts.map +1 -0
- package/dist/routing/routing-token-accumulator.js +111 -0
- package/dist/routing/routing-token-accumulator.js.map +1 -0
- package/dist/routing/routing-tuner.d.ts +69 -0
- package/dist/routing/routing-tuner.d.ts.map +1 -0
- package/dist/routing/routing-tuner.js +217 -0
- package/dist/routing/routing-tuner.js.map +1 -0
- package/dist/routing/types.d.ts +152 -0
- package/dist/routing/types.d.ts.map +1 -0
- package/dist/routing/types.js +13 -0
- package/dist/routing/types.js.map +1 -0
- package/dist/supervisor/analysis.d.ts +178 -0
- package/dist/supervisor/analysis.d.ts.map +1 -0
- package/dist/supervisor/analysis.js +420 -0
- package/dist/supervisor/analysis.js.map +1 -0
- package/dist/supervisor/experimenter.d.ts +118 -0
- package/dist/supervisor/experimenter.d.ts.map +1 -0
- package/dist/supervisor/experimenter.js +493 -0
- package/dist/supervisor/experimenter.js.map +1 -0
- package/dist/supervisor/index.d.ts +13 -0
- package/dist/supervisor/index.d.ts.map +1 -0
- package/dist/supervisor/index.js +11 -0
- package/dist/supervisor/index.js.map +1 -0
- package/dist/telemetry/batch-buffer.d.ts +53 -0
- package/dist/telemetry/batch-buffer.d.ts.map +1 -0
- package/dist/telemetry/batch-buffer.js +83 -0
- package/dist/telemetry/batch-buffer.js.map +1 -0
- package/dist/telemetry/categorizer.d.ts +65 -0
- package/dist/telemetry/categorizer.d.ts.map +1 -0
- package/dist/telemetry/categorizer.js +338 -0
- package/dist/telemetry/categorizer.js.map +1 -0
- package/dist/telemetry/consumer-analyzer.d.ts +53 -0
- package/dist/telemetry/consumer-analyzer.d.ts.map +1 -0
- package/dist/telemetry/consumer-analyzer.js +182 -0
- package/dist/telemetry/consumer-analyzer.js.map +1 -0
- package/dist/telemetry/cost-table.d.ts +36 -0
- package/dist/telemetry/cost-table.d.ts.map +1 -0
- package/dist/telemetry/cost-table.js +127 -0
- package/dist/telemetry/cost-table.js.map +1 -0
- package/dist/telemetry/efficiency-scorer.d.ts +103 -0
- package/dist/telemetry/efficiency-scorer.d.ts.map +1 -0
- package/dist/telemetry/efficiency-scorer.js +311 -0
- package/dist/telemetry/efficiency-scorer.js.map +1 -0
- package/dist/telemetry/index.d.ts +28 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +37 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/ingestion-server.d.ts +99 -0
- package/dist/telemetry/ingestion-server.d.ts.map +1 -0
- package/dist/telemetry/ingestion-server.js +315 -0
- package/dist/telemetry/ingestion-server.js.map +1 -0
- package/dist/telemetry/log-turn-analyzer.d.ts +35 -0
- package/dist/telemetry/log-turn-analyzer.d.ts.map +1 -0
- package/dist/telemetry/log-turn-analyzer.js +132 -0
- package/dist/telemetry/log-turn-analyzer.js.map +1 -0
- package/dist/telemetry/normalizer.d.ts +43 -0
- package/dist/telemetry/normalizer.d.ts.map +1 -0
- package/dist/telemetry/normalizer.js +320 -0
- package/dist/telemetry/normalizer.js.map +1 -0
- package/dist/telemetry/recommender.d.ts +116 -0
- package/dist/telemetry/recommender.d.ts.map +1 -0
- package/dist/telemetry/recommender.js +532 -0
- package/dist/telemetry/recommender.js.map +1 -0
- package/dist/telemetry/source-detector.d.ts +19 -0
- package/dist/telemetry/source-detector.d.ts.map +1 -0
- package/dist/telemetry/source-detector.js +73 -0
- package/dist/telemetry/source-detector.js.map +1 -0
- package/dist/telemetry/task-baselines.d.ts +30 -0
- package/dist/telemetry/task-baselines.d.ts.map +1 -0
- package/dist/telemetry/task-baselines.js +44 -0
- package/dist/telemetry/task-baselines.js.map +1 -0
- package/dist/telemetry/telemetry-pipeline.d.ts +122 -0
- package/dist/telemetry/telemetry-pipeline.d.ts.map +1 -0
- package/dist/telemetry/telemetry-pipeline.js +349 -0
- package/dist/telemetry/telemetry-pipeline.js.map +1 -0
- package/dist/telemetry/timestamp-normalizer.d.ts +32 -0
- package/dist/telemetry/timestamp-normalizer.d.ts.map +1 -0
- package/dist/telemetry/timestamp-normalizer.js +133 -0
- package/dist/telemetry/timestamp-normalizer.js.map +1 -0
- package/dist/telemetry/token-extractor.d.ts +57 -0
- package/dist/telemetry/token-extractor.d.ts.map +1 -0
- package/dist/telemetry/token-extractor.js +200 -0
- package/dist/telemetry/token-extractor.js.map +1 -0
- package/dist/telemetry/turn-analyzer.d.ts +34 -0
- package/dist/telemetry/turn-analyzer.d.ts.map +1 -0
- package/dist/telemetry/turn-analyzer.js +101 -0
- package/dist/telemetry/turn-analyzer.js.map +1 -0
- package/dist/telemetry/types.d.ts +456 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +186 -0
- package/dist/telemetry/types.js.map +1 -0
- package/dist/types.d.ts +80 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/version-manager/index.d.ts +11 -0
- package/dist/version-manager/index.d.ts.map +1 -0
- package/dist/version-manager/index.js +8 -0
- package/dist/version-manager/index.js.map +1 -0
- package/dist/version-manager/update-checker.d.ts +44 -0
- package/dist/version-manager/update-checker.d.ts.map +1 -0
- package/dist/version-manager/update-checker.js +171 -0
- package/dist/version-manager/update-checker.js.map +1 -0
- package/dist/version-manager/version-cache.d.ts +42 -0
- package/dist/version-manager/version-cache.d.ts.map +1 -0
- package/dist/version-manager/version-cache.js +69 -0
- package/dist/version-manager/version-cache.js.map +1 -0
- package/dist/version-manager/version-manager-impl.d.ts +81 -0
- package/dist/version-manager/version-manager-impl.d.ts.map +1 -0
- package/dist/version-manager/version-manager-impl.js +223 -0
- package/dist/version-manager/version-manager-impl.js.map +1 -0
- package/dist/version-manager/version-manager.d.ts +70 -0
- package/dist/version-manager/version-manager.d.ts.map +1 -0
- package/dist/version-manager/version-manager.js +8 -0
- package/dist/version-manager/version-manager.js.map +1 -0
- package/package.json +27 -0
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decision store query functions for the persistence layer.
|
|
3
|
+
*
|
|
4
|
+
* Provides CRUD operations for the decision store tables:
|
|
5
|
+
* decisions, requirements, constraints, artifacts, pipeline_runs, token_usage.
|
|
6
|
+
*
|
|
7
|
+
* All functions are async and accept a DatabaseAdapter, making them
|
|
8
|
+
* compatible with both the SqliteDatabaseAdapter and DoltDatabaseAdapter.
|
|
9
|
+
*/
|
|
10
|
+
import { CreateDecisionInputSchema, CreateRequirementInputSchema, CreateConstraintInputSchema, RegisterArtifactInputSchema, CreatePipelineRunInputSchema, AddTokenUsageInputSchema, } from '../schemas/decisions.js';
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Decision queries
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
/**
|
|
15
|
+
* Insert a new decision record with a generated UUID.
|
|
16
|
+
*/
|
|
17
|
+
export async function createDecision(adapter, input) {
|
|
18
|
+
const validated = CreateDecisionInputSchema.parse(input);
|
|
19
|
+
const id = crypto.randomUUID();
|
|
20
|
+
await adapter.query(`INSERT INTO decisions (id, pipeline_run_id, phase, category, \`key\`, value, rationale)
|
|
21
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`, [
|
|
22
|
+
id,
|
|
23
|
+
validated.pipeline_run_id ?? null,
|
|
24
|
+
validated.phase,
|
|
25
|
+
validated.category,
|
|
26
|
+
validated.key,
|
|
27
|
+
validated.value,
|
|
28
|
+
validated.rationale ?? null,
|
|
29
|
+
]);
|
|
30
|
+
const rows = await adapter.query('SELECT * FROM decisions WHERE id = ?', [id]);
|
|
31
|
+
return rows[0];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Insert or update a decision record.
|
|
35
|
+
* If a decision with the same pipeline_run_id, category, and key already exists,
|
|
36
|
+
* update its value and rationale. Otherwise, insert a new record.
|
|
37
|
+
*/
|
|
38
|
+
export async function upsertDecision(adapter, input) {
|
|
39
|
+
const validated = CreateDecisionInputSchema.parse(input);
|
|
40
|
+
// Check for existing decision with same pipeline_run_id + category + key
|
|
41
|
+
const rows = await adapter.query('SELECT * FROM decisions WHERE pipeline_run_id = ? AND category = ? AND `key` = ? LIMIT 1', [validated.pipeline_run_id ?? null, validated.category, validated.key]);
|
|
42
|
+
const existing = rows[0];
|
|
43
|
+
if (existing) {
|
|
44
|
+
await updateDecision(adapter, existing.id, {
|
|
45
|
+
value: validated.value,
|
|
46
|
+
rationale: validated.rationale ?? undefined,
|
|
47
|
+
});
|
|
48
|
+
const updated = await adapter.query('SELECT * FROM decisions WHERE id = ?', [existing.id]);
|
|
49
|
+
return updated[0];
|
|
50
|
+
}
|
|
51
|
+
return createDecision(adapter, input);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get all decisions for a given phase, ordered by created_at ascending.
|
|
55
|
+
*/
|
|
56
|
+
export async function getDecisionsByPhase(adapter, phase) {
|
|
57
|
+
return adapter.query('SELECT * FROM decisions WHERE phase = ? ORDER BY created_at ASC', [phase]);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get all decisions for a given phase scoped to a specific pipeline run,
|
|
61
|
+
* ordered by created_at ascending.
|
|
62
|
+
*/
|
|
63
|
+
export async function getDecisionsByPhaseForRun(adapter, runId, phase) {
|
|
64
|
+
return adapter.query('SELECT * FROM decisions WHERE pipeline_run_id = ? AND phase = ? ORDER BY created_at ASC', [runId, phase]);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get all decisions for a given category, ordered by created_at ascending.
|
|
68
|
+
*/
|
|
69
|
+
export async function getDecisionsByCategory(adapter, category) {
|
|
70
|
+
return adapter.query('SELECT * FROM decisions WHERE category = ? ORDER BY created_at ASC', [category]);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get a single decision by phase and key. Returns undefined if not found.
|
|
74
|
+
*/
|
|
75
|
+
export async function getDecisionByKey(adapter, phase, key) {
|
|
76
|
+
const rows = await adapter.query('SELECT * FROM decisions WHERE phase = ? AND `key` = ? LIMIT 1', [phase, key]);
|
|
77
|
+
return rows[0];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Update a decision's value and/or rationale and set updated_at.
|
|
81
|
+
*/
|
|
82
|
+
export async function updateDecision(adapter, id, updates) {
|
|
83
|
+
const setClauses = [];
|
|
84
|
+
const values = [];
|
|
85
|
+
if (updates.value !== undefined) {
|
|
86
|
+
setClauses.push('value = ?');
|
|
87
|
+
values.push(updates.value);
|
|
88
|
+
}
|
|
89
|
+
if (updates.rationale !== undefined) {
|
|
90
|
+
setClauses.push('rationale = ?');
|
|
91
|
+
values.push(updates.rationale);
|
|
92
|
+
}
|
|
93
|
+
if (setClauses.length === 0)
|
|
94
|
+
return;
|
|
95
|
+
setClauses.push('updated_at = ?');
|
|
96
|
+
values.push(new Date().toISOString());
|
|
97
|
+
values.push(id);
|
|
98
|
+
await adapter.query(`UPDATE decisions SET ${setClauses.join(', ')} WHERE id = ?`, values);
|
|
99
|
+
}
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
// Requirement queries
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
/**
|
|
104
|
+
* Insert a new requirement with status = 'active'.
|
|
105
|
+
*/
|
|
106
|
+
export async function createRequirement(adapter, input) {
|
|
107
|
+
const validated = CreateRequirementInputSchema.parse(input);
|
|
108
|
+
const id = crypto.randomUUID();
|
|
109
|
+
await adapter.query(`INSERT INTO requirements (id, pipeline_run_id, source, type, description, priority, status)
|
|
110
|
+
VALUES (?, ?, ?, ?, ?, ?, 'active')`, [
|
|
111
|
+
id,
|
|
112
|
+
validated.pipeline_run_id ?? null,
|
|
113
|
+
validated.source,
|
|
114
|
+
validated.type,
|
|
115
|
+
validated.description,
|
|
116
|
+
validated.priority,
|
|
117
|
+
]);
|
|
118
|
+
const rows = await adapter.query('SELECT * FROM requirements WHERE id = ?', [id]);
|
|
119
|
+
return rows[0];
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* List requirements with optional filtering by type, priority, and status.
|
|
123
|
+
*/
|
|
124
|
+
export async function listRequirements(adapter, filters) {
|
|
125
|
+
const conditions = [];
|
|
126
|
+
const values = [];
|
|
127
|
+
if (filters?.type !== undefined) {
|
|
128
|
+
conditions.push('type = ?');
|
|
129
|
+
values.push(filters.type);
|
|
130
|
+
}
|
|
131
|
+
if (filters?.priority !== undefined) {
|
|
132
|
+
conditions.push('priority = ?');
|
|
133
|
+
values.push(filters.priority);
|
|
134
|
+
}
|
|
135
|
+
if (filters?.status !== undefined) {
|
|
136
|
+
conditions.push('status = ?');
|
|
137
|
+
values.push(filters.status);
|
|
138
|
+
}
|
|
139
|
+
const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
140
|
+
return adapter.query(`SELECT * FROM requirements ${where} ORDER BY created_at ASC`, values);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Transition a requirement's status.
|
|
144
|
+
*/
|
|
145
|
+
export async function updateRequirementStatus(adapter, id, status) {
|
|
146
|
+
await adapter.query('UPDATE requirements SET status = ? WHERE id = ?', [status, id]);
|
|
147
|
+
}
|
|
148
|
+
// ---------------------------------------------------------------------------
|
|
149
|
+
// Constraint queries
|
|
150
|
+
// ---------------------------------------------------------------------------
|
|
151
|
+
/**
|
|
152
|
+
* Insert a new constraint record.
|
|
153
|
+
*/
|
|
154
|
+
export async function createConstraint(adapter, input) {
|
|
155
|
+
const validated = CreateConstraintInputSchema.parse(input);
|
|
156
|
+
const id = crypto.randomUUID();
|
|
157
|
+
await adapter.query(`INSERT INTO constraints (id, pipeline_run_id, category, description, source)
|
|
158
|
+
VALUES (?, ?, ?, ?, ?)`, [
|
|
159
|
+
id,
|
|
160
|
+
validated.pipeline_run_id ?? null,
|
|
161
|
+
validated.category,
|
|
162
|
+
validated.description,
|
|
163
|
+
validated.source,
|
|
164
|
+
]);
|
|
165
|
+
const rows = await adapter.query('SELECT * FROM constraints WHERE id = ?', [id]);
|
|
166
|
+
return rows[0];
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* List constraints with optional category filtering.
|
|
170
|
+
*/
|
|
171
|
+
export async function listConstraints(adapter, filters) {
|
|
172
|
+
if (filters?.category !== undefined) {
|
|
173
|
+
return adapter.query('SELECT * FROM constraints WHERE category = ? ORDER BY created_at ASC', [filters.category]);
|
|
174
|
+
}
|
|
175
|
+
return adapter.query('SELECT * FROM constraints ORDER BY created_at ASC');
|
|
176
|
+
}
|
|
177
|
+
// ---------------------------------------------------------------------------
|
|
178
|
+
// Artifact queries
|
|
179
|
+
// ---------------------------------------------------------------------------
|
|
180
|
+
/**
|
|
181
|
+
* Register a new artifact record.
|
|
182
|
+
*/
|
|
183
|
+
export async function registerArtifact(adapter, input) {
|
|
184
|
+
const validated = RegisterArtifactInputSchema.parse(input);
|
|
185
|
+
const id = crypto.randomUUID();
|
|
186
|
+
await adapter.query(`INSERT INTO artifacts (id, pipeline_run_id, phase, type, path, content_hash, summary)
|
|
187
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`, [
|
|
188
|
+
id,
|
|
189
|
+
validated.pipeline_run_id ?? null,
|
|
190
|
+
validated.phase,
|
|
191
|
+
validated.type,
|
|
192
|
+
validated.path,
|
|
193
|
+
validated.content_hash ?? null,
|
|
194
|
+
validated.summary ?? null,
|
|
195
|
+
]);
|
|
196
|
+
const rows = await adapter.query('SELECT * FROM artifacts WHERE id = ?', [id]);
|
|
197
|
+
return rows[0];
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Get all artifacts for a given phase, ordered by created_at ascending.
|
|
201
|
+
*/
|
|
202
|
+
export async function getArtifactsByPhase(adapter, phase) {
|
|
203
|
+
return adapter.query('SELECT * FROM artifacts WHERE phase = ? ORDER BY created_at ASC', [phase]);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Get the latest artifact of a given type for a given phase.
|
|
207
|
+
* Returns undefined if none found.
|
|
208
|
+
*/
|
|
209
|
+
export async function getArtifactByType(adapter, phase, type) {
|
|
210
|
+
const rows = await adapter.query('SELECT * FROM artifacts WHERE phase = ? AND type = ? ORDER BY created_at DESC, id DESC LIMIT 1', [phase, type]);
|
|
211
|
+
return rows[0];
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Get the latest artifact of a given type for a specific pipeline run.
|
|
215
|
+
* Filters by pipeline_run_id, phase, and type.
|
|
216
|
+
* Returns undefined if none found.
|
|
217
|
+
*/
|
|
218
|
+
export async function getArtifactByTypeForRun(adapter, runId, phase, type) {
|
|
219
|
+
const rows = await adapter.query('SELECT * FROM artifacts WHERE pipeline_run_id = ? AND phase = ? AND type = ? ORDER BY created_at DESC, id DESC LIMIT 1', [runId, phase, type]);
|
|
220
|
+
return rows[0];
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Get all artifacts registered for a specific pipeline run, ordered by created_at ascending.
|
|
224
|
+
*/
|
|
225
|
+
export async function getArtifactsByRun(adapter, runId) {
|
|
226
|
+
return adapter.query('SELECT * FROM artifacts WHERE pipeline_run_id = ? ORDER BY created_at ASC', [runId]);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Get a pipeline run by its ID. Returns undefined if not found.
|
|
230
|
+
*/
|
|
231
|
+
export async function getPipelineRunById(adapter, id) {
|
|
232
|
+
const rows = await adapter.query('SELECT * FROM pipeline_runs WHERE id = ?', [id]);
|
|
233
|
+
return rows[0];
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Update a pipeline run's config_json field.
|
|
237
|
+
*/
|
|
238
|
+
export async function updatePipelineRunConfig(adapter, id, configJson) {
|
|
239
|
+
await adapter.query('UPDATE pipeline_runs SET config_json = ?, updated_at = ? WHERE id = ?', [configJson, new Date().toISOString(), id]);
|
|
240
|
+
}
|
|
241
|
+
// ---------------------------------------------------------------------------
|
|
242
|
+
// Pipeline run queries
|
|
243
|
+
// ---------------------------------------------------------------------------
|
|
244
|
+
/**
|
|
245
|
+
* Create a new pipeline run with status = 'running'.
|
|
246
|
+
*/
|
|
247
|
+
export async function createPipelineRun(adapter, input) {
|
|
248
|
+
const validated = CreatePipelineRunInputSchema.parse(input);
|
|
249
|
+
const id = crypto.randomUUID();
|
|
250
|
+
// Explicitly set timestamps as UTC ISO strings. Dolt's CURRENT_TIMESTAMP
|
|
251
|
+
// returns local time (unlike SQLite which returns UTC), causing
|
|
252
|
+
// parseDbTimestampAsUtc to misinterpret freshly created rows as hours-old
|
|
253
|
+
// when the machine is not in UTC. This fix ensures all timestamps are UTC.
|
|
254
|
+
const nowUtc = new Date().toISOString();
|
|
255
|
+
await adapter.query(`INSERT INTO pipeline_runs (id, methodology, current_phase, status, config_json, created_at, updated_at)
|
|
256
|
+
VALUES (?, ?, ?, 'running', ?, ?, ?)`, [
|
|
257
|
+
id,
|
|
258
|
+
validated.methodology,
|
|
259
|
+
validated.start_phase ?? null,
|
|
260
|
+
validated.config_json ?? null,
|
|
261
|
+
nowUtc,
|
|
262
|
+
nowUtc,
|
|
263
|
+
]);
|
|
264
|
+
const rows = await adapter.query('SELECT * FROM pipeline_runs WHERE id = ?', [id]);
|
|
265
|
+
return rows[0];
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Update a pipeline run's current_phase, status, and/or token_usage_json.
|
|
269
|
+
*/
|
|
270
|
+
export async function updatePipelineRun(adapter, id, updates) {
|
|
271
|
+
const setClauses = [];
|
|
272
|
+
const values = [];
|
|
273
|
+
if (updates.current_phase !== undefined) {
|
|
274
|
+
setClauses.push('current_phase = ?');
|
|
275
|
+
values.push(updates.current_phase);
|
|
276
|
+
}
|
|
277
|
+
if (updates.status !== undefined) {
|
|
278
|
+
setClauses.push('status = ?');
|
|
279
|
+
values.push(updates.status);
|
|
280
|
+
}
|
|
281
|
+
if (updates.token_usage_json !== undefined) {
|
|
282
|
+
setClauses.push('token_usage_json = ?');
|
|
283
|
+
values.push(updates.token_usage_json);
|
|
284
|
+
}
|
|
285
|
+
if (setClauses.length === 0)
|
|
286
|
+
return;
|
|
287
|
+
setClauses.push('updated_at = ?');
|
|
288
|
+
values.push(new Date().toISOString());
|
|
289
|
+
values.push(id);
|
|
290
|
+
await adapter.query(`UPDATE pipeline_runs SET ${setClauses.join(', ')} WHERE id = ?`, values);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Get all pipeline runs with status = 'running'.
|
|
294
|
+
*/
|
|
295
|
+
export async function getRunningPipelineRuns(adapter) {
|
|
296
|
+
return adapter.query("SELECT * FROM pipeline_runs WHERE status = 'running'");
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Get the most recently created pipeline run. Returns undefined if none found.
|
|
300
|
+
*/
|
|
301
|
+
export async function getLatestRun(adapter) {
|
|
302
|
+
const rows = await adapter.query('SELECT * FROM pipeline_runs ORDER BY created_at DESC, id DESC LIMIT 1');
|
|
303
|
+
return rows[0];
|
|
304
|
+
}
|
|
305
|
+
// ---------------------------------------------------------------------------
|
|
306
|
+
// Token usage queries
|
|
307
|
+
// ---------------------------------------------------------------------------
|
|
308
|
+
/**
|
|
309
|
+
* Append a token usage record for a pipeline run.
|
|
310
|
+
*/
|
|
311
|
+
export async function addTokenUsage(adapter, runId, usage) {
|
|
312
|
+
const validated = AddTokenUsageInputSchema.parse(usage);
|
|
313
|
+
await adapter.query(`INSERT INTO token_usage (pipeline_run_id, phase, agent, input_tokens, output_tokens, cost_usd, metadata)
|
|
314
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`, [
|
|
315
|
+
runId,
|
|
316
|
+
validated.phase,
|
|
317
|
+
validated.agent,
|
|
318
|
+
validated.input_tokens,
|
|
319
|
+
validated.output_tokens,
|
|
320
|
+
validated.cost_usd,
|
|
321
|
+
validated.metadata ?? null,
|
|
322
|
+
]);
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Aggregate token usage by phase and agent for a given pipeline run.
|
|
326
|
+
*/
|
|
327
|
+
export async function getTokenUsageSummary(adapter, runId) {
|
|
328
|
+
return adapter.query(`SELECT
|
|
329
|
+
phase,
|
|
330
|
+
agent,
|
|
331
|
+
SUM(input_tokens) AS total_input_tokens,
|
|
332
|
+
SUM(output_tokens) AS total_output_tokens,
|
|
333
|
+
SUM(cost_usd) AS total_cost_usd
|
|
334
|
+
FROM token_usage
|
|
335
|
+
WHERE pipeline_run_id = ?
|
|
336
|
+
GROUP BY phase, agent
|
|
337
|
+
ORDER BY phase ASC, agent ASC`, [runId]);
|
|
338
|
+
}
|
|
339
|
+
//# sourceMappingURL=decisions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decisions.js","sourceRoot":"","sources":["../../../src/persistence/queries/decisions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metrics query functions for the persistence layer.
|
|
3
|
+
*
|
|
4
|
+
* Provides CRUD operations for run_metrics and story_metrics tables (Story 17-2).
|
|
5
|
+
*
|
|
6
|
+
* All functions are async and accept a DatabaseAdapter, making them
|
|
7
|
+
* compatible with both the SqliteDatabaseAdapter and DoltDatabaseAdapter.
|
|
8
|
+
*/
|
|
9
|
+
import type { DatabaseAdapter } from '../types.js';
|
|
10
|
+
export interface RunMetricsInput {
|
|
11
|
+
run_id: string;
|
|
12
|
+
methodology: string;
|
|
13
|
+
status: string;
|
|
14
|
+
started_at: string;
|
|
15
|
+
completed_at?: string;
|
|
16
|
+
wall_clock_seconds?: number;
|
|
17
|
+
total_input_tokens?: number;
|
|
18
|
+
total_output_tokens?: number;
|
|
19
|
+
total_cost_usd?: number;
|
|
20
|
+
stories_attempted?: number;
|
|
21
|
+
stories_succeeded?: number;
|
|
22
|
+
stories_failed?: number;
|
|
23
|
+
stories_escalated?: number;
|
|
24
|
+
total_review_cycles?: number;
|
|
25
|
+
total_dispatches?: number;
|
|
26
|
+
concurrency_setting?: number;
|
|
27
|
+
max_concurrent_actual?: number;
|
|
28
|
+
restarts?: number;
|
|
29
|
+
is_baseline?: number;
|
|
30
|
+
}
|
|
31
|
+
export interface RunMetricsRow extends Required<RunMetricsInput> {
|
|
32
|
+
created_at: string;
|
|
33
|
+
}
|
|
34
|
+
export interface StoryMetricsInput {
|
|
35
|
+
run_id: string;
|
|
36
|
+
story_key: string;
|
|
37
|
+
result: string;
|
|
38
|
+
phase_durations_json?: string;
|
|
39
|
+
started_at?: string;
|
|
40
|
+
completed_at?: string;
|
|
41
|
+
wall_clock_seconds?: number;
|
|
42
|
+
input_tokens?: number;
|
|
43
|
+
output_tokens?: number;
|
|
44
|
+
cost_usd?: number;
|
|
45
|
+
review_cycles?: number;
|
|
46
|
+
dispatches?: number;
|
|
47
|
+
primary_agent_id?: string;
|
|
48
|
+
primary_model?: string;
|
|
49
|
+
dispatch_agents_json?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface StoryMetricsRow extends Required<StoryMetricsInput> {
|
|
52
|
+
id: number;
|
|
53
|
+
created_at: string;
|
|
54
|
+
}
|
|
55
|
+
export interface TokenAggregate {
|
|
56
|
+
input: number;
|
|
57
|
+
output: number;
|
|
58
|
+
cost: number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Write or update run-level metrics.
|
|
62
|
+
*
|
|
63
|
+
* Uses a portable delete-then-insert pattern inside a transaction to work on
|
|
64
|
+
* both SQLite/WASM and Dolt/MySQL. When a row already exists, the `restarts`
|
|
65
|
+
* and `is_baseline` values are preserved from the existing row (so any
|
|
66
|
+
* `incrementRunRestarts()` calls made by the supervisor between the caller's
|
|
67
|
+
* read and this write are not silently overwritten).
|
|
68
|
+
*/
|
|
69
|
+
export declare function writeRunMetrics(adapter: DatabaseAdapter, input: RunMetricsInput): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Get run metrics for a specific run.
|
|
72
|
+
*/
|
|
73
|
+
export declare function getRunMetrics(adapter: DatabaseAdapter, runId: string): Promise<RunMetricsRow | undefined>;
|
|
74
|
+
/**
|
|
75
|
+
* List the most recent N run metrics rows, newest first.
|
|
76
|
+
*/
|
|
77
|
+
export declare function listRunMetrics(adapter: DatabaseAdapter, limit?: number): Promise<RunMetricsRow[]>;
|
|
78
|
+
/**
|
|
79
|
+
* Tag a run as the baseline (clears any existing baseline first).
|
|
80
|
+
*/
|
|
81
|
+
export declare function tagRunAsBaseline(adapter: DatabaseAdapter, runId: string): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Get the current baseline run metrics (if any).
|
|
84
|
+
*/
|
|
85
|
+
export declare function getBaselineRunMetrics(adapter: DatabaseAdapter): Promise<RunMetricsRow | undefined>;
|
|
86
|
+
/**
|
|
87
|
+
* Increment the restart count for a run by 1.
|
|
88
|
+
* Called by the supervisor each time it successfully restarts the pipeline.
|
|
89
|
+
* If the run_id does not yet exist in run_metrics, a placeholder row is
|
|
90
|
+
* inserted so the restart count is not lost — writeRunMetrics will overwrite
|
|
91
|
+
* all other fields when the run reaches a terminal state.
|
|
92
|
+
*
|
|
93
|
+
* Uses a portable select-then-update/insert pattern inside a transaction to
|
|
94
|
+
* work on both SQLite/WASM and Dolt/MySQL.
|
|
95
|
+
*/
|
|
96
|
+
export declare function incrementRunRestarts(adapter: DatabaseAdapter, runId: string): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Write or update story-level metrics.
|
|
99
|
+
*
|
|
100
|
+
* Uses a portable delete-then-insert pattern inside a transaction to work on
|
|
101
|
+
* both SQLite/WASM and Dolt/MySQL. When a row already exists, the `started_at`
|
|
102
|
+
* value is preserved from the existing row if the new value is null.
|
|
103
|
+
*/
|
|
104
|
+
export declare function writeStoryMetrics(adapter: DatabaseAdapter, input: StoryMetricsInput): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Get all story metrics for a given run.
|
|
107
|
+
*/
|
|
108
|
+
export declare function getStoryMetricsForRun(adapter: DatabaseAdapter, runId: string): Promise<StoryMetricsRow[]>;
|
|
109
|
+
export interface RunMetricsDelta {
|
|
110
|
+
run_id_a: string;
|
|
111
|
+
run_id_b: string;
|
|
112
|
+
token_input_delta: number;
|
|
113
|
+
token_output_delta: number;
|
|
114
|
+
/** null when the base run had 0 input tokens (change is undefined/infinite) */
|
|
115
|
+
token_input_pct: number | null;
|
|
116
|
+
/** null when the base run had 0 output tokens */
|
|
117
|
+
token_output_pct: number | null;
|
|
118
|
+
wall_clock_delta_seconds: number;
|
|
119
|
+
/** null when the base run had 0 wall-clock seconds */
|
|
120
|
+
wall_clock_pct: number | null;
|
|
121
|
+
review_cycles_delta: number;
|
|
122
|
+
/** null when the base run had 0 review cycles */
|
|
123
|
+
review_cycles_pct: number | null;
|
|
124
|
+
cost_delta: number;
|
|
125
|
+
/** null when the base run had 0 cost */
|
|
126
|
+
cost_pct: number | null;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Compare two runs and return percentage deltas for key numeric fields.
|
|
130
|
+
* Positive deltas mean run B is larger/longer than run A.
|
|
131
|
+
* Returns null if either run does not exist.
|
|
132
|
+
*/
|
|
133
|
+
export declare function compareRunMetrics(adapter: DatabaseAdapter, runIdA: string, runIdB: string): Promise<RunMetricsDelta | null>;
|
|
134
|
+
export interface RunSummaryForSupervisor {
|
|
135
|
+
run: RunMetricsRow;
|
|
136
|
+
stories: StoryMetricsRow[];
|
|
137
|
+
baseline: RunMetricsRow | undefined;
|
|
138
|
+
token_vs_baseline_pct: number | null;
|
|
139
|
+
review_cycles_vs_baseline_pct: number | null;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Fetch a full run summary for consumption by the supervisor agent (AC5).
|
|
143
|
+
* Includes per-story metrics and baseline delta percentages.
|
|
144
|
+
*/
|
|
145
|
+
export declare function getRunSummaryForSupervisor(adapter: DatabaseAdapter, runId: string): Promise<RunSummaryForSupervisor | null>;
|
|
146
|
+
/**
|
|
147
|
+
* Aggregate token usage from the token_usage table for a pipeline run.
|
|
148
|
+
*/
|
|
149
|
+
export declare function aggregateTokenUsageForRun(adapter: DatabaseAdapter, runId: string): Promise<TokenAggregate>;
|
|
150
|
+
/**
|
|
151
|
+
* Aggregate token usage for a specific story within a pipeline run.
|
|
152
|
+
* Matches rows where the metadata JSON contains the given storyKey.
|
|
153
|
+
*/
|
|
154
|
+
export declare function aggregateTokenUsageForStory(adapter: DatabaseAdapter, runId: string, storyKey: string): Promise<TokenAggregate>;
|
|
155
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/persistence/queries/metrics.ts"],"names":[],"mappings":"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"}
|