@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,323 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YAML extraction and parsing for sub-agent output.
|
|
3
|
+
*
|
|
4
|
+
* Sub-agents emit structured YAML at the END of their output. This module
|
|
5
|
+
* extracts and validates that YAML block regardless of surrounding narrative
|
|
6
|
+
* text, reasoning, or code fences.
|
|
7
|
+
*
|
|
8
|
+
* Extraction strategy:
|
|
9
|
+
* 1. Scan from the END of the output (YAML is always last per output contract)
|
|
10
|
+
* 2. Look for fenced YAML blocks (```yaml...```) first
|
|
11
|
+
* 3. Fall back to unfenced lines starting with known anchor keys
|
|
12
|
+
* 4. If multiple YAML blocks exist, take the LAST one
|
|
13
|
+
* 5. Parse with js-yaml and optionally validate with Zod schema
|
|
14
|
+
*/
|
|
15
|
+
import yaml from 'js-yaml';
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Known anchor keys that indicate the start of a YAML result block
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
const YAML_ANCHOR_KEYS = ['result:', 'verdict:', 'story_file:', 'expansion_priority:'];
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
// extractYamlBlock
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
/**
|
|
24
|
+
* Extract the YAML result block from sub-agent output.
|
|
25
|
+
*
|
|
26
|
+
* Scans from the end of the output looking for:
|
|
27
|
+
* - A fenced YAML block (```yaml...``` or ```...```)
|
|
28
|
+
* - An unfenced block starting with a known anchor key
|
|
29
|
+
*
|
|
30
|
+
* If multiple blocks are found, the LAST one is returned.
|
|
31
|
+
*
|
|
32
|
+
* @param output - Raw stdout from the sub-agent process
|
|
33
|
+
* @returns The raw YAML string, or null if no valid block is found
|
|
34
|
+
*/
|
|
35
|
+
export function extractYamlBlock(output) {
|
|
36
|
+
if (!output || output.trim() === '') {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
// Try fenced blocks first — scan all occurrences and take last
|
|
40
|
+
const fencedResult = extractLastFencedYaml(output);
|
|
41
|
+
if (fencedResult !== null) {
|
|
42
|
+
return fencedResult;
|
|
43
|
+
}
|
|
44
|
+
// Fall back to unfenced YAML starting with a known anchor key.
|
|
45
|
+
// First, strip any trailing markdown fence that may be wrapping the YAML
|
|
46
|
+
// (LLMs frequently emit ```yaml\n...\n``` even when told not to).
|
|
47
|
+
const stripped = stripTrailingFence(output);
|
|
48
|
+
const unfenced = extractUnfencedYaml(stripped);
|
|
49
|
+
if (unfenced !== null) {
|
|
50
|
+
return unfenced;
|
|
51
|
+
}
|
|
52
|
+
// Fall back to JSON extraction — some backends (e.g., Codex with --json)
|
|
53
|
+
// emit structured JSON objects instead of YAML. Try to find a JSON object
|
|
54
|
+
// containing anchor keys and convert it to YAML for downstream parsing.
|
|
55
|
+
return extractJsonAsYaml(output);
|
|
56
|
+
}
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// Internal helpers
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
/**
|
|
61
|
+
* Strip a trailing markdown fence that wraps the entire remaining output.
|
|
62
|
+
* Handles: "```yaml\nverdict: ...\n```" → "verdict: ..."
|
|
63
|
+
*/
|
|
64
|
+
function stripTrailingFence(output) {
|
|
65
|
+
const trimmed = output.trimEnd();
|
|
66
|
+
if (!trimmed.endsWith('```'))
|
|
67
|
+
return output;
|
|
68
|
+
// Walk backwards past the closing fence
|
|
69
|
+
const body = trimmed.slice(0, -3).trimEnd();
|
|
70
|
+
// Find the opening fence — it must be the last ``` or ```yaml line before the body
|
|
71
|
+
const lastOpen = body.lastIndexOf('```');
|
|
72
|
+
if (lastOpen === -1)
|
|
73
|
+
return output;
|
|
74
|
+
// Verify the opening fence is on its own line (possibly with "yaml" suffix)
|
|
75
|
+
const beforeFence = body.slice(0, lastOpen);
|
|
76
|
+
const fenceLine = body.slice(lastOpen);
|
|
77
|
+
if (beforeFence.length > 0 && !beforeFence.endsWith('\n'))
|
|
78
|
+
return output;
|
|
79
|
+
// Strip the opening fence line
|
|
80
|
+
const afterOpen = fenceLine.replace(/^```(?:yaml)?\s*\n?/, '');
|
|
81
|
+
return beforeFence + afterOpen;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Find all fenced YAML blocks (```yaml...``` or ```...```) and return the last one.
|
|
85
|
+
*/
|
|
86
|
+
function extractLastFencedYaml(output) {
|
|
87
|
+
// Match fenced blocks: ```yaml\n...\n``` or ```\n...\n```
|
|
88
|
+
const fencePattern = /```(?:yaml)?\s*\n([\s\S]*?)```/g;
|
|
89
|
+
let lastMatch = null;
|
|
90
|
+
let match;
|
|
91
|
+
while ((match = fencePattern.exec(output)) !== null) {
|
|
92
|
+
const content = match[1];
|
|
93
|
+
if (content !== undefined && content.trim() !== '' && containsAnchorKey(content)) {
|
|
94
|
+
lastMatch = content.trim();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return lastMatch;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Find unfenced YAML by scanning from the END of the output for anchor keys.
|
|
101
|
+
*
|
|
102
|
+
* Collects all contiguous YAML-like lines from the last anchor key occurrence.
|
|
103
|
+
*/
|
|
104
|
+
function extractUnfencedYaml(output) {
|
|
105
|
+
const lines = output.split('\n');
|
|
106
|
+
// Scan from end to find the last anchor key occurrence
|
|
107
|
+
let anchorLineIdx = -1;
|
|
108
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
109
|
+
const line = lines[i];
|
|
110
|
+
if (line !== undefined && isAnchorLine(line)) {
|
|
111
|
+
anchorLineIdx = i;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (anchorLineIdx === -1) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
// Collect lines from the anchor to the end (or until a non-YAML line)
|
|
119
|
+
const yamlLines = [];
|
|
120
|
+
for (let i = anchorLineIdx; i < lines.length; i++) {
|
|
121
|
+
const line = lines[i];
|
|
122
|
+
if (line !== undefined) {
|
|
123
|
+
yamlLines.push(line);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
const yamlText = yamlLines.join('\n').trim();
|
|
127
|
+
return yamlText !== '' ? yamlText : null;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Try to extract a JSON object from the output and convert it to YAML.
|
|
131
|
+
*
|
|
132
|
+
* Scans for JSON objects (delimited by { ... }) that contain at least one
|
|
133
|
+
* anchor key. Tries the last such object. Converts via yaml.dump so
|
|
134
|
+
* downstream parseYamlResult can validate it with the same Zod schema.
|
|
135
|
+
*/
|
|
136
|
+
function extractJsonAsYaml(output) {
|
|
137
|
+
// Find all top-level JSON object candidates (greedy { ... } blocks)
|
|
138
|
+
const jsonPattern = /\{[\s\S]*?\n\}/g;
|
|
139
|
+
let lastJsonObj = null;
|
|
140
|
+
let match;
|
|
141
|
+
while ((match = jsonPattern.exec(output)) !== null) {
|
|
142
|
+
const candidate = match[0];
|
|
143
|
+
// Quick check: must contain at least one anchor key
|
|
144
|
+
if (!YAML_ANCHOR_KEYS.some((key) => candidate.includes(key.replace(':', '')))) {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
try {
|
|
148
|
+
const parsed = JSON.parse(candidate);
|
|
149
|
+
if (typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)) {
|
|
150
|
+
lastJsonObj = parsed;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
// Not valid JSON, skip
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (lastJsonObj === null) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
// Convert to YAML string for parseYamlResult
|
|
161
|
+
try {
|
|
162
|
+
return yaml.dump(lastJsonObj, { lineWidth: -1 });
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Check if a line starts with one of the known anchor keys.
|
|
170
|
+
*/
|
|
171
|
+
function isAnchorLine(line) {
|
|
172
|
+
const trimmed = line.trim();
|
|
173
|
+
return YAML_ANCHOR_KEYS.some((key) => trimmed.startsWith(key));
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Check if text content contains at least one anchor key.
|
|
177
|
+
*/
|
|
178
|
+
function containsAnchorKey(content) {
|
|
179
|
+
return YAML_ANCHOR_KEYS.some((key) => content.includes(key));
|
|
180
|
+
}
|
|
181
|
+
// ---------------------------------------------------------------------------
|
|
182
|
+
// Duplicate key merging
|
|
183
|
+
// ---------------------------------------------------------------------------
|
|
184
|
+
/**
|
|
185
|
+
* Merge duplicate top-level YAML keys by concatenating their array values.
|
|
186
|
+
*
|
|
187
|
+
* LLMs sometimes emit the same mapping key twice, splitting a list across two
|
|
188
|
+
* blocks (e.g., `non_functional_requirements:` appears twice, each with
|
|
189
|
+
* different items). This violates YAML 1.2 but is recoverable: we detect
|
|
190
|
+
* duplicate top-level keys and merge their children into a single key.
|
|
191
|
+
*
|
|
192
|
+
* Only operates on top-level keys (no indentation). Nested duplicates are not
|
|
193
|
+
* handled — they're rare in practice and harder to fix safely.
|
|
194
|
+
*/
|
|
195
|
+
function mergeDuplicateYamlKeys(yamlText) {
|
|
196
|
+
const lines = yamlText.split('\n');
|
|
197
|
+
const sections = [];
|
|
198
|
+
let current = null;
|
|
199
|
+
for (const line of lines) {
|
|
200
|
+
// Top-level key: starts at column 0, ends with ':'
|
|
201
|
+
const keyMatch = line.match(/^([a-zA-Z_][a-zA-Z0-9_]*):\s*(.*)$/);
|
|
202
|
+
if (keyMatch) {
|
|
203
|
+
const key = keyMatch[1];
|
|
204
|
+
const rest = keyMatch[2].trim();
|
|
205
|
+
// If the rest is non-empty and not a comment, it's an inline value (scalar)
|
|
206
|
+
// — still start a new section for it
|
|
207
|
+
current = { key, lines: [line] };
|
|
208
|
+
sections.push(current);
|
|
209
|
+
// Skip merging for inline scalar values (e.g., `result: success`)
|
|
210
|
+
if (rest.length > 0 && !rest.startsWith('#')) {
|
|
211
|
+
current = null;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
else if (current) {
|
|
215
|
+
current.lines.push(line);
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
// Lines before any key or after an inline scalar — emit as-is
|
|
219
|
+
sections.push({ key: '', lines: [line] });
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// Find duplicates and merge
|
|
223
|
+
const seen = new Map();
|
|
224
|
+
const merged = [];
|
|
225
|
+
for (const section of sections) {
|
|
226
|
+
if (section.key === '') {
|
|
227
|
+
merged.push(section);
|
|
228
|
+
continue;
|
|
229
|
+
}
|
|
230
|
+
const existing = seen.get(section.key);
|
|
231
|
+
if (existing !== undefined) {
|
|
232
|
+
// Merge: append the child lines (skip the key line itself)
|
|
233
|
+
const target = merged[existing];
|
|
234
|
+
target.lines.push(...section.lines.slice(1));
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
seen.set(section.key, merged.length);
|
|
238
|
+
merged.push(section);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return merged.flatMap((s) => s.lines).join('\n');
|
|
242
|
+
}
|
|
243
|
+
// ---------------------------------------------------------------------------
|
|
244
|
+
// parseYamlResult
|
|
245
|
+
// ---------------------------------------------------------------------------
|
|
246
|
+
/**
|
|
247
|
+
* Parse a YAML string and optionally validate it against a Zod schema.
|
|
248
|
+
*
|
|
249
|
+
* @param yamlText - Raw YAML string to parse
|
|
250
|
+
* @param schema - Optional Zod schema for validation
|
|
251
|
+
* @returns Object with parsed result and optional error
|
|
252
|
+
*/
|
|
253
|
+
export function parseYamlResult(yamlText, schema) {
|
|
254
|
+
let raw;
|
|
255
|
+
try {
|
|
256
|
+
raw = yaml.load(sanitizeYamlEscapes(yamlText));
|
|
257
|
+
}
|
|
258
|
+
catch (err) {
|
|
259
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
260
|
+
// LLMs sometimes emit the same top-level key twice (e.g., listing items
|
|
261
|
+
// under `non_functional_requirements:` in two separate blocks). Attempt
|
|
262
|
+
// to merge duplicate keys before giving up.
|
|
263
|
+
if (message.includes('duplicated mapping key')) {
|
|
264
|
+
try {
|
|
265
|
+
raw = yaml.load(sanitizeYamlEscapes(mergeDuplicateYamlKeys(yamlText)));
|
|
266
|
+
}
|
|
267
|
+
catch {
|
|
268
|
+
return { parsed: null, error: `YAML parse error: ${message}` };
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
return { parsed: null, error: `YAML parse error: ${message}` };
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
if (raw === null || raw === undefined) {
|
|
276
|
+
return { parsed: null, error: 'YAML parsed to null or undefined' };
|
|
277
|
+
}
|
|
278
|
+
if (schema === undefined) {
|
|
279
|
+
// No schema — return the raw parsed value
|
|
280
|
+
return { parsed: raw, error: null };
|
|
281
|
+
}
|
|
282
|
+
// Validate with Zod schema
|
|
283
|
+
const result = schema.safeParse(raw);
|
|
284
|
+
if (result.success) {
|
|
285
|
+
return { parsed: result.data, error: null };
|
|
286
|
+
}
|
|
287
|
+
return {
|
|
288
|
+
parsed: null,
|
|
289
|
+
error: `Schema validation error: ${result.error.message}`,
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
// ---------------------------------------------------------------------------
|
|
293
|
+
// YAML escape sanitization
|
|
294
|
+
// ---------------------------------------------------------------------------
|
|
295
|
+
/**
|
|
296
|
+
* Valid YAML escape sequences in double-quoted strings (YAML 1.2 spec).
|
|
297
|
+
* Any backslash followed by a character NOT in this set is invalid.
|
|
298
|
+
*/
|
|
299
|
+
const VALID_YAML_ESCAPES = new Set([
|
|
300
|
+
'0', 'a', 'b', 't', '\t', 'n', 'v', 'f', 'r', 'e', ' ', '"', '/',
|
|
301
|
+
'\\', 'N', '_', 'L', 'P', 'x', 'u', 'U',
|
|
302
|
+
]);
|
|
303
|
+
/**
|
|
304
|
+
* Sanitize invalid backslash escape sequences in YAML double-quoted strings.
|
|
305
|
+
*
|
|
306
|
+
* LLMs frequently emit invalid escapes like `\$` or `\#` inside double-quoted
|
|
307
|
+
* YAML values (e.g., `vi.mock('\$lib/types/review')`). js-yaml rejects these.
|
|
308
|
+
* This function strips the backslash from invalid sequences, turning `\$` → `$`.
|
|
309
|
+
*
|
|
310
|
+
* Only operates within double-quoted string regions to avoid corrupting
|
|
311
|
+
* single-quoted strings, block scalars, or unquoted values.
|
|
312
|
+
*/
|
|
313
|
+
function sanitizeYamlEscapes(yamlText) {
|
|
314
|
+
// Process each line — only fix invalid escapes inside double-quoted segments
|
|
315
|
+
return yamlText.replace(/"(?:[^"\\]|\\.)*"/g, (match) => {
|
|
316
|
+
return match.replace(/\\(.)/g, (esc, ch) => {
|
|
317
|
+
if (VALID_YAML_ESCAPES.has(ch))
|
|
318
|
+
return esc; // valid escape, keep it
|
|
319
|
+
return ch; // invalid escape like \$ → just the character
|
|
320
|
+
});
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=yaml-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml-parser.js","sourceRoot":"","sources":["../../src/dispatch/yaml-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAA;AAG1B,8EAA8E;AAC9E,mEAAmE;AACnE,8EAA8E;AAE9E,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAA;AAEtF,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACpC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,+DAA+D;IAC/D,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAClD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,+DAA+D;IAC/D,yEAAyE;IACzE,kEAAkE;IAClE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC9C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,wEAAwE;IACxE,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAA;AAClC,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;IAChC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAA;IAC3C,wCAAwC;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;IAC3C,mFAAmF;IACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACxC,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,MAAM,CAAA;IAClC,4EAA4E;IAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACtC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAA;IACxE,+BAA+B;IAC/B,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;IAC9D,OAAO,WAAW,GAAG,SAAS,CAAA;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,MAAc;IAC3C,0DAA0D;IAC1D,MAAM,YAAY,GAAG,iCAAiC,CAAA;IAEtD,IAAI,SAAS,GAAkB,IAAI,CAAA;IACnC,IAAI,KAA6B,CAAA;IAEjC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YACjF,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,MAAc;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEhC,uDAAuD;IACvD,IAAI,aAAa,GAAG,CAAC,CAAC,CAAA;IAEtB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,IAAI,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,aAAa,GAAG,CAAC,CAAA;YACjB,MAAK;QACP,CAAC;IACH,CAAC;IAED,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,sEAAsE;IACtE,MAAM,SAAS,GAAa,EAAE,CAAA;IAE9B,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IAC5C,OAAO,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,MAAc;IACvC,oEAAoE;IACpE,MAAM,WAAW,GAAG,iBAAiB,CAAA;IACrC,IAAI,WAAW,GAAmC,IAAI,CAAA;IACtD,IAAI,KAA6B,CAAA;IAEjC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAC1B,oDAAoD;QACpD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,SAAQ;QACV,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACpC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,WAAW,GAAG,MAAiC,CAAA;YACjD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IAED,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,6CAA6C;IAC7C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3B,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AAChE,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACxC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;AAC9D,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E;;;;;;;;;;GAUG;AACH,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,QAAQ,GAAuC,EAAE,CAAA;IACvD,IAAI,OAAO,GAA4C,IAAI,CAAA;IAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,mDAAmD;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACjE,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAA;YACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAA;YAChC,4EAA4E;YAC5E,qCAAqC;YACrC,OAAO,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAA;YAChC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAEtB,kEAAkE;YAClE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7C,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;aAAM,CAAC;YACN,8DAA8D;YAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAA;IACtC,MAAM,MAAM,GAAoB,EAAE,CAAA;IAElC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACpB,SAAQ;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,2DAA2D;YAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAE,CAAA;YAChC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YACpC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClD,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,MAAqB;IAErB,IAAI,GAAY,CAAA;IAEhB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAChE,wEAAwE;QACxE,wEAAwE;QACxE,4CAA4C;QAC5C,IAAI,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACxE,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,OAAO,EAAE,EAAE,CAAA;YAChE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,OAAO,EAAE,EAAE,CAAA;QAChE,CAAC;IACH,CAAC;IAED,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAA;IACpE,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,0CAA0C;QAC1C,OAAO,EAAE,MAAM,EAAE,GAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAC1C,CAAC;IAED,2BAA2B;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAC7C,CAAC;IAED,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,4BAA4B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;KAC1D,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAChE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CACxC,CAAC,CAAA;AAEF;;;;;;;;;GASG;AACH,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,6EAA6E;IAC7E,OAAO,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE;QACtD,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAU,EAAE,EAAE;YACjD,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,OAAO,GAAG,CAAA,CAAE,wBAAwB;YACpE,OAAO,EAAE,CAAA,CAAE,8CAA8C;QAC3D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CoreEvents — typed event map for all core infrastructure events.
|
|
3
|
+
*
|
|
4
|
+
* Contains all events that are NOT SDLC-specific (no orchestrator:story-*, plan:*,
|
|
5
|
+
* solutioning:*, story:*, pipeline:* events). Those belong in SdlcEvents.
|
|
6
|
+
*
|
|
7
|
+
* Payload shapes are copied verbatim from src/core/event-bus.types.ts (monolith source).
|
|
8
|
+
*/
|
|
9
|
+
import type { SubstrateConfig } from '../config/types.js';
|
|
10
|
+
import type { RoutingDecision } from '../routing/routing-decision.js';
|
|
11
|
+
/** Unique task identifier */
|
|
12
|
+
export type TaskId = string;
|
|
13
|
+
/** Unique worker identifier */
|
|
14
|
+
export type WorkerId = string;
|
|
15
|
+
/** Result of a completed task */
|
|
16
|
+
export interface EventTaskResult {
|
|
17
|
+
output?: string;
|
|
18
|
+
exitCode?: number;
|
|
19
|
+
tokensUsed?: number;
|
|
20
|
+
inputTokens?: number;
|
|
21
|
+
outputTokens?: number;
|
|
22
|
+
durationMs?: number;
|
|
23
|
+
costUsd?: number;
|
|
24
|
+
agent?: string;
|
|
25
|
+
}
|
|
26
|
+
/** Error payload for a failed task */
|
|
27
|
+
export interface EventTaskError {
|
|
28
|
+
message: string;
|
|
29
|
+
code?: string;
|
|
30
|
+
stack?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Typed map of all core infrastructure events.
|
|
34
|
+
* SDLC-specific events (orchestrator:story-*, plan:*, solutioning:*, story:*, pipeline:*)
|
|
35
|
+
* are excluded and belong to SdlcEvents.
|
|
36
|
+
*/
|
|
37
|
+
export interface CoreEvents {
|
|
38
|
+
/** Task has all dependencies satisfied and is ready to be assigned */
|
|
39
|
+
'task:ready': {
|
|
40
|
+
taskId: TaskId;
|
|
41
|
+
taskType?: string;
|
|
42
|
+
};
|
|
43
|
+
/** A worker has begun execution of a task */
|
|
44
|
+
'task:started': {
|
|
45
|
+
taskId: TaskId;
|
|
46
|
+
workerId: WorkerId;
|
|
47
|
+
agent: string;
|
|
48
|
+
};
|
|
49
|
+
/** Incremental progress report from a running task */
|
|
50
|
+
'task:progress': {
|
|
51
|
+
taskId: TaskId;
|
|
52
|
+
message: string;
|
|
53
|
+
tokensUsed?: number;
|
|
54
|
+
};
|
|
55
|
+
/** Task has completed successfully */
|
|
56
|
+
'task:complete': {
|
|
57
|
+
taskId: TaskId;
|
|
58
|
+
result: EventTaskResult;
|
|
59
|
+
taskType?: string;
|
|
60
|
+
};
|
|
61
|
+
/** Task has failed with an error */
|
|
62
|
+
'task:failed': {
|
|
63
|
+
taskId: TaskId;
|
|
64
|
+
error: EventTaskError;
|
|
65
|
+
};
|
|
66
|
+
/** Task was cancelled */
|
|
67
|
+
'task:cancelled': {
|
|
68
|
+
taskId: TaskId;
|
|
69
|
+
reason: string;
|
|
70
|
+
};
|
|
71
|
+
/** Task is being retried after a failure */
|
|
72
|
+
'task:retrying': {
|
|
73
|
+
taskId: TaskId;
|
|
74
|
+
attempt: number;
|
|
75
|
+
maxAttempts: number;
|
|
76
|
+
};
|
|
77
|
+
/** A task has been routed to an agent with billing mode decision */
|
|
78
|
+
'task:routed': {
|
|
79
|
+
taskId: TaskId;
|
|
80
|
+
decision: RoutingDecision;
|
|
81
|
+
};
|
|
82
|
+
/** Budget cap has been set for a task */
|
|
83
|
+
'task:budget-set': {
|
|
84
|
+
taskId: TaskId;
|
|
85
|
+
budgetUsd: number;
|
|
86
|
+
};
|
|
87
|
+
/** A worker subprocess was spawned */
|
|
88
|
+
'worker:spawned': {
|
|
89
|
+
workerId: WorkerId;
|
|
90
|
+
taskId: TaskId;
|
|
91
|
+
agent: string;
|
|
92
|
+
};
|
|
93
|
+
/** A worker subprocess was terminated */
|
|
94
|
+
'worker:terminated': {
|
|
95
|
+
workerId: WorkerId;
|
|
96
|
+
reason: string;
|
|
97
|
+
};
|
|
98
|
+
/** Spending is approaching the configured budget limit */
|
|
99
|
+
'budget:warning': {
|
|
100
|
+
taskId: TaskId;
|
|
101
|
+
currentSpend: number;
|
|
102
|
+
limit: number;
|
|
103
|
+
};
|
|
104
|
+
/** Spending has exceeded the configured budget limit */
|
|
105
|
+
'budget:exceeded': {
|
|
106
|
+
taskId: TaskId;
|
|
107
|
+
spend: number;
|
|
108
|
+
limit: number;
|
|
109
|
+
};
|
|
110
|
+
/** Task is approaching its budget cap (80% threshold) */
|
|
111
|
+
'budget:warning:task': {
|
|
112
|
+
taskId: TaskId;
|
|
113
|
+
currentCostUsd: number;
|
|
114
|
+
budgetUsd: number;
|
|
115
|
+
percentageUsed: number;
|
|
116
|
+
};
|
|
117
|
+
/** Task has exceeded its budget cap — force-terminate worker */
|
|
118
|
+
'budget:exceeded:task': {
|
|
119
|
+
taskId: TaskId;
|
|
120
|
+
currentCostUsd: number;
|
|
121
|
+
budgetUsd: number;
|
|
122
|
+
};
|
|
123
|
+
/** Session-wide budget is approaching the cap (80% threshold) */
|
|
124
|
+
'budget:warning:session': {
|
|
125
|
+
sessionId: string;
|
|
126
|
+
currentCostUsd: number;
|
|
127
|
+
budgetUsd: number;
|
|
128
|
+
percentageUsed: number;
|
|
129
|
+
};
|
|
130
|
+
/** Session-wide budget has been exceeded — terminate all workers */
|
|
131
|
+
'session:budget:exceeded': {
|
|
132
|
+
sessionId: string;
|
|
133
|
+
currentCostUsd: number;
|
|
134
|
+
budgetUsd: number;
|
|
135
|
+
};
|
|
136
|
+
/** Budget cap has been set for a session */
|
|
137
|
+
'session:budget-set': {
|
|
138
|
+
sessionId: string;
|
|
139
|
+
budgetUsd: number;
|
|
140
|
+
};
|
|
141
|
+
/** A task graph has been loaded and validated */
|
|
142
|
+
'graph:loaded': {
|
|
143
|
+
sessionId: string;
|
|
144
|
+
taskCount: number;
|
|
145
|
+
readyCount: number;
|
|
146
|
+
};
|
|
147
|
+
/** All tasks in the graph have completed or failed */
|
|
148
|
+
'graph:complete': {
|
|
149
|
+
totalTasks: number;
|
|
150
|
+
completedTasks: number;
|
|
151
|
+
failedTasks: number;
|
|
152
|
+
totalCostUsd: number;
|
|
153
|
+
};
|
|
154
|
+
/** Graph execution was cancelled */
|
|
155
|
+
'graph:cancelled': {
|
|
156
|
+
cancelledTasks: number;
|
|
157
|
+
};
|
|
158
|
+
/** Graph execution was paused */
|
|
159
|
+
'graph:paused': Record<string, never>;
|
|
160
|
+
/** Graph execution was resumed */
|
|
161
|
+
'graph:resumed': Record<string, never>;
|
|
162
|
+
/** A git worktree was created for a task */
|
|
163
|
+
'worktree:created': {
|
|
164
|
+
taskId: TaskId;
|
|
165
|
+
branchName: string;
|
|
166
|
+
worktreePath: string;
|
|
167
|
+
createdAt?: Date;
|
|
168
|
+
};
|
|
169
|
+
/** A task's worktree branch was merged */
|
|
170
|
+
'worktree:merged': {
|
|
171
|
+
taskId: TaskId;
|
|
172
|
+
branch: string;
|
|
173
|
+
mergedFiles: string[];
|
|
174
|
+
};
|
|
175
|
+
/** A merge conflict was detected in a task's worktree */
|
|
176
|
+
'worktree:conflict': {
|
|
177
|
+
taskId: TaskId;
|
|
178
|
+
branch: string;
|
|
179
|
+
conflictingFiles: string[];
|
|
180
|
+
};
|
|
181
|
+
/** A task's worktree was removed */
|
|
182
|
+
'worktree:removed': {
|
|
183
|
+
taskId: TaskId;
|
|
184
|
+
branchName: string;
|
|
185
|
+
};
|
|
186
|
+
/** A task's cost has been recorded by the cost tracker */
|
|
187
|
+
'cost:recorded': {
|
|
188
|
+
taskId: string;
|
|
189
|
+
sessionId: string;
|
|
190
|
+
costUsd: number;
|
|
191
|
+
savingsUsd: number;
|
|
192
|
+
billingMode: 'subscription' | 'api';
|
|
193
|
+
};
|
|
194
|
+
/** A task's metrics have been recorded by the monitor */
|
|
195
|
+
'monitor:metrics_recorded': {
|
|
196
|
+
taskId: string;
|
|
197
|
+
agent: string;
|
|
198
|
+
taskType: string;
|
|
199
|
+
};
|
|
200
|
+
/** A routing recommendation has been generated by the monitor */
|
|
201
|
+
'monitor:recommendation_generated': {
|
|
202
|
+
taskType: string;
|
|
203
|
+
recommendedAgent: string;
|
|
204
|
+
confidence: number;
|
|
205
|
+
};
|
|
206
|
+
/** Configuration has been reloaded */
|
|
207
|
+
'config:reloaded': {
|
|
208
|
+
path: string;
|
|
209
|
+
previousConfig: SubstrateConfig;
|
|
210
|
+
newConfig: SubstrateConfig;
|
|
211
|
+
changedKeys: string[];
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* Emitted when a sub-agent dispatch is resolved to a specific model via RoutingResolver.
|
|
215
|
+
*/
|
|
216
|
+
'routing:model-selected': {
|
|
217
|
+
dispatchId: string;
|
|
218
|
+
taskType: string;
|
|
219
|
+
phase: string;
|
|
220
|
+
model: string;
|
|
221
|
+
source: 'phase' | 'override';
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* Emitted by RoutingTuner when it successfully applies an auto-tune downgrade.
|
|
225
|
+
*/
|
|
226
|
+
'routing:auto-tuned': {
|
|
227
|
+
runId: string;
|
|
228
|
+
phase: string;
|
|
229
|
+
oldModel: string;
|
|
230
|
+
newModel: string;
|
|
231
|
+
estimatedSavingsPct: number;
|
|
232
|
+
};
|
|
233
|
+
/** A provider has become unavailable */
|
|
234
|
+
'provider:unavailable': {
|
|
235
|
+
provider: string;
|
|
236
|
+
reason: 'rate_limit' | 'disabled';
|
|
237
|
+
resetAtMs?: number;
|
|
238
|
+
};
|
|
239
|
+
/** A provider has become available */
|
|
240
|
+
'provider:available': {
|
|
241
|
+
provider: string;
|
|
242
|
+
};
|
|
243
|
+
/** A newer version of the toolkit is available */
|
|
244
|
+
'version:update_available': {
|
|
245
|
+
currentVersion: string;
|
|
246
|
+
latestVersion: string;
|
|
247
|
+
breaking: boolean;
|
|
248
|
+
};
|
|
249
|
+
/** A sub-agent subprocess was spawned by the dispatch engine */
|
|
250
|
+
'agent:spawned': {
|
|
251
|
+
dispatchId: string;
|
|
252
|
+
agent: string;
|
|
253
|
+
taskType: string;
|
|
254
|
+
};
|
|
255
|
+
/** Incremental stdout data received from a running sub-agent */
|
|
256
|
+
'agent:output': {
|
|
257
|
+
dispatchId: string;
|
|
258
|
+
data: string;
|
|
259
|
+
};
|
|
260
|
+
/** A sub-agent completed successfully */
|
|
261
|
+
'agent:completed': {
|
|
262
|
+
dispatchId: string;
|
|
263
|
+
exitCode: number;
|
|
264
|
+
output: string;
|
|
265
|
+
/** Estimated input tokens (char-length heuristic) */
|
|
266
|
+
inputTokens?: number;
|
|
267
|
+
/** Estimated output tokens (char-length heuristic) */
|
|
268
|
+
outputTokens?: number;
|
|
269
|
+
};
|
|
270
|
+
/** A sub-agent exited with a non-zero code or encountered an error */
|
|
271
|
+
'agent:failed': {
|
|
272
|
+
dispatchId: string;
|
|
273
|
+
error: string;
|
|
274
|
+
exitCode: number;
|
|
275
|
+
};
|
|
276
|
+
/** A sub-agent was killed because it exceeded its timeout */
|
|
277
|
+
'agent:timeout': {
|
|
278
|
+
dispatchId: string;
|
|
279
|
+
timeoutMs: number;
|
|
280
|
+
};
|
|
281
|
+
/** Orchestrator has been fully initialized and is ready to process tasks */
|
|
282
|
+
'orchestrator:ready': Record<string, never>;
|
|
283
|
+
/** Orchestrator shutdown has been initiated */
|
|
284
|
+
'orchestrator:shutdown': {
|
|
285
|
+
reason: string;
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
//# sourceMappingURL=core-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-events.d.ts","sourceRoot":"","sources":["../../src/events/core-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CoreEvents — typed event map for all core infrastructure events.
|
|
3
|
+
*
|
|
4
|
+
* Contains all events that are NOT SDLC-specific (no orchestrator:story-*, plan:*,
|
|
5
|
+
* solutioning:*, story:*, pipeline:* events). Those belong in SdlcEvents.
|
|
6
|
+
*
|
|
7
|
+
* Payload shapes are copied verbatim from src/core/event-bus.types.ts (monolith source).
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=core-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-events.js","sourceRoot":"","sources":["../../src/events/core-events.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|