@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.
Files changed (486) hide show
  1. package/README.md +55 -0
  2. package/dist/__tests__/adapter.test.d.ts +12 -0
  3. package/dist/__tests__/adapter.test.d.ts.map +1 -0
  4. package/dist/__tests__/adapter.test.js +259 -0
  5. package/dist/__tests__/adapter.test.js.map +1 -0
  6. package/dist/__tests__/event-bus.test.d.ts +14 -0
  7. package/dist/__tests__/event-bus.test.d.ts.map +1 -0
  8. package/dist/__tests__/event-bus.test.js +199 -0
  9. package/dist/__tests__/event-bus.test.js.map +1 -0
  10. package/dist/__tests__/output-quality.test.d.ts +8 -0
  11. package/dist/__tests__/output-quality.test.d.ts.map +1 -0
  12. package/dist/__tests__/output-quality.test.js +166 -0
  13. package/dist/__tests__/output-quality.test.js.map +1 -0
  14. package/dist/__tests__/schema-suffix.test.d.ts +9 -0
  15. package/dist/__tests__/schema-suffix.test.d.ts.map +1 -0
  16. package/dist/__tests__/schema-suffix.test.js +126 -0
  17. package/dist/__tests__/schema-suffix.test.js.map +1 -0
  18. package/dist/__tests__/yaml-parser.test.d.ts +18 -0
  19. package/dist/__tests__/yaml-parser.test.d.ts.map +1 -0
  20. package/dist/__tests__/yaml-parser.test.js +475 -0
  21. package/dist/__tests__/yaml-parser.test.js.map +1 -0
  22. package/dist/__type-checks__.d.ts +11 -0
  23. package/dist/__type-checks__.d.ts.map +1 -0
  24. package/dist/__type-checks__.js +19 -0
  25. package/dist/__type-checks__.js.map +1 -0
  26. package/dist/adapters/__tests__/adapter-output-normalizer.test.d.ts +12 -0
  27. package/dist/adapters/__tests__/adapter-output-normalizer.test.d.ts.map +1 -0
  28. package/dist/adapters/__tests__/adapter-output-normalizer.test.js +193 -0
  29. package/dist/adapters/__tests__/adapter-output-normalizer.test.js.map +1 -0
  30. package/dist/adapters/adapter-format-error.d.ts +35 -0
  31. package/dist/adapters/adapter-format-error.d.ts.map +1 -0
  32. package/dist/adapters/adapter-format-error.js +38 -0
  33. package/dist/adapters/adapter-format-error.js.map +1 -0
  34. package/dist/adapters/adapter-output-normalizer.d.ts +50 -0
  35. package/dist/adapters/adapter-output-normalizer.d.ts.map +1 -0
  36. package/dist/adapters/adapter-output-normalizer.js +233 -0
  37. package/dist/adapters/adapter-output-normalizer.js.map +1 -0
  38. package/dist/adapters/adapter-registry.d.ts +50 -0
  39. package/dist/adapters/adapter-registry.d.ts.map +1 -0
  40. package/dist/adapters/adapter-registry.js +101 -0
  41. package/dist/adapters/adapter-registry.js.map +1 -0
  42. package/dist/adapters/claude-adapter.d.ts +59 -0
  43. package/dist/adapters/claude-adapter.d.ts.map +1 -0
  44. package/dist/adapters/claude-adapter.js +367 -0
  45. package/dist/adapters/claude-adapter.js.map +1 -0
  46. package/dist/adapters/codex-adapter.d.ts +64 -0
  47. package/dist/adapters/codex-adapter.d.ts.map +1 -0
  48. package/dist/adapters/codex-adapter.js +263 -0
  49. package/dist/adapters/codex-adapter.js.map +1 -0
  50. package/dist/adapters/gemini-adapter.d.ts +57 -0
  51. package/dist/adapters/gemini-adapter.d.ts.map +1 -0
  52. package/dist/adapters/gemini-adapter.js +311 -0
  53. package/dist/adapters/gemini-adapter.js.map +1 -0
  54. package/dist/adapters/index.d.ts +10 -0
  55. package/dist/adapters/index.d.ts.map +1 -0
  56. package/dist/adapters/index.js +14 -0
  57. package/dist/adapters/index.js.map +1 -0
  58. package/dist/adapters/schemas.d.ts +137 -0
  59. package/dist/adapters/schemas.d.ts.map +1 -0
  60. package/dist/adapters/schemas.js +140 -0
  61. package/dist/adapters/schemas.js.map +1 -0
  62. package/dist/adapters/types.d.ts +245 -0
  63. package/dist/adapters/types.d.ts.map +1 -0
  64. package/dist/adapters/types.js +6 -0
  65. package/dist/adapters/types.js.map +1 -0
  66. package/dist/adapters/worker-adapter.d.ts +188 -0
  67. package/dist/adapters/worker-adapter.d.ts.map +1 -0
  68. package/dist/adapters/worker-adapter.js +19 -0
  69. package/dist/adapters/worker-adapter.js.map +1 -0
  70. package/dist/budget/budget-tracker.d.ts +22 -0
  71. package/dist/budget/budget-tracker.d.ts.map +1 -0
  72. package/dist/budget/budget-tracker.js +39 -0
  73. package/dist/budget/budget-tracker.js.map +1 -0
  74. package/dist/budget/index.d.ts +6 -0
  75. package/dist/budget/index.d.ts.map +1 -0
  76. package/dist/budget/index.js +5 -0
  77. package/dist/budget/index.js.map +1 -0
  78. package/dist/config/config-migrator.d.ts +58 -0
  79. package/dist/config/config-migrator.d.ts.map +1 -0
  80. package/dist/config/config-migrator.js +158 -0
  81. package/dist/config/config-migrator.js.map +1 -0
  82. package/dist/config/config-system-impl.d.ts +63 -0
  83. package/dist/config/config-system-impl.d.ts.map +1 -0
  84. package/dist/config/config-system-impl.js +364 -0
  85. package/dist/config/config-system-impl.js.map +1 -0
  86. package/dist/config/config-watcher.d.ts +59 -0
  87. package/dist/config/config-watcher.d.ts.map +1 -0
  88. package/dist/config/config-watcher.js +137 -0
  89. package/dist/config/config-watcher.js.map +1 -0
  90. package/dist/config/defaults.d.ts +13 -0
  91. package/dist/config/defaults.d.ts.map +1 -0
  92. package/dist/config/defaults.js +62 -0
  93. package/dist/config/defaults.js.map +1 -0
  94. package/dist/config/errors.d.ts +25 -0
  95. package/dist/config/errors.d.ts.map +1 -0
  96. package/dist/config/errors.js +49 -0
  97. package/dist/config/errors.js.map +1 -0
  98. package/dist/config/index.d.ts +19 -0
  99. package/dist/config/index.d.ts.map +1 -0
  100. package/dist/config/index.js +39 -0
  101. package/dist/config/index.js.map +1 -0
  102. package/dist/config/types.d.ts +456 -0
  103. package/dist/config/types.d.ts.map +1 -0
  104. package/dist/config/types.js +174 -0
  105. package/dist/config/types.js.map +1 -0
  106. package/dist/config/version-utils.d.ts +39 -0
  107. package/dist/config/version-utils.d.ts.map +1 -0
  108. package/dist/config/version-utils.js +66 -0
  109. package/dist/config/version-utils.js.map +1 -0
  110. package/dist/context/index.d.ts +2 -0
  111. package/dist/context/index.d.ts.map +1 -0
  112. package/dist/context/index.js +2 -0
  113. package/dist/context/index.js.map +1 -0
  114. package/dist/context/types.d.ts +113 -0
  115. package/dist/context/types.d.ts.map +1 -0
  116. package/dist/context/types.js +59 -0
  117. package/dist/context/types.js.map +1 -0
  118. package/dist/cost-tracker/cost-tracker-impl.d.ts +51 -0
  119. package/dist/cost-tracker/cost-tracker-impl.d.ts.map +1 -0
  120. package/dist/cost-tracker/cost-tracker-impl.js +85 -0
  121. package/dist/cost-tracker/cost-tracker-impl.js.map +1 -0
  122. package/dist/cost-tracker/cost-tracker-subscriber.d.ts +31 -0
  123. package/dist/cost-tracker/cost-tracker-subscriber.d.ts.map +1 -0
  124. package/dist/cost-tracker/cost-tracker-subscriber.js +116 -0
  125. package/dist/cost-tracker/cost-tracker-subscriber.js.map +1 -0
  126. package/dist/cost-tracker/index.d.ts +11 -0
  127. package/dist/cost-tracker/index.d.ts.map +1 -0
  128. package/dist/cost-tracker/index.js +7 -0
  129. package/dist/cost-tracker/index.js.map +1 -0
  130. package/dist/cost-tracker/token-rates.d.ts +25 -0
  131. package/dist/cost-tracker/token-rates.d.ts.map +1 -0
  132. package/dist/cost-tracker/token-rates.js +99 -0
  133. package/dist/cost-tracker/token-rates.js.map +1 -0
  134. package/dist/cost-tracker/types.d.ts +6 -0
  135. package/dist/cost-tracker/types.d.ts.map +1 -0
  136. package/dist/cost-tracker/types.js +2 -0
  137. package/dist/cost-tracker/types.js.map +1 -0
  138. package/dist/dispatch/dispatcher-impl.d.ts +92 -0
  139. package/dist/dispatch/dispatcher-impl.d.ts.map +1 -0
  140. package/dist/dispatch/dispatcher-impl.js +847 -0
  141. package/dist/dispatch/dispatcher-impl.js.map +1 -0
  142. package/dist/dispatch/index.d.ts +15 -0
  143. package/dist/dispatch/index.d.ts.map +1 -0
  144. package/dist/dispatch/index.js +14 -0
  145. package/dist/dispatch/index.js.map +1 -0
  146. package/dist/dispatch/interface-change-detector.d.ts +46 -0
  147. package/dist/dispatch/interface-change-detector.d.ts.map +1 -0
  148. package/dist/dispatch/interface-change-detector.js +135 -0
  149. package/dist/dispatch/interface-change-detector.js.map +1 -0
  150. package/dist/dispatch/output-quality.d.ts +43 -0
  151. package/dist/dispatch/output-quality.d.ts.map +1 -0
  152. package/dist/dispatch/output-quality.js +148 -0
  153. package/dist/dispatch/output-quality.js.map +1 -0
  154. package/dist/dispatch/types.d.ts +271 -0
  155. package/dist/dispatch/types.d.ts.map +1 -0
  156. package/dist/dispatch/types.js +76 -0
  157. package/dist/dispatch/types.js.map +1 -0
  158. package/dist/dispatch/yaml-parser.d.ts +40 -0
  159. package/dist/dispatch/yaml-parser.d.ts.map +1 -0
  160. package/dist/dispatch/yaml-parser.js +323 -0
  161. package/dist/dispatch/yaml-parser.js.map +1 -0
  162. package/dist/events/core-events.d.ts +288 -0
  163. package/dist/events/core-events.d.ts.map +1 -0
  164. package/dist/events/core-events.js +10 -0
  165. package/dist/events/core-events.js.map +1 -0
  166. package/dist/events/event-bus.d.ts +55 -0
  167. package/dist/events/event-bus.d.ts.map +1 -0
  168. package/dist/events/event-bus.js +52 -0
  169. package/dist/events/event-bus.js.map +1 -0
  170. package/dist/events/index.d.ts +9 -0
  171. package/dist/events/index.d.ts.map +1 -0
  172. package/dist/events/index.js +6 -0
  173. package/dist/events/index.js.map +1 -0
  174. package/dist/events/types.d.ts +21 -0
  175. package/dist/events/types.d.ts.map +1 -0
  176. package/dist/events/types.js +8 -0
  177. package/dist/events/types.js.map +1 -0
  178. package/dist/git/git-manager.d.ts +31 -0
  179. package/dist/git/git-manager.d.ts.map +1 -0
  180. package/dist/git/git-manager.js +46 -0
  181. package/dist/git/git-manager.js.map +1 -0
  182. package/dist/git/git-utils.d.ts +166 -0
  183. package/dist/git/git-utils.d.ts.map +1 -0
  184. package/dist/git/git-utils.js +347 -0
  185. package/dist/git/git-utils.js.map +1 -0
  186. package/dist/git/git-worktree-manager-impl.d.ts +58 -0
  187. package/dist/git/git-worktree-manager-impl.d.ts.map +1 -0
  188. package/dist/git/git-worktree-manager-impl.js +336 -0
  189. package/dist/git/git-worktree-manager-impl.js.map +1 -0
  190. package/dist/git/git-worktree-manager.d.ts +122 -0
  191. package/dist/git/git-worktree-manager.d.ts.map +1 -0
  192. package/dist/git/git-worktree-manager.js +14 -0
  193. package/dist/git/git-worktree-manager.js.map +1 -0
  194. package/dist/git/index.d.ts +11 -0
  195. package/dist/git/index.d.ts.map +1 -0
  196. package/dist/git/index.js +8 -0
  197. package/dist/git/index.js.map +1 -0
  198. package/dist/index.d.ts +33 -0
  199. package/dist/index.d.ts.map +1 -0
  200. package/dist/index.js +47 -0
  201. package/dist/index.js.map +1 -0
  202. package/dist/llm/client.d.ts +42 -0
  203. package/dist/llm/client.d.ts.map +1 -0
  204. package/dist/llm/client.js +27 -0
  205. package/dist/llm/client.js.map +1 -0
  206. package/dist/monitor/index.d.ts +15 -0
  207. package/dist/monitor/index.d.ts.map +1 -0
  208. package/dist/monitor/index.js +9 -0
  209. package/dist/monitor/index.js.map +1 -0
  210. package/dist/monitor/monitor-agent-impl.d.ts +56 -0
  211. package/dist/monitor/monitor-agent-impl.d.ts.map +1 -0
  212. package/dist/monitor/monitor-agent-impl.js +178 -0
  213. package/dist/monitor/monitor-agent-impl.js.map +1 -0
  214. package/dist/monitor/monitor-agent.d.ts +36 -0
  215. package/dist/monitor/monitor-agent.d.ts.map +1 -0
  216. package/dist/monitor/monitor-agent.js +6 -0
  217. package/dist/monitor/monitor-agent.js.map +1 -0
  218. package/dist/monitor/performance-aggregates.d.ts +41 -0
  219. package/dist/monitor/performance-aggregates.d.ts.map +1 -0
  220. package/dist/monitor/performance-aggregates.js +6 -0
  221. package/dist/monitor/performance-aggregates.js.map +1 -0
  222. package/dist/monitor/recommendation-engine.d.ts +27 -0
  223. package/dist/monitor/recommendation-engine.d.ts.map +1 -0
  224. package/dist/monitor/recommendation-engine.js +140 -0
  225. package/dist/monitor/recommendation-engine.js.map +1 -0
  226. package/dist/monitor/recommendation-types.d.ts +30 -0
  227. package/dist/monitor/recommendation-types.d.ts.map +1 -0
  228. package/dist/monitor/recommendation-types.js +43 -0
  229. package/dist/monitor/recommendation-types.js.map +1 -0
  230. package/dist/monitor/report-generator.d.ts +48 -0
  231. package/dist/monitor/report-generator.d.ts.map +1 -0
  232. package/dist/monitor/report-generator.js +123 -0
  233. package/dist/monitor/report-generator.js.map +1 -0
  234. package/dist/monitor/task-type-classifier.d.ts +19 -0
  235. package/dist/monitor/task-type-classifier.d.ts.map +1 -0
  236. package/dist/monitor/task-type-classifier.js +68 -0
  237. package/dist/monitor/task-type-classifier.js.map +1 -0
  238. package/dist/persistence/adapter.d.ts +4 -0
  239. package/dist/persistence/adapter.d.ts.map +1 -0
  240. package/dist/persistence/adapter.js +56 -0
  241. package/dist/persistence/adapter.js.map +1 -0
  242. package/dist/persistence/cost-types.d.ts +87 -0
  243. package/dist/persistence/cost-types.d.ts.map +1 -0
  244. package/dist/persistence/cost-types.js +14 -0
  245. package/dist/persistence/cost-types.js.map +1 -0
  246. package/dist/persistence/dolt-adapter-transaction.test.d.ts +10 -0
  247. package/dist/persistence/dolt-adapter-transaction.test.d.ts.map +1 -0
  248. package/dist/persistence/dolt-adapter-transaction.test.js +359 -0
  249. package/dist/persistence/dolt-adapter-transaction.test.js.map +1 -0
  250. package/dist/persistence/dolt-adapter.d.ts +77 -0
  251. package/dist/persistence/dolt-adapter.d.ts.map +1 -0
  252. package/dist/persistence/dolt-adapter.js +98 -0
  253. package/dist/persistence/dolt-adapter.js.map +1 -0
  254. package/dist/persistence/dolt-client.d.ts +69 -0
  255. package/dist/persistence/dolt-client.d.ts.map +1 -0
  256. package/dist/persistence/dolt-client.js +278 -0
  257. package/dist/persistence/dolt-client.js.map +1 -0
  258. package/dist/persistence/dolt-errors.d.ts +10 -0
  259. package/dist/persistence/dolt-errors.d.ts.map +1 -0
  260. package/dist/persistence/dolt-errors.js +15 -0
  261. package/dist/persistence/dolt-errors.js.map +1 -0
  262. package/dist/persistence/dolt-init.d.ts +64 -0
  263. package/dist/persistence/dolt-init.d.ts.map +1 -0
  264. package/dist/persistence/dolt-init.js +233 -0
  265. package/dist/persistence/dolt-init.js.map +1 -0
  266. package/dist/persistence/index.d.ts +23 -0
  267. package/dist/persistence/index.d.ts.map +1 -0
  268. package/dist/persistence/index.js +23 -0
  269. package/dist/persistence/index.js.map +1 -0
  270. package/dist/persistence/memory-adapter.d.ts +156 -0
  271. package/dist/persistence/memory-adapter.d.ts.map +1 -0
  272. package/dist/persistence/memory-adapter.js +1167 -0
  273. package/dist/persistence/memory-adapter.js.map +1 -0
  274. package/dist/persistence/monitor-database.d.ts +113 -0
  275. package/dist/persistence/monitor-database.d.ts.map +1 -0
  276. package/dist/persistence/monitor-database.js +345 -0
  277. package/dist/persistence/monitor-database.js.map +1 -0
  278. package/dist/persistence/queries/amendments.d.ts +91 -0
  279. package/dist/persistence/queries/amendments.d.ts.map +1 -0
  280. package/dist/persistence/queries/amendments.js +185 -0
  281. package/dist/persistence/queries/amendments.js.map +1 -0
  282. package/dist/persistence/queries/cost.d.ts +130 -0
  283. package/dist/persistence/queries/cost.d.ts.map +1 -0
  284. package/dist/persistence/queries/cost.js +384 -0
  285. package/dist/persistence/queries/cost.js.map +1 -0
  286. package/dist/persistence/queries/decisions.d.ts +131 -0
  287. package/dist/persistence/queries/decisions.d.ts.map +1 -0
  288. package/dist/persistence/queries/decisions.js +339 -0
  289. package/dist/persistence/queries/decisions.js.map +1 -0
  290. package/dist/persistence/queries/metrics.d.ts +155 -0
  291. package/dist/persistence/queries/metrics.d.ts.map +1 -0
  292. package/dist/persistence/queries/metrics.js +237 -0
  293. package/dist/persistence/queries/metrics.js.map +1 -0
  294. package/dist/persistence/queries/retry-escalated.d.ts +35 -0
  295. package/dist/persistence/queries/retry-escalated.d.ts.map +1 -0
  296. package/dist/persistence/queries/retry-escalated.js +83 -0
  297. package/dist/persistence/queries/retry-escalated.js.map +1 -0
  298. package/dist/persistence/schema-version.d.ts +89 -0
  299. package/dist/persistence/schema-version.d.ts.map +1 -0
  300. package/dist/persistence/schema-version.js +67 -0
  301. package/dist/persistence/schema-version.js.map +1 -0
  302. package/dist/persistence/schema.d.ts +26 -0
  303. package/dist/persistence/schema.d.ts.map +1 -0
  304. package/dist/persistence/schema.js +509 -0
  305. package/dist/persistence/schema.js.map +1 -0
  306. package/dist/persistence/schemas/decisions.d.ts +176 -0
  307. package/dist/persistence/schemas/decisions.d.ts.map +1 -0
  308. package/dist/persistence/schemas/decisions.js +139 -0
  309. package/dist/persistence/schemas/decisions.js.map +1 -0
  310. package/dist/persistence/schemas/operational.d.ts +194 -0
  311. package/dist/persistence/schemas/operational.d.ts.map +1 -0
  312. package/dist/persistence/schemas/operational.js +197 -0
  313. package/dist/persistence/schemas/operational.js.map +1 -0
  314. package/dist/persistence/types.d.ts +98 -0
  315. package/dist/persistence/types.d.ts.map +1 -0
  316. package/dist/persistence/types.js +22 -0
  317. package/dist/persistence/types.js.map +1 -0
  318. package/dist/quality-gates/index.d.ts +2 -0
  319. package/dist/quality-gates/index.d.ts.map +1 -0
  320. package/dist/quality-gates/index.js +2 -0
  321. package/dist/quality-gates/index.js.map +1 -0
  322. package/dist/quality-gates/types.d.ts +106 -0
  323. package/dist/quality-gates/types.d.ts.map +1 -0
  324. package/dist/quality-gates/types.js +5 -0
  325. package/dist/quality-gates/types.js.map +1 -0
  326. package/dist/routing/index.d.ts +19 -0
  327. package/dist/routing/index.d.ts.map +1 -0
  328. package/dist/routing/index.js +32 -0
  329. package/dist/routing/index.js.map +1 -0
  330. package/dist/routing/model-routing-config.d.ts +75 -0
  331. package/dist/routing/model-routing-config.d.ts.map +1 -0
  332. package/dist/routing/model-routing-config.js +110 -0
  333. package/dist/routing/model-routing-config.js.map +1 -0
  334. package/dist/routing/model-routing-resolver.d.ts +48 -0
  335. package/dist/routing/model-routing-resolver.d.ts.map +1 -0
  336. package/dist/routing/model-routing-resolver.js +105 -0
  337. package/dist/routing/model-routing-resolver.js.map +1 -0
  338. package/dist/routing/model-tier.d.ts +21 -0
  339. package/dist/routing/model-tier.d.ts.map +1 -0
  340. package/dist/routing/model-tier.js +34 -0
  341. package/dist/routing/model-tier.js.map +1 -0
  342. package/dist/routing/provider-status.d.ts +99 -0
  343. package/dist/routing/provider-status.d.ts.map +1 -0
  344. package/dist/routing/provider-status.js +163 -0
  345. package/dist/routing/provider-status.js.map +1 -0
  346. package/dist/routing/routing-decision.d.ts +127 -0
  347. package/dist/routing/routing-decision.d.ts.map +1 -0
  348. package/dist/routing/routing-decision.js +111 -0
  349. package/dist/routing/routing-decision.js.map +1 -0
  350. package/dist/routing/routing-engine-impl.d.ts +132 -0
  351. package/dist/routing/routing-engine-impl.d.ts.map +1 -0
  352. package/dist/routing/routing-engine-impl.js +450 -0
  353. package/dist/routing/routing-engine-impl.js.map +1 -0
  354. package/dist/routing/routing-engine.d.ts +83 -0
  355. package/dist/routing/routing-engine.d.ts.map +1 -0
  356. package/dist/routing/routing-engine.js +24 -0
  357. package/dist/routing/routing-engine.js.map +1 -0
  358. package/dist/routing/routing-policy.d.ts +138 -0
  359. package/dist/routing/routing-policy.d.ts.map +1 -0
  360. package/dist/routing/routing-policy.js +159 -0
  361. package/dist/routing/routing-policy.js.map +1 -0
  362. package/dist/routing/routing-recommender.d.ts +60 -0
  363. package/dist/routing/routing-recommender.d.ts.map +1 -0
  364. package/dist/routing/routing-recommender.js +209 -0
  365. package/dist/routing/routing-recommender.js.map +1 -0
  366. package/dist/routing/routing-telemetry.d.ts +36 -0
  367. package/dist/routing/routing-telemetry.d.ts.map +1 -0
  368. package/dist/routing/routing-telemetry.js +39 -0
  369. package/dist/routing/routing-telemetry.js.map +1 -0
  370. package/dist/routing/routing-token-accumulator.d.ts +68 -0
  371. package/dist/routing/routing-token-accumulator.d.ts.map +1 -0
  372. package/dist/routing/routing-token-accumulator.js +111 -0
  373. package/dist/routing/routing-token-accumulator.js.map +1 -0
  374. package/dist/routing/routing-tuner.d.ts +69 -0
  375. package/dist/routing/routing-tuner.d.ts.map +1 -0
  376. package/dist/routing/routing-tuner.js +217 -0
  377. package/dist/routing/routing-tuner.js.map +1 -0
  378. package/dist/routing/types.d.ts +152 -0
  379. package/dist/routing/types.d.ts.map +1 -0
  380. package/dist/routing/types.js +13 -0
  381. package/dist/routing/types.js.map +1 -0
  382. package/dist/supervisor/analysis.d.ts +178 -0
  383. package/dist/supervisor/analysis.d.ts.map +1 -0
  384. package/dist/supervisor/analysis.js +420 -0
  385. package/dist/supervisor/analysis.js.map +1 -0
  386. package/dist/supervisor/experimenter.d.ts +118 -0
  387. package/dist/supervisor/experimenter.d.ts.map +1 -0
  388. package/dist/supervisor/experimenter.js +493 -0
  389. package/dist/supervisor/experimenter.js.map +1 -0
  390. package/dist/supervisor/index.d.ts +13 -0
  391. package/dist/supervisor/index.d.ts.map +1 -0
  392. package/dist/supervisor/index.js +11 -0
  393. package/dist/supervisor/index.js.map +1 -0
  394. package/dist/telemetry/batch-buffer.d.ts +53 -0
  395. package/dist/telemetry/batch-buffer.d.ts.map +1 -0
  396. package/dist/telemetry/batch-buffer.js +83 -0
  397. package/dist/telemetry/batch-buffer.js.map +1 -0
  398. package/dist/telemetry/categorizer.d.ts +65 -0
  399. package/dist/telemetry/categorizer.d.ts.map +1 -0
  400. package/dist/telemetry/categorizer.js +338 -0
  401. package/dist/telemetry/categorizer.js.map +1 -0
  402. package/dist/telemetry/consumer-analyzer.d.ts +53 -0
  403. package/dist/telemetry/consumer-analyzer.d.ts.map +1 -0
  404. package/dist/telemetry/consumer-analyzer.js +182 -0
  405. package/dist/telemetry/consumer-analyzer.js.map +1 -0
  406. package/dist/telemetry/cost-table.d.ts +36 -0
  407. package/dist/telemetry/cost-table.d.ts.map +1 -0
  408. package/dist/telemetry/cost-table.js +127 -0
  409. package/dist/telemetry/cost-table.js.map +1 -0
  410. package/dist/telemetry/efficiency-scorer.d.ts +103 -0
  411. package/dist/telemetry/efficiency-scorer.d.ts.map +1 -0
  412. package/dist/telemetry/efficiency-scorer.js +311 -0
  413. package/dist/telemetry/efficiency-scorer.js.map +1 -0
  414. package/dist/telemetry/index.d.ts +28 -0
  415. package/dist/telemetry/index.d.ts.map +1 -0
  416. package/dist/telemetry/index.js +37 -0
  417. package/dist/telemetry/index.js.map +1 -0
  418. package/dist/telemetry/ingestion-server.d.ts +99 -0
  419. package/dist/telemetry/ingestion-server.d.ts.map +1 -0
  420. package/dist/telemetry/ingestion-server.js +315 -0
  421. package/dist/telemetry/ingestion-server.js.map +1 -0
  422. package/dist/telemetry/log-turn-analyzer.d.ts +35 -0
  423. package/dist/telemetry/log-turn-analyzer.d.ts.map +1 -0
  424. package/dist/telemetry/log-turn-analyzer.js +132 -0
  425. package/dist/telemetry/log-turn-analyzer.js.map +1 -0
  426. package/dist/telemetry/normalizer.d.ts +43 -0
  427. package/dist/telemetry/normalizer.d.ts.map +1 -0
  428. package/dist/telemetry/normalizer.js +320 -0
  429. package/dist/telemetry/normalizer.js.map +1 -0
  430. package/dist/telemetry/recommender.d.ts +116 -0
  431. package/dist/telemetry/recommender.d.ts.map +1 -0
  432. package/dist/telemetry/recommender.js +532 -0
  433. package/dist/telemetry/recommender.js.map +1 -0
  434. package/dist/telemetry/source-detector.d.ts +19 -0
  435. package/dist/telemetry/source-detector.d.ts.map +1 -0
  436. package/dist/telemetry/source-detector.js +73 -0
  437. package/dist/telemetry/source-detector.js.map +1 -0
  438. package/dist/telemetry/task-baselines.d.ts +30 -0
  439. package/dist/telemetry/task-baselines.d.ts.map +1 -0
  440. package/dist/telemetry/task-baselines.js +44 -0
  441. package/dist/telemetry/task-baselines.js.map +1 -0
  442. package/dist/telemetry/telemetry-pipeline.d.ts +122 -0
  443. package/dist/telemetry/telemetry-pipeline.d.ts.map +1 -0
  444. package/dist/telemetry/telemetry-pipeline.js +349 -0
  445. package/dist/telemetry/telemetry-pipeline.js.map +1 -0
  446. package/dist/telemetry/timestamp-normalizer.d.ts +32 -0
  447. package/dist/telemetry/timestamp-normalizer.d.ts.map +1 -0
  448. package/dist/telemetry/timestamp-normalizer.js +133 -0
  449. package/dist/telemetry/timestamp-normalizer.js.map +1 -0
  450. package/dist/telemetry/token-extractor.d.ts +57 -0
  451. package/dist/telemetry/token-extractor.d.ts.map +1 -0
  452. package/dist/telemetry/token-extractor.js +200 -0
  453. package/dist/telemetry/token-extractor.js.map +1 -0
  454. package/dist/telemetry/turn-analyzer.d.ts +34 -0
  455. package/dist/telemetry/turn-analyzer.d.ts.map +1 -0
  456. package/dist/telemetry/turn-analyzer.js +101 -0
  457. package/dist/telemetry/turn-analyzer.js.map +1 -0
  458. package/dist/telemetry/types.d.ts +456 -0
  459. package/dist/telemetry/types.d.ts.map +1 -0
  460. package/dist/telemetry/types.js +186 -0
  461. package/dist/telemetry/types.js.map +1 -0
  462. package/dist/types.d.ts +80 -0
  463. package/dist/types.d.ts.map +1 -0
  464. package/dist/types.js +6 -0
  465. package/dist/types.js.map +1 -0
  466. package/dist/version-manager/index.d.ts +11 -0
  467. package/dist/version-manager/index.d.ts.map +1 -0
  468. package/dist/version-manager/index.js +8 -0
  469. package/dist/version-manager/index.js.map +1 -0
  470. package/dist/version-manager/update-checker.d.ts +44 -0
  471. package/dist/version-manager/update-checker.d.ts.map +1 -0
  472. package/dist/version-manager/update-checker.js +171 -0
  473. package/dist/version-manager/update-checker.js.map +1 -0
  474. package/dist/version-manager/version-cache.d.ts +42 -0
  475. package/dist/version-manager/version-cache.d.ts.map +1 -0
  476. package/dist/version-manager/version-cache.js +69 -0
  477. package/dist/version-manager/version-cache.js.map +1 -0
  478. package/dist/version-manager/version-manager-impl.d.ts +81 -0
  479. package/dist/version-manager/version-manager-impl.d.ts.map +1 -0
  480. package/dist/version-manager/version-manager-impl.js +223 -0
  481. package/dist/version-manager/version-manager-impl.js.map +1 -0
  482. package/dist/version-manager/version-manager.d.ts +70 -0
  483. package/dist/version-manager/version-manager.d.ts.map +1 -0
  484. package/dist/version-manager/version-manager.js +8 -0
  485. package/dist/version-manager/version-manager.js.map +1 -0
  486. package/package.json +27 -0
@@ -0,0 +1,188 @@
1
+ /**
2
+ * WorkerAdapter interface definition
3
+ *
4
+ * This is the core pluggable interface that all CLI agent adapters must implement.
5
+ * Adding a new adapter requires only creating a class that satisfies this interface
6
+ * — no modifications to the orchestrator core are needed (NFR11, FR14).
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * class MyCustomAdapter implements WorkerAdapter {
11
+ * readonly id: AgentId = 'my-custom-agent'
12
+ * readonly displayName = 'My Custom Agent'
13
+ * readonly adapterVersion = '1.0.0'
14
+ * // ... implement all 7 methods
15
+ * }
16
+ * ```
17
+ */
18
+ import type { AgentId } from '../types.js';
19
+ import type { SpawnCommand, AdapterOptions, AdapterCapabilities, AdapterHealthResult, TaskResult, TokenEstimate, PlanRequest, PlanParseResult, DiscoveryReport } from './types.js';
20
+ /**
21
+ * WorkerAdapter — the interface every CLI agent adapter must implement.
22
+ *
23
+ * Adapters are responsible for:
24
+ * 1. Verifying their CLI binary is installed and responsive (healthCheck)
25
+ * 2. Constructing the spawn command to execute a task (buildCommand)
26
+ * 3. Constructing the spawn command for plan generation (buildPlanningCommand)
27
+ * 4. Parsing task result output from the CLI (parseOutput)
28
+ * 5. Parsing plan result output from the CLI (parsePlanOutput)
29
+ * 6. Estimating token usage for budget tracking (estimateTokens)
30
+ * 7. Reporting their capabilities for routing decisions (getCapabilities)
31
+ */
32
+ export interface WorkerAdapter {
33
+ /**
34
+ * Unique identifier for this adapter type.
35
+ * Used as the Map key in AdapterRegistry.
36
+ * @example "claude-code"
37
+ */
38
+ readonly id: AgentId;
39
+ /**
40
+ * Human-readable display name for the adapter.
41
+ * @example "Claude Code"
42
+ */
43
+ readonly displayName: string;
44
+ /**
45
+ * Semantic version of this adapter implementation.
46
+ * @example "1.0.0"
47
+ */
48
+ readonly adapterVersion: string;
49
+ /**
50
+ * Verify that the underlying CLI binary is installed, accessible, and
51
+ * able to respond in headless/non-interactive mode.
52
+ *
53
+ * This method must NOT throw — failures should be captured in the returned
54
+ * AdapterHealthResult.
55
+ *
56
+ * @returns A promise resolving to health check details
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const result = await adapter.healthCheck()
61
+ * if (!result.healthy) console.error(result.error)
62
+ * ```
63
+ */
64
+ healthCheck(): Promise<AdapterHealthResult>;
65
+ /**
66
+ * Generate the spawn command to execute a coding task.
67
+ *
68
+ * The returned SpawnCommand must set `cwd` to options.worktreePath so the
69
+ * CLI agent operates in the correct git worktree (NFR10).
70
+ *
71
+ * @param prompt Prompt or description of the task to execute
72
+ * @param options Per-invocation execution options
73
+ * @returns SpawnCommand ready to be executed by the orchestrator
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const cmd = adapter.buildCommand('Fix the failing tests', { worktreePath: '/tmp/wt', billingMode: 'api' })
78
+ * // spawn(cmd.binary, cmd.args, { cwd: cmd.cwd, env: { ...process.env, ...cmd.env } })
79
+ * ```
80
+ */
81
+ buildCommand(prompt: string, options: AdapterOptions): SpawnCommand;
82
+ /**
83
+ * Generate the spawn command to invoke the CLI agent for plan generation.
84
+ *
85
+ * @param request Plan request with goal and context
86
+ * @param options Per-invocation execution options
87
+ * @returns SpawnCommand for the planning invocation
88
+ */
89
+ buildPlanningCommand(request: PlanRequest, options: AdapterOptions): SpawnCommand;
90
+ /**
91
+ * Parse the raw CLI process output into a normalized TaskResult.
92
+ *
93
+ * This method must handle all output variations including:
94
+ * - Valid JSON stdout
95
+ * - Non-JSON stdout (fallback)
96
+ * - Non-zero exit codes
97
+ * - Combined stdout + stderr
98
+ *
99
+ * @param stdout Standard output captured from the CLI process
100
+ * @param stderr Standard error captured from the CLI process
101
+ * @param exitCode Exit code from the CLI process
102
+ * @returns Normalized TaskResult
103
+ */
104
+ parseOutput(stdout: string, stderr: string, exitCode: number): TaskResult;
105
+ /**
106
+ * Parse the raw CLI output from a planning invocation into a PlanParseResult.
107
+ *
108
+ * @param stdout Standard output from the planning invocation
109
+ * @param stderr Standard error from the planning invocation
110
+ * @param exitCode Exit code from the planning invocation
111
+ * @returns Parsed plan result
112
+ */
113
+ parsePlanOutput(stdout: string, stderr: string, exitCode: number): PlanParseResult;
114
+ /**
115
+ * Estimate the token count for a given prompt string.
116
+ *
117
+ * Used for pre-execution budget checks. Implementations may use heuristics
118
+ * (e.g., character count / 3) when exact tokenizers are unavailable.
119
+ *
120
+ * @param prompt The prompt text to estimate
121
+ * @returns TokenEstimate with input, output, and total projections
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * const estimate = adapter.estimateTokens('Fix the failing tests in auth.ts')
126
+ * if (estimate.total > budgetCap) throw new BudgetExceededError(...)
127
+ * ```
128
+ */
129
+ estimateTokens(prompt: string): TokenEstimate;
130
+ /**
131
+ * Return the capabilities of this adapter's underlying CLI agent.
132
+ *
133
+ * The returned object is used by the orchestrator for:
134
+ * - Routing decisions (which adapter handles which task type)
135
+ * - Plan generation eligibility
136
+ * - Budget mode selection
137
+ *
138
+ * @returns AdapterCapabilities for this agent
139
+ */
140
+ getCapabilities(): AdapterCapabilities;
141
+ }
142
+ /**
143
+ * AdapterRegistry — public interface for the adapter registry.
144
+ *
145
+ * Defined here (not in types.ts) to avoid a circular dependency between
146
+ * types.ts and worker-adapter.ts. AdapterRegistry references WorkerAdapter,
147
+ * which is defined in this file, so placing it here keeps the dep graph acyclic.
148
+ *
149
+ * The concrete implementation (AdapterRegistry class) lives in the monolith
150
+ * until Epic 41. This interface exposes only the public method surface.
151
+ *
152
+ * Usage:
153
+ * ```typescript
154
+ * const registry: AdapterRegistry = new ConcreteAdapterRegistry()
155
+ * const report = await registry.discoverAndRegister()
156
+ * const claude = registry.get('claude-code')
157
+ * ```
158
+ */
159
+ export interface AdapterRegistry {
160
+ /**
161
+ * Register an adapter by its id.
162
+ * Overwrites any existing adapter with the same id.
163
+ */
164
+ register(adapter: WorkerAdapter): void;
165
+ /**
166
+ * Retrieve a registered adapter by id.
167
+ * @returns The adapter, or undefined if not registered
168
+ */
169
+ get(id: AgentId): WorkerAdapter | undefined;
170
+ /**
171
+ * Return all registered adapters as an array.
172
+ */
173
+ getAll(): WorkerAdapter[];
174
+ /**
175
+ * Return all registered adapters that support plan generation.
176
+ */
177
+ getPlanningCapable(): WorkerAdapter[];
178
+ /**
179
+ * Instantiate all built-in adapters, run health checks sequentially,
180
+ * and register those that pass.
181
+ *
182
+ * Failed adapters are included in the report but do NOT prevent startup.
183
+ *
184
+ * @returns Discovery report with per-adapter results
185
+ */
186
+ discoverAndRegister(): Promise<DiscoveryReport>;
187
+ }
188
+ //# sourceMappingURL=worker-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/worker-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,eAAe,EAChB,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,aAAa;IAG5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IAEpB;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAE5B;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAI/B;;;;;;;;;;;;;;OAcG;IACH,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAE3C;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,YAAY,CAAA;IAEnE;;;;;;OAMG;IACH,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,YAAY,CAAA;IAEjF;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAA;IAEzE;;;;;;;OAOG;IACH,eAAe,CACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,eAAe,CAAA;IAElB;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAA;IAE7C;;;;;;;;;OASG;IACH,eAAe,IAAI,mBAAmB,CAAA;CACvC;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;IAEtC;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAAA;IAE3C;;OAEG;IACH,MAAM,IAAI,aAAa,EAAE,CAAA;IAEzB;;OAEG;IACH,kBAAkB,IAAI,aAAa,EAAE,CAAA;IAErC;;;;;;;OAOG;IACH,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;CAChD"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * WorkerAdapter interface definition
3
+ *
4
+ * This is the core pluggable interface that all CLI agent adapters must implement.
5
+ * Adding a new adapter requires only creating a class that satisfies this interface
6
+ * — no modifications to the orchestrator core are needed (NFR11, FR14).
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * class MyCustomAdapter implements WorkerAdapter {
11
+ * readonly id: AgentId = 'my-custom-agent'
12
+ * readonly displayName = 'My Custom Agent'
13
+ * readonly adapterVersion = '1.0.0'
14
+ * // ... implement all 7 methods
15
+ * }
16
+ * ```
17
+ */
18
+ export {};
19
+ //# sourceMappingURL=worker-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-adapter.js","sourceRoot":"","sources":["../../src/adapters/worker-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * BudgetTracker — interface and stub for tracking token/cost budgets.
3
+ * Migrated to @substrate-ai/core (Story 41-7)
4
+ */
5
+ import type { IBaseService } from '../types.js';
6
+ import type { TypedEventBus, CoreEvents } from '../events/index.js';
7
+ import type { ILogger } from '../dispatch/types.js';
8
+ export interface BudgetTracker extends IBaseService {
9
+ }
10
+ export declare class BudgetTrackerImpl implements BudgetTracker {
11
+ private readonly _eventBus;
12
+ private readonly _logger;
13
+ constructor(eventBus: TypedEventBus<CoreEvents>, logger?: ILogger);
14
+ initialize(): Promise<void>;
15
+ shutdown(): Promise<void>;
16
+ }
17
+ export interface BudgetTrackerOptions {
18
+ eventBus: TypedEventBus<CoreEvents>;
19
+ logger?: ILogger;
20
+ }
21
+ export declare function createBudgetTracker(options: BudgetTrackerOptions): BudgetTracker;
22
+ //# sourceMappingURL=budget-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget-tracker.d.ts","sourceRoot":"","sources":["../../src/budget/budget-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAMnD,MAAM,WAAW,aAAc,SAAQ,YAAY;CAElD;AAMD,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO;IAK3D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC;AAMD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACnC,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAEhF"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * BudgetTracker — interface and stub for tracking token/cost budgets.
3
+ * Migrated to @substrate-ai/core (Story 41-7)
4
+ */
5
+ // ---------------------------------------------------------------------------
6
+ // BudgetTrackerImpl (stub)
7
+ // ---------------------------------------------------------------------------
8
+ export class BudgetTrackerImpl {
9
+ _eventBus;
10
+ _logger;
11
+ constructor(eventBus, logger) {
12
+ this._eventBus = eventBus;
13
+ this._logger = logger ?? console;
14
+ }
15
+ async initialize() {
16
+ this._logger.info('BudgetTracker.initialize() — stub');
17
+ // Subscribe to budget events
18
+ this._eventBus.on('budget:warning', ({ taskId, currentSpend, limit }) => {
19
+ this._logger.warn({ taskId, currentSpend, limit }, 'budget:warning');
20
+ });
21
+ this._eventBus.on('budget:exceeded', ({ taskId, spend, limit }) => {
22
+ this._logger.error({ taskId, spend, limit }, 'budget:exceeded');
23
+ });
24
+ // Subscribe to task events for cost tracking
25
+ this._eventBus.on('task:complete', ({ taskId, result }) => {
26
+ this._logger.debug({ taskId, costUsd: result.costUsd }, 'task:complete — accumulate cost');
27
+ });
28
+ this._eventBus.on('task:progress', ({ taskId, tokensUsed }) => {
29
+ this._logger.debug({ taskId, tokensUsed }, 'task:progress — update token usage');
30
+ });
31
+ }
32
+ async shutdown() {
33
+ this._logger.info('BudgetTracker.shutdown() — stub');
34
+ }
35
+ }
36
+ export function createBudgetTracker(options) {
37
+ return new BudgetTrackerImpl(options.eventBus, options.logger);
38
+ }
39
+ //# sourceMappingURL=budget-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget-tracker.js","sourceRoot":"","sources":["../../src/budget/budget-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,MAAM,OAAO,iBAAiB;IACX,SAAS,CAA2B;IACpC,OAAO,CAAS;IAEjC,YAAY,QAAmC,EAAE,MAAgB;QAC/D,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,OAAO,CAAA;IAClC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;QAEtD,6BAA6B;QAC7B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE;YACtE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAA;QACtE,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;YAChE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAA;QACjE,CAAC,CAAC,CAAA;QAEF,6CAA6C;QAC7C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;YACxD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,iCAAiC,CAAC,CAAA;QAC5F,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;YAC5D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oCAAoC,CAAC,CAAA;QAClF,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;IACtD,CAAC;CACF;AAWD,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC/D,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;AAChE,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Budget module barrel export — @substrate-ai/core (Story 41-7)
3
+ */
4
+ export type { BudgetTracker, BudgetTrackerOptions } from './budget-tracker.js';
5
+ export { BudgetTrackerImpl, createBudgetTracker } from './budget-tracker.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/budget/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Budget module barrel export — @substrate-ai/core (Story 41-7)
3
+ */
4
+ export { BudgetTrackerImpl, createBudgetTracker } from './budget-tracker.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/budget/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * ConfigMigrator — registry and executor of config format migrations (FR63).
3
+ *
4
+ * Migrations are keyed as "N->M" strings (e.g. "1->2") and are applied
5
+ * sequentially when migrating across multiple versions.
6
+ */
7
+ export interface MigrationResult {
8
+ success: boolean;
9
+ fromVersion: string;
10
+ toVersion: string;
11
+ migratedKeys: string[];
12
+ manualStepsRequired: string[];
13
+ backupPath: string | null;
14
+ }
15
+ /**
16
+ * ConfigMigrator manages a registry of migration functions and applies them
17
+ * sequentially to upgrade config documents from one format version to another.
18
+ */
19
+ export declare class ConfigMigrator {
20
+ private readonly migrations;
21
+ /**
22
+ * Register a migration function for the given version key.
23
+ *
24
+ * @param key - Migration key in format "N->M" (e.g. "1->2")
25
+ * @param fn - Migration function that receives the raw config and returns the migrated config
26
+ */
27
+ register(key: string, fn: (config: unknown) => unknown): void;
28
+ /**
29
+ * Check whether a sequential migration path exists from fromVersion to toVersion.
30
+ *
31
+ * @param fromVersion - Starting version string
32
+ * @param toVersion - Target version string
33
+ * @returns true if every step in the path is registered
34
+ */
35
+ canMigrate(fromVersion: string, toVersion: string): boolean;
36
+ /**
37
+ * Apply sequential migrations from fromVersion to toVersion.
38
+ *
39
+ * If fromVersion === toVersion, returns a no-op success result.
40
+ * If any intermediate migration is missing, returns success:false.
41
+ *
42
+ * When filePath is provided and migration is needed, a backup is written to
43
+ * `${filePath}.bak.v${fromVersion}` before any transformations are applied.
44
+ *
45
+ * @param config - Raw config object to migrate
46
+ * @param fromVersion - Starting format version string
47
+ * @param toVersion - Target format version string
48
+ * @param filePath - Optional path to the source config file for backup creation
49
+ * @returns Object containing the (possibly migrated) config and a MigrationResult
50
+ */
51
+ migrate(config: unknown, fromVersion: string, toVersion: string, filePath?: string): {
52
+ config: unknown;
53
+ result: MigrationResult;
54
+ };
55
+ }
56
+ /** Singleton instance for use throughout the toolkit */
57
+ export declare const defaultConfigMigrator: ConfigMigrator;
58
+ //# sourceMappingURL=config-migrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-migrator.d.ts","sourceRoot":"","sources":["../../src/config/config-migrator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,mBAAmB,EAAE,MAAM,EAAE,CAAA;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuD;IAElF;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI;IAI7D;;;;;;OAMG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAgB3D;;;;;;;;;;;;;;OAcG;IACH,OAAO,CACL,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE;CA2GhD;AAED,wDAAwD;AACxD,eAAO,MAAM,qBAAqB,gBAAuB,CAAA"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * ConfigMigrator — registry and executor of config format migrations (FR63).
3
+ *
4
+ * Migrations are keyed as "N->M" strings (e.g. "1->2") and are applied
5
+ * sequentially when migrating across multiple versions.
6
+ */
7
+ import { writeFileSync, readFileSync } from 'fs';
8
+ /**
9
+ * ConfigMigrator manages a registry of migration functions and applies them
10
+ * sequentially to upgrade config documents from one format version to another.
11
+ */
12
+ export class ConfigMigrator {
13
+ migrations = new Map();
14
+ /**
15
+ * Register a migration function for the given version key.
16
+ *
17
+ * @param key - Migration key in format "N->M" (e.g. "1->2")
18
+ * @param fn - Migration function that receives the raw config and returns the migrated config
19
+ */
20
+ register(key, fn) {
21
+ this.migrations.set(key, fn);
22
+ }
23
+ /**
24
+ * Check whether a sequential migration path exists from fromVersion to toVersion.
25
+ *
26
+ * @param fromVersion - Starting version string
27
+ * @param toVersion - Target version string
28
+ * @returns true if every step in the path is registered
29
+ */
30
+ canMigrate(fromVersion, toVersion) {
31
+ if (fromVersion === toVersion)
32
+ return true;
33
+ const from = parseInt(fromVersion, 10);
34
+ const to = parseInt(toVersion, 10);
35
+ if (isNaN(from) || isNaN(to) || from >= to)
36
+ return false;
37
+ for (let v = from; v < to; v++) {
38
+ const key = `${String(v)}->${String(v + 1)}`;
39
+ if (!this.migrations.has(key))
40
+ return false;
41
+ }
42
+ return true;
43
+ }
44
+ /**
45
+ * Apply sequential migrations from fromVersion to toVersion.
46
+ *
47
+ * If fromVersion === toVersion, returns a no-op success result.
48
+ * If any intermediate migration is missing, returns success:false.
49
+ *
50
+ * When filePath is provided and migration is needed, a backup is written to
51
+ * `${filePath}.bak.v${fromVersion}` before any transformations are applied.
52
+ *
53
+ * @param config - Raw config object to migrate
54
+ * @param fromVersion - Starting format version string
55
+ * @param toVersion - Target format version string
56
+ * @param filePath - Optional path to the source config file for backup creation
57
+ * @returns Object containing the (possibly migrated) config and a MigrationResult
58
+ */
59
+ migrate(config, fromVersion, toVersion, filePath) {
60
+ // No-op: same version
61
+ if (fromVersion === toVersion) {
62
+ return {
63
+ config,
64
+ result: {
65
+ success: true,
66
+ fromVersion,
67
+ toVersion,
68
+ migratedKeys: [],
69
+ manualStepsRequired: [],
70
+ backupPath: null,
71
+ },
72
+ };
73
+ }
74
+ const from = parseInt(fromVersion, 10);
75
+ const to = parseInt(toVersion, 10);
76
+ if (isNaN(from) || isNaN(to) || from >= to) {
77
+ return {
78
+ config,
79
+ result: {
80
+ success: false,
81
+ fromVersion,
82
+ toVersion,
83
+ migratedKeys: [],
84
+ manualStepsRequired: [
85
+ `Cannot migrate from version "${fromVersion}" to "${toVersion}": invalid version range.`,
86
+ ],
87
+ backupPath: null,
88
+ },
89
+ };
90
+ }
91
+ // Check all steps exist first
92
+ for (let v = from; v < to; v++) {
93
+ const key = `${String(v)}->${String(v + 1)}`;
94
+ if (!this.migrations.has(key)) {
95
+ return {
96
+ config,
97
+ result: {
98
+ success: false,
99
+ fromVersion,
100
+ toVersion,
101
+ migratedKeys: [],
102
+ manualStepsRequired: [
103
+ `Missing migration step: "${key}". ` +
104
+ `Cannot automatically migrate from version "${fromVersion}" to "${toVersion}". ` +
105
+ `Please upgrade the toolkit: npm install -g substrate@latest`,
106
+ ],
107
+ backupPath: null,
108
+ },
109
+ };
110
+ }
111
+ }
112
+ // Write backup file before applying any migrations (AC4)
113
+ let backupPath = null;
114
+ if (filePath !== undefined) {
115
+ backupPath = `${filePath}.bak.v${fromVersion}`;
116
+ const originalContent = readFileSync(filePath, 'utf-8');
117
+ writeFileSync(backupPath, originalContent, 'utf-8');
118
+ }
119
+ // Apply migrations sequentially
120
+ let current = config;
121
+ const migratedKeys = [];
122
+ for (let v = from; v < to; v++) {
123
+ const key = `${String(v)}->${String(v + 1)}`;
124
+ const fn = this.migrations.get(key);
125
+ const before = JSON.stringify(current);
126
+ current = fn(current);
127
+ const after = JSON.stringify(current);
128
+ // Detect changed keys by comparing against previous-step output (not original config)
129
+ if (current !== null &&
130
+ typeof current === 'object' &&
131
+ !Array.isArray(current)) {
132
+ const beforeObj = JSON.parse(before);
133
+ const afterObj = JSON.parse(after);
134
+ for (const k of Object.keys(afterObj)) {
135
+ if (JSON.stringify(afterObj[k]) !== JSON.stringify(beforeObj[k])) {
136
+ if (!migratedKeys.includes(k)) {
137
+ migratedKeys.push(k);
138
+ }
139
+ }
140
+ }
141
+ }
142
+ }
143
+ return {
144
+ config: current,
145
+ result: {
146
+ success: true,
147
+ fromVersion,
148
+ toVersion,
149
+ migratedKeys,
150
+ manualStepsRequired: [],
151
+ backupPath,
152
+ },
153
+ };
154
+ }
155
+ }
156
+ /** Singleton instance for use throughout the toolkit */
157
+ export const defaultConfigMigrator = new ConfigMigrator();
158
+ //# sourceMappingURL=config-migrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-migrator.js","sourceRoot":"","sources":["../../src/config/config-migrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * ConfigSystem implementation — loads configuration in hierarchy order and
3
+ * exposes get/set/getMasked operations.
4
+ *
5
+ * Hierarchy (lowest → highest priority):
6
+ * built-in defaults
7
+ * → global user config (~/.substrate/config.yaml)
8
+ * → project config (./.substrate/config.yaml)
9
+ * → environment vars (ADT_* prefixed)
10
+ * → CLI flag overrides (passed via ConfigSystemOptions.cliOverrides)
11
+ *
12
+ * No imports from src/ (monolith) — zero monolith dependencies.
13
+ */
14
+ import { type SubstrateConfig, type ConfigSystem, type ConfigSystemOptions } from './types.js';
15
+ type DeepPartial<T> = {
16
+ [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];
17
+ };
18
+ export declare function deepMerge<T extends Record<string, unknown>>(base: T, override: DeepPartial<T>): T;
19
+ /**
20
+ * Get a value from a nested object using dot-notation key.
21
+ */
22
+ export declare function getByPath(obj: unknown, path: string): unknown;
23
+ /**
24
+ * Return a deep clone of `obj` with `path` set to `value`.
25
+ * Creates intermediate objects as needed.
26
+ */
27
+ export declare function setByPath(obj: Record<string, unknown>, path: string, value: unknown): Record<string, unknown>;
28
+ /**
29
+ * Check whether a config format version is compatible with this toolkit.
30
+ *
31
+ * @param version - Version string to check
32
+ * @returns true if the version is in SUPPORTED_CONFIG_FORMAT_VERSIONS
33
+ */
34
+ export declare function getVersionCompatibility(version: string): boolean;
35
+ export declare class ConfigSystemImpl implements ConfigSystem {
36
+ private _config;
37
+ private readonly _projectConfigDir;
38
+ private readonly _globalConfigDir;
39
+ private readonly _cliOverrides;
40
+ private readonly _logger;
41
+ constructor(options?: ConfigSystemOptions);
42
+ get isLoaded(): boolean;
43
+ load(): Promise<void>;
44
+ getConfig(): SubstrateConfig;
45
+ get(key: string): unknown;
46
+ set(key: string, value: unknown): Promise<void>;
47
+ getMasked(): SubstrateConfig;
48
+ getConfigFormatVersion(): string;
49
+ isCompatible(version: string): boolean;
50
+ private _fileExists;
51
+ private _loadYamlFile;
52
+ }
53
+ /**
54
+ * Create a new ConfigSystem instance.
55
+ *
56
+ * @example
57
+ * const config = createConfigSystem()
58
+ * await config.load()
59
+ * const cfg = config.getConfig()
60
+ */
61
+ export declare function createConfigSystem(options?: ConfigSystemOptions): ConfigSystem;
62
+ export {};
63
+ //# sourceMappingURL=config-system-impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-system-impl.d.ts","sourceRoot":"","sources":["../../src/config/config-system-impl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,OAAO,EAKL,KAAK,eAAe,EAEpB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAA;AA2CnB,KAAK,WAAW,CAAC,CAAC,IAAI;KACnB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChE,CAAA;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GACvB,CAAC,CAqBH;AA6DD;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ7D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBzB;AAMD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhE;AAMD,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,GAAE,mBAAwB;IAW7C,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2D3B,SAAS,IAAI,eAAe;IAU5B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKnB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAwDrD,SAAS,IAAI,eAAe;IAK5B,sBAAsB,IAAI,MAAM;IAIhC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;YAQxB,WAAW;YASX,aAAa;CA4D5B;AAMD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAElF"}