@shadowob/cloud 1.1.7 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/README.md +159 -11
  2. package/dist/{agent-browser-CERTMCDL.js → agent-browser-EI7FIK3X.js} +3 -3
  3. package/dist/{agent-browser-CIRZRIY4.js → agent-browser-YXE4ES6Q.js} +3 -3
  4. package/dist/{agent-pack-LF3O5TR4.js → agent-pack-35TFCZKP.js} +1 -1
  5. package/dist/{agent-pack-RQT27V7R.js → agent-pack-UOG6ZAUL.js} +1 -1
  6. package/dist/agentmemory-KP5O7GHB.js +101 -0
  7. package/dist/agentmemory-UV74POU5.js +100 -0
  8. package/dist/{airtable-BG2Q75G2.js → airtable-CXXS3YUN.js} +3 -3
  9. package/dist/{airtable-JCQXFM5D.js → airtable-YZ5JR5JC.js} +3 -3
  10. package/dist/{alipay-TZQI34RB.js → alipay-WED5P3XC.js} +3 -3
  11. package/dist/{alipay-MZX2XCDB.js → alipay-WJTVREMG.js} +3 -3
  12. package/dist/{amap-KPCLZYYL.js → amap-AIN23TQ7.js} +3 -3
  13. package/dist/{amap-5RQB3VGC.js → amap-F6GF7QKB.js} +3 -3
  14. package/dist/{atlassian-LGOEWYC7.js → atlassian-G6PM6UVM.js} +3 -3
  15. package/dist/{atlassian-TVS2A4IU.js → atlassian-IDR2NPJC.js} +3 -3
  16. package/dist/{baidu-appbuilder-QRRL3ETM.js → baidu-appbuilder-JKQIA5TG.js} +3 -3
  17. package/dist/{baidu-appbuilder-6UMESXHW.js → baidu-appbuilder-KVMCIFYH.js} +3 -3
  18. package/dist/{baidu-maps-HEPMVP5D.js → baidu-maps-GWMXV6YT.js} +3 -3
  19. package/dist/{baidu-maps-HXC4FBVP.js → baidu-maps-ZXGT6QZM.js} +3 -3
  20. package/dist/{baidu-netdisk-G5Q6B5NH.js → baidu-netdisk-J5SLQVWW.js} +3 -3
  21. package/dist/{baidu-netdisk-RS2K5W2M.js → baidu-netdisk-PONM3DY6.js} +3 -3
  22. package/dist/{baidu-smartprogram-JHD3XWF6.js → baidu-smartprogram-WJ5JMO6V.js} +3 -3
  23. package/dist/{baidu-smartprogram-EWTK5WKK.js → baidu-smartprogram-Y5WBR7RX.js} +3 -3
  24. package/dist/{browserbase-IUIYVYI7.js → browserbase-CGVQHRC4.js} +3 -3
  25. package/dist/{browserbase-JFO2PCIA.js → browserbase-PVWYTEZC.js} +3 -3
  26. package/dist/{canva-3YOFL7JS.js → canva-COCBQAT2.js} +3 -3
  27. package/dist/{canva-FMYN65SM.js → canva-RSTJSEX5.js} +3 -3
  28. package/dist/{chunk-35LJYCQF.js → chunk-3CT6RQNM.js} +745 -482
  29. package/dist/{chunk-KODMGZUC.js → chunk-4YO3NA26.js} +1 -1
  30. package/dist/{chunk-RECNVWMT.js → chunk-6V7MW4HU.js} +17 -3
  31. package/dist/{chunk-C6OI4ZNO.js → chunk-EVV774KS.js} +1 -1
  32. package/dist/{chunk-SVMXSIMG.js → chunk-F6CQ6GAG.js} +2 -1
  33. package/dist/{chunk-JUPAE5IA.js → chunk-OL5VH6RN.js} +72 -69
  34. package/dist/{chunk-POSVEKIY.js → chunk-OYY64ZSX.js} +17 -3
  35. package/dist/{chunk-ZHVYNIHA.js → chunk-P5Y6F2NH.js} +745 -482
  36. package/dist/{chunk-EEFMJYKB.js → chunk-PSK2SYZ3.js} +2 -1
  37. package/dist/{chunk-6YAYCWGK.js → chunk-PYJRFKPN.js} +1 -1
  38. package/dist/{chunk-JY2HTT7Q.js → chunk-RMDY3W4V.js} +6 -0
  39. package/dist/{chunk-EWB7L7IW.js → chunk-X2SREECR.js} +6 -6
  40. package/dist/{chunk-LXJBQBGL.js → chunk-X5VOIA72.js} +6 -6
  41. package/dist/{chunk-CTNUKOQE.js → chunk-Y5BJ3EW2.js} +6 -0
  42. package/dist/{chunk-SAP2DBHO.js → chunk-Y6BKVDG7.js} +1 -1
  43. package/dist/{chunk-6P2K6QZR.js → chunk-ZGMWSSCC.js} +72 -69
  44. package/dist/{claude-plugin-577TAQVS.js → claude-plugin-FPN32WMT.js} +1 -1
  45. package/dist/{claude-plugin-L3MXJJ6J.js → claude-plugin-IYHOVTVL.js} +1 -1
  46. package/dist/cli.js +930 -149
  47. package/dist/{cloudflare-RDFPKMM5.js → cloudflare-U3RHJJKK.js} +3 -3
  48. package/dist/{cloudflare-HBBABPK6.js → cloudflare-ZHN7UGPX.js} +3 -3
  49. package/dist/{cnb-FLP3QX46.js → cnb-AMXC5I7D.js} +3 -3
  50. package/dist/{cnb-YAVVEYFB.js → cnb-P3IZ4JTD.js} +3 -3
  51. package/dist/console/index.html +1 -1
  52. package/dist/console/static/css/index.f4563d95.css +1 -0
  53. package/dist/console/static/js/index.020abc71.js +1 -0
  54. package/dist/{coze-E6VGRNLV.js → coze-66RYMKVB.js} +3 -3
  55. package/dist/{coze-C6PMDPBI.js → coze-YE3BINXP.js} +3 -3
  56. package/dist/{dashboard.command-ZMQFKLNQ.js → dashboard.command-BRPZCZER.js} +1 -1
  57. package/dist/{dashboard.command-2AM45SIT.js → dashboard.command-GUHSJ2CN.js} +1 -1
  58. package/dist/{dingtalk-JNRNRN7E.js → dingtalk-4RFQG7N2.js} +3 -3
  59. package/dist/{dingtalk-WZGGIAHJ.js → dingtalk-VNFKXD2P.js} +3 -3
  60. package/dist/{douyin-miniprogram-AIJPPIZH.js → douyin-miniprogram-UEALAGOS.js} +3 -3
  61. package/dist/{douyin-miniprogram-HCYZ5NBW.js → douyin-miniprogram-UNB6UO2I.js} +3 -3
  62. package/dist/{figma-2YYNSCDX.js → figma-A264OWU5.js} +3 -3
  63. package/dist/{figma-RYOBMENP.js → figma-Y4TGSDZP.js} +3 -3
  64. package/dist/{firebase-OYSY6HPT.js → firebase-AI3MAGYG.js} +3 -3
  65. package/dist/{firebase-2IJDDBXX.js → firebase-ZGQARUIH.js} +3 -3
  66. package/dist/{firecrawl-2T3SBUW7.js → firecrawl-2JW7DMTH.js} +3 -3
  67. package/dist/{firecrawl-IYYXLAZM.js → firecrawl-UURQ5P5N.js} +3 -3
  68. package/dist/{flyai-QS5Q6FJR.js → flyai-EJGDMYFA.js} +3 -3
  69. package/dist/{flyai-7FJ4TRAG.js → flyai-ZFMZBBHJ.js} +3 -3
  70. package/dist/{gitagent-MWI75OIX.js → gitagent-5SDBYFNA.js} +1 -1
  71. package/dist/{gitagent-YBMWY7NZ.js → gitagent-ODXPCR4X.js} +1 -1
  72. package/dist/{gitee-3N7OFOM7.js → gitee-5UMJ4BC7.js} +3 -3
  73. package/dist/{gitee-KVNK6KLZ.js → gitee-D6NAZTCO.js} +3 -3
  74. package/dist/{github-LUEC2LID.js → github-JBLDKIA3.js} +3 -3
  75. package/dist/{github-XRO5Z3GC.js → github-PZQAVEZP.js} +3 -3
  76. package/dist/{google-ads-VPKWTX67.js → google-ads-BIFQOJ5M.js} +3 -3
  77. package/dist/{google-ads-A3QAJI4D.js → google-ads-QU3LJE4O.js} +3 -3
  78. package/dist/{google-analytics-C4UR5ZR2.js → google-analytics-7VZ6YZVA.js} +3 -3
  79. package/dist/{google-analytics-XDYZA2B7.js → google-analytics-HXMPCL5V.js} +3 -3
  80. package/dist/{google-workspace-YX35SHHX.js → google-workspace-6SEBJ4VA.js} +2 -2
  81. package/dist/{google-workspace-LL3EWVHH.js → google-workspace-L3AMJLCF.js} +2 -2
  82. package/dist/{huawei-xiaoyi-KPWLTSHB.js → huawei-xiaoyi-C6QIJMPM.js} +3 -3
  83. package/dist/{huawei-xiaoyi-6BSMGJHR.js → huawei-xiaoyi-JGLXWU5P.js} +3 -3
  84. package/dist/{hubspot-FTIEMNZO.js → hubspot-LACJGE6D.js} +3 -3
  85. package/dist/{hubspot-DIUHGEDI.js → hubspot-XWPRO4KZ.js} +3 -3
  86. package/dist/{huggingface-UUXK2RHK.js → huggingface-26QQZK4C.js} +3 -3
  87. package/dist/{huggingface-MJCOXA7E.js → huggingface-CQICNA2R.js} +3 -3
  88. package/dist/index.d.ts +1338 -1
  89. package/dist/index.js +1364 -226
  90. package/dist/{inference-ai-image-generation-PXV6IG4U.js → inference-ai-image-generation-5KYIUWT6.js} +3 -3
  91. package/dist/{inference-ai-image-generation-CMI6R5T3.js → inference-ai-image-generation-J2NYDCLZ.js} +3 -3
  92. package/dist/{inference-sh-7AZOLEFI.js → inference-sh-5SWQTK73.js} +3 -3
  93. package/dist/{inference-sh-ABQOD3YF.js → inference-sh-PTQF6T3R.js} +3 -3
  94. package/dist/{init.command-YVG4X6II.js → init.command-C7UKPK2Y.js} +3 -3
  95. package/dist/{init.command-JKE3SXAS.js → init.command-UNL66BMR.js} +3 -3
  96. package/dist/{klaviyo-LDPBWBSS.js → klaviyo-4UNPMBFT.js} +3 -3
  97. package/dist/{klaviyo-6K5YEFNH.js → klaviyo-SLYNEULT.js} +3 -3
  98. package/dist/{kuaidi100-HGFM5VK2.js → kuaidi100-HZKV5AIS.js} +3 -3
  99. package/dist/{kuaidi100-UHPFCVXP.js → kuaidi100-ZQUW7GHH.js} +3 -3
  100. package/dist/lark-HQUZNHDI.js +382 -0
  101. package/dist/lark-PAV7XWJS.js +381 -0
  102. package/dist/{linear-T4ORUP7N.js → linear-PYGQ5SLK.js} +3 -3
  103. package/dist/{linear-7QFSFPOD.js → linear-VJLYNTUF.js} +3 -3
  104. package/dist/{lovart-PDUXRUHJ.js → lovart-KC6SVNAJ.js} +3 -3
  105. package/dist/{lovart-QO3SK55T.js → lovart-WVKY4RR4.js} +3 -3
  106. package/dist/{meta-ads-SCNFI45S.js → meta-ads-E6XT33GI.js} +3 -3
  107. package/dist/{meta-ads-V6XPZWX3.js → meta-ads-RJ6DWRYN.js} +3 -3
  108. package/dist/{miclaw-TPPPS2WN.js → miclaw-4BA3A2YN.js} +3 -3
  109. package/dist/{miclaw-5CNTW7VV.js → miclaw-LUV6DCHX.js} +3 -3
  110. package/dist/{model-provider-KFB76XV5.js → model-provider-SYXJZ3JD.js} +1 -1
  111. package/dist/{model-provider-AVSFJSZP.js → model-provider-U7NEYA3Y.js} +1 -1
  112. package/dist/nature-skills-G76ABIWZ.js +143 -0
  113. package/dist/nature-skills-SQHMFXKT.js +142 -0
  114. package/dist/{notion-WFA7KGZZ.js → notion-2JZAKOFP.js} +1 -1
  115. package/dist/{notion-FZK76MN2.js → notion-O3NO5TJH.js} +1 -1
  116. package/dist/{oceanengine-3JZUS3PP.js → oceanengine-D23UZGVB.js} +3 -3
  117. package/dist/{oceanengine-5BRIJVJE.js → oceanengine-WDK2OXX5.js} +3 -3
  118. package/dist/{opencli-PFXHGCS2.js → opencli-36P63YNU.js} +3 -3
  119. package/dist/{opencli-VIGRJTGH.js → opencli-SUHDFR33.js} +3 -3
  120. package/dist/{paypal-Z5JYHIWD.js → paypal-K27SUW3B.js} +3 -3
  121. package/dist/{paypal-33UADIPR.js → paypal-OPZ3KOV5.js} +3 -3
  122. package/dist/{playwright-SQAQ3DZG.js → playwright-2ULT3NIC.js} +3 -3
  123. package/dist/{playwright-MG5WHK47.js → playwright-3Q7LBILG.js} +3 -3
  124. package/dist/{plugins-HZBWK3WQ.js → plugins-2MITZ4ZD.js} +2 -2
  125. package/dist/{plugins-I4GD5SZX.js → plugins-UK2QWD6G.js} +2 -2
  126. package/dist/{posthog-MU5MAJOQ.js → posthog-E3EHXLAN.js} +3 -3
  127. package/dist/{posthog-RJRRKDWB.js → posthog-KPJVLGX6.js} +3 -3
  128. package/dist/{salesforce-34FVIJTG.js → salesforce-FGPNG7FB.js} +3 -3
  129. package/dist/{salesforce-3QZ6OFVO.js → salesforce-TVHISKBC.js} +3 -3
  130. package/dist/{sentry-PIWW46VA.js → sentry-BZ3J3MZM.js} +3 -3
  131. package/dist/{sentry-MCIRMACU.js → sentry-XC57YRAJ.js} +3 -3
  132. package/dist/{seo-suite-WJXMA3S4.js → seo-suite-2MDEDLAB.js} +3 -3
  133. package/dist/{seo-suite-4SQ3I67Q.js → seo-suite-U75O3QP6.js} +3 -3
  134. package/dist/{serve.command-XLBJUOV6.js → serve.command-G5RVQFUD.js} +3 -3
  135. package/dist/{serve.command-RD6I6MFD.js → serve.command-PYGDG7K3.js} +3 -3
  136. package/dist/{shadowob-PRSMI5MW.js → shadowob-3QZ7DLDW.js} +158 -31
  137. package/dist/{shadowob-JELOWHWX.js → shadowob-CJLOEKFP.js} +158 -31
  138. package/dist/{sherlock-2PKY2E2Y.js → sherlock-CQFUHKDH.js} +3 -3
  139. package/dist/{sherlock-C5ZWPPVT.js → sherlock-DONK2I6E.js} +3 -3
  140. package/dist/{shopify-GL3NFVGE.js → shopify-NO5GI3WD.js} +3 -3
  141. package/dist/{shopify-R4G3UXM6.js → shopify-VW2KLKH5.js} +3 -3
  142. package/dist/{skill-discovery-YPXXV622.js → skill-discovery-6JEPPKKM.js} +3 -3
  143. package/dist/{skill-discovery-7INAUP4D.js → skill-discovery-PWRAVGIS.js} +3 -3
  144. package/dist/skills/shadowob-cli/SKILL.md +7 -0
  145. package/dist/{stripe-LJNPQ3CQ.js → stripe-HCNCKG4C.js} +1 -1
  146. package/dist/{stripe-C22RR4ZS.js → stripe-IU3KTJ4H.js} +1 -1
  147. package/dist/{supabase-IRNQ54FJ.js → supabase-KRL7JW2D.js} +3 -3
  148. package/dist/{supabase-N4ONFJNQ.js → supabase-TYEBTZNO.js} +3 -3
  149. package/dist/{taobao-aipaas-LRR4GMO3.js → taobao-aipaas-PEUIDOYP.js} +3 -3
  150. package/dist/{taobao-aipaas-RVKORSF4.js → taobao-aipaas-SA5E4MZA.js} +3 -3
  151. package/dist/{tapd-TMQRSMFG.js → tapd-6DDIUPVQ.js} +3 -3
  152. package/dist/{tapd-3JPVJ7XH.js → tapd-OTYLSZGY.js} +3 -3
  153. package/dist/{tencent-ads-UHC6OPBV.js → tencent-ads-OW2TAMH5.js} +3 -3
  154. package/dist/{tencent-ads-IGD33LO7.js → tencent-ads-XTQZ27YT.js} +3 -3
  155. package/dist/{tencent-docs-C3A4J3CJ.js → tencent-docs-6D6A2VCO.js} +3 -3
  156. package/dist/{tencent-docs-O2SC4FHL.js → tencent-docs-K3TMUIWD.js} +3 -3
  157. package/dist/{tencent-maps-OQOKHVW2.js → tencent-maps-IZYWITJZ.js} +3 -3
  158. package/dist/{tencent-maps-HMMWMNF4.js → tencent-maps-SWI7CLQY.js} +3 -3
  159. package/dist/text-to-cad-B2UP6PKA.js +192 -0
  160. package/dist/text-to-cad-I4B6VBFV.js +193 -0
  161. package/dist/{vercel-KOXDDTHX.js → vercel-CCKRC76D.js} +3 -3
  162. package/dist/{vercel-OLNVDWMG.js → vercel-SBGEMIJJ.js} +3 -3
  163. package/dist/{webflow-OMJKZM54.js → webflow-C3EHNNSN.js} +3 -3
  164. package/dist/{webflow-FULU5Q2I.js → webflow-ZFBJH4CR.js} +3 -3
  165. package/dist/{wechat-miniprogram-skyline-KYCDMQNW.js → wechat-miniprogram-skyline-VNCRERHX.js} +3 -3
  166. package/dist/{wechat-miniprogram-skyline-VR4FVIQL.js → wechat-miniprogram-skyline-Z5JQUV5Q.js} +3 -3
  167. package/dist/{wechat-pay-BCMAJ6UW.js → wechat-pay-RPDKPUEB.js} +3 -3
  168. package/dist/{wechat-pay-YQQKXVUI.js → wechat-pay-XVDGJRF2.js} +3 -3
  169. package/dist/{wonda-NGWIORYN.js → wonda-EL2P44S7.js} +3 -3
  170. package/dist/{wonda-RBABXFNM.js → wonda-XK5JK4X3.js} +3 -3
  171. package/dist/{wordpress-woocommerce-RNA5HB3N.js → wordpress-woocommerce-4MEE5A2M.js} +3 -3
  172. package/dist/{wordpress-woocommerce-RDIUTHYT.js → wordpress-woocommerce-6ECNM2QU.js} +3 -3
  173. package/dist/{wps-LUWHMZQQ.js → wps-E4OZEMOF.js} +3 -3
  174. package/dist/{wps-DAEFQHDE.js → wps-JNQUC4JS.js} +3 -3
  175. package/dist/{yuque-HCHTJWNI.js → yuque-GLAAOS7X.js} +3 -3
  176. package/dist/{yuque-KRH5O74J.js → yuque-MEF6VFLJ.js} +3 -3
  177. package/images/RUNNERS.md +15 -0
  178. package/images/cc-connect-runner/entrypoint.mjs +228 -0
  179. package/images/claude-runner/RUNNER.md +5 -3
  180. package/images/codex-runner/RUNNER.md +5 -3
  181. package/images/gemini-runner/RUNNER.md +5 -2
  182. package/images/hermes-runner/RUNNER.md +4 -2
  183. package/images/hermes-runner/entrypoint.mjs +269 -1
  184. package/images/openclaw-runner/Dockerfile +1 -0
  185. package/images/openclaw-runner/RUNNER.md +3 -0
  186. package/images/openclaw-runner/entrypoint.mjs +249 -1
  187. package/images/openclaw-runner/warm-runtime-deps.mjs +1 -3
  188. package/images/opencode-runner/RUNNER.md +5 -3
  189. package/package.json +3 -3
  190. package/templates/agent-marketplace-buddy.template.json +4 -1
  191. package/templates/bmad-method-buddy.template.json +4 -1
  192. package/templates/code-trainer.template.json +331 -0
  193. package/templates/gstack-buddy.template.json +4 -1
  194. package/templates/little-match-girl.template.json +10 -3
  195. package/dist/console/static/css/index.7f91f806.css +0 -1
  196. package/dist/console/static/js/index.4487e1ff.js +0 -1
  197. package/dist/lark-6LNA3LUQ.js +0 -103
  198. package/dist/lark-URVBZNS4.js +0 -102
@@ -3,11 +3,11 @@ import {
3
3
  connectorManifest,
4
4
  installedCheck,
5
5
  npmGlobalDependency
6
- } from "./chunk-EEFMJYKB.js";
7
- import "./chunk-POSVEKIY.js";
6
+ } from "./chunk-PSK2SYZ3.js";
7
+ import "./chunk-OYY64ZSX.js";
8
8
  import {
9
9
  defineConnectorPlugin
10
- } from "./chunk-JY2HTT7Q.js";
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
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  defineSkillPlugin
3
- } from "./chunk-JY2HTT7Q.js";
3
+ } from "./chunk-RMDY3W4V.js";
4
4
  import "./chunk-R5U7XKVJ.js";
5
5
 
6
6
  // src/plugins/stripe/manifest.json
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  defineSkillPlugin
4
- } from "./chunk-CTNUKOQE.js";
4
+ } from "./chunk-Y5BJ3EW2.js";
5
5
  import "./chunk-AD3JTIU3.js";
6
6
 
7
7
  // src/plugins/stripe/manifest.json
@@ -5,11 +5,11 @@ import {
5
5
  connectorManifest,
6
6
  installedCheck,
7
7
  npmGlobalDependency
8
- } from "./chunk-SVMXSIMG.js";
9
- import "./chunk-RECNVWMT.js";
8
+ } from "./chunk-F6CQ6GAG.js";
9
+ import "./chunk-6V7MW4HU.js";
10
10
  import {
11
11
  defineConnectorPlugin
12
- } from "./chunk-CTNUKOQE.js";
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-EEFMJYKB.js";
8
- import "./chunk-POSVEKIY.js";
7
+ } from "./chunk-PSK2SYZ3.js";
8
+ import "./chunk-OYY64ZSX.js";
9
9
  import {
10
10
  defineConnectorPlugin
11
- } from "./chunk-JY2HTT7Q.js";
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-EEFMJYKB.js";
5
- import "./chunk-POSVEKIY.js";
4
+ } from "./chunk-PSK2SYZ3.js";
5
+ import "./chunk-OYY64ZSX.js";
6
6
  import {
7
7
  defineConnectorPlugin
8
- } from "./chunk-JY2HTT7Q.js";
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-SVMXSIMG.js";
6
- import "./chunk-RECNVWMT.js";
5
+ } from "./chunk-F6CQ6GAG.js";
6
+ import "./chunk-6V7MW4HU.js";
7
7
  import {
8
8
  defineConnectorPlugin
9
- } from "./chunk-CTNUKOQE.js";
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-SVMXSIMG.js";
6
- import "./chunk-RECNVWMT.js";
5
+ } from "./chunk-F6CQ6GAG.js";
6
+ import "./chunk-6V7MW4HU.js";
7
7
  import {
8
8
  defineConnectorPlugin
9
- } from "./chunk-CTNUKOQE.js";
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-EEFMJYKB.js";
5
- import "./chunk-POSVEKIY.js";
4
+ } from "./chunk-PSK2SYZ3.js";
5
+ import "./chunk-OYY64ZSX.js";
6
6
  import {
7
7
  defineConnectorPlugin
8
- } from "./chunk-JY2HTT7Q.js";
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-SVMXSIMG.js";
6
- import "./chunk-RECNVWMT.js";
5
+ } from "./chunk-F6CQ6GAG.js";
6
+ import "./chunk-6V7MW4HU.js";
7
7
  import {
8
8
  defineConnectorPlugin
9
- } from "./chunk-CTNUKOQE.js";
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-EEFMJYKB.js";
5
- import "./chunk-POSVEKIY.js";
4
+ } from "./chunk-PSK2SYZ3.js";
5
+ import "./chunk-OYY64ZSX.js";
6
6
  import {
7
7
  defineConnectorPlugin
8
- } from "./chunk-JY2HTT7Q.js";
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-EEFMJYKB.js";
5
- import "./chunk-POSVEKIY.js";
4
+ } from "./chunk-PSK2SYZ3.js";
5
+ import "./chunk-OYY64ZSX.js";
6
6
  import {
7
7
  defineConnectorPlugin
8
- } from "./chunk-JY2HTT7Q.js";
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-SVMXSIMG.js";
6
- import "./chunk-RECNVWMT.js";
5
+ } from "./chunk-F6CQ6GAG.js";
6
+ import "./chunk-6V7MW4HU.js";
7
7
  import {
8
8
  defineConnectorPlugin
9
- } from "./chunk-CTNUKOQE.js";
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-EEFMJYKB.js";
5
- import "./chunk-POSVEKIY.js";
4
+ } from "./chunk-PSK2SYZ3.js";
5
+ import "./chunk-OYY64ZSX.js";
6
6
  import {
7
7
  defineConnectorPlugin
8
- } from "./chunk-JY2HTT7Q.js";
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-SVMXSIMG.js";
6
- import "./chunk-RECNVWMT.js";
5
+ } from "./chunk-F6CQ6GAG.js";
6
+ import "./chunk-6V7MW4HU.js";
7
7
  import {
8
8
  defineConnectorPlugin
9
- } from "./chunk-CTNUKOQE.js";
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-EEFMJYKB.js";
8
- import "./chunk-POSVEKIY.js";
7
+ } from "./chunk-PSK2SYZ3.js";
8
+ import "./chunk-OYY64ZSX.js";
9
9
  import {
10
10
  defineConnectorPlugin
11
- } from "./chunk-JY2HTT7Q.js";
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-SVMXSIMG.js";
9
- import "./chunk-RECNVWMT.js";
8
+ } from "./chunk-F6CQ6GAG.js";
9
+ import "./chunk-6V7MW4HU.js";
10
10
  import {
11
11
  defineConnectorPlugin
12
- } from "./chunk-CTNUKOQE.js";
12
+ } from "./chunk-Y5BJ3EW2.js";
13
13
  import "./chunk-AD3JTIU3.js";
14
14
 
15
15
  // src/plugins/vercel/index.ts