@phnx-labs/agents-cli 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 (486) hide show
  1. package/CHANGELOG.md +316 -0
  2. package/LICENSE +21 -0
  3. package/README.md +537 -0
  4. package/dist/commands/__tests__/sessions.test.d.ts +2 -0
  5. package/dist/commands/__tests__/sessions.test.d.ts.map +1 -0
  6. package/dist/commands/__tests__/sessions.test.js +636 -0
  7. package/dist/commands/__tests__/sessions.test.js.map +1 -0
  8. package/dist/commands/cloud.d.ts +3 -0
  9. package/dist/commands/cloud.d.ts.map +1 -0
  10. package/dist/commands/cloud.js +322 -0
  11. package/dist/commands/cloud.js.map +1 -0
  12. package/dist/commands/commands.d.ts +3 -0
  13. package/dist/commands/commands.d.ts.map +1 -0
  14. package/dist/commands/commands.js +628 -0
  15. package/dist/commands/commands.js.map +1 -0
  16. package/dist/commands/daemon.d.ts +3 -0
  17. package/dist/commands/daemon.d.ts.map +1 -0
  18. package/dist/commands/daemon.js +110 -0
  19. package/dist/commands/daemon.js.map +1 -0
  20. package/dist/commands/drive.d.ts +3 -0
  21. package/dist/commands/drive.d.ts.map +1 -0
  22. package/dist/commands/drive.js +166 -0
  23. package/dist/commands/drive.js.map +1 -0
  24. package/dist/commands/exec.d.ts +3 -0
  25. package/dist/commands/exec.d.ts.map +1 -0
  26. package/dist/commands/exec.js +241 -0
  27. package/dist/commands/exec.js.map +1 -0
  28. package/dist/commands/fork.d.ts +3 -0
  29. package/dist/commands/fork.d.ts.map +1 -0
  30. package/dist/commands/fork.js +139 -0
  31. package/dist/commands/fork.js.map +1 -0
  32. package/dist/commands/hooks.d.ts +3 -0
  33. package/dist/commands/hooks.d.ts.map +1 -0
  34. package/dist/commands/hooks.js +689 -0
  35. package/dist/commands/hooks.js.map +1 -0
  36. package/dist/commands/init.d.ts +6 -0
  37. package/dist/commands/init.d.ts.map +1 -0
  38. package/dist/commands/init.js +127 -0
  39. package/dist/commands/init.js.map +1 -0
  40. package/dist/commands/mcp.d.ts +3 -0
  41. package/dist/commands/mcp.d.ts.map +1 -0
  42. package/dist/commands/mcp.js +581 -0
  43. package/dist/commands/mcp.js.map +1 -0
  44. package/dist/commands/models.d.ts +3 -0
  45. package/dist/commands/models.d.ts.map +1 -0
  46. package/dist/commands/models.js +158 -0
  47. package/dist/commands/models.js.map +1 -0
  48. package/dist/commands/packages.d.ts +3 -0
  49. package/dist/commands/packages.d.ts.map +1 -0
  50. package/dist/commands/packages.js +541 -0
  51. package/dist/commands/packages.js.map +1 -0
  52. package/dist/commands/permissions.d.ts +3 -0
  53. package/dist/commands/permissions.d.ts.map +1 -0
  54. package/dist/commands/permissions.js +723 -0
  55. package/dist/commands/permissions.js.map +1 -0
  56. package/dist/commands/plugins.d.ts +3 -0
  57. package/dist/commands/plugins.d.ts.map +1 -0
  58. package/dist/commands/plugins.js +382 -0
  59. package/dist/commands/plugins.js.map +1 -0
  60. package/dist/commands/profiles.d.ts +3 -0
  61. package/dist/commands/profiles.d.ts.map +1 -0
  62. package/dist/commands/profiles.js +242 -0
  63. package/dist/commands/profiles.js.map +1 -0
  64. package/dist/commands/pty.d.ts +20 -0
  65. package/dist/commands/pty.d.ts.map +1 -0
  66. package/dist/commands/pty.js +389 -0
  67. package/dist/commands/pty.js.map +1 -0
  68. package/dist/commands/pull.d.ts +3 -0
  69. package/dist/commands/pull.d.ts.map +1 -0
  70. package/dist/commands/pull.js +448 -0
  71. package/dist/commands/pull.js.map +1 -0
  72. package/dist/commands/push.d.ts +3 -0
  73. package/dist/commands/push.d.ts.map +1 -0
  74. package/dist/commands/push.js +180 -0
  75. package/dist/commands/push.js.map +1 -0
  76. package/dist/commands/refresh-memory.d.ts +9 -0
  77. package/dist/commands/refresh-memory.d.ts.map +1 -0
  78. package/dist/commands/refresh-memory.js +45 -0
  79. package/dist/commands/refresh-memory.js.map +1 -0
  80. package/dist/commands/resource-view.d.ts +31 -0
  81. package/dist/commands/resource-view.d.ts.map +1 -0
  82. package/dist/commands/resource-view.js +183 -0
  83. package/dist/commands/resource-view.js.map +1 -0
  84. package/dist/commands/routines.d.ts +3 -0
  85. package/dist/commands/routines.d.ts.map +1 -0
  86. package/dist/commands/routines.js +579 -0
  87. package/dist/commands/routines.js.map +1 -0
  88. package/dist/commands/rules.d.ts +3 -0
  89. package/dist/commands/rules.d.ts.map +1 -0
  90. package/dist/commands/rules.js +488 -0
  91. package/dist/commands/rules.js.map +1 -0
  92. package/dist/commands/secrets.d.ts +3 -0
  93. package/dist/commands/secrets.d.ts.map +1 -0
  94. package/dist/commands/secrets.js +339 -0
  95. package/dist/commands/secrets.js.map +1 -0
  96. package/dist/commands/sessions-picker.d.ts +16 -0
  97. package/dist/commands/sessions-picker.d.ts.map +1 -0
  98. package/dist/commands/sessions-picker.js +256 -0
  99. package/dist/commands/sessions-picker.js.map +1 -0
  100. package/dist/commands/sessions.d.ts +16 -0
  101. package/dist/commands/sessions.d.ts.map +1 -0
  102. package/dist/commands/sessions.js +1077 -0
  103. package/dist/commands/sessions.js.map +1 -0
  104. package/dist/commands/skills.d.ts +3 -0
  105. package/dist/commands/skills.d.ts.map +1 -0
  106. package/dist/commands/skills.js +716 -0
  107. package/dist/commands/skills.js.map +1 -0
  108. package/dist/commands/status.d.ts +3 -0
  109. package/dist/commands/status.d.ts.map +1 -0
  110. package/dist/commands/status.js +19 -0
  111. package/dist/commands/status.js.map +1 -0
  112. package/dist/commands/subagents.d.ts +3 -0
  113. package/dist/commands/subagents.d.ts.map +1 -0
  114. package/dist/commands/subagents.js +350 -0
  115. package/dist/commands/subagents.js.map +1 -0
  116. package/dist/commands/sync.d.ts +3 -0
  117. package/dist/commands/sync.d.ts.map +1 -0
  118. package/dist/commands/sync.js +62 -0
  119. package/dist/commands/sync.js.map +1 -0
  120. package/dist/commands/teams-picker.d.ts +14 -0
  121. package/dist/commands/teams-picker.d.ts.map +1 -0
  122. package/dist/commands/teams-picker.js +278 -0
  123. package/dist/commands/teams-picker.js.map +1 -0
  124. package/dist/commands/teams.d.ts +3 -0
  125. package/dist/commands/teams.d.ts.map +1 -0
  126. package/dist/commands/teams.js +917 -0
  127. package/dist/commands/teams.js.map +1 -0
  128. package/dist/commands/utils.d.ts +39 -0
  129. package/dist/commands/utils.d.ts.map +1 -0
  130. package/dist/commands/utils.js +100 -0
  131. package/dist/commands/utils.js.map +1 -0
  132. package/dist/commands/versions.d.ts +3 -0
  133. package/dist/commands/versions.d.ts.map +1 -0
  134. package/dist/commands/versions.js +700 -0
  135. package/dist/commands/versions.js.map +1 -0
  136. package/dist/commands/view.d.ts +8 -0
  137. package/dist/commands/view.d.ts.map +1 -0
  138. package/dist/commands/view.js +626 -0
  139. package/dist/commands/view.js.map +1 -0
  140. package/dist/index.d.ts +3 -0
  141. package/dist/index.d.ts.map +1 -0
  142. package/dist/index.js +484 -0
  143. package/dist/index.js.map +1 -0
  144. package/dist/lib/__tests__/bugfixes.test.d.ts +2 -0
  145. package/dist/lib/__tests__/bugfixes.test.d.ts.map +1 -0
  146. package/dist/lib/__tests__/bugfixes.test.js +192 -0
  147. package/dist/lib/__tests__/bugfixes.test.js.map +1 -0
  148. package/dist/lib/__tests__/exec.test.d.ts +2 -0
  149. package/dist/lib/__tests__/exec.test.d.ts.map +1 -0
  150. package/dist/lib/__tests__/exec.test.js +446 -0
  151. package/dist/lib/__tests__/exec.test.js.map +1 -0
  152. package/dist/lib/__tests__/git-sync.test.d.ts +2 -0
  153. package/dist/lib/__tests__/git-sync.test.d.ts.map +1 -0
  154. package/dist/lib/__tests__/git-sync.test.js +138 -0
  155. package/dist/lib/__tests__/git-sync.test.js.map +1 -0
  156. package/dist/lib/__tests__/hooks.test.d.ts +2 -0
  157. package/dist/lib/__tests__/hooks.test.d.ts.map +1 -0
  158. package/dist/lib/__tests__/hooks.test.js +203 -0
  159. package/dist/lib/__tests__/hooks.test.js.map +1 -0
  160. package/dist/lib/__tests__/memory-compile.test.d.ts +2 -0
  161. package/dist/lib/__tests__/memory-compile.test.d.ts.map +1 -0
  162. package/dist/lib/__tests__/memory-compile.test.js +95 -0
  163. package/dist/lib/__tests__/memory-compile.test.js.map +1 -0
  164. package/dist/lib/__tests__/models.test.d.ts +2 -0
  165. package/dist/lib/__tests__/models.test.d.ts.map +1 -0
  166. package/dist/lib/__tests__/models.test.js +239 -0
  167. package/dist/lib/__tests__/models.test.js.map +1 -0
  168. package/dist/lib/__tests__/rotate.test.d.ts +2 -0
  169. package/dist/lib/__tests__/rotate.test.d.ts.map +1 -0
  170. package/dist/lib/__tests__/rotate.test.js +80 -0
  171. package/dist/lib/__tests__/rotate.test.js.map +1 -0
  172. package/dist/lib/__tests__/secrets-bundles.test.d.ts +2 -0
  173. package/dist/lib/__tests__/secrets-bundles.test.d.ts.map +1 -0
  174. package/dist/lib/__tests__/secrets-bundles.test.js +104 -0
  175. package/dist/lib/__tests__/secrets-bundles.test.js.map +1 -0
  176. package/dist/lib/__tests__/secrets.test.d.ts +2 -0
  177. package/dist/lib/__tests__/secrets.test.d.ts.map +1 -0
  178. package/dist/lib/__tests__/secrets.test.js +90 -0
  179. package/dist/lib/__tests__/secrets.test.js.map +1 -0
  180. package/dist/lib/__tests__/shims.test.d.ts +2 -0
  181. package/dist/lib/__tests__/shims.test.d.ts.map +1 -0
  182. package/dist/lib/__tests__/shims.test.js +39 -0
  183. package/dist/lib/__tests__/shims.test.js.map +1 -0
  184. package/dist/lib/__tests__/usage.test.d.ts +2 -0
  185. package/dist/lib/__tests__/usage.test.d.ts.map +1 -0
  186. package/dist/lib/__tests__/usage.test.js +220 -0
  187. package/dist/lib/__tests__/usage.test.js.map +1 -0
  188. package/dist/lib/__tests__/versions.test.d.ts +2 -0
  189. package/dist/lib/__tests__/versions.test.d.ts.map +1 -0
  190. package/dist/lib/__tests__/versions.test.js +63 -0
  191. package/dist/lib/__tests__/versions.test.js.map +1 -0
  192. package/dist/lib/agents.d.ts +107 -0
  193. package/dist/lib/agents.d.ts.map +1 -0
  194. package/dist/lib/agents.js +1096 -0
  195. package/dist/lib/agents.js.map +1 -0
  196. package/dist/lib/artifact-actions.d.ts +22 -0
  197. package/dist/lib/artifact-actions.d.ts.map +1 -0
  198. package/dist/lib/artifact-actions.js +55 -0
  199. package/dist/lib/artifact-actions.js.map +1 -0
  200. package/dist/lib/cloud/codex.d.ts +19 -0
  201. package/dist/lib/cloud/codex.d.ts.map +1 -0
  202. package/dist/lib/cloud/codex.js +210 -0
  203. package/dist/lib/cloud/codex.js.map +1 -0
  204. package/dist/lib/cloud/factory.d.ts +26 -0
  205. package/dist/lib/cloud/factory.d.ts.map +1 -0
  206. package/dist/lib/cloud/factory.js +37 -0
  207. package/dist/lib/cloud/factory.js.map +1 -0
  208. package/dist/lib/cloud/registry.d.ts +6 -0
  209. package/dist/lib/cloud/registry.d.ts.map +1 -0
  210. package/dist/lib/cloud/registry.js +56 -0
  211. package/dist/lib/cloud/registry.js.map +1 -0
  212. package/dist/lib/cloud/rush.d.ts +15 -0
  213. package/dist/lib/cloud/rush.d.ts.map +1 -0
  214. package/dist/lib/cloud/rush.js +185 -0
  215. package/dist/lib/cloud/rush.js.map +1 -0
  216. package/dist/lib/cloud/store.d.ts +10 -0
  217. package/dist/lib/cloud/store.d.ts.map +1 -0
  218. package/dist/lib/cloud/store.js +96 -0
  219. package/dist/lib/cloud/store.js.map +1 -0
  220. package/dist/lib/cloud/stream.d.ts +18 -0
  221. package/dist/lib/cloud/stream.d.ts.map +1 -0
  222. package/dist/lib/cloud/stream.js +138 -0
  223. package/dist/lib/cloud/stream.js.map +1 -0
  224. package/dist/lib/cloud/types.d.ts +60 -0
  225. package/dist/lib/cloud/types.d.ts.map +1 -0
  226. package/dist/lib/cloud/types.js +2 -0
  227. package/dist/lib/cloud/types.js.map +1 -0
  228. package/dist/lib/commands.d.ts +121 -0
  229. package/dist/lib/commands.d.ts.map +1 -0
  230. package/dist/lib/commands.js +499 -0
  231. package/dist/lib/commands.js.map +1 -0
  232. package/dist/lib/convert.d.ts +11 -0
  233. package/dist/lib/convert.d.ts.map +1 -0
  234. package/dist/lib/convert.js +45 -0
  235. package/dist/lib/convert.js.map +1 -0
  236. package/dist/lib/daemon.d.ts +22 -0
  237. package/dist/lib/daemon.d.ts.map +1 -0
  238. package/dist/lib/daemon.js +311 -0
  239. package/dist/lib/daemon.js.map +1 -0
  240. package/dist/lib/drive-sync.d.ts +28 -0
  241. package/dist/lib/drive-sync.d.ts.map +1 -0
  242. package/dist/lib/drive-sync.js +193 -0
  243. package/dist/lib/drive-sync.js.map +1 -0
  244. package/dist/lib/exec.d.ts +85 -0
  245. package/dist/lib/exec.d.ts.map +1 -0
  246. package/dist/lib/exec.js +423 -0
  247. package/dist/lib/exec.js.map +1 -0
  248. package/dist/lib/factory.d.ts +57 -0
  249. package/dist/lib/factory.d.ts.map +1 -0
  250. package/dist/lib/factory.js +110 -0
  251. package/dist/lib/factory.js.map +1 -0
  252. package/dist/lib/git.d.ts +146 -0
  253. package/dist/lib/git.d.ts.map +1 -0
  254. package/dist/lib/git.js +635 -0
  255. package/dist/lib/git.js.map +1 -0
  256. package/dist/lib/help.d.ts +3 -0
  257. package/dist/lib/help.d.ts.map +1 -0
  258. package/dist/lib/help.js +63 -0
  259. package/dist/lib/help.js.map +1 -0
  260. package/dist/lib/hooks.d.ts +116 -0
  261. package/dist/lib/hooks.d.ts.map +1 -0
  262. package/dist/lib/hooks.js +837 -0
  263. package/dist/lib/hooks.js.map +1 -0
  264. package/dist/lib/manifest.d.ts +8 -0
  265. package/dist/lib/manifest.d.ts.map +1 -0
  266. package/dist/lib/manifest.js +36 -0
  267. package/dist/lib/manifest.js.map +1 -0
  268. package/dist/lib/markdown.d.ts +5 -0
  269. package/dist/lib/markdown.d.ts.map +1 -0
  270. package/dist/lib/markdown.js +11 -0
  271. package/dist/lib/markdown.js.map +1 -0
  272. package/dist/lib/mcp.d.ts +64 -0
  273. package/dist/lib/mcp.d.ts.map +1 -0
  274. package/dist/lib/mcp.js +327 -0
  275. package/dist/lib/mcp.js.map +1 -0
  276. package/dist/lib/memory-compile.d.ts +56 -0
  277. package/dist/lib/memory-compile.d.ts.map +1 -0
  278. package/dist/lib/memory-compile.js +167 -0
  279. package/dist/lib/memory-compile.js.map +1 -0
  280. package/dist/lib/memory.d.ts +56 -0
  281. package/dist/lib/memory.d.ts.map +1 -0
  282. package/dist/lib/memory.js +267 -0
  283. package/dist/lib/memory.js.map +1 -0
  284. package/dist/lib/models.d.ts +91 -0
  285. package/dist/lib/models.d.ts.map +1 -0
  286. package/dist/lib/models.js +706 -0
  287. package/dist/lib/models.js.map +1 -0
  288. package/dist/lib/permissions.d.ts +204 -0
  289. package/dist/lib/permissions.d.ts.map +1 -0
  290. package/dist/lib/permissions.js +1022 -0
  291. package/dist/lib/permissions.js.map +1 -0
  292. package/dist/lib/picker.d.ts +17 -0
  293. package/dist/lib/picker.d.ts.map +1 -0
  294. package/dist/lib/picker.js +95 -0
  295. package/dist/lib/picker.js.map +1 -0
  296. package/dist/lib/plugins.d.ts +73 -0
  297. package/dist/lib/plugins.d.ts.map +1 -0
  298. package/dist/lib/plugins.js +549 -0
  299. package/dist/lib/plugins.js.map +1 -0
  300. package/dist/lib/profiles-keychain.d.ts +3 -0
  301. package/dist/lib/profiles-keychain.d.ts.map +1 -0
  302. package/dist/lib/profiles-keychain.js +10 -0
  303. package/dist/lib/profiles-keychain.js.map +1 -0
  304. package/dist/lib/profiles-presets.d.ts +15 -0
  305. package/dist/lib/profiles-presets.d.ts.map +1 -0
  306. package/dist/lib/profiles-presets.js +95 -0
  307. package/dist/lib/profiles-presets.js.map +1 -0
  308. package/dist/lib/profiles.d.ts +35 -0
  309. package/dist/lib/profiles.d.ts.map +1 -0
  310. package/dist/lib/profiles.js +123 -0
  311. package/dist/lib/profiles.js.map +1 -0
  312. package/dist/lib/pty-client.d.ts +22 -0
  313. package/dist/lib/pty-client.d.ts.map +1 -0
  314. package/dist/lib/pty-client.js +181 -0
  315. package/dist/lib/pty-client.js.map +1 -0
  316. package/dist/lib/pty-server.d.ts +16 -0
  317. package/dist/lib/pty-server.d.ts.map +1 -0
  318. package/dist/lib/pty-server.js +422 -0
  319. package/dist/lib/pty-server.js.map +1 -0
  320. package/dist/lib/registry.d.ts +28 -0
  321. package/dist/lib/registry.d.ts.map +1 -0
  322. package/dist/lib/registry.js +203 -0
  323. package/dist/lib/registry.js.map +1 -0
  324. package/dist/lib/resources.d.ts +50 -0
  325. package/dist/lib/resources.d.ts.map +1 -0
  326. package/dist/lib/resources.js +103 -0
  327. package/dist/lib/resources.js.map +1 -0
  328. package/dist/lib/rotate.d.ts +52 -0
  329. package/dist/lib/rotate.d.ts.map +1 -0
  330. package/dist/lib/rotate.js +87 -0
  331. package/dist/lib/rotate.js.map +1 -0
  332. package/dist/lib/routines.d.ts +70 -0
  333. package/dist/lib/routines.d.ts.map +1 -0
  334. package/dist/lib/routines.js +325 -0
  335. package/dist/lib/routines.js.map +1 -0
  336. package/dist/lib/runner.d.ts +12 -0
  337. package/dist/lib/runner.d.ts.map +1 -0
  338. package/dist/lib/runner.js +311 -0
  339. package/dist/lib/runner.js.map +1 -0
  340. package/dist/lib/sandbox.d.ts +10 -0
  341. package/dist/lib/sandbox.d.ts.map +1 -0
  342. package/dist/lib/sandbox.js +201 -0
  343. package/dist/lib/sandbox.js.map +1 -0
  344. package/dist/lib/scheduler.d.ts +18 -0
  345. package/dist/lib/scheduler.d.ts.map +1 -0
  346. package/dist/lib/scheduler.js +69 -0
  347. package/dist/lib/scheduler.js.map +1 -0
  348. package/dist/lib/secrets-bundles.d.ts +29 -0
  349. package/dist/lib/secrets-bundles.d.ts.map +1 -0
  350. package/dist/lib/secrets-bundles.js +168 -0
  351. package/dist/lib/secrets-bundles.js.map +1 -0
  352. package/dist/lib/secrets.d.ts +27 -0
  353. package/dist/lib/secrets.d.ts.map +1 -0
  354. package/dist/lib/secrets.js +127 -0
  355. package/dist/lib/secrets.js.map +1 -0
  356. package/dist/lib/session/__tests__/db.test.d.ts +2 -0
  357. package/dist/lib/session/__tests__/db.test.d.ts.map +1 -0
  358. package/dist/lib/session/__tests__/db.test.js +54 -0
  359. package/dist/lib/session/__tests__/db.test.js.map +1 -0
  360. package/dist/lib/session/__tests__/discover.test.d.ts +2 -0
  361. package/dist/lib/session/__tests__/discover.test.d.ts.map +1 -0
  362. package/dist/lib/session/__tests__/discover.test.js +63 -0
  363. package/dist/lib/session/__tests__/discover.test.js.map +1 -0
  364. package/dist/lib/session/__tests__/prompt.test.d.ts +2 -0
  365. package/dist/lib/session/__tests__/prompt.test.d.ts.map +1 -0
  366. package/dist/lib/session/__tests__/prompt.test.js +44 -0
  367. package/dist/lib/session/__tests__/prompt.test.js.map +1 -0
  368. package/dist/lib/session/__tests__/render.test.d.ts +2 -0
  369. package/dist/lib/session/__tests__/render.test.d.ts.map +1 -0
  370. package/dist/lib/session/__tests__/render.test.js +602 -0
  371. package/dist/lib/session/__tests__/render.test.js.map +1 -0
  372. package/dist/lib/session/artifacts.d.ts +5 -0
  373. package/dist/lib/session/artifacts.d.ts.map +1 -0
  374. package/dist/lib/session/artifacts.js +75 -0
  375. package/dist/lib/session/artifacts.js.map +1 -0
  376. package/dist/lib/session/db.d.ts +118 -0
  377. package/dist/lib/session/db.d.ts.map +1 -0
  378. package/dist/lib/session/db.js +576 -0
  379. package/dist/lib/session/db.js.map +1 -0
  380. package/dist/lib/session/discover.d.ts +60 -0
  381. package/dist/lib/session/discover.d.ts.map +1 -0
  382. package/dist/lib/session/discover.js +1272 -0
  383. package/dist/lib/session/discover.js.map +1 -0
  384. package/dist/lib/session/parse.d.ts +23 -0
  385. package/dist/lib/session/parse.d.ts.map +1 -0
  386. package/dist/lib/session/parse.js +650 -0
  387. package/dist/lib/session/parse.js.map +1 -0
  388. package/dist/lib/session/prompt.d.ts +4 -0
  389. package/dist/lib/session/prompt.d.ts.map +1 -0
  390. package/dist/lib/session/prompt.js +64 -0
  391. package/dist/lib/session/prompt.js.map +1 -0
  392. package/dist/lib/session/prompt.test.d.ts +2 -0
  393. package/dist/lib/session/prompt.test.d.ts.map +1 -0
  394. package/dist/lib/session/prompt.test.js +57 -0
  395. package/dist/lib/session/prompt.test.js.map +1 -0
  396. package/dist/lib/session/render.d.ts +90 -0
  397. package/dist/lib/session/render.d.ts.map +1 -0
  398. package/dist/lib/session/render.js +778 -0
  399. package/dist/lib/session/render.js.map +1 -0
  400. package/dist/lib/session/team-filter.d.ts +26 -0
  401. package/dist/lib/session/team-filter.d.ts.map +1 -0
  402. package/dist/lib/session/team-filter.js +66 -0
  403. package/dist/lib/session/team-filter.js.map +1 -0
  404. package/dist/lib/session/team-filter.test.d.ts +2 -0
  405. package/dist/lib/session/team-filter.test.d.ts.map +1 -0
  406. package/dist/lib/session/team-filter.test.js +157 -0
  407. package/dist/lib/session/team-filter.test.js.map +1 -0
  408. package/dist/lib/session/types.d.ts +69 -0
  409. package/dist/lib/session/types.d.ts.map +1 -0
  410. package/dist/lib/session/types.js +2 -0
  411. package/dist/lib/session/types.js.map +1 -0
  412. package/dist/lib/shims.d.ts +228 -0
  413. package/dist/lib/shims.d.ts.map +1 -0
  414. package/dist/lib/shims.js +1170 -0
  415. package/dist/lib/shims.js.map +1 -0
  416. package/dist/lib/skills.d.ts +134 -0
  417. package/dist/lib/skills.d.ts.map +1 -0
  418. package/dist/lib/skills.js +783 -0
  419. package/dist/lib/skills.js.map +1 -0
  420. package/dist/lib/state.d.ts +53 -0
  421. package/dist/lib/state.d.ts.map +1 -0
  422. package/dist/lib/state.js +299 -0
  423. package/dist/lib/state.js.map +1 -0
  424. package/dist/lib/subagents.d.ts +75 -0
  425. package/dist/lib/subagents.d.ts.map +1 -0
  426. package/dist/lib/subagents.js +402 -0
  427. package/dist/lib/subagents.js.map +1 -0
  428. package/dist/lib/teams/agents.d.ts +146 -0
  429. package/dist/lib/teams/agents.d.ts.map +1 -0
  430. package/dist/lib/teams/agents.js +1072 -0
  431. package/dist/lib/teams/agents.js.map +1 -0
  432. package/dist/lib/teams/api.d.ts +77 -0
  433. package/dist/lib/teams/api.d.ts.map +1 -0
  434. package/dist/lib/teams/api.js +229 -0
  435. package/dist/lib/teams/api.js.map +1 -0
  436. package/dist/lib/teams/cloud.d.ts +11 -0
  437. package/dist/lib/teams/cloud.d.ts.map +1 -0
  438. package/dist/lib/teams/cloud.js +169 -0
  439. package/dist/lib/teams/cloud.js.map +1 -0
  440. package/dist/lib/teams/debug.d.ts +2 -0
  441. package/dist/lib/teams/debug.d.ts.map +1 -0
  442. package/dist/lib/teams/debug.js +6 -0
  443. package/dist/lib/teams/debug.js.map +1 -0
  444. package/dist/lib/teams/file_ops.d.ts +6 -0
  445. package/dist/lib/teams/file_ops.d.ts.map +1 -0
  446. package/dist/lib/teams/file_ops.js +59 -0
  447. package/dist/lib/teams/file_ops.js.map +1 -0
  448. package/dist/lib/teams/parsers.d.ts +5 -0
  449. package/dist/lib/teams/parsers.d.ts.map +1 -0
  450. package/dist/lib/teams/parsers.js +826 -0
  451. package/dist/lib/teams/parsers.js.map +1 -0
  452. package/dist/lib/teams/persistence.d.ts +28 -0
  453. package/dist/lib/teams/persistence.d.ts.map +1 -0
  454. package/dist/lib/teams/persistence.js +289 -0
  455. package/dist/lib/teams/persistence.js.map +1 -0
  456. package/dist/lib/teams/ralph.d.ts +8 -0
  457. package/dist/lib/teams/ralph.d.ts.map +1 -0
  458. package/dist/lib/teams/ralph.js +59 -0
  459. package/dist/lib/teams/ralph.js.map +1 -0
  460. package/dist/lib/teams/registry.d.ts +11 -0
  461. package/dist/lib/teams/registry.d.ts.map +1 -0
  462. package/dist/lib/teams/registry.js +56 -0
  463. package/dist/lib/teams/registry.js.map +1 -0
  464. package/dist/lib/teams/summarizer.d.ts +58 -0
  465. package/dist/lib/teams/summarizer.d.ts.map +1 -0
  466. package/dist/lib/teams/summarizer.js +766 -0
  467. package/dist/lib/teams/summarizer.js.map +1 -0
  468. package/dist/lib/template.d.ts +24 -0
  469. package/dist/lib/template.d.ts.map +1 -0
  470. package/dist/lib/template.js +57 -0
  471. package/dist/lib/template.js.map +1 -0
  472. package/dist/lib/types.d.ts +282 -0
  473. package/dist/lib/types.d.ts.map +1 -0
  474. package/dist/lib/types.js +18 -0
  475. package/dist/lib/types.js.map +1 -0
  476. package/dist/lib/usage.d.ts +73 -0
  477. package/dist/lib/usage.d.ts.map +1 -0
  478. package/dist/lib/usage.js +623 -0
  479. package/dist/lib/usage.js.map +1 -0
  480. package/dist/lib/versions.d.ts +248 -0
  481. package/dist/lib/versions.d.ts.map +1 -0
  482. package/dist/lib/versions.js +1737 -0
  483. package/dist/lib/versions.js.map +1 -0
  484. package/package.json +82 -0
  485. package/scripts/postinstall.js +72 -0
  486. package/scripts/rebuild-sqlite.sh +46 -0
@@ -0,0 +1,121 @@
1
+ import type { AgentId, CommandInstallation } from './types.js';
2
+ export type CommandScope = 'user' | 'project';
3
+ export interface CommandMetadata {
4
+ name: string;
5
+ description: string;
6
+ }
7
+ export interface ValidationResult {
8
+ valid: boolean;
9
+ errors: string[];
10
+ warnings: string[];
11
+ }
12
+ export interface DiscoveredCommand {
13
+ name: string;
14
+ description: string;
15
+ sourcePath: string;
16
+ isShared: boolean;
17
+ validation: ValidationResult;
18
+ }
19
+ export interface InstalledCommand {
20
+ name: string;
21
+ scope: CommandScope;
22
+ path: string;
23
+ description?: string;
24
+ }
25
+ export declare function parseCommandMetadata(filePath: string): CommandMetadata | null;
26
+ export declare function validateCommandMetadata(metadata: CommandMetadata | null, commandName: string): ValidationResult;
27
+ export declare function discoverCommands(repoPath: string): DiscoveredCommand[];
28
+ export declare function resolveCommandSource(repoPath: string, commandName: string): string | null;
29
+ export declare function installCommand(sourcePath: string, agentId: AgentId, commandName: string, method?: 'symlink' | 'copy'): CommandInstallation & {
30
+ error?: string;
31
+ warnings?: string[];
32
+ };
33
+ /**
34
+ * Path to the commands dir of a specific version home (not the active one).
35
+ * Respects per-agent commandsSubdir (e.g. 'prompts' for codex).
36
+ */
37
+ export declare function getVersionCommandsDir(agent: AgentId, version: string): string;
38
+ /**
39
+ * List command names (without extension) installed in a specific version home.
40
+ */
41
+ export declare function listCommandsInVersionHome(agent: AgentId, version: string): string[];
42
+ export interface VersionCommandDiff {
43
+ agent: AgentId;
44
+ version: string;
45
+ toAdd: string[];
46
+ toUpdate: string[];
47
+ matched: string[];
48
+ orphans: string[];
49
+ }
50
+ /**
51
+ * Compare a version home's commands against central. Returns the reconciliation diff.
52
+ */
53
+ export declare function diffVersionCommands(agent: AgentId, version: string): VersionCommandDiff;
54
+ /**
55
+ * Install a single command from central into a specific version home.
56
+ * Handles markdown-to-TOML conversion when the agent requires it.
57
+ */
58
+ export declare function installCommandToVersion(agent: AgentId, version: string, commandName: string, method?: 'symlink' | 'copy'): {
59
+ success: boolean;
60
+ error?: string;
61
+ };
62
+ /**
63
+ * Remove a single command from a specific version home.
64
+ */
65
+ export declare function removeCommandFromVersion(agent: AgentId, version: string, commandName: string): {
66
+ success: boolean;
67
+ error?: string;
68
+ };
69
+ /**
70
+ * Iterate all (agent, version) pairs that support commands and are installed,
71
+ * optionally scoped to a single agent/version.
72
+ */
73
+ export declare function iterCommandsCapableVersions(filter?: {
74
+ agent?: AgentId;
75
+ version?: string;
76
+ }): Array<{
77
+ agent: AgentId;
78
+ version: string;
79
+ }>;
80
+ export declare function uninstallCommand(agentId: AgentId, commandName: string): boolean;
81
+ export declare function listInstalledCommands(agentId: AgentId): string[];
82
+ /**
83
+ * Check if a command exists for an agent.
84
+ */
85
+ export declare function commandExists(agentId: AgentId, commandName: string): boolean;
86
+ /**
87
+ * Check if installed command content matches source content.
88
+ * Handles format conversion (markdown to TOML for Gemini).
89
+ */
90
+ export declare function commandContentMatches(agentId: AgentId, commandName: string, sourcePath: string): boolean;
91
+ /**
92
+ * List installed commands with scope information.
93
+ * Pass options.home to read from a version-managed agent's home directory.
94
+ */
95
+ export declare function listInstalledCommandsWithScope(agentId: AgentId, cwd?: string, options?: {
96
+ home?: string;
97
+ }): InstalledCommand[];
98
+ /**
99
+ * Install a command to central ~/.agents/commands/ directory.
100
+ * Shims will symlink this to per-agent directories for synced agents.
101
+ */
102
+ export declare function installCommandCentrally(sourcePath: string, commandName: string): {
103
+ success: boolean;
104
+ path: string;
105
+ error?: string;
106
+ warnings?: string[];
107
+ };
108
+ /**
109
+ * List commands from central ~/.agents/commands/ directory.
110
+ */
111
+ export declare function listCentralCommands(): string[];
112
+ /**
113
+ * Get detailed info about a command from central storage.
114
+ */
115
+ export declare function getCommandInfo(name: string): {
116
+ name: string;
117
+ description: string;
118
+ path: string;
119
+ content: string;
120
+ } | null;
121
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/lib/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,499 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import * as yaml from 'yaml';
4
+ import { AGENTS, COMMANDS_CAPABLE_AGENTS, ensureCommandsDir } from './agents.js';
5
+ import { markdownToToml } from './convert.js';
6
+ import { getCommandsDir, getProjectAgentsDir } from './state.js';
7
+ import { getEffectiveHome, getVersionHomePath, listInstalledVersions } from './versions.js';
8
+ export function parseCommandMetadata(filePath) {
9
+ if (!fs.existsSync(filePath)) {
10
+ return null;
11
+ }
12
+ try {
13
+ const content = fs.readFileSync(filePath, 'utf-8');
14
+ const lines = content.split('\n');
15
+ // Check for YAML frontmatter
16
+ if (lines[0] === '---') {
17
+ const endIndex = lines.slice(1).findIndex((l) => l === '---');
18
+ if (endIndex > 0) {
19
+ const frontmatter = lines.slice(1, endIndex + 1).join('\n');
20
+ const parsed = yaml.parse(frontmatter);
21
+ return {
22
+ name: parsed.name || '',
23
+ description: parsed.description || '',
24
+ };
25
+ }
26
+ }
27
+ // Check for TOML format
28
+ const tomlNameMatch = content.match(/name\s*=\s*"([^"]+)"/);
29
+ const tomlDescMatch = content.match(/description\s*=\s*"([^"]+)"/);
30
+ if (tomlNameMatch || tomlDescMatch) {
31
+ return {
32
+ name: tomlNameMatch?.[1] || '',
33
+ description: tomlDescMatch?.[1] || '',
34
+ };
35
+ }
36
+ // No valid frontmatter found
37
+ return null;
38
+ }
39
+ catch {
40
+ return null;
41
+ }
42
+ }
43
+ export function validateCommandMetadata(metadata, commandName) {
44
+ const errors = [];
45
+ const warnings = [];
46
+ if (!metadata) {
47
+ errors.push('Missing YAML frontmatter with name and description');
48
+ return { valid: false, errors, warnings };
49
+ }
50
+ // name is optional - if not provided, will use filename (commandName)
51
+ // Only validate length if name is explicitly provided
52
+ if (metadata.name && metadata.name.length > 64) {
53
+ warnings.push(`name exceeds 64 characters (${metadata.name.length})`);
54
+ }
55
+ // description is required
56
+ if (!metadata.description || metadata.description.trim() === '') {
57
+ errors.push('Missing required field: description');
58
+ }
59
+ else if (metadata.description.length > 1024) {
60
+ warnings.push(`description exceeds 1024 characters (${metadata.description.length})`);
61
+ }
62
+ return { valid: errors.length === 0, errors, warnings };
63
+ }
64
+ export function discoverCommands(repoPath) {
65
+ const commands = [];
66
+ const commandsDir = path.join(repoPath, 'commands');
67
+ if (fs.existsSync(commandsDir)) {
68
+ for (const file of fs.readdirSync(commandsDir)) {
69
+ if (file.endsWith('.md')) {
70
+ const name = file.replace('.md', '');
71
+ const sourcePath = path.join(commandsDir, file);
72
+ const metadata = parseCommandMetadata(sourcePath);
73
+ const validation = validateCommandMetadata(metadata, name);
74
+ commands.push({
75
+ name,
76
+ description: metadata?.description || extractDescription(fs.readFileSync(sourcePath, 'utf-8')),
77
+ sourcePath,
78
+ isShared: true,
79
+ validation,
80
+ });
81
+ }
82
+ }
83
+ }
84
+ return commands;
85
+ }
86
+ function extractDescription(content) {
87
+ const match = content.match(/description:\s*(.+)/i);
88
+ if (match)
89
+ return match[1].trim();
90
+ const tomlMatch = content.match(/description\s*=\s*"([^"]+)"/);
91
+ if (tomlMatch)
92
+ return tomlMatch[1];
93
+ const firstLine = content.split('\n').find((l) => l.trim() && !l.startsWith('---'));
94
+ return firstLine?.slice(0, 80) || '';
95
+ }
96
+ export function resolveCommandSource(repoPath, commandName) {
97
+ const commandPath = path.join(repoPath, 'commands', `${commandName}.md`);
98
+ if (fs.existsSync(commandPath)) {
99
+ return commandPath;
100
+ }
101
+ return null;
102
+ }
103
+ export function installCommand(sourcePath, agentId, commandName, method = 'symlink') {
104
+ // Validate command metadata before installation
105
+ const metadata = parseCommandMetadata(sourcePath);
106
+ const validation = validateCommandMetadata(metadata, commandName);
107
+ if (!validation.valid) {
108
+ return {
109
+ path: '',
110
+ method: 'copy',
111
+ error: `Invalid command: ${validation.errors.join(', ')}`,
112
+ warnings: validation.warnings,
113
+ };
114
+ }
115
+ const agent = AGENTS[agentId];
116
+ ensureCommandsDir(agentId);
117
+ const home = getEffectiveHome(agentId);
118
+ const commandsDir = path.join(home, `.${agentId}`, agent.commandsSubdir);
119
+ fs.mkdirSync(commandsDir, { recursive: true });
120
+ const ext = agent.format === 'toml' ? '.toml' : '.md';
121
+ const targetPath = path.join(commandsDir, `${commandName}${ext}`);
122
+ if (fs.existsSync(targetPath)) {
123
+ fs.unlinkSync(targetPath);
124
+ }
125
+ const sourceContent = fs.readFileSync(sourcePath, 'utf-8');
126
+ const sourceIsMarkdown = sourcePath.endsWith('.md');
127
+ const needsConversion = agent.format === 'toml' && sourceIsMarkdown;
128
+ if (needsConversion) {
129
+ const tomlContent = markdownToToml(commandName, sourceContent);
130
+ fs.writeFileSync(targetPath, tomlContent, 'utf-8');
131
+ return { path: targetPath, method: 'copy', warnings: validation.warnings };
132
+ }
133
+ if (method === 'symlink') {
134
+ fs.symlinkSync(sourcePath, targetPath);
135
+ return { path: targetPath, method: 'symlink', warnings: validation.warnings };
136
+ }
137
+ fs.copyFileSync(sourcePath, targetPath);
138
+ return { path: targetPath, method: 'copy', warnings: validation.warnings };
139
+ }
140
+ /**
141
+ * Path to the commands dir of a specific version home (not the active one).
142
+ * Respects per-agent commandsSubdir (e.g. 'prompts' for codex).
143
+ */
144
+ export function getVersionCommandsDir(agent, version) {
145
+ const home = getVersionHomePath(agent, version);
146
+ return path.join(home, `.${agent}`, AGENTS[agent].commandsSubdir);
147
+ }
148
+ /**
149
+ * List command names (without extension) installed in a specific version home.
150
+ */
151
+ export function listCommandsInVersionHome(agent, version) {
152
+ const dir = getVersionCommandsDir(agent, version);
153
+ if (!fs.existsSync(dir))
154
+ return [];
155
+ const ext = AGENTS[agent].format === 'toml' ? '.toml' : '.md';
156
+ return fs.readdirSync(dir)
157
+ .filter((f) => f.endsWith(ext))
158
+ .map((f) => f.slice(0, -ext.length))
159
+ .sort();
160
+ }
161
+ /**
162
+ * Check if a command installed in a specific version matches the central source.
163
+ * Handles markdown-to-TOML conversion for Gemini.
164
+ */
165
+ function versionCommandMatches(agent, version, commandName) {
166
+ const sourcePath = path.join(getCommandsDir(), `${commandName}.md`);
167
+ if (!fs.existsSync(sourcePath))
168
+ return false;
169
+ const agentConfig = AGENTS[agent];
170
+ const ext = agentConfig.format === 'toml' ? '.toml' : '.md';
171
+ const installedPath = path.join(getVersionCommandsDir(agent, version), `${commandName}${ext}`);
172
+ if (!fs.existsSync(installedPath))
173
+ return false;
174
+ try {
175
+ const installedContent = fs.readFileSync(installedPath, 'utf-8');
176
+ const sourceContent = fs.readFileSync(sourcePath, 'utf-8');
177
+ if (agentConfig.format === 'toml') {
178
+ const convertedSource = markdownToToml(commandName, sourceContent);
179
+ return normalizeContent(installedContent) === normalizeContent(convertedSource);
180
+ }
181
+ return normalizeContent(installedContent) === normalizeContent(sourceContent);
182
+ }
183
+ catch {
184
+ return false;
185
+ }
186
+ }
187
+ /**
188
+ * Compare a version home's commands against central. Returns the reconciliation diff.
189
+ */
190
+ export function diffVersionCommands(agent, version) {
191
+ const central = new Set(listCentralCommands());
192
+ const installed = new Set(listCommandsInVersionHome(agent, version));
193
+ const toAdd = [];
194
+ const toUpdate = [];
195
+ const matched = [];
196
+ const orphans = [];
197
+ for (const name of central) {
198
+ if (!installed.has(name)) {
199
+ toAdd.push(name);
200
+ }
201
+ else if (!versionCommandMatches(agent, version, name)) {
202
+ toUpdate.push(name);
203
+ }
204
+ else {
205
+ matched.push(name);
206
+ }
207
+ }
208
+ for (const name of installed) {
209
+ if (!central.has(name))
210
+ orphans.push(name);
211
+ }
212
+ return { agent, version, toAdd: toAdd.sort(), toUpdate: toUpdate.sort(), matched, orphans: orphans.sort() };
213
+ }
214
+ /**
215
+ * Install a single command from central into a specific version home.
216
+ * Handles markdown-to-TOML conversion when the agent requires it.
217
+ */
218
+ export function installCommandToVersion(agent, version, commandName, method = 'copy') {
219
+ const sourcePath = path.join(getCommandsDir(), `${commandName}.md`);
220
+ if (!fs.existsSync(sourcePath)) {
221
+ return { success: false, error: `Command '${commandName}' not found in central` };
222
+ }
223
+ const agentConfig = AGENTS[agent];
224
+ const commandsDir = getVersionCommandsDir(agent, version);
225
+ fs.mkdirSync(commandsDir, { recursive: true });
226
+ const ext = agentConfig.format === 'toml' ? '.toml' : '.md';
227
+ const targetPath = path.join(commandsDir, `${commandName}${ext}`);
228
+ try {
229
+ if (fs.existsSync(targetPath) || fs.lstatSync(targetPath, { throwIfNoEntry: false })) {
230
+ fs.unlinkSync(targetPath);
231
+ }
232
+ if (agentConfig.format === 'toml') {
233
+ const sourceContent = fs.readFileSync(sourcePath, 'utf-8');
234
+ fs.writeFileSync(targetPath, markdownToToml(commandName, sourceContent), 'utf-8');
235
+ }
236
+ else if (method === 'symlink') {
237
+ fs.symlinkSync(sourcePath, targetPath);
238
+ }
239
+ else {
240
+ fs.copyFileSync(sourcePath, targetPath);
241
+ }
242
+ }
243
+ catch (err) {
244
+ return { success: false, error: err.message };
245
+ }
246
+ return { success: true };
247
+ }
248
+ /**
249
+ * Remove a single command from a specific version home.
250
+ */
251
+ export function removeCommandFromVersion(agent, version, commandName) {
252
+ const ext = AGENTS[agent].format === 'toml' ? '.toml' : '.md';
253
+ const targetPath = path.join(getVersionCommandsDir(agent, version), `${commandName}${ext}`);
254
+ if (!fs.existsSync(targetPath) && !fs.lstatSync(targetPath, { throwIfNoEntry: false })) {
255
+ return { success: true };
256
+ }
257
+ try {
258
+ fs.unlinkSync(targetPath);
259
+ }
260
+ catch (err) {
261
+ return { success: false, error: err.message };
262
+ }
263
+ return { success: true };
264
+ }
265
+ /**
266
+ * Iterate all (agent, version) pairs that support commands and are installed,
267
+ * optionally scoped to a single agent/version.
268
+ */
269
+ export function iterCommandsCapableVersions(filter) {
270
+ const pairs = [];
271
+ const agents = filter?.agent ? [filter.agent] : COMMANDS_CAPABLE_AGENTS;
272
+ for (const agent of agents) {
273
+ if (!COMMANDS_CAPABLE_AGENTS.includes(agent))
274
+ continue;
275
+ const versions = listInstalledVersions(agent);
276
+ for (const version of versions) {
277
+ if (filter?.version && filter.version !== version)
278
+ continue;
279
+ pairs.push({ agent, version });
280
+ }
281
+ }
282
+ return pairs;
283
+ }
284
+ export function uninstallCommand(agentId, commandName) {
285
+ const agent = AGENTS[agentId];
286
+ const home = getEffectiveHome(agentId);
287
+ const commandsDir = path.join(home, `.${agentId}`, agent.commandsSubdir);
288
+ const ext = agent.format === 'toml' ? '.toml' : '.md';
289
+ const targetPath = path.join(commandsDir, `${commandName}${ext}`);
290
+ if (fs.existsSync(targetPath)) {
291
+ fs.unlinkSync(targetPath);
292
+ return true;
293
+ }
294
+ return false;
295
+ }
296
+ export function listInstalledCommands(agentId) {
297
+ const agent = AGENTS[agentId];
298
+ const home = getEffectiveHome(agentId);
299
+ const commandsDir = path.join(home, `.${agentId}`, agent.commandsSubdir);
300
+ if (!fs.existsSync(commandsDir)) {
301
+ return [];
302
+ }
303
+ const ext = agent.format === 'toml' ? '.toml' : '.md';
304
+ return fs
305
+ .readdirSync(commandsDir)
306
+ .filter((f) => f.endsWith(ext))
307
+ .map((f) => f.replace(ext, ''));
308
+ }
309
+ /**
310
+ * Check if a command exists for an agent.
311
+ */
312
+ export function commandExists(agentId, commandName) {
313
+ const agent = AGENTS[agentId];
314
+ const home = getEffectiveHome(agentId);
315
+ const commandsDir = path.join(home, `.${agentId}`, agent.commandsSubdir);
316
+ const ext = agent.format === 'toml' ? '.toml' : '.md';
317
+ const targetPath = path.join(commandsDir, `${commandName}${ext}`);
318
+ return fs.existsSync(targetPath);
319
+ }
320
+ /**
321
+ * Normalize content for comparison (trim, normalize line endings).
322
+ */
323
+ function normalizeContent(content) {
324
+ return content.replace(/\r\n/g, '\n').trim();
325
+ }
326
+ /**
327
+ * Check if installed command content matches source content.
328
+ * Handles format conversion (markdown to TOML for Gemini).
329
+ */
330
+ export function commandContentMatches(agentId, commandName, sourcePath) {
331
+ const agent = AGENTS[agentId];
332
+ const home = getEffectiveHome(agentId);
333
+ const commandsDir = path.join(home, `.${agentId}`, agent.commandsSubdir);
334
+ const ext = agent.format === 'toml' ? '.toml' : '.md';
335
+ const installedPath = path.join(commandsDir, `${commandName}${ext}`);
336
+ if (!fs.existsSync(installedPath) || !fs.existsSync(sourcePath)) {
337
+ return false;
338
+ }
339
+ try {
340
+ const installedContent = fs.readFileSync(installedPath, 'utf-8');
341
+ const sourceContent = fs.readFileSync(sourcePath, 'utf-8');
342
+ const sourceIsMarkdown = sourcePath.endsWith('.md');
343
+ const needsConversion = agent.format === 'toml' && sourceIsMarkdown;
344
+ if (needsConversion) {
345
+ const convertedSource = markdownToToml(commandName, sourceContent);
346
+ return normalizeContent(installedContent) === normalizeContent(convertedSource);
347
+ }
348
+ return normalizeContent(installedContent) === normalizeContent(sourceContent);
349
+ }
350
+ catch {
351
+ return false;
352
+ }
353
+ }
354
+ /**
355
+ * Get the project-scoped commands directory for an agent.
356
+ * Claude: .claude/commands/
357
+ * Codex: .codex/prompts/
358
+ * Gemini: .gemini/commands/
359
+ */
360
+ function getProjectCommandsDirs(agentId, cwd = process.cwd()) {
361
+ const agent = AGENTS[agentId];
362
+ const dirs = [];
363
+ const projectAgentsDir = getProjectAgentsDir(cwd);
364
+ if (projectAgentsDir) {
365
+ dirs.push(path.join(projectAgentsDir, 'commands'));
366
+ }
367
+ dirs.push(path.join(cwd, `.${agentId}`, agent.commandsSubdir));
368
+ return dirs;
369
+ }
370
+ /**
371
+ * List commands from a specific directory.
372
+ */
373
+ function listCommandsFromDir(dir, exts) {
374
+ if (!fs.existsSync(dir)) {
375
+ return [];
376
+ }
377
+ return fs
378
+ .readdirSync(dir)
379
+ .filter((f) => exts.some(ext => f.endsWith(ext)))
380
+ .map((f) => f.replace(/\.(md|toml)$/, ''));
381
+ }
382
+ /**
383
+ * List installed commands with scope information.
384
+ * Pass options.home to read from a version-managed agent's home directory.
385
+ */
386
+ export function listInstalledCommandsWithScope(agentId, cwd = process.cwd(), options) {
387
+ const agent = AGENTS[agentId];
388
+ const ext = agent.format === 'toml' ? '.toml' : '.md';
389
+ const results = [];
390
+ const seen = new Set();
391
+ const addCommand = (name, scope, dir, extensions) => {
392
+ if (seen.has(name))
393
+ return;
394
+ const extForPath = extensions.find(e => fs.existsSync(path.join(dir, `${name}${e}`))) || extensions[0];
395
+ const commandPath = path.join(dir, `${name}${extForPath}`);
396
+ results.push({
397
+ name,
398
+ scope,
399
+ path: commandPath,
400
+ description: getCommandDescription(commandPath),
401
+ });
402
+ seen.add(name);
403
+ };
404
+ // Project-scoped commands (new .agents/commands takes precedence over agent-specific project dirs)
405
+ const projectDirs = getProjectCommandsDirs(agentId, cwd);
406
+ for (const projectDir of projectDirs) {
407
+ const projectExts = ['.md', '.toml'];
408
+ const projectCommands = listCommandsFromDir(projectDir, projectExts);
409
+ for (const name of projectCommands) {
410
+ addCommand(name, 'project', projectDir, projectExts);
411
+ }
412
+ }
413
+ // User-scoped commands (version-aware when home is provided)
414
+ const home = options?.home || getEffectiveHome(agentId);
415
+ const userCommandsDir = path.join(home, `.${agentId}`, agent.commandsSubdir);
416
+ const userExts = [ext];
417
+ const userCommands = listCommandsFromDir(userCommandsDir, userExts);
418
+ for (const name of userCommands) {
419
+ addCommand(name, 'user', userCommandsDir, userExts);
420
+ }
421
+ return results;
422
+ }
423
+ /**
424
+ * Get command description from file.
425
+ */
426
+ function getCommandDescription(filePath) {
427
+ try {
428
+ const content = fs.readFileSync(filePath, 'utf-8');
429
+ return extractDescription(content) || undefined;
430
+ }
431
+ catch {
432
+ return undefined;
433
+ }
434
+ }
435
+ /**
436
+ * Install a command to central ~/.agents/commands/ directory.
437
+ * Shims will symlink this to per-agent directories for synced agents.
438
+ */
439
+ export function installCommandCentrally(sourcePath, commandName) {
440
+ // Validate command metadata before installation
441
+ const metadata = parseCommandMetadata(sourcePath);
442
+ const validation = validateCommandMetadata(metadata, commandName);
443
+ if (!validation.valid) {
444
+ return {
445
+ success: false,
446
+ path: '',
447
+ error: `Invalid command: ${validation.errors.join(', ')}`,
448
+ warnings: validation.warnings,
449
+ };
450
+ }
451
+ const centralDir = getCommandsDir();
452
+ if (!fs.existsSync(centralDir)) {
453
+ fs.mkdirSync(centralDir, { recursive: true });
454
+ }
455
+ // Always use markdown for central storage
456
+ const targetPath = path.join(centralDir, `${commandName}.md`);
457
+ if (fs.existsSync(targetPath)) {
458
+ fs.unlinkSync(targetPath);
459
+ }
460
+ try {
461
+ fs.copyFileSync(sourcePath, targetPath);
462
+ return { success: true, path: targetPath, warnings: validation.warnings };
463
+ }
464
+ catch (err) {
465
+ return { success: false, path: '', error: err.message };
466
+ }
467
+ }
468
+ /**
469
+ * List commands from central ~/.agents/commands/ directory.
470
+ */
471
+ export function listCentralCommands() {
472
+ const centralDir = getCommandsDir();
473
+ if (!fs.existsSync(centralDir)) {
474
+ return [];
475
+ }
476
+ return fs
477
+ .readdirSync(centralDir)
478
+ .filter((f) => f.endsWith('.md'))
479
+ .map((f) => f.replace('.md', ''));
480
+ }
481
+ /**
482
+ * Get detailed info about a command from central storage.
483
+ */
484
+ export function getCommandInfo(name) {
485
+ const centralDir = getCommandsDir();
486
+ const cmdPath = path.join(centralDir, `${name}.md`);
487
+ if (!fs.existsSync(cmdPath)) {
488
+ return null;
489
+ }
490
+ const content = fs.readFileSync(cmdPath, 'utf-8');
491
+ const metadata = parseCommandMetadata(cmdPath);
492
+ return {
493
+ name,
494
+ description: metadata?.description || '',
495
+ path: cmdPath,
496
+ content,
497
+ };
498
+ }
499
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/lib/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AA+B5F,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,6BAA6B;QAC7B,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;YAC9D,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACvC,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;oBACvB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;iBACtC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnE,IAAI,aAAa,IAAI,aAAa,EAAE,CAAC;YACnC,OAAO;gBACL,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC9B,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;aACtC,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAgC,EAChC,WAAmB;IAEnB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC5C,CAAC;IAED,sEAAsE;IACtE,sDAAsD;IACtD,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC,+BAA+B,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACxE,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC,wCAAwC,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,QAAQ,GAAwB,EAAE,CAAC;IAEzC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACpD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAChD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;gBAClD,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC3D,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI;oBACJ,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,kBAAkB,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBAC9F,UAAU;oBACV,QAAQ,EAAE,IAAI;oBACd,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACpD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAElC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC/D,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IAEnC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACpF,OAAO,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,WAAmB;IAEnB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,WAAW,KAAK,CAAC,CAAC;IACzE,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,OAAgB,EAChB,WAAmB,EACnB,SAA6B,SAAS;IAEtC,gDAAgD;IAChD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAElE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,oBAAoB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzD,QAAQ,EAAE,UAAU,CAAC,QAAQ;SAC9B,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE3B,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACzE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC;IAElE,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,gBAAgB,CAAC;IAEpE,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC/D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC7E,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;IAChF,CAAC;IAED,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACxC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc,EAAE,OAAe;IACnE,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAc,EAAE,OAAe;IACvE,MAAM,GAAG,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;SACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SACnC,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,KAAc,EAAE,OAAe,EAAE,WAAmB;IACjF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,WAAW,KAAK,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/F,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAE3D,IAAI,WAAW,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClC,MAAM,eAAe,GAAG,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YACnE,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAWD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,OAAe;IACjE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAErE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;YACxD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9G,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAc,EACd,OAAe,EACf,WAAmB,EACnB,SAA6B,MAAM;IAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,WAAW,KAAK,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,WAAW,wBAAwB,EAAE,CAAC;IACpF,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1D,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACrF,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;QACpF,CAAC;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAc,EACd,OAAe,EACf,WAAmB;IAEnB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC;IAC5F,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACvF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAA8C;IACxF,MAAM,KAAK,GAA+C,EAAE,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC;IACxE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QACvD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;gBAAE,SAAS;YAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,WAAmB;IACpE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC;IAElE,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACzE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,OAAO,EAAE;SACN,WAAW,CAAC,WAAW,CAAC;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,WAAmB;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,WAAmB,EACnB,UAAkB;IAElB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC;IAErE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAE3D,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,gBAAgB,CAAC;QAEpE,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,eAAe,GAAG,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YACnE,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAClF,CAAC;QAED,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,OAAgB,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;IAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAClD,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,GAAW,EAAE,IAAc;IACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,EAAE;SACN,WAAW,CAAC,GAAG,CAAC;SAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAAgB,EAChB,MAAc,OAAO,CAAC,GAAG,EAAE,EAC3B,OAA2B;IAE3B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,KAAmB,EAAE,GAAW,EAAE,UAAoB,EAAE,EAAE;QAC1F,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QAC3B,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QACvG,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,UAAU,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC;YACX,IAAI;YACJ,KAAK;YACL,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,qBAAqB,CAAC,WAAW,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,mGAAmG;IACnG,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACzD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrC,MAAM,eAAe,GAAG,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,YAAY,GAAG,mBAAmB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACpE,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,kBAAkB,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,WAAmB;IAEnB,gDAAgD;IAChD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAElE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,oBAAoB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzD,QAAQ,EAAE,UAAU,CAAC,QAAQ;SAC9B,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,0CAA0C;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,KAAK,CAAC,CAAC;IAE9D,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC;QACH,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC5E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,EAAE;SACN,WAAW,CAAC,UAAU,CAAC;SACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IAMzC,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;IAEpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE/C,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,EAAE;QACxC,IAAI,EAAE,OAAO;QACb,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface MarkdownFrontmatter {
2
+ description?: string;
3
+ [key: string]: unknown;
4
+ }
5
+ export declare function parseMarkdownFrontmatter(content: string): {
6
+ frontmatter: MarkdownFrontmatter;
7
+ body: string;
8
+ };
9
+ export declare function markdownToToml(skillName: string, markdown: string): string;
10
+ export declare function tomlToMarkdown(toml: string): string;
11
+ //# sourceMappingURL=convert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/lib/convert.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG;IACzD,WAAW,EAAE,mBAAmB,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;CACd,CAoBA;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAkB1E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAanD"}