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.
- package/.beads/.br_history/issues.20260308_200823_636718328.jsonl +20 -0
- package/.beads/.br_history/issues.20260308_200823_636718328.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_200827_033159453.jsonl +21 -0
- package/.beads/.br_history/issues.20260308_200827_033159453.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_200829_595900053.jsonl +22 -0
- package/.beads/.br_history/issues.20260308_200829_595900053.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_200834_079930100.jsonl +23 -0
- package/.beads/.br_history/issues.20260308_200834_079930100.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_200858_370924996.jsonl +24 -0
- package/.beads/.br_history/issues.20260308_200858_370924996.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_201031_019730855.jsonl +24 -0
- package/.beads/.br_history/issues.20260308_201031_019730855.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_201031_578974884.jsonl +24 -0
- package/.beads/.br_history/issues.20260308_201031_578974884.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_201054_780345548.jsonl +24 -0
- package/.beads/.br_history/issues.20260308_201054_780345548.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_201054_896980019.jsonl +24 -0
- package/.beads/.br_history/issues.20260308_201054_896980019.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_201128_599819688.jsonl +24 -0
- package/.beads/.br_history/issues.20260308_201128_599819688.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_201128_710221699.jsonl +24 -0
- package/.beads/.br_history/issues.20260308_201128_710221699.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_201204_745649213.jsonl +24 -0
- package/.beads/.br_history/issues.20260308_201204_745649213.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_201338_908436144.jsonl +24 -0
- package/.beads/.br_history/issues.20260308_201338_908436144.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_201344_734860714.jsonl +25 -0
- package/.beads/.br_history/issues.20260308_201344_734860714.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_201630_819282295.jsonl +25 -0
- package/.beads/.br_history/issues.20260308_201630_819282295.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_203538_054279699.jsonl +25 -0
- package/.beads/.br_history/issues.20260308_203538_054279699.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_203547_597113070.jsonl +26 -0
- package/.beads/.br_history/issues.20260308_203547_597113070.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_203547_775139216.jsonl +27 -0
- package/.beads/.br_history/issues.20260308_203547_775139216.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_203547_950724773.jsonl +28 -0
- package/.beads/.br_history/issues.20260308_203547_950724773.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_203548_107684523.jsonl +29 -0
- package/.beads/.br_history/issues.20260308_203548_107684523.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_203548_310389993.jsonl +30 -0
- package/.beads/.br_history/issues.20260308_203548_310389993.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_203825_953337320.jsonl +31 -0
- package/.beads/.br_history/issues.20260308_203825_953337320.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_204056_071377736.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_204056_071377736.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205141_517616844.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_205141_517616844.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205141_648994024.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_205141_648994024.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205141_867598036.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_205141_867598036.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205142_094157355.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_205142_094157355.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205142_327315677.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_205142_327315677.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205142_545563822.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_205142_545563822.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205213_061989333.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_205213_061989333.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205213_181103364.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_205213_181103364.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205213_408872234.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_205213_408872234.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205213_616681652.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_205213_616681652.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205213_821507069.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_205213_821507069.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205214_026661112.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_205214_026661112.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205454_955250554.jsonl +32 -0
- package/.beads/.br_history/issues.20260308_205454_955250554.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205556_337800392.jsonl +33 -0
- package/.beads/.br_history/issues.20260308_205556_337800392.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_205824_274686694.jsonl +33 -0
- package/.beads/.br_history/issues.20260308_205824_274686694.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_210240_583768328.jsonl +34 -0
- package/.beads/.br_history/issues.20260308_210240_583768328.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212223_641541494.jsonl +34 -0
- package/.beads/.br_history/issues.20260308_212223_641541494.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212227_735550996.jsonl +35 -0
- package/.beads/.br_history/issues.20260308_212227_735550996.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212232_547298548.jsonl +36 -0
- package/.beads/.br_history/issues.20260308_212232_547298548.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212528_843628125.jsonl +37 -0
- package/.beads/.br_history/issues.20260308_212528_843628125.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212529_094530502.jsonl +38 -0
- package/.beads/.br_history/issues.20260308_212529_094530502.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212529_331000853.jsonl +39 -0
- package/.beads/.br_history/issues.20260308_212529_331000853.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212529_587925652.jsonl +40 -0
- package/.beads/.br_history/issues.20260308_212529_587925652.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212804_927764103.jsonl +41 -0
- package/.beads/.br_history/issues.20260308_212804_927764103.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212805_153673453.jsonl +42 -0
- package/.beads/.br_history/issues.20260308_212805_153673453.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212805_415982363.jsonl +43 -0
- package/.beads/.br_history/issues.20260308_212805_415982363.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212805_657497741.jsonl +44 -0
- package/.beads/.br_history/issues.20260308_212805_657497741.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212805_952838724.jsonl +45 -0
- package/.beads/.br_history/issues.20260308_212805_952838724.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212806_325433779.jsonl +46 -0
- package/.beads/.br_history/issues.20260308_212806_325433779.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212806_584685598.jsonl +47 -0
- package/.beads/.br_history/issues.20260308_212806_584685598.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212806_827817208.jsonl +48 -0
- package/.beads/.br_history/issues.20260308_212806_827817208.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212807_111320451.jsonl +49 -0
- package/.beads/.br_history/issues.20260308_212807_111320451.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212807_409545536.jsonl +50 -0
- package/.beads/.br_history/issues.20260308_212807_409545536.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212807_625063294.jsonl +51 -0
- package/.beads/.br_history/issues.20260308_212807_625063294.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212807_843906551.jsonl +52 -0
- package/.beads/.br_history/issues.20260308_212807_843906551.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212808_100304073.jsonl +53 -0
- package/.beads/.br_history/issues.20260308_212808_100304073.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212808_324723976.jsonl +54 -0
- package/.beads/.br_history/issues.20260308_212808_324723976.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212808_557513104.jsonl +55 -0
- package/.beads/.br_history/issues.20260308_212808_557513104.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_212808_788048322.jsonl +56 -0
- package/.beads/.br_history/issues.20260308_212808_788048322.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_213702_613249728.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_213702_613249728.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_213715_115792063.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_213715_115792063.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_213715_462220666.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_213715_462220666.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_213727_191258923.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_213727_191258923.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_213727_684383652.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_213727_684383652.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_213735_751882991.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_213735_751882991.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_222052_279844960.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_222052_279844960.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_222056_873282114.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_222056_873282114.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_222103_402410761.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_222103_402410761.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_235202_180577215.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235202_180577215.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_235202_387414163.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235202_387414163.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_235202_564422794.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235202_564422794.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_235202_742600597.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235202_742600597.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_235208_133360069.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235208_133360069.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_235505_473406307.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235505_473406307.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_235505_662360489.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235505_662360489.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_235505_843935624.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235505_843935624.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260308_235506_044530221.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235506_044530221.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_002618_115728731.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_002618_115728731.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_003748_878174586.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_003748_878174586.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_004057_868755623.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_004057_868755623.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_004058_512842163.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_004058_512842163.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_004058_994445226.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_004058_994445226.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_004059_475988596.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_004059_475988596.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_161902_566857851.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_161902_566857851.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_170512_277017739.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_170512_277017739.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_170512_477876921.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_170512_477876921.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_170512_664382701.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_170512_664382701.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_170512_859400333.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_170512_859400333.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_212326_082771164.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_212326_082771164.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_212326_245619716.jsonl +58 -0
- package/.beads/.br_history/issues.20260309_212326_245619716.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_212326_403198317.jsonl +59 -0
- package/.beads/.br_history/issues.20260309_212326_403198317.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_212332_539197678.jsonl +60 -0
- package/.beads/.br_history/issues.20260309_212332_539197678.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_212332_731373599.jsonl +60 -0
- package/.beads/.br_history/issues.20260309_212332_731373599.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_212332_928710953.jsonl +60 -0
- package/.beads/.br_history/issues.20260309_212332_928710953.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_213021_341505240.jsonl +60 -0
- package/.beads/.br_history/issues.20260309_213021_341505240.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_213022_023136934.jsonl +60 -0
- package/.beads/.br_history/issues.20260309_213022_023136934.jsonl.meta.json +1 -0
- package/.beads/.br_history/issues.20260309_213022_400050719.jsonl +60 -0
- package/.beads/.br_history/issues.20260309_213022_400050719.jsonl.meta.json +1 -0
- package/.beads/config.yaml +4 -0
- package/.beads/issues.jsonl +60 -0
- package/.beads/metadata.json +4 -0
- package/README.md +226 -43
- package/__tests__/adapter-schema.test.js +119 -0
- package/__tests__/ask.test.js +327 -0
- package/__tests__/aws-plugin.test.js +84 -0
- package/__tests__/az-plugin.test.js +84 -0
- package/__tests__/builtin-adapter.test.js +29 -0
- package/__tests__/cline-plugin.test.js +109 -0
- package/__tests__/cline-skill.test.js +49 -0
- package/__tests__/config.test.js +297 -0
- package/__tests__/docker-plugin.test.js +95 -0
- package/__tests__/executor.test.js +303 -0
- package/__tests__/eza-plugin.test.js +81 -0
- package/__tests__/gcloud-plugin.test.js +86 -0
- package/__tests__/gh-plugin.test.js +86 -0
- package/__tests__/helm-plugin.test.js +81 -0
- package/__tests__/help-json.test.js +19 -0
- package/__tests__/http-adapter.test.js +118 -0
- package/__tests__/just-plugin.test.js +82 -0
- package/__tests__/kubectl-plugin.test.js +83 -0
- package/__tests__/linear-plugin.test.js +81 -0
- package/__tests__/mcp-adapter.test.js +187 -0
- package/__tests__/mcp-local.test.js +105 -0
- package/__tests__/namespace-passthrough.test.js +69 -0
- package/__tests__/nextest-plugin.test.js +82 -0
- package/__tests__/npm-plugin.test.js +81 -0
- package/__tests__/nullclaw-plugin.test.js +157 -0
- package/__tests__/openapi-adapter.test.js +199 -0
- package/__tests__/plan-runtime.test.js +43 -0
- package/__tests__/planner.test.js +47 -0
- package/__tests__/plugin-agency-agents.test.js +62 -0
- package/__tests__/plugin-nullclaw.test.js +78 -0
- package/__tests__/plugin-visual-explainer.test.js +62 -0
- package/__tests__/plugins-command.test.js +220 -0
- package/__tests__/plugins-manager.test.js +353 -0
- package/__tests__/plugins-registry.test.js +114 -0
- package/__tests__/plugins-store.test.js +115 -0
- package/__tests__/pnpm-plugin.test.js +81 -0
- package/__tests__/poetry-plugin.test.js +83 -0
- package/__tests__/process-adapter.test.js +143 -0
- package/__tests__/pulumi-plugin.test.js +81 -0
- package/__tests__/railway-plugin.test.js +84 -0
- package/__tests__/server-app.test.js +67 -0
- package/__tests__/server-config-service.test.js +79 -0
- package/__tests__/server-routes-ask.test.js +89 -0
- package/__tests__/server-routes-commands.test.js +55 -0
- package/__tests__/server-routes-config.test.js +87 -0
- package/__tests__/server-routes-jobs.test.js +53 -0
- package/__tests__/server-routes-misc.test.js +112 -0
- package/__tests__/server-storage-adapter.test.js +40 -0
- package/__tests__/server-storage-file.test.js +73 -0
- package/__tests__/server-storage-mongo.test.js +74 -0
- package/__tests__/shell-adapter.test.js +90 -0
- package/__tests__/skills-catalog.test.js +98 -0
- package/__tests__/skills.test.js +442 -0
- package/__tests__/stripe-plugin.test.js +81 -0
- package/__tests__/supabase-plugin.test.js +86 -0
- package/__tests__/terraform-plugin.test.js +83 -0
- package/__tests__/uv-plugin.test.js +81 -0
- package/__tests__/vercel-plugin.test.js +81 -0
- package/__tests__/watchexec-plugin.test.js +80 -0
- package/cli/adapter-schema.js +108 -0
- package/cli/adapters/builtin.js +43 -0
- package/cli/adapters/process.js +262 -0
- package/cli/adapters/shell.js +82 -0
- package/cli/config.js +12 -9
- package/cli/executor.js +6 -1
- package/cli/help-json.js +3 -1
- package/cli/namespace-passthrough.js +38 -0
- package/cli/plugin-install-guidance.js +320 -0
- package/cli/plugins-command.js +138 -0
- package/cli/plugins-manager.js +552 -0
- package/cli/plugins-registry.js +80 -0
- package/cli/plugins-store.js +56 -0
- package/cli/skills-catalog.js +237 -0
- package/cli/skills.js +180 -6
- package/cli/supercli.js +150 -58
- package/docs/docs.html +224 -0
- package/docs/feature-gaps.md +16 -0
- package/docs/index.html +164 -0
- package/docs/plugin-examples.md +397 -0
- package/docs/plugin-harness-guide.md +452 -0
- package/docs/plugins.md +44 -0
- package/docs/skills/cline-non-interactive/SKILL.md +59 -0
- package/docs/skills-catalog.md +81 -0
- package/docs/supported-harnesses.md +277 -0
- package/docs/visual-overview.md +21 -0
- package/jest.config.js +25 -0
- package/package.json +9 -3
- package/plugins/agency-agents/plugin.json +15 -0
- package/plugins/agency-agents/scripts/post-install.js +122 -0
- package/plugins/aws/README.md +46 -0
- package/plugins/aws/plugin.json +42 -0
- package/plugins/az/README.md +46 -0
- package/plugins/az/plugin.json +42 -0
- package/plugins/beads/plugin.json +202 -0
- package/plugins/clickup/plugin.json +38 -0
- package/plugins/clickup/scripts/post-install.js +107 -0
- package/plugins/clickup/scripts/post-uninstall.js +30 -0
- package/plugins/cline/README.md +48 -0
- package/plugins/cline/plugin.json +92 -0
- package/plugins/commiat/plugin.json +36 -0
- package/plugins/docker/MANIFEST.md +39 -0
- package/plugins/docker/README.md +35 -0
- package/plugins/docker/examples/build-image.sh +7 -0
- package/plugins/docker/examples/inspect-container.sh +6 -0
- package/plugins/docker/examples/list-containers.sh +4 -0
- package/plugins/docker/examples/multi-step-workflow.sh +10 -0
- package/plugins/docker/examples/run-container.sh +7 -0
- package/plugins/docker/plugin.json +266 -0
- package/plugins/eza/README.md +40 -0
- package/plugins/eza/plugin.json +42 -0
- package/plugins/gcloud/README.md +46 -0
- package/plugins/gcloud/plugin.json +42 -0
- package/plugins/gh/README.md +46 -0
- package/plugins/gh/plugin.json +43 -0
- package/plugins/gwc/plugin.json +35 -0
- package/plugins/helm/README.md +42 -0
- package/plugins/helm/plugin.json +42 -0
- package/plugins/just/README.md +42 -0
- package/plugins/just/plugin.json +42 -0
- package/plugins/kubectl/README.md +46 -0
- package/plugins/kubectl/plugin.json +42 -0
- package/plugins/linear/README.md +60 -0
- package/plugins/linear/plugin.json +42 -0
- package/plugins/nextest/README.md +42 -0
- package/plugins/nextest/plugin.json +42 -0
- package/plugins/npm/README.md +46 -0
- package/plugins/npm/plugin.json +42 -0
- package/plugins/nullclaw/README.md +45 -0
- package/plugins/nullclaw/plugin.json +64 -0
- package/plugins/nullclaw/scripts/post-install.js +189 -0
- package/plugins/nullclaw/scripts/post-uninstall.js +25 -0
- package/plugins/openfang/plugin.json +37 -0
- package/plugins/openfang/scripts/post-install.js +163 -0
- package/plugins/openfang/scripts/post-uninstall.js +30 -0
- package/plugins/plugins.json +295 -0
- package/plugins/pnpm/README.md +46 -0
- package/plugins/pnpm/plugin.json +42 -0
- package/plugins/poetry/README.md +46 -0
- package/plugins/poetry/plugin.json +42 -0
- package/plugins/pulumi/README.md +46 -0
- package/plugins/pulumi/plugin.json +42 -0
- package/plugins/railway/README.md +58 -0
- package/plugins/railway/plugin.json +43 -0
- package/plugins/stripe/README.md +49 -0
- package/plugins/stripe/plugin.json +52 -0
- package/plugins/supabase/README.md +55 -0
- package/plugins/supabase/plugin.json +42 -0
- package/plugins/superpowers/plugin.json +22 -0
- package/plugins/superpowers/scripts/post-install.js +124 -0
- package/plugins/superpowers/scripts/post-uninstall.js +30 -0
- package/plugins/terraform/README.md +46 -0
- package/plugins/terraform/plugin.json +42 -0
- package/plugins/uv/README.md +46 -0
- package/plugins/uv/plugin.json +42 -0
- package/plugins/vercel/README.md +47 -0
- package/plugins/vercel/plugin.json +42 -0
- package/plugins/visual-explainer/plugin.json +15 -0
- package/plugins/visual-explainer/scripts/post-install.js +111 -0
- package/plugins/watchexec/README.md +40 -0
- package/plugins/watchexec/plugin.json +42 -0
- package/tests/test-aws-smoke.sh +56 -0
- package/tests/test-az-smoke.sh +56 -0
- package/tests/test-cli.js +116 -2
- package/tests/test-cline-smoke.sh +37 -0
- package/tests/test-eza-smoke.sh +33 -0
- package/tests/test-gcloud-smoke.sh +56 -0
- package/tests/test-gh-smoke.sh +56 -0
- package/tests/test-helm-smoke.sh +33 -0
- package/tests/test-just-smoke.sh +40 -0
- package/tests/test-kubectl-smoke.sh +37 -0
- package/tests/test-linear-smoke.sh +97 -0
- package/tests/test-nextest-smoke.sh +33 -0
- package/tests/test-npm-smoke.sh +32 -0
- package/tests/test-nullclaw-smoke.sh +51 -0
- package/tests/test-plugins-registry.js +212 -0
- package/tests/test-pnpm-smoke.sh +33 -0
- package/tests/test-poetry-smoke.sh +33 -0
- package/tests/test-pulumi-smoke.sh +33 -0
- package/tests/test-railway-smoke.sh +95 -0
- package/tests/test-stripe-smoke.sh +55 -0
- package/tests/test-supabase-smoke.sh +95 -0
- package/tests/test-terraform-smoke.sh +33 -0
- package/tests/test-uv-smoke.sh +33 -0
- package/tests/test-vercel-smoke.sh +55 -0
- package/tests/test-watchexec-smoke.sh +33 -0
package/cli/supercli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
require("dotenv").config();
|
|
3
|
+
require("dotenv").config({ quiet: true });
|
|
4
4
|
const {
|
|
5
5
|
loadConfig,
|
|
6
6
|
syncConfig,
|
|
@@ -12,6 +12,7 @@ const {
|
|
|
12
12
|
const { execute } = require("./executor");
|
|
13
13
|
const { buildCapabilities } = require("./help-json");
|
|
14
14
|
const { handleMcpRegistryCommand } = require("./mcp-local");
|
|
15
|
+
const { handlePluginsCommand } = require("./plugins-command");
|
|
15
16
|
const {
|
|
16
17
|
buildLocalPlan,
|
|
17
18
|
annotateServerPlan,
|
|
@@ -19,6 +20,7 @@ const {
|
|
|
19
20
|
} = require("./plan-runtime");
|
|
20
21
|
const { handleAskCommand } = require("./ask");
|
|
21
22
|
const { handleSkillsCommand } = require("./skills");
|
|
23
|
+
const { findNamespacePassthrough } = require("./namespace-passthrough");
|
|
22
24
|
|
|
23
25
|
const SERVER = process.env.SUPERCLI_SERVER;
|
|
24
26
|
const hasServer = !!SERVER;
|
|
@@ -57,6 +59,7 @@ const RESERVED_FLAGS = [
|
|
|
57
59
|
"no-color",
|
|
58
60
|
"show-dag",
|
|
59
61
|
"format",
|
|
62
|
+
"on-conflict",
|
|
60
63
|
];
|
|
61
64
|
|
|
62
65
|
function compactKeys(obj) {
|
|
@@ -97,6 +100,18 @@ function output(data) {
|
|
|
97
100
|
console.log(str);
|
|
98
101
|
}
|
|
99
102
|
|
|
103
|
+
function makeStreamEmitter(commandName) {
|
|
104
|
+
if (humanMode) return null
|
|
105
|
+
return (event) => {
|
|
106
|
+
output({
|
|
107
|
+
version: "1.0",
|
|
108
|
+
command: commandName,
|
|
109
|
+
stream: true,
|
|
110
|
+
data: event,
|
|
111
|
+
})
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
100
115
|
function outputHumanTable(rows, columns) {
|
|
101
116
|
if (!humanMode) return false;
|
|
102
117
|
if (!rows || rows.length === 0) {
|
|
@@ -126,9 +141,12 @@ function outputHumanTable(rows, columns) {
|
|
|
126
141
|
}
|
|
127
142
|
|
|
128
143
|
function outputError(error) {
|
|
144
|
+
const numericCode = Number.isInteger(error.code)
|
|
145
|
+
? error.code
|
|
146
|
+
: Number.parseInt(error.code, 10) || 110;
|
|
129
147
|
const envelope = {
|
|
130
148
|
error: {
|
|
131
|
-
code:
|
|
149
|
+
code: numericCode,
|
|
132
150
|
type: error.type || "internal_error",
|
|
133
151
|
message: error.message,
|
|
134
152
|
recoverable: error.recoverable || false,
|
|
@@ -169,6 +187,59 @@ function userFlags() {
|
|
|
169
187
|
return f;
|
|
170
188
|
}
|
|
171
189
|
|
|
190
|
+
function renderTopLevelHelp(config) {
|
|
191
|
+
const namespaces = [...new Set(config.commands.map((c) => c.namespace))];
|
|
192
|
+
if (humanMode) {
|
|
193
|
+
console.log("\n ⚡ SuperCLI\n");
|
|
194
|
+
console.log(" Namespaces:\n");
|
|
195
|
+
namespaces.forEach((ns) => {
|
|
196
|
+
const resources = [
|
|
197
|
+
...new Set(
|
|
198
|
+
config.commands.filter((c) => c.namespace === ns).map((c) => c.resource),
|
|
199
|
+
),
|
|
200
|
+
];
|
|
201
|
+
console.log(` ${ns}`);
|
|
202
|
+
resources.forEach((r) => {
|
|
203
|
+
const actions = config.commands
|
|
204
|
+
.filter((c) => c.namespace === ns && c.resource === r)
|
|
205
|
+
.map((c) => c.action);
|
|
206
|
+
console.log(` └─ ${r}: ${actions.join(", ")}`);
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
console.log("\n Usage: supercli <namespace> <resource> <action> [--args]");
|
|
210
|
+
if (hasServer) console.log(" Sync: supercli sync");
|
|
211
|
+
console.log(
|
|
212
|
+
" Plugins: supercli plugins explore | supercli plugins install <name|path> | supercli plugins install --git <repo>",
|
|
213
|
+
);
|
|
214
|
+
console.log(
|
|
215
|
+
" MCP: supercli mcp list | supercli mcp add <name> --url <url> | supercli mcp remove <name>",
|
|
216
|
+
);
|
|
217
|
+
console.log(
|
|
218
|
+
" Skills: supercli skills list | supercli skills get <id> | supercli skills search --query <q> | supercli skills sync",
|
|
219
|
+
);
|
|
220
|
+
if (config.features?.ask || process.env.OPENAI_BASE_URL) {
|
|
221
|
+
console.log(' AI: supercli ask "<your natural language query>"');
|
|
222
|
+
}
|
|
223
|
+
console.log(" Server: supercli --server");
|
|
224
|
+
console.log(
|
|
225
|
+
" Flags: --json | --human | --compact | --schema | --help-json | --server\n",
|
|
226
|
+
);
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
output({
|
|
231
|
+
version: "1.0",
|
|
232
|
+
namespaces: namespaces.map((ns) => ({
|
|
233
|
+
name: ns,
|
|
234
|
+
resources: [...new Set(config.commands.filter((c) => c.namespace === ns).map((c) => c.resource))]
|
|
235
|
+
.map((r) => ({
|
|
236
|
+
name: r,
|
|
237
|
+
actions: config.commands.filter((c) => c.namespace === ns && c.resource === r).map((c) => c.action),
|
|
238
|
+
})),
|
|
239
|
+
})),
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
|
|
172
243
|
async function readStdin() {
|
|
173
244
|
// Only read stdin if data is actually being piped
|
|
174
245
|
if (process.stdin.isTTY) return null;
|
|
@@ -227,65 +298,29 @@ async function main() {
|
|
|
227
298
|
return;
|
|
228
299
|
}
|
|
229
300
|
|
|
230
|
-
if (positional.length === 0
|
|
231
|
-
|
|
232
|
-
const namespaces = [...new Set(config.commands.map((c) => c.namespace))];
|
|
233
|
-
if (humanMode) {
|
|
234
|
-
console.log("\n ⚡ SuperCLI\n");
|
|
235
|
-
console.log(" Namespaces:\n");
|
|
236
|
-
namespaces.forEach((ns) => {
|
|
237
|
-
const resources = [
|
|
238
|
-
...new Set(
|
|
239
|
-
config.commands
|
|
240
|
-
.filter((c) => c.namespace === ns)
|
|
241
|
-
.map((c) => c.resource),
|
|
242
|
-
),
|
|
243
|
-
];
|
|
244
|
-
console.log(` ${ns}`);
|
|
245
|
-
resources.forEach((r) => {
|
|
246
|
-
const actions = config.commands
|
|
247
|
-
.filter((c) => c.namespace === ns && c.resource === r)
|
|
248
|
-
.map((c) => c.action);
|
|
249
|
-
console.log(` └─ ${r}: ${actions.join(", ")}`);
|
|
250
|
-
});
|
|
251
|
-
});
|
|
252
|
-
console.log(
|
|
253
|
-
"\n Usage: supercli <namespace> <resource> <action> [--args]",
|
|
254
|
-
);
|
|
255
|
-
if (hasServer) console.log(" Sync: supercli sync");
|
|
256
|
-
console.log(
|
|
257
|
-
" MCP: supercli mcp list | supercli mcp add <name> --url <url> | supercli mcp remove <name>",
|
|
258
|
-
);
|
|
259
|
-
console.log(
|
|
260
|
-
" Skills: supercli skills list | supercli skills get <ns.res.act> | supercli skills teach",
|
|
261
|
-
);
|
|
262
|
-
if (config.features?.ask || process.env.OPENAI_BASE_URL) {
|
|
263
|
-
console.log(' AI: supercli ask "<your natural language query>"');
|
|
264
|
-
}
|
|
265
|
-
console.log(" Server: supercli --server");
|
|
266
|
-
console.log(
|
|
267
|
-
" Flags: --json | --human | --compact | --schema | --help-json | --server\n",
|
|
268
|
-
);
|
|
269
|
-
} else {
|
|
301
|
+
if (positional.length === 0) {
|
|
302
|
+
if (!humanMode) {
|
|
270
303
|
output({
|
|
271
304
|
version: "1.0",
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
].map((r) => ({
|
|
281
|
-
name: r,
|
|
282
|
-
actions: config.commands
|
|
283
|
-
.filter((c) => c.namespace === ns && c.resource === r)
|
|
284
|
-
.map((c) => c.action),
|
|
285
|
-
})),
|
|
286
|
-
})),
|
|
305
|
+
mode: "agent_bootstrap",
|
|
306
|
+
goal: "Use skills for command-safe execution",
|
|
307
|
+
next: [
|
|
308
|
+
"supercli skills teach --format skill.md",
|
|
309
|
+
"supercli skills list --json",
|
|
310
|
+
"supercli skills get <namespace.resource.action> --format skill.md"
|
|
311
|
+
],
|
|
312
|
+
note: "Use skills teach first, then fetch only the skill you need."
|
|
287
313
|
});
|
|
314
|
+
return;
|
|
288
315
|
}
|
|
316
|
+
const config = await loadConfig(SERVER);
|
|
317
|
+
renderTopLevelHelp(config);
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
if (positional[0] === "help") {
|
|
322
|
+
const config = await loadConfig(SERVER);
|
|
323
|
+
renderTopLevelHelp(config);
|
|
289
324
|
return;
|
|
290
325
|
}
|
|
291
326
|
|
|
@@ -339,6 +374,18 @@ async function main() {
|
|
|
339
374
|
return;
|
|
340
375
|
}
|
|
341
376
|
|
|
377
|
+
if (positional[0] === "plugins") {
|
|
378
|
+
await handlePluginsCommand({
|
|
379
|
+
positional,
|
|
380
|
+
flags,
|
|
381
|
+
humanMode,
|
|
382
|
+
output,
|
|
383
|
+
outputHumanTable,
|
|
384
|
+
outputError,
|
|
385
|
+
});
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
|
|
342
389
|
if (positional[0] === "skills") {
|
|
343
390
|
const config = await loadConfig(SERVER);
|
|
344
391
|
handleSkillsCommand({
|
|
@@ -528,6 +575,45 @@ async function main() {
|
|
|
528
575
|
return;
|
|
529
576
|
}
|
|
530
577
|
|
|
578
|
+
{
|
|
579
|
+
const config = await loadConfig(SERVER);
|
|
580
|
+
const passthrough = findNamespacePassthrough(config, positional, rawArgs);
|
|
581
|
+
if (passthrough) {
|
|
582
|
+
const start = Date.now();
|
|
583
|
+
const result = await execute(
|
|
584
|
+
passthrough.command,
|
|
585
|
+
{
|
|
586
|
+
__rawArgs: passthrough.passthroughArgs,
|
|
587
|
+
__passthroughInteractive: humanMode && isTTY,
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
server: SERVER || "",
|
|
591
|
+
config,
|
|
592
|
+
onStreamEvent: passthrough.command.adapterConfig && passthrough.command.adapterConfig.stream === "jsonl"
|
|
593
|
+
? makeStreamEmitter(`${passthrough.namespace}.passthrough`)
|
|
594
|
+
: null,
|
|
595
|
+
},
|
|
596
|
+
);
|
|
597
|
+
const duration = Date.now() - start;
|
|
598
|
+
const envelope = {
|
|
599
|
+
version: "1.0",
|
|
600
|
+
command: `${passthrough.namespace}.passthrough`,
|
|
601
|
+
duration_ms: duration,
|
|
602
|
+
data: result,
|
|
603
|
+
};
|
|
604
|
+
|
|
605
|
+
if (humanMode && result && typeof result === "object" && result.passthrough === true) {
|
|
606
|
+
return;
|
|
607
|
+
}
|
|
608
|
+
if (humanMode && result && typeof result === "object" && typeof result.raw === "string") {
|
|
609
|
+
console.log(result.raw);
|
|
610
|
+
} else {
|
|
611
|
+
output(envelope);
|
|
612
|
+
}
|
|
613
|
+
return;
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
|
|
531
617
|
if (positional.length === 1) {
|
|
532
618
|
const config = await loadConfig(SERVER);
|
|
533
619
|
const cmds = config.commands.filter((c) => c.namespace === positional[0]);
|
|
@@ -642,7 +728,13 @@ async function main() {
|
|
|
642
728
|
}
|
|
643
729
|
|
|
644
730
|
const start = Date.now();
|
|
645
|
-
const result = await execute(cmd, uFlags, {
|
|
731
|
+
const result = await execute(cmd, uFlags, {
|
|
732
|
+
server: SERVER || "",
|
|
733
|
+
config,
|
|
734
|
+
onStreamEvent: cmd.adapterConfig && cmd.adapterConfig.stream === "jsonl"
|
|
735
|
+
? makeStreamEmitter(`${namespace}.${resource}.${action}`)
|
|
736
|
+
: null,
|
|
737
|
+
});
|
|
646
738
|
const duration = Date.now() - start;
|
|
647
739
|
|
|
648
740
|
const envelope = {
|
package/docs/docs.html
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>supercli Documentation</title>
|
|
7
|
+
<script src="https://cdn.tailwindcss.com?plugins=typography"></script>
|
|
8
|
+
<script>
|
|
9
|
+
tailwind.config = {
|
|
10
|
+
theme: {
|
|
11
|
+
extend: {
|
|
12
|
+
fontFamily: {
|
|
13
|
+
sans: ['Inter', 'system-ui', 'sans-serif'],
|
|
14
|
+
display: ['Space Grotesk', 'sans-serif']
|
|
15
|
+
},
|
|
16
|
+
colors: {
|
|
17
|
+
brand: {
|
|
18
|
+
100: '#E0F2FE',
|
|
19
|
+
200: '#BAE6FD',
|
|
20
|
+
400: '#38BDF8',
|
|
21
|
+
500: '#0891B2'
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
</script>
|
|
28
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
29
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
30
|
+
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600&family=Inter:wght@400;500;600&display=swap" rel="stylesheet" />
|
|
31
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/daisyui@4.7.2/dist/full.min.css" />
|
|
32
|
+
<style>
|
|
33
|
+
body {
|
|
34
|
+
font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
35
|
+
background-color: #020617;
|
|
36
|
+
color: #e2e8f0;
|
|
37
|
+
}
|
|
38
|
+
.sidebar-link {
|
|
39
|
+
transition: background-color 0.2s ease, color 0.2s ease;
|
|
40
|
+
}
|
|
41
|
+
</style>
|
|
42
|
+
</head>
|
|
43
|
+
<body class="bg-slate-950">
|
|
44
|
+
<div class="flex min-h-screen">
|
|
45
|
+
<aside id="sidebar" class="w-72 flex-shrink-0 border-r border-slate-800 bg-slate-950/80 backdrop-blur hidden lg:block">
|
|
46
|
+
<div class="p-6 space-y-8">
|
|
47
|
+
<div>
|
|
48
|
+
<p class="text-xs uppercase tracking-[0.4em] text-brand-400">Docs</p>
|
|
49
|
+
<h1 class="text-2xl font-display font-semibold mt-3 text-white">supercli</h1>
|
|
50
|
+
<p class="text-sm text-slate-400">Universal Skill Router</p>
|
|
51
|
+
</div>
|
|
52
|
+
<nav class="space-y-4">
|
|
53
|
+
<div>
|
|
54
|
+
<p class="text-xs uppercase tracking-widest text-slate-500 mb-2">Overview</p>
|
|
55
|
+
<ul class="space-y-2 text-sm">
|
|
56
|
+
<li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#getting-started">Getting Started</a></li>
|
|
57
|
+
<li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#skill-layer">Skill Layer Basics</a></li>
|
|
58
|
+
<li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#skill-sources">Skill Sources</a></li>
|
|
59
|
+
</ul>
|
|
60
|
+
</div>
|
|
61
|
+
<div>
|
|
62
|
+
<p class="text-xs uppercase tracking-widest text-slate-500 mb-2">Runtime</p>
|
|
63
|
+
<ul class="space-y-2 text-sm">
|
|
64
|
+
<li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#architecture">Architecture</a></li>
|
|
65
|
+
<li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#cli-usage">CLI Usage</a></li>
|
|
66
|
+
<li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#plugins">Plugins & Harnesses</a></li>
|
|
67
|
+
</ul>
|
|
68
|
+
</div>
|
|
69
|
+
<div>
|
|
70
|
+
<p class="text-xs uppercase tracking-widest text-slate-500 mb-2">Vision</p>
|
|
71
|
+
<ul class="space-y-2 text-sm">
|
|
72
|
+
<li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#skill-vision">Skill Mesh Vision</a></li>
|
|
73
|
+
<li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#resources">Resources</a></li>
|
|
74
|
+
</ul>
|
|
75
|
+
</div>
|
|
76
|
+
</nav>
|
|
77
|
+
</div>
|
|
78
|
+
</aside>
|
|
79
|
+
|
|
80
|
+
<div class="flex-1 flex flex-col">
|
|
81
|
+
<header class="border-b border-slate-800 px-6 py-4 flex items-center justify-between">
|
|
82
|
+
<button id="mobileToggle" class="lg:hidden btn btn-sm btn-outline border-brand-400 text-brand-100" type="button">Menu</button>
|
|
83
|
+
<div>
|
|
84
|
+
<p class="text-xs uppercase tracking-[0.4em] text-brand-400">Documentation</p>
|
|
85
|
+
<h1 class="text-2xl font-display font-semibold text-white">supercli Knowledge Base</h1>
|
|
86
|
+
</div>
|
|
87
|
+
</header>
|
|
88
|
+
|
|
89
|
+
<main class="flex-1 overflow-y-auto">
|
|
90
|
+
<section class="border-b border-slate-900 bg-slate-900/60 px-6 py-6">
|
|
91
|
+
<div class="max-w-4xl">
|
|
92
|
+
<p class="text-sm uppercase tracking-widest text-brand-200">Quick filter</p>
|
|
93
|
+
<input id="filterInput" type="text" placeholder="Search anything (e.g. OpenAPI, plugins, plans)" class="mt-3 w-full rounded-2xl bg-slate-950/70 border border-slate-700 px-4 py-3 text-slate-100 placeholder:text-slate-500 focus:border-brand-400 focus:outline-none" />
|
|
94
|
+
</div>
|
|
95
|
+
</section>
|
|
96
|
+
|
|
97
|
+
<div class="max-w-4xl px-6 py-10 space-y-10">
|
|
98
|
+
<article class="doc-section space-y-4" id="getting-started" data-keywords="install npm start quick start env">
|
|
99
|
+
<p class="text-sm uppercase tracking-widest text-brand-200">Start here</p>
|
|
100
|
+
<h2 class="text-3xl font-display font-semibold">Getting Started</h2>
|
|
101
|
+
<p class="text-slate-300">Run `npx supercli help` for instant usage, install dependencies with `npm install`, copy `.env.example`, and start the local server via `npm start` or `supercli --server`. The web UI (EJS + Vue + Tailwind) is reachable at `http://localhost:3000`. Refer to the repository README for additional context.</p>
|
|
102
|
+
</article>
|
|
103
|
+
|
|
104
|
+
<article class="doc-section space-y-4" id="skill-layer" data-keywords="skill layer discovery routing execution mesh">
|
|
105
|
+
<p class="text-sm uppercase tracking-widest text-brand-200">Concept</p>
|
|
106
|
+
<h2 class="text-3xl font-display font-semibold">Skill Layer Basics</h2>
|
|
107
|
+
<p class="text-slate-300">Every capability becomes a skill, whether it originates from CLI commands, OpenAPI endpoints, MCP tools, workflows, or HTTP requests. supercli indexes names like `namespace.resource.action`, exposes schemas, and lets agents discover, inspect, and execute consistently.</p>
|
|
108
|
+
<pre class="bg-slate-900 border border-slate-800 rounded-2xl p-4 text-sm"><code>supercli skills list
|
|
109
|
+
supercli skills search "database"
|
|
110
|
+
supercli skills get beads.issue.create</code></pre>
|
|
111
|
+
</article>
|
|
112
|
+
|
|
113
|
+
<article class="doc-section space-y-4" id="skill-sources" data-keywords="bundled adapters openapi http mcp workflows plugins">
|
|
114
|
+
<p class="text-sm uppercase tracking-widest text-brand-200">Sources</p>
|
|
115
|
+
<h2 class="text-3xl font-display font-semibold">Skill Sources</h2>
|
|
116
|
+
<ul class="list-disc list-inside text-slate-300 space-y-2">
|
|
117
|
+
<li><strong>Bundled Harnesses</strong> – beads, gwc, commiat ship with the CLI.</li>
|
|
118
|
+
<li><strong>Built-in Adapters</strong> – OpenAPI specs, raw HTTP, and MCP servers become skills automatically.</li>
|
|
119
|
+
<li><strong>Plugins</strong> – Install docker, gh, aws, kubectl, terraform harnesses via `supercli plugins install`.</li>
|
|
120
|
+
<li><strong>AI Plans / Workflows</strong> – Natural language `ask` and `plan` commands create DAGs of skills.</li>
|
|
121
|
+
</ul>
|
|
122
|
+
</article>
|
|
123
|
+
|
|
124
|
+
<article class="doc-section space-y-4" id="architecture" data-keywords="router discovery layer adapters harness diagram">
|
|
125
|
+
<p class="text-sm uppercase tracking-widest text-brand-200">Runtime</p>
|
|
126
|
+
<h2 class="text-3xl font-display font-semibold">Architecture</h2>
|
|
127
|
+
<p class="text-slate-300">Agents route requests through the skill discovery layer, which maps namespaces to harnesses/adapters. Execution envelopes guarantee deterministic JSON responses and exit codes.</p>
|
|
128
|
+
<pre class="bg-slate-900 border border-slate-800 rounded-2xl p-4 text-sm"><code>Agents/Humans → supercli runtime → Skill Router → Harness / Adapter → Tool</code></pre>
|
|
129
|
+
</article>
|
|
130
|
+
|
|
131
|
+
<article class="doc-section space-y-4" id="cli-usage" data-keywords="cli usage beads gwc docker plan ask plugins config">
|
|
132
|
+
<p class="text-sm uppercase tracking-widest text-brand-200">Interface</p>
|
|
133
|
+
<h2 class="text-3xl font-display font-semibold">CLI Usage</h2>
|
|
134
|
+
<div class="space-y-3">
|
|
135
|
+
<pre class="bg-slate-900 border border-slate-800 rounded-2xl p-4 text-sm"><code>supercli <harness> # list skills
|
|
136
|
+
supercli beads issue list --json
|
|
137
|
+
supercli skills search --harness beads "task"
|
|
138
|
+
supercli ask "deploy staging"
|
|
139
|
+
supercli plugins explore --tags git,ai</code></pre>
|
|
140
|
+
<p class="text-slate-300">`--json`, `--human`, and `--compact` control output, while exit codes communicate validation, resource, or integration errors.</p>
|
|
141
|
+
</div>
|
|
142
|
+
</article>
|
|
143
|
+
|
|
144
|
+
<article class="doc-section space-y-4" id="plugins" data-keywords="plugin harness guide manifest commiat docker install">
|
|
145
|
+
<p class="text-sm uppercase tracking-widest text-brand-200">Extension</p>
|
|
146
|
+
<h2 class="text-3xl font-display font-semibold">Plugins & Harnesses</h2>
|
|
147
|
+
<p class="text-slate-300">Wrap any CLI with a `plugin.json` manifest that defines commands, schemas, dependency checks, and passthrough rules. Install from the registry, Git repos, or local paths.</p>
|
|
148
|
+
<p class="text-slate-400 text-sm">Need more? Check `docs/plugin-harness-guide.md` in the repository for step-by-step authoring details.</p>
|
|
149
|
+
</article>
|
|
150
|
+
|
|
151
|
+
<article class="doc-section space-y-4" id="skill-vision" data-keywords="skill mesh registry graph governance dag api telemetry">
|
|
152
|
+
<p class="text-sm uppercase tracking-widest text-brand-200">Vision</p>
|
|
153
|
+
<h2 class="text-3xl font-display font-semibold">Skill Mesh Direction</h2>
|
|
154
|
+
<p class="text-slate-300">The platform is evolving toward a mesh that handles discovery, routing, execution, composition, and governance. Key areas under exploration include a unified skill registry, graph-native discovery, mesh-wide policy, DAG orchestration, agent endpoints, composition tooling, telemetry, and richer plugin UX.</p>
|
|
155
|
+
</article>
|
|
156
|
+
|
|
157
|
+
<article class="doc-section space-y-4" id="resources" data-keywords="readme docs skills catalog supported harnesses">
|
|
158
|
+
<p class="text-sm uppercase tracking-widest text-brand-200">Resources</p>
|
|
159
|
+
<h2 class="text-3xl font-display font-semibold">More Documentation</h2>
|
|
160
|
+
<ul class="list-disc list-inside text-slate-300 space-y-2">
|
|
161
|
+
<li>README.md (repository root)</li>
|
|
162
|
+
<li>docs/skills-catalog.md</li>
|
|
163
|
+
<li>docs/supported-harnesses.md</li>
|
|
164
|
+
<li>docs/features/skills.md</li>
|
|
165
|
+
</ul>
|
|
166
|
+
</article>
|
|
167
|
+
</div>
|
|
168
|
+
</main>
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
|
|
172
|
+
<div id="mobileDrawer" class="fixed inset-0 bg-black/60 hidden z-40 lg:hidden">
|
|
173
|
+
<div class="w-72 bg-slate-950 h-full border-r border-slate-800 p-6 overflow-y-auto">
|
|
174
|
+
<div class="flex items-center justify-between mb-6">
|
|
175
|
+
<h2 class="text-white text-xl font-display">Navigate</h2>
|
|
176
|
+
<button id="drawerClose" class="btn btn-sm btn-ghost">Close</button>
|
|
177
|
+
</div>
|
|
178
|
+
<div id="drawerNav" class="space-y-6 text-sm">
|
|
179
|
+
<!-- Populated from sidebar -->
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
|
|
184
|
+
<script>
|
|
185
|
+
const filterInput = document.getElementById('filterInput');
|
|
186
|
+
const sections = document.querySelectorAll('.doc-section');
|
|
187
|
+
|
|
188
|
+
filterInput.addEventListener('input', (event) => {
|
|
189
|
+
const query = event.target.value.trim().toLowerCase();
|
|
190
|
+
sections.forEach((section) => {
|
|
191
|
+
const text = section.textContent.toLowerCase();
|
|
192
|
+
const keywords = section.dataset.keywords || '';
|
|
193
|
+
const match = text.includes(query) || keywords.includes(query);
|
|
194
|
+
section.style.display = match ? 'block' : 'none';
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
const sidebar = document.getElementById('sidebar');
|
|
199
|
+
const mobileDrawer = document.getElementById('mobileDrawer');
|
|
200
|
+
const drawerNav = document.getElementById('drawerNav');
|
|
201
|
+
const mobileToggle = document.getElementById('mobileToggle');
|
|
202
|
+
const drawerClose = document.getElementById('drawerClose');
|
|
203
|
+
|
|
204
|
+
const cloneSidebarNav = () => {
|
|
205
|
+
if (!sidebar) return;
|
|
206
|
+
drawerNav.innerHTML = sidebar.querySelector('nav').innerHTML;
|
|
207
|
+
};
|
|
208
|
+
cloneSidebarNav();
|
|
209
|
+
|
|
210
|
+
const openDrawer = () => {
|
|
211
|
+
mobileDrawer.classList.remove('hidden');
|
|
212
|
+
};
|
|
213
|
+
const closeDrawer = () => {
|
|
214
|
+
mobileDrawer.classList.add('hidden');
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
mobileToggle.addEventListener('click', openDrawer);
|
|
218
|
+
drawerClose.addEventListener('click', closeDrawer);
|
|
219
|
+
mobileDrawer.addEventListener('click', (event) => {
|
|
220
|
+
if (event.target === mobileDrawer) closeDrawer();
|
|
221
|
+
});
|
|
222
|
+
</script>
|
|
223
|
+
</body>
|
|
224
|
+
</html>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Feature Gaps
|
|
2
|
+
|
|
3
|
+
Comparison of the current release versus the broader skill-mesh vision from the latest brainstorming notes.
|
|
4
|
+
|
|
5
|
+
| Feature name | Description | Why it matters |
|
|
6
|
+
| --- | --- | --- |
|
|
7
|
+
| Unified skill registry service | Dedicated registry service that persists skill metadata, ownership, and lifecycle events outside the CLI runtime. | Enables organization-wide discovery, policy management, and sharing without relying on a single CLI process or local cache. |
|
|
8
|
+
| Skill graph traversal API | Graph-native search endpoints ("related skills", capability clustering, semantic tags). | Agents can explore neighboring skills, infer dependencies, and auto-complete workflows instead of executing isolated commands. |
|
|
9
|
+
| Mesh-wide governance & policy | Central rules for authentication, rate limits, approvals, and auditing across every harness/adapter. | Provides enterprise-grade controls so teams can safely expose sensitive CLIs/APIs without bespoke wrappers. |
|
|
10
|
+
| Execution DAG orchestration | First-class scheduler for multi-skill plans with retries, checkpoints, and observability hooks. | Bridges `plan/execute` concepts with reliable automation, turning plans into production-grade workflows. |
|
|
11
|
+
| Agent-facing HTTP interface | Stable HTTP/WebSocket endpoints that mirror CLI capabilities for direct agent/automation consumption. | Lets agents integrate via simple API calls rather than shelling out to the CLI, unlocking server-side agents and SaaS integrations. |
|
|
12
|
+
| Skill composition toolkit | Declarative way to package multiple skills into composites or workflows that publish as new skills. | Encourages reuse, accelerates plugin development, and aligns with the "skill mesh" abstraction where every composite is also a skill. |
|
|
13
|
+
| Telemetry & lineage for skills | Built-in tracing, metrics, and history for each skill invocation and plan. | Makes it possible to reason about reliability, enforce governance, and debug agent runs across heterogeneous tools. |
|
|
14
|
+
| Plugin certification & discovery UX | Registry UX for tagging, ranking, and validating community plugins directly in `supercli plugins explore`. | Reduces trust friction for third-party harnesses and makes the discovery narrative match the README’s emphasis on skills-first exploration. |
|
|
15
|
+
|
|
16
|
+
These gaps represent future-facing opportunities rather than committed roadmap items; they document the delta between today’s shipping features and the aspirational skill-mesh direction.
|