superacli 1.1.0 → 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_235202_180577215.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235202_387414163.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235202_564422794.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235202_742600597.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235208_133360069.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235505_473406307.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235505_662360489.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235505_843935624.jsonl +57 -0
- package/.beads/.br_history/issues.20260308_235506_044530221.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_002618_115728731.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_003748_878174586.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_004057_868755623.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_004058_512842163.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_004058_994445226.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_004059_475988596.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_161902_566857851.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_170512_277017739.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_170512_477876921.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_170512_664382701.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_170512_859400333.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_212326_082771164.jsonl +57 -0
- package/.beads/.br_history/issues.20260309_212326_245619716.jsonl +58 -0
- package/.beads/.br_history/issues.20260309_212326_403198317.jsonl +59 -0
- package/.beads/.br_history/issues.20260309_212332_539197678.jsonl +60 -0
- package/.beads/.br_history/issues.20260309_212332_731373599.jsonl +60 -0
- package/.beads/.br_history/issues.20260309_212332_928710953.jsonl +60 -0
- package/.beads/.br_history/issues.20260309_213021_341505240.jsonl +60 -0
- package/.beads/.br_history/issues.20260309_213022_023136934.jsonl +60 -0
- package/.beads/.br_history/issues.20260309_213022_400050719.jsonl +60 -0
- package/.beads/issues.jsonl +20 -17
- package/README.md +1 -1
- package/__tests__/adapter-schema.test.js +3 -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__/docker-plugin.test.js +3 -1
- 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__/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__/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__/plugin-agency-agents.test.js +6 -6
- package/__tests__/plugin-nullclaw.test.js +78 -0
- package/__tests__/plugin-visual-explainer.test.js +62 -0
- package/__tests__/plugins-manager.test.js +59 -10
- package/__tests__/pnpm-plugin.test.js +81 -0
- package/__tests__/poetry-plugin.test.js +83 -0
- package/__tests__/process-adapter.test.js +124 -90
- 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 +81 -22
- package/__tests__/stripe-plugin.test.js +3 -1
- 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 +5 -0
- package/cli/adapters/process.js +53 -2
- package/cli/plugin-install-guidance.js +320 -0
- package/cli/plugins-manager.js +272 -212
- package/cli/skills.js +16 -5
- package/cli/supercli.js +26 -2
- package/docs/plugins.md +2 -0
- package/docs/skills/cline-non-interactive/SKILL.md +59 -0
- package/docs/skills-catalog.md +35 -0
- package/docs/visual-overview.md +21 -0
- package/jest.config.js +4 -1
- package/package.json +4 -3
- package/plugins/agency-agents/plugin.json +5 -0
- package/{cli/plugin-agency-agents.js → plugins/agency-agents/scripts/post-install.js} +13 -3
- 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/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/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/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 +234 -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/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-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 +110 -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-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/.beads/.br_history/issues.20260308_180927_477542428.jsonl +0 -12
- package/.beads/.br_history/issues.20260308_181032_020230108.jsonl +0 -12
- package/.beads/.br_history/issues.20260308_181032_180539413.jsonl +0 -12
- package/.beads/.br_history/issues.20260308_181032_372621506.jsonl +0 -12
- package/.beads/.br_history/issues.20260308_181032_565142225.jsonl +0 -12
- package/.beads/.br_history/issues.20260308_181311_336346464.jsonl +0 -12
- package/.beads/.br_history/issues.20260308_181444_039234498.jsonl +0 -13
- package/.beads/.br_history/issues.20260308_181503_794764403.jsonl +0 -13
- package/.beads/.br_history/issues.20260308_181503_950163105.jsonl +0 -13
- package/.beads/.br_history/issues.20260308_192031_852553505.jsonl +0 -13
- package/.beads/.br_history/issues.20260308_193552_846920518.jsonl +0 -14
- package/.beads/.br_history/issues.20260308_194054_394884833.jsonl +0 -14
- package/.beads/.br_history/issues.20260308_194209_440472460.jsonl +0 -15
- package/.beads/.br_history/issues.20260308_195319_099391899.jsonl +0 -15
- package/.beads/.br_history/issues.20260308_195324_176987204.jsonl +0 -16
- package/.beads/.br_history/issues.20260308_195436_929114019.jsonl +0 -16
- package/.beads/.br_history/issues.20260308_195437_055808298.jsonl +0 -17
- package/.beads/.br_history/issues.20260308_195437_304297399.jsonl +0 -18
- package/.beads/.br_history/issues.20260308_195437_556007332.jsonl +0 -19
- package/.beads/.br_history/issues.20260308_195444_987209695.jsonl +0 -20
- package/.beads/.br_history/issues.20260308_195445_133350193.jsonl +0 -20
- package/.beads/.br_history/issues.20260308_195445_400185615.jsonl +0 -20
- package/.beads/.br_history/issues.20260308_195445_689886334.jsonl +0 -20
- package/.beads/.br_history/issues.20260308_195445_949947727.jsonl +0 -20
- package/.beads/.br_history/issues.20260308_195745_580473297.jsonl +0 -20
- package/.beads/.br_history/issues.20260308_195745_725920532.jsonl +0 -20
- package/.beads/.br_history/issues.20260308_195745_968227911.jsonl +0 -20
- package/.beads/.br_history/issues.20260308_195746_224276322.jsonl +0 -20
- package/.beads/.br_history/issues.20260308_200018_386890807.jsonl +0 -20
- package/ref-btcbot/.env.example +0 -19
- package/ref-btcbot/README.md +0 -3
- package/ref-btcbot/docs/bot.md +0 -72
- package/ref-btcbot/docs/skills/btcbot.backtest/SKILL.md +0 -70
- package/ref-btcbot/docs/skills/btcbot.config/SKILL.md +0 -79
- package/ref-btcbot/docs/skills/btcbot.orders/SKILL.md +0 -60
- package/ref-btcbot/docs/skills/btcbot.positions/SKILL.md +0 -54
- package/ref-btcbot/docs/skills/btcbot.risk/SKILL.md +0 -69
- package/ref-btcbot/docs/skills/btcbot.run-loop/SKILL.md +0 -63
- package/ref-btcbot/docs/skills/btcbot.run-once/SKILL.md +0 -63
- package/ref-btcbot/docs/skills/btcbot.status/SKILL.md +0 -59
- package/ref-btcbot/examples/sample-candles.json +0 -52
- package/ref-btcbot/package.json +0 -18
- package/ref-btcbot/plugin/plugin.json +0 -146
- package/ref-btcbot/src/cli.js +0 -104
- package/ref-btcbot/src/config.js +0 -80
- package/ref-btcbot/src/core/bot-runner.js +0 -78
- package/ref-btcbot/src/core/exchange-factory.js +0 -19
- package/ref-btcbot/src/core/live-exchange.js +0 -12
- package/ref-btcbot/src/core/paper-exchange.js +0 -82
- package/ref-btcbot/src/core/risk-engine.js +0 -42
- package/ref-btcbot/src/core/state-repository.js +0 -47
- package/ref-btcbot/src/services/backtest-service.js +0 -44
- package/ref-btcbot/src/services/market-data.js +0 -32
- package/ref-btcbot/src/storage/json-store.js +0 -45
- package/ref-btcbot/src/strategy/hedge-strategy.js +0 -65
- package/ref-btcbot/src/strategy/indicators.js +0 -56
- package/ref-btcbot/src/web/api.js +0 -50
- package/ref-btcbot/src/web/app.js +0 -51
- package/ref-btcbot/src/web/index.html +0 -70
- package/ref-btcbot/src/web/server.js +0 -33
- /package/.beads/.br_history/{issues.20260308_180927_477542428.jsonl.meta.json → issues.20260308_235202_180577215.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_181032_020230108.jsonl.meta.json → issues.20260308_235202_387414163.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_181032_180539413.jsonl.meta.json → issues.20260308_235202_564422794.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_181032_372621506.jsonl.meta.json → issues.20260308_235202_742600597.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_181032_565142225.jsonl.meta.json → issues.20260308_235208_133360069.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_181311_336346464.jsonl.meta.json → issues.20260308_235505_473406307.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_181444_039234498.jsonl.meta.json → issues.20260308_235505_662360489.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_181503_794764403.jsonl.meta.json → issues.20260308_235505_843935624.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_181503_950163105.jsonl.meta.json → issues.20260308_235506_044530221.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_192031_852553505.jsonl.meta.json → issues.20260309_002618_115728731.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_193552_846920518.jsonl.meta.json → issues.20260309_003748_878174586.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_194054_394884833.jsonl.meta.json → issues.20260309_004057_868755623.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_194209_440472460.jsonl.meta.json → issues.20260309_004058_512842163.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195319_099391899.jsonl.meta.json → issues.20260309_004058_994445226.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195324_176987204.jsonl.meta.json → issues.20260309_004059_475988596.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195436_929114019.jsonl.meta.json → issues.20260309_161902_566857851.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195437_055808298.jsonl.meta.json → issues.20260309_170512_277017739.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195437_304297399.jsonl.meta.json → issues.20260309_170512_477876921.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195437_556007332.jsonl.meta.json → issues.20260309_170512_664382701.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195444_987209695.jsonl.meta.json → issues.20260309_170512_859400333.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195445_133350193.jsonl.meta.json → issues.20260309_212326_082771164.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195445_400185615.jsonl.meta.json → issues.20260309_212326_245619716.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195445_689886334.jsonl.meta.json → issues.20260309_212326_403198317.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195445_949947727.jsonl.meta.json → issues.20260309_212332_539197678.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195745_580473297.jsonl.meta.json → issues.20260309_212332_731373599.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195745_725920532.jsonl.meta.json → issues.20260309_212332_928710953.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195745_968227911.jsonl.meta.json → issues.20260309_213021_341505240.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_195746_224276322.jsonl.meta.json → issues.20260309_213022_023136934.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260308_200018_386890807.jsonl.meta.json → issues.20260309_213022_400050719.jsonl.meta.json} +0 -0
package/cli/supercli.js
CHANGED
|
@@ -100,6 +100,18 @@ function output(data) {
|
|
|
100
100
|
console.log(str);
|
|
101
101
|
}
|
|
102
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
|
+
|
|
103
115
|
function outputHumanTable(rows, columns) {
|
|
104
116
|
if (!humanMode) return false;
|
|
105
117
|
if (!rows || rows.length === 0) {
|
|
@@ -574,7 +586,13 @@ async function main() {
|
|
|
574
586
|
__rawArgs: passthrough.passthroughArgs,
|
|
575
587
|
__passthroughInteractive: humanMode && isTTY,
|
|
576
588
|
},
|
|
577
|
-
{
|
|
589
|
+
{
|
|
590
|
+
server: SERVER || "",
|
|
591
|
+
config,
|
|
592
|
+
onStreamEvent: passthrough.command.adapterConfig && passthrough.command.adapterConfig.stream === "jsonl"
|
|
593
|
+
? makeStreamEmitter(`${passthrough.namespace}.passthrough`)
|
|
594
|
+
: null,
|
|
595
|
+
},
|
|
578
596
|
);
|
|
579
597
|
const duration = Date.now() - start;
|
|
580
598
|
const envelope = {
|
|
@@ -710,7 +728,13 @@ async function main() {
|
|
|
710
728
|
}
|
|
711
729
|
|
|
712
730
|
const start = Date.now();
|
|
713
|
-
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
|
+
});
|
|
714
738
|
const duration = Date.now() - start;
|
|
715
739
|
|
|
716
740
|
const envelope = {
|
package/docs/plugins.md
CHANGED
|
@@ -39,4 +39,6 @@ Default is `fail`.
|
|
|
39
39
|
- `plugins list` shows installed plugins.
|
|
40
40
|
- `plugins explore` shows discoverable plugins from `plugins/plugins.json`.
|
|
41
41
|
- `plugins install` supports local path, registry name, and direct remote git manifest installs.
|
|
42
|
+
- Plugin manifests can define `post_install` hooks (`script`, optional `runtime`, optional `timeout_ms`) that execute from the plugin folder after install.
|
|
42
43
|
- `agency-agents` is a bundled zero-command plugin. Installing it adds a remote skills provider named `agency-agents` and refreshes the local skills catalog.
|
|
44
|
+
- `visual-explainer` is a bundled zero-command plugin. Installing it adds a remote skills provider named `visual-explainer` sourced from normalized markdown skills in `javimosch/visual-explainer` and refreshes the local skills catalog.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
skill_name: cline-non-interactive
|
|
3
|
+
description: Use the supercli cline harness for unattended, JSON-streamed Cline execution.
|
|
4
|
+
tags: cline,agents,automation,streaming
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Cline Non-Interactive
|
|
8
|
+
|
|
9
|
+
Use this skill when you want to delegate a task to the local Cline CLI through SuperCLI in a way that is safe for agents and easy to parse.
|
|
10
|
+
|
|
11
|
+
## Preferred Commands
|
|
12
|
+
|
|
13
|
+
Use the wrapped commands first:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
supercli cline task run --prompt "<task>" --cwd <path> --timeout 30 --json
|
|
17
|
+
supercli cline task plan --prompt "<task>" --cwd <path> --timeout 30 --json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
- `cline task run` uses Cline act mode with `-a -y --json`
|
|
21
|
+
- `cline task plan` uses Cline plan mode with `-p -y --json`
|
|
22
|
+
- both commands emit streamed JSON event envelopes before a final completion envelope
|
|
23
|
+
|
|
24
|
+
## When To Use Which
|
|
25
|
+
|
|
26
|
+
- use `cline task run` when you want Cline to execute the task autonomously
|
|
27
|
+
- use `cline task plan` when you want a plan-first answer or want to inspect the intended approach before acting
|
|
28
|
+
- use passthrough only if you need a Cline flag or subcommand that the wrapped commands do not expose yet
|
|
29
|
+
|
|
30
|
+
## Output Contract
|
|
31
|
+
|
|
32
|
+
When `--json` is used on the SuperCLI command, output is newline-delimited:
|
|
33
|
+
|
|
34
|
+
1. zero or more streamed event envelopes:
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{"version":"1.0","command":"cline.task.run","stream":true,"data":{"type":"say","say":"task","text":"..."}}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
2. one final summary envelope:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{"version":"1.0","command":"cline.task.run","duration_ms":1234,"data":{"streamed":true,"stream":"jsonl","event_count":4,"last_event":{"type":"say","say":"completion_result","text":"..."}}}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Safety Defaults
|
|
47
|
+
|
|
48
|
+
- always pass `--cwd` so Cline operates in the intended workspace
|
|
49
|
+
- prefer `--timeout` for unattended runs
|
|
50
|
+
- avoid secrets in prompts because they can appear in logs or downstream tool output
|
|
51
|
+
- use a clean branch or a clearly scoped task when running autonomous edit flows
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
supercli cline task run --prompt "List files with more LOC in cwd" --cwd . --timeout 30 --json
|
|
57
|
+
supercli cline task plan --prompt "Plan how to split SearchForm.vue below 500 LOC" --cwd . --json
|
|
58
|
+
supercli cline cli version --json
|
|
59
|
+
```
|
package/docs/skills-catalog.md
CHANGED
|
@@ -44,3 +44,38 @@ supercli skills get agency-agents:engineering.engineering-frontend-developer
|
|
|
44
44
|
`agency-agents` maps skills one-to-one to upstream `.md` files in
|
|
45
45
|
`msitarzewski/agency-agents`. If upstream paths change or files are removed,
|
|
46
46
|
individual skills may stop resolving until reinstalled/refreshed.
|
|
47
|
+
|
|
48
|
+
## Remote Provider Example: visual-explainer
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
supercli plugins install visual-explainer --json
|
|
52
|
+
supercli skills list --catalog --provider visual-explainer --json
|
|
53
|
+
supercli skills get visual-explainer:visual-explainer.skill
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`visual-explainer` maps skills to normalized markdown files under
|
|
57
|
+
`plugins/visual-explainer-normalized` in `javimosch/visual-explainer`.
|
|
58
|
+
|
|
59
|
+
## Remote Provider Example: nullclaw
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
supercli plugins install nullclaw --json
|
|
63
|
+
supercli skills list --catalog --provider nullclaw --json
|
|
64
|
+
supercli skills get nullclaw:root.agents
|
|
65
|
+
supercli skills get nullclaw:docs.en.commands
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`nullclaw` indexes curated upstream markdown from `nullclaw/nullclaw` so agents can pull
|
|
69
|
+
project overview, operator docs, security guidance, and implementation notes on demand.
|
|
70
|
+
It also exposes the local `nullclaw` binary through wrapped commands and full passthrough.
|
|
71
|
+
|
|
72
|
+
## Local Repo Skill Example: cline-non-interactive
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
supercli skills sync --json
|
|
76
|
+
supercli skills list --catalog --provider repo --json
|
|
77
|
+
supercli skills get repo:cline-non-interactive
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
`cline-non-interactive` is a repository-local skill that teaches agents to prefer the wrapped
|
|
81
|
+
`supercli cline task run` and `supercli cline task plan` commands for unattended Cline usage.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# dcli visual overview
|
|
2
|
+
|
|
3
|
+
The architecture blueprint for dcli lives in the self-contained HTML artifact generated via the `visual-explainer` plugin.
|
|
4
|
+
|
|
5
|
+
- **File**: `~/.agent/diagrams/dcli-visual-architecture.html`
|
|
6
|
+
- **Open**: `xdg-open ~/.agent/diagrams/dcli-visual-architecture.html`
|
|
7
|
+
- **Source**: Created with `supercli skills get visual-explainer:visual-explainer.skill` guidance.
|
|
8
|
+
|
|
9
|
+
## What the HTML covers
|
|
10
|
+
|
|
11
|
+
1. **Skill routing pipeline** – Mermaid snapshot of `cli/supercli.js`, the skills catalog, plugin harness manager, server APIs, and adapters. Includes zoom, pan, and expand controls per the visual-explainer requirements.
|
|
12
|
+
2. **Runtime pillars** – Card grid summarizing the CLI runtime, catalog, plugin manager, and Express backend with file references such as `cli/plugins-manager.js` and `server/app.js`.
|
|
13
|
+
3. **Plugin & skill lifecycle** – Timeline of registry discovery → install → catalog sync → execution, tying back to commands like `supercli skills list --catalog`.
|
|
14
|
+
4. **Capability matrix** – HTML table comparing bundled harnesses, built-in adapters, remote providers, and the server API, highlighting when to use commands such as `supercli sync`.
|
|
15
|
+
5. **Operational cues** – Details blocks that document behaviors like plan building and storage fallbacks.
|
|
16
|
+
|
|
17
|
+
## Regenerating or extending
|
|
18
|
+
|
|
19
|
+
1. Ensure the `visual-explainer` provider is installed (`supercli plugins install visual-explainer`).
|
|
20
|
+
2. Re-open the reference templates (`visual-explainer:visual-explainer.templates.architecture`, `...templates.data-table`, etc.) to stay within the mandated aesthetics.
|
|
21
|
+
3. Update the HTML under `~/.agent/diagrams/` and refresh this markdown with any new sections you add. Keep this file as the only place in the repo that references the artifact’s path.
|
package/jest.config.js
CHANGED
|
@@ -6,9 +6,12 @@ module.exports = {
|
|
|
6
6
|
coverageProvider: "v8",
|
|
7
7
|
collectCoverageFrom: [
|
|
8
8
|
"cli/**/*.js",
|
|
9
|
+
"server/**/*.js",
|
|
9
10
|
"!cli/supercli.js",
|
|
10
|
-
"!cli/
|
|
11
|
+
"!cli/plugin-agency-agents.js",
|
|
12
|
+
"!server/public/**"
|
|
11
13
|
],
|
|
14
|
+
testPathIgnorePatterns: ["/node_modules/", "/ref-btcbot/"],
|
|
12
15
|
coverageDirectory: "coverage",
|
|
13
16
|
coverageReporters: ["text", "lcov", "clover"],
|
|
14
17
|
coverageThreshold: {
|
package/package.json
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "superacli",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Config-driven, AI-friendly dynamic CLI",
|
|
5
5
|
"main": "server/app.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"dcli": "./cli/supercli.js",
|
|
8
8
|
"scli": "./cli/supercli.js",
|
|
9
9
|
"superacli": "./cli/supercli.js",
|
|
10
|
-
"supercli": "./cli/supercli.js"
|
|
10
|
+
"supercli": "./cli/supercli.js",
|
|
11
|
+
"sc":"./cli/supercli.js"
|
|
11
12
|
},
|
|
12
13
|
"scripts": {
|
|
13
14
|
"start": "node server/app.js",
|
|
14
15
|
"dev": "node server/app.js",
|
|
15
|
-
"test:unit": "jest --coverage",
|
|
16
|
+
"test:unit": "jest --coverage --runInBand",
|
|
16
17
|
"test:unit:watch": "jest --watch"
|
|
17
18
|
},
|
|
18
19
|
"dependencies": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const { spawnSync } = require("child_process")
|
|
2
|
-
const { addProvider, syncCatalog } = require("
|
|
2
|
+
const { addProvider, syncCatalog } = require("../../../cli/skills-catalog")
|
|
3
3
|
|
|
4
4
|
const OWNER = "msitarzewski"
|
|
5
5
|
const REPO = "agency-agents"
|
|
@@ -82,7 +82,7 @@ function buildRemoteEntriesFromTree(treeResponse) {
|
|
|
82
82
|
return entries
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
function
|
|
85
|
+
function run() {
|
|
86
86
|
const treeResponse = fetchJson(TREE_URL)
|
|
87
87
|
const entries = buildRemoteEntriesFromTree(treeResponse)
|
|
88
88
|
if (entries.length === 0) {
|
|
@@ -106,7 +106,17 @@ function installAgencyAgentsSkillProvider() {
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
if (require.main === module) {
|
|
110
|
+
try {
|
|
111
|
+
const result = run()
|
|
112
|
+
process.stdout.write(JSON.stringify(result))
|
|
113
|
+
} catch (err) {
|
|
114
|
+
process.stderr.write(err.message)
|
|
115
|
+
process.exit(1)
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
109
119
|
module.exports = {
|
|
110
|
-
|
|
120
|
+
run,
|
|
111
121
|
buildRemoteEntriesFromTree
|
|
112
122
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# AWS CLI Plugin Harness
|
|
2
|
+
|
|
3
|
+
This plugin integrates the AWS CLI into dcli with one wrapped core command and full namespace passthrough.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
Install AWS CLI with your preferred package manager, then verify it is available:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
aws --version
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Configure credentials before running account or service commands:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
aws configure
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Available Commands
|
|
20
|
+
|
|
21
|
+
### Account Identity (Wrapped)
|
|
22
|
+
|
|
23
|
+
Returns the active caller identity via `aws sts get-caller-identity`.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
dcli aws account identity --json
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Full Passthrough
|
|
30
|
+
|
|
31
|
+
You can run any AWS CLI command through the `aws` namespace.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# List S3 buckets
|
|
35
|
+
dcli aws s3api list-buckets
|
|
36
|
+
|
|
37
|
+
# List EC2 regions
|
|
38
|
+
dcli aws ec2 describe-regions
|
|
39
|
+
|
|
40
|
+
# Show CLI help
|
|
41
|
+
dcli aws --help
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Output
|
|
45
|
+
|
|
46
|
+
Wrapped commands and passthrough responses are returned in dcli envelope format when `--json` is used with dcli-level commands.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "aws",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "AWS CLI plugin for dcli",
|
|
5
|
+
"source": "https://docs.aws.amazon.com/cli/latest/reference/",
|
|
6
|
+
"checks": [
|
|
7
|
+
{
|
|
8
|
+
"type": "binary",
|
|
9
|
+
"name": "aws"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"commands": [
|
|
13
|
+
{
|
|
14
|
+
"namespace": "aws",
|
|
15
|
+
"resource": "account",
|
|
16
|
+
"action": "identity",
|
|
17
|
+
"description": "Show AWS caller identity for the active credentials",
|
|
18
|
+
"adapter": "process",
|
|
19
|
+
"adapterConfig": {
|
|
20
|
+
"command": "aws",
|
|
21
|
+
"baseArgs": ["sts", "get-caller-identity"],
|
|
22
|
+
"parseJson": true,
|
|
23
|
+
"missingDependencyHelp": "Please install AWS CLI to use this command."
|
|
24
|
+
},
|
|
25
|
+
"args": []
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"namespace": "aws",
|
|
29
|
+
"resource": "_",
|
|
30
|
+
"action": "_",
|
|
31
|
+
"description": "Passthrough command to execute any AWS CLI command",
|
|
32
|
+
"adapter": "process",
|
|
33
|
+
"adapterConfig": {
|
|
34
|
+
"command": "aws",
|
|
35
|
+
"passthrough": true,
|
|
36
|
+
"parseJson": true,
|
|
37
|
+
"missingDependencyHelp": "Please install AWS CLI to use this command."
|
|
38
|
+
},
|
|
39
|
+
"args": []
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Azure CLI Plugin Harness
|
|
2
|
+
|
|
3
|
+
This plugin integrates the Azure CLI (`az`) into dcli with one wrapped core command and full namespace passthrough.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
Install Azure CLI with your preferred package manager, then verify it is available:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
az version
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Authenticate before running account or resource commands:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
az login
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Available Commands
|
|
20
|
+
|
|
21
|
+
### Account Show (Wrapped)
|
|
22
|
+
|
|
23
|
+
Returns the active Azure subscription via `az account show`.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
dcli az account show --json
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Full Passthrough
|
|
30
|
+
|
|
31
|
+
You can run any Azure CLI command through the `az` namespace.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# List subscriptions
|
|
35
|
+
dcli az account list
|
|
36
|
+
|
|
37
|
+
# List resource groups
|
|
38
|
+
dcli az group list
|
|
39
|
+
|
|
40
|
+
# Show CLI help
|
|
41
|
+
dcli az --help
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Output
|
|
45
|
+
|
|
46
|
+
Wrapped commands and passthrough responses are returned in dcli envelope format when `--json` is used with dcli-level commands.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "az",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Azure CLI plugin for dcli",
|
|
5
|
+
"source": "https://learn.microsoft.com/cli/azure/",
|
|
6
|
+
"checks": [
|
|
7
|
+
{
|
|
8
|
+
"type": "binary",
|
|
9
|
+
"name": "az"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"commands": [
|
|
13
|
+
{
|
|
14
|
+
"namespace": "az",
|
|
15
|
+
"resource": "account",
|
|
16
|
+
"action": "show",
|
|
17
|
+
"description": "Show the active Azure subscription",
|
|
18
|
+
"adapter": "process",
|
|
19
|
+
"adapterConfig": {
|
|
20
|
+
"command": "az",
|
|
21
|
+
"baseArgs": ["account", "show"],
|
|
22
|
+
"parseJson": true,
|
|
23
|
+
"missingDependencyHelp": "Please install Azure CLI to use this command."
|
|
24
|
+
},
|
|
25
|
+
"args": []
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"namespace": "az",
|
|
29
|
+
"resource": "_",
|
|
30
|
+
"action": "_",
|
|
31
|
+
"description": "Passthrough command to execute any Azure CLI command",
|
|
32
|
+
"adapter": "process",
|
|
33
|
+
"adapterConfig": {
|
|
34
|
+
"command": "az",
|
|
35
|
+
"passthrough": true,
|
|
36
|
+
"parseJson": true,
|
|
37
|
+
"missingDependencyHelp": "Please install Azure CLI to use this command."
|
|
38
|
+
},
|
|
39
|
+
"args": []
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "clickup",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "ClickUp CLI (cu) for AI agents - task management, sprint tracking, and project workflows",
|
|
5
|
+
"source": "https://github.com/krodak/clickup-cli",
|
|
6
|
+
"tags": ["clickup", "tasks", "project-management", "sprint", "ai-agents"],
|
|
7
|
+
"checks": [
|
|
8
|
+
{ "type": "binary", "name": "cu" }
|
|
9
|
+
],
|
|
10
|
+
"post_install": {
|
|
11
|
+
"script": "scripts/post-install.js",
|
|
12
|
+
"runtime": "node",
|
|
13
|
+
"timeout_ms": 15000
|
|
14
|
+
},
|
|
15
|
+
"post_uninstall": {
|
|
16
|
+
"script": "scripts/post-uninstall.js",
|
|
17
|
+
"runtime": "node",
|
|
18
|
+
"timeout_ms": 15000
|
|
19
|
+
},
|
|
20
|
+
"commands": [
|
|
21
|
+
{
|
|
22
|
+
"namespace": "clickup",
|
|
23
|
+
"resource": "_",
|
|
24
|
+
"action": "_",
|
|
25
|
+
"description": "Passthrough command to execute any cu CLI command",
|
|
26
|
+
"adapter": "process",
|
|
27
|
+
"adapterConfig": {
|
|
28
|
+
"command": "cu",
|
|
29
|
+
"passthrough": true,
|
|
30
|
+
"parseJson": true,
|
|
31
|
+
"timeout_ms": 15000,
|
|
32
|
+
"missingDependencyHelp": "Please install clickup-cli: npm install -g @krodak/clickup-cli, then run: cu init"
|
|
33
|
+
},
|
|
34
|
+
"args": []
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
const { spawnSync } = require("child_process")
|
|
2
|
+
const { addProvider, syncCatalog } = require("../../../cli/skills-catalog")
|
|
3
|
+
|
|
4
|
+
const OWNER = "krodak"
|
|
5
|
+
const REPO = "clickup-cli"
|
|
6
|
+
const REF = "main"
|
|
7
|
+
const SOURCE_REPO = `https://github.com/${OWNER}/${REPO}`
|
|
8
|
+
const TREE_URL = `https://api.github.com/repos/${OWNER}/${REPO}/git/trees/${REF}?recursive=1`
|
|
9
|
+
const RAW_BASE_URL = `https://raw.githubusercontent.com/${OWNER}/${REPO}/${REF}`
|
|
10
|
+
|
|
11
|
+
const SKILLS_PATH = "skills/clickup-cli/SKILL.md"
|
|
12
|
+
|
|
13
|
+
function integrationError(message, suggestions = []) {
|
|
14
|
+
return Object.assign(new Error(message), {
|
|
15
|
+
code: 105,
|
|
16
|
+
type: "integration_error",
|
|
17
|
+
recoverable: true,
|
|
18
|
+
suggestions
|
|
19
|
+
})
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function fetchJson(url) {
|
|
23
|
+
const res = spawnSync("curl", ["-fsSL", url], { encoding: "utf-8", timeout: 15000 })
|
|
24
|
+
if (res.error) {
|
|
25
|
+
throw integrationError(`Failed to fetch clickup-cli skill: ${res.error.message}`, ["Check internet connectivity", "Retry: supercli plugins install clickup"])
|
|
26
|
+
}
|
|
27
|
+
if (res.status !== 0) {
|
|
28
|
+
throw integrationError(`Failed to fetch clickup-cli skill: ${(res.stderr || "").trim() || `exit ${res.status}`}`, ["Check internet connectivity", "Retry: supercli plugins install clickup"])
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
return JSON.parse((res.stdout || "").trim() || "{}")
|
|
32
|
+
} catch (err) {
|
|
33
|
+
throw integrationError(`Invalid clickup-cli skill response: ${err.message}`)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function run() {
|
|
38
|
+
// Fetch the skill file directly
|
|
39
|
+
const skillUrl = `${RAW_BASE_URL}/${SKILLS_PATH}`
|
|
40
|
+
const res = spawnSync("curl", ["-fsSL", skillUrl], { encoding: "utf-8", timeout: 15000 })
|
|
41
|
+
|
|
42
|
+
if (res.error || res.status !== 0) {
|
|
43
|
+
throw integrationError(`Failed to fetch clickup-cli SKILL.md: ${res.error?.message || `exit ${res.status}`}`, ["Check internet connectivity", "Retry: supercli plugins install clickup"])
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const markdown = (res.stdout || "").trim()
|
|
47
|
+
|
|
48
|
+
// Parse frontmatter for name and description
|
|
49
|
+
let name = "ClickUp CLI"
|
|
50
|
+
let description = "Use when managing ClickUp tasks, sprints, or comments via the cu CLI tool"
|
|
51
|
+
|
|
52
|
+
if (markdown.startsWith("---\n")) {
|
|
53
|
+
const end = markdown.indexOf("\n---\n", 4)
|
|
54
|
+
if (end > 0) {
|
|
55
|
+
const frontmatter = markdown.slice(4, end)
|
|
56
|
+
for (const line of frontmatter.split("\n")) {
|
|
57
|
+
const idx = line.indexOf(":")
|
|
58
|
+
if (idx > 0) {
|
|
59
|
+
const key = line.slice(0, idx).trim()
|
|
60
|
+
const value = line.slice(idx + 1).trim().replace(/^"|"$/g, "")
|
|
61
|
+
if (key === "name") name = value
|
|
62
|
+
if (key === "description") description = value
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Add as a remote static provider with a single skill entry
|
|
69
|
+
addProvider({
|
|
70
|
+
name: "clickup",
|
|
71
|
+
type: "remote_static",
|
|
72
|
+
enabled: true,
|
|
73
|
+
source_repo: SOURCE_REPO,
|
|
74
|
+
ref: REF,
|
|
75
|
+
entries: [
|
|
76
|
+
{
|
|
77
|
+
id: "clickup",
|
|
78
|
+
name: name,
|
|
79
|
+
description: description,
|
|
80
|
+
path: SKILLS_PATH,
|
|
81
|
+
source_url: skillUrl
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
})
|
|
85
|
+
|
|
86
|
+
const index = syncCatalog()
|
|
87
|
+
return {
|
|
88
|
+
provider: "clickup",
|
|
89
|
+
entries: 1,
|
|
90
|
+
synced_skills: Array.isArray(index.skills) ? index.skills.length : 0
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (require.main === module) {
|
|
95
|
+
try {
|
|
96
|
+
const result = run()
|
|
97
|
+
process.stdout.write(JSON.stringify(result))
|
|
98
|
+
} catch (err) {
|
|
99
|
+
process.stderr.write(err.message)
|
|
100
|
+
process.exit(1)
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
module.exports = {
|
|
105
|
+
run
|
|
106
|
+
}
|
|
107
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const { removeProvider, syncCatalog } = require("../../../cli/skills-catalog")
|
|
2
|
+
|
|
3
|
+
function run() {
|
|
4
|
+
const removed = removeProvider("clickup")
|
|
5
|
+
|
|
6
|
+
if (removed) {
|
|
7
|
+
// Re-sync catalog to remove clickup skills
|
|
8
|
+
syncCatalog()
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return {
|
|
12
|
+
provider: "clickup",
|
|
13
|
+
removed: removed
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (require.main === module) {
|
|
18
|
+
try {
|
|
19
|
+
const result = run()
|
|
20
|
+
process.stdout.write(JSON.stringify(result))
|
|
21
|
+
} catch (err) {
|
|
22
|
+
process.stderr.write(err.message)
|
|
23
|
+
process.exit(1)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
module.exports = {
|
|
28
|
+
run
|
|
29
|
+
}
|
|
30
|
+
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Cline Plugin
|
|
2
|
+
|
|
3
|
+
This plugin integrates the Cline CLI into dcli with rich non-interactive task wrappers and full namespace passthrough.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
Ensure `cline` is available on your machine:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
cline --version
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Wrapped Commands
|
|
14
|
+
|
|
15
|
+
### CLI Version
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
supercli cline cli version --json
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Non-Interactive Task Run
|
|
22
|
+
|
|
23
|
+
Runs Cline in act mode with `-a -y --json` and streams one JSON event envelope per line before the final summary envelope.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
supercli cline task run --prompt "List files with most LOC in cwd" --cwd . --timeout 30 --json
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Non-Interactive Task Plan
|
|
30
|
+
|
|
31
|
+
Runs Cline in plan mode with `-p -y --json` and the same streaming behavior.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
supercli cline task plan --prompt "Plan a refactor of the auth module" --cwd . --json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Full Passthrough
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
supercli cline --help
|
|
41
|
+
supercli cline -a -y --json "List files with more LOC in cwd"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Notes
|
|
45
|
+
|
|
46
|
+
- Prefer the wrapped `cline task run` and `cline task plan` commands for agent automation.
|
|
47
|
+
- Those wrappers bake in the documented headless-safe defaults: `--json` plus `-y`, with `-a` or `-p` selected for you.
|
|
48
|
+
- Passthrough remains available when you need flags or flows not yet wrapped.
|