@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,347 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* git-utils.ts — Low-level git command helpers.
|
|
3
|
+
*
|
|
4
|
+
* All git commands are executed via child_process.spawn (not simple-git),
|
|
5
|
+
* as specified in ADR-007 (Git Worktree Management).
|
|
6
|
+
*
|
|
7
|
+
* Functions:
|
|
8
|
+
* - spawnGit: Execute git with given args, returns stdout/stderr/code
|
|
9
|
+
* - getGitVersion: Returns version string like "2.42.0"
|
|
10
|
+
* - parseGitVersion: Parses version string into { major, minor, patch }
|
|
11
|
+
* - isGitVersionSupported: Checks if version >= 2.20.0
|
|
12
|
+
* - verifyGitVersion: Throws if git not installed or < 2.20
|
|
13
|
+
* - createWorktree: Creates a worktree + branch
|
|
14
|
+
* - removeWorktree: Removes a worktree directory
|
|
15
|
+
* - removeBranch: Deletes a branch with git branch -D
|
|
16
|
+
* - getOrphanedWorktrees: Scans .substrate-worktrees/ and returns paths
|
|
17
|
+
* - simulateMerge: Runs git merge --no-commit --no-ff to detect conflicts
|
|
18
|
+
* - abortMerge: Runs git merge --abort to clean up a simulated merge
|
|
19
|
+
* - getConflictingFiles: Returns list of files with conflicts using git diff --name-only --diff-filter=U
|
|
20
|
+
* - performMerge: Runs git merge --no-ff to execute actual merge
|
|
21
|
+
* - getMergedFiles: Returns list of files changed in a merge using git diff --name-only
|
|
22
|
+
*/
|
|
23
|
+
import { spawn } from 'node:child_process';
|
|
24
|
+
import { readdir, access } from 'node:fs/promises';
|
|
25
|
+
import * as path from 'node:path';
|
|
26
|
+
// Minimum supported git version
|
|
27
|
+
const MIN_GIT_MAJOR = 2;
|
|
28
|
+
const MIN_GIT_MINOR = 20;
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// spawnGit
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
/**
|
|
33
|
+
* Spawn a git subprocess with the given args.
|
|
34
|
+
*
|
|
35
|
+
* @param args - Arguments to pass to git (e.g., ['worktree', 'add', ...])
|
|
36
|
+
* @param options - Optional spawn options (cwd, env)
|
|
37
|
+
* @returns - Object with stdout, stderr, and exit code
|
|
38
|
+
*/
|
|
39
|
+
export function spawnGit(args, options) {
|
|
40
|
+
return new Promise((resolve) => {
|
|
41
|
+
const proc = spawn('git', args, {
|
|
42
|
+
cwd: options?.cwd,
|
|
43
|
+
env: options?.env ?? process.env,
|
|
44
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
45
|
+
});
|
|
46
|
+
let stdout = '';
|
|
47
|
+
let stderr = '';
|
|
48
|
+
proc.stdout?.on('data', (chunk) => {
|
|
49
|
+
stdout += chunk.toString();
|
|
50
|
+
});
|
|
51
|
+
proc.stderr?.on('data', (chunk) => {
|
|
52
|
+
stderr += chunk.toString();
|
|
53
|
+
});
|
|
54
|
+
proc.on('close', (code) => {
|
|
55
|
+
resolve({ stdout: stdout.trim(), stderr: stderr.trim(), code: code ?? 1 });
|
|
56
|
+
});
|
|
57
|
+
proc.on('error', (err) => {
|
|
58
|
+
resolve({ stdout: '', stderr: err.message, code: 1 });
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
// getGitVersion
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
/**
|
|
66
|
+
* Get the installed git version string.
|
|
67
|
+
*
|
|
68
|
+
* @returns Version string like "2.42.0"
|
|
69
|
+
* @throws Error if git is not installed or version cannot be parsed
|
|
70
|
+
*/
|
|
71
|
+
export async function getGitVersion() {
|
|
72
|
+
const result = await spawnGit(['--version']);
|
|
73
|
+
if (result.code !== 0) {
|
|
74
|
+
throw new Error(`git --version failed: ${result.stderr}`);
|
|
75
|
+
}
|
|
76
|
+
// Output is like: "git version 2.42.0"
|
|
77
|
+
const match = /git version\s+(\d+\.\d+(?:\.\d+)?)/.exec(result.stdout);
|
|
78
|
+
if (match === null || match[1] === undefined) {
|
|
79
|
+
throw new Error(`Unable to parse git version from output: "${result.stdout}"`);
|
|
80
|
+
}
|
|
81
|
+
return match[1];
|
|
82
|
+
}
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
// parseGitVersion
|
|
85
|
+
// ---------------------------------------------------------------------------
|
|
86
|
+
/**
|
|
87
|
+
* Parse a git version string into major/minor/patch components.
|
|
88
|
+
*
|
|
89
|
+
* @param versionString - Version string like "2.42.0" or "2.20"
|
|
90
|
+
* @returns - Parsed version components
|
|
91
|
+
*/
|
|
92
|
+
export function parseGitVersion(versionString) {
|
|
93
|
+
const parts = versionString.split('.').map(Number);
|
|
94
|
+
return {
|
|
95
|
+
major: parts[0] ?? 0,
|
|
96
|
+
minor: parts[1] ?? 0,
|
|
97
|
+
patch: parts[2] ?? 0,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
// isGitVersionSupported
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
/**
|
|
104
|
+
* Check if the given git version string is >= 2.20.0.
|
|
105
|
+
*
|
|
106
|
+
* @param version - Version string like "2.42.0"
|
|
107
|
+
* @returns - true if version >= 2.20.0
|
|
108
|
+
*/
|
|
109
|
+
export function isGitVersionSupported(version) {
|
|
110
|
+
const { major, minor } = parseGitVersion(version);
|
|
111
|
+
if (major > MIN_GIT_MAJOR)
|
|
112
|
+
return true;
|
|
113
|
+
if (major === MIN_GIT_MAJOR && minor >= MIN_GIT_MINOR)
|
|
114
|
+
return true;
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
// ---------------------------------------------------------------------------
|
|
118
|
+
// verifyGitVersion
|
|
119
|
+
// ---------------------------------------------------------------------------
|
|
120
|
+
/**
|
|
121
|
+
* Verify that git is installed and version >= 2.20.
|
|
122
|
+
*
|
|
123
|
+
* @throws Error with clear message if git is not installed or too old
|
|
124
|
+
*/
|
|
125
|
+
export async function verifyGitVersion() {
|
|
126
|
+
let version;
|
|
127
|
+
try {
|
|
128
|
+
version = await getGitVersion();
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
throw new Error(`git is not installed or could not be executed. ` +
|
|
132
|
+
`Please install git 2.20 or newer. Details: ${String(err)}`);
|
|
133
|
+
}
|
|
134
|
+
if (!isGitVersionSupported(version)) {
|
|
135
|
+
const { major, minor, patch } = parseGitVersion(version);
|
|
136
|
+
throw new Error(`Git version ${major}.${minor}.${patch} is too old. ` +
|
|
137
|
+
`Substrate requires git 2.20 or newer. ` +
|
|
138
|
+
`Please upgrade git: https://git-scm.com/downloads`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// ---------------------------------------------------------------------------
|
|
142
|
+
// createWorktree
|
|
143
|
+
// ---------------------------------------------------------------------------
|
|
144
|
+
/**
|
|
145
|
+
* Create a git worktree and its associated branch.
|
|
146
|
+
*
|
|
147
|
+
* Uses a single `git worktree add {worktreePath} -b {branchName} {baseBranch}`
|
|
148
|
+
* command to create the worktree with a new branch in one step.
|
|
149
|
+
*
|
|
150
|
+
* @param projectRoot - Absolute path to the git repository root
|
|
151
|
+
* @param taskId - Task identifier (used in path derivation)
|
|
152
|
+
* @param branchName - Branch name to create (e.g., "substrate/task-abc123")
|
|
153
|
+
* @param baseBranch - Branch to base the worktree on (e.g., "main")
|
|
154
|
+
* @returns - Object with the worktreePath
|
|
155
|
+
* @throws - Error if git command fails
|
|
156
|
+
*/
|
|
157
|
+
export async function createWorktree(projectRoot, taskId, branchName, baseBranch) {
|
|
158
|
+
const worktreePath = path.join(projectRoot, '.substrate-worktrees', taskId);
|
|
159
|
+
// Create the worktree with a new branch based on baseBranch in one command
|
|
160
|
+
const addResult = await spawnGit(['worktree', 'add', worktreePath, '-b', branchName, baseBranch], { cwd: projectRoot });
|
|
161
|
+
if (addResult.code !== 0) {
|
|
162
|
+
throw new Error(`git worktree add failed for task "${taskId}": ${addResult.stderr || addResult.stdout}`);
|
|
163
|
+
}
|
|
164
|
+
return { worktreePath };
|
|
165
|
+
}
|
|
166
|
+
// ---------------------------------------------------------------------------
|
|
167
|
+
// removeWorktree
|
|
168
|
+
// ---------------------------------------------------------------------------
|
|
169
|
+
/**
|
|
170
|
+
* Remove a git worktree by path.
|
|
171
|
+
*
|
|
172
|
+
* Uses `git worktree remove --force` to handle unclean worktrees.
|
|
173
|
+
*
|
|
174
|
+
* @param worktreePath - Absolute path to the worktree directory
|
|
175
|
+
* @param projectRoot - Absolute path to the git repository root
|
|
176
|
+
* @throws - Error if git command fails
|
|
177
|
+
*/
|
|
178
|
+
export async function removeWorktree(worktreePath, projectRoot) {
|
|
179
|
+
const spawnOpts = {};
|
|
180
|
+
if (projectRoot !== undefined)
|
|
181
|
+
spawnOpts.cwd = projectRoot;
|
|
182
|
+
const result = await spawnGit(['worktree', 'remove', '--force', worktreePath], spawnOpts);
|
|
183
|
+
if (result.code !== 0) {
|
|
184
|
+
throw new Error(`git worktree remove failed for "${worktreePath}": ${result.stderr || result.stdout}`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
// removeBranch
|
|
189
|
+
// ---------------------------------------------------------------------------
|
|
190
|
+
/**
|
|
191
|
+
* Delete a git branch using `git branch -D`.
|
|
192
|
+
*
|
|
193
|
+
* @param branchName - Branch name to delete (e.g., "substrate/task-abc123")
|
|
194
|
+
* @param projectRoot - Absolute path to the git repository root
|
|
195
|
+
* @returns - true if branch was successfully deleted, false otherwise
|
|
196
|
+
*/
|
|
197
|
+
export async function removeBranch(branchName, projectRoot) {
|
|
198
|
+
const spawnOpts = {};
|
|
199
|
+
if (projectRoot !== undefined)
|
|
200
|
+
spawnOpts.cwd = projectRoot;
|
|
201
|
+
const result = await spawnGit(['branch', '-D', branchName], spawnOpts);
|
|
202
|
+
if (result.code !== 0) {
|
|
203
|
+
// Branch may not exist (e.g., worktree checkout failed earlier) — treat as warning not error
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
// ---------------------------------------------------------------------------
|
|
209
|
+
// getOrphanedWorktrees
|
|
210
|
+
// ---------------------------------------------------------------------------
|
|
211
|
+
/**
|
|
212
|
+
* Scan the worktrees base directory and return paths of all found worktree directories.
|
|
213
|
+
*
|
|
214
|
+
* @param projectRoot - Absolute path to the git repository root
|
|
215
|
+
* @param baseDirectory - Relative directory name for worktrees (default: '.substrate-worktrees')
|
|
216
|
+
* @returns - Array of absolute worktree directory paths
|
|
217
|
+
*/
|
|
218
|
+
export async function getOrphanedWorktrees(projectRoot, baseDirectory = '.substrate-worktrees') {
|
|
219
|
+
const worktreesDir = path.join(projectRoot, baseDirectory);
|
|
220
|
+
// Check if the directory exists
|
|
221
|
+
try {
|
|
222
|
+
await access(worktreesDir);
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
// Directory doesn't exist — no orphaned worktrees
|
|
226
|
+
return [];
|
|
227
|
+
}
|
|
228
|
+
let entries;
|
|
229
|
+
try {
|
|
230
|
+
entries = await readdir(worktreesDir, { withFileTypes: true });
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
return [];
|
|
234
|
+
}
|
|
235
|
+
// Filter for directories only and return absolute paths
|
|
236
|
+
return entries
|
|
237
|
+
.filter((entry) => entry.isDirectory())
|
|
238
|
+
.map((entry) => path.join(worktreesDir, entry.name));
|
|
239
|
+
}
|
|
240
|
+
// ---------------------------------------------------------------------------
|
|
241
|
+
// simulateMerge
|
|
242
|
+
// ---------------------------------------------------------------------------
|
|
243
|
+
/**
|
|
244
|
+
* Simulate a merge using git merge --no-commit --no-ff without committing.
|
|
245
|
+
*
|
|
246
|
+
* This runs in the target branch's working directory (the project root or
|
|
247
|
+
* worktree path). The simulation must be aborted after checking conflicts
|
|
248
|
+
* via abortMerge().
|
|
249
|
+
*
|
|
250
|
+
* @param branchName - The source branch to simulate merging
|
|
251
|
+
* @param cwd - Working directory (must be on the target branch)
|
|
252
|
+
* @returns - true if merge would be clean, false if there are conflicts
|
|
253
|
+
*/
|
|
254
|
+
export async function simulateMerge(branchName, cwd) {
|
|
255
|
+
const result = await spawnGit(['merge', '--no-commit', '--no-ff', branchName], { cwd });
|
|
256
|
+
// Git exits with code 0 if merge is clean (but not committed due to --no-commit)
|
|
257
|
+
// Git exits with non-zero code if there are conflicts
|
|
258
|
+
if (result.code === 0) {
|
|
259
|
+
return true;
|
|
260
|
+
}
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
// ---------------------------------------------------------------------------
|
|
264
|
+
// abortMerge
|
|
265
|
+
// ---------------------------------------------------------------------------
|
|
266
|
+
/**
|
|
267
|
+
* Abort a merge in progress using git merge --abort.
|
|
268
|
+
*
|
|
269
|
+
* Should be called after simulateMerge() to clean up the merge state,
|
|
270
|
+
* regardless of whether conflicts were found.
|
|
271
|
+
*
|
|
272
|
+
* @param cwd - Working directory (same as used for simulateMerge)
|
|
273
|
+
*/
|
|
274
|
+
export async function abortMerge(cwd) {
|
|
275
|
+
await spawnGit(['merge', '--abort'], { cwd });
|
|
276
|
+
}
|
|
277
|
+
// ---------------------------------------------------------------------------
|
|
278
|
+
// getConflictingFiles
|
|
279
|
+
// ---------------------------------------------------------------------------
|
|
280
|
+
/**
|
|
281
|
+
* Get a list of files with conflicts during a merge.
|
|
282
|
+
*
|
|
283
|
+
* Must be called while a merge is in progress (after simulateMerge() and
|
|
284
|
+
* before abortMerge()).
|
|
285
|
+
*
|
|
286
|
+
* @param cwd - Working directory of the repository
|
|
287
|
+
* @returns - Array of conflicting file paths
|
|
288
|
+
*/
|
|
289
|
+
export async function getConflictingFiles(cwd) {
|
|
290
|
+
const result = await spawnGit(['diff', '--name-only', '--diff-filter=U'], { cwd });
|
|
291
|
+
if (result.code !== 0) {
|
|
292
|
+
return [];
|
|
293
|
+
}
|
|
294
|
+
if (result.stdout.trim() === '') {
|
|
295
|
+
return [];
|
|
296
|
+
}
|
|
297
|
+
return result.stdout.trim().split('\n').filter((f) => f.trim().length > 0);
|
|
298
|
+
}
|
|
299
|
+
// ---------------------------------------------------------------------------
|
|
300
|
+
// performMerge
|
|
301
|
+
// ---------------------------------------------------------------------------
|
|
302
|
+
/**
|
|
303
|
+
* Perform an actual merge using git merge --no-ff.
|
|
304
|
+
*
|
|
305
|
+
* Should only be called after detectConflicts() confirms there are no conflicts.
|
|
306
|
+
* Creates a merge commit even if fast-forward is possible (--no-ff ensures history).
|
|
307
|
+
*
|
|
308
|
+
* @param branchName - The source branch to merge
|
|
309
|
+
* @param cwd - Working directory (must be on the target branch)
|
|
310
|
+
* @returns - true if merge succeeded, false otherwise
|
|
311
|
+
*/
|
|
312
|
+
export async function performMerge(branchName, cwd) {
|
|
313
|
+
const result = await spawnGit(['merge', '--no-ff', branchName], { cwd });
|
|
314
|
+
if (result.code !== 0) {
|
|
315
|
+
return false;
|
|
316
|
+
}
|
|
317
|
+
return true;
|
|
318
|
+
}
|
|
319
|
+
// ---------------------------------------------------------------------------
|
|
320
|
+
// getMergedFiles
|
|
321
|
+
// ---------------------------------------------------------------------------
|
|
322
|
+
/**
|
|
323
|
+
* Get a list of files changed in the most recent merge.
|
|
324
|
+
*
|
|
325
|
+
* Uses git diff --name-only HEAD~1..HEAD to find files in the merge commit.
|
|
326
|
+
* Falls back to empty array if commit history is insufficient.
|
|
327
|
+
*
|
|
328
|
+
* @param cwd - Working directory of the repository
|
|
329
|
+
* @returns - Array of file paths that were merged
|
|
330
|
+
*/
|
|
331
|
+
export async function getMergedFiles(cwd) {
|
|
332
|
+
// Get files changed between HEAD~1 and HEAD (the merge commit)
|
|
333
|
+
const result = await spawnGit(['diff', '--name-only', 'HEAD~1..HEAD'], { cwd });
|
|
334
|
+
if (result.code !== 0) {
|
|
335
|
+
// May fail if there's only one commit — try alternative approach
|
|
336
|
+
const altResult = await spawnGit(['show', '--name-only', '--format=', 'HEAD'], { cwd });
|
|
337
|
+
if (altResult.code !== 0) {
|
|
338
|
+
return [];
|
|
339
|
+
}
|
|
340
|
+
return altResult.stdout.trim().split('\n').filter((f) => f.trim().length > 0);
|
|
341
|
+
}
|
|
342
|
+
if (result.stdout.trim() === '') {
|
|
343
|
+
return [];
|
|
344
|
+
}
|
|
345
|
+
return result.stdout.trim().split('\n').filter((f) => f.trim().length > 0);
|
|
346
|
+
}
|
|
347
|
+
//# sourceMappingURL=git-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-utils.js","sourceRoot":"","sources":["../../src/git/git-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitWorktreeManagerImpl — concrete implementation of GitWorktreeManager.
|
|
3
|
+
*
|
|
4
|
+
* Subscribes to task:ready events to create worktrees and to
|
|
5
|
+
* task:complete / task:failed events to clean them up.
|
|
6
|
+
*
|
|
7
|
+
* Architecture constraints:
|
|
8
|
+
* - Uses child_process.spawn for all git operations (via git-utils)
|
|
9
|
+
* - Branch names: "substrate/task-{taskId}"
|
|
10
|
+
* - Worktree path: {projectRoot}/.substrate-worktrees/{taskId}
|
|
11
|
+
* - Implements IBaseService lifecycle (initialize / shutdown)
|
|
12
|
+
*/
|
|
13
|
+
import type { TypedEventBus, CoreEvents } from '../events/index.js';
|
|
14
|
+
import type { ILogger } from '../dispatch/types.js';
|
|
15
|
+
import type { GitWorktreeManager, WorktreeInfo, ConflictReport, MergeResult } from './git-worktree-manager.js';
|
|
16
|
+
/**
|
|
17
|
+
* Minimal interface for the legacy db parameter (unused in current implementation,
|
|
18
|
+
* kept for backward compatibility with call sites that pass a db instance).
|
|
19
|
+
*/
|
|
20
|
+
export interface LegacyDbLike {
|
|
21
|
+
readonly isOpen?: boolean;
|
|
22
|
+
readonly db?: Record<string, unknown>;
|
|
23
|
+
initialize?(): Promise<void>;
|
|
24
|
+
shutdown?(): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
export declare class GitWorktreeManagerImpl implements GitWorktreeManager {
|
|
27
|
+
private readonly _eventBus;
|
|
28
|
+
private readonly _projectRoot;
|
|
29
|
+
private readonly _baseDirectory;
|
|
30
|
+
private readonly _db;
|
|
31
|
+
private readonly _logger;
|
|
32
|
+
/** Bound listener references for cleanup in shutdown() */
|
|
33
|
+
private readonly _onTaskReady;
|
|
34
|
+
private readonly _onTaskComplete;
|
|
35
|
+
private readonly _onTaskFailed;
|
|
36
|
+
constructor(eventBus: TypedEventBus<CoreEvents>, projectRoot: string, baseDirectory?: string, db?: LegacyDbLike | null, logger?: ILogger);
|
|
37
|
+
initialize(): Promise<void>;
|
|
38
|
+
shutdown(): Promise<void>;
|
|
39
|
+
private _handleTaskReady;
|
|
40
|
+
private _handleTaskDone;
|
|
41
|
+
createWorktree(taskId: string, baseBranch?: string): Promise<WorktreeInfo>;
|
|
42
|
+
cleanupWorktree(taskId: string): Promise<void>;
|
|
43
|
+
cleanupAllWorktrees(): Promise<number>;
|
|
44
|
+
detectConflicts(taskId: string, targetBranch?: string): Promise<ConflictReport>;
|
|
45
|
+
mergeWorktree(taskId: string, targetBranch?: string): Promise<MergeResult>;
|
|
46
|
+
listWorktrees(): Promise<WorktreeInfo[]>;
|
|
47
|
+
getWorktreePath(taskId: string): string;
|
|
48
|
+
verifyGitVersion(): Promise<void>;
|
|
49
|
+
}
|
|
50
|
+
export interface GitWorktreeManagerOptions {
|
|
51
|
+
eventBus: TypedEventBus<CoreEvents>;
|
|
52
|
+
projectRoot: string;
|
|
53
|
+
baseDirectory?: string;
|
|
54
|
+
db?: LegacyDbLike | null;
|
|
55
|
+
logger?: ILogger;
|
|
56
|
+
}
|
|
57
|
+
export declare function createGitWorktreeManager(options: GitWorktreeManagerOptions): GitWorktreeManager;
|
|
58
|
+
//# sourceMappingURL=git-worktree-manager-impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-worktree-manager-impl.d.ts","sourceRoot":"","sources":["../../src/git/git-worktree-manager-impl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAG9G;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAYD,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;IACvE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;gBAGnE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EACnC,WAAW,EAAE,MAAM,EACnB,aAAa,GAAE,MAA8B,EAC7C,EAAE,GAAE,YAAY,GAAG,IAAW,EAC9B,MAAM,CAAC,EAAE,OAAO;IA6BZ,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAkBjB,gBAAgB;YAShB,eAAe;IAcvB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAkC1E,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C9C,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IA4CtC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC;IAuD/E,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAgD1E,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAiC9C,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIjC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAOxC;AAMD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IACxB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CAQ/F"}
|