@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.
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-ULOJLXQV.js → chunk-3CT6RQNM.js} +766 -482
  29. package/dist/{chunk-SIDBK5SZ.js → chunk-4YO3NA26.js} +1 -1
  30. package/dist/{chunk-RECNVWMT.js → chunk-6V7MW4HU.js} +17 -3
  31. package/dist/{chunk-2FWJSE6Z.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-FSW4TNHN.js → chunk-P5Y6F2NH.js} +766 -482
  36. package/dist/{chunk-EEFMJYKB.js → chunk-PSK2SYZ3.js} +2 -1
  37. package/dist/{chunk-HRTBOZ7O.js → chunk-PYJRFKPN.js} +1 -1
  38. package/dist/{chunk-JY2HTT7Q.js → chunk-RMDY3W4V.js} +6 -0
  39. package/dist/{chunk-I3NRNCDR.js → chunk-X2SREECR.js} +6 -6
  40. package/dist/{chunk-XFJX4NWN.js → chunk-X5VOIA72.js} +6 -6
  41. package/dist/{chunk-CTNUKOQE.js → chunk-Y5BJ3EW2.js} +6 -0
  42. package/dist/{chunk-IXN3FU5J.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-SCAAQ23X.js → dashboard.command-BRPZCZER.js} +1 -1
  57. package/dist/{dashboard.command-H5DIGLUR.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-WGKN3GC6.js → init.command-C7UKPK2Y.js} +3 -3
  95. package/dist/{init.command-775GLXTC.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-2AHJI665.js → serve.command-G5RVQFUD.js} +3 -3
  135. package/dist/{serve.command-Q46LHQG6.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 +33 -22
  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
@@ -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/agent data, or sending/managing Shadow content via the shadowob CLI."
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/agent data, or when you need to
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-id <server-id> --json
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-id <id> --name <name> [--type text] --json
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
- ## Agents
144
+ ## Buddies
145
145
 
146
146
  ```bash
147
- # List agents
148
- shadowob agents list --json
147
+ # List buddies
148
+ shadowob buddies list --json
149
149
 
150
- # Get agent
151
- shadowob agents get <agent-id> --json
150
+ # Get buddy
151
+ shadowob buddies get <buddy-id> --json
152
152
 
153
153
  # Create/Update/Delete
154
- shadowob agents create --name <name> [--display-name <name>] [--avatar-url <url>] --json
155
- shadowob agents update <agent-id> [--name <name>] [--display-name <name>] --json
156
- shadowob agents delete <agent-id>
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 agents start <agent-id>
160
- shadowob agents stop <agent-id>
159
+ shadowob buddies start <buddy-id>
160
+ shadowob buddies stop <buddy-id>
161
161
 
162
162
  # Token
163
- shadowob agents token <agent-id> --json
163
+ shadowob buddies token <buddy-id> --json
164
164
 
165
165
  # Config
166
- shadowob agents config <agent-id> --json
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-id <server-id>] --json
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
- When a channel message mentions a server App, use the mentioned app key/server id directly.
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-id <id>] [--channel-id <id>] --json
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-id <id>] [--channel-id <id>] [--author-id <id>] [--after <date>] [--before <date>] [--has-attachments] [--limit <n>] --json
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)
@@ -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
+ };