@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,223 @@
1
+ /**
2
+ * Adapter registry for managing harness-specific adapters.
3
+ *
4
+ * The registry provides centralized adapter registration, lookup by name,
5
+ * and enumeration of all registered adapters.
6
+ */
7
+ /**
8
+ * Adapter registry for managing harness-specific adapters.
9
+ */
10
+ export class AdapterRegistry {
11
+ adapters = new Map();
12
+ /**
13
+ * Register an adapter with the registry.
14
+ *
15
+ * @param adapter - The adapter to register
16
+ * @throws Error if an adapter with the same name is already registered
17
+ */
18
+ register(adapter) {
19
+ if (this.adapters.has(adapter.name)) {
20
+ throw new Error(`adapter already registered; name=${adapter.name}`);
21
+ }
22
+ this.adapters.set(adapter.name, adapter);
23
+ }
24
+ /**
25
+ * Register multiple adapters at once.
26
+ *
27
+ * @param adapters - Array of adapters to register
28
+ */
29
+ registerAll(adapters) {
30
+ for (const adapter of adapters) {
31
+ this.register(adapter);
32
+ }
33
+ }
34
+ /**
35
+ * Get an adapter by name.
36
+ *
37
+ * @param name - The adapter name (e.g., "claude-code")
38
+ * @returns The adapter or undefined if not found
39
+ */
40
+ get(name) {
41
+ return this.adapters.get(name);
42
+ }
43
+ /**
44
+ * Get an adapter by name, throwing if not found.
45
+ *
46
+ * @param name - The adapter name
47
+ * @throws Error if adapter not found
48
+ */
49
+ getOrThrow(name) {
50
+ const adapter = this.adapters.get(name);
51
+ if (!adapter) {
52
+ const available = this.list()
53
+ .map((a) => a.name)
54
+ .join(", ");
55
+ throw new Error(`adapter not found; name=${name}, available=[${available}]`);
56
+ }
57
+ return adapter;
58
+ }
59
+ /**
60
+ * Check if an adapter is registered.
61
+ *
62
+ * @param name - The adapter name
63
+ */
64
+ has(name) {
65
+ return this.adapters.has(name);
66
+ }
67
+ /**
68
+ * Remove an adapter from the registry.
69
+ *
70
+ * @param name - The adapter name
71
+ * @returns true if adapter was removed, false if not found
72
+ */
73
+ unregister(name) {
74
+ return this.adapters.delete(name);
75
+ }
76
+ /**
77
+ * List all registered adapters.
78
+ */
79
+ list() {
80
+ return Array.from(this.adapters.values());
81
+ }
82
+ /**
83
+ * Get the names of all registered adapters.
84
+ */
85
+ names() {
86
+ return Array.from(this.adapters.keys());
87
+ }
88
+ /**
89
+ * Get the count of registered adapters.
90
+ */
91
+ get size() {
92
+ return this.adapters.size;
93
+ }
94
+ /**
95
+ * Clear all registered adapters.
96
+ */
97
+ clear() {
98
+ this.adapters.clear();
99
+ }
100
+ /**
101
+ * Detect all registered harnesses.
102
+ *
103
+ * Runs detection for each registered adapter in parallel
104
+ * and returns a summary of detected and non-detected harnesses.
105
+ */
106
+ async detectAll() {
107
+ const adapterList = this.list();
108
+ const results = await Promise.allSettled(adapterList.map(async (adapter) => ({
109
+ adapter,
110
+ detection: await adapter.detect(),
111
+ })));
112
+ const detected = [];
113
+ const notDetected = [];
114
+ const errors = [];
115
+ for (let i = 0; i < results.length; i++) {
116
+ const result = results[i];
117
+ const adapter = adapterList[i];
118
+ if (result.status === "rejected") {
119
+ errors.push({
120
+ name: adapter.name,
121
+ error: String(result.reason),
122
+ });
123
+ }
124
+ else if (result.value.detection.detected) {
125
+ detected.push(result.value);
126
+ }
127
+ else {
128
+ notDetected.push(adapter.name);
129
+ }
130
+ }
131
+ return { detected, notDetected, errors };
132
+ }
133
+ /**
134
+ * Detect and return only adapters that are installed on the system.
135
+ */
136
+ async detectInstalled() {
137
+ const summary = await this.detectAll();
138
+ return summary.detected;
139
+ }
140
+ /**
141
+ * Find adapters by harness name pattern.
142
+ *
143
+ * Supports exact match and partial matching.
144
+ *
145
+ * @param pattern - Name or partial name to match
146
+ */
147
+ find(pattern) {
148
+ const normalizedPattern = pattern.toLowerCase();
149
+ return this.list().filter((adapter) => adapter.name.toLowerCase() === normalizedPattern ||
150
+ adapter.name.toLowerCase().includes(normalizedPattern) ||
151
+ adapter.displayName.toLowerCase().includes(normalizedPattern));
152
+ }
153
+ /**
154
+ * Get adapters that support a specific harness name.
155
+ *
156
+ * @param harnessName - The harness name to look up
157
+ */
158
+ getByHarnessName(harnessName) {
159
+ return this.adapters.get(harnessName);
160
+ }
161
+ /**
162
+ * Get adapters that support a specific installation scope.
163
+ *
164
+ * @param scope - The installation scope to filter by
165
+ */
166
+ filterByScope(scope) {
167
+ return this.list().filter((adapter) => adapter.getSupportedScopes().includes(scope));
168
+ }
169
+ /**
170
+ * Get adapters that support both specified scopes.
171
+ */
172
+ filterByBothScopes() {
173
+ return this.list().filter((adapter) => {
174
+ const scopes = adapter.getSupportedScopes();
175
+ return scopes.includes("global") && scopes.includes("project");
176
+ });
177
+ }
178
+ /**
179
+ * Check if an adapter supports a specific scope.
180
+ *
181
+ * @param name - The adapter name
182
+ * @param scope - The installation scope to check
183
+ */
184
+ supportsScope(name, scope) {
185
+ const adapter = this.adapters.get(name);
186
+ if (!adapter) {
187
+ return false;
188
+ }
189
+ return adapter.getSupportedScopes().includes(scope);
190
+ }
191
+ }
192
+ /**
193
+ * Global adapter registry instance.
194
+ *
195
+ * This is the primary registry used by the kit installer.
196
+ * Adapters should be registered during application initialization.
197
+ */
198
+ export const globalRegistry = new AdapterRegistry();
199
+ /**
200
+ * Convenience function to register an adapter with the global registry.
201
+ */
202
+ export function registerAdapter(adapter) {
203
+ globalRegistry.register(adapter);
204
+ }
205
+ /**
206
+ * Convenience function to get an adapter from the global registry.
207
+ */
208
+ export function getAdapter(name) {
209
+ return globalRegistry.get(name);
210
+ }
211
+ /**
212
+ * Convenience function to list all adapters in the global registry.
213
+ */
214
+ export function listAdapters() {
215
+ return globalRegistry.list();
216
+ }
217
+ /**
218
+ * Convenience function to detect all harnesses using the global registry.
219
+ */
220
+ export async function detectHarnesses() {
221
+ return globalRegistry.detectAll();
222
+ }
223
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Skill frontmatter parsing and transformation helpers.
3
+ */
4
+ import type { ToolMapping } from "./types.js";
5
+ export interface ParsedSkillFrontmatter {
6
+ frontmatter: Record<string, unknown>;
7
+ body: string;
8
+ hasFrontmatter: boolean;
9
+ }
10
+ /**
11
+ * Parse YAML frontmatter from a SKILL.md file.
12
+ */
13
+ export declare function parseSkillFrontmatter(content: string): ParsedSkillFrontmatter;
14
+ /**
15
+ * Serialize frontmatter + body back to SKILL.md content.
16
+ */
17
+ export declare function serializeSkillFrontmatter(frontmatter: Record<string, unknown>, body: string): string;
18
+ /**
19
+ * Filter frontmatter keys by allowlist.
20
+ */
21
+ export declare function filterFrontmatterAllowlist(frontmatter: Record<string, unknown>, allowlist: Set<string>): Record<string, unknown>;
22
+ /**
23
+ * Map tool template syntax in allowedTools to harness-specific tool names.
24
+ *
25
+ * Supports:
26
+ * - Space-delimited string (Agent Skills spec)
27
+ * - Array of strings (Claude Code format)
28
+ */
29
+ export declare function mapAllowedTools(frontmatter: Record<string, unknown>, toolMapping: ToolMapping): Record<string, unknown>;
30
+ /**
31
+ * Map canonical camelCase skill frontmatter keys to kebab-case.
32
+ */
33
+ export declare function toKebabCaseSkillFrontmatter(frontmatter: Record<string, unknown>): Record<string, unknown>;
34
+ //# sourceMappingURL=skill-frontmatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-frontmatter.d.ts","sourceRoot":"","sources":["../../src/adapters/skill-frontmatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;CACzB;AAID;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,CAqB7E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,IAAI,EAAE,MAAM,GACX,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB;AAqBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,WAAW,EAAE,WAAW,GACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyBzB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiBzB"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Skill frontmatter parsing and transformation helpers.
3
+ */
4
+ import { parse as parseYaml, stringify as stringifyYaml } from "yaml";
5
+ import { parseToolTemplate } from "./tool-templating.js";
6
+ const FRONTMATTER_REGEX = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/;
7
+ /**
8
+ * Parse YAML frontmatter from a SKILL.md file.
9
+ */
10
+ export function parseSkillFrontmatter(content) {
11
+ const match = FRONTMATTER_REGEX.exec(content);
12
+ if (!match) {
13
+ return { frontmatter: {}, body: content, hasFrontmatter: false };
14
+ }
15
+ const frontmatterYaml = match[1] ?? "";
16
+ const body = match[2] ?? "";
17
+ let frontmatter = {};
18
+ try {
19
+ const parsed = parseYaml(frontmatterYaml);
20
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
21
+ frontmatter = parsed;
22
+ }
23
+ }
24
+ catch {
25
+ frontmatter = {};
26
+ }
27
+ return { frontmatter, body, hasFrontmatter: true };
28
+ }
29
+ /**
30
+ * Serialize frontmatter + body back to SKILL.md content.
31
+ */
32
+ export function serializeSkillFrontmatter(frontmatter, body) {
33
+ const yamlBlock = stringifyYaml(frontmatter).trimEnd();
34
+ if (!yamlBlock) {
35
+ return body;
36
+ }
37
+ return `---\n${yamlBlock}\n---\n${body}`;
38
+ }
39
+ /**
40
+ * Filter frontmatter keys by allowlist.
41
+ */
42
+ export function filterFrontmatterAllowlist(frontmatter, allowlist) {
43
+ const filtered = {};
44
+ for (const [key, value] of Object.entries(frontmatter)) {
45
+ if (allowlist.has(key)) {
46
+ filtered[key] = value;
47
+ }
48
+ }
49
+ return filtered;
50
+ }
51
+ function resolveAllowedTool(value, toolMapping) {
52
+ const parsed = parseToolTemplate(value);
53
+ if (!parsed) {
54
+ return value;
55
+ }
56
+ const mapped = toolMapping[parsed.canonicalId];
57
+ if (mapped !== undefined && mapped !== null) {
58
+ return mapped;
59
+ }
60
+ if (parsed.fallback !== undefined) {
61
+ return parsed.fallback;
62
+ }
63
+ return value;
64
+ }
65
+ /**
66
+ * Map tool template syntax in allowedTools to harness-specific tool names.
67
+ *
68
+ * Supports:
69
+ * - Space-delimited string (Agent Skills spec)
70
+ * - Array of strings (Claude Code format)
71
+ */
72
+ export function mapAllowedTools(frontmatter, toolMapping) {
73
+ const allowed = frontmatter["allowedTools"];
74
+ if (typeof allowed === "string") {
75
+ const tokens = allowed.split(/\s+/).filter((token) => token.length > 0);
76
+ const mappedTokens = tokens.map((token) => resolveAllowedTool(token, toolMapping));
77
+ return {
78
+ ...frontmatter,
79
+ allowedTools: mappedTokens.join(" "),
80
+ };
81
+ }
82
+ if (Array.isArray(allowed)) {
83
+ const mapped = allowed.map((entry) => typeof entry === "string" ? resolveAllowedTool(entry, toolMapping) : entry);
84
+ return {
85
+ ...frontmatter,
86
+ allowedTools: mapped,
87
+ };
88
+ }
89
+ return frontmatter;
90
+ }
91
+ /**
92
+ * Map canonical camelCase skill frontmatter keys to kebab-case.
93
+ */
94
+ export function toKebabCaseSkillFrontmatter(frontmatter) {
95
+ const mapped = { ...frontmatter };
96
+ const keyMap = {
97
+ argumentHint: "argument-hint",
98
+ disableModelInvocation: "disable-model-invocation",
99
+ userInvocable: "user-invocable",
100
+ allowedTools: "allowed-tools",
101
+ };
102
+ for (const [from, to] of Object.entries(keyMap)) {
103
+ if (Object.prototype.hasOwnProperty.call(mapped, from)) {
104
+ mapped[to] = mapped[from];
105
+ delete mapped[from];
106
+ }
107
+ }
108
+ return mapped;
109
+ }
110
+ //# sourceMappingURL=skill-frontmatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-frontmatter.js","sourceRoot":"","sources":["../../src/adapters/skill-frontmatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Subagent frontmatter parsing and transformation helpers.
3
+ */
4
+ import type { ToolMapping } from "./types.js";
5
+ export interface ParsedSubagentFrontmatter {
6
+ frontmatter: Record<string, unknown>;
7
+ body: string;
8
+ hasFrontmatter: boolean;
9
+ }
10
+ /**
11
+ * Parse YAML frontmatter from a subagent Markdown file.
12
+ */
13
+ export declare function parseSubagentFrontmatter(content: string): ParsedSubagentFrontmatter;
14
+ /**
15
+ * Serialize frontmatter + body back to subagent content.
16
+ */
17
+ export declare function serializeSubagentFrontmatter(frontmatter: Record<string, unknown>, body: string): string;
18
+ /**
19
+ * Map tool template syntax in allowedTools/disallowedTools to harness-specific tool names.
20
+ */
21
+ export declare function mapSubagentTools(frontmatter: Record<string, unknown>, toolMapping: ToolMapping): Record<string, unknown>;
22
+ //# sourceMappingURL=subagent-frontmatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-frontmatter.d.ts","sourceRoot":"","sources":["../../src/adapters/subagent-frontmatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;CACzB;AAID;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB,CAqBnF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,IAAI,EAAE,MAAM,GACX,MAAM,CAMR;AAsCD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,WAAW,EAAE,WAAW,GACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAazB"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Subagent frontmatter parsing and transformation helpers.
3
+ */
4
+ import { parse as parseYaml, stringify as stringifyYaml } from "yaml";
5
+ import { parseToolTemplate } from "./tool-templating.js";
6
+ const FRONTMATTER_REGEX = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/;
7
+ /**
8
+ * Parse YAML frontmatter from a subagent Markdown file.
9
+ */
10
+ export function parseSubagentFrontmatter(content) {
11
+ const match = FRONTMATTER_REGEX.exec(content);
12
+ if (!match) {
13
+ return { frontmatter: {}, body: content, hasFrontmatter: false };
14
+ }
15
+ const frontmatterYaml = match[1] ?? "";
16
+ const body = match[2] ?? "";
17
+ let frontmatter = {};
18
+ try {
19
+ const parsed = parseYaml(frontmatterYaml);
20
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
21
+ frontmatter = parsed;
22
+ }
23
+ }
24
+ catch {
25
+ frontmatter = {};
26
+ }
27
+ return { frontmatter, body, hasFrontmatter: true };
28
+ }
29
+ /**
30
+ * Serialize frontmatter + body back to subagent content.
31
+ */
32
+ export function serializeSubagentFrontmatter(frontmatter, body) {
33
+ const yamlBlock = stringifyYaml(frontmatter).trimEnd();
34
+ if (!yamlBlock) {
35
+ return body;
36
+ }
37
+ return `---\n${yamlBlock}\n---\n${body}`;
38
+ }
39
+ function resolveToolValue(value, toolMapping) {
40
+ const parsed = parseToolTemplate(value);
41
+ if (!parsed) {
42
+ return value;
43
+ }
44
+ const mapped = toolMapping[parsed.canonicalId];
45
+ if (mapped !== undefined && mapped !== null) {
46
+ return mapped;
47
+ }
48
+ if (parsed.fallback !== undefined) {
49
+ return parsed.fallback;
50
+ }
51
+ return value;
52
+ }
53
+ function mapToolList(value, toolMapping) {
54
+ if (typeof value === "string") {
55
+ const tokens = value.split(/\s+/).filter((token) => token.length > 0);
56
+ const mappedTokens = tokens.map((token) => resolveToolValue(token, toolMapping));
57
+ return mappedTokens.join(" ");
58
+ }
59
+ if (Array.isArray(value)) {
60
+ const mapped = value.map((entry) => typeof entry === "string" ? resolveToolValue(entry, toolMapping) : entry);
61
+ return mapped;
62
+ }
63
+ return undefined;
64
+ }
65
+ /**
66
+ * Map tool template syntax in allowedTools/disallowedTools to harness-specific tool names.
67
+ */
68
+ export function mapSubagentTools(frontmatter, toolMapping) {
69
+ const allowed = mapToolList(frontmatter["allowedTools"], toolMapping);
70
+ const disallowed = mapToolList(frontmatter["disallowedTools"], toolMapping);
71
+ const mapped = { ...frontmatter };
72
+ if (allowed !== undefined) {
73
+ mapped["allowedTools"] = allowed;
74
+ }
75
+ if (disallowed !== undefined) {
76
+ mapped["disallowedTools"] = disallowed;
77
+ }
78
+ return mapped;
79
+ }
80
+ //# sourceMappingURL=subagent-frontmatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-frontmatter.js","sourceRoot":"","sources":["../../src/adapters/subagent-frontmatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAQzD,MAAM,iBAAiB,GAAG,6CAA6C,CAAC;AAExE;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IACnE,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE5B,IAAI,WAAW,GAA4B,EAAE,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;QAC1C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,WAAW,GAAG,MAAiC,CAAC;QAClD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAC1C,WAAoC,EACpC,IAAY;IAEZ,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;IACvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,SAAS,UAAU,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,WAAwB;IAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAClB,KAAc,EACd,WAAwB;IAExB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;QACjF,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACjC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CACzE,CAAC;QACF,OAAO,MAAkB,CAAC;IAC5B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAoC,EACpC,WAAwB;IAExB,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,CAAC;IAE5E,MAAM,MAAM,GAA4B,EAAE,GAAG,WAAW,EAAE,CAAC;IAC3D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC;IACnC,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC;IACzC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Tool reference templating system.
3
+ *
4
+ * Primitives often reference harness tools by name in their instructional content.
5
+ * Because tool names differ across harnesses (e.g., Claude Code's "Bash" vs
6
+ * Gemini CLI's "run_shell_command"), this module provides a templating system
7
+ * to make primitives truly harness-agnostic.
8
+ *
9
+ * Template syntax:
10
+ * - Basic: {{tool:shell}} -> resolves to harness-specific tool name
11
+ * - With fallback: {{tool:websearch:fallback="Search the web for"}} -> uses fallback if tool unavailable
12
+ */
13
+ import type { ToolMapping, TemplateProcessingResult } from "./types.js";
14
+ import { type CanonicalToolId } from "./types.js";
15
+ /**
16
+ * Parsed tool template.
17
+ */
18
+ export interface ParsedToolTemplate {
19
+ fullMatch: string;
20
+ canonicalId: string;
21
+ fallback?: string;
22
+ }
23
+ /**
24
+ * Parse a tool template string and extract its components.
25
+ *
26
+ * @param template - The template string (e.g., '{{tool:shell}}')
27
+ * @returns Parsed template or null if invalid
28
+ */
29
+ export declare function parseToolTemplate(template: string): ParsedToolTemplate | null;
30
+ /**
31
+ * Find all tool templates in a string.
32
+ *
33
+ * @param content - The content to search
34
+ * @returns Array of parsed templates with their positions
35
+ */
36
+ export declare function findToolTemplates(content: string): Array<ParsedToolTemplate & {
37
+ index: number;
38
+ }>;
39
+ /**
40
+ * Check if a canonical tool ID is valid.
41
+ *
42
+ * @param id - The tool ID to check
43
+ */
44
+ export declare function isValidCanonicalToolId(id: string): id is CanonicalToolId;
45
+ /**
46
+ * Process tool templates in content using the provided tool mapping.
47
+ *
48
+ * Template processing rules:
49
+ * 1. If the adapter has a mapping for the canonical ID, replace with harness-specific name
50
+ * 2. If no mapping exists and fallback text is provided, use fallback text
51
+ * 3. If no mapping and no fallback, render as "<canonical-id> tool" and track as unresolved
52
+ *
53
+ * @param content - The content containing tool templates
54
+ * @param toolMapping - The harness-specific tool mapping
55
+ * @returns Processing result with transformed content and resolution details
56
+ */
57
+ export declare function processToolTemplates(content: string, toolMapping: ToolMapping): TemplateProcessingResult;
58
+ /**
59
+ * Check if content contains any tool templates.
60
+ *
61
+ * @param content - The content to check
62
+ */
63
+ export declare function hasToolTemplates(content: string): boolean;
64
+ /**
65
+ * Count the number of tool templates in content.
66
+ *
67
+ * @param content - The content to search
68
+ */
69
+ export declare function countToolTemplates(content: string): number;
70
+ /**
71
+ * Get all unique canonical tool IDs referenced in content.
72
+ *
73
+ * @param content - The content to search
74
+ */
75
+ export declare function getReferencedToolIds(content: string): string[];
76
+ /**
77
+ * Validate that all tool templates reference valid canonical IDs.
78
+ *
79
+ * @param content - The content to validate
80
+ * @returns Array of invalid tool IDs found
81
+ */
82
+ export declare function validateToolTemplates(content: string): string[];
83
+ /**
84
+ * Create a tool template string.
85
+ *
86
+ * @param canonicalId - The canonical tool ID
87
+ * @param fallback - Optional fallback text
88
+ */
89
+ export declare function createToolTemplate(canonicalId: CanonicalToolId, fallback?: string): string;
90
+ /**
91
+ * Default tool mappings for common harnesses.
92
+ * These are provided as reference; actual adapters may have different mappings.
93
+ */
94
+ export declare const DEFAULT_TOOL_MAPPINGS: {
95
+ readonly "claude-code": {
96
+ shell: string;
97
+ read: string;
98
+ write: string;
99
+ edit: string;
100
+ grep: string;
101
+ glob: string;
102
+ list: string;
103
+ webfetch: string;
104
+ websearch: string;
105
+ todo: string;
106
+ ask: string;
107
+ };
108
+ readonly codex: {
109
+ shell: string;
110
+ read: string;
111
+ write: string;
112
+ edit: string;
113
+ grep: null;
114
+ glob: null;
115
+ list: null;
116
+ webfetch: null;
117
+ websearch: null;
118
+ todo: string;
119
+ ask: null;
120
+ };
121
+ readonly "gemini-cli": {
122
+ shell: string;
123
+ read: string;
124
+ write: string;
125
+ edit: string;
126
+ grep: string;
127
+ glob: string;
128
+ list: string;
129
+ webfetch: string;
130
+ websearch: string;
131
+ todo: string;
132
+ ask: null;
133
+ };
134
+ readonly "github-copilot": {
135
+ shell: null;
136
+ read: null;
137
+ write: null;
138
+ edit: null;
139
+ grep: null;
140
+ glob: null;
141
+ list: null;
142
+ webfetch: string;
143
+ websearch: null;
144
+ todo: null;
145
+ ask: null;
146
+ };
147
+ readonly opencode: {
148
+ shell: string;
149
+ read: string;
150
+ write: string;
151
+ edit: string;
152
+ grep: string;
153
+ glob: string;
154
+ list: string;
155
+ webfetch: string;
156
+ websearch: null;
157
+ todo: string;
158
+ ask: string;
159
+ };
160
+ };
161
+ export type HarnessToolMappingName = keyof typeof DEFAULT_TOOL_MAPPINGS;
162
+ //# sourceMappingURL=tool-templating.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-templating.d.ts","sourceRoot":"","sources":["../../src/adapters/tool-templating.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EAGzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAWnE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAkB7E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,GACd,KAAK,CAAC,kBAAkB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAkB/C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,eAAe,CAExE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,GACvB,wBAAwB,CA0D1B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAI9D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAa/D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,eAAe,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAKR;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsExB,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,qBAAqB,CAAC"}