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,189 @@
1
+ const { spawnSync } = require("child_process")
2
+ const { addProvider, syncCatalog } = require("../../../cli/skills-catalog")
3
+
4
+ const OWNER = "nullclaw"
5
+ const REPO = "nullclaw"
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 CATALOG_FILES = [
12
+ {
13
+ id: "root.readme",
14
+ name: "NullClaw Overview",
15
+ path: "README.md",
16
+ description: "Project overview, quick start, common commands, and platform capabilities.",
17
+ tags: ["overview", "runtime", "agents"]
18
+ },
19
+ {
20
+ id: "root.agents",
21
+ name: "NullClaw Agent Protocol",
22
+ path: "AGENTS.md",
23
+ description: "Repository-specific engineering protocol for coding agents implementing NullClaw features.",
24
+ tags: ["agents", "engineering", "implementation"]
25
+ },
26
+ {
27
+ id: "root.claude",
28
+ name: "NullClaw Claude Guidance",
29
+ path: "CLAUDE.md",
30
+ description: "Additional repository instructions for LLM-assisted development workflows.",
31
+ tags: ["agents", "llms", "implementation"]
32
+ },
33
+ {
34
+ id: "root.contributing",
35
+ name: "NullClaw Contributing",
36
+ path: "CONTRIBUTING.md",
37
+ description: "Contribution workflow, validation expectations, and repository conventions.",
38
+ tags: ["contributing", "development", "workflow"]
39
+ },
40
+ {
41
+ id: "docs.en.readme",
42
+ name: "NullClaw Docs Overview",
43
+ path: "docs/en/README.md",
44
+ description: "Guided docs entry point for users and contributors.",
45
+ tags: ["docs", "overview", "onboarding"]
46
+ },
47
+ {
48
+ id: "docs.en.installation",
49
+ name: "NullClaw Installation",
50
+ path: "docs/en/installation.md",
51
+ description: "Install and first-run setup guidance for the NullClaw binary.",
52
+ tags: ["installation", "setup", "operations"]
53
+ },
54
+ {
55
+ id: "docs.en.configuration",
56
+ name: "NullClaw Configuration",
57
+ path: "docs/en/configuration.md",
58
+ description: "Config schema guidance for models, channels, memory, gateway, autonomy, and security.",
59
+ tags: ["configuration", "operations", "security"]
60
+ },
61
+ {
62
+ id: "docs.en.commands",
63
+ name: "NullClaw Commands",
64
+ path: "docs/en/commands.md",
65
+ description: "Task-oriented CLI reference covering onboarding, agent, service, channel, skills, and data commands.",
66
+ tags: ["commands", "cli", "operations"]
67
+ },
68
+ {
69
+ id: "docs.en.usage",
70
+ name: "NullClaw Usage",
71
+ path: "docs/en/usage.md",
72
+ description: "Operational workflows for day-to-day use, health checks, troubleshooting, and service mode.",
73
+ tags: ["usage", "operations", "troubleshooting"]
74
+ },
75
+ {
76
+ id: "docs.en.architecture",
77
+ name: "NullClaw Architecture",
78
+ path: "docs/en/architecture.md",
79
+ description: "Subsystem design and extension points for providers, channels, tools, runtime, memory, and security.",
80
+ tags: ["architecture", "engineering", "implementation"]
81
+ },
82
+ {
83
+ id: "docs.en.security",
84
+ name: "NullClaw Security",
85
+ path: "docs/en/security.md",
86
+ description: "Security model for pairing, sandboxing, allowlists, secrets, and runtime boundaries.",
87
+ tags: ["security", "operations", "implementation"]
88
+ },
89
+ {
90
+ id: "docs.en.gateway-api",
91
+ name: "NullClaw Gateway API",
92
+ path: "docs/en/gateway-api.md",
93
+ description: "Gateway endpoints, pairing flow, auth expectations, and integration details.",
94
+ tags: ["api", "gateway", "integrations"]
95
+ },
96
+ {
97
+ id: "docs.en.development",
98
+ name: "NullClaw Development",
99
+ path: "docs/en/development.md",
100
+ description: "Build, test, source layout, and development workflow for contributors.",
101
+ tags: ["development", "engineering", "zig"]
102
+ }
103
+ ]
104
+
105
+ function integrationError(message, suggestions = []) {
106
+ return Object.assign(new Error(message), {
107
+ code: 105,
108
+ type: "integration_error",
109
+ recoverable: true,
110
+ suggestions
111
+ })
112
+ }
113
+
114
+ function fetchJson(url) {
115
+ const res = spawnSync("curl", ["-fsSL", url], { encoding: "utf-8", timeout: 15000 })
116
+ if (res.error) {
117
+ throw integrationError(`Failed to fetch nullclaw metadata: ${res.error.message}`, [
118
+ "Check internet connectivity",
119
+ "Retry: supercli plugins install nullclaw"
120
+ ])
121
+ }
122
+ if (res.status !== 0) {
123
+ throw integrationError(`Failed to fetch nullclaw metadata: ${(res.stderr || "").trim() || `exit ${res.status}`}`, [
124
+ "Check internet connectivity",
125
+ "Retry: supercli plugins install nullclaw"
126
+ ])
127
+ }
128
+ try {
129
+ return JSON.parse((res.stdout || "").trim() || "{}")
130
+ } catch (err) {
131
+ throw integrationError(`Invalid nullclaw metadata response: ${err.message}`)
132
+ }
133
+ }
134
+
135
+ function buildRemoteEntriesFromTree(treeResponse) {
136
+ const tree = Array.isArray(treeResponse.tree) ? treeResponse.tree : []
137
+ const availablePaths = new Set(
138
+ tree
139
+ .filter(node => node && node.type === "blob" && typeof node.path === "string")
140
+ .map(node => node.path)
141
+ )
142
+
143
+ return CATALOG_FILES
144
+ .filter(file => availablePaths.has(file.path))
145
+ .map(file => ({
146
+ ...file,
147
+ source_url: `${RAW_BASE_URL}/${file.path}`
148
+ }))
149
+ }
150
+
151
+ function run() {
152
+ const treeResponse = fetchJson(TREE_URL)
153
+ const entries = buildRemoteEntriesFromTree(treeResponse)
154
+ if (entries.length === 0) {
155
+ throw integrationError("nullclaw plugin found no remote documentation files to index")
156
+ }
157
+
158
+ addProvider({
159
+ name: "nullclaw",
160
+ type: "remote_static",
161
+ enabled: true,
162
+ source_repo: SOURCE_REPO,
163
+ ref: REF,
164
+ entries
165
+ })
166
+
167
+ const index = syncCatalog()
168
+ return {
169
+ provider: "nullclaw",
170
+ entries: entries.length,
171
+ synced_skills: Array.isArray(index.skills) ? index.skills.length : 0
172
+ }
173
+ }
174
+
175
+ if (require.main === module) {
176
+ try {
177
+ const result = run()
178
+ process.stdout.write(JSON.stringify(result))
179
+ } catch (err) {
180
+ process.stderr.write(err.message)
181
+ process.exit(1)
182
+ }
183
+ }
184
+
185
+ module.exports = {
186
+ CATALOG_FILES,
187
+ run,
188
+ buildRemoteEntriesFromTree
189
+ }
@@ -0,0 +1,25 @@
1
+ const { removeProvider, syncCatalog } = require("../../../cli/skills-catalog")
2
+
3
+ function run() {
4
+ const removed = removeProvider("nullclaw")
5
+ const index = syncCatalog()
6
+ return {
7
+ provider: "nullclaw",
8
+ removed,
9
+ synced_skills: Array.isArray(index.skills) ? index.skills.length : 0
10
+ }
11
+ }
12
+
13
+ if (require.main === module) {
14
+ try {
15
+ const result = run()
16
+ process.stdout.write(JSON.stringify(result))
17
+ } catch (err) {
18
+ process.stderr.write(err.message)
19
+ process.exit(1)
20
+ }
21
+ }
22
+
23
+ module.exports = {
24
+ run
25
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "openfang",
3
+ "version": "0.1.0",
4
+ "description": "OpenFang - Agent Operating System. CLI passthrough + 60+ bundled skills for AI agents",
5
+ "source": "https://github.com/RightNow-AI/openfang",
6
+ "checks": [
7
+ { "type": "binary", "name": "openfang" }
8
+ ],
9
+ "post_install": {
10
+ "script": "scripts/post-install.js",
11
+ "runtime": "node",
12
+ "timeout_ms": 15000
13
+ },
14
+ "post_uninstall": {
15
+ "script": "scripts/post-uninstall.js",
16
+ "runtime": "node",
17
+ "timeout_ms": 15000
18
+ },
19
+ "commands": [
20
+ {
21
+ "namespace": "openfang",
22
+ "resource": "_",
23
+ "action": "_",
24
+ "description": "Passthrough command to execute any openfang CLI command",
25
+ "adapter": "process",
26
+ "adapterConfig": {
27
+ "command": "openfang",
28
+ "passthrough": true,
29
+ "parseJson": false,
30
+ "timeout_ms": 15000,
31
+ "missingDependencyHelp": "Run: curl -fsSL https://openfang.sh/install | sh"
32
+ },
33
+ "args": []
34
+ }
35
+ ]
36
+ }
37
+
@@ -0,0 +1,163 @@
1
+ const { spawnSync } = require("child_process")
2
+ const { addProvider, syncCatalog } = require("../../../cli/skills-catalog")
3
+
4
+ const OWNER = "RightNow-AI"
5
+ const REPO = "openfang"
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 SKILLS_BASE = "crates/openfang-skills/bundled"
10
+
11
+ function integrationError(message, suggestions = []) {
12
+ return Object.assign(new Error(message), {
13
+ code: 105,
14
+ type: "integration_error",
15
+ recoverable: true,
16
+ suggestions
17
+ })
18
+ }
19
+
20
+ function fetchJson(url) {
21
+ const res = spawnSync("curl", ["-fsSL", url], { encoding: "utf-8", timeout: 30000 })
22
+ if (res.error) {
23
+ throw integrationError(`Failed to fetch from GitHub API: ${res.error.message}`, ["Check internet connectivity", "Retry: supercli plugins install openfang"])
24
+ }
25
+ if (res.status !== 0) {
26
+ throw integrationError(`Failed to fetch from GitHub API: ${(res.stderr || "").trim() || `exit ${res.status}`}`, ["Check internet connectivity", "Retry: supercli plugins install openfang"])
27
+ }
28
+ try {
29
+ return JSON.parse((res.stdout || "").trim() || "{}")
30
+ } catch (err) {
31
+ throw integrationError(`Invalid JSON response: ${err.message}`)
32
+ }
33
+ }
34
+
35
+ // Map skill folder names to human-readable names
36
+ const SKILL_DISPLAY_NAMES = {
37
+ "ansible": "Ansible",
38
+ "api-tester": "API Tester",
39
+ "aws": "AWS Expert",
40
+ "azure": "Azure Expert",
41
+ "ci-cd": "CI/CD",
42
+ "code-reviewer": "Code Reviewer",
43
+ "compliance": "Compliance",
44
+ "confluence": "Confluence",
45
+ "crypto-expert": "Cryptocurrency Expert",
46
+ "css-expert": "CSS Expert",
47
+ "data-analyst": "Data Analyst",
48
+ "data-pipeline": "Data Pipeline",
49
+ "docker": "Docker",
50
+ "elasticsearch": "Elasticsearch",
51
+ "email-writer": "Email Writer",
52
+ "figma-expert": "Figma Expert",
53
+ "gcp": "Google Cloud Expert",
54
+ "git-expert": "Git Expert",
55
+ "github": "GitHub",
56
+ "golang-expert": "Go Expert",
57
+ "graphql-expert": "GraphQL Expert",
58
+ "helm": "Helm",
59
+ "interview-prep": "Interview Preparation",
60
+ "jira": "Jira",
61
+ "kubernetes": "Kubernetes",
62
+ "linear-tools": "Linear",
63
+ "linux-networking": "Linux Networking",
64
+ "llm-finetuning": "LLM Fine-tuning",
65
+ "ml-engineer": "ML Engineer",
66
+ "mongodb": "MongoDB",
67
+ "nextjs-expert": "Next.js Expert",
68
+ "nginx": "Nginx",
69
+ "notion": "Notion",
70
+ "oauth-expert": "OAuth Expert",
71
+ "openapi-expert": "OpenAPI Expert",
72
+ "pdf-reader": "PDF Reader",
73
+ "postgres-expert": "PostgreSQL Expert",
74
+ "presentation": "Presentation",
75
+ "project-manager": "Project Manager",
76
+ "prometheus": "Prometheus",
77
+ "prompt-engineer": "Prompt Engineer",
78
+ "python-expert": "Python Expert",
79
+ "react-expert": "React Expert",
80
+ "redis-expert": "Redis Expert",
81
+ "regex-expert": "Regex Expert",
82
+ "rust-expert": "Rust Expert",
83
+ "security-audit": "Security Audit",
84
+ "sentry": "Sentry",
85
+ "shell-scripting": "Shell Scripting",
86
+ "slack-tools": "Slack",
87
+ "sql-analyst": "SQL Analyst",
88
+ "sqlite-expert": "SQLite Expert",
89
+ "sysadmin": "System Administrator",
90
+ "technical-writer": "Technical Writer",
91
+ "terraform": "Terraform",
92
+ "typescript-expert": "TypeScript Expert",
93
+ "vector-db": "Vector Database",
94
+ "wasm-expert": "WebAssembly Expert",
95
+ "web-search": "Web Search",
96
+ "writing-coach": "Writing Coach"
97
+ }
98
+
99
+ function run() {
100
+ // Fetch the tree to get all skills
101
+ const treeData = fetchJson(TREE_URL)
102
+
103
+ if (!treeData.tree) {
104
+ throw integrationError("Failed to get repository tree from GitHub")
105
+ }
106
+
107
+ // Find all skill directories under crates/openfang-skills/bundled
108
+ const skillEntries = treeData.tree
109
+ .filter(item => item.path.startsWith(SKILLS_BASE + "/") && item.type === "tree")
110
+ .map(item => item.path.replace(SKILLS_BASE + "/", ""))
111
+
112
+ if (skillEntries.length === 0) {
113
+ throw integrationError("No skills found in openfang-skills/bundled")
114
+ }
115
+
116
+ // Build provider entries for each skill
117
+ const entries = skillEntries.map(skillName => {
118
+ const displayName = SKILL_DISPLAY_NAMES[skillName] || skillName
119
+ .split("-")
120
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
121
+ .join(" ")
122
+
123
+ return {
124
+ id: skillName,
125
+ name: displayName,
126
+ description: `OpenFang bundled skill: ${displayName}`,
127
+ path: `${SKILLS_BASE}/${skillName}`,
128
+ source_url: `https://github.com/${OWNER}/${REPO}/tree/${REF}/${SKILLS_BASE}/${skillName}`
129
+ }
130
+ })
131
+
132
+ // Add as a remote static provider
133
+ addProvider({
134
+ name: "openfang",
135
+ type: "remote_static",
136
+ enabled: true,
137
+ source_repo: SOURCE_REPO,
138
+ ref: REF,
139
+ entries: entries
140
+ })
141
+
142
+ const index = syncCatalog()
143
+ return {
144
+ provider: "openfang",
145
+ entries: entries.length,
146
+ synced_skills: Array.isArray(index.skills) ? index.skills.length : 0
147
+ }
148
+ }
149
+
150
+ if (require.main === module) {
151
+ try {
152
+ const result = run()
153
+ process.stdout.write(JSON.stringify(result))
154
+ } catch (err) {
155
+ process.stderr.write(err.message)
156
+ process.exit(1)
157
+ }
158
+ }
159
+
160
+ module.exports = {
161
+ run
162
+ }
163
+
@@ -0,0 +1,30 @@
1
+ const { removeProvider, syncCatalog } = require("../../../cli/skills-catalog")
2
+
3
+ function run() {
4
+ const removed = removeProvider("openfang")
5
+
6
+ if (removed) {
7
+ // Re-sync catalog to remove openfang skills
8
+ syncCatalog()
9
+ }
10
+
11
+ return {
12
+ provider: "openfang",
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
+