@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,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version utility functions for config and task graph format versioning.
|
|
3
|
+
*
|
|
4
|
+
* Provides pure utility functions for parsing, comparing, and formatting
|
|
5
|
+
* version strings used in config and task graph format versioning (FR60, NFR12).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Parse an integer version string into a number.
|
|
9
|
+
*
|
|
10
|
+
* @param version - A string like "1", "2", "10"
|
|
11
|
+
* @returns The integer value
|
|
12
|
+
* @throws {ConfigError} if the string is not a valid positive integer version
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseVersion(version: string): number;
|
|
15
|
+
/**
|
|
16
|
+
* Check whether a version string is in a list of supported versions.
|
|
17
|
+
*
|
|
18
|
+
* @param version - Version string to check
|
|
19
|
+
* @param supported - List of supported version strings
|
|
20
|
+
* @returns true if version is in the supported list
|
|
21
|
+
*/
|
|
22
|
+
export declare function isVersionSupported(version: string, supported: readonly string[]): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Return the next integer version string.
|
|
25
|
+
*
|
|
26
|
+
* @param version - Current version string like "1"
|
|
27
|
+
* @returns Next version string like "2"
|
|
28
|
+
*/
|
|
29
|
+
export declare function getNextVersion(version: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Format the standard "unsupported version" error message.
|
|
32
|
+
*
|
|
33
|
+
* @param formatType - 'config' or 'task_graph'
|
|
34
|
+
* @param version - The unsupported version string found
|
|
35
|
+
* @param supported - List of supported version strings
|
|
36
|
+
* @returns Formatted error message string
|
|
37
|
+
*/
|
|
38
|
+
export declare function formatUnsupportedVersionError(formatType: 'config' | 'task_graph', version: string, supported: readonly string[]): string;
|
|
39
|
+
//# sourceMappingURL=version-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-utils.d.ts","sourceRoot":"","sources":["../../src/config/version-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA0BpD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAEzF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,QAAQ,GAAG,YAAY,EACnC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,MAAM,CAaR"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version utility functions for config and task graph format versioning.
|
|
3
|
+
*
|
|
4
|
+
* Provides pure utility functions for parsing, comparing, and formatting
|
|
5
|
+
* version strings used in config and task graph format versioning (FR60, NFR12).
|
|
6
|
+
*/
|
|
7
|
+
import { ConfigError } from './errors.js';
|
|
8
|
+
/**
|
|
9
|
+
* Parse an integer version string into a number.
|
|
10
|
+
*
|
|
11
|
+
* @param version - A string like "1", "2", "10"
|
|
12
|
+
* @returns The integer value
|
|
13
|
+
* @throws {ConfigError} if the string is not a valid positive integer version
|
|
14
|
+
*/
|
|
15
|
+
export function parseVersion(version) {
|
|
16
|
+
if (version === '' || version === null || version === undefined) {
|
|
17
|
+
throw new ConfigError(`Invalid version string: "${version}". Version must be a positive integer string (e.g. "1", "2").`, { version });
|
|
18
|
+
}
|
|
19
|
+
// Must be a string of digits only (no dots, no signs, no decimals)
|
|
20
|
+
if (!/^\d+$/.test(version)) {
|
|
21
|
+
throw new ConfigError(`Invalid version string: "${version}". Version must be a positive integer string (e.g. "1", "2").`, { version });
|
|
22
|
+
}
|
|
23
|
+
const num = parseInt(version, 10);
|
|
24
|
+
if (num <= 0) {
|
|
25
|
+
throw new ConfigError(`Invalid version string: "${version}". Version must be a positive integer (greater than 0).`, { version });
|
|
26
|
+
}
|
|
27
|
+
return num;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Check whether a version string is in a list of supported versions.
|
|
31
|
+
*
|
|
32
|
+
* @param version - Version string to check
|
|
33
|
+
* @param supported - List of supported version strings
|
|
34
|
+
* @returns true if version is in the supported list
|
|
35
|
+
*/
|
|
36
|
+
export function isVersionSupported(version, supported) {
|
|
37
|
+
return supported.includes(version);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Return the next integer version string.
|
|
41
|
+
*
|
|
42
|
+
* @param version - Current version string like "1"
|
|
43
|
+
* @returns Next version string like "2"
|
|
44
|
+
*/
|
|
45
|
+
export function getNextVersion(version) {
|
|
46
|
+
return String(parseInt(version, 10) + 1);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Format the standard "unsupported version" error message.
|
|
50
|
+
*
|
|
51
|
+
* @param formatType - 'config' or 'task_graph'
|
|
52
|
+
* @param version - The unsupported version string found
|
|
53
|
+
* @param supported - List of supported version strings
|
|
54
|
+
* @returns Formatted error message string
|
|
55
|
+
*/
|
|
56
|
+
export function formatUnsupportedVersionError(formatType, version, supported) {
|
|
57
|
+
if (formatType === 'config') {
|
|
58
|
+
return (`Configuration format version "${version}" is not supported. ` +
|
|
59
|
+
`This toolkit supports: ${supported.join(', ')}. ` +
|
|
60
|
+
`Please upgrade the toolkit: npm install -g substrate@latest`);
|
|
61
|
+
}
|
|
62
|
+
return (`Task graph format version "${version}" is not supported. ` +
|
|
63
|
+
`This toolkit supports: ${supported.join(', ')}. ` +
|
|
64
|
+
`Please upgrade the toolkit: npm install -g substrate@latest`);
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=version-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-utils.js","sourceRoot":"","sources":["../../src/config/version-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAChE,MAAM,IAAI,WAAW,CACnB,4BAA4B,OAAO,+DAA+D,EAClG,EAAE,OAAO,EAAE,CACZ,CAAA;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,WAAW,CACnB,4BAA4B,OAAO,+DAA+D,EAClG,EAAE,OAAO,EAAE,CACZ,CAAA;IACH,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAEjC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,WAAW,CACnB,4BAA4B,OAAO,yDAAyD,EAC5F,EAAE,OAAO,EAAE,CACZ,CAAA;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,SAA4B;IAC9E,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B,CAC3C,UAAmC,EACnC,OAAe,EACf,SAA4B;IAE5B,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,CACL,iCAAiC,OAAO,sBAAsB;YAC9D,0BAA0B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAClD,6DAA6D,CAC9D,CAAA;IACH,CAAC;IACD,OAAO,CACL,8BAA8B,OAAO,sBAAsB;QAC3D,0BAA0B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QAClD,6DAA6D,CAC9D,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types and Zod schemas for the context-compiler module.
|
|
3
|
+
*
|
|
4
|
+
* Provides all data structures used to describe task descriptors,
|
|
5
|
+
* context templates, section definitions, store queries, and compile results.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
export declare const StoreQuerySchema: z.ZodObject<{
|
|
9
|
+
table: z.ZodEnum<{
|
|
10
|
+
decisions: "decisions";
|
|
11
|
+
requirements: "requirements";
|
|
12
|
+
constraints: "constraints";
|
|
13
|
+
artifacts: "artifacts";
|
|
14
|
+
}>;
|
|
15
|
+
filters: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
export type StoreQuery = z.infer<typeof StoreQuerySchema>;
|
|
18
|
+
export declare const TemplateSectionSchema: z.ZodObject<{
|
|
19
|
+
name: z.ZodString;
|
|
20
|
+
priority: z.ZodEnum<{
|
|
21
|
+
optional: "optional";
|
|
22
|
+
required: "required";
|
|
23
|
+
important: "important";
|
|
24
|
+
}>;
|
|
25
|
+
query: z.ZodObject<{
|
|
26
|
+
table: z.ZodEnum<{
|
|
27
|
+
decisions: "decisions";
|
|
28
|
+
requirements: "requirements";
|
|
29
|
+
constraints: "constraints";
|
|
30
|
+
artifacts: "artifacts";
|
|
31
|
+
}>;
|
|
32
|
+
filters: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
format: z.ZodCustom<(items: unknown[]) => string, (items: unknown[]) => string>;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
export type TemplateSection = z.infer<typeof TemplateSectionSchema>;
|
|
37
|
+
export declare const ContextTemplateSchema: z.ZodObject<{
|
|
38
|
+
taskType: z.ZodString;
|
|
39
|
+
sections: z.ZodArray<z.ZodObject<{
|
|
40
|
+
name: z.ZodString;
|
|
41
|
+
priority: z.ZodEnum<{
|
|
42
|
+
optional: "optional";
|
|
43
|
+
required: "required";
|
|
44
|
+
important: "important";
|
|
45
|
+
}>;
|
|
46
|
+
query: z.ZodObject<{
|
|
47
|
+
table: z.ZodEnum<{
|
|
48
|
+
decisions: "decisions";
|
|
49
|
+
requirements: "requirements";
|
|
50
|
+
constraints: "constraints";
|
|
51
|
+
artifacts: "artifacts";
|
|
52
|
+
}>;
|
|
53
|
+
filters: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
54
|
+
}, z.core.$strip>;
|
|
55
|
+
format: z.ZodCustom<(items: unknown[]) => string, (items: unknown[]) => string>;
|
|
56
|
+
}, z.core.$strip>>;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
export type ContextTemplate = z.infer<typeof ContextTemplateSchema>;
|
|
59
|
+
export declare const TaskDescriptorSchema: z.ZodObject<{
|
|
60
|
+
taskType: z.ZodString;
|
|
61
|
+
pipelineRunId: z.ZodString;
|
|
62
|
+
tokenBudget: z.ZodNumber;
|
|
63
|
+
overrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
64
|
+
}, z.core.$strip>;
|
|
65
|
+
export type TaskDescriptor = z.infer<typeof TaskDescriptorSchema>;
|
|
66
|
+
export declare const SectionReportSchema: z.ZodObject<{
|
|
67
|
+
name: z.ZodString;
|
|
68
|
+
priority: z.ZodString;
|
|
69
|
+
tokens: z.ZodNumber;
|
|
70
|
+
included: z.ZodBoolean;
|
|
71
|
+
truncated: z.ZodBoolean;
|
|
72
|
+
}, z.core.$strip>;
|
|
73
|
+
export type SectionReport = z.infer<typeof SectionReportSchema>;
|
|
74
|
+
export declare const CompileResultSchema: z.ZodObject<{
|
|
75
|
+
prompt: z.ZodString;
|
|
76
|
+
tokenCount: z.ZodNumber;
|
|
77
|
+
sections: z.ZodArray<z.ZodObject<{
|
|
78
|
+
name: z.ZodString;
|
|
79
|
+
priority: z.ZodString;
|
|
80
|
+
tokens: z.ZodNumber;
|
|
81
|
+
included: z.ZodBoolean;
|
|
82
|
+
truncated: z.ZodBoolean;
|
|
83
|
+
}, z.core.$strip>>;
|
|
84
|
+
truncated: z.ZodBoolean;
|
|
85
|
+
}, z.core.$strip>;
|
|
86
|
+
export type CompileResult = z.infer<typeof CompileResultSchema>;
|
|
87
|
+
/**
|
|
88
|
+
* ContextCompiler — public interface for the context-compiler module.
|
|
89
|
+
*
|
|
90
|
+
* Defines the contract that all context compiler implementations must satisfy.
|
|
91
|
+
*/
|
|
92
|
+
export interface ContextCompiler {
|
|
93
|
+
/**
|
|
94
|
+
* Compile a minimal prompt from the decision store for the given task
|
|
95
|
+
* descriptor. Returns a CompileResult containing the assembled prompt,
|
|
96
|
+
* its token count, per-section reports, and a flag indicating whether
|
|
97
|
+
* any sections were truncated or omitted.
|
|
98
|
+
*
|
|
99
|
+
* @throws {Error} if no template is registered for `descriptor.taskType`
|
|
100
|
+
*/
|
|
101
|
+
compile(descriptor: TaskDescriptor): Promise<CompileResult>;
|
|
102
|
+
/**
|
|
103
|
+
* Register a context template for a given task type. Overwrites any
|
|
104
|
+
* previously registered template for the same task type.
|
|
105
|
+
*/
|
|
106
|
+
registerTemplate(template: ContextTemplate): void;
|
|
107
|
+
/**
|
|
108
|
+
* Retrieve the registered template for a task type.
|
|
109
|
+
* Returns `undefined` if no template has been registered for that type.
|
|
110
|
+
*/
|
|
111
|
+
getTemplate(taskType: string): ContextTemplate | undefined;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,gBAAgB;;;;;;;;iBAG3B,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAMzD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;gCAIP,OAAO,EAAE,KAAK,MAAM,UAApB,OAAO,EAAE,KAAK,MAAM;iBAC7C,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAMnE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;oCARP,OAAO,EAAE,KAAK,MAAM,UAApB,OAAO,EAAE,KAAK,MAAM;;iBAW7C,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAMnE,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAMjE,eAAO,MAAM,mBAAmB;;;;;;iBAM9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAM/D,eAAO,MAAM,mBAAmB;;;;;;;;;;;iBAK9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAM/D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IAE3D;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;IAEjD;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAA;CAC3D"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types and Zod schemas for the context-compiler module.
|
|
3
|
+
*
|
|
4
|
+
* Provides all data structures used to describe task descriptors,
|
|
5
|
+
* context templates, section definitions, store queries, and compile results.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// StoreQuery
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
export const StoreQuerySchema = z.object({
|
|
12
|
+
table: z.enum(['decisions', 'requirements', 'constraints', 'artifacts']),
|
|
13
|
+
filters: z.record(z.string(), z.union([z.string(), z.array(z.string())])),
|
|
14
|
+
});
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
// TemplateSection
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
export const TemplateSectionSchema = z.object({
|
|
19
|
+
name: z.string().min(1),
|
|
20
|
+
priority: z.enum(['required', 'important', 'optional']),
|
|
21
|
+
query: StoreQuerySchema,
|
|
22
|
+
format: z.custom((val) => typeof val === 'function'),
|
|
23
|
+
});
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// ContextTemplate
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
export const ContextTemplateSchema = z.object({
|
|
28
|
+
taskType: z.string().min(1),
|
|
29
|
+
sections: z.array(TemplateSectionSchema),
|
|
30
|
+
});
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// TaskDescriptor
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
export const TaskDescriptorSchema = z.object({
|
|
35
|
+
taskType: z.string().min(1),
|
|
36
|
+
pipelineRunId: z.string().min(1),
|
|
37
|
+
tokenBudget: z.number().int().positive(),
|
|
38
|
+
overrides: z.record(z.string(), z.string()).optional(),
|
|
39
|
+
});
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
// SectionReport
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
export const SectionReportSchema = z.object({
|
|
44
|
+
name: z.string(),
|
|
45
|
+
priority: z.string(),
|
|
46
|
+
tokens: z.number().int().min(0),
|
|
47
|
+
included: z.boolean(),
|
|
48
|
+
truncated: z.boolean(),
|
|
49
|
+
});
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
// CompileResult
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
export const CompileResultSchema = z.object({
|
|
54
|
+
prompt: z.string(),
|
|
55
|
+
tokenCount: z.number().int().min(0),
|
|
56
|
+
sections: z.array(SectionReportSchema),
|
|
57
|
+
truncated: z.boolean(),
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CostTrackerImpl — concrete implementation of the CostTracker interface.
|
|
3
|
+
* Migrated to @substrate-ai/core (Story 41-7)
|
|
4
|
+
*/
|
|
5
|
+
import type { DatabaseAdapter } from '../persistence/types.js';
|
|
6
|
+
import type { TypedEventBus, CoreEvents } from '../events/index.js';
|
|
7
|
+
import type { CostEntry, TaskCostSummary, SessionCostSummary } from './types.js';
|
|
8
|
+
import type { TokenRates } from './token-rates.js';
|
|
9
|
+
import type { ILogger } from '../dispatch/types.js';
|
|
10
|
+
export interface CostTracker {
|
|
11
|
+
recordTaskCost(sessionId: string, taskId: string, agentUsed: string, providerUsed: string, modelUsed: string, tokensInput: number, tokensOutput: number, billingMode: 'subscription' | 'api'): Promise<CostEntry>;
|
|
12
|
+
getTaskCost(taskId: string): Promise<TaskCostSummary>;
|
|
13
|
+
getSessionCost(sessionId: string): Promise<SessionCostSummary>;
|
|
14
|
+
getAgentCostBreakdown(sessionId: string, agent: string): Promise<{
|
|
15
|
+
cost_usd: number;
|
|
16
|
+
task_count: number;
|
|
17
|
+
billing_breakdown: {
|
|
18
|
+
subscription: number;
|
|
19
|
+
api: number;
|
|
20
|
+
};
|
|
21
|
+
}>;
|
|
22
|
+
getAllCosts(sessionId: string, limit?: number): Promise<CostEntry[]>;
|
|
23
|
+
}
|
|
24
|
+
export declare class CostTrackerImpl implements CostTracker {
|
|
25
|
+
private readonly _db;
|
|
26
|
+
private readonly _eventBus;
|
|
27
|
+
private readonly _tokenRates;
|
|
28
|
+
private readonly _logger;
|
|
29
|
+
constructor(db: DatabaseAdapter, eventBus: TypedEventBus<CoreEvents>, tokenRates: TokenRates, logger?: ILogger);
|
|
30
|
+
recordTaskCost(sessionId: string, taskId: string, agentUsed: string, providerUsed: string, modelUsed: string, tokensInput: number, tokensOutput: number, billingMode: 'subscription' | 'api'): Promise<CostEntry>;
|
|
31
|
+
getTaskCost(taskId: string): Promise<TaskCostSummary>;
|
|
32
|
+
getSessionCost(sessionId: string): Promise<SessionCostSummary>;
|
|
33
|
+
getAgentCostBreakdown(sessionId: string, agent: string): Promise<{
|
|
34
|
+
cost_usd: number;
|
|
35
|
+
task_count: number;
|
|
36
|
+
billing_breakdown: {
|
|
37
|
+
subscription: number;
|
|
38
|
+
api: number;
|
|
39
|
+
};
|
|
40
|
+
}>;
|
|
41
|
+
getAllCosts(sessionId: string, limit?: number): Promise<CostEntry[]>;
|
|
42
|
+
getTokenRate(provider: string, model: string): import("./token-rates.js").ModelRates | null;
|
|
43
|
+
}
|
|
44
|
+
export interface CostTrackerOptions {
|
|
45
|
+
db: DatabaseAdapter;
|
|
46
|
+
eventBus: TypedEventBus<CoreEvents>;
|
|
47
|
+
tokenRates?: TokenRates;
|
|
48
|
+
logger?: ILogger;
|
|
49
|
+
}
|
|
50
|
+
export declare function createCostTracker(options: CostTrackerOptions): CostTracker;
|
|
51
|
+
//# sourceMappingURL=cost-tracker-impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-tracker-impl.d.ts","sourceRoot":"","sources":["../../src/cost-tracker/cost-tracker-impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CostTrackerImpl — concrete implementation of the CostTracker interface.
|
|
3
|
+
* Migrated to @substrate-ai/core (Story 41-7)
|
|
4
|
+
*/
|
|
5
|
+
import { TOKEN_RATES, getTokenRate, estimateCostSafe } from './token-rates.js';
|
|
6
|
+
import { recordCostEntry, incrementTaskCost, getCostEntryById, getSessionCostSummary, getTaskCostSummary, getAgentCostBreakdown, getAllCostEntries, } from '../persistence/queries/cost.js';
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// CostTrackerImpl
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
export class CostTrackerImpl {
|
|
11
|
+
_db;
|
|
12
|
+
_eventBus;
|
|
13
|
+
_tokenRates;
|
|
14
|
+
_logger;
|
|
15
|
+
constructor(db, eventBus, tokenRates, logger) {
|
|
16
|
+
this._db = db;
|
|
17
|
+
this._eventBus = eventBus;
|
|
18
|
+
this._tokenRates = tokenRates;
|
|
19
|
+
this._logger = logger ?? console;
|
|
20
|
+
}
|
|
21
|
+
async recordTaskCost(sessionId, taskId, agentUsed, providerUsed, modelUsed, tokensInput, tokensOutput, billingMode) {
|
|
22
|
+
const equivalentApiCost = estimateCostSafe(providerUsed, modelUsed, tokensInput, tokensOutput, this._tokenRates);
|
|
23
|
+
const costUsd = billingMode === 'subscription' ? 0 : equivalentApiCost;
|
|
24
|
+
const savingsUsd = billingMode === 'subscription' ? equivalentApiCost : 0;
|
|
25
|
+
const insertedId = await this._db.transaction(async () => {
|
|
26
|
+
const newId = await recordCostEntry(this._db, {
|
|
27
|
+
session_id: sessionId,
|
|
28
|
+
task_id: taskId,
|
|
29
|
+
agent: agentUsed,
|
|
30
|
+
provider: providerUsed,
|
|
31
|
+
model: modelUsed,
|
|
32
|
+
billing_mode: billingMode,
|
|
33
|
+
tokens_input: tokensInput,
|
|
34
|
+
tokens_output: tokensOutput,
|
|
35
|
+
cost_usd: costUsd,
|
|
36
|
+
savings_usd: savingsUsd,
|
|
37
|
+
});
|
|
38
|
+
await incrementTaskCost(this._db, taskId, costUsd);
|
|
39
|
+
return newId;
|
|
40
|
+
});
|
|
41
|
+
if (!insertedId) {
|
|
42
|
+
throw new Error(`Cost entry insert failed: transaction returned id=${insertedId}`);
|
|
43
|
+
}
|
|
44
|
+
const entry = await getCostEntryById(this._db, insertedId);
|
|
45
|
+
if (!entry) {
|
|
46
|
+
throw new Error(`Cost entry not found after insert: id=${insertedId}`);
|
|
47
|
+
}
|
|
48
|
+
this._eventBus.emit('cost:recorded', {
|
|
49
|
+
taskId,
|
|
50
|
+
sessionId,
|
|
51
|
+
costUsd: entry.cost_usd,
|
|
52
|
+
savingsUsd: entry.savings_usd,
|
|
53
|
+
billingMode: entry.billing_mode,
|
|
54
|
+
});
|
|
55
|
+
this._logger.debug({ taskId, billingMode, costUsd: entry.cost_usd, savingsUsd: entry.savings_usd, tokensInput, tokensOutput }, 'Cost recorded');
|
|
56
|
+
return entry;
|
|
57
|
+
}
|
|
58
|
+
async getTaskCost(taskId) {
|
|
59
|
+
return getTaskCostSummary(this._db, taskId);
|
|
60
|
+
}
|
|
61
|
+
async getSessionCost(sessionId) {
|
|
62
|
+
return getSessionCostSummary(this._db, sessionId);
|
|
63
|
+
}
|
|
64
|
+
async getAgentCostBreakdown(sessionId, agent) {
|
|
65
|
+
const breakdown = await getAgentCostBreakdown(this._db, sessionId, agent);
|
|
66
|
+
return {
|
|
67
|
+
cost_usd: breakdown.cost_usd,
|
|
68
|
+
task_count: breakdown.task_count,
|
|
69
|
+
billing_breakdown: {
|
|
70
|
+
subscription: breakdown.subscription_tasks,
|
|
71
|
+
api: breakdown.api_tasks,
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
async getAllCosts(sessionId, limit) {
|
|
76
|
+
return getAllCostEntries(this._db, sessionId, limit);
|
|
77
|
+
}
|
|
78
|
+
getTokenRate(provider, model) {
|
|
79
|
+
return getTokenRate(provider, model, this._tokenRates);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
export function createCostTracker(options) {
|
|
83
|
+
return new CostTrackerImpl(options.db, options.eventBus, options.tokenRates ?? TOKEN_RATES, options.logger);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=cost-tracker-impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-tracker-impl.js","sourceRoot":"","sources":["../../src/cost-tracker/cost-tracker-impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CostTrackerSubscriber — subscribes to task lifecycle events and records
|
|
3
|
+
* cost data via the CostTracker module.
|
|
4
|
+
* Migrated to @substrate-ai/core (Story 41-7)
|
|
5
|
+
*/
|
|
6
|
+
import type { IBaseService } from '../types.js';
|
|
7
|
+
import type { TypedEventBus, CoreEvents } from '../events/index.js';
|
|
8
|
+
import type { CostTracker } from './cost-tracker-impl.js';
|
|
9
|
+
import type { ILogger } from '../dispatch/types.js';
|
|
10
|
+
export declare class CostTrackerSubscriber implements IBaseService {
|
|
11
|
+
private readonly _eventBus;
|
|
12
|
+
private readonly _costTracker;
|
|
13
|
+
private readonly _routingCache;
|
|
14
|
+
private _defaultSessionId;
|
|
15
|
+
private readonly _logger;
|
|
16
|
+
private readonly _onTaskRouted;
|
|
17
|
+
private readonly _onTaskComplete;
|
|
18
|
+
private readonly _onTaskFailed;
|
|
19
|
+
constructor(eventBus: TypedEventBus<CoreEvents>, costTracker: CostTracker, sessionId?: string, logger?: ILogger);
|
|
20
|
+
setDefaultSessionId(sessionId: string): void;
|
|
21
|
+
initialize(): Promise<void>;
|
|
22
|
+
shutdown(): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
export interface CostTrackerSubscriberOptions {
|
|
25
|
+
eventBus: TypedEventBus<CoreEvents>;
|
|
26
|
+
costTracker: CostTracker;
|
|
27
|
+
sessionId?: string;
|
|
28
|
+
logger?: ILogger;
|
|
29
|
+
}
|
|
30
|
+
export declare function createCostTrackerSubscriber(options: CostTrackerSubscriberOptions): CostTrackerSubscriber;
|
|
31
|
+
//# sourceMappingURL=cost-tracker-subscriber.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-tracker-subscriber.d.ts","sourceRoot":"","sources":["../../src/cost-tracker/cost-tracker-subscriber.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAkBnD,qBAAa,qBAAsB,YAAW,YAAY;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAa;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoC;IAClE,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CASpB;IAEV,OAAO,CAAC,QAAQ,CAAC,eAAe,CAQtB;IAEV,OAAO,CAAC,QAAQ,CAAC,aAAa,CAGpB;gBAEE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;IA2F/G,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAItC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAOhC;AAuBD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACnC,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,4BAA4B,GAAG,qBAAqB,CAExG"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CostTrackerSubscriber — subscribes to task lifecycle events and records
|
|
3
|
+
* cost data via the CostTracker module.
|
|
4
|
+
* Migrated to @substrate-ai/core (Story 41-7)
|
|
5
|
+
*/
|
|
6
|
+
import { PROVIDER_ALIASES } from './token-rates.js';
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// CostTrackerSubscriber
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
export class CostTrackerSubscriber {
|
|
11
|
+
_eventBus;
|
|
12
|
+
_costTracker;
|
|
13
|
+
_routingCache = new Map();
|
|
14
|
+
_defaultSessionId;
|
|
15
|
+
_logger;
|
|
16
|
+
_onTaskRouted;
|
|
17
|
+
_onTaskComplete;
|
|
18
|
+
_onTaskFailed;
|
|
19
|
+
constructor(eventBus, costTracker, sessionId, logger) {
|
|
20
|
+
this._eventBus = eventBus;
|
|
21
|
+
this._costTracker = costTracker;
|
|
22
|
+
this._defaultSessionId = sessionId ?? 'default';
|
|
23
|
+
this._logger = logger ?? console;
|
|
24
|
+
this._onTaskRouted = (payload) => {
|
|
25
|
+
const { taskId, decision } = payload;
|
|
26
|
+
if (decision.billingMode === 'unavailable') {
|
|
27
|
+
this._logger.debug({ taskId }, 'Billing mode is "unavailable" — skipping cost tracking for unrouted task');
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const billingMode = decision.billingMode === 'subscription' ? 'subscription' : 'api';
|
|
31
|
+
const provider = resolveProviderFromAgent(decision.agent);
|
|
32
|
+
const model = decision.model ?? resolveDefaultModel(decision.agent);
|
|
33
|
+
this._routingCache.set(taskId, {
|
|
34
|
+
sessionId: this._defaultSessionId,
|
|
35
|
+
agent: decision.agent,
|
|
36
|
+
provider,
|
|
37
|
+
model,
|
|
38
|
+
billingMode,
|
|
39
|
+
});
|
|
40
|
+
this._logger.debug({ taskId, billingMode, provider, model }, 'Cached routing context for cost tracking');
|
|
41
|
+
};
|
|
42
|
+
this._onTaskComplete = (payload) => {
|
|
43
|
+
const { taskId, result } = payload;
|
|
44
|
+
const routing = this._routingCache.get(taskId);
|
|
45
|
+
if (!routing) {
|
|
46
|
+
this._logger.debug({ taskId }, 'No routing context cached — skipping cost recording');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const totalTokens = result.tokensUsed ?? 0;
|
|
50
|
+
const tokensInput = Math.round(totalTokens * 0.25);
|
|
51
|
+
const tokensOutput = totalTokens - tokensInput;
|
|
52
|
+
try {
|
|
53
|
+
this._costTracker.recordTaskCost(routing.sessionId, taskId, routing.agent, routing.provider, routing.model, tokensInput, tokensOutput, routing.billingMode);
|
|
54
|
+
this._logger.debug({ taskId, billingMode: routing.billingMode }, 'Cost recorded on task:complete');
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
this._logger.warn({ err, taskId }, 'Failed to record cost on task:complete (non-fatal)');
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
this._routingCache.delete(taskId);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
this._onTaskFailed = (payload) => {
|
|
64
|
+
const { taskId } = payload;
|
|
65
|
+
const routing = this._routingCache.get(taskId);
|
|
66
|
+
if (!routing) {
|
|
67
|
+
this._logger.debug({ taskId }, 'No routing context cached for failed task — skipping cost recording');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
this._costTracker.recordTaskCost(routing.sessionId, taskId, routing.agent, routing.provider, routing.model, 0, 0, routing.billingMode);
|
|
72
|
+
this._logger.debug({ taskId }, 'Zero-cost entry recorded for failed task');
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
this._logger.warn({ err, taskId }, 'Failed to record cost on task:failed (non-fatal)');
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
this._routingCache.delete(taskId);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
setDefaultSessionId(sessionId) {
|
|
83
|
+
this._defaultSessionId = sessionId;
|
|
84
|
+
}
|
|
85
|
+
async initialize() {
|
|
86
|
+
this._eventBus.on('task:routed', this._onTaskRouted);
|
|
87
|
+
this._eventBus.on('task:complete', this._onTaskComplete);
|
|
88
|
+
this._eventBus.on('task:failed', this._onTaskFailed);
|
|
89
|
+
this._logger.info('CostTrackerSubscriber initialized — subscribed to task events');
|
|
90
|
+
}
|
|
91
|
+
async shutdown() {
|
|
92
|
+
this._eventBus.off('task:routed', this._onTaskRouted);
|
|
93
|
+
this._eventBus.off('task:complete', this._onTaskComplete);
|
|
94
|
+
this._eventBus.off('task:failed', this._onTaskFailed);
|
|
95
|
+
this._routingCache.clear();
|
|
96
|
+
this._logger.info('CostTrackerSubscriber shutdown complete');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// ---------------------------------------------------------------------------
|
|
100
|
+
// Helpers
|
|
101
|
+
// ---------------------------------------------------------------------------
|
|
102
|
+
function resolveProviderFromAgent(agent) {
|
|
103
|
+
return PROVIDER_ALIASES[agent.toLowerCase()] ?? agent.toLowerCase();
|
|
104
|
+
}
|
|
105
|
+
function resolveDefaultModel(agent) {
|
|
106
|
+
const defaults = {
|
|
107
|
+
claude: 'claude-3-sonnet',
|
|
108
|
+
codex: 'gpt-4o',
|
|
109
|
+
gemini: 'gemini-1.5-pro',
|
|
110
|
+
};
|
|
111
|
+
return defaults[agent.toLowerCase()] ?? agent.toLowerCase();
|
|
112
|
+
}
|
|
113
|
+
export function createCostTrackerSubscriber(options) {
|
|
114
|
+
return new CostTrackerSubscriber(options.eventBus, options.costTracker, options.sessionId, options.logger);
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=cost-tracker-subscriber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-tracker-subscriber.js","sourceRoot":"","sources":["../../src/cost-tracker/cost-tracker-subscriber.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cost-tracker module barrel export — @substrate-ai/core (Story 41-7)
|
|
3
|
+
*/
|
|
4
|
+
export type { CostTracker, CostTrackerOptions } from './cost-tracker-impl.js';
|
|
5
|
+
export { CostTrackerImpl, createCostTracker } from './cost-tracker-impl.js';
|
|
6
|
+
export { CostTrackerSubscriber, createCostTrackerSubscriber } from './cost-tracker-subscriber.js';
|
|
7
|
+
export type { CostTrackerSubscriberOptions } from './cost-tracker-subscriber.js';
|
|
8
|
+
export type { CostEntry, TaskCostSummary, SessionCostSummary, AgentCostBreakdown, } from './types.js';
|
|
9
|
+
export type { TokenRates, ModelRates } from './token-rates.js';
|
|
10
|
+
export { TOKEN_RATES, PROVIDER_ALIASES, getTokenRate, estimateCost, estimateCostSafe, } from './token-rates.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cost-tracker/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC7E,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE3E,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAA;AACjG,YAAY,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAA;AAEhF,YAAY,EACV,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AAEnB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,gBAAgB,GACjB,MAAM,kBAAkB,CAAA"}
|