superacli 1.0.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/.beads/.br_history/issues.20260308_200823_636718328.jsonl +20 -0
  2. package/.beads/.br_history/issues.20260308_200823_636718328.jsonl.meta.json +1 -0
  3. package/.beads/.br_history/issues.20260308_200827_033159453.jsonl +21 -0
  4. package/.beads/.br_history/issues.20260308_200827_033159453.jsonl.meta.json +1 -0
  5. package/.beads/.br_history/issues.20260308_200829_595900053.jsonl +22 -0
  6. package/.beads/.br_history/issues.20260308_200829_595900053.jsonl.meta.json +1 -0
  7. package/.beads/.br_history/issues.20260308_200834_079930100.jsonl +23 -0
  8. package/.beads/.br_history/issues.20260308_200834_079930100.jsonl.meta.json +1 -0
  9. package/.beads/.br_history/issues.20260308_200858_370924996.jsonl +24 -0
  10. package/.beads/.br_history/issues.20260308_200858_370924996.jsonl.meta.json +1 -0
  11. package/.beads/.br_history/issues.20260308_201031_019730855.jsonl +24 -0
  12. package/.beads/.br_history/issues.20260308_201031_019730855.jsonl.meta.json +1 -0
  13. package/.beads/.br_history/issues.20260308_201031_578974884.jsonl +24 -0
  14. package/.beads/.br_history/issues.20260308_201031_578974884.jsonl.meta.json +1 -0
  15. package/.beads/.br_history/issues.20260308_201054_780345548.jsonl +24 -0
  16. package/.beads/.br_history/issues.20260308_201054_780345548.jsonl.meta.json +1 -0
  17. package/.beads/.br_history/issues.20260308_201054_896980019.jsonl +24 -0
  18. package/.beads/.br_history/issues.20260308_201054_896980019.jsonl.meta.json +1 -0
  19. package/.beads/.br_history/issues.20260308_201128_599819688.jsonl +24 -0
  20. package/.beads/.br_history/issues.20260308_201128_599819688.jsonl.meta.json +1 -0
  21. package/.beads/.br_history/issues.20260308_201128_710221699.jsonl +24 -0
  22. package/.beads/.br_history/issues.20260308_201128_710221699.jsonl.meta.json +1 -0
  23. package/.beads/.br_history/issues.20260308_201204_745649213.jsonl +24 -0
  24. package/.beads/.br_history/issues.20260308_201204_745649213.jsonl.meta.json +1 -0
  25. package/.beads/.br_history/issues.20260308_201338_908436144.jsonl +24 -0
  26. package/.beads/.br_history/issues.20260308_201338_908436144.jsonl.meta.json +1 -0
  27. package/.beads/.br_history/issues.20260308_201344_734860714.jsonl +25 -0
  28. package/.beads/.br_history/issues.20260308_201344_734860714.jsonl.meta.json +1 -0
  29. package/.beads/.br_history/issues.20260308_201630_819282295.jsonl +25 -0
  30. package/.beads/.br_history/issues.20260308_201630_819282295.jsonl.meta.json +1 -0
  31. package/.beads/.br_history/issues.20260308_203538_054279699.jsonl +25 -0
  32. package/.beads/.br_history/issues.20260308_203538_054279699.jsonl.meta.json +1 -0
  33. package/.beads/.br_history/issues.20260308_203547_597113070.jsonl +26 -0
  34. package/.beads/.br_history/issues.20260308_203547_597113070.jsonl.meta.json +1 -0
  35. package/.beads/.br_history/issues.20260308_203547_775139216.jsonl +27 -0
  36. package/.beads/.br_history/issues.20260308_203547_775139216.jsonl.meta.json +1 -0
  37. package/.beads/.br_history/issues.20260308_203547_950724773.jsonl +28 -0
  38. package/.beads/.br_history/issues.20260308_203547_950724773.jsonl.meta.json +1 -0
  39. package/.beads/.br_history/issues.20260308_203548_107684523.jsonl +29 -0
  40. package/.beads/.br_history/issues.20260308_203548_107684523.jsonl.meta.json +1 -0
  41. package/.beads/.br_history/issues.20260308_203548_310389993.jsonl +30 -0
  42. package/.beads/.br_history/issues.20260308_203548_310389993.jsonl.meta.json +1 -0
  43. package/.beads/.br_history/issues.20260308_203825_953337320.jsonl +31 -0
  44. package/.beads/.br_history/issues.20260308_203825_953337320.jsonl.meta.json +1 -0
  45. package/.beads/.br_history/issues.20260308_204056_071377736.jsonl +32 -0
  46. package/.beads/.br_history/issues.20260308_204056_071377736.jsonl.meta.json +1 -0
  47. package/.beads/.br_history/issues.20260308_205141_517616844.jsonl +32 -0
  48. package/.beads/.br_history/issues.20260308_205141_517616844.jsonl.meta.json +1 -0
  49. package/.beads/.br_history/issues.20260308_205141_648994024.jsonl +32 -0
  50. package/.beads/.br_history/issues.20260308_205141_648994024.jsonl.meta.json +1 -0
  51. package/.beads/.br_history/issues.20260308_205141_867598036.jsonl +32 -0
  52. package/.beads/.br_history/issues.20260308_205141_867598036.jsonl.meta.json +1 -0
  53. package/.beads/.br_history/issues.20260308_205142_094157355.jsonl +32 -0
  54. package/.beads/.br_history/issues.20260308_205142_094157355.jsonl.meta.json +1 -0
  55. package/.beads/.br_history/issues.20260308_205142_327315677.jsonl +32 -0
  56. package/.beads/.br_history/issues.20260308_205142_327315677.jsonl.meta.json +1 -0
  57. package/.beads/.br_history/issues.20260308_205142_545563822.jsonl +32 -0
  58. package/.beads/.br_history/issues.20260308_205142_545563822.jsonl.meta.json +1 -0
  59. package/.beads/.br_history/issues.20260308_205213_061989333.jsonl +32 -0
  60. package/.beads/.br_history/issues.20260308_205213_061989333.jsonl.meta.json +1 -0
  61. package/.beads/.br_history/issues.20260308_205213_181103364.jsonl +32 -0
  62. package/.beads/.br_history/issues.20260308_205213_181103364.jsonl.meta.json +1 -0
  63. package/.beads/.br_history/issues.20260308_205213_408872234.jsonl +32 -0
  64. package/.beads/.br_history/issues.20260308_205213_408872234.jsonl.meta.json +1 -0
  65. package/.beads/.br_history/issues.20260308_205213_616681652.jsonl +32 -0
  66. package/.beads/.br_history/issues.20260308_205213_616681652.jsonl.meta.json +1 -0
  67. package/.beads/.br_history/issues.20260308_205213_821507069.jsonl +32 -0
  68. package/.beads/.br_history/issues.20260308_205213_821507069.jsonl.meta.json +1 -0
  69. package/.beads/.br_history/issues.20260308_205214_026661112.jsonl +32 -0
  70. package/.beads/.br_history/issues.20260308_205214_026661112.jsonl.meta.json +1 -0
  71. package/.beads/.br_history/issues.20260308_205454_955250554.jsonl +32 -0
  72. package/.beads/.br_history/issues.20260308_205454_955250554.jsonl.meta.json +1 -0
  73. package/.beads/.br_history/issues.20260308_205556_337800392.jsonl +33 -0
  74. package/.beads/.br_history/issues.20260308_205556_337800392.jsonl.meta.json +1 -0
  75. package/.beads/.br_history/issues.20260308_205824_274686694.jsonl +33 -0
  76. package/.beads/.br_history/issues.20260308_205824_274686694.jsonl.meta.json +1 -0
  77. package/.beads/.br_history/issues.20260308_210240_583768328.jsonl +34 -0
  78. package/.beads/.br_history/issues.20260308_210240_583768328.jsonl.meta.json +1 -0
  79. package/.beads/.br_history/issues.20260308_212223_641541494.jsonl +34 -0
  80. package/.beads/.br_history/issues.20260308_212223_641541494.jsonl.meta.json +1 -0
  81. package/.beads/.br_history/issues.20260308_212227_735550996.jsonl +35 -0
  82. package/.beads/.br_history/issues.20260308_212227_735550996.jsonl.meta.json +1 -0
  83. package/.beads/.br_history/issues.20260308_212232_547298548.jsonl +36 -0
  84. package/.beads/.br_history/issues.20260308_212232_547298548.jsonl.meta.json +1 -0
  85. package/.beads/.br_history/issues.20260308_212528_843628125.jsonl +37 -0
  86. package/.beads/.br_history/issues.20260308_212528_843628125.jsonl.meta.json +1 -0
  87. package/.beads/.br_history/issues.20260308_212529_094530502.jsonl +38 -0
  88. package/.beads/.br_history/issues.20260308_212529_094530502.jsonl.meta.json +1 -0
  89. package/.beads/.br_history/issues.20260308_212529_331000853.jsonl +39 -0
  90. package/.beads/.br_history/issues.20260308_212529_331000853.jsonl.meta.json +1 -0
  91. package/.beads/.br_history/issues.20260308_212529_587925652.jsonl +40 -0
  92. package/.beads/.br_history/issues.20260308_212529_587925652.jsonl.meta.json +1 -0
  93. package/.beads/.br_history/issues.20260308_212804_927764103.jsonl +41 -0
  94. package/.beads/.br_history/issues.20260308_212804_927764103.jsonl.meta.json +1 -0
  95. package/.beads/.br_history/issues.20260308_212805_153673453.jsonl +42 -0
  96. package/.beads/.br_history/issues.20260308_212805_153673453.jsonl.meta.json +1 -0
  97. package/.beads/.br_history/issues.20260308_212805_415982363.jsonl +43 -0
  98. package/.beads/.br_history/issues.20260308_212805_415982363.jsonl.meta.json +1 -0
  99. package/.beads/.br_history/issues.20260308_212805_657497741.jsonl +44 -0
  100. package/.beads/.br_history/issues.20260308_212805_657497741.jsonl.meta.json +1 -0
  101. package/.beads/.br_history/issues.20260308_212805_952838724.jsonl +45 -0
  102. package/.beads/.br_history/issues.20260308_212805_952838724.jsonl.meta.json +1 -0
  103. package/.beads/.br_history/issues.20260308_212806_325433779.jsonl +46 -0
  104. package/.beads/.br_history/issues.20260308_212806_325433779.jsonl.meta.json +1 -0
  105. package/.beads/.br_history/issues.20260308_212806_584685598.jsonl +47 -0
  106. package/.beads/.br_history/issues.20260308_212806_584685598.jsonl.meta.json +1 -0
  107. package/.beads/.br_history/issues.20260308_212806_827817208.jsonl +48 -0
  108. package/.beads/.br_history/issues.20260308_212806_827817208.jsonl.meta.json +1 -0
  109. package/.beads/.br_history/issues.20260308_212807_111320451.jsonl +49 -0
  110. package/.beads/.br_history/issues.20260308_212807_111320451.jsonl.meta.json +1 -0
  111. package/.beads/.br_history/issues.20260308_212807_409545536.jsonl +50 -0
  112. package/.beads/.br_history/issues.20260308_212807_409545536.jsonl.meta.json +1 -0
  113. package/.beads/.br_history/issues.20260308_212807_625063294.jsonl +51 -0
  114. package/.beads/.br_history/issues.20260308_212807_625063294.jsonl.meta.json +1 -0
  115. package/.beads/.br_history/issues.20260308_212807_843906551.jsonl +52 -0
  116. package/.beads/.br_history/issues.20260308_212807_843906551.jsonl.meta.json +1 -0
  117. package/.beads/.br_history/issues.20260308_212808_100304073.jsonl +53 -0
  118. package/.beads/.br_history/issues.20260308_212808_100304073.jsonl.meta.json +1 -0
  119. package/.beads/.br_history/issues.20260308_212808_324723976.jsonl +54 -0
  120. package/.beads/.br_history/issues.20260308_212808_324723976.jsonl.meta.json +1 -0
  121. package/.beads/.br_history/issues.20260308_212808_557513104.jsonl +55 -0
  122. package/.beads/.br_history/issues.20260308_212808_557513104.jsonl.meta.json +1 -0
  123. package/.beads/.br_history/issues.20260308_212808_788048322.jsonl +56 -0
  124. package/.beads/.br_history/issues.20260308_212808_788048322.jsonl.meta.json +1 -0
  125. package/.beads/.br_history/issues.20260308_213702_613249728.jsonl +57 -0
  126. package/.beads/.br_history/issues.20260308_213702_613249728.jsonl.meta.json +1 -0
  127. package/.beads/.br_history/issues.20260308_213715_115792063.jsonl +57 -0
  128. package/.beads/.br_history/issues.20260308_213715_115792063.jsonl.meta.json +1 -0
  129. package/.beads/.br_history/issues.20260308_213715_462220666.jsonl +57 -0
  130. package/.beads/.br_history/issues.20260308_213715_462220666.jsonl.meta.json +1 -0
  131. package/.beads/.br_history/issues.20260308_213727_191258923.jsonl +57 -0
  132. package/.beads/.br_history/issues.20260308_213727_191258923.jsonl.meta.json +1 -0
  133. package/.beads/.br_history/issues.20260308_213727_684383652.jsonl +57 -0
  134. package/.beads/.br_history/issues.20260308_213727_684383652.jsonl.meta.json +1 -0
  135. package/.beads/.br_history/issues.20260308_213735_751882991.jsonl +57 -0
  136. package/.beads/.br_history/issues.20260308_213735_751882991.jsonl.meta.json +1 -0
  137. package/.beads/.br_history/issues.20260308_222052_279844960.jsonl +57 -0
  138. package/.beads/.br_history/issues.20260308_222052_279844960.jsonl.meta.json +1 -0
  139. package/.beads/.br_history/issues.20260308_222056_873282114.jsonl +57 -0
  140. package/.beads/.br_history/issues.20260308_222056_873282114.jsonl.meta.json +1 -0
  141. package/.beads/.br_history/issues.20260308_222103_402410761.jsonl +57 -0
  142. package/.beads/.br_history/issues.20260308_222103_402410761.jsonl.meta.json +1 -0
  143. package/.beads/.br_history/issues.20260308_235202_180577215.jsonl +57 -0
  144. package/.beads/.br_history/issues.20260308_235202_180577215.jsonl.meta.json +1 -0
  145. package/.beads/.br_history/issues.20260308_235202_387414163.jsonl +57 -0
  146. package/.beads/.br_history/issues.20260308_235202_387414163.jsonl.meta.json +1 -0
  147. package/.beads/.br_history/issues.20260308_235202_564422794.jsonl +57 -0
  148. package/.beads/.br_history/issues.20260308_235202_564422794.jsonl.meta.json +1 -0
  149. package/.beads/.br_history/issues.20260308_235202_742600597.jsonl +57 -0
  150. package/.beads/.br_history/issues.20260308_235202_742600597.jsonl.meta.json +1 -0
  151. package/.beads/.br_history/issues.20260308_235208_133360069.jsonl +57 -0
  152. package/.beads/.br_history/issues.20260308_235208_133360069.jsonl.meta.json +1 -0
  153. package/.beads/.br_history/issues.20260308_235505_473406307.jsonl +57 -0
  154. package/.beads/.br_history/issues.20260308_235505_473406307.jsonl.meta.json +1 -0
  155. package/.beads/.br_history/issues.20260308_235505_662360489.jsonl +57 -0
  156. package/.beads/.br_history/issues.20260308_235505_662360489.jsonl.meta.json +1 -0
  157. package/.beads/.br_history/issues.20260308_235505_843935624.jsonl +57 -0
  158. package/.beads/.br_history/issues.20260308_235505_843935624.jsonl.meta.json +1 -0
  159. package/.beads/.br_history/issues.20260308_235506_044530221.jsonl +57 -0
  160. package/.beads/.br_history/issues.20260308_235506_044530221.jsonl.meta.json +1 -0
  161. package/.beads/.br_history/issues.20260309_002618_115728731.jsonl +57 -0
  162. package/.beads/.br_history/issues.20260309_002618_115728731.jsonl.meta.json +1 -0
  163. package/.beads/.br_history/issues.20260309_003748_878174586.jsonl +57 -0
  164. package/.beads/.br_history/issues.20260309_003748_878174586.jsonl.meta.json +1 -0
  165. package/.beads/.br_history/issues.20260309_004057_868755623.jsonl +57 -0
  166. package/.beads/.br_history/issues.20260309_004057_868755623.jsonl.meta.json +1 -0
  167. package/.beads/.br_history/issues.20260309_004058_512842163.jsonl +57 -0
  168. package/.beads/.br_history/issues.20260309_004058_512842163.jsonl.meta.json +1 -0
  169. package/.beads/.br_history/issues.20260309_004058_994445226.jsonl +57 -0
  170. package/.beads/.br_history/issues.20260309_004058_994445226.jsonl.meta.json +1 -0
  171. package/.beads/.br_history/issues.20260309_004059_475988596.jsonl +57 -0
  172. package/.beads/.br_history/issues.20260309_004059_475988596.jsonl.meta.json +1 -0
  173. package/.beads/.br_history/issues.20260309_161902_566857851.jsonl +57 -0
  174. package/.beads/.br_history/issues.20260309_161902_566857851.jsonl.meta.json +1 -0
  175. package/.beads/.br_history/issues.20260309_170512_277017739.jsonl +57 -0
  176. package/.beads/.br_history/issues.20260309_170512_277017739.jsonl.meta.json +1 -0
  177. package/.beads/.br_history/issues.20260309_170512_477876921.jsonl +57 -0
  178. package/.beads/.br_history/issues.20260309_170512_477876921.jsonl.meta.json +1 -0
  179. package/.beads/.br_history/issues.20260309_170512_664382701.jsonl +57 -0
  180. package/.beads/.br_history/issues.20260309_170512_664382701.jsonl.meta.json +1 -0
  181. package/.beads/.br_history/issues.20260309_170512_859400333.jsonl +57 -0
  182. package/.beads/.br_history/issues.20260309_170512_859400333.jsonl.meta.json +1 -0
  183. package/.beads/.br_history/issues.20260309_212326_082771164.jsonl +57 -0
  184. package/.beads/.br_history/issues.20260309_212326_082771164.jsonl.meta.json +1 -0
  185. package/.beads/.br_history/issues.20260309_212326_245619716.jsonl +58 -0
  186. package/.beads/.br_history/issues.20260309_212326_245619716.jsonl.meta.json +1 -0
  187. package/.beads/.br_history/issues.20260309_212326_403198317.jsonl +59 -0
  188. package/.beads/.br_history/issues.20260309_212326_403198317.jsonl.meta.json +1 -0
  189. package/.beads/.br_history/issues.20260309_212332_539197678.jsonl +60 -0
  190. package/.beads/.br_history/issues.20260309_212332_539197678.jsonl.meta.json +1 -0
  191. package/.beads/.br_history/issues.20260309_212332_731373599.jsonl +60 -0
  192. package/.beads/.br_history/issues.20260309_212332_731373599.jsonl.meta.json +1 -0
  193. package/.beads/.br_history/issues.20260309_212332_928710953.jsonl +60 -0
  194. package/.beads/.br_history/issues.20260309_212332_928710953.jsonl.meta.json +1 -0
  195. package/.beads/.br_history/issues.20260309_213021_341505240.jsonl +60 -0
  196. package/.beads/.br_history/issues.20260309_213021_341505240.jsonl.meta.json +1 -0
  197. package/.beads/.br_history/issues.20260309_213022_023136934.jsonl +60 -0
  198. package/.beads/.br_history/issues.20260309_213022_023136934.jsonl.meta.json +1 -0
  199. package/.beads/.br_history/issues.20260309_213022_400050719.jsonl +60 -0
  200. package/.beads/.br_history/issues.20260309_213022_400050719.jsonl.meta.json +1 -0
  201. package/.beads/config.yaml +4 -0
  202. package/.beads/issues.jsonl +60 -0
  203. package/.beads/metadata.json +4 -0
  204. package/README.md +226 -43
  205. package/__tests__/adapter-schema.test.js +119 -0
  206. package/__tests__/ask.test.js +327 -0
  207. package/__tests__/aws-plugin.test.js +84 -0
  208. package/__tests__/az-plugin.test.js +84 -0
  209. package/__tests__/builtin-adapter.test.js +29 -0
  210. package/__tests__/cline-plugin.test.js +109 -0
  211. package/__tests__/cline-skill.test.js +49 -0
  212. package/__tests__/config.test.js +297 -0
  213. package/__tests__/docker-plugin.test.js +95 -0
  214. package/__tests__/executor.test.js +303 -0
  215. package/__tests__/eza-plugin.test.js +81 -0
  216. package/__tests__/gcloud-plugin.test.js +86 -0
  217. package/__tests__/gh-plugin.test.js +86 -0
  218. package/__tests__/helm-plugin.test.js +81 -0
  219. package/__tests__/help-json.test.js +19 -0
  220. package/__tests__/http-adapter.test.js +118 -0
  221. package/__tests__/just-plugin.test.js +82 -0
  222. package/__tests__/kubectl-plugin.test.js +83 -0
  223. package/__tests__/linear-plugin.test.js +81 -0
  224. package/__tests__/mcp-adapter.test.js +187 -0
  225. package/__tests__/mcp-local.test.js +105 -0
  226. package/__tests__/namespace-passthrough.test.js +69 -0
  227. package/__tests__/nextest-plugin.test.js +82 -0
  228. package/__tests__/npm-plugin.test.js +81 -0
  229. package/__tests__/nullclaw-plugin.test.js +157 -0
  230. package/__tests__/openapi-adapter.test.js +199 -0
  231. package/__tests__/plan-runtime.test.js +43 -0
  232. package/__tests__/planner.test.js +47 -0
  233. package/__tests__/plugin-agency-agents.test.js +62 -0
  234. package/__tests__/plugin-nullclaw.test.js +78 -0
  235. package/__tests__/plugin-visual-explainer.test.js +62 -0
  236. package/__tests__/plugins-command.test.js +220 -0
  237. package/__tests__/plugins-manager.test.js +353 -0
  238. package/__tests__/plugins-registry.test.js +114 -0
  239. package/__tests__/plugins-store.test.js +115 -0
  240. package/__tests__/pnpm-plugin.test.js +81 -0
  241. package/__tests__/poetry-plugin.test.js +83 -0
  242. package/__tests__/process-adapter.test.js +143 -0
  243. package/__tests__/pulumi-plugin.test.js +81 -0
  244. package/__tests__/railway-plugin.test.js +84 -0
  245. package/__tests__/server-app.test.js +67 -0
  246. package/__tests__/server-config-service.test.js +79 -0
  247. package/__tests__/server-routes-ask.test.js +89 -0
  248. package/__tests__/server-routes-commands.test.js +55 -0
  249. package/__tests__/server-routes-config.test.js +87 -0
  250. package/__tests__/server-routes-jobs.test.js +53 -0
  251. package/__tests__/server-routes-misc.test.js +112 -0
  252. package/__tests__/server-storage-adapter.test.js +40 -0
  253. package/__tests__/server-storage-file.test.js +73 -0
  254. package/__tests__/server-storage-mongo.test.js +74 -0
  255. package/__tests__/shell-adapter.test.js +90 -0
  256. package/__tests__/skills-catalog.test.js +98 -0
  257. package/__tests__/skills.test.js +442 -0
  258. package/__tests__/stripe-plugin.test.js +81 -0
  259. package/__tests__/supabase-plugin.test.js +86 -0
  260. package/__tests__/terraform-plugin.test.js +83 -0
  261. package/__tests__/uv-plugin.test.js +81 -0
  262. package/__tests__/vercel-plugin.test.js +81 -0
  263. package/__tests__/watchexec-plugin.test.js +80 -0
  264. package/cli/adapter-schema.js +108 -0
  265. package/cli/adapters/builtin.js +43 -0
  266. package/cli/adapters/process.js +262 -0
  267. package/cli/adapters/shell.js +82 -0
  268. package/cli/config.js +12 -9
  269. package/cli/executor.js +6 -1
  270. package/cli/help-json.js +3 -1
  271. package/cli/namespace-passthrough.js +38 -0
  272. package/cli/plugin-install-guidance.js +320 -0
  273. package/cli/plugins-command.js +138 -0
  274. package/cli/plugins-manager.js +552 -0
  275. package/cli/plugins-registry.js +80 -0
  276. package/cli/plugins-store.js +56 -0
  277. package/cli/skills-catalog.js +237 -0
  278. package/cli/skills.js +180 -6
  279. package/cli/supercli.js +150 -58
  280. package/docs/docs.html +224 -0
  281. package/docs/feature-gaps.md +16 -0
  282. package/docs/index.html +164 -0
  283. package/docs/plugin-examples.md +397 -0
  284. package/docs/plugin-harness-guide.md +452 -0
  285. package/docs/plugins.md +44 -0
  286. package/docs/skills/cline-non-interactive/SKILL.md +59 -0
  287. package/docs/skills-catalog.md +81 -0
  288. package/docs/supported-harnesses.md +277 -0
  289. package/docs/visual-overview.md +21 -0
  290. package/jest.config.js +25 -0
  291. package/package.json +9 -3
  292. package/plugins/agency-agents/plugin.json +15 -0
  293. package/plugins/agency-agents/scripts/post-install.js +122 -0
  294. package/plugins/aws/README.md +46 -0
  295. package/plugins/aws/plugin.json +42 -0
  296. package/plugins/az/README.md +46 -0
  297. package/plugins/az/plugin.json +42 -0
  298. package/plugins/beads/plugin.json +202 -0
  299. package/plugins/clickup/plugin.json +38 -0
  300. package/plugins/clickup/scripts/post-install.js +107 -0
  301. package/plugins/clickup/scripts/post-uninstall.js +30 -0
  302. package/plugins/cline/README.md +48 -0
  303. package/plugins/cline/plugin.json +92 -0
  304. package/plugins/commiat/plugin.json +36 -0
  305. package/plugins/docker/MANIFEST.md +39 -0
  306. package/plugins/docker/README.md +35 -0
  307. package/plugins/docker/examples/build-image.sh +7 -0
  308. package/plugins/docker/examples/inspect-container.sh +6 -0
  309. package/plugins/docker/examples/list-containers.sh +4 -0
  310. package/plugins/docker/examples/multi-step-workflow.sh +10 -0
  311. package/plugins/docker/examples/run-container.sh +7 -0
  312. package/plugins/docker/plugin.json +266 -0
  313. package/plugins/eza/README.md +40 -0
  314. package/plugins/eza/plugin.json +42 -0
  315. package/plugins/gcloud/README.md +46 -0
  316. package/plugins/gcloud/plugin.json +42 -0
  317. package/plugins/gh/README.md +46 -0
  318. package/plugins/gh/plugin.json +43 -0
  319. package/plugins/gwc/plugin.json +35 -0
  320. package/plugins/helm/README.md +42 -0
  321. package/plugins/helm/plugin.json +42 -0
  322. package/plugins/just/README.md +42 -0
  323. package/plugins/just/plugin.json +42 -0
  324. package/plugins/kubectl/README.md +46 -0
  325. package/plugins/kubectl/plugin.json +42 -0
  326. package/plugins/linear/README.md +60 -0
  327. package/plugins/linear/plugin.json +42 -0
  328. package/plugins/nextest/README.md +42 -0
  329. package/plugins/nextest/plugin.json +42 -0
  330. package/plugins/npm/README.md +46 -0
  331. package/plugins/npm/plugin.json +42 -0
  332. package/plugins/nullclaw/README.md +45 -0
  333. package/plugins/nullclaw/plugin.json +64 -0
  334. package/plugins/nullclaw/scripts/post-install.js +189 -0
  335. package/plugins/nullclaw/scripts/post-uninstall.js +25 -0
  336. package/plugins/openfang/plugin.json +37 -0
  337. package/plugins/openfang/scripts/post-install.js +163 -0
  338. package/plugins/openfang/scripts/post-uninstall.js +30 -0
  339. package/plugins/plugins.json +295 -0
  340. package/plugins/pnpm/README.md +46 -0
  341. package/plugins/pnpm/plugin.json +42 -0
  342. package/plugins/poetry/README.md +46 -0
  343. package/plugins/poetry/plugin.json +42 -0
  344. package/plugins/pulumi/README.md +46 -0
  345. package/plugins/pulumi/plugin.json +42 -0
  346. package/plugins/railway/README.md +58 -0
  347. package/plugins/railway/plugin.json +43 -0
  348. package/plugins/stripe/README.md +49 -0
  349. package/plugins/stripe/plugin.json +52 -0
  350. package/plugins/supabase/README.md +55 -0
  351. package/plugins/supabase/plugin.json +42 -0
  352. package/plugins/superpowers/plugin.json +22 -0
  353. package/plugins/superpowers/scripts/post-install.js +124 -0
  354. package/plugins/superpowers/scripts/post-uninstall.js +30 -0
  355. package/plugins/terraform/README.md +46 -0
  356. package/plugins/terraform/plugin.json +42 -0
  357. package/plugins/uv/README.md +46 -0
  358. package/plugins/uv/plugin.json +42 -0
  359. package/plugins/vercel/README.md +47 -0
  360. package/plugins/vercel/plugin.json +42 -0
  361. package/plugins/visual-explainer/plugin.json +15 -0
  362. package/plugins/visual-explainer/scripts/post-install.js +111 -0
  363. package/plugins/watchexec/README.md +40 -0
  364. package/plugins/watchexec/plugin.json +42 -0
  365. package/tests/test-aws-smoke.sh +56 -0
  366. package/tests/test-az-smoke.sh +56 -0
  367. package/tests/test-cli.js +116 -2
  368. package/tests/test-cline-smoke.sh +37 -0
  369. package/tests/test-eza-smoke.sh +33 -0
  370. package/tests/test-gcloud-smoke.sh +56 -0
  371. package/tests/test-gh-smoke.sh +56 -0
  372. package/tests/test-helm-smoke.sh +33 -0
  373. package/tests/test-just-smoke.sh +40 -0
  374. package/tests/test-kubectl-smoke.sh +37 -0
  375. package/tests/test-linear-smoke.sh +97 -0
  376. package/tests/test-nextest-smoke.sh +33 -0
  377. package/tests/test-npm-smoke.sh +32 -0
  378. package/tests/test-nullclaw-smoke.sh +51 -0
  379. package/tests/test-plugins-registry.js +212 -0
  380. package/tests/test-pnpm-smoke.sh +33 -0
  381. package/tests/test-poetry-smoke.sh +33 -0
  382. package/tests/test-pulumi-smoke.sh +33 -0
  383. package/tests/test-railway-smoke.sh +95 -0
  384. package/tests/test-stripe-smoke.sh +55 -0
  385. package/tests/test-supabase-smoke.sh +95 -0
  386. package/tests/test-terraform-smoke.sh +33 -0
  387. package/tests/test-uv-smoke.sh +33 -0
  388. package/tests/test-vercel-smoke.sh +55 -0
  389. package/tests/test-watchexec-smoke.sh +33 -0
@@ -0,0 +1,49 @@
1
+ # Stripe Plugin Harness
2
+
3
+ This plugin integrates the [Stripe CLI](https://stripe.com/docs/stripe-cli) natively into dcli, providing both wrapped core commands and full passthrough support.
4
+
5
+ ## Prerequisites
6
+
7
+ You must have the Stripe CLI installed to use this plugin:
8
+
9
+ ```bash
10
+ # macOS (Homebrew)
11
+ brew install stripe/stripe-cli/stripe
12
+
13
+ # Linux/Windows
14
+ # See: https://docs.stripe.com/stripe-cli
15
+ ```
16
+
17
+ Make sure you are authenticated before using it:
18
+ ```bash
19
+ stripe login
20
+ ```
21
+
22
+ ## Available Commands
23
+
24
+ ### Customers List
25
+
26
+ Lists the Stripe customers associated with your account.
27
+
28
+ ```bash
29
+ dcli stripe customers list --limit 10 --json
30
+ ```
31
+
32
+ ### Full Passthrough
33
+
34
+ You can pass *any* Stripe CLI command directly via the passthrough functionality.
35
+
36
+ ```bash
37
+ # Listen to webhooks
38
+ dcli stripe listen --forward-to localhost:3000
39
+
40
+ # Trigger events
41
+ dcli stripe trigger payment_intent.succeeded
42
+
43
+ # Show CLI version
44
+ dcli stripe version
45
+ ```
46
+
47
+ ## Output
48
+
49
+ All commands execute the underlying `stripe` binary and wrap the standard output in dcli's JSON envelope format.
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "stripe",
3
+ "version": "0.1.0",
4
+ "description": "Stripe CLI plugin for dcli",
5
+ "source": "https://stripe.com/docs/stripe-cli",
6
+ "checks": [
7
+ {
8
+ "type": "binary",
9
+ "name": "stripe"
10
+ }
11
+ ],
12
+ "commands": [
13
+ {
14
+ "namespace": "stripe",
15
+ "resource": "customers",
16
+ "action": "list",
17
+ "description": "List existing Stripe customers",
18
+ "adapter": "process",
19
+ "adapterConfig": {
20
+ "command": "stripe",
21
+ "baseArgs": ["customers", "list"],
22
+ "optionalArgs": {
23
+ "limit": "--limit"
24
+ },
25
+ "parseJson": true,
26
+ "missingDependencyHelp": "Please install the Stripe CLI to use this command."
27
+ },
28
+ "args": [
29
+ {
30
+ "name": "limit",
31
+ "type": "integer",
32
+ "required": false,
33
+ "description": "Limit the number of customers returned"
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ "namespace": "stripe",
39
+ "resource": "_",
40
+ "action": "_",
41
+ "description": "Passthrough command to execute any Stripe CLI command",
42
+ "adapter": "process",
43
+ "adapterConfig": {
44
+ "command": "stripe",
45
+ "passthrough": true,
46
+ "parseJson": true,
47
+ "missingDependencyHelp": "Please install the Stripe CLI to use this command."
48
+ },
49
+ "args": []
50
+ }
51
+ ]
52
+ }
@@ -0,0 +1,55 @@
1
+ # Supabase Plugin Harness
2
+
3
+ This plugin integrates the Supabase CLI into dcli with one wrapped core command and full namespace passthrough.
4
+
5
+ ## Prerequisites
6
+
7
+ Install Supabase CLI globally or locally:
8
+
9
+ ```bash
10
+ # Global install
11
+ npm install -g supabase
12
+
13
+ # Local install in this repo
14
+ npm install -D supabase
15
+ ```
16
+
17
+ Verify the binary:
18
+
19
+ ```bash
20
+ supabase --version
21
+ # if local only:
22
+ npx --no-install supabase --version
23
+ ```
24
+
25
+ Authenticate before running management commands:
26
+
27
+ ```bash
28
+ supabase login
29
+ ```
30
+
31
+ ## Available Commands
32
+
33
+ ### Projects List (Wrapped)
34
+
35
+ Returns the authenticated account projects via `supabase projects list --output json`.
36
+
37
+ ```bash
38
+ dcli supabase projects list --json
39
+ ```
40
+
41
+ ### Full Passthrough
42
+
43
+ You can run any Supabase CLI command through the `supabase` namespace.
44
+
45
+ ```bash
46
+ # Show CLI help
47
+ dcli supabase --help
48
+
49
+ # List projects directly via passthrough
50
+ dcli supabase projects list --output json
51
+ ```
52
+
53
+ ## Output
54
+
55
+ Wrapped commands and passthrough responses are returned in dcli envelope format when `--json` is used with dcli-level commands.
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "supabase",
3
+ "version": "0.1.0",
4
+ "description": "Supabase CLI plugin for dcli",
5
+ "source": "https://supabase.com/docs/reference/cli/introduction",
6
+ "checks": [
7
+ {
8
+ "type": "binary",
9
+ "name": "supabase"
10
+ }
11
+ ],
12
+ "commands": [
13
+ {
14
+ "namespace": "supabase",
15
+ "resource": "projects",
16
+ "action": "list",
17
+ "description": "List Supabase projects for the authenticated account",
18
+ "adapter": "process",
19
+ "adapterConfig": {
20
+ "command": "supabase",
21
+ "baseArgs": ["projects", "list", "--output", "json"],
22
+ "parseJson": true,
23
+ "missingDependencyHelp": "Please install the Supabase CLI to use this command."
24
+ },
25
+ "args": []
26
+ },
27
+ {
28
+ "namespace": "supabase",
29
+ "resource": "_",
30
+ "action": "_",
31
+ "description": "Passthrough command to execute any Supabase CLI command",
32
+ "adapter": "process",
33
+ "adapterConfig": {
34
+ "command": "supabase",
35
+ "passthrough": true,
36
+ "parseJson": true,
37
+ "missingDependencyHelp": "Please install the Supabase CLI to use this command."
38
+ },
39
+ "args": []
40
+ }
41
+ ]
42
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "superpowers",
3
+ "version": "0.1.0",
4
+ "description": "Agentic skills framework for software development methodology from obra/superpowers",
5
+ "source": "https://github.com/obra/superpowers",
6
+ "tags": ["skills", "agents", "development", "methodology", "catalog"],
7
+ "checks": [
8
+ { "type": "binary", "name": "curl" }
9
+ ],
10
+ "post_install": {
11
+ "script": "scripts/post-install.js",
12
+ "runtime": "node",
13
+ "timeout_ms": 15000
14
+ },
15
+ "post_uninstall": {
16
+ "script": "scripts/post-uninstall.js",
17
+ "runtime": "node",
18
+ "timeout_ms": 15000
19
+ },
20
+ "commands": []
21
+ }
22
+
@@ -0,0 +1,124 @@
1
+ const { spawnSync } = require("child_process")
2
+ const { addProvider, syncCatalog } = require("../../../cli/skills-catalog")
3
+
4
+ const OWNER = "obra"
5
+ const REPO = "superpowers"
6
+ const REF = "main"
7
+ const SOURCE_REPO = `https://github.com/${OWNER}/${REPO}`
8
+ const TREE_URL = `https://api.github.com/repos/${OWNER}/${REPO}/git/trees/${REF}?recursive=1`
9
+ const RAW_BASE_URL = `https://raw.githubusercontent.com/${OWNER}/${REPO}/${REF}`
10
+
11
+ const SKILLS_PREFIX = "skills/"
12
+
13
+ function integrationError(message, suggestions = []) {
14
+ return Object.assign(new Error(message), {
15
+ code: 105,
16
+ type: "integration_error",
17
+ recoverable: true,
18
+ suggestions
19
+ })
20
+ }
21
+
22
+ function fetchJson(url) {
23
+ const res = spawnSync("curl", ["-fsSL", url], { encoding: "utf-8", timeout: 15000 })
24
+ if (res.error) {
25
+ throw integrationError(`Failed to fetch superpowers metadata: ${res.error.message}`, ["Check internet connectivity", "Retry: supercli plugins install superpowers"])
26
+ }
27
+ if (res.status !== 0) {
28
+ throw integrationError(`Failed to fetch superpowers metadata: ${(res.stderr || "").trim() || `exit ${res.status}`}`, ["Check internet connectivity", "Retry: supercli plugins install superpowers"])
29
+ }
30
+ try {
31
+ return JSON.parse((res.stdout || "").trim() || "{}")
32
+ } catch (err) {
33
+ throw integrationError(`Invalid superpowers metadata response: ${err.message}`)
34
+ }
35
+ }
36
+
37
+ function toSkillId(filePath) {
38
+ // Convert skills/brainstorming/SKILL.md -> brainstorming
39
+ return filePath
40
+ .replace(/^skills\//, "")
41
+ .replace(/\/SKILL\.md$/, "")
42
+ }
43
+
44
+ function toSkillName(filePath) {
45
+ // Convert directory name to readable name
46
+ // e.g., "test-driven-development" -> "Test Driven Development"
47
+ const base = toSkillId(filePath)
48
+ return base
49
+ .split("-")
50
+ .map(part => (part ? part[0].toUpperCase() + part.slice(1) : part))
51
+ .join(" ")
52
+ }
53
+
54
+ function isSkillFile(filePath) {
55
+ if (!filePath.endsWith(".md")) return false
56
+ if (!filePath.startsWith(SKILLS_PREFIX)) return false
57
+ if (filePath.endsWith("README.md")) return false
58
+ // Only match skills/*/SKILL.md pattern
59
+ const parts = filePath.split("/")
60
+ return parts.length === 3 && parts[2] === "SKILL.md"
61
+ }
62
+
63
+ function buildRemoteEntriesFromTree(treeResponse) {
64
+ const tree = Array.isArray(treeResponse.tree) ? treeResponse.tree : []
65
+ const entries = []
66
+
67
+ for (const node of tree) {
68
+ if (!node || node.type !== "blob" || typeof node.path !== "string") continue
69
+ if (!isSkillFile(node.path)) continue
70
+
71
+ const id = toSkillId(node.path)
72
+ entries.push({
73
+ id: id,
74
+ name: toSkillName(node.path),
75
+ path: node.path,
76
+ source_url: `${RAW_BASE_URL}/${node.path}`,
77
+ description: `Superpowers skill: ${toSkillName(node.path)}`
78
+ })
79
+ }
80
+
81
+ entries.sort((a, b) => a.id.localeCompare(b.id))
82
+ return entries
83
+ }
84
+
85
+ function run() {
86
+ const treeResponse = fetchJson(TREE_URL)
87
+ const entries = buildRemoteEntriesFromTree(treeResponse)
88
+
89
+ if (entries.length === 0) {
90
+ throw integrationError("superpowers plugin found no remote skill files to index")
91
+ }
92
+
93
+ addProvider({
94
+ name: "superpowers",
95
+ type: "remote_static",
96
+ enabled: true,
97
+ source_repo: SOURCE_REPO,
98
+ ref: REF,
99
+ entries
100
+ })
101
+
102
+ const index = syncCatalog()
103
+ return {
104
+ provider: "superpowers",
105
+ entries: entries.length,
106
+ synced_skills: Array.isArray(index.skills) ? index.skills.length : 0
107
+ }
108
+ }
109
+
110
+ if (require.main === module) {
111
+ try {
112
+ const result = run()
113
+ process.stdout.write(JSON.stringify(result))
114
+ } catch (err) {
115
+ process.stderr.write(err.message)
116
+ process.exit(1)
117
+ }
118
+ }
119
+
120
+ module.exports = {
121
+ run,
122
+ buildRemoteEntriesFromTree
123
+ }
124
+
@@ -0,0 +1,30 @@
1
+ const { removeProvider, syncCatalog } = require("../../../cli/skills-catalog")
2
+
3
+ function run() {
4
+ const removed = removeProvider("superpowers")
5
+
6
+ if (removed) {
7
+ // Re-sync catalog to remove superpowers skills
8
+ syncCatalog()
9
+ }
10
+
11
+ return {
12
+ provider: "superpowers",
13
+ removed: removed
14
+ }
15
+ }
16
+
17
+ if (require.main === module) {
18
+ try {
19
+ const result = run()
20
+ process.stdout.write(JSON.stringify(result))
21
+ } catch (err) {
22
+ process.stderr.write(err.message)
23
+ process.exit(1)
24
+ }
25
+ }
26
+
27
+ module.exports = {
28
+ run
29
+ }
30
+
@@ -0,0 +1,46 @@
1
+ # Terraform Plugin Harness
2
+
3
+ This plugin integrates the Terraform CLI into dcli with one wrapped core command and full namespace passthrough.
4
+
5
+ ## Prerequisites
6
+
7
+ Install Terraform with your preferred package manager, then verify it is available:
8
+
9
+ ```bash
10
+ terraform version -json
11
+ ```
12
+
13
+ If you plan to run state or output commands, ensure you are in a Terraform working directory with initialized state:
14
+
15
+ ```bash
16
+ terraform init
17
+ ```
18
+
19
+ ## Available Commands
20
+
21
+ ### CLI Version (Wrapped)
22
+
23
+ Returns Terraform CLI version information via `terraform version -json`.
24
+
25
+ ```bash
26
+ dcli terraform cli version --json
27
+ ```
28
+
29
+ ### Full Passthrough
30
+
31
+ You can run any Terraform CLI command through the `terraform` namespace.
32
+
33
+ ```bash
34
+ # Show outputs in JSON
35
+ dcli terraform output -json
36
+
37
+ # Show plan help
38
+ dcli terraform plan --help
39
+
40
+ # Show CLI help
41
+ dcli terraform --help
42
+ ```
43
+
44
+ ## Output
45
+
46
+ Wrapped commands and passthrough responses are returned in dcli envelope format when `--json` is used with dcli-level commands.
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "terraform",
3
+ "version": "0.1.0",
4
+ "description": "Terraform CLI plugin for dcli",
5
+ "source": "https://developer.hashicorp.com/terraform/cli",
6
+ "checks": [
7
+ {
8
+ "type": "binary",
9
+ "name": "terraform"
10
+ }
11
+ ],
12
+ "commands": [
13
+ {
14
+ "namespace": "terraform",
15
+ "resource": "cli",
16
+ "action": "version",
17
+ "description": "Show Terraform CLI version information",
18
+ "adapter": "process",
19
+ "adapterConfig": {
20
+ "command": "terraform",
21
+ "baseArgs": ["version", "-json"],
22
+ "parseJson": true,
23
+ "missingDependencyHelp": "Please install Terraform CLI to use this command."
24
+ },
25
+ "args": []
26
+ },
27
+ {
28
+ "namespace": "terraform",
29
+ "resource": "_",
30
+ "action": "_",
31
+ "description": "Passthrough command to execute any Terraform CLI command",
32
+ "adapter": "process",
33
+ "adapterConfig": {
34
+ "command": "terraform",
35
+ "passthrough": true,
36
+ "parseJson": true,
37
+ "missingDependencyHelp": "Please install Terraform CLI to use this command."
38
+ },
39
+ "args": []
40
+ }
41
+ ]
42
+ }
@@ -0,0 +1,46 @@
1
+ # uv Plugin Harness
2
+
3
+ This plugin integrates the uv CLI into dcli with one wrapped core command and full namespace passthrough.
4
+
5
+ ## Prerequisites
6
+
7
+ Ensure uv is available on your machine:
8
+
9
+ ```bash
10
+ uv --version
11
+ ```
12
+
13
+ If you plan to use private package indexes, authenticate first:
14
+
15
+ ```bash
16
+ uv auth login <service>
17
+ ```
18
+
19
+ ## Available Commands
20
+
21
+ ### CLI Version (Wrapped)
22
+
23
+ Returns the uv CLI version via `uv --version`.
24
+
25
+ ```bash
26
+ dcli uv cli version --json
27
+ ```
28
+
29
+ ### Full Passthrough
30
+
31
+ You can run any uv command through the `uv` namespace.
32
+
33
+ ```bash
34
+ # Show available Python interpreters
35
+ dcli uv python list
36
+
37
+ # Run a pip-compatible command
38
+ dcli uv pip list --format json
39
+
40
+ # Show CLI help
41
+ dcli uv --help
42
+ ```
43
+
44
+ ## Output
45
+
46
+ Wrapped commands and passthrough responses are returned in dcli envelope format when `--json` is used with dcli-level commands.
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "uv",
3
+ "version": "0.1.0",
4
+ "description": "uv CLI plugin for dcli",
5
+ "source": "https://docs.astral.sh/uv/reference/cli/",
6
+ "checks": [
7
+ {
8
+ "type": "binary",
9
+ "name": "uv"
10
+ }
11
+ ],
12
+ "commands": [
13
+ {
14
+ "namespace": "uv",
15
+ "resource": "cli",
16
+ "action": "version",
17
+ "description": "Show uv CLI version",
18
+ "adapter": "process",
19
+ "adapterConfig": {
20
+ "command": "uv",
21
+ "baseArgs": ["--version"],
22
+ "parseJson": false,
23
+ "missingDependencyHelp": "Please install uv to use this command."
24
+ },
25
+ "args": []
26
+ },
27
+ {
28
+ "namespace": "uv",
29
+ "resource": "_",
30
+ "action": "_",
31
+ "description": "Passthrough command to execute any uv CLI command",
32
+ "adapter": "process",
33
+ "adapterConfig": {
34
+ "command": "uv",
35
+ "passthrough": true,
36
+ "parseJson": true,
37
+ "missingDependencyHelp": "Please install uv to use this command."
38
+ },
39
+ "args": []
40
+ }
41
+ ]
42
+ }
@@ -0,0 +1,47 @@
1
+ # Vercel Plugin Harness
2
+
3
+ This plugin integrates the [Vercel CLI](https://vercel.com/docs/cli) into dcli with one wrapped core command and full namespace passthrough.
4
+
5
+ ## Prerequisites
6
+
7
+ Install Vercel CLI first:
8
+
9
+ ```bash
10
+ npm install -g vercel
11
+ vercel --version
12
+ ```
13
+
14
+ Authenticate before running account or project operations:
15
+
16
+ ```bash
17
+ vercel login
18
+ ```
19
+
20
+ ## Available Commands
21
+
22
+ ### Account Whoami (Wrapped)
23
+
24
+ Returns the currently logged in Vercel account username.
25
+
26
+ ```bash
27
+ dcli vercel account whoami --json
28
+ ```
29
+
30
+ ### Full Passthrough
31
+
32
+ You can run any Vercel CLI command through the `vercel` namespace.
33
+
34
+ ```bash
35
+ # List recent deployments
36
+ dcli vercel list
37
+
38
+ # List projects
39
+ dcli vercel project ls
40
+
41
+ # Check CLI version
42
+ dcli vercel --version
43
+ ```
44
+
45
+ ## Output
46
+
47
+ Wrapped commands and passthrough responses are returned in dcli envelope format when `--json` is used with dcli-level commands.
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "vercel",
3
+ "version": "0.1.0",
4
+ "description": "Vercel CLI plugin for dcli",
5
+ "source": "https://vercel.com/docs/cli",
6
+ "checks": [
7
+ {
8
+ "type": "binary",
9
+ "name": "vercel"
10
+ }
11
+ ],
12
+ "commands": [
13
+ {
14
+ "namespace": "vercel",
15
+ "resource": "account",
16
+ "action": "whoami",
17
+ "description": "Show the currently logged in Vercel user",
18
+ "adapter": "process",
19
+ "adapterConfig": {
20
+ "command": "vercel",
21
+ "baseArgs": ["whoami"],
22
+ "parseJson": false,
23
+ "missingDependencyHelp": "Please install Vercel CLI to use this command."
24
+ },
25
+ "args": []
26
+ },
27
+ {
28
+ "namespace": "vercel",
29
+ "resource": "_",
30
+ "action": "_",
31
+ "description": "Passthrough command to execute any Vercel CLI command",
32
+ "adapter": "process",
33
+ "adapterConfig": {
34
+ "command": "vercel",
35
+ "passthrough": true,
36
+ "parseJson": true,
37
+ "missingDependencyHelp": "Please install Vercel CLI to use this command."
38
+ },
39
+ "args": []
40
+ }
41
+ ]
42
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "visual-explainer",
3
+ "version": "0.1.0",
4
+ "description": "Remote skills index for javimosch/visual-explainer normalized markdown skills",
5
+ "source": "https://github.com/javimosch/visual-explainer",
6
+ "checks": [
7
+ { "type": "binary", "name": "curl" }
8
+ ],
9
+ "post_install": {
10
+ "script": "scripts/post-install.js",
11
+ "runtime": "node",
12
+ "timeout_ms": 15000
13
+ },
14
+ "commands": []
15
+ }