@bradygaster/squad-sdk 0.6.2 → 0.8.0

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 (306) hide show
  1. package/README.md +296 -296
  2. package/dist/adapter/client.d.ts +225 -0
  3. package/dist/adapter/client.d.ts.map +1 -0
  4. package/dist/adapter/client.js +397 -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 +68 -0
  23. package/dist/agents/index.d.ts.map +1 -0
  24. package/dist/agents/index.js +74 -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 +258 -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 +198 -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 +37 -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 +53 -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 +369 -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 +174 -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 +47 -0
  159. package/dist/coordinator/index.d.ts.map +1 -0
  160. package/dist/coordinator/index.js +54 -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 +24 -1
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +23 -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 +56 -0
  207. package/dist/ralph/index.d.ts.map +1 -0
  208. package/dist/ralph/index.js +61 -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 +313 -0
  219. package/dist/runtime/config.d.ts.map +1 -0
  220. package/dist/runtime/config.js +466 -0
  221. package/dist/runtime/config.js.map +1 -0
  222. package/dist/runtime/cost-tracker.d.ts +73 -0
  223. package/dist/runtime/cost-tracker.d.ts.map +1 -0
  224. package/dist/runtime/cost-tracker.js +157 -0
  225. package/dist/runtime/cost-tracker.js.map +1 -0
  226. package/dist/runtime/event-bus.d.ts +190 -0
  227. package/dist/runtime/event-bus.d.ts.map +1 -0
  228. package/dist/runtime/event-bus.js +218 -0
  229. package/dist/runtime/event-bus.js.map +1 -0
  230. package/dist/runtime/health.d.ts +66 -0
  231. package/dist/runtime/health.d.ts.map +1 -0
  232. package/dist/runtime/health.js +111 -0
  233. package/dist/runtime/health.js.map +1 -0
  234. package/dist/runtime/i18n.d.ts +54 -0
  235. package/dist/runtime/i18n.d.ts.map +1 -0
  236. package/dist/runtime/i18n.js +126 -0
  237. package/dist/runtime/i18n.js.map +1 -0
  238. package/dist/runtime/offline.d.ts +64 -0
  239. package/dist/runtime/offline.d.ts.map +1 -0
  240. package/dist/runtime/offline.js +108 -0
  241. package/dist/runtime/offline.js.map +1 -0
  242. package/dist/runtime/streaming.d.ts +97 -0
  243. package/dist/runtime/streaming.d.ts.map +1 -0
  244. package/dist/runtime/streaming.js +156 -0
  245. package/dist/runtime/streaming.js.map +1 -0
  246. package/dist/runtime/telemetry.d.ts +82 -0
  247. package/dist/runtime/telemetry.d.ts.map +1 -0
  248. package/dist/runtime/telemetry.js +120 -0
  249. package/dist/runtime/telemetry.js.map +1 -0
  250. package/dist/sharing/agent-repo.d.ts +33 -0
  251. package/dist/sharing/agent-repo.d.ts.map +1 -0
  252. package/dist/sharing/agent-repo.js +79 -0
  253. package/dist/sharing/agent-repo.js.map +1 -0
  254. package/dist/sharing/cache.d.ts +36 -0
  255. package/dist/sharing/cache.d.ts.map +1 -0
  256. package/dist/sharing/cache.js +85 -0
  257. package/dist/sharing/cache.js.map +1 -0
  258. package/dist/sharing/conflicts.d.ts +32 -0
  259. package/dist/sharing/conflicts.d.ts.map +1 -0
  260. package/dist/sharing/conflicts.js +121 -0
  261. package/dist/sharing/conflicts.js.map +1 -0
  262. package/dist/sharing/export.d.ts +50 -0
  263. package/dist/sharing/export.d.ts.map +1 -0
  264. package/dist/sharing/export.js +156 -0
  265. package/dist/sharing/export.js.map +1 -0
  266. package/dist/sharing/history-split.d.ts +34 -0
  267. package/dist/sharing/history-split.d.ts.map +1 -0
  268. package/dist/sharing/history-split.js +101 -0
  269. package/dist/sharing/history-split.js.map +1 -0
  270. package/dist/sharing/import.d.ts +37 -0
  271. package/dist/sharing/import.d.ts.map +1 -0
  272. package/dist/sharing/import.js +138 -0
  273. package/dist/sharing/import.js.map +1 -0
  274. package/dist/sharing/index.d.ts +11 -0
  275. package/dist/sharing/index.d.ts.map +1 -0
  276. package/dist/sharing/index.js +11 -0
  277. package/dist/sharing/index.js.map +1 -0
  278. package/dist/sharing/versioning.d.ts +32 -0
  279. package/dist/sharing/versioning.d.ts.map +1 -0
  280. package/dist/sharing/versioning.js +64 -0
  281. package/dist/sharing/versioning.js.map +1 -0
  282. package/dist/skills/index.d.ts +49 -0
  283. package/dist/skills/index.d.ts.map +1 -0
  284. package/dist/skills/index.js +85 -0
  285. package/dist/skills/index.js.map +1 -0
  286. package/dist/skills/skill-loader.d.ts +56 -0
  287. package/dist/skills/skill-loader.d.ts.map +1 -0
  288. package/dist/skills/skill-loader.js +106 -0
  289. package/dist/skills/skill-loader.js.map +1 -0
  290. package/dist/skills/skill-source.d.ts +63 -0
  291. package/dist/skills/skill-source.d.ts.map +1 -0
  292. package/dist/skills/skill-source.js +199 -0
  293. package/dist/skills/skill-source.js.map +1 -0
  294. package/dist/tools/index.d.ts +87 -0
  295. package/dist/tools/index.d.ts.map +1 -0
  296. package/dist/tools/index.js +419 -0
  297. package/dist/tools/index.js.map +1 -0
  298. package/dist/types.d.ts +43 -0
  299. package/dist/types.d.ts.map +1 -0
  300. package/dist/types.js +8 -0
  301. package/dist/types.js.map +1 -0
  302. package/dist/utils/normalize-eol.d.ts +6 -0
  303. package/dist/utils/normalize-eol.d.ts.map +1 -0
  304. package/dist/utils/normalize-eol.js +8 -0
  305. package/dist/utils/normalize-eol.js.map +1 -0
  306. package/package.json +115 -39
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/migrations/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Model Configuration & Registry
3
+ *
4
+ * Defines the full model catalog and provides model lookup, fallback chains,
5
+ * and availability checking. Implements the model tier system from squad.agent.md.
6
+ *
7
+ * @module config/models
8
+ */
9
+ import type { ModelId, ModelTier } from '../runtime/config.js';
10
+ /**
11
+ * Model capability information.
12
+ */
13
+ export interface ModelInfo {
14
+ /** Model identifier */
15
+ id: ModelId;
16
+ /** Model tier */
17
+ tier: ModelTier;
18
+ /** Provider (anthropic, openai, google) */
19
+ provider: 'anthropic' | 'openai' | 'google';
20
+ /** Model family */
21
+ family: 'claude' | 'gpt' | 'gemini';
22
+ /** Supports vision/multimodal input */
23
+ vision?: boolean;
24
+ /** Typical use cases */
25
+ useCases?: string[];
26
+ /** Relative cost (1-10 scale, 10 = most expensive) */
27
+ cost?: number;
28
+ /** Relative speed (1-10 scale, 10 = fastest) */
29
+ speed?: number;
30
+ }
31
+ /**
32
+ * Full model catalog from squad.agent.md.
33
+ */
34
+ export declare const MODEL_CATALOG: ModelInfo[];
35
+ /**
36
+ * Default fallback chains per tier from squad.agent.md.
37
+ */
38
+ export declare const DEFAULT_FALLBACK_CHAINS: Record<ModelTier, ModelId[]>;
39
+ /**
40
+ * Model registry for lookups and availability checking.
41
+ */
42
+ export declare class ModelRegistry {
43
+ private catalog;
44
+ private tierIndex;
45
+ private providerIndex;
46
+ constructor(catalog?: ModelInfo[]);
47
+ /**
48
+ * Gets model information by ID.
49
+ *
50
+ * @param id - Model identifier
51
+ * @returns Model info if found, null otherwise
52
+ */
53
+ getModelInfo(id: ModelId): ModelInfo | null;
54
+ /**
55
+ * Checks if a model is available in the catalog.
56
+ *
57
+ * @param id - Model identifier
58
+ * @returns True if model exists in catalog
59
+ */
60
+ isModelAvailable(id: ModelId): boolean;
61
+ /**
62
+ * Gets all models for a specific tier.
63
+ *
64
+ * @param tier - Model tier
65
+ * @returns Array of models in that tier
66
+ */
67
+ getModelsByTier(tier: ModelTier): ModelInfo[];
68
+ /**
69
+ * Gets all models from a specific provider.
70
+ *
71
+ * @param provider - Provider name
72
+ * @returns Array of models from that provider
73
+ */
74
+ getModelsByProvider(provider: string): ModelInfo[];
75
+ /**
76
+ * Gets the fallback chain for a specific tier.
77
+ *
78
+ * @param tier - Model tier
79
+ * @param preferSameProvider - If true, prefer models from same provider
80
+ * @param currentModel - Current model (for provider preference)
81
+ * @returns Ordered array of fallback model IDs
82
+ */
83
+ getFallbackChain(tier: ModelTier, preferSameProvider?: boolean, currentModel?: ModelId): ModelId[];
84
+ /**
85
+ * Gets the next fallback model in the chain.
86
+ *
87
+ * @param currentModel - Current model that failed
88
+ * @param tier - Model tier
89
+ * @param attemptedModels - Models already attempted
90
+ * @returns Next fallback model ID, or null if chain exhausted
91
+ */
92
+ getNextFallback(currentModel: ModelId, tier: ModelTier, attemptedModels?: Set<ModelId>): ModelId | null;
93
+ /**
94
+ * Gets model recommendations based on use case.
95
+ *
96
+ * @param useCase - Desired use case
97
+ * @param tier - Optional tier constraint
98
+ * @returns Recommended models sorted by relevance
99
+ */
100
+ getRecommendedModels(useCase: string, tier?: ModelTier): ModelInfo[];
101
+ /**
102
+ * Gets all model IDs in the catalog.
103
+ *
104
+ * @returns Array of all model IDs
105
+ */
106
+ getAllModelIds(): ModelId[];
107
+ /**
108
+ * Gets catalog statistics.
109
+ *
110
+ * @returns Catalog stats
111
+ */
112
+ getStats(): {
113
+ total: number;
114
+ byTier: Record<ModelTier, number>;
115
+ byProvider: Record<string, number>;
116
+ };
117
+ }
118
+ /**
119
+ * Default model registry instance.
120
+ */
121
+ export declare const defaultRegistry: ModelRegistry;
122
+ /**
123
+ * Gets model information by ID (convenience function).
124
+ */
125
+ export declare function getModelInfo(id: ModelId): ModelInfo | null;
126
+ /**
127
+ * Gets fallback chain for a tier (convenience function).
128
+ */
129
+ export declare function getFallbackChain(tier: ModelTier): ModelId[];
130
+ /**
131
+ * Checks if model is available (convenience function).
132
+ */
133
+ export declare function isModelAvailable(id: ModelId): boolean;
134
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uBAAuB;IACvB,EAAE,EAAE,OAAO,CAAC;IAEZ,iBAAiB;IACjB,IAAI,EAAE,SAAS,CAAC;IAEhB,2CAA2C;IAC3C,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAE5C,mBAAmB;IACnB,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IAEpC,uCAAuC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,EA0JpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,CAIhE,CAAC;AAEF;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,aAAa,CAA2B;gBAEpC,OAAO,GAAE,SAAS,EAAkB;IAqBhD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAI3C;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO;IAItC;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE;IAI7C;;;;;OAKG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE;IAIlD;;;;;;;OAOG;IACH,gBAAgB,CACd,IAAI,EAAE,SAAS,EACf,kBAAkB,GAAE,OAAc,EAClC,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,EAAE;IA2BZ;;;;;;;OAOG;IACH,eAAe,CACb,YAAY,EAAE,OAAO,EACrB,IAAI,EAAE,SAAS,EACf,eAAe,GAAE,GAAG,CAAC,OAAO,CAAa,GACxC,OAAO,GAAG,IAAI;IAajB;;;;;;OAMG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE;IAqBpE;;;;OAIG;IACH,cAAc,IAAI,OAAO,EAAE;IAI3B;;;;OAIG;IACH,QAAQ,IAAI;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC;CAoBF;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,eAAsB,CAAC;AAEnD;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAE1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,CAE3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAErD"}
@@ -0,0 +1,354 @@
1
+ /**
2
+ * Model Configuration & Registry
3
+ *
4
+ * Defines the full model catalog and provides model lookup, fallback chains,
5
+ * and availability checking. Implements the model tier system from squad.agent.md.
6
+ *
7
+ * @module config/models
8
+ */
9
+ /**
10
+ * Full model catalog from squad.agent.md.
11
+ */
12
+ export const MODEL_CATALOG = [
13
+ // Premium tier - highest quality, slowest, most expensive
14
+ {
15
+ id: 'claude-opus-4.6',
16
+ tier: 'premium',
17
+ provider: 'anthropic',
18
+ family: 'claude',
19
+ vision: true,
20
+ useCases: ['architecture proposals', 'security audits', 'complex design'],
21
+ cost: 10,
22
+ speed: 3
23
+ },
24
+ {
25
+ id: 'claude-opus-4.6-fast',
26
+ tier: 'premium',
27
+ provider: 'anthropic',
28
+ family: 'claude',
29
+ vision: true,
30
+ useCases: ['architecture proposals', 'urgent reviews'],
31
+ cost: 9,
32
+ speed: 6
33
+ },
34
+ {
35
+ id: 'claude-opus-4.5',
36
+ tier: 'premium',
37
+ provider: 'anthropic',
38
+ family: 'claude',
39
+ vision: true,
40
+ useCases: ['architecture proposals', 'reviewer gates'],
41
+ cost: 9,
42
+ speed: 3
43
+ },
44
+ // Standard tier - balanced quality, speed, cost
45
+ {
46
+ id: 'claude-sonnet-4.5',
47
+ tier: 'standard',
48
+ provider: 'anthropic',
49
+ family: 'claude',
50
+ vision: true,
51
+ useCases: ['code generation', 'test writing', 'refactoring'],
52
+ cost: 5,
53
+ speed: 7
54
+ },
55
+ {
56
+ id: 'claude-sonnet-4',
57
+ tier: 'standard',
58
+ provider: 'anthropic',
59
+ family: 'claude',
60
+ useCases: ['code generation', 'documentation'],
61
+ cost: 4,
62
+ speed: 7
63
+ },
64
+ {
65
+ id: 'gpt-5.2-codex',
66
+ tier: 'standard',
67
+ provider: 'openai',
68
+ family: 'gpt',
69
+ useCases: ['heavy code generation', 'multi-file refactors'],
70
+ cost: 5,
71
+ speed: 6
72
+ },
73
+ {
74
+ id: 'gpt-5.2',
75
+ tier: 'standard',
76
+ provider: 'openai',
77
+ family: 'gpt',
78
+ useCases: ['general coding', 'analysis'],
79
+ cost: 5,
80
+ speed: 6
81
+ },
82
+ {
83
+ id: 'gpt-5.1-codex-max',
84
+ tier: 'standard',
85
+ provider: 'openai',
86
+ family: 'gpt',
87
+ useCases: ['complex implementation', 'large codebases'],
88
+ cost: 6,
89
+ speed: 5
90
+ },
91
+ {
92
+ id: 'gpt-5.1-codex',
93
+ tier: 'standard',
94
+ provider: 'openai',
95
+ family: 'gpt',
96
+ useCases: ['code generation', 'implementation'],
97
+ cost: 5,
98
+ speed: 6
99
+ },
100
+ {
101
+ id: 'gpt-5.1',
102
+ tier: 'standard',
103
+ provider: 'openai',
104
+ family: 'gpt',
105
+ useCases: ['general purpose', 'analysis'],
106
+ cost: 5,
107
+ speed: 6
108
+ },
109
+ {
110
+ id: 'gpt-5',
111
+ tier: 'standard',
112
+ provider: 'openai',
113
+ family: 'gpt',
114
+ useCases: ['general purpose'],
115
+ cost: 5,
116
+ speed: 6
117
+ },
118
+ {
119
+ id: 'gemini-3-pro-preview',
120
+ tier: 'standard',
121
+ provider: 'google',
122
+ family: 'gemini',
123
+ useCases: ['code reviews', 'second opinion', 'diversity'],
124
+ cost: 5,
125
+ speed: 7
126
+ },
127
+ // Fast tier - lowest cost, fastest, good enough quality
128
+ {
129
+ id: 'claude-haiku-4.5',
130
+ tier: 'fast',
131
+ provider: 'anthropic',
132
+ family: 'claude',
133
+ useCases: ['boilerplate', 'changelogs', 'simple fixes'],
134
+ cost: 2,
135
+ speed: 9
136
+ },
137
+ {
138
+ id: 'gpt-5.1-codex-mini',
139
+ tier: 'fast',
140
+ provider: 'openai',
141
+ family: 'gpt',
142
+ useCases: ['scaffolding', 'test boilerplate'],
143
+ cost: 2,
144
+ speed: 9
145
+ },
146
+ {
147
+ id: 'gpt-5-mini',
148
+ tier: 'fast',
149
+ provider: 'openai',
150
+ family: 'gpt',
151
+ useCases: ['typo fixes', 'renames', 'simple tasks'],
152
+ cost: 1,
153
+ speed: 10
154
+ },
155
+ {
156
+ id: 'gpt-4.1',
157
+ tier: 'fast',
158
+ provider: 'openai',
159
+ family: 'gpt',
160
+ useCases: ['lightweight tasks', 'triage'],
161
+ cost: 2,
162
+ speed: 9
163
+ }
164
+ ];
165
+ /**
166
+ * Default fallback chains per tier from squad.agent.md.
167
+ */
168
+ export const DEFAULT_FALLBACK_CHAINS = {
169
+ premium: ['claude-opus-4.6', 'claude-opus-4.6-fast', 'claude-opus-4.5', 'claude-sonnet-4.5'],
170
+ standard: ['claude-sonnet-4.5', 'gpt-5.2-codex', 'claude-sonnet-4', 'gpt-5.2'],
171
+ fast: ['claude-haiku-4.5', 'gpt-5.1-codex-mini', 'gpt-4.1', 'gpt-5-mini']
172
+ };
173
+ /**
174
+ * Model registry for lookups and availability checking.
175
+ */
176
+ export class ModelRegistry {
177
+ catalog;
178
+ tierIndex;
179
+ providerIndex;
180
+ constructor(catalog = MODEL_CATALOG) {
181
+ this.catalog = new Map(catalog.map(model => [model.id, model]));
182
+ // Build tier index
183
+ this.tierIndex = new Map();
184
+ for (const tier of ['premium', 'standard', 'fast']) {
185
+ this.tierIndex.set(tier, catalog.filter(m => m.tier === tier));
186
+ }
187
+ // Build provider index
188
+ this.providerIndex = new Map();
189
+ for (const model of catalog) {
190
+ const existing = this.providerIndex.get(model.provider) || [];
191
+ existing.push(model);
192
+ this.providerIndex.set(model.provider, existing);
193
+ }
194
+ }
195
+ /**
196
+ * Gets model information by ID.
197
+ *
198
+ * @param id - Model identifier
199
+ * @returns Model info if found, null otherwise
200
+ */
201
+ getModelInfo(id) {
202
+ return this.catalog.get(id) || null;
203
+ }
204
+ /**
205
+ * Checks if a model is available in the catalog.
206
+ *
207
+ * @param id - Model identifier
208
+ * @returns True if model exists in catalog
209
+ */
210
+ isModelAvailable(id) {
211
+ return this.catalog.has(id);
212
+ }
213
+ /**
214
+ * Gets all models for a specific tier.
215
+ *
216
+ * @param tier - Model tier
217
+ * @returns Array of models in that tier
218
+ */
219
+ getModelsByTier(tier) {
220
+ return this.tierIndex.get(tier) || [];
221
+ }
222
+ /**
223
+ * Gets all models from a specific provider.
224
+ *
225
+ * @param provider - Provider name
226
+ * @returns Array of models from that provider
227
+ */
228
+ getModelsByProvider(provider) {
229
+ return this.providerIndex.get(provider) || [];
230
+ }
231
+ /**
232
+ * Gets the fallback chain for a specific tier.
233
+ *
234
+ * @param tier - Model tier
235
+ * @param preferSameProvider - If true, prefer models from same provider
236
+ * @param currentModel - Current model (for provider preference)
237
+ * @returns Ordered array of fallback model IDs
238
+ */
239
+ getFallbackChain(tier, preferSameProvider = true, currentModel) {
240
+ const defaultChain = DEFAULT_FALLBACK_CHAINS[tier] || [];
241
+ if (!preferSameProvider || !currentModel) {
242
+ return defaultChain;
243
+ }
244
+ // Get current model's provider
245
+ const current = this.getModelInfo(currentModel);
246
+ if (!current) {
247
+ return defaultChain;
248
+ }
249
+ // Reorder chain to prefer same provider
250
+ const sameProvider = defaultChain.filter(id => {
251
+ const model = this.getModelInfo(id);
252
+ return model?.provider === current.provider;
253
+ });
254
+ const otherProvider = defaultChain.filter(id => {
255
+ const model = this.getModelInfo(id);
256
+ return model?.provider !== current.provider;
257
+ });
258
+ return [...sameProvider, ...otherProvider];
259
+ }
260
+ /**
261
+ * Gets the next fallback model in the chain.
262
+ *
263
+ * @param currentModel - Current model that failed
264
+ * @param tier - Model tier
265
+ * @param attemptedModels - Models already attempted
266
+ * @returns Next fallback model ID, or null if chain exhausted
267
+ */
268
+ getNextFallback(currentModel, tier, attemptedModels = new Set()) {
269
+ const chain = this.getFallbackChain(tier, true, currentModel);
270
+ // Find next model in chain that hasn't been attempted
271
+ for (const modelId of chain) {
272
+ if (modelId !== currentModel && !attemptedModels.has(modelId)) {
273
+ return modelId;
274
+ }
275
+ }
276
+ return null;
277
+ }
278
+ /**
279
+ * Gets model recommendations based on use case.
280
+ *
281
+ * @param useCase - Desired use case
282
+ * @param tier - Optional tier constraint
283
+ * @returns Recommended models sorted by relevance
284
+ */
285
+ getRecommendedModels(useCase, tier) {
286
+ const useCaseLower = useCase.toLowerCase();
287
+ const candidates = tier
288
+ ? this.getModelsByTier(tier)
289
+ : Array.from(this.catalog.values());
290
+ // Score models by use case match
291
+ const scored = candidates
292
+ .map(model => ({
293
+ model,
294
+ score: model.useCases?.some(uc => uc.toLowerCase().includes(useCaseLower) ||
295
+ useCaseLower.includes(uc.toLowerCase())) ? 10 : 0
296
+ }))
297
+ .filter(item => item.score > 0)
298
+ .sort((a, b) => b.score - a.score);
299
+ return scored.map(item => item.model);
300
+ }
301
+ /**
302
+ * Gets all model IDs in the catalog.
303
+ *
304
+ * @returns Array of all model IDs
305
+ */
306
+ getAllModelIds() {
307
+ return Array.from(this.catalog.keys());
308
+ }
309
+ /**
310
+ * Gets catalog statistics.
311
+ *
312
+ * @returns Catalog stats
313
+ */
314
+ getStats() {
315
+ const byTier = {
316
+ premium: 0,
317
+ standard: 0,
318
+ fast: 0
319
+ };
320
+ const byProvider = {};
321
+ for (const model of this.catalog.values()) {
322
+ byTier[model.tier]++;
323
+ byProvider[model.provider] = (byProvider[model.provider] || 0) + 1;
324
+ }
325
+ return {
326
+ total: this.catalog.size,
327
+ byTier,
328
+ byProvider
329
+ };
330
+ }
331
+ }
332
+ /**
333
+ * Default model registry instance.
334
+ */
335
+ export const defaultRegistry = new ModelRegistry();
336
+ /**
337
+ * Gets model information by ID (convenience function).
338
+ */
339
+ export function getModelInfo(id) {
340
+ return defaultRegistry.getModelInfo(id);
341
+ }
342
+ /**
343
+ * Gets fallback chain for a tier (convenience function).
344
+ */
345
+ export function getFallbackChain(tier) {
346
+ return defaultRegistry.getFallbackChain(tier);
347
+ }
348
+ /**
349
+ * Checks if model is available (convenience function).
350
+ */
351
+ export function isModelAvailable(id) {
352
+ return defaultRegistry.isModelAvailable(id);
353
+ }
354
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiCH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,0DAA0D;IAC1D;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;QACzE,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,CAAC,wBAAwB,EAAE,gBAAgB,CAAC;QACtD,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,CAAC,wBAAwB,EAAE,gBAAgB,CAAC;QACtD,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;IAED,gDAAgD;IAChD;QACE,EAAE,EAAE,mBAAmB;QACvB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,CAAC,iBAAiB,EAAE,cAAc,EAAE,aAAa,CAAC;QAC5D,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC;QAC9C,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC,uBAAuB,EAAE,sBAAsB,CAAC;QAC3D,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC,gBAAgB,EAAE,UAAU,CAAC;QACxC,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;QACvD,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;QAC/C,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC;QACzC,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC,iBAAiB,CAAC;QAC7B,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,CAAC,cAAc,EAAE,gBAAgB,EAAE,WAAW,CAAC;QACzD,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;IAED,wDAAwD;IACxD;QACE,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC;QACvD,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;QAC7C,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,cAAc,CAAC;QACnD,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,EAAE;KACV;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC,mBAAmB,EAAE,QAAQ,CAAC;QACzC,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAiC;IACnE,OAAO,EAAE,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;IAC5F,QAAQ,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,CAAC;IAC9E,IAAI,EAAE,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,SAAS,EAAE,YAAY,CAAC;CAC1E,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,aAAa;IAChB,OAAO,CAA0B;IACjC,SAAS,CAA8B;IACvC,aAAa,CAA2B;IAEhD,YAAY,UAAuB,aAAa;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAEhE,mBAAmB;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAgB,EAAE,CAAC;YAClE,IAAI,CAAC,SAAS,CAAC,GAAG,CAChB,IAAI,EACJ,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CACrC,CAAC;QACJ,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,EAAW;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,EAAW;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,IAAe;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED;;;;;;;OAOG;IACH,gBAAgB,CACd,IAAe,EACf,qBAA8B,IAAI,EAClC,YAAsB;QAEtB,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAEzD,IAAI,CAAC,kBAAkB,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,+BAA+B;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,wCAAwC;QACxC,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACpC,OAAO,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACpC,OAAO,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,aAAa,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACH,eAAe,CACb,YAAqB,EACrB,IAAe,EACf,kBAAgC,IAAI,GAAG,EAAE;QAEzC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAE9D,sDAAsD;QACtD,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;YAC5B,IAAI,OAAO,KAAK,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9D,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAAC,OAAe,EAAE,IAAgB;QACpD,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI;YACrB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC5B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAEtC,iCAAiC;QACjC,MAAM,MAAM,GAAG,UAAU;aACtB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACb,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAC/B,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACvC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CACxC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACX,CAAC,CAAC;aACF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;aAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAErC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,QAAQ;QAKN,MAAM,MAAM,GAA8B;YACxC,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE,CAAC;SACR,CAAC;QAEF,MAAM,UAAU,GAA2B,EAAE,CAAC;QAE9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrE,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACxB,MAAM;YACN,UAAU;SACX,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,aAAa,EAAE,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,EAAW;IACtC,OAAO,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAe;IAC9C,OAAO,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAW;IAC1C,OAAO,eAAe,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Routing Configuration Module
3
+ *
4
+ * Parses routing.md markdown format into typed RoutingConfig and compiles routing rules
5
+ * for fast pattern matching. Supports both markdown (legacy) and typed config (new).
6
+ *
7
+ * @module config/routing
8
+ */
9
+ import type { RoutingConfig } from '../runtime/config.js';
10
+ /**
11
+ * Compiled routing matcher with regex patterns.
12
+ */
13
+ export interface CompiledRouter {
14
+ /** Compiled work type rules */
15
+ workTypeRules: CompiledWorkTypeRule[];
16
+ /** Compiled issue routing rules */
17
+ issueRules?: CompiledIssueRule[];
18
+ /** Fallback agent if no match */
19
+ fallbackAgent?: string;
20
+ /** Governance settings */
21
+ governance?: {
22
+ eagerByDefault?: boolean;
23
+ scribeAutoRuns?: boolean;
24
+ allowRecursiveSpawn?: boolean;
25
+ [key: string]: unknown;
26
+ };
27
+ }
28
+ /**
29
+ * Compiled work type rule with regex patterns.
30
+ */
31
+ export interface CompiledWorkTypeRule {
32
+ /** Original work type */
33
+ workType: string;
34
+ /** Agents to route to */
35
+ agents: string[];
36
+ /** Compiled regex patterns for matching */
37
+ patterns: RegExp[];
38
+ /** Examples for LLM understanding */
39
+ examples?: string[];
40
+ /** Confidence level */
41
+ confidence?: 'high' | 'medium' | 'low';
42
+ /** Priority (higher = more specific) */
43
+ priority: number;
44
+ }
45
+ /**
46
+ * Compiled issue routing rule.
47
+ */
48
+ export interface CompiledIssueRule {
49
+ /** Label pattern (regex) */
50
+ labelPattern: RegExp;
51
+ /** Action to take */
52
+ action: 'assign' | 'route' | 'evaluate';
53
+ /** Target agent */
54
+ target?: string;
55
+ /** Required labels (all must match) */
56
+ requiredLabels?: RegExp[];
57
+ /** Excluded labels (none can match) */
58
+ excludedLabels?: RegExp[];
59
+ /** Issue state filter */
60
+ state?: 'open' | 'closed' | 'all';
61
+ }
62
+ /**
63
+ * Routing match result.
64
+ */
65
+ export interface RoutingMatch {
66
+ /** Matched agents */
67
+ agents: string[];
68
+ /** Match confidence */
69
+ confidence: 'high' | 'medium' | 'low';
70
+ /** Matched rule */
71
+ rule?: CompiledWorkTypeRule;
72
+ /** Match reason */
73
+ reason: string;
74
+ }
75
+ /**
76
+ * Parses routing.md markdown table format into typed RoutingConfig.
77
+ *
78
+ * Expected format:
79
+ * ```markdown
80
+ * ## Routing Table
81
+ *
82
+ * | Work Type | Route To | Examples |
83
+ * |-----------|----------|----------|
84
+ * | feature-dev | Lead | New features, enhancements |
85
+ * | bug-fix | Developer | Bug fixes, patches |
86
+ * ```
87
+ *
88
+ * @param content - Markdown content from routing.md
89
+ * @returns Parsed routing configuration
90
+ */
91
+ export declare function parseRoutingMarkdown(content: string): RoutingConfig;
92
+ /**
93
+ * Compiles routing rules for fast pattern matching.
94
+ *
95
+ * Creates regex patterns from work types and assigns priority scores
96
+ * based on specificity. More specific patterns get higher priority.
97
+ *
98
+ * @param config - Routing configuration to compile
99
+ * @returns Compiled router with regex patterns
100
+ */
101
+ export declare function compileRoutingRules(config: RoutingConfig): CompiledRouter;
102
+ /**
103
+ * Matches a message to routing rules.
104
+ *
105
+ * @param message - User message to match
106
+ * @param router - Compiled router
107
+ * @returns Best routing match
108
+ */
109
+ export declare function matchRoute(message: string, router: CompiledRouter): RoutingMatch;
110
+ /**
111
+ * Matches issue labels to routing rules.
112
+ *
113
+ * @param labels - Issue labels to match
114
+ * @param rules - Compiled issue routing rules
115
+ * @returns Matching rule if found
116
+ */
117
+ export declare function matchIssueLabels(labels: string[], rules: CompiledIssueRule[]): CompiledIssueRule | undefined;
118
+ //# sourceMappingURL=routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/config/routing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAiC,MAAM,sBAAsB,CAAC;AAGzF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,aAAa,EAAE,oBAAoB,EAAE,CAAC;IAEtC,mCAAmC;IACnC,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAEjC,iCAAiC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,0BAA0B;IAC1B,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IAEjB,yBAAyB;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAEvC,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAC;IAErB,qBAAqB;IACrB,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IAExC,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,uBAAuB;IACvB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAEtC,mBAAmB;IACnB,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAE5B,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CA4EnE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CA4BzE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,YAAY,CAuBhF;AAgFD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,iBAAiB,EAAE,GACzB,iBAAiB,GAAG,SAAS,CAgC/B"}