@shadowob/cloud 1.1.7 → 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-35LJYCQF.js → chunk-3CT6RQNM.js} +745 -482
- package/dist/{chunk-KODMGZUC.js → chunk-4YO3NA26.js} +1 -1
- package/dist/{chunk-RECNVWMT.js → chunk-6V7MW4HU.js} +17 -3
- package/dist/{chunk-C6OI4ZNO.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-ZHVYNIHA.js → chunk-P5Y6F2NH.js} +745 -482
- package/dist/{chunk-EEFMJYKB.js → chunk-PSK2SYZ3.js} +2 -1
- package/dist/{chunk-6YAYCWGK.js → chunk-PYJRFKPN.js} +1 -1
- package/dist/{chunk-JY2HTT7Q.js → chunk-RMDY3W4V.js} +6 -0
- package/dist/{chunk-EWB7L7IW.js → chunk-X2SREECR.js} +6 -6
- package/dist/{chunk-LXJBQBGL.js → chunk-X5VOIA72.js} +6 -6
- package/dist/{chunk-CTNUKOQE.js → chunk-Y5BJ3EW2.js} +6 -0
- package/dist/{chunk-SAP2DBHO.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-ZMQFKLNQ.js → dashboard.command-BRPZCZER.js} +1 -1
- package/dist/{dashboard.command-2AM45SIT.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-YVG4X6II.js → init.command-C7UKPK2Y.js} +3 -3
- package/dist/{init.command-JKE3SXAS.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-XLBJUOV6.js → serve.command-G5RVQFUD.js} +3 -3
- package/dist/{serve.command-RD6I6MFD.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 +7 -0
- 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
|
|
@@ -282,12 +282,19 @@ shadowob app discover --server <server-id-or-slug> --json
|
|
|
282
282
|
shadowob app inspect <app-key> --server <server-id-or-slug> --json
|
|
283
283
|
shadowob app skills <app-key> --server <server-id-or-slug>
|
|
284
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
|
|
285
288
|
```
|
|
286
289
|
|
|
287
290
|
For server App commands, use the `shadowob app` CLI path only. Do not use curl, fetch, raw HTTP
|
|
288
291
|
routes, or the JavaScript SDK to call server App commands. Pass the command input object directly
|
|
289
292
|
to `--json-input`, for example `{"title":"Example","priority":"high"}`; the CLI wraps the HTTP
|
|
290
293
|
request for you and binds Shadow OAuth identity, server membership, App grants, and command policy.
|
|
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.
|
|
291
298
|
When a channel message mentions a server App, use the mentioned app key/server id directly and pass
|
|
292
299
|
the current channel id with `--channel-id` when available. If a server App command requires
|
|
293
300
|
approval, do not send a chat form or call the approval endpoint yourself as a Buddy. Wait for a
|
|
@@ -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
|
+
};
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
attachConnectorRuntimeAssets,
|
|
4
|
+
connectorManifest,
|
|
5
|
+
installedCheck
|
|
6
|
+
} from "./chunk-F6CQ6GAG.js";
|
|
7
|
+
import "./chunk-6V7MW4HU.js";
|
|
8
|
+
import {
|
|
9
|
+
defineConnectorPlugin
|
|
10
|
+
} from "./chunk-Y5BJ3EW2.js";
|
|
11
|
+
import "./chunk-AD3JTIU3.js";
|
|
12
|
+
|
|
13
|
+
// src/plugins/text-to-cad/index.ts
|
|
14
|
+
var PLUGIN_ID = "text-to-cad";
|
|
15
|
+
var SKILLS_MOUNT = `/workspace/.agents/plugin-skills/${PLUGIN_ID}`;
|
|
16
|
+
var RUNTIME_MOUNT = `/opt/shadow-plugin-deps/${PLUGIN_ID}`;
|
|
17
|
+
var PYTHON_DEPS_PATH = `${RUNTIME_MOUNT}/python`;
|
|
18
|
+
var manifest = connectorManifest({
|
|
19
|
+
id: "text-to-cad",
|
|
20
|
+
name: "CAD Skills",
|
|
21
|
+
description: "CAD Skills mounts text-to-cad workflows for STEP-first CAD generation, inspection, rendering, robot descriptions, standard parts, and fabrication preflight.",
|
|
22
|
+
category: "automation",
|
|
23
|
+
icon: "boxes",
|
|
24
|
+
website: "https://www.cadskills.xyz",
|
|
25
|
+
docs: "https://github.com/earthtojake/text-to-cad",
|
|
26
|
+
fields: [],
|
|
27
|
+
authType: "none",
|
|
28
|
+
capabilities: ["tool", "data-source", "action", "cli"],
|
|
29
|
+
tags: ["cad", "step", "stl", "dxf", "robotics", "urdf", "sdf", "srdf", "hardware"],
|
|
30
|
+
popularity: 88
|
|
31
|
+
});
|
|
32
|
+
var runtimeDependencies = [
|
|
33
|
+
{
|
|
34
|
+
id: "text-to-cad-python-prereqs",
|
|
35
|
+
kind: "system-package",
|
|
36
|
+
packages: ["python3", "py3-pip", "libgl1", "libglib2.0-0", "libxrender1", "libxext6", "libsm6"],
|
|
37
|
+
description: "Python, pip, and shared libraries for CAD skill helper scripts"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: "text-to-cad-python-packages",
|
|
41
|
+
kind: "shell",
|
|
42
|
+
command: [
|
|
43
|
+
"python3 -m pip install --no-cache-dir --target /runtime-deps/python 'build123d' 'ezdxf' 'numpy' 'trimesh' 'vtk' 'py-lib3mf'"
|
|
44
|
+
],
|
|
45
|
+
description: "Python CAD dependencies used by text-to-cad scripts"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: "text-to-cad-python-compat",
|
|
49
|
+
kind: "shell",
|
|
50
|
+
command: [
|
|
51
|
+
[
|
|
52
|
+
"printf 'from lib3mf import Lib3MF\\n' > /runtime-deps/python/py_lib3mf.py",
|
|
53
|
+
"cat > /runtime-deps/python/sitecustomize.py <<'SHADOW_TEXT_TO_CAD_SITE_CUSTOMIZE'",
|
|
54
|
+
"try:",
|
|
55
|
+
" import build123d.exporters3d as _build123d_exporters3d",
|
|
56
|
+
" from OCP.APIHeaderSection import APIHeaderSection_MakeHeader",
|
|
57
|
+
" from OCP.TCollection import TCollection_HAsciiString",
|
|
58
|
+
" _build123d_exporters3d.APIHeaderSection_MakeHeader = APIHeaderSection_MakeHeader",
|
|
59
|
+
" _build123d_exporters3d.TCollection_HAsciiString = TCollection_HAsciiString",
|
|
60
|
+
"except Exception:",
|
|
61
|
+
" pass",
|
|
62
|
+
"SHADOW_TEXT_TO_CAD_SITE_CUSTOMIZE"
|
|
63
|
+
].join("\n")
|
|
64
|
+
],
|
|
65
|
+
description: "Compatibility shims for build123d 3MF and STEP exporter imports"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: "text-to-cad-viewer-deps",
|
|
69
|
+
kind: "shell",
|
|
70
|
+
phase: "post-source",
|
|
71
|
+
command: [
|
|
72
|
+
"if [ -f /plugin-skills/render/scripts/viewer/package-lock.json ]; then npm --prefix /plugin-skills/render/scripts/viewer ci; fi"
|
|
73
|
+
],
|
|
74
|
+
description: "Node dependencies for the CAD Explorer viewer bundled with the render skill"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
id: "text-to-cad-skill-compat",
|
|
78
|
+
kind: "shell",
|
|
79
|
+
phase: "post-source",
|
|
80
|
+
command: [
|
|
81
|
+
[
|
|
82
|
+
"python3 - <<'SHADOW_TEXT_TO_CAD_PATCH_SKILLS'",
|
|
83
|
+
"from pathlib import Path",
|
|
84
|
+
"path = Path('/plugin-skills/step-parts/scripts/download_step_part.py')",
|
|
85
|
+
"if path.exists():",
|
|
86
|
+
" text = path.read_text(encoding='utf-8')",
|
|
87
|
+
` text = text.replace('DEFAULT_ORIGIN = "https://api.step.parts"', 'DEFAULT_ORIGIN = "https://www.step.parts"')`,
|
|
88
|
+
" path.write_text(text, encoding='utf-8')",
|
|
89
|
+
"SHADOW_TEXT_TO_CAD_PATCH_SKILLS"
|
|
90
|
+
].join("\n")
|
|
91
|
+
],
|
|
92
|
+
description: "Compatibility patch for the live step.parts API origin"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: "text-to-cad-cli-shims",
|
|
96
|
+
kind: "shell",
|
|
97
|
+
phase: "post-source",
|
|
98
|
+
command: [
|
|
99
|
+
[
|
|
100
|
+
"mkdir -p /runtime-deps/bin",
|
|
101
|
+
"cat > /runtime-deps/bin/cad-step <<'SHADOW_CAD_STEP'",
|
|
102
|
+
"#!/bin/sh",
|
|
103
|
+
`export PYTHONPATH="${PYTHON_DEPS_PATH}\${PYTHONPATH:+:\${PYTHONPATH}}"`,
|
|
104
|
+
`exec python3 ${SKILLS_MOUNT}/cad/scripts/step "$@"`,
|
|
105
|
+
"SHADOW_CAD_STEP",
|
|
106
|
+
"cat > /runtime-deps/bin/cad-inspect <<'SHADOW_CAD_INSPECT'",
|
|
107
|
+
"#!/bin/sh",
|
|
108
|
+
`export PYTHONPATH="${PYTHON_DEPS_PATH}\${PYTHONPATH:+:\${PYTHONPATH}}"`,
|
|
109
|
+
`exec python3 ${SKILLS_MOUNT}/cad/scripts/inspect "$@"`,
|
|
110
|
+
"SHADOW_CAD_INSPECT",
|
|
111
|
+
"cat > /runtime-deps/bin/cad-dxf <<'SHADOW_CAD_DXF'",
|
|
112
|
+
"#!/bin/sh",
|
|
113
|
+
`export PYTHONPATH="${PYTHON_DEPS_PATH}\${PYTHONPATH:+:\${PYTHONPATH}}"`,
|
|
114
|
+
`exec python3 ${SKILLS_MOUNT}/cad/scripts/dxf "$@"`,
|
|
115
|
+
"SHADOW_CAD_DXF",
|
|
116
|
+
"chmod +x /runtime-deps/bin/cad-step /runtime-deps/bin/cad-inspect /runtime-deps/bin/cad-dxf"
|
|
117
|
+
].join("\n")
|
|
118
|
+
],
|
|
119
|
+
description: "Convenience wrappers for core CAD command-line helpers"
|
|
120
|
+
}
|
|
121
|
+
];
|
|
122
|
+
var skillSources = [
|
|
123
|
+
{
|
|
124
|
+
id: "text-to-cad-skills",
|
|
125
|
+
kind: "git",
|
|
126
|
+
url: "https://github.com/earthtojake/text-to-cad.git",
|
|
127
|
+
ref: "main",
|
|
128
|
+
from: "skills",
|
|
129
|
+
targetPath: SKILLS_MOUNT,
|
|
130
|
+
description: "CAD, render, robot-description, step.parts, and fabrication agent skills"
|
|
131
|
+
}
|
|
132
|
+
];
|
|
133
|
+
var plugin = defineConnectorPlugin(manifest, {
|
|
134
|
+
cli: [
|
|
135
|
+
{
|
|
136
|
+
name: "cad-step",
|
|
137
|
+
command: "cad-step",
|
|
138
|
+
description: "Generate STEP/STP artifacts and CAD sidecars from build123d Python sources"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: "cad-inspect",
|
|
142
|
+
command: "cad-inspect",
|
|
143
|
+
description: "Inspect STEP/STP geometry, measurements, references, and topology facts"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: "cad-dxf",
|
|
147
|
+
command: "cad-dxf",
|
|
148
|
+
description: "Create and validate secondary DXF fabrication exports"
|
|
149
|
+
}
|
|
150
|
+
],
|
|
151
|
+
runtimeDependencies,
|
|
152
|
+
skillSources,
|
|
153
|
+
verificationChecks: [
|
|
154
|
+
installedCheck("cad-step-cli-installed", "CAD step helper installed", ["cad-step", "--help"]),
|
|
155
|
+
{
|
|
156
|
+
id: "text-to-cad-skills-mounted",
|
|
157
|
+
label: "text-to-cad skills mounted",
|
|
158
|
+
kind: "command",
|
|
159
|
+
command: ["test", "-f", `${SKILLS_MOUNT}/cad/SKILL.md`],
|
|
160
|
+
timeoutMs: 5e3,
|
|
161
|
+
risk: "safe"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
id: "cad-python-deps-importable",
|
|
165
|
+
label: "CAD Python dependencies importable",
|
|
166
|
+
kind: "command",
|
|
167
|
+
command: ["python3", "-c", "import build123d, ezdxf, numpy, trimesh"],
|
|
168
|
+
timeoutMs: 2e4,
|
|
169
|
+
risk: "safe"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
id: "cad-viewer-deps-installed",
|
|
173
|
+
label: "CAD Explorer viewer dependencies installed",
|
|
174
|
+
kind: "command",
|
|
175
|
+
command: ["test", "-d", `${SKILLS_MOUNT}/render/scripts/viewer/node_modules`],
|
|
176
|
+
timeoutMs: 5e3,
|
|
177
|
+
risk: "safe"
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
env: () => ({
|
|
181
|
+
PYTHONPATH: PYTHON_DEPS_PATH
|
|
182
|
+
}),
|
|
183
|
+
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."
|
|
184
|
+
});
|
|
185
|
+
var text_to_cad_default = attachConnectorRuntimeAssets(plugin, {
|
|
186
|
+
runtimeDependencies,
|
|
187
|
+
skillSources,
|
|
188
|
+
runtimeImage: "node:22-bookworm-slim",
|
|
189
|
+
skillsMountPath: SKILLS_MOUNT
|
|
190
|
+
});
|
|
191
|
+
export {
|
|
192
|
+
text_to_cad_default as default
|
|
193
|
+
};
|
|
@@ -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/vercel/index.ts
|
|
@@ -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/vercel/index.ts
|