@hashicorp/kits 0.1.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 (392) hide show
  1. package/README.md +619 -0
  2. package/bin/kits.js +8 -0
  3. package/dist/adapters/base-adapter.d.ts +231 -0
  4. package/dist/adapters/base-adapter.d.ts.map +1 -0
  5. package/dist/adapters/base-adapter.js +703 -0
  6. package/dist/adapters/base-adapter.js.map +1 -0
  7. package/dist/adapters/claude-code/detection.d.ts +63 -0
  8. package/dist/adapters/claude-code/detection.d.ts.map +1 -0
  9. package/dist/adapters/claude-code/detection.js +154 -0
  10. package/dist/adapters/claude-code/detection.js.map +1 -0
  11. package/dist/adapters/claude-code/index.d.ts +178 -0
  12. package/dist/adapters/claude-code/index.d.ts.map +1 -0
  13. package/dist/adapters/claude-code/index.js +643 -0
  14. package/dist/adapters/claude-code/index.js.map +1 -0
  15. package/dist/adapters/claude-code/installer.d.ts +161 -0
  16. package/dist/adapters/claude-code/installer.d.ts.map +1 -0
  17. package/dist/adapters/claude-code/installer.js +413 -0
  18. package/dist/adapters/claude-code/installer.js.map +1 -0
  19. package/dist/adapters/claude-code/model-mapping.d.ts +7 -0
  20. package/dist/adapters/claude-code/model-mapping.d.ts.map +1 -0
  21. package/dist/adapters/claude-code/model-mapping.js +14 -0
  22. package/dist/adapters/claude-code/model-mapping.js.map +1 -0
  23. package/dist/adapters/claude-code/tool-mapping.d.ts +18 -0
  24. package/dist/adapters/claude-code/tool-mapping.d.ts.map +1 -0
  25. package/dist/adapters/claude-code/tool-mapping.js +31 -0
  26. package/dist/adapters/claude-code/tool-mapping.js.map +1 -0
  27. package/dist/adapters/codex/detection.d.ts +60 -0
  28. package/dist/adapters/codex/detection.d.ts.map +1 -0
  29. package/dist/adapters/codex/detection.js +146 -0
  30. package/dist/adapters/codex/detection.js.map +1 -0
  31. package/dist/adapters/codex/index.d.ts +167 -0
  32. package/dist/adapters/codex/index.d.ts.map +1 -0
  33. package/dist/adapters/codex/index.js +344 -0
  34. package/dist/adapters/codex/index.js.map +1 -0
  35. package/dist/adapters/codex/installer.d.ts +147 -0
  36. package/dist/adapters/codex/installer.d.ts.map +1 -0
  37. package/dist/adapters/codex/installer.js +229 -0
  38. package/dist/adapters/codex/installer.js.map +1 -0
  39. package/dist/adapters/codex/model-mapping.d.ts +7 -0
  40. package/dist/adapters/codex/model-mapping.d.ts.map +1 -0
  41. package/dist/adapters/codex/model-mapping.js +14 -0
  42. package/dist/adapters/codex/model-mapping.js.map +1 -0
  43. package/dist/adapters/codex/tool-mapping.d.ts +19 -0
  44. package/dist/adapters/codex/tool-mapping.d.ts.map +1 -0
  45. package/dist/adapters/codex/tool-mapping.js +32 -0
  46. package/dist/adapters/codex/tool-mapping.js.map +1 -0
  47. package/dist/adapters/command-parser.d.ts +72 -0
  48. package/dist/adapters/command-parser.d.ts.map +1 -0
  49. package/dist/adapters/command-parser.js +222 -0
  50. package/dist/adapters/command-parser.js.map +1 -0
  51. package/dist/adapters/file-operations.d.ts +164 -0
  52. package/dist/adapters/file-operations.d.ts.map +1 -0
  53. package/dist/adapters/file-operations.js +526 -0
  54. package/dist/adapters/file-operations.js.map +1 -0
  55. package/dist/adapters/gemini-cli/detection.d.ts +57 -0
  56. package/dist/adapters/gemini-cli/detection.d.ts.map +1 -0
  57. package/dist/adapters/gemini-cli/detection.js +143 -0
  58. package/dist/adapters/gemini-cli/detection.js.map +1 -0
  59. package/dist/adapters/gemini-cli/index.d.ts +182 -0
  60. package/dist/adapters/gemini-cli/index.d.ts.map +1 -0
  61. package/dist/adapters/gemini-cli/index.js +598 -0
  62. package/dist/adapters/gemini-cli/index.js.map +1 -0
  63. package/dist/adapters/gemini-cli/installer.d.ts +158 -0
  64. package/dist/adapters/gemini-cli/installer.d.ts.map +1 -0
  65. package/dist/adapters/gemini-cli/installer.js +457 -0
  66. package/dist/adapters/gemini-cli/installer.js.map +1 -0
  67. package/dist/adapters/gemini-cli/model-mapping.d.ts +7 -0
  68. package/dist/adapters/gemini-cli/model-mapping.d.ts.map +1 -0
  69. package/dist/adapters/gemini-cli/model-mapping.js +14 -0
  70. package/dist/adapters/gemini-cli/model-mapping.js.map +1 -0
  71. package/dist/adapters/gemini-cli/tool-mapping.d.ts +18 -0
  72. package/dist/adapters/gemini-cli/tool-mapping.d.ts.map +1 -0
  73. package/dist/adapters/gemini-cli/tool-mapping.js +31 -0
  74. package/dist/adapters/gemini-cli/tool-mapping.js.map +1 -0
  75. package/dist/adapters/github-copilot/detection.d.ts +58 -0
  76. package/dist/adapters/github-copilot/detection.d.ts.map +1 -0
  77. package/dist/adapters/github-copilot/detection.js +144 -0
  78. package/dist/adapters/github-copilot/detection.js.map +1 -0
  79. package/dist/adapters/github-copilot/index.d.ts +203 -0
  80. package/dist/adapters/github-copilot/index.d.ts.map +1 -0
  81. package/dist/adapters/github-copilot/index.js +595 -0
  82. package/dist/adapters/github-copilot/index.js.map +1 -0
  83. package/dist/adapters/github-copilot/installer.d.ts +124 -0
  84. package/dist/adapters/github-copilot/installer.d.ts.map +1 -0
  85. package/dist/adapters/github-copilot/installer.js +343 -0
  86. package/dist/adapters/github-copilot/installer.js.map +1 -0
  87. package/dist/adapters/github-copilot/model-mapping.d.ts +7 -0
  88. package/dist/adapters/github-copilot/model-mapping.d.ts.map +1 -0
  89. package/dist/adapters/github-copilot/model-mapping.js +14 -0
  90. package/dist/adapters/github-copilot/model-mapping.js.map +1 -0
  91. package/dist/adapters/github-copilot/tool-mapping.d.ts +18 -0
  92. package/dist/adapters/github-copilot/tool-mapping.d.ts.map +1 -0
  93. package/dist/adapters/github-copilot/tool-mapping.js +31 -0
  94. package/dist/adapters/github-copilot/tool-mapping.js.map +1 -0
  95. package/dist/adapters/index.d.ts +39 -0
  96. package/dist/adapters/index.d.ts.map +1 -0
  97. package/dist/adapters/index.js +76 -0
  98. package/dist/adapters/index.js.map +1 -0
  99. package/dist/adapters/interface.d.ts +9 -0
  100. package/dist/adapters/interface.d.ts.map +1 -0
  101. package/dist/adapters/interface.js +8 -0
  102. package/dist/adapters/interface.js.map +1 -0
  103. package/dist/adapters/model-templating.d.ts +16 -0
  104. package/dist/adapters/model-templating.d.ts.map +1 -0
  105. package/dist/adapters/model-templating.js +52 -0
  106. package/dist/adapters/model-templating.js.map +1 -0
  107. package/dist/adapters/opencode/detection.d.ts +57 -0
  108. package/dist/adapters/opencode/detection.d.ts.map +1 -0
  109. package/dist/adapters/opencode/detection.js +140 -0
  110. package/dist/adapters/opencode/detection.js.map +1 -0
  111. package/dist/adapters/opencode/index.d.ts +168 -0
  112. package/dist/adapters/opencode/index.d.ts.map +1 -0
  113. package/dist/adapters/opencode/index.js +494 -0
  114. package/dist/adapters/opencode/index.js.map +1 -0
  115. package/dist/adapters/opencode/installer.d.ts +91 -0
  116. package/dist/adapters/opencode/installer.d.ts.map +1 -0
  117. package/dist/adapters/opencode/installer.js +290 -0
  118. package/dist/adapters/opencode/installer.js.map +1 -0
  119. package/dist/adapters/opencode/model-mapping.d.ts +7 -0
  120. package/dist/adapters/opencode/model-mapping.d.ts.map +1 -0
  121. package/dist/adapters/opencode/model-mapping.js +14 -0
  122. package/dist/adapters/opencode/model-mapping.js.map +1 -0
  123. package/dist/adapters/opencode/tool-mapping.d.ts +18 -0
  124. package/dist/adapters/opencode/tool-mapping.d.ts.map +1 -0
  125. package/dist/adapters/opencode/tool-mapping.js +31 -0
  126. package/dist/adapters/opencode/tool-mapping.js.map +1 -0
  127. package/dist/adapters/registry.d.ts +154 -0
  128. package/dist/adapters/registry.d.ts.map +1 -0
  129. package/dist/adapters/registry.js +223 -0
  130. package/dist/adapters/registry.js.map +1 -0
  131. package/dist/adapters/skill-frontmatter.d.ts +34 -0
  132. package/dist/adapters/skill-frontmatter.d.ts.map +1 -0
  133. package/dist/adapters/skill-frontmatter.js +110 -0
  134. package/dist/adapters/skill-frontmatter.js.map +1 -0
  135. package/dist/adapters/subagent-frontmatter.d.ts +22 -0
  136. package/dist/adapters/subagent-frontmatter.d.ts.map +1 -0
  137. package/dist/adapters/subagent-frontmatter.js +80 -0
  138. package/dist/adapters/subagent-frontmatter.js.map +1 -0
  139. package/dist/adapters/tool-templating.d.ts +162 -0
  140. package/dist/adapters/tool-templating.d.ts.map +1 -0
  141. package/dist/adapters/tool-templating.js +273 -0
  142. package/dist/adapters/tool-templating.js.map +1 -0
  143. package/dist/adapters/types.d.ts +347 -0
  144. package/dist/adapters/types.d.ts.map +1 -0
  145. package/dist/adapters/types.js +33 -0
  146. package/dist/adapters/types.js.map +1 -0
  147. package/dist/cli/index.d.ts +10 -0
  148. package/dist/cli/index.d.ts.map +1 -0
  149. package/dist/cli/index.js +261 -0
  150. package/dist/cli/index.js.map +1 -0
  151. package/dist/cli/info.d.ts +20 -0
  152. package/dist/cli/info.d.ts.map +1 -0
  153. package/dist/cli/info.js +194 -0
  154. package/dist/cli/info.js.map +1 -0
  155. package/dist/cli/install.d.ts +21 -0
  156. package/dist/cli/install.d.ts.map +1 -0
  157. package/dist/cli/install.js +1624 -0
  158. package/dist/cli/install.js.map +1 -0
  159. package/dist/cli/list.d.ts +19 -0
  160. package/dist/cli/list.d.ts.map +1 -0
  161. package/dist/cli/list.js +216 -0
  162. package/dist/cli/list.js.map +1 -0
  163. package/dist/cli/types.d.ts +246 -0
  164. package/dist/cli/types.d.ts.map +1 -0
  165. package/dist/cli/types.js +25 -0
  166. package/dist/cli/types.js.map +1 -0
  167. package/dist/cli/uninstall.d.ts +20 -0
  168. package/dist/cli/uninstall.d.ts.map +1 -0
  169. package/dist/cli/uninstall.js +393 -0
  170. package/dist/cli/uninstall.js.map +1 -0
  171. package/dist/cli/upgrade.d.ts +20 -0
  172. package/dist/cli/upgrade.d.ts.map +1 -0
  173. package/dist/cli/upgrade.js +372 -0
  174. package/dist/cli/upgrade.js.map +1 -0
  175. package/dist/cli/validate.d.ts +14 -0
  176. package/dist/cli/validate.d.ts.map +1 -0
  177. package/dist/cli/validate.js +307 -0
  178. package/dist/cli/validate.js.map +1 -0
  179. package/dist/core/debug.d.ts +23 -0
  180. package/dist/core/debug.d.ts.map +1 -0
  181. package/dist/core/debug.js +69 -0
  182. package/dist/core/debug.js.map +1 -0
  183. package/dist/core/hook-instance.d.ts +8 -0
  184. package/dist/core/hook-instance.d.ts.map +1 -0
  185. package/dist/core/hook-instance.js +62 -0
  186. package/dist/core/hook-instance.js.map +1 -0
  187. package/dist/core/mcp-instance.d.ts +13 -0
  188. package/dist/core/mcp-instance.d.ts.map +1 -0
  189. package/dist/core/mcp-instance.js +80 -0
  190. package/dist/core/mcp-instance.js.map +1 -0
  191. package/dist/core/types.d.ts +461 -0
  192. package/dist/core/types.d.ts.map +1 -0
  193. package/dist/core/types.js +42 -0
  194. package/dist/core/types.js.map +1 -0
  195. package/dist/core/upgrade-executor.d.ts +70 -0
  196. package/dist/core/upgrade-executor.d.ts.map +1 -0
  197. package/dist/core/upgrade-executor.js +368 -0
  198. package/dist/core/upgrade-executor.js.map +1 -0
  199. package/dist/discovery/fetcher-registry.d.ts +87 -0
  200. package/dist/discovery/fetcher-registry.d.ts.map +1 -0
  201. package/dist/discovery/fetcher-registry.js +119 -0
  202. package/dist/discovery/fetcher-registry.js.map +1 -0
  203. package/dist/discovery/git-fetcher.d.ts +61 -0
  204. package/dist/discovery/git-fetcher.d.ts.map +1 -0
  205. package/dist/discovery/git-fetcher.js +150 -0
  206. package/dist/discovery/git-fetcher.js.map +1 -0
  207. package/dist/discovery/index.d.ts +13 -0
  208. package/dist/discovery/index.d.ts.map +1 -0
  209. package/dist/discovery/index.js +15 -0
  210. package/dist/discovery/index.js.map +1 -0
  211. package/dist/discovery/kit-scanner.d.ts +55 -0
  212. package/dist/discovery/kit-scanner.d.ts.map +1 -0
  213. package/dist/discovery/kit-scanner.js +305 -0
  214. package/dist/discovery/kit-scanner.js.map +1 -0
  215. package/dist/discovery/local-fetcher.d.ts +38 -0
  216. package/dist/discovery/local-fetcher.d.ts.map +1 -0
  217. package/dist/discovery/local-fetcher.js +100 -0
  218. package/dist/discovery/local-fetcher.js.map +1 -0
  219. package/dist/discovery/source-parser.d.ts +33 -0
  220. package/dist/discovery/source-parser.d.ts.map +1 -0
  221. package/dist/discovery/source-parser.js +136 -0
  222. package/dist/discovery/source-parser.js.map +1 -0
  223. package/dist/discovery/types.d.ts +145 -0
  224. package/dist/discovery/types.d.ts.map +1 -0
  225. package/dist/discovery/types.js +18 -0
  226. package/dist/discovery/types.js.map +1 -0
  227. package/dist/index.d.ts +13 -0
  228. package/dist/index.d.ts.map +1 -0
  229. package/dist/index.js +19 -0
  230. package/dist/index.js.map +1 -0
  231. package/dist/manifest/index.d.ts +79 -0
  232. package/dist/manifest/index.d.ts.map +1 -0
  233. package/dist/manifest/index.js +200 -0
  234. package/dist/manifest/index.js.map +1 -0
  235. package/dist/manifest/read.d.ts +32 -0
  236. package/dist/manifest/read.d.ts.map +1 -0
  237. package/dist/manifest/read.js +88 -0
  238. package/dist/manifest/read.js.map +1 -0
  239. package/dist/manifest/types.d.ts +119 -0
  240. package/dist/manifest/types.d.ts.map +1 -0
  241. package/dist/manifest/types.js +44 -0
  242. package/dist/manifest/types.js.map +1 -0
  243. package/dist/manifest/upgrade-check.d.ts +72 -0
  244. package/dist/manifest/upgrade-check.d.ts.map +1 -0
  245. package/dist/manifest/upgrade-check.js +215 -0
  246. package/dist/manifest/upgrade-check.js.map +1 -0
  247. package/dist/manifest/utils.d.ts +35 -0
  248. package/dist/manifest/utils.d.ts.map +1 -0
  249. package/dist/manifest/utils.js +57 -0
  250. package/dist/manifest/utils.js.map +1 -0
  251. package/dist/manifest/write.d.ts +44 -0
  252. package/dist/manifest/write.d.ts.map +1 -0
  253. package/dist/manifest/write.js +77 -0
  254. package/dist/manifest/write.js.map +1 -0
  255. package/dist/resolution/env-resolver.d.ts +81 -0
  256. package/dist/resolution/env-resolver.d.ts.map +1 -0
  257. package/dist/resolution/env-resolver.js +233 -0
  258. package/dist/resolution/env-resolver.js.map +1 -0
  259. package/dist/resolution/index.d.ts +55 -0
  260. package/dist/resolution/index.d.ts.map +1 -0
  261. package/dist/resolution/index.js +412 -0
  262. package/dist/resolution/index.js.map +1 -0
  263. package/dist/resolution/multi-kit-resolver.d.ts +43 -0
  264. package/dist/resolution/multi-kit-resolver.d.ts.map +1 -0
  265. package/dist/resolution/multi-kit-resolver.js +258 -0
  266. package/dist/resolution/multi-kit-resolver.js.map +1 -0
  267. package/dist/resolution/primitive-paths.d.ts +17 -0
  268. package/dist/resolution/primitive-paths.d.ts.map +1 -0
  269. package/dist/resolution/primitive-paths.js +59 -0
  270. package/dist/resolution/primitive-paths.js.map +1 -0
  271. package/dist/resolution/primitives-registry.d.ts +137 -0
  272. package/dist/resolution/primitives-registry.d.ts.map +1 -0
  273. package/dist/resolution/primitives-registry.js +295 -0
  274. package/dist/resolution/primitives-registry.js.map +1 -0
  275. package/dist/resolution/reference-parser.d.ts +62 -0
  276. package/dist/resolution/reference-parser.d.ts.map +1 -0
  277. package/dist/resolution/reference-parser.js +182 -0
  278. package/dist/resolution/reference-parser.js.map +1 -0
  279. package/dist/resolution/types.d.ts +77 -0
  280. package/dist/resolution/types.d.ts.map +1 -0
  281. package/dist/resolution/types.js +13 -0
  282. package/dist/resolution/types.js.map +1 -0
  283. package/dist/resolution/version-resolver.d.ts +76 -0
  284. package/dist/resolution/version-resolver.d.ts.map +1 -0
  285. package/dist/resolution/version-resolver.js +269 -0
  286. package/dist/resolution/version-resolver.js.map +1 -0
  287. package/dist/tui/compatibility.d.ts +80 -0
  288. package/dist/tui/compatibility.d.ts.map +1 -0
  289. package/dist/tui/compatibility.js +355 -0
  290. package/dist/tui/compatibility.js.map +1 -0
  291. package/dist/tui/env-prompt.d.ts +129 -0
  292. package/dist/tui/env-prompt.d.ts.map +1 -0
  293. package/dist/tui/env-prompt.js +488 -0
  294. package/dist/tui/env-prompt.js.map +1 -0
  295. package/dist/tui/harness-select.d.ts +54 -0
  296. package/dist/tui/harness-select.d.ts.map +1 -0
  297. package/dist/tui/harness-select.js +171 -0
  298. package/dist/tui/harness-select.js.map +1 -0
  299. package/dist/tui/index.d.ts +112 -0
  300. package/dist/tui/index.d.ts.map +1 -0
  301. package/dist/tui/index.js +213 -0
  302. package/dist/tui/index.js.map +1 -0
  303. package/dist/tui/kit-select.d.ts +72 -0
  304. package/dist/tui/kit-select.d.ts.map +1 -0
  305. package/dist/tui/kit-select.js +209 -0
  306. package/dist/tui/kit-select.js.map +1 -0
  307. package/dist/tui/progress.d.ts +75 -0
  308. package/dist/tui/progress.d.ts.map +1 -0
  309. package/dist/tui/progress.js +267 -0
  310. package/dist/tui/progress.js.map +1 -0
  311. package/dist/tui/resolution.d.ts +62 -0
  312. package/dist/tui/resolution.d.ts.map +1 -0
  313. package/dist/tui/resolution.js +261 -0
  314. package/dist/tui/resolution.js.map +1 -0
  315. package/dist/tui/scope-compatibility.d.ts +139 -0
  316. package/dist/tui/scope-compatibility.d.ts.map +1 -0
  317. package/dist/tui/scope-compatibility.js +230 -0
  318. package/dist/tui/scope-compatibility.js.map +1 -0
  319. package/dist/tui/scope-select.d.ts +67 -0
  320. package/dist/tui/scope-select.d.ts.map +1 -0
  321. package/dist/tui/scope-select.js +134 -0
  322. package/dist/tui/scope-select.js.map +1 -0
  323. package/dist/tui/spinner.d.ts +114 -0
  324. package/dist/tui/spinner.d.ts.map +1 -0
  325. package/dist/tui/spinner.js +186 -0
  326. package/dist/tui/spinner.js.map +1 -0
  327. package/dist/tui/summary.d.ts +71 -0
  328. package/dist/tui/summary.d.ts.map +1 -0
  329. package/dist/tui/summary.js +343 -0
  330. package/dist/tui/summary.js.map +1 -0
  331. package/dist/tui/types.d.ts +234 -0
  332. package/dist/tui/types.d.ts.map +1 -0
  333. package/dist/tui/types.js +7 -0
  334. package/dist/tui/types.js.map +1 -0
  335. package/dist/tui/upgrade-select.d.ts +73 -0
  336. package/dist/tui/upgrade-select.d.ts.map +1 -0
  337. package/dist/tui/upgrade-select.js +324 -0
  338. package/dist/tui/upgrade-select.js.map +1 -0
  339. package/dist/validation/index.d.ts +13 -0
  340. package/dist/validation/index.d.ts.map +1 -0
  341. package/dist/validation/index.js +13 -0
  342. package/dist/validation/index.js.map +1 -0
  343. package/dist/validation/source.d.ts +14 -0
  344. package/dist/validation/source.d.ts.map +1 -0
  345. package/dist/validation/source.js +51 -0
  346. package/dist/validation/source.js.map +1 -0
  347. package/dist/validation/utils.d.ts +29 -0
  348. package/dist/validation/utils.d.ts.map +1 -0
  349. package/dist/validation/utils.js +89 -0
  350. package/dist/validation/utils.js.map +1 -0
  351. package/dist/validation/validate-commands.d.ts +28 -0
  352. package/dist/validation/validate-commands.d.ts.map +1 -0
  353. package/dist/validation/validate-commands.js +151 -0
  354. package/dist/validation/validate-commands.js.map +1 -0
  355. package/dist/validation/validate-hooks.d.ts +13 -0
  356. package/dist/validation/validate-hooks.d.ts.map +1 -0
  357. package/dist/validation/validate-hooks.js +272 -0
  358. package/dist/validation/validate-hooks.js.map +1 -0
  359. package/dist/validation/validate-kits.d.ts +15 -0
  360. package/dist/validation/validate-kits.d.ts.map +1 -0
  361. package/dist/validation/validate-kits.js +185 -0
  362. package/dist/validation/validate-kits.js.map +1 -0
  363. package/dist/validation/validate-mcp.d.ts +12 -0
  364. package/dist/validation/validate-mcp.d.ts.map +1 -0
  365. package/dist/validation/validate-mcp.js +132 -0
  366. package/dist/validation/validate-mcp.js.map +1 -0
  367. package/dist/validation/validate-skills.d.ts +24 -0
  368. package/dist/validation/validate-skills.d.ts.map +1 -0
  369. package/dist/validation/validate-skills.js +223 -0
  370. package/dist/validation/validate-skills.js.map +1 -0
  371. package/dist/validation/validate-subagents.d.ts +27 -0
  372. package/dist/validation/validate-subagents.d.ts.map +1 -0
  373. package/dist/validation/validate-subagents.js +269 -0
  374. package/dist/validation/validate-subagents.js.map +1 -0
  375. package/package.json +91 -0
  376. package/schemas/command.schema.json +23 -0
  377. package/schemas/examples/hook-binding-valid.json +20 -0
  378. package/schemas/examples/hook-program-valid.json +25 -0
  379. package/schemas/examples/http-server-valid.json +82 -0
  380. package/schemas/examples/invalid-sensitive-header-no-envvar.json +16 -0
  381. package/schemas/examples/invalid-sensitive-header-with-value.json +17 -0
  382. package/schemas/examples/invalid-sensitive-var-with-default.json +19 -0
  383. package/schemas/examples/stdio-server-valid.json +55 -0
  384. package/schemas/hook-binding.schema.json +63 -0
  385. package/schemas/hook-program.schema.json +104 -0
  386. package/schemas/kit.schema.json +338 -0
  387. package/schemas/kits.schema.json +117 -0
  388. package/schemas/manifest.schema.json +200 -0
  389. package/schemas/mcp-server.schema.json +305 -0
  390. package/schemas/primitives.schema.json +118 -0
  391. package/schemas/skill.schema.json +96 -0
  392. package/schemas/subagent.schema.json +107 -0
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Version resolver for semver-based primitive version matching.
3
+ *
4
+ * Uses the semver library to resolve version specifications to concrete
5
+ * versions from the available version list.
6
+ */
7
+ import type { PrimitiveVersionEntry } from "../core/types.js";
8
+ import type { VersionResolutionResult } from "./types.js";
9
+ /**
10
+ * Error thrown when version resolution fails.
11
+ */
12
+ export declare class VersionResolutionError extends Error {
13
+ readonly spec: string;
14
+ readonly available: string[];
15
+ constructor(spec: string, available: string[], message: string);
16
+ }
17
+ /**
18
+ * Resolves a version specification to the highest matching version.
19
+ *
20
+ * @param versions - Array of available version entries
21
+ * @param spec - The version specification (e.g., "^1.0.0", "latest", "1.2.3")
22
+ * @returns The highest matching version entry, or null if no match
23
+ */
24
+ export declare function resolveVersion(versions: PrimitiveVersionEntry[], spec: string): PrimitiveVersionEntry | null;
25
+ /**
26
+ * Finds the highest version matching a semver specification.
27
+ *
28
+ * @param versions - Array of version strings
29
+ * @param spec - The version specification
30
+ * @returns The highest matching version string, or null if no match
31
+ */
32
+ export declare function findHighestMatching(versions: string[], spec: string): string | null;
33
+ /**
34
+ * Checks if a version satisfies a version specification.
35
+ *
36
+ * @param version - The version to check
37
+ * @param spec - The version specification
38
+ * @returns True if the version satisfies the spec
39
+ */
40
+ export declare function satisfies(version: string, spec: string): boolean;
41
+ /**
42
+ * Filters versions that satisfy a version specification.
43
+ *
44
+ * @param versions - Array of version entries
45
+ * @param spec - The version specification
46
+ * @returns Array of matching version entries, sorted newest first
47
+ */
48
+ export declare function filterSatisfying(versions: PrimitiveVersionEntry[], spec: string): PrimitiveVersionEntry[];
49
+ /**
50
+ * Gets version information for display purposes.
51
+ *
52
+ * @param spec - The version specification
53
+ * @returns Human-readable description of the spec
54
+ */
55
+ export declare function describeVersionSpec(spec: string): string;
56
+ /**
57
+ * Compares two version specifications to determine if they might conflict.
58
+ *
59
+ * @param specA - First version specification
60
+ * @param specB - Second version specification
61
+ * @returns True if the specs could resolve to different versions
62
+ */
63
+ export declare function specsCouldConflict(specA: string, specB: string): boolean;
64
+ /**
65
+ * Finds the highest version that satisfies multiple specifications.
66
+ *
67
+ * @param versions - Array of version strings
68
+ * @param specs - Array of version specifications
69
+ * @returns The highest version satisfying all specs, or null if none
70
+ */
71
+ export declare function findHighestMatchingAll(versions: string[], specs: string[]): string | null;
72
+ /**
73
+ * Creates a version resolution result from a version entry and base path.
74
+ */
75
+ export declare function createVersionResolution(entry: PrimitiveVersionEntry, basePath: string): VersionResolutionResult;
76
+ //# sourceMappingURL=version-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-resolver.d.ts","sourceRoot":"","sources":["../../src/resolution/version-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAG1D;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;aAE7B,IAAI,EAAE,MAAM;aACZ,SAAS,EAAE,MAAM,EAAE;gBADnB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EAAE,EACnC,OAAO,EAAE,MAAM;CAKlB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,qBAAqB,EAAE,EACjC,IAAI,EAAE,MAAM,GACX,qBAAqB,GAAG,IAAI,CAyB9B;AAwBD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuBnF;AA4CD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAkBhE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,qBAAqB,EAAE,EACjC,IAAI,EAAE,MAAM,GACX,qBAAqB,EAAE,CAWzB;AAuBD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBxD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAqBxE;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAczF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,MAAM,GACf,uBAAuB,CAOzB"}
@@ -0,0 +1,269 @@
1
+ /**
2
+ * Version resolver for semver-based primitive version matching.
3
+ *
4
+ * Uses the semver library to resolve version specifications to concrete
5
+ * versions from the available version list.
6
+ */
7
+ import * as semver from "semver";
8
+ import { parseVersionSpec } from "./reference-parser.js";
9
+ /**
10
+ * Error thrown when version resolution fails.
11
+ */
12
+ export class VersionResolutionError extends Error {
13
+ spec;
14
+ available;
15
+ constructor(spec, available, message) {
16
+ super(message);
17
+ this.spec = spec;
18
+ this.available = available;
19
+ this.name = "VersionResolutionError";
20
+ }
21
+ }
22
+ /**
23
+ * Resolves a version specification to the highest matching version.
24
+ *
25
+ * @param versions - Array of available version entries
26
+ * @param spec - The version specification (e.g., "^1.0.0", "latest", "1.2.3")
27
+ * @returns The highest matching version entry, or null if no match
28
+ */
29
+ export function resolveVersion(versions, spec) {
30
+ if (!versions || versions.length === 0) {
31
+ return null;
32
+ }
33
+ // Parse the version spec to determine type
34
+ const parsed = parseVersionSpec(spec);
35
+ // Handle "latest" keyword
36
+ if (parsed.type === "latest") {
37
+ return resolveLatest(versions);
38
+ }
39
+ // Get version strings for semver matching
40
+ const versionStrings = versions.map((v) => v.version);
41
+ // Use semver to find the highest matching version
42
+ const matchingVersion = findHighestMatching(versionStrings, spec);
43
+ if (!matchingVersion) {
44
+ return null;
45
+ }
46
+ // Return the full version entry
47
+ return versions.find((v) => v.version === matchingVersion) || null;
48
+ }
49
+ /**
50
+ * Resolves "latest" to the highest available version.
51
+ */
52
+ function resolveLatest(versions) {
53
+ if (versions.length === 0) {
54
+ return null;
55
+ }
56
+ // Filter to valid semver versions and sort
57
+ const validVersions = versions.filter((v) => semver.valid(v.version));
58
+ if (validVersions.length === 0) {
59
+ // Fallback to first version if none are valid semver
60
+ return versions[0] ?? null;
61
+ }
62
+ // Sort by semver descending and return highest
63
+ const sorted = validVersions.sort((a, b) => semver.rcompare(a.version, b.version));
64
+ return sorted[0] ?? null;
65
+ }
66
+ /**
67
+ * Finds the highest version matching a semver specification.
68
+ *
69
+ * @param versions - Array of version strings
70
+ * @param spec - The version specification
71
+ * @returns The highest matching version string, or null if no match
72
+ */
73
+ export function findHighestMatching(versions, spec) {
74
+ if (!versions || versions.length === 0) {
75
+ return null;
76
+ }
77
+ // Handle exact version match first
78
+ if (semver.valid(spec)) {
79
+ // Check if exact version exists
80
+ const exactMatch = versions.find((v) => v === spec || semver.eq(v, spec));
81
+ if (exactMatch) {
82
+ return exactMatch;
83
+ }
84
+ return null;
85
+ }
86
+ // Parse the range
87
+ const range = normalizeRange(spec);
88
+ if (!range) {
89
+ return null;
90
+ }
91
+ // Use semver.maxSatisfying to find highest matching
92
+ return semver.maxSatisfying(versions, range);
93
+ }
94
+ /**
95
+ * Normalizes a version specification to a semver range string.
96
+ *
97
+ * @param spec - The version specification
98
+ * @returns Normalized range string or null if invalid
99
+ */
100
+ function normalizeRange(spec) {
101
+ const trimmed = spec.trim();
102
+ // Handle special cases
103
+ if (trimmed.toLowerCase() === "latest" || trimmed === "*") {
104
+ return "*";
105
+ }
106
+ // Try to validate as a valid range
107
+ const validRange = semver.validRange(trimmed);
108
+ if (validRange) {
109
+ return validRange;
110
+ }
111
+ // Handle wildcard patterns like "1.x" or "1"
112
+ if (/^\d+\.x$/.test(trimmed)) {
113
+ const major = trimmed.split(".")[0] ?? "0";
114
+ return `>=${major}.0.0 <${parseInt(major) + 1}.0.0`;
115
+ }
116
+ if (/^\d+$/.test(trimmed)) {
117
+ const major = parseInt(trimmed);
118
+ return `>=${major}.0.0 <${major + 1}.0.0`;
119
+ }
120
+ // Handle partial versions like "1.2"
121
+ if (/^\d+\.\d+$/.test(trimmed)) {
122
+ const parts = trimmed.split(".").map(Number);
123
+ const major = parts[0] ?? 0;
124
+ const minor = parts[1] ?? 0;
125
+ return `>=${major}.${minor}.0 <${major}.${minor + 1}.0`;
126
+ }
127
+ return null;
128
+ }
129
+ /**
130
+ * Checks if a version satisfies a version specification.
131
+ *
132
+ * @param version - The version to check
133
+ * @param spec - The version specification
134
+ * @returns True if the version satisfies the spec
135
+ */
136
+ export function satisfies(version, spec) {
137
+ // Handle latest
138
+ if (spec.toLowerCase() === "latest") {
139
+ return true;
140
+ }
141
+ // Handle exact match
142
+ if (semver.valid(spec)) {
143
+ return version === spec || semver.eq(version, spec);
144
+ }
145
+ // Handle range
146
+ const range = normalizeRange(spec);
147
+ if (!range) {
148
+ return false;
149
+ }
150
+ return semver.satisfies(version, range);
151
+ }
152
+ /**
153
+ * Filters versions that satisfy a version specification.
154
+ *
155
+ * @param versions - Array of version entries
156
+ * @param spec - The version specification
157
+ * @returns Array of matching version entries, sorted newest first
158
+ */
159
+ export function filterSatisfying(versions, spec) {
160
+ // Handle latest - return all versions sorted
161
+ if (spec.toLowerCase() === "latest") {
162
+ return sortVersionsDescending(versions);
163
+ }
164
+ // Filter matching versions
165
+ const matching = versions.filter((v) => satisfies(v.version, spec));
166
+ // Sort by version descending
167
+ return sortVersionsDescending(matching);
168
+ }
169
+ /**
170
+ * Sorts version entries by version descending (newest first).
171
+ */
172
+ function sortVersionsDescending(versions) {
173
+ return [...versions].sort((a, b) => {
174
+ const validA = semver.valid(a.version);
175
+ const validB = semver.valid(b.version);
176
+ if (validA && validB) {
177
+ return semver.rcompare(a.version, b.version);
178
+ }
179
+ // Non-semver versions sort after semver versions
180
+ if (validA)
181
+ return -1;
182
+ if (validB)
183
+ return 1;
184
+ // Lexicographic fallback
185
+ return b.version.localeCompare(a.version);
186
+ });
187
+ }
188
+ /**
189
+ * Gets version information for display purposes.
190
+ *
191
+ * @param spec - The version specification
192
+ * @returns Human-readable description of the spec
193
+ */
194
+ export function describeVersionSpec(spec) {
195
+ const parsed = parseVersionSpec(spec);
196
+ switch (parsed.type) {
197
+ case "latest":
198
+ return "latest available version";
199
+ case "exact":
200
+ return `exact version ${spec}`;
201
+ case "caret":
202
+ return `compatible with ${spec.slice(1)}`;
203
+ case "tilde":
204
+ return `approximately ${spec.slice(1)}`;
205
+ case "range":
206
+ return `range: ${spec}`;
207
+ case "wildcard":
208
+ return `any version matching ${spec}`;
209
+ default:
210
+ return spec;
211
+ }
212
+ }
213
+ /**
214
+ * Compares two version specifications to determine if they might conflict.
215
+ *
216
+ * @param specA - First version specification
217
+ * @param specB - Second version specification
218
+ * @returns True if the specs could resolve to different versions
219
+ */
220
+ export function specsCouldConflict(specA, specB) {
221
+ // Same spec never conflicts
222
+ if (specA === specB) {
223
+ return false;
224
+ }
225
+ // Latest matches everything
226
+ if (specA.toLowerCase() === "latest" || specB.toLowerCase() === "latest") {
227
+ return false;
228
+ }
229
+ // Exact versions conflict if different
230
+ const validA = semver.valid(specA);
231
+ const validB = semver.valid(specB);
232
+ if (validA && validB) {
233
+ return !semver.eq(specA, specB);
234
+ }
235
+ // Ranges might overlap or not - this is a heuristic
236
+ // For safety, assume they could conflict
237
+ return true;
238
+ }
239
+ /**
240
+ * Finds the highest version that satisfies multiple specifications.
241
+ *
242
+ * @param versions - Array of version strings
243
+ * @param specs - Array of version specifications
244
+ * @returns The highest version satisfying all specs, or null if none
245
+ */
246
+ export function findHighestMatchingAll(versions, specs) {
247
+ if (specs.length === 0) {
248
+ return null;
249
+ }
250
+ // Filter to versions that satisfy all specs
251
+ const satisfyingAll = versions.filter((v) => specs.every((spec) => satisfies(v, spec)));
252
+ if (satisfyingAll.length === 0) {
253
+ return null;
254
+ }
255
+ // Return highest
256
+ return semver.maxSatisfying(satisfyingAll, "*");
257
+ }
258
+ /**
259
+ * Creates a version resolution result from a version entry and base path.
260
+ */
261
+ export function createVersionResolution(entry, basePath) {
262
+ return {
263
+ version: entry.version,
264
+ path: basePath + "/" + entry.path,
265
+ released: entry.released,
266
+ changelog: entry.changelog,
267
+ };
268
+ }
269
+ //# sourceMappingURL=version-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-resolver.js","sourceRoot":"","sources":["../../src/resolution/version-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Compatibility check screen.
3
+ *
4
+ * Displays compatibility matrix between selected kits and harnesses,
5
+ * showing missing primitives and experimental features.
6
+ */
7
+ import type { HarnessName, InstallationScope, PrimitiveType } from "../core/types.js";
8
+ import type { DiscoveredKit } from "../discovery/types.js";
9
+ import type { CompatibilityDisplay, CompatibilityMatrixDisplay, CompatibilityCheckResult, DetectedHarnessDisplay } from "./types.js";
10
+ /**
11
+ * Check compatibility of a kit against a harness.
12
+ */
13
+ export declare function checkKitHarnessCompatibility(kit: DiscoveredKit, harness: DetectedHarnessDisplay): CompatibilityDisplay;
14
+ /**
15
+ * Build compatibility matrix for selected kits and harnesses.
16
+ */
17
+ export declare function buildCompatibilityMatrix(kits: DiscoveredKit[], harnesses: DetectedHarnessDisplay[]): CompatibilityMatrixDisplay[];
18
+ /**
19
+ * Display compatibility matrix for a single kit.
20
+ */
21
+ export declare function displayKitCompatibility(matrix: CompatibilityMatrixDisplay): void;
22
+ /**
23
+ * Display full compatibility matrix.
24
+ */
25
+ export declare function displayCompatibilityMatrix(matrices: CompatibilityMatrixDisplay[], context: {
26
+ kits: DiscoveredKit[];
27
+ harnesses: DetectedHarnessDisplay[];
28
+ scope: InstallationScope;
29
+ }): void;
30
+ /**
31
+ * Check if any incompatibilities exist in the matrix.
32
+ */
33
+ export declare function hasIncompatibilities(matrices: CompatibilityMatrixDisplay[]): boolean;
34
+ /**
35
+ * Get incompatible kit-harness pairs.
36
+ */
37
+ export declare function getIncompatiblePairs(matrices: CompatibilityMatrixDisplay[]): {
38
+ kit: string;
39
+ harness: HarnessName;
40
+ missing: PrimitiveType[];
41
+ }[];
42
+ /**
43
+ * Get compatible kit-harness pairs.
44
+ */
45
+ export declare function getCompatiblePairs(matrices: CompatibilityMatrixDisplay[]): {
46
+ kit: string;
47
+ harness: HarnessName;
48
+ }[];
49
+ /**
50
+ * Display incompatibility summary.
51
+ */
52
+ export declare function displayIncompatibilitySummary(matrices: CompatibilityMatrixDisplay[], scope: InstallationScope): void;
53
+ /**
54
+ * Prompt user how to handle incompatibilities.
55
+ */
56
+ export declare function promptIncompatibilityChoice(matrices: CompatibilityMatrixDisplay[], scope: InstallationScope): Promise<CompatibilityCheckResult>;
57
+ /**
58
+ * Run compatibility check flow.
59
+ * Returns the check result and filtered compatible pairs.
60
+ */
61
+ export declare function runCompatibilityCheck(kits: DiscoveredKit[], harnesses: DetectedHarnessDisplay[], scope: InstallationScope, options?: {
62
+ showMatrix?: boolean;
63
+ promptOnIncompatible?: boolean;
64
+ }): Promise<{
65
+ matrices: CompatibilityMatrixDisplay[];
66
+ result: CompatibilityCheckResult;
67
+ compatiblePairs: {
68
+ kit: string;
69
+ harness: HarnessName;
70
+ }[];
71
+ }>;
72
+ /**
73
+ * Get kits that are compatible with at least one selected harness.
74
+ */
75
+ export declare function getCompatibleKits(matrices: CompatibilityMatrixDisplay[]): string[];
76
+ /**
77
+ * Get harnesses that are compatible with at least one selected kit.
78
+ */
79
+ export declare function getCompatibleHarnesses(matrices: CompatibilityMatrixDisplay[]): HarnessName[];
80
+ //# sourceMappingURL=compatibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compatibility.d.ts","sourceRoot":"","sources":["../../src/tui/compatibility.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EAExB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAIpB;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,sBAAsB,GAC9B,oBAAoB,CAqBtB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,aAAa,EAAE,EACrB,SAAS,EAAE,sBAAsB,EAAE,GAClC,0BAA0B,EAAE,CAc9B;AAmBD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,0BAA0B,GAAG,IAAI,CA4BhF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,0BAA0B,EAAE,EACtC,OAAO,EAAE;IACP,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,KAAK,EAAE,iBAAiB,CAAC;CAC1B,GACA,IAAI,CA2DN;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAEpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,0BAA0B,EAAE,GACrC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,aAAa,EAAE,CAAA;CAAE,EAAE,CAgBnE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,0BAA0B,EAAE,GACrC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,EAAE,CAezC;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,0BAA0B,EAAE,EACtC,KAAK,EAAE,iBAAiB,GACvB,IAAI,CAsBN;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,0BAA0B,EAAE,EACtC,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,wBAAwB,CAAC,CAkDnC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,aAAa,EAAE,EACrB,SAAS,EAAE,sBAAsB,EAAE,EACnC,KAAK,EAAE,iBAAiB,EACxB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,GACA,OAAO,CAAC;IACT,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,MAAM,EAAE,wBAAwB,CAAC;IACjC,eAAe,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,EAAE,CAAC;CAC1D,CAAC,CAkFD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,0BAA0B,EAAE,GACrC,MAAM,EAAE,CAaV;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,0BAA0B,EAAE,GACrC,WAAW,EAAE,CAYf"}