@bradygaster/squad-sdk 0.7.0 → 0.8.2

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 (354) hide show
  1. package/README.md +296 -296
  2. package/dist/adapter/client.d.ts +243 -0
  3. package/dist/adapter/client.d.ts.map +1 -0
  4. package/dist/adapter/client.js +567 -0
  5. package/dist/adapter/client.js.map +1 -0
  6. package/dist/adapter/errors.d.ts +260 -0
  7. package/dist/adapter/errors.d.ts.map +1 -0
  8. package/dist/adapter/errors.js +362 -0
  9. package/dist/adapter/errors.js.map +1 -0
  10. package/dist/adapter/types.d.ts +779 -0
  11. package/dist/adapter/types.d.ts.map +1 -0
  12. package/dist/adapter/types.js +11 -0
  13. package/dist/adapter/types.js.map +1 -0
  14. package/dist/agents/charter-compiler.d.ts +102 -0
  15. package/dist/agents/charter-compiler.d.ts.map +1 -0
  16. package/dist/agents/charter-compiler.js +157 -0
  17. package/dist/agents/charter-compiler.js.map +1 -0
  18. package/dist/agents/history-shadow.d.ts +80 -0
  19. package/dist/agents/history-shadow.d.ts.map +1 -0
  20. package/dist/agents/history-shadow.js +239 -0
  21. package/dist/agents/history-shadow.js.map +1 -0
  22. package/dist/agents/index.d.ts +71 -0
  23. package/dist/agents/index.d.ts.map +1 -0
  24. package/dist/agents/index.js +183 -0
  25. package/dist/agents/index.js.map +1 -0
  26. package/dist/agents/lifecycle.d.ts +138 -0
  27. package/dist/agents/lifecycle.d.ts.map +1 -0
  28. package/dist/agents/lifecycle.js +284 -0
  29. package/dist/agents/lifecycle.js.map +1 -0
  30. package/dist/agents/model-selector.d.ts +80 -0
  31. package/dist/agents/model-selector.d.ts.map +1 -0
  32. package/dist/agents/model-selector.js +171 -0
  33. package/dist/agents/model-selector.js.map +1 -0
  34. package/dist/agents/onboarding.d.ts +65 -0
  35. package/dist/agents/onboarding.d.ts.map +1 -0
  36. package/dist/agents/onboarding.js +373 -0
  37. package/dist/agents/onboarding.js.map +1 -0
  38. package/dist/build/bundle.d.ts +32 -0
  39. package/dist/build/bundle.d.ts.map +1 -0
  40. package/dist/build/bundle.js +97 -0
  41. package/dist/build/bundle.js.map +1 -0
  42. package/dist/build/ci-pipeline.d.ts +51 -0
  43. package/dist/build/ci-pipeline.d.ts.map +1 -0
  44. package/dist/build/ci-pipeline.js +180 -0
  45. package/dist/build/ci-pipeline.js.map +1 -0
  46. package/dist/build/github-dist.d.ts +37 -0
  47. package/dist/build/github-dist.d.ts.map +1 -0
  48. package/dist/build/github-dist.js +117 -0
  49. package/dist/build/github-dist.js.map +1 -0
  50. package/dist/build/index.d.ts +11 -0
  51. package/dist/build/index.d.ts.map +1 -0
  52. package/dist/build/index.js +11 -0
  53. package/dist/build/index.js.map +1 -0
  54. package/dist/build/install-migration.d.ts +28 -0
  55. package/dist/build/install-migration.d.ts.map +1 -0
  56. package/dist/build/install-migration.js +103 -0
  57. package/dist/build/install-migration.js.map +1 -0
  58. package/dist/build/npm-package.d.ts +54 -0
  59. package/dist/build/npm-package.d.ts.map +1 -0
  60. package/dist/build/npm-package.js +128 -0
  61. package/dist/build/npm-package.js.map +1 -0
  62. package/dist/build/release.d.ts +108 -0
  63. package/dist/build/release.d.ts.map +1 -0
  64. package/dist/build/release.js +295 -0
  65. package/dist/build/release.js.map +1 -0
  66. package/dist/build/versioning.d.ts +38 -0
  67. package/dist/build/versioning.d.ts.map +1 -0
  68. package/dist/build/versioning.js +113 -0
  69. package/dist/build/versioning.js.map +1 -0
  70. package/dist/casting/casting-engine.d.ts +60 -0
  71. package/dist/casting/casting-engine.d.ts.map +1 -0
  72. package/dist/casting/casting-engine.js +223 -0
  73. package/dist/casting/casting-engine.js.map +1 -0
  74. package/dist/casting/casting-history.d.ts +54 -0
  75. package/dist/casting/casting-history.d.ts.map +1 -0
  76. package/dist/casting/casting-history.js +63 -0
  77. package/dist/casting/casting-history.js.map +1 -0
  78. package/dist/casting/index.d.ts +46 -0
  79. package/dist/casting/index.d.ts.map +1 -0
  80. package/dist/casting/index.js +45 -0
  81. package/dist/casting/index.js.map +1 -0
  82. package/dist/client/event-bus.d.ts +29 -0
  83. package/dist/client/event-bus.d.ts.map +1 -0
  84. package/dist/client/event-bus.js +52 -0
  85. package/dist/client/event-bus.js.map +1 -0
  86. package/dist/client/index.d.ts +100 -0
  87. package/dist/client/index.d.ts.map +1 -0
  88. package/dist/client/index.js +170 -0
  89. package/dist/client/index.js.map +1 -0
  90. package/dist/client/session-pool.d.ts +66 -0
  91. package/dist/client/session-pool.d.ts.map +1 -0
  92. package/dist/client/session-pool.js +145 -0
  93. package/dist/client/session-pool.js.map +1 -0
  94. package/dist/config/agent-doc.d.ts +43 -0
  95. package/dist/config/agent-doc.d.ts.map +1 -0
  96. package/dist/config/agent-doc.js +158 -0
  97. package/dist/config/agent-doc.js.map +1 -0
  98. package/dist/config/agent-source.d.ts +95 -0
  99. package/dist/config/agent-source.d.ts.map +1 -0
  100. package/dist/config/agent-source.js +274 -0
  101. package/dist/config/agent-source.js.map +1 -0
  102. package/dist/config/doc-sync.d.ts +66 -0
  103. package/dist/config/doc-sync.d.ts.map +1 -0
  104. package/dist/config/doc-sync.js +270 -0
  105. package/dist/config/doc-sync.js.map +1 -0
  106. package/dist/config/feature-audit.d.ts +49 -0
  107. package/dist/config/feature-audit.d.ts.map +1 -0
  108. package/dist/config/feature-audit.js +148 -0
  109. package/dist/config/feature-audit.js.map +1 -0
  110. package/dist/config/index.d.ts +15 -0
  111. package/dist/config/index.d.ts.map +1 -0
  112. package/dist/config/index.js +15 -0
  113. package/dist/config/index.js.map +1 -0
  114. package/dist/config/init.d.ts +61 -0
  115. package/dist/config/init.d.ts.map +1 -0
  116. package/dist/config/init.js +376 -0
  117. package/dist/config/init.js.map +1 -0
  118. package/dist/config/legacy-fallback.d.ts +83 -0
  119. package/dist/config/legacy-fallback.d.ts.map +1 -0
  120. package/dist/config/legacy-fallback.js +212 -0
  121. package/dist/config/legacy-fallback.js.map +1 -0
  122. package/dist/config/markdown-migration.d.ts +157 -0
  123. package/dist/config/markdown-migration.d.ts.map +1 -0
  124. package/dist/config/markdown-migration.js +434 -0
  125. package/dist/config/markdown-migration.js.map +1 -0
  126. package/dist/config/migration.d.ts +123 -0
  127. package/dist/config/migration.d.ts.map +1 -0
  128. package/dist/config/migration.js +273 -0
  129. package/dist/config/migration.js.map +1 -0
  130. package/dist/config/migrations/index.d.ts +36 -0
  131. package/dist/config/migrations/index.d.ts.map +1 -0
  132. package/dist/config/migrations/index.js +216 -0
  133. package/dist/config/migrations/index.js.map +1 -0
  134. package/dist/config/models.d.ts +134 -0
  135. package/dist/config/models.d.ts.map +1 -0
  136. package/dist/config/models.js +354 -0
  137. package/dist/config/models.js.map +1 -0
  138. package/dist/config/routing.d.ts +118 -0
  139. package/dist/config/routing.d.ts.map +1 -0
  140. package/dist/config/routing.js +247 -0
  141. package/dist/config/routing.js.map +1 -0
  142. package/dist/config/schema.d.ts +72 -0
  143. package/dist/config/schema.d.ts.map +1 -0
  144. package/dist/config/schema.js +63 -0
  145. package/dist/config/schema.js.map +1 -0
  146. package/dist/coordinator/coordinator.d.ts +82 -0
  147. package/dist/coordinator/coordinator.d.ts.map +1 -0
  148. package/dist/coordinator/coordinator.js +192 -0
  149. package/dist/coordinator/coordinator.js.map +1 -0
  150. package/dist/coordinator/direct-response.d.ts +83 -0
  151. package/dist/coordinator/direct-response.d.ts.map +1 -0
  152. package/dist/coordinator/direct-response.js +187 -0
  153. package/dist/coordinator/direct-response.js.map +1 -0
  154. package/dist/coordinator/fan-out.d.ts +83 -0
  155. package/dist/coordinator/fan-out.d.ts.map +1 -0
  156. package/dist/coordinator/fan-out.js +161 -0
  157. package/dist/coordinator/fan-out.js.map +1 -0
  158. package/dist/coordinator/index.d.ts +62 -0
  159. package/dist/coordinator/index.d.ts.map +1 -0
  160. package/dist/coordinator/index.js +171 -0
  161. package/dist/coordinator/index.js.map +1 -0
  162. package/dist/coordinator/response-tiers.d.ts +49 -0
  163. package/dist/coordinator/response-tiers.d.ts.map +1 -0
  164. package/dist/coordinator/response-tiers.js +149 -0
  165. package/dist/coordinator/response-tiers.js.map +1 -0
  166. package/dist/hooks/index.d.ts +103 -0
  167. package/dist/hooks/index.d.ts.map +1 -0
  168. package/dist/hooks/index.js +279 -0
  169. package/dist/hooks/index.js.map +1 -0
  170. package/dist/index.d.ts +33 -1
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +33 -3
  173. package/dist/index.js.map +1 -1
  174. package/dist/marketplace/backend.d.ts +35 -0
  175. package/dist/marketplace/backend.d.ts.map +1 -0
  176. package/dist/marketplace/backend.js +99 -0
  177. package/dist/marketplace/backend.js.map +1 -0
  178. package/dist/marketplace/browser.d.ts +33 -0
  179. package/dist/marketplace/browser.d.ts.map +1 -0
  180. package/dist/marketplace/browser.js +97 -0
  181. package/dist/marketplace/browser.js.map +1 -0
  182. package/dist/marketplace/extension-adapter.d.ts +51 -0
  183. package/dist/marketplace/extension-adapter.d.ts.map +1 -0
  184. package/dist/marketplace/extension-adapter.js +81 -0
  185. package/dist/marketplace/extension-adapter.js.map +1 -0
  186. package/dist/marketplace/index.d.ts +51 -0
  187. package/dist/marketplace/index.d.ts.map +1 -0
  188. package/dist/marketplace/index.js +108 -0
  189. package/dist/marketplace/index.js.map +1 -0
  190. package/dist/marketplace/packaging.d.ts +25 -0
  191. package/dist/marketplace/packaging.d.ts.map +1 -0
  192. package/dist/marketplace/packaging.js +117 -0
  193. package/dist/marketplace/packaging.js.map +1 -0
  194. package/dist/marketplace/schema.d.ts +50 -0
  195. package/dist/marketplace/schema.d.ts.map +1 -0
  196. package/dist/marketplace/schema.js +120 -0
  197. package/dist/marketplace/schema.js.map +1 -0
  198. package/dist/marketplace/security.d.ts +26 -0
  199. package/dist/marketplace/security.d.ts.map +1 -0
  200. package/dist/marketplace/security.js +199 -0
  201. package/dist/marketplace/security.js.map +1 -0
  202. package/dist/parsers.d.ts +15 -0
  203. package/dist/parsers.d.ts.map +1 -0
  204. package/dist/parsers.js +15 -0
  205. package/dist/parsers.js.map +1 -0
  206. package/dist/ralph/index.d.ts +58 -0
  207. package/dist/ralph/index.d.ts.map +1 -0
  208. package/dist/ralph/index.js +128 -0
  209. package/dist/ralph/index.js.map +1 -0
  210. package/dist/resolution.d.ts +47 -0
  211. package/dist/resolution.d.ts.map +1 -0
  212. package/dist/resolution.js +106 -0
  213. package/dist/resolution.js.map +1 -0
  214. package/dist/runtime/benchmarks.d.ts +121 -0
  215. package/dist/runtime/benchmarks.d.ts.map +1 -0
  216. package/dist/runtime/benchmarks.js +251 -0
  217. package/dist/runtime/benchmarks.js.map +1 -0
  218. package/dist/runtime/config.d.ts +314 -0
  219. package/dist/runtime/config.d.ts.map +1 -0
  220. package/dist/runtime/config.js +467 -0
  221. package/dist/runtime/config.js.map +1 -0
  222. package/dist/runtime/constants.d.ts +35 -0
  223. package/dist/runtime/constants.d.ts.map +1 -0
  224. package/dist/runtime/constants.js +58 -0
  225. package/dist/runtime/constants.js.map +1 -0
  226. package/dist/runtime/cost-tracker.d.ts +73 -0
  227. package/dist/runtime/cost-tracker.d.ts.map +1 -0
  228. package/dist/runtime/cost-tracker.js +157 -0
  229. package/dist/runtime/cost-tracker.js.map +1 -0
  230. package/dist/runtime/event-bus-otel-bridge.d.ts +19 -0
  231. package/dist/runtime/event-bus-otel-bridge.d.ts.map +1 -0
  232. package/dist/runtime/event-bus-otel-bridge.js +61 -0
  233. package/dist/runtime/event-bus-otel-bridge.js.map +1 -0
  234. package/dist/runtime/event-bus-ws-bridge.d.ts +35 -0
  235. package/dist/runtime/event-bus-ws-bridge.d.ts.map +1 -0
  236. package/dist/runtime/event-bus-ws-bridge.js +55 -0
  237. package/dist/runtime/event-bus-ws-bridge.js.map +1 -0
  238. package/dist/runtime/event-bus.d.ts +190 -0
  239. package/dist/runtime/event-bus.d.ts.map +1 -0
  240. package/dist/runtime/event-bus.js +218 -0
  241. package/dist/runtime/event-bus.js.map +1 -0
  242. package/dist/runtime/event-payloads.d.ts +108 -0
  243. package/dist/runtime/event-payloads.d.ts.map +1 -0
  244. package/dist/runtime/event-payloads.js +28 -0
  245. package/dist/runtime/event-payloads.js.map +1 -0
  246. package/dist/runtime/health.d.ts +66 -0
  247. package/dist/runtime/health.d.ts.map +1 -0
  248. package/dist/runtime/health.js +112 -0
  249. package/dist/runtime/health.js.map +1 -0
  250. package/dist/runtime/i18n.d.ts +54 -0
  251. package/dist/runtime/i18n.d.ts.map +1 -0
  252. package/dist/runtime/i18n.js +126 -0
  253. package/dist/runtime/i18n.js.map +1 -0
  254. package/dist/runtime/offline.d.ts +64 -0
  255. package/dist/runtime/offline.d.ts.map +1 -0
  256. package/dist/runtime/offline.js +108 -0
  257. package/dist/runtime/offline.js.map +1 -0
  258. package/dist/runtime/otel-bridge.d.ts +52 -0
  259. package/dist/runtime/otel-bridge.d.ts.map +1 -0
  260. package/dist/runtime/otel-bridge.js +132 -0
  261. package/dist/runtime/otel-bridge.js.map +1 -0
  262. package/dist/runtime/otel-init.d.ts +72 -0
  263. package/dist/runtime/otel-init.d.ts.map +1 -0
  264. package/dist/runtime/otel-init.js +68 -0
  265. package/dist/runtime/otel-init.js.map +1 -0
  266. package/dist/runtime/otel-metrics.d.ts +42 -0
  267. package/dist/runtime/otel-metrics.d.ts.map +1 -0
  268. package/dist/runtime/otel-metrics.js +196 -0
  269. package/dist/runtime/otel-metrics.js.map +1 -0
  270. package/dist/runtime/otel.d.ts +53 -0
  271. package/dist/runtime/otel.d.ts.map +1 -0
  272. package/dist/runtime/otel.js +127 -0
  273. package/dist/runtime/otel.js.map +1 -0
  274. package/dist/runtime/squad-observer.d.ts +75 -0
  275. package/dist/runtime/squad-observer.d.ts.map +1 -0
  276. package/dist/runtime/squad-observer.js +190 -0
  277. package/dist/runtime/squad-observer.js.map +1 -0
  278. package/dist/runtime/streaming.d.ts +106 -0
  279. package/dist/runtime/streaming.d.ts.map +1 -0
  280. package/dist/runtime/streaming.js +192 -0
  281. package/dist/runtime/streaming.js.map +1 -0
  282. package/dist/runtime/telemetry.d.ts +82 -0
  283. package/dist/runtime/telemetry.d.ts.map +1 -0
  284. package/dist/runtime/telemetry.js +120 -0
  285. package/dist/runtime/telemetry.js.map +1 -0
  286. package/dist/sharing/agent-repo.d.ts +33 -0
  287. package/dist/sharing/agent-repo.d.ts.map +1 -0
  288. package/dist/sharing/agent-repo.js +79 -0
  289. package/dist/sharing/agent-repo.js.map +1 -0
  290. package/dist/sharing/cache.d.ts +36 -0
  291. package/dist/sharing/cache.d.ts.map +1 -0
  292. package/dist/sharing/cache.js +85 -0
  293. package/dist/sharing/cache.js.map +1 -0
  294. package/dist/sharing/conflicts.d.ts +32 -0
  295. package/dist/sharing/conflicts.d.ts.map +1 -0
  296. package/dist/sharing/conflicts.js +121 -0
  297. package/dist/sharing/conflicts.js.map +1 -0
  298. package/dist/sharing/export.d.ts +50 -0
  299. package/dist/sharing/export.d.ts.map +1 -0
  300. package/dist/sharing/export.js +156 -0
  301. package/dist/sharing/export.js.map +1 -0
  302. package/dist/sharing/history-split.d.ts +34 -0
  303. package/dist/sharing/history-split.d.ts.map +1 -0
  304. package/dist/sharing/history-split.js +101 -0
  305. package/dist/sharing/history-split.js.map +1 -0
  306. package/dist/sharing/import.d.ts +37 -0
  307. package/dist/sharing/import.d.ts.map +1 -0
  308. package/dist/sharing/import.js +138 -0
  309. package/dist/sharing/import.js.map +1 -0
  310. package/dist/sharing/index.d.ts +11 -0
  311. package/dist/sharing/index.d.ts.map +1 -0
  312. package/dist/sharing/index.js +11 -0
  313. package/dist/sharing/index.js.map +1 -0
  314. package/dist/sharing/versioning.d.ts +32 -0
  315. package/dist/sharing/versioning.d.ts.map +1 -0
  316. package/dist/sharing/versioning.js +64 -0
  317. package/dist/sharing/versioning.js.map +1 -0
  318. package/dist/skills/index.d.ts +49 -0
  319. package/dist/skills/index.d.ts.map +1 -0
  320. package/dist/skills/index.js +85 -0
  321. package/dist/skills/index.js.map +1 -0
  322. package/dist/skills/skill-loader.d.ts +56 -0
  323. package/dist/skills/skill-loader.d.ts.map +1 -0
  324. package/dist/skills/skill-loader.js +106 -0
  325. package/dist/skills/skill-loader.js.map +1 -0
  326. package/dist/skills/skill-source.d.ts +63 -0
  327. package/dist/skills/skill-source.d.ts.map +1 -0
  328. package/dist/skills/skill-source.js +199 -0
  329. package/dist/skills/skill-source.js.map +1 -0
  330. package/dist/tools/index.d.ts +95 -0
  331. package/dist/tools/index.d.ts.map +1 -0
  332. package/dist/tools/index.js +475 -0
  333. package/dist/tools/index.js.map +1 -0
  334. package/dist/types.d.ts +43 -0
  335. package/dist/types.d.ts.map +1 -0
  336. package/dist/types.js +8 -0
  337. package/dist/types.js.map +1 -0
  338. package/dist/upstream/index.d.ts +8 -0
  339. package/dist/upstream/index.d.ts.map +1 -0
  340. package/dist/upstream/index.js +7 -0
  341. package/dist/upstream/index.js.map +1 -0
  342. package/dist/upstream/resolver.d.ts +37 -0
  343. package/dist/upstream/resolver.d.ts.map +1 -0
  344. package/dist/upstream/resolver.js +234 -0
  345. package/dist/upstream/resolver.js.map +1 -0
  346. package/dist/upstream/types.d.ts +55 -0
  347. package/dist/upstream/types.d.ts.map +1 -0
  348. package/dist/upstream/types.js +11 -0
  349. package/dist/upstream/types.js.map +1 -0
  350. package/dist/utils/normalize-eol.d.ts +6 -0
  351. package/dist/utils/normalize-eol.d.ts.map +1 -0
  352. package/dist/utils/normalize-eol.js +8 -0
  353. package/dist/utils/normalize-eol.js.map +1 -0
  354. package/package.json +197 -63
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-fallback.js","sourceRoot":"","sources":["../../src/config/legacy-fallback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Markdown-to-Config Migration
3
+ *
4
+ * Converts legacy .ai-team/ markdown files (team.md, routing.md, decisions.md)
5
+ * into a typed SquadConfig object, enabling migration from the markdown-driven
6
+ * workflow to the typed squad.config.ts format.
7
+ *
8
+ * @module config/markdown-migration
9
+ */
10
+ import type { SquadConfig } from '../runtime/config.js';
11
+ /**
12
+ * Agent info extracted from team.md.
13
+ */
14
+ export interface ParsedAgent {
15
+ /** Agent name (kebab-case) */
16
+ name: string;
17
+ /** Agent role */
18
+ role: string;
19
+ /** Skills / capabilities */
20
+ skills: string[];
21
+ /** Preferred model (if specified) */
22
+ model?: string;
23
+ /** Status */
24
+ status?: string;
25
+ /** Alternative names / aliases */
26
+ aliases?: string[];
27
+ /** Whether this agent is auto-assigned to matching work */
28
+ autoAssign?: boolean;
29
+ }
30
+ /**
31
+ * Routing rule extracted from routing.md.
32
+ */
33
+ export interface ParsedRoutingRule {
34
+ /** Work type or pattern */
35
+ workType: string;
36
+ /** Target agents */
37
+ agents: string[];
38
+ /** Example descriptions */
39
+ examples?: string[];
40
+ }
41
+ /**
42
+ * Decision extracted from decisions.md.
43
+ */
44
+ export interface ParsedDecision {
45
+ /** Decision title */
46
+ title: string;
47
+ /** Decision body / description */
48
+ body: string;
49
+ /** Whether this decision affects configuration */
50
+ configRelevant: boolean;
51
+ /** ISO 8601 date extracted from heading (e.g. "2026-02-21") */
52
+ date?: string;
53
+ /** Author extracted from **By:** lines */
54
+ author?: string;
55
+ /** Heading depth (2 for ##, 3 for ###) */
56
+ headingLevel?: number;
57
+ }
58
+ /**
59
+ * Complete result of parsing all markdown files.
60
+ */
61
+ export interface MarkdownParseResult {
62
+ /** Agents parsed from team.md */
63
+ agents: ParsedAgent[];
64
+ /** Routing rules parsed from routing.md */
65
+ routingRules: ParsedRoutingRule[];
66
+ /** Decisions parsed from decisions.md */
67
+ decisions: ParsedDecision[];
68
+ /** Warnings about unparseable sections */
69
+ warnings: string[];
70
+ }
71
+ /**
72
+ * Options for markdown migration.
73
+ */
74
+ export interface MarkdownMigrationOptions {
75
+ /** Content of team.md (may be undefined if file missing) */
76
+ teamMd?: string;
77
+ /** Content of routing.md (may be undefined if file missing) */
78
+ routingMd?: string;
79
+ /** Content of decisions.md (may be undefined if file missing) */
80
+ decisionsMd?: string;
81
+ /** Base config to merge into (defaults to DEFAULT_CONFIG) */
82
+ baseConfig?: Partial<SquadConfig>;
83
+ }
84
+ /**
85
+ * Result of a markdown migration.
86
+ */
87
+ export interface MarkdownMigrationResult {
88
+ /** Generated SquadConfig */
89
+ config: SquadConfig;
90
+ /** Parse result with all extracted data */
91
+ parsed: MarkdownParseResult;
92
+ /** Sections that were successfully migrated */
93
+ migratedSections: string[];
94
+ /** Sections that were skipped or missing */
95
+ skippedSections: string[];
96
+ }
97
+ /**
98
+ * Parses team.md content into agent configurations.
99
+ *
100
+ * Supports two formats:
101
+ * 1. Table format: | Name | Role | Skills | Model |
102
+ * 2. Section format: ## Agent Name \n Role: ... \n Skills: ...
103
+ *
104
+ * @param content - Raw team.md content
105
+ * @returns Array of parsed agents and any warnings
106
+ */
107
+ export declare function parseTeamMarkdown(content: string): {
108
+ agents: ParsedAgent[];
109
+ warnings: string[];
110
+ };
111
+ /**
112
+ * Parses routing.md content into routing rules.
113
+ *
114
+ * Expected table format:
115
+ * | Work Type | Route To | Examples |
116
+ * |-----------|----------|----------|
117
+ * | feature-dev | Lead | New features |
118
+ *
119
+ * @param content - Raw routing.md content
120
+ * @returns Parsed routing rules and warnings
121
+ */
122
+ export declare function parseRoutingRulesMarkdown(content: string): {
123
+ rules: ParsedRoutingRule[];
124
+ warnings: string[];
125
+ };
126
+ /**
127
+ * Parses decisions.md content to extract config-relevant decisions.
128
+ *
129
+ * Looks for headings that denote individual decisions and checks body text
130
+ * for config-relevant keywords (model, routing, governance, tier, agent).
131
+ *
132
+ * @param content - Raw decisions.md content
133
+ * @returns Parsed decisions and warnings
134
+ */
135
+ export declare function parseDecisionsMarkdown(content: string): {
136
+ decisions: ParsedDecision[];
137
+ warnings: string[];
138
+ };
139
+ /**
140
+ * Converts parsed markdown data into a typed SquadConfig.
141
+ *
142
+ * @param parsed - Result from parsing all markdown files
143
+ * @param base - Optional base config to merge with
144
+ * @returns Generated SquadConfig
145
+ */
146
+ export declare function generateConfigFromParsed(parsed: MarkdownParseResult, base?: Partial<SquadConfig>): SquadConfig;
147
+ /**
148
+ * Migrates legacy markdown configuration files to a typed SquadConfig.
149
+ *
150
+ * Handles partial migrations gracefully — any combination of files can be
151
+ * missing and the result will still be a valid SquadConfig.
152
+ *
153
+ * @param options - Markdown file contents and options
154
+ * @returns Migration result with generated config and diagnostics
155
+ */
156
+ export declare function migrateMarkdownToConfig(options: MarkdownMigrationOptions): MarkdownMigrationResult;
157
+ //# sourceMappingURL=markdown-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-migration.d.ts","sourceRoot":"","sources":["../../src/config/markdown-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,434 @@
1
+ /**
2
+ * Markdown-to-Config Migration
3
+ *
4
+ * Converts legacy .ai-team/ markdown files (team.md, routing.md, decisions.md)
5
+ * into a typed SquadConfig object, enabling migration from the markdown-driven
6
+ * workflow to the typed squad.config.ts format.
7
+ *
8
+ * @module config/markdown-migration
9
+ */
10
+ import { normalizeEol } from '../utils/normalize-eol.js';
11
+ import { DEFAULT_CONFIG } from '../runtime/config.js';
12
+ // ============================================================================
13
+ // team.md Parsing
14
+ // ============================================================================
15
+ /**
16
+ * Parses team.md content into agent configurations.
17
+ *
18
+ * Supports two formats:
19
+ * 1. Table format: | Name | Role | Skills | Model |
20
+ * 2. Section format: ## Agent Name \n Role: ... \n Skills: ...
21
+ *
22
+ * @param content - Raw team.md content
23
+ * @returns Array of parsed agents and any warnings
24
+ */
25
+ export function parseTeamMarkdown(content) {
26
+ content = normalizeEol(content);
27
+ const agents = [];
28
+ const warnings = [];
29
+ if (!content || !content.trim()) {
30
+ return { agents, warnings };
31
+ }
32
+ const lines = content.split('\n');
33
+ // Try table format first
34
+ const tableAgents = parseTeamTable(lines);
35
+ if (tableAgents.length > 0) {
36
+ return { agents: tableAgents, warnings };
37
+ }
38
+ // Fall back to section format
39
+ let currentAgent = null;
40
+ let inRoster = false;
41
+ for (const line of lines) {
42
+ const trimmed = line.trim();
43
+ // Detect roster / team section
44
+ if (/^##\s+(roster|team\s+members?|agents?)/i.test(trimmed)) {
45
+ inRoster = true;
46
+ continue;
47
+ }
48
+ // New section header (not roster-related) — stop
49
+ if (inRoster && /^##\s+/.test(trimmed) && !/roster|team|agent/i.test(trimmed)) {
50
+ if (currentAgent?.name) {
51
+ agents.push(finalizeAgent(currentAgent));
52
+ }
53
+ currentAgent = null;
54
+ inRoster = false;
55
+ continue;
56
+ }
57
+ // Agent header (### Agent Name or **Agent Name**)
58
+ if (inRoster && (/^###\s+/.test(trimmed) || /^\*\*[^*]+\*\*/.test(trimmed))) {
59
+ if (currentAgent?.name) {
60
+ agents.push(finalizeAgent(currentAgent));
61
+ }
62
+ const nameMatch = trimmed.match(/^###\s+(.+)/) || trimmed.match(/^\*\*([^*]+)\*\*/);
63
+ currentAgent = { name: kebabCase(nameMatch?.[1] ?? ''), skills: [] };
64
+ continue;
65
+ }
66
+ // Key-value lines within an agent section
67
+ if (currentAgent) {
68
+ // Match patterns like: - **Role:** Lead, - Role: Lead, * **Skills:** x, y
69
+ const kvMatch = trimmed.match(/^[-*]*\s*\*{0,2}(role|skills?|model|status|preferred\s*model|aliases?|auto[-\s]*assign)\s*:?\s*\*{0,2}\s*:?\s*(.+)/i);
70
+ if (kvMatch) {
71
+ const key = kvMatch[1].toLowerCase().replace(/[\s-]+/g, '');
72
+ const value = kvMatch[2].replace(/^\*+\s*/, '').trim();
73
+ switch (key) {
74
+ case 'role':
75
+ currentAgent.role = value;
76
+ break;
77
+ case 'skill':
78
+ case 'skills':
79
+ currentAgent.skills = value.split(',').map((s) => s.trim()).filter(Boolean);
80
+ break;
81
+ case 'model':
82
+ case 'preferredmodel':
83
+ currentAgent.model = value;
84
+ break;
85
+ case 'status':
86
+ currentAgent.status = value;
87
+ break;
88
+ case 'alias':
89
+ case 'aliases':
90
+ currentAgent.aliases = value.split(',').map((s) => s.trim()).filter(Boolean);
91
+ break;
92
+ case 'autoassign':
93
+ currentAgent.autoAssign = /^(yes|true|1)$/i.test(value);
94
+ break;
95
+ }
96
+ }
97
+ }
98
+ }
99
+ // Flush last agent
100
+ if (currentAgent?.name) {
101
+ agents.push(finalizeAgent(currentAgent));
102
+ }
103
+ if (agents.length === 0) {
104
+ warnings.push('Could not parse any agents from team.md');
105
+ }
106
+ return { agents, warnings };
107
+ }
108
+ /**
109
+ * Parses a markdown table for agent rows.
110
+ */
111
+ function parseTeamTable(lines) {
112
+ const agents = [];
113
+ let headerCols = null;
114
+ for (const line of lines) {
115
+ const trimmed = line.trim();
116
+ if (!trimmed.startsWith('|'))
117
+ continue;
118
+ const cells = trimmed.split('|').map((c) => c.trim()).filter(Boolean);
119
+ // Detect header row
120
+ if (!headerCols && cells.some((c) => /name/i.test(c))) {
121
+ headerCols = cells.map((c) => c.toLowerCase());
122
+ continue;
123
+ }
124
+ // Skip separator row
125
+ if (cells.every((c) => /^[-:]+$/.test(c)))
126
+ continue;
127
+ if (headerCols && cells.length >= 2) {
128
+ const get = (key) => {
129
+ const idx = headerCols.findIndex((h) => h.includes(key));
130
+ return idx >= 0 && idx < cells.length ? cells[idx] : undefined;
131
+ };
132
+ const name = get('name');
133
+ if (!name)
134
+ continue;
135
+ agents.push({
136
+ name: kebabCase(name),
137
+ role: get('role') ?? 'developer',
138
+ skills: (get('skill') ?? '').split(',').map((s) => s.trim()).filter(Boolean),
139
+ model: get('model') || undefined,
140
+ status: get('status') || undefined,
141
+ aliases: get('alias') ? get('alias').split(',').map((s) => s.trim()).filter(Boolean) : undefined,
142
+ autoAssign: get('auto') !== undefined ? /^(yes|true|1)$/i.test(get('auto') ?? '') : undefined,
143
+ });
144
+ }
145
+ }
146
+ return agents;
147
+ }
148
+ // ============================================================================
149
+ // routing.md Parsing
150
+ // ============================================================================
151
+ /**
152
+ * Parses routing.md content into routing rules.
153
+ *
154
+ * Expected table format:
155
+ * | Work Type | Route To | Examples |
156
+ * |-----------|----------|----------|
157
+ * | feature-dev | Lead | New features |
158
+ *
159
+ * @param content - Raw routing.md content
160
+ * @returns Parsed routing rules and warnings
161
+ */
162
+ export function parseRoutingRulesMarkdown(content) {
163
+ content = normalizeEol(content);
164
+ const rules = [];
165
+ const warnings = [];
166
+ if (!content || !content.trim()) {
167
+ return { rules, warnings };
168
+ }
169
+ const lines = content.split('\n');
170
+ let inTable = false;
171
+ let headerPassed = false;
172
+ for (const line of lines) {
173
+ const trimmed = line.trim();
174
+ // Detect routing table
175
+ if (/##\s*routing\s*table/i.test(trimmed)) {
176
+ inTable = true;
177
+ headerPassed = false;
178
+ continue;
179
+ }
180
+ // New section ends the table
181
+ if (inTable && /^##\s+/.test(trimmed) && !/routing\s*table/i.test(trimmed)) {
182
+ inTable = false;
183
+ continue;
184
+ }
185
+ if (inTable && trimmed.startsWith('|')) {
186
+ // Header row
187
+ if (/work\s*type|pattern/i.test(trimmed)) {
188
+ headerPassed = true;
189
+ continue;
190
+ }
191
+ // Separator
192
+ if (/^[|:\-\s]+$/.test(trimmed))
193
+ continue;
194
+ if (!headerPassed)
195
+ continue;
196
+ const cells = trimmed.split('|').map((c) => c.trim()).filter(Boolean);
197
+ if (cells.length >= 2) {
198
+ const workType = cells[0];
199
+ const agents = cells[1].split(',').map((a) => a.trim()).filter(Boolean);
200
+ const examples = cells.length >= 3
201
+ ? cells[2].split(',').map((e) => e.trim()).filter(Boolean)
202
+ : undefined;
203
+ if (workType && agents.length > 0) {
204
+ rules.push({ workType, agents, examples });
205
+ }
206
+ }
207
+ }
208
+ }
209
+ if (rules.length === 0) {
210
+ warnings.push('Could not parse any routing rules from routing.md');
211
+ }
212
+ return { rules, warnings };
213
+ }
214
+ // ============================================================================
215
+ // decisions.md Parsing
216
+ // ============================================================================
217
+ /**
218
+ * Parses decisions.md content to extract config-relevant decisions.
219
+ *
220
+ * Looks for headings that denote individual decisions and checks body text
221
+ * for config-relevant keywords (model, routing, governance, tier, agent).
222
+ *
223
+ * @param content - Raw decisions.md content
224
+ * @returns Parsed decisions and warnings
225
+ */
226
+ export function parseDecisionsMarkdown(content) {
227
+ content = normalizeEol(content);
228
+ const decisions = [];
229
+ const warnings = [];
230
+ if (!content || !content.trim()) {
231
+ return { decisions, warnings };
232
+ }
233
+ const lines = content.split('\n');
234
+ let currentTitle = null;
235
+ let currentHeadingLevel;
236
+ let currentDate;
237
+ let bodyLines = [];
238
+ const CONFIG_KEYWORDS = /\b(model|routing|governance|tier|agent|fallback|config|migration)\b/i;
239
+ const DATE_IN_HEADING = /^(\d{4}-\d{2}-\d{2}):\s*(.+)/;
240
+ const AUTHOR_LINE = /^\*\*By:\*\*\s*(.+)/i;
241
+ const flush = () => {
242
+ if (currentTitle) {
243
+ const body = bodyLines.join('\n').trim();
244
+ const configRelevant = CONFIG_KEYWORDS.test(currentTitle) || CONFIG_KEYWORDS.test(body);
245
+ // Extract author from body lines
246
+ let author;
247
+ for (const bl of bodyLines) {
248
+ const authorMatch = bl.trim().match(AUTHOR_LINE);
249
+ if (authorMatch) {
250
+ author = authorMatch[1].trim();
251
+ break;
252
+ }
253
+ }
254
+ const decision = { title: currentTitle, body, configRelevant };
255
+ if (currentDate)
256
+ decision.date = currentDate;
257
+ if (author)
258
+ decision.author = author;
259
+ if (currentHeadingLevel !== undefined)
260
+ decision.headingLevel = currentHeadingLevel;
261
+ decisions.push(decision);
262
+ }
263
+ currentTitle = null;
264
+ currentDate = undefined;
265
+ currentHeadingLevel = undefined;
266
+ bodyLines = [];
267
+ };
268
+ for (const line of lines) {
269
+ const trimmed = line.trim();
270
+ const headingMatch = trimmed.match(/^(###?)\s+(.+)/);
271
+ if (headingMatch) {
272
+ flush();
273
+ const hashes = headingMatch[1];
274
+ let titleText = headingMatch[2];
275
+ currentHeadingLevel = hashes.length;
276
+ // Extract date from heading like "### 2026-02-21: Title"
277
+ const dateMatch = titleText.match(DATE_IN_HEADING);
278
+ if (dateMatch) {
279
+ currentDate = dateMatch[1];
280
+ titleText = dateMatch[2];
281
+ }
282
+ currentTitle = titleText;
283
+ continue;
284
+ }
285
+ if (currentTitle) {
286
+ bodyLines.push(line);
287
+ }
288
+ }
289
+ flush();
290
+ return { decisions, warnings };
291
+ }
292
+ // ============================================================================
293
+ // Config Generation
294
+ // ============================================================================
295
+ /**
296
+ * Converts parsed markdown data into a typed SquadConfig.
297
+ *
298
+ * @param parsed - Result from parsing all markdown files
299
+ * @param base - Optional base config to merge with
300
+ * @returns Generated SquadConfig
301
+ */
302
+ export function generateConfigFromParsed(parsed, base) {
303
+ const baseConfig = base ?? {};
304
+ // Build routing rules
305
+ const routingRules = parsed.routingRules.map((r) => ({
306
+ workType: r.workType,
307
+ agents: r.agents.map((a) => (a.startsWith('@') ? a : `@${a.toLowerCase()}`)),
308
+ examples: r.examples,
309
+ confidence: 'high',
310
+ }));
311
+ const routing = {
312
+ ...DEFAULT_CONFIG.routing,
313
+ ...baseConfig.routing,
314
+ rules: routingRules.length > 0 ? routingRules : DEFAULT_CONFIG.routing.rules,
315
+ };
316
+ // Build model config with agent overrides from team.md model preferences
317
+ const agentOverrides = {};
318
+ for (const agent of parsed.agents) {
319
+ if (agent.model) {
320
+ agentOverrides[agent.name] = agent.model;
321
+ }
322
+ }
323
+ const models = {
324
+ ...DEFAULT_CONFIG.models,
325
+ ...baseConfig.models,
326
+ };
327
+ // Apply agent-specific model overrides via roleMapping
328
+ if (Object.keys(agentOverrides).length > 0 && !models.roleMapping) {
329
+ models.roleMapping = parsed.agents
330
+ .filter((a) => a.model)
331
+ .map((a) => ({
332
+ role: a.role,
333
+ model: a.model,
334
+ }));
335
+ }
336
+ const config = {
337
+ ...DEFAULT_CONFIG,
338
+ ...baseConfig,
339
+ version: baseConfig.version ?? DEFAULT_CONFIG.version,
340
+ models,
341
+ routing,
342
+ };
343
+ return config;
344
+ }
345
+ // ============================================================================
346
+ // Main Migration Entrypoint
347
+ // ============================================================================
348
+ /**
349
+ * Migrates legacy markdown configuration files to a typed SquadConfig.
350
+ *
351
+ * Handles partial migrations gracefully — any combination of files can be
352
+ * missing and the result will still be a valid SquadConfig.
353
+ *
354
+ * @param options - Markdown file contents and options
355
+ * @returns Migration result with generated config and diagnostics
356
+ */
357
+ export function migrateMarkdownToConfig(options) {
358
+ const warnings = [];
359
+ const migratedSections = [];
360
+ const skippedSections = [];
361
+ // Parse team.md
362
+ let agents = [];
363
+ if (options.teamMd) {
364
+ const teamResult = parseTeamMarkdown(options.teamMd);
365
+ agents = teamResult.agents;
366
+ warnings.push(...teamResult.warnings);
367
+ if (agents.length > 0) {
368
+ migratedSections.push('team');
369
+ }
370
+ else {
371
+ skippedSections.push('team');
372
+ }
373
+ }
374
+ else {
375
+ skippedSections.push('team');
376
+ }
377
+ // Parse routing.md
378
+ let routingRules = [];
379
+ if (options.routingMd) {
380
+ const routingResult = parseRoutingRulesMarkdown(options.routingMd);
381
+ routingRules = routingResult.rules;
382
+ warnings.push(...routingResult.warnings);
383
+ if (routingRules.length > 0) {
384
+ migratedSections.push('routing');
385
+ }
386
+ else {
387
+ skippedSections.push('routing');
388
+ }
389
+ }
390
+ else {
391
+ skippedSections.push('routing');
392
+ }
393
+ // Parse decisions.md
394
+ let decisions = [];
395
+ if (options.decisionsMd) {
396
+ const decResult = parseDecisionsMarkdown(options.decisionsMd);
397
+ decisions = decResult.decisions;
398
+ warnings.push(...decResult.warnings);
399
+ if (decisions.length > 0) {
400
+ migratedSections.push('decisions');
401
+ }
402
+ else {
403
+ skippedSections.push('decisions');
404
+ }
405
+ }
406
+ else {
407
+ skippedSections.push('decisions');
408
+ }
409
+ const parsed = { agents, routingRules, decisions, warnings };
410
+ const config = generateConfigFromParsed(parsed, options.baseConfig);
411
+ return { config, parsed, migratedSections, skippedSections };
412
+ }
413
+ // ============================================================================
414
+ // Helpers
415
+ // ============================================================================
416
+ function kebabCase(str) {
417
+ return str
418
+ .trim()
419
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
420
+ .replace(/[\s_]+/g, '-')
421
+ .toLowerCase();
422
+ }
423
+ function finalizeAgent(partial) {
424
+ return {
425
+ name: partial.name ?? 'unknown',
426
+ role: partial.role ?? 'developer',
427
+ skills: partial.skills ?? [],
428
+ model: partial.model,
429
+ status: partial.status,
430
+ aliases: partial.aliases,
431
+ autoAssign: partial.autoAssign,
432
+ };
433
+ }
434
+ //# sourceMappingURL=markdown-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-migration.js","sourceRoot":"","sources":["../../src/config/markdown-migration.ts"],"names":[],"mappings":"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"}