@shadowob/cloud 1.1.6 → 1.1.8
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/README.md +159 -11
- package/dist/{agent-browser-CERTMCDL.js → agent-browser-EI7FIK3X.js} +3 -3
- package/dist/{agent-browser-CIRZRIY4.js → agent-browser-YXE4ES6Q.js} +3 -3
- package/dist/{agent-pack-LF3O5TR4.js → agent-pack-35TFCZKP.js} +1 -1
- package/dist/{agent-pack-RQT27V7R.js → agent-pack-UOG6ZAUL.js} +1 -1
- package/dist/agentmemory-KP5O7GHB.js +101 -0
- package/dist/agentmemory-UV74POU5.js +100 -0
- package/dist/{airtable-BG2Q75G2.js → airtable-CXXS3YUN.js} +3 -3
- package/dist/{airtable-JCQXFM5D.js → airtable-YZ5JR5JC.js} +3 -3
- package/dist/{alipay-TZQI34RB.js → alipay-WED5P3XC.js} +3 -3
- package/dist/{alipay-MZX2XCDB.js → alipay-WJTVREMG.js} +3 -3
- package/dist/{amap-KPCLZYYL.js → amap-AIN23TQ7.js} +3 -3
- package/dist/{amap-5RQB3VGC.js → amap-F6GF7QKB.js} +3 -3
- package/dist/{atlassian-LGOEWYC7.js → atlassian-G6PM6UVM.js} +3 -3
- package/dist/{atlassian-TVS2A4IU.js → atlassian-IDR2NPJC.js} +3 -3
- package/dist/{baidu-appbuilder-QRRL3ETM.js → baidu-appbuilder-JKQIA5TG.js} +3 -3
- package/dist/{baidu-appbuilder-6UMESXHW.js → baidu-appbuilder-KVMCIFYH.js} +3 -3
- package/dist/{baidu-maps-HEPMVP5D.js → baidu-maps-GWMXV6YT.js} +3 -3
- package/dist/{baidu-maps-HXC4FBVP.js → baidu-maps-ZXGT6QZM.js} +3 -3
- package/dist/{baidu-netdisk-G5Q6B5NH.js → baidu-netdisk-J5SLQVWW.js} +3 -3
- package/dist/{baidu-netdisk-RS2K5W2M.js → baidu-netdisk-PONM3DY6.js} +3 -3
- package/dist/{baidu-smartprogram-JHD3XWF6.js → baidu-smartprogram-WJ5JMO6V.js} +3 -3
- package/dist/{baidu-smartprogram-EWTK5WKK.js → baidu-smartprogram-Y5WBR7RX.js} +3 -3
- package/dist/{browserbase-IUIYVYI7.js → browserbase-CGVQHRC4.js} +3 -3
- package/dist/{browserbase-JFO2PCIA.js → browserbase-PVWYTEZC.js} +3 -3
- package/dist/{canva-3YOFL7JS.js → canva-COCBQAT2.js} +3 -3
- package/dist/{canva-FMYN65SM.js → canva-RSTJSEX5.js} +3 -3
- package/dist/{chunk-ULOJLXQV.js → chunk-3CT6RQNM.js} +766 -482
- package/dist/{chunk-SIDBK5SZ.js → chunk-4YO3NA26.js} +1 -1
- package/dist/{chunk-RECNVWMT.js → chunk-6V7MW4HU.js} +17 -3
- package/dist/{chunk-2FWJSE6Z.js → chunk-EVV774KS.js} +1 -1
- package/dist/{chunk-SVMXSIMG.js → chunk-F6CQ6GAG.js} +2 -1
- package/dist/{chunk-JUPAE5IA.js → chunk-OL5VH6RN.js} +72 -69
- package/dist/{chunk-POSVEKIY.js → chunk-OYY64ZSX.js} +17 -3
- package/dist/{chunk-FSW4TNHN.js → chunk-P5Y6F2NH.js} +766 -482
- package/dist/{chunk-EEFMJYKB.js → chunk-PSK2SYZ3.js} +2 -1
- package/dist/{chunk-HRTBOZ7O.js → chunk-PYJRFKPN.js} +1 -1
- package/dist/{chunk-JY2HTT7Q.js → chunk-RMDY3W4V.js} +6 -0
- package/dist/{chunk-I3NRNCDR.js → chunk-X2SREECR.js} +6 -6
- package/dist/{chunk-XFJX4NWN.js → chunk-X5VOIA72.js} +6 -6
- package/dist/{chunk-CTNUKOQE.js → chunk-Y5BJ3EW2.js} +6 -0
- package/dist/{chunk-IXN3FU5J.js → chunk-Y6BKVDG7.js} +1 -1
- package/dist/{chunk-6P2K6QZR.js → chunk-ZGMWSSCC.js} +72 -69
- package/dist/{claude-plugin-577TAQVS.js → claude-plugin-FPN32WMT.js} +1 -1
- package/dist/{claude-plugin-L3MXJJ6J.js → claude-plugin-IYHOVTVL.js} +1 -1
- package/dist/cli.js +930 -149
- package/dist/{cloudflare-RDFPKMM5.js → cloudflare-U3RHJJKK.js} +3 -3
- package/dist/{cloudflare-HBBABPK6.js → cloudflare-ZHN7UGPX.js} +3 -3
- package/dist/{cnb-FLP3QX46.js → cnb-AMXC5I7D.js} +3 -3
- package/dist/{cnb-YAVVEYFB.js → cnb-P3IZ4JTD.js} +3 -3
- package/dist/console/index.html +1 -1
- package/dist/console/static/css/index.f4563d95.css +1 -0
- package/dist/console/static/js/index.020abc71.js +1 -0
- package/dist/{coze-E6VGRNLV.js → coze-66RYMKVB.js} +3 -3
- package/dist/{coze-C6PMDPBI.js → coze-YE3BINXP.js} +3 -3
- package/dist/{dashboard.command-SCAAQ23X.js → dashboard.command-BRPZCZER.js} +1 -1
- package/dist/{dashboard.command-H5DIGLUR.js → dashboard.command-GUHSJ2CN.js} +1 -1
- package/dist/{dingtalk-JNRNRN7E.js → dingtalk-4RFQG7N2.js} +3 -3
- package/dist/{dingtalk-WZGGIAHJ.js → dingtalk-VNFKXD2P.js} +3 -3
- package/dist/{douyin-miniprogram-AIJPPIZH.js → douyin-miniprogram-UEALAGOS.js} +3 -3
- package/dist/{douyin-miniprogram-HCYZ5NBW.js → douyin-miniprogram-UNB6UO2I.js} +3 -3
- package/dist/{figma-2YYNSCDX.js → figma-A264OWU5.js} +3 -3
- package/dist/{figma-RYOBMENP.js → figma-Y4TGSDZP.js} +3 -3
- package/dist/{firebase-OYSY6HPT.js → firebase-AI3MAGYG.js} +3 -3
- package/dist/{firebase-2IJDDBXX.js → firebase-ZGQARUIH.js} +3 -3
- package/dist/{firecrawl-2T3SBUW7.js → firecrawl-2JW7DMTH.js} +3 -3
- package/dist/{firecrawl-IYYXLAZM.js → firecrawl-UURQ5P5N.js} +3 -3
- package/dist/{flyai-QS5Q6FJR.js → flyai-EJGDMYFA.js} +3 -3
- package/dist/{flyai-7FJ4TRAG.js → flyai-ZFMZBBHJ.js} +3 -3
- package/dist/{gitagent-MWI75OIX.js → gitagent-5SDBYFNA.js} +1 -1
- package/dist/{gitagent-YBMWY7NZ.js → gitagent-ODXPCR4X.js} +1 -1
- package/dist/{gitee-3N7OFOM7.js → gitee-5UMJ4BC7.js} +3 -3
- package/dist/{gitee-KVNK6KLZ.js → gitee-D6NAZTCO.js} +3 -3
- package/dist/{github-LUEC2LID.js → github-JBLDKIA3.js} +3 -3
- package/dist/{github-XRO5Z3GC.js → github-PZQAVEZP.js} +3 -3
- package/dist/{google-ads-VPKWTX67.js → google-ads-BIFQOJ5M.js} +3 -3
- package/dist/{google-ads-A3QAJI4D.js → google-ads-QU3LJE4O.js} +3 -3
- package/dist/{google-analytics-C4UR5ZR2.js → google-analytics-7VZ6YZVA.js} +3 -3
- package/dist/{google-analytics-XDYZA2B7.js → google-analytics-HXMPCL5V.js} +3 -3
- package/dist/{google-workspace-YX35SHHX.js → google-workspace-6SEBJ4VA.js} +2 -2
- package/dist/{google-workspace-LL3EWVHH.js → google-workspace-L3AMJLCF.js} +2 -2
- package/dist/{huawei-xiaoyi-KPWLTSHB.js → huawei-xiaoyi-C6QIJMPM.js} +3 -3
- package/dist/{huawei-xiaoyi-6BSMGJHR.js → huawei-xiaoyi-JGLXWU5P.js} +3 -3
- package/dist/{hubspot-FTIEMNZO.js → hubspot-LACJGE6D.js} +3 -3
- package/dist/{hubspot-DIUHGEDI.js → hubspot-XWPRO4KZ.js} +3 -3
- package/dist/{huggingface-UUXK2RHK.js → huggingface-26QQZK4C.js} +3 -3
- package/dist/{huggingface-MJCOXA7E.js → huggingface-CQICNA2R.js} +3 -3
- package/dist/index.d.ts +1338 -1
- package/dist/index.js +1364 -226
- package/dist/{inference-ai-image-generation-PXV6IG4U.js → inference-ai-image-generation-5KYIUWT6.js} +3 -3
- package/dist/{inference-ai-image-generation-CMI6R5T3.js → inference-ai-image-generation-J2NYDCLZ.js} +3 -3
- package/dist/{inference-sh-7AZOLEFI.js → inference-sh-5SWQTK73.js} +3 -3
- package/dist/{inference-sh-ABQOD3YF.js → inference-sh-PTQF6T3R.js} +3 -3
- package/dist/{init.command-WGKN3GC6.js → init.command-C7UKPK2Y.js} +3 -3
- package/dist/{init.command-775GLXTC.js → init.command-UNL66BMR.js} +3 -3
- package/dist/{klaviyo-LDPBWBSS.js → klaviyo-4UNPMBFT.js} +3 -3
- package/dist/{klaviyo-6K5YEFNH.js → klaviyo-SLYNEULT.js} +3 -3
- package/dist/{kuaidi100-HGFM5VK2.js → kuaidi100-HZKV5AIS.js} +3 -3
- package/dist/{kuaidi100-UHPFCVXP.js → kuaidi100-ZQUW7GHH.js} +3 -3
- package/dist/lark-HQUZNHDI.js +382 -0
- package/dist/lark-PAV7XWJS.js +381 -0
- package/dist/{linear-T4ORUP7N.js → linear-PYGQ5SLK.js} +3 -3
- package/dist/{linear-7QFSFPOD.js → linear-VJLYNTUF.js} +3 -3
- package/dist/{lovart-PDUXRUHJ.js → lovart-KC6SVNAJ.js} +3 -3
- package/dist/{lovart-QO3SK55T.js → lovart-WVKY4RR4.js} +3 -3
- package/dist/{meta-ads-SCNFI45S.js → meta-ads-E6XT33GI.js} +3 -3
- package/dist/{meta-ads-V6XPZWX3.js → meta-ads-RJ6DWRYN.js} +3 -3
- package/dist/{miclaw-TPPPS2WN.js → miclaw-4BA3A2YN.js} +3 -3
- package/dist/{miclaw-5CNTW7VV.js → miclaw-LUV6DCHX.js} +3 -3
- package/dist/{model-provider-KFB76XV5.js → model-provider-SYXJZ3JD.js} +1 -1
- package/dist/{model-provider-AVSFJSZP.js → model-provider-U7NEYA3Y.js} +1 -1
- package/dist/nature-skills-G76ABIWZ.js +143 -0
- package/dist/nature-skills-SQHMFXKT.js +142 -0
- package/dist/{notion-WFA7KGZZ.js → notion-2JZAKOFP.js} +1 -1
- package/dist/{notion-FZK76MN2.js → notion-O3NO5TJH.js} +1 -1
- package/dist/{oceanengine-3JZUS3PP.js → oceanengine-D23UZGVB.js} +3 -3
- package/dist/{oceanengine-5BRIJVJE.js → oceanengine-WDK2OXX5.js} +3 -3
- package/dist/{opencli-PFXHGCS2.js → opencli-36P63YNU.js} +3 -3
- package/dist/{opencli-VIGRJTGH.js → opencli-SUHDFR33.js} +3 -3
- package/dist/{paypal-Z5JYHIWD.js → paypal-K27SUW3B.js} +3 -3
- package/dist/{paypal-33UADIPR.js → paypal-OPZ3KOV5.js} +3 -3
- package/dist/{playwright-SQAQ3DZG.js → playwright-2ULT3NIC.js} +3 -3
- package/dist/{playwright-MG5WHK47.js → playwright-3Q7LBILG.js} +3 -3
- package/dist/{plugins-HZBWK3WQ.js → plugins-2MITZ4ZD.js} +2 -2
- package/dist/{plugins-I4GD5SZX.js → plugins-UK2QWD6G.js} +2 -2
- package/dist/{posthog-MU5MAJOQ.js → posthog-E3EHXLAN.js} +3 -3
- package/dist/{posthog-RJRRKDWB.js → posthog-KPJVLGX6.js} +3 -3
- package/dist/{salesforce-34FVIJTG.js → salesforce-FGPNG7FB.js} +3 -3
- package/dist/{salesforce-3QZ6OFVO.js → salesforce-TVHISKBC.js} +3 -3
- package/dist/{sentry-PIWW46VA.js → sentry-BZ3J3MZM.js} +3 -3
- package/dist/{sentry-MCIRMACU.js → sentry-XC57YRAJ.js} +3 -3
- package/dist/{seo-suite-WJXMA3S4.js → seo-suite-2MDEDLAB.js} +3 -3
- package/dist/{seo-suite-4SQ3I67Q.js → seo-suite-U75O3QP6.js} +3 -3
- package/dist/{serve.command-2AHJI665.js → serve.command-G5RVQFUD.js} +3 -3
- package/dist/{serve.command-Q46LHQG6.js → serve.command-PYGDG7K3.js} +3 -3
- package/dist/{shadowob-PRSMI5MW.js → shadowob-3QZ7DLDW.js} +158 -31
- package/dist/{shadowob-JELOWHWX.js → shadowob-CJLOEKFP.js} +158 -31
- package/dist/{sherlock-2PKY2E2Y.js → sherlock-CQFUHKDH.js} +3 -3
- package/dist/{sherlock-C5ZWPPVT.js → sherlock-DONK2I6E.js} +3 -3
- package/dist/{shopify-GL3NFVGE.js → shopify-NO5GI3WD.js} +3 -3
- package/dist/{shopify-R4G3UXM6.js → shopify-VW2KLKH5.js} +3 -3
- package/dist/{skill-discovery-YPXXV622.js → skill-discovery-6JEPPKKM.js} +3 -3
- package/dist/{skill-discovery-7INAUP4D.js → skill-discovery-PWRAVGIS.js} +3 -3
- package/dist/skills/shadowob-cli/SKILL.md +33 -22
- package/dist/{stripe-LJNPQ3CQ.js → stripe-HCNCKG4C.js} +1 -1
- package/dist/{stripe-C22RR4ZS.js → stripe-IU3KTJ4H.js} +1 -1
- package/dist/{supabase-IRNQ54FJ.js → supabase-KRL7JW2D.js} +3 -3
- package/dist/{supabase-N4ONFJNQ.js → supabase-TYEBTZNO.js} +3 -3
- package/dist/{taobao-aipaas-LRR4GMO3.js → taobao-aipaas-PEUIDOYP.js} +3 -3
- package/dist/{taobao-aipaas-RVKORSF4.js → taobao-aipaas-SA5E4MZA.js} +3 -3
- package/dist/{tapd-TMQRSMFG.js → tapd-6DDIUPVQ.js} +3 -3
- package/dist/{tapd-3JPVJ7XH.js → tapd-OTYLSZGY.js} +3 -3
- package/dist/{tencent-ads-UHC6OPBV.js → tencent-ads-OW2TAMH5.js} +3 -3
- package/dist/{tencent-ads-IGD33LO7.js → tencent-ads-XTQZ27YT.js} +3 -3
- package/dist/{tencent-docs-C3A4J3CJ.js → tencent-docs-6D6A2VCO.js} +3 -3
- package/dist/{tencent-docs-O2SC4FHL.js → tencent-docs-K3TMUIWD.js} +3 -3
- package/dist/{tencent-maps-OQOKHVW2.js → tencent-maps-IZYWITJZ.js} +3 -3
- package/dist/{tencent-maps-HMMWMNF4.js → tencent-maps-SWI7CLQY.js} +3 -3
- package/dist/text-to-cad-B2UP6PKA.js +192 -0
- package/dist/text-to-cad-I4B6VBFV.js +193 -0
- package/dist/{vercel-KOXDDTHX.js → vercel-CCKRC76D.js} +3 -3
- package/dist/{vercel-OLNVDWMG.js → vercel-SBGEMIJJ.js} +3 -3
- package/dist/{webflow-OMJKZM54.js → webflow-C3EHNNSN.js} +3 -3
- package/dist/{webflow-FULU5Q2I.js → webflow-ZFBJH4CR.js} +3 -3
- package/dist/{wechat-miniprogram-skyline-KYCDMQNW.js → wechat-miniprogram-skyline-VNCRERHX.js} +3 -3
- package/dist/{wechat-miniprogram-skyline-VR4FVIQL.js → wechat-miniprogram-skyline-Z5JQUV5Q.js} +3 -3
- package/dist/{wechat-pay-BCMAJ6UW.js → wechat-pay-RPDKPUEB.js} +3 -3
- package/dist/{wechat-pay-YQQKXVUI.js → wechat-pay-XVDGJRF2.js} +3 -3
- package/dist/{wonda-NGWIORYN.js → wonda-EL2P44S7.js} +3 -3
- package/dist/{wonda-RBABXFNM.js → wonda-XK5JK4X3.js} +3 -3
- package/dist/{wordpress-woocommerce-RNA5HB3N.js → wordpress-woocommerce-4MEE5A2M.js} +3 -3
- package/dist/{wordpress-woocommerce-RDIUTHYT.js → wordpress-woocommerce-6ECNM2QU.js} +3 -3
- package/dist/{wps-LUWHMZQQ.js → wps-E4OZEMOF.js} +3 -3
- package/dist/{wps-DAEFQHDE.js → wps-JNQUC4JS.js} +3 -3
- package/dist/{yuque-HCHTJWNI.js → yuque-GLAAOS7X.js} +3 -3
- package/dist/{yuque-KRH5O74J.js → yuque-MEF6VFLJ.js} +3 -3
- package/images/RUNNERS.md +15 -0
- package/images/cc-connect-runner/entrypoint.mjs +228 -0
- package/images/claude-runner/RUNNER.md +5 -3
- package/images/codex-runner/RUNNER.md +5 -3
- package/images/gemini-runner/RUNNER.md +5 -2
- package/images/hermes-runner/RUNNER.md +4 -2
- package/images/hermes-runner/entrypoint.mjs +269 -1
- package/images/openclaw-runner/Dockerfile +1 -0
- package/images/openclaw-runner/RUNNER.md +3 -0
- package/images/openclaw-runner/entrypoint.mjs +249 -1
- package/images/openclaw-runner/warm-runtime-deps.mjs +1 -3
- package/images/opencode-runner/RUNNER.md +5 -3
- package/package.json +3 -3
- package/templates/agent-marketplace-buddy.template.json +4 -1
- package/templates/bmad-method-buddy.template.json +4 -1
- package/templates/code-trainer.template.json +331 -0
- package/templates/gstack-buddy.template.json +4 -1
- package/templates/little-match-girl.template.json +10 -3
- package/dist/console/static/css/index.7f91f806.css +0 -1
- package/dist/console/static/js/index.4487e1ff.js +0 -1
- package/dist/lark-6LNA3LUQ.js +0 -103
- package/dist/lark-URVBZNS4.js +0 -102
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
connectorManifest,
|
|
4
4
|
installedCheck,
|
|
5
5
|
npmGlobalDependency
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-PSK2SYZ3.js";
|
|
7
|
+
import "./chunk-OYY64ZSX.js";
|
|
8
8
|
import {
|
|
9
9
|
defineConnectorPlugin
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-RMDY3W4V.js";
|
|
11
11
|
import "./chunk-R5U7XKVJ.js";
|
|
12
12
|
|
|
13
13
|
// src/plugins/skill-discovery/index.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: shadowob
|
|
3
|
-
description: "Use when live Shadow context or actions are needed: channel/DM history, pins, members, server/channel/workspace/shop/app/
|
|
3
|
+
description: "Use when live Shadow context or actions are needed: channel/DM history, pins, members, server/channel/workspace/shop/app/buddy data, or sending/managing Shadow content via the shadowob CLI."
|
|
4
4
|
metadata:
|
|
5
5
|
{
|
|
6
6
|
"openclaw":
|
|
@@ -18,7 +18,7 @@ allowed-tools: ["exec"]
|
|
|
18
18
|
Use `shadowob` CLI to interact with Shadow servers.
|
|
19
19
|
|
|
20
20
|
Activate this skill when you need current Shadow context, such as recent channel or DM history,
|
|
21
|
-
pinned messages, member/server/channel state, workspace/shop/app/
|
|
21
|
+
pinned messages, member/server/channel state, workspace/shop/app/buddy data, or when you need to
|
|
22
22
|
send or manage Shadow content. Prefer narrow `--json` reads before acting.
|
|
23
23
|
|
|
24
24
|
## Quickstart
|
|
@@ -78,13 +78,13 @@ shadowob servers discover --json
|
|
|
78
78
|
|
|
79
79
|
```bash
|
|
80
80
|
# List channels
|
|
81
|
-
shadowob channels list --server
|
|
81
|
+
shadowob channels list --server <server> --json
|
|
82
82
|
|
|
83
83
|
# Get channel
|
|
84
84
|
shadowob channels get <channel-id> --json
|
|
85
85
|
|
|
86
86
|
# Create/Delete
|
|
87
|
-
shadowob channels create --server
|
|
87
|
+
shadowob channels create --server <server> --name <name> [--type text] --json
|
|
88
88
|
shadowob channels delete <channel-id>
|
|
89
89
|
|
|
90
90
|
# Messages
|
|
@@ -141,29 +141,29 @@ shadowob dms send <dm-channel-id> --content "text" --json
|
|
|
141
141
|
shadowob dms delete <dm-channel-id>
|
|
142
142
|
```
|
|
143
143
|
|
|
144
|
-
##
|
|
144
|
+
## Buddies
|
|
145
145
|
|
|
146
146
|
```bash
|
|
147
|
-
# List
|
|
148
|
-
shadowob
|
|
147
|
+
# List buddies
|
|
148
|
+
shadowob buddies list --json
|
|
149
149
|
|
|
150
|
-
# Get
|
|
151
|
-
shadowob
|
|
150
|
+
# Get buddy
|
|
151
|
+
shadowob buddies get <buddy-id> --json
|
|
152
152
|
|
|
153
153
|
# Create/Update/Delete
|
|
154
|
-
shadowob
|
|
155
|
-
shadowob
|
|
156
|
-
shadowob
|
|
154
|
+
shadowob buddies create --name <name> --username <username> [--display-name <name>] [--avatar-url <url>] --json
|
|
155
|
+
shadowob buddies update <buddy-id> [--name <name>] [--display-name <name>] --json
|
|
156
|
+
shadowob buddies delete <buddy-id>
|
|
157
157
|
|
|
158
158
|
# Control
|
|
159
|
-
shadowob
|
|
160
|
-
shadowob
|
|
159
|
+
shadowob buddies start <buddy-id>
|
|
160
|
+
shadowob buddies stop <buddy-id>
|
|
161
161
|
|
|
162
162
|
# Token
|
|
163
|
-
shadowob
|
|
163
|
+
shadowob buddies token <buddy-id> --json
|
|
164
164
|
|
|
165
165
|
# Config
|
|
166
|
-
shadowob
|
|
166
|
+
shadowob buddies config <buddy-id> --json
|
|
167
167
|
```
|
|
168
168
|
|
|
169
169
|
## Workspace
|
|
@@ -211,7 +211,6 @@ shadowob shop me get --json
|
|
|
211
211
|
shadowob shop products list <server-id> [--status active] [--keyword <text>] [--limit <n>] --json
|
|
212
212
|
shadowob shop products list-by-shop <shop-id> [--status active] [--limit <n>] --json
|
|
213
213
|
shadowob shop products get <server-id> <product-id> --json
|
|
214
|
-
shadowob shop products context <product-id> --json
|
|
215
214
|
shadowob shop products purchase <shop-id> <product-id> --idempotency-key <unique-operation-id> --json
|
|
216
215
|
|
|
217
216
|
# Offers, deliverables, and shop assets
|
|
@@ -246,7 +245,7 @@ shadowob commerce cards list --channel-id <channel-id> [--keyword <text>] --json
|
|
|
246
245
|
shadowob commerce cards purchase <message-id> <card-id> --idempotency-key <unique-operation-id> --json
|
|
247
246
|
|
|
248
247
|
# Purchases, delivery, protected files, and community assets
|
|
249
|
-
shadowob commerce entitlements list [--server
|
|
248
|
+
shadowob commerce entitlements list [--server <server>] --json
|
|
250
249
|
shadowob commerce entitlements get <entitlement-id> --json
|
|
251
250
|
shadowob commerce entitlements verify <entitlement-id> --json
|
|
252
251
|
shadowob commerce paid-files open <file-id> --json
|
|
@@ -277,17 +276,29 @@ shadowob commerce gifts send --recipient-user-id <user-id> --assets '<json-array
|
|
|
277
276
|
# Server App integrations
|
|
278
277
|
shadowob app list --server <server-id-or-slug> --json
|
|
279
278
|
shadowob app preview --server <server-id-or-slug> --manifest-url <manifest-url> --json
|
|
279
|
+
shadowob app install --server <server-id-or-slug> --manifest-url <manifest-url> --json
|
|
280
|
+
shadowob app uninstall <app-key> --server <server-id-or-slug>
|
|
280
281
|
shadowob app discover --server <server-id-or-slug> --json
|
|
281
282
|
shadowob app inspect <app-key> --server <server-id-or-slug> --json
|
|
282
283
|
shadowob app skills <app-key> --server <server-id-or-slug>
|
|
283
|
-
shadowob app call <app-key> <command> --server <server-id-or-slug> --json-input '<raw-command-input-json>' --json
|
|
284
|
+
shadowob app call <app-key> <command> --server <server-id-or-slug> --channel-id <channel-id> --json-input '<raw-command-input-json>' --json
|
|
285
|
+
shadowob app call <app-key> <command> --server <server-id-or-slug> --help
|
|
286
|
+
shadowob app call <app-key> <command> --server <server-id-or-slug> --file <path> --json-input '<raw-command-input-json>' --json
|
|
287
|
+
shadowob app events <app-key> --server <server-id-or-slug> --json
|
|
284
288
|
```
|
|
285
289
|
|
|
286
290
|
For server App commands, use the `shadowob app` CLI path only. Do not use curl, fetch, raw HTTP
|
|
287
291
|
routes, or the JavaScript SDK to call server App commands. Pass the command input object directly
|
|
288
292
|
to `--json-input`, for example `{"title":"Example","priority":"high"}`; the CLI wraps the HTTP
|
|
289
293
|
request for you and binds Shadow OAuth identity, server membership, App grants, and command policy.
|
|
290
|
-
|
|
294
|
+
Use progressive disclosure: start with `shadowob app skills` or `shadowob app discover`, then call
|
|
295
|
+
`shadowob app call <app-key> <command> --server <server> --help` only when you need that command's
|
|
296
|
+
full schema, file-upload support, or examples. For realtime app updates, subscribe with
|
|
297
|
+
`shadowob app events <app-key> --server <server> --json` instead of polling.
|
|
298
|
+
When a channel message mentions a server App, use the mentioned app key/server id directly and pass
|
|
299
|
+
the current channel id with `--channel-id` when available. If a server App command requires
|
|
300
|
+
approval, do not send a chat form or call the approval endpoint yourself as a Buddy. Wait for a
|
|
301
|
+
person to confirm the Shadow approval popup, then retry the original command.
|
|
291
302
|
|
|
292
303
|
```bash
|
|
293
304
|
# Legacy workspace apps
|
|
@@ -404,7 +415,7 @@ shadowob marketplace contracts extend <contract-id> --hours <n> --json
|
|
|
404
415
|
|
|
405
416
|
```bash
|
|
406
417
|
# Upload a file
|
|
407
|
-
shadowob media upload --file <path> [--server
|
|
418
|
+
shadowob media upload --file <path> [--server <server>] [--channel-id <id>] --json
|
|
408
419
|
|
|
409
420
|
# Download a file
|
|
410
421
|
shadowob media download <file-url> [--output <path>]
|
|
@@ -414,7 +425,7 @@ shadowob media download <file-url> [--output <path>]
|
|
|
414
425
|
|
|
415
426
|
```bash
|
|
416
427
|
# Search messages
|
|
417
|
-
shadowob search messages --query <text> [--server
|
|
428
|
+
shadowob search messages --query <text> [--server <server>] [--channel-id <id>] [--author-id <id>] [--after <date>] [--before <date>] [--has-attachments] [--limit <n>] --json
|
|
418
429
|
```
|
|
419
430
|
|
|
420
431
|
## Listen (Real-time Events)
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
connectorManifest,
|
|
6
6
|
installedCheck,
|
|
7
7
|
npmGlobalDependency
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-F6CQ6GAG.js";
|
|
9
|
+
import "./chunk-6V7MW4HU.js";
|
|
10
10
|
import {
|
|
11
11
|
defineConnectorPlugin
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-Y5BJ3EW2.js";
|
|
13
13
|
import "./chunk-AD3JTIU3.js";
|
|
14
14
|
|
|
15
15
|
// src/plugins/supabase/index.ts
|
|
@@ -4,11 +4,11 @@ import {
|
|
|
4
4
|
connectorManifest,
|
|
5
5
|
installedCheck,
|
|
6
6
|
npmGlobalDependency
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-PSK2SYZ3.js";
|
|
8
|
+
import "./chunk-OYY64ZSX.js";
|
|
9
9
|
import {
|
|
10
10
|
defineConnectorPlugin
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-RMDY3W4V.js";
|
|
12
12
|
import "./chunk-R5U7XKVJ.js";
|
|
13
13
|
|
|
14
14
|
// src/plugins/supabase/index.ts
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
connectorField,
|
|
3
3
|
connectorManifest
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-PSK2SYZ3.js";
|
|
5
|
+
import "./chunk-OYY64ZSX.js";
|
|
6
6
|
import {
|
|
7
7
|
defineConnectorPlugin
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-RMDY3W4V.js";
|
|
9
9
|
import "./chunk-R5U7XKVJ.js";
|
|
10
10
|
|
|
11
11
|
// src/plugins/taobao-aipaas/index.ts
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
connectorField,
|
|
4
4
|
connectorManifest
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-F6CQ6GAG.js";
|
|
6
|
+
import "./chunk-6V7MW4HU.js";
|
|
7
7
|
import {
|
|
8
8
|
defineConnectorPlugin
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-Y5BJ3EW2.js";
|
|
10
10
|
import "./chunk-AD3JTIU3.js";
|
|
11
11
|
|
|
12
12
|
// src/plugins/taobao-aipaas/index.ts
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
connectorField,
|
|
4
4
|
connectorManifest
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-F6CQ6GAG.js";
|
|
6
|
+
import "./chunk-6V7MW4HU.js";
|
|
7
7
|
import {
|
|
8
8
|
defineConnectorPlugin
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-Y5BJ3EW2.js";
|
|
10
10
|
import "./chunk-AD3JTIU3.js";
|
|
11
11
|
|
|
12
12
|
// src/plugins/tapd/index.ts
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
connectorField,
|
|
3
3
|
connectorManifest
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-PSK2SYZ3.js";
|
|
5
|
+
import "./chunk-OYY64ZSX.js";
|
|
6
6
|
import {
|
|
7
7
|
defineConnectorPlugin
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-RMDY3W4V.js";
|
|
9
9
|
import "./chunk-R5U7XKVJ.js";
|
|
10
10
|
|
|
11
11
|
// src/plugins/tapd/index.ts
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
connectorField,
|
|
4
4
|
connectorManifest
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-F6CQ6GAG.js";
|
|
6
|
+
import "./chunk-6V7MW4HU.js";
|
|
7
7
|
import {
|
|
8
8
|
defineConnectorPlugin
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-Y5BJ3EW2.js";
|
|
10
10
|
import "./chunk-AD3JTIU3.js";
|
|
11
11
|
|
|
12
12
|
// src/plugins/tencent-ads/index.ts
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
connectorField,
|
|
3
3
|
connectorManifest
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-PSK2SYZ3.js";
|
|
5
|
+
import "./chunk-OYY64ZSX.js";
|
|
6
6
|
import {
|
|
7
7
|
defineConnectorPlugin
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-RMDY3W4V.js";
|
|
9
9
|
import "./chunk-R5U7XKVJ.js";
|
|
10
10
|
|
|
11
11
|
// src/plugins/tencent-ads/index.ts
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
connectorField,
|
|
3
3
|
connectorManifest
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-PSK2SYZ3.js";
|
|
5
|
+
import "./chunk-OYY64ZSX.js";
|
|
6
6
|
import {
|
|
7
7
|
defineConnectorPlugin
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-RMDY3W4V.js";
|
|
9
9
|
import "./chunk-R5U7XKVJ.js";
|
|
10
10
|
|
|
11
11
|
// src/plugins/tencent-docs/index.ts
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
connectorField,
|
|
4
4
|
connectorManifest
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-F6CQ6GAG.js";
|
|
6
|
+
import "./chunk-6V7MW4HU.js";
|
|
7
7
|
import {
|
|
8
8
|
defineConnectorPlugin
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-Y5BJ3EW2.js";
|
|
10
10
|
import "./chunk-AD3JTIU3.js";
|
|
11
11
|
|
|
12
12
|
// src/plugins/tencent-docs/index.ts
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
connectorField,
|
|
3
3
|
connectorManifest
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-PSK2SYZ3.js";
|
|
5
|
+
import "./chunk-OYY64ZSX.js";
|
|
6
6
|
import {
|
|
7
7
|
defineConnectorPlugin
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-RMDY3W4V.js";
|
|
9
9
|
import "./chunk-R5U7XKVJ.js";
|
|
10
10
|
|
|
11
11
|
// src/plugins/tencent-maps/index.ts
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
connectorField,
|
|
4
4
|
connectorManifest
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-F6CQ6GAG.js";
|
|
6
|
+
import "./chunk-6V7MW4HU.js";
|
|
7
7
|
import {
|
|
8
8
|
defineConnectorPlugin
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-Y5BJ3EW2.js";
|
|
10
10
|
import "./chunk-AD3JTIU3.js";
|
|
11
11
|
|
|
12
12
|
// src/plugins/tencent-maps/index.ts
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import {
|
|
2
|
+
attachConnectorRuntimeAssets,
|
|
3
|
+
connectorManifest,
|
|
4
|
+
installedCheck
|
|
5
|
+
} from "./chunk-PSK2SYZ3.js";
|
|
6
|
+
import "./chunk-OYY64ZSX.js";
|
|
7
|
+
import {
|
|
8
|
+
defineConnectorPlugin
|
|
9
|
+
} from "./chunk-RMDY3W4V.js";
|
|
10
|
+
import "./chunk-R5U7XKVJ.js";
|
|
11
|
+
|
|
12
|
+
// src/plugins/text-to-cad/index.ts
|
|
13
|
+
var PLUGIN_ID = "text-to-cad";
|
|
14
|
+
var SKILLS_MOUNT = `/workspace/.agents/plugin-skills/${PLUGIN_ID}`;
|
|
15
|
+
var RUNTIME_MOUNT = `/opt/shadow-plugin-deps/${PLUGIN_ID}`;
|
|
16
|
+
var PYTHON_DEPS_PATH = `${RUNTIME_MOUNT}/python`;
|
|
17
|
+
var manifest = connectorManifest({
|
|
18
|
+
id: "text-to-cad",
|
|
19
|
+
name: "CAD Skills",
|
|
20
|
+
description: "CAD Skills mounts text-to-cad workflows for STEP-first CAD generation, inspection, rendering, robot descriptions, standard parts, and fabrication preflight.",
|
|
21
|
+
category: "automation",
|
|
22
|
+
icon: "boxes",
|
|
23
|
+
website: "https://www.cadskills.xyz",
|
|
24
|
+
docs: "https://github.com/earthtojake/text-to-cad",
|
|
25
|
+
fields: [],
|
|
26
|
+
authType: "none",
|
|
27
|
+
capabilities: ["tool", "data-source", "action", "cli"],
|
|
28
|
+
tags: ["cad", "step", "stl", "dxf", "robotics", "urdf", "sdf", "srdf", "hardware"],
|
|
29
|
+
popularity: 88
|
|
30
|
+
});
|
|
31
|
+
var runtimeDependencies = [
|
|
32
|
+
{
|
|
33
|
+
id: "text-to-cad-python-prereqs",
|
|
34
|
+
kind: "system-package",
|
|
35
|
+
packages: ["python3", "py3-pip", "libgl1", "libglib2.0-0", "libxrender1", "libxext6", "libsm6"],
|
|
36
|
+
description: "Python, pip, and shared libraries for CAD skill helper scripts"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "text-to-cad-python-packages",
|
|
40
|
+
kind: "shell",
|
|
41
|
+
command: [
|
|
42
|
+
"python3 -m pip install --no-cache-dir --target /runtime-deps/python 'build123d' 'ezdxf' 'numpy' 'trimesh' 'vtk' 'py-lib3mf'"
|
|
43
|
+
],
|
|
44
|
+
description: "Python CAD dependencies used by text-to-cad scripts"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: "text-to-cad-python-compat",
|
|
48
|
+
kind: "shell",
|
|
49
|
+
command: [
|
|
50
|
+
[
|
|
51
|
+
"printf 'from lib3mf import Lib3MF\\n' > /runtime-deps/python/py_lib3mf.py",
|
|
52
|
+
"cat > /runtime-deps/python/sitecustomize.py <<'SHADOW_TEXT_TO_CAD_SITE_CUSTOMIZE'",
|
|
53
|
+
"try:",
|
|
54
|
+
" import build123d.exporters3d as _build123d_exporters3d",
|
|
55
|
+
" from OCP.APIHeaderSection import APIHeaderSection_MakeHeader",
|
|
56
|
+
" from OCP.TCollection import TCollection_HAsciiString",
|
|
57
|
+
" _build123d_exporters3d.APIHeaderSection_MakeHeader = APIHeaderSection_MakeHeader",
|
|
58
|
+
" _build123d_exporters3d.TCollection_HAsciiString = TCollection_HAsciiString",
|
|
59
|
+
"except Exception:",
|
|
60
|
+
" pass",
|
|
61
|
+
"SHADOW_TEXT_TO_CAD_SITE_CUSTOMIZE"
|
|
62
|
+
].join("\n")
|
|
63
|
+
],
|
|
64
|
+
description: "Compatibility shims for build123d 3MF and STEP exporter imports"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: "text-to-cad-viewer-deps",
|
|
68
|
+
kind: "shell",
|
|
69
|
+
phase: "post-source",
|
|
70
|
+
command: [
|
|
71
|
+
"if [ -f /plugin-skills/render/scripts/viewer/package-lock.json ]; then npm --prefix /plugin-skills/render/scripts/viewer ci; fi"
|
|
72
|
+
],
|
|
73
|
+
description: "Node dependencies for the CAD Explorer viewer bundled with the render skill"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: "text-to-cad-skill-compat",
|
|
77
|
+
kind: "shell",
|
|
78
|
+
phase: "post-source",
|
|
79
|
+
command: [
|
|
80
|
+
[
|
|
81
|
+
"python3 - <<'SHADOW_TEXT_TO_CAD_PATCH_SKILLS'",
|
|
82
|
+
"from pathlib import Path",
|
|
83
|
+
"path = Path('/plugin-skills/step-parts/scripts/download_step_part.py')",
|
|
84
|
+
"if path.exists():",
|
|
85
|
+
" text = path.read_text(encoding='utf-8')",
|
|
86
|
+
` text = text.replace('DEFAULT_ORIGIN = "https://api.step.parts"', 'DEFAULT_ORIGIN = "https://www.step.parts"')`,
|
|
87
|
+
" path.write_text(text, encoding='utf-8')",
|
|
88
|
+
"SHADOW_TEXT_TO_CAD_PATCH_SKILLS"
|
|
89
|
+
].join("\n")
|
|
90
|
+
],
|
|
91
|
+
description: "Compatibility patch for the live step.parts API origin"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
id: "text-to-cad-cli-shims",
|
|
95
|
+
kind: "shell",
|
|
96
|
+
phase: "post-source",
|
|
97
|
+
command: [
|
|
98
|
+
[
|
|
99
|
+
"mkdir -p /runtime-deps/bin",
|
|
100
|
+
"cat > /runtime-deps/bin/cad-step <<'SHADOW_CAD_STEP'",
|
|
101
|
+
"#!/bin/sh",
|
|
102
|
+
`export PYTHONPATH="${PYTHON_DEPS_PATH}\${PYTHONPATH:+:\${PYTHONPATH}}"`,
|
|
103
|
+
`exec python3 ${SKILLS_MOUNT}/cad/scripts/step "$@"`,
|
|
104
|
+
"SHADOW_CAD_STEP",
|
|
105
|
+
"cat > /runtime-deps/bin/cad-inspect <<'SHADOW_CAD_INSPECT'",
|
|
106
|
+
"#!/bin/sh",
|
|
107
|
+
`export PYTHONPATH="${PYTHON_DEPS_PATH}\${PYTHONPATH:+:\${PYTHONPATH}}"`,
|
|
108
|
+
`exec python3 ${SKILLS_MOUNT}/cad/scripts/inspect "$@"`,
|
|
109
|
+
"SHADOW_CAD_INSPECT",
|
|
110
|
+
"cat > /runtime-deps/bin/cad-dxf <<'SHADOW_CAD_DXF'",
|
|
111
|
+
"#!/bin/sh",
|
|
112
|
+
`export PYTHONPATH="${PYTHON_DEPS_PATH}\${PYTHONPATH:+:\${PYTHONPATH}}"`,
|
|
113
|
+
`exec python3 ${SKILLS_MOUNT}/cad/scripts/dxf "$@"`,
|
|
114
|
+
"SHADOW_CAD_DXF",
|
|
115
|
+
"chmod +x /runtime-deps/bin/cad-step /runtime-deps/bin/cad-inspect /runtime-deps/bin/cad-dxf"
|
|
116
|
+
].join("\n")
|
|
117
|
+
],
|
|
118
|
+
description: "Convenience wrappers for core CAD command-line helpers"
|
|
119
|
+
}
|
|
120
|
+
];
|
|
121
|
+
var skillSources = [
|
|
122
|
+
{
|
|
123
|
+
id: "text-to-cad-skills",
|
|
124
|
+
kind: "git",
|
|
125
|
+
url: "https://github.com/earthtojake/text-to-cad.git",
|
|
126
|
+
ref: "main",
|
|
127
|
+
from: "skills",
|
|
128
|
+
targetPath: SKILLS_MOUNT,
|
|
129
|
+
description: "CAD, render, robot-description, step.parts, and fabrication agent skills"
|
|
130
|
+
}
|
|
131
|
+
];
|
|
132
|
+
var plugin = defineConnectorPlugin(manifest, {
|
|
133
|
+
cli: [
|
|
134
|
+
{
|
|
135
|
+
name: "cad-step",
|
|
136
|
+
command: "cad-step",
|
|
137
|
+
description: "Generate STEP/STP artifacts and CAD sidecars from build123d Python sources"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
name: "cad-inspect",
|
|
141
|
+
command: "cad-inspect",
|
|
142
|
+
description: "Inspect STEP/STP geometry, measurements, references, and topology facts"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
name: "cad-dxf",
|
|
146
|
+
command: "cad-dxf",
|
|
147
|
+
description: "Create and validate secondary DXF fabrication exports"
|
|
148
|
+
}
|
|
149
|
+
],
|
|
150
|
+
runtimeDependencies,
|
|
151
|
+
skillSources,
|
|
152
|
+
verificationChecks: [
|
|
153
|
+
installedCheck("cad-step-cli-installed", "CAD step helper installed", ["cad-step", "--help"]),
|
|
154
|
+
{
|
|
155
|
+
id: "text-to-cad-skills-mounted",
|
|
156
|
+
label: "text-to-cad skills mounted",
|
|
157
|
+
kind: "command",
|
|
158
|
+
command: ["test", "-f", `${SKILLS_MOUNT}/cad/SKILL.md`],
|
|
159
|
+
timeoutMs: 5e3,
|
|
160
|
+
risk: "safe"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
id: "cad-python-deps-importable",
|
|
164
|
+
label: "CAD Python dependencies importable",
|
|
165
|
+
kind: "command",
|
|
166
|
+
command: ["python3", "-c", "import build123d, ezdxf, numpy, trimesh"],
|
|
167
|
+
timeoutMs: 2e4,
|
|
168
|
+
risk: "safe"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
id: "cad-viewer-deps-installed",
|
|
172
|
+
label: "CAD Explorer viewer dependencies installed",
|
|
173
|
+
kind: "command",
|
|
174
|
+
command: ["test", "-d", `${SKILLS_MOUNT}/render/scripts/viewer/node_modules`],
|
|
175
|
+
timeoutMs: 5e3,
|
|
176
|
+
risk: "safe"
|
|
177
|
+
}
|
|
178
|
+
],
|
|
179
|
+
env: () => ({
|
|
180
|
+
PYTHONPATH: PYTHON_DEPS_PATH
|
|
181
|
+
}),
|
|
182
|
+
prompt: "Use CAD Skills for STEP-first CAD generation, build123d source edits, geometry inspection, robot descriptions, CAD Explorer rendering, standard STEP parts, and fabrication preflight. Treat generated CAD exports as derived artifacts and validate geometry before returning results."
|
|
183
|
+
});
|
|
184
|
+
var text_to_cad_default = attachConnectorRuntimeAssets(plugin, {
|
|
185
|
+
runtimeDependencies,
|
|
186
|
+
skillSources,
|
|
187
|
+
runtimeImage: "node:22-bookworm-slim",
|
|
188
|
+
skillsMountPath: SKILLS_MOUNT
|
|
189
|
+
});
|
|
190
|
+
export {
|
|
191
|
+
text_to_cad_default as default
|
|
192
|
+
};
|