@shadowob/cloud 1.1.6-dev.311

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 (334) hide show
  1. package/README.md +509 -0
  2. package/dist/agent-browser-CERTMCDL.js +117 -0
  3. package/dist/agent-browser-CIRZRIY4.js +118 -0
  4. package/dist/agent-pack-LF3O5TR4.js +1236 -0
  5. package/dist/agent-pack-RQT27V7R.js +1235 -0
  6. package/dist/airtable-BG2Q75G2.js +82 -0
  7. package/dist/airtable-JCQXFM5D.js +83 -0
  8. package/dist/alipay-MZX2XCDB.js +52 -0
  9. package/dist/alipay-TZQI34RB.js +51 -0
  10. package/dist/amap-5RQB3VGC.js +45 -0
  11. package/dist/amap-KPCLZYYL.js +44 -0
  12. package/dist/atlassian-LGOEWYC7.js +54 -0
  13. package/dist/atlassian-TVS2A4IU.js +55 -0
  14. package/dist/baidu-appbuilder-6UMESXHW.js +41 -0
  15. package/dist/baidu-appbuilder-QRRL3ETM.js +42 -0
  16. package/dist/baidu-maps-HEPMVP5D.js +44 -0
  17. package/dist/baidu-maps-HXC4FBVP.js +45 -0
  18. package/dist/baidu-netdisk-G5Q6B5NH.js +45 -0
  19. package/dist/baidu-netdisk-RS2K5W2M.js +44 -0
  20. package/dist/baidu-smartprogram-EWTK5WKK.js +41 -0
  21. package/dist/baidu-smartprogram-JHD3XWF6.js +40 -0
  22. package/dist/browserbase-IUIYVYI7.js +67 -0
  23. package/dist/browserbase-JFO2PCIA.js +68 -0
  24. package/dist/canva-3YOFL7JS.js +62 -0
  25. package/dist/canva-FMYN65SM.js +61 -0
  26. package/dist/chunk-6P2K6QZR.js +529 -0
  27. package/dist/chunk-7VMRQ7MG.js +90 -0
  28. package/dist/chunk-AD3JTIU3.js +17 -0
  29. package/dist/chunk-BF6CV2Y4.js +64 -0
  30. package/dist/chunk-CTNUKOQE.js +439 -0
  31. package/dist/chunk-EEFMJYKB.js +97 -0
  32. package/dist/chunk-EJKFQ35I.js +739 -0
  33. package/dist/chunk-HUICDC56.js +62 -0
  34. package/dist/chunk-JUPAE5IA.js +527 -0
  35. package/dist/chunk-JY2HTT7Q.js +437 -0
  36. package/dist/chunk-KEPTCLUO.js +121 -0
  37. package/dist/chunk-KKK5H7YX.js +3622 -0
  38. package/dist/chunk-POSVEKIY.js +210 -0
  39. package/dist/chunk-QET4LT4J.js +5769 -0
  40. package/dist/chunk-QV4XWO3P.js +30 -0
  41. package/dist/chunk-R52J3PH2.js +120 -0
  42. package/dist/chunk-R5U7XKVJ.js +16 -0
  43. package/dist/chunk-RECNVWMT.js +212 -0
  44. package/dist/chunk-RTPBU5HF.js +92 -0
  45. package/dist/chunk-SUZ2ATT6.js +5774 -0
  46. package/dist/chunk-SVMXSIMG.js +98 -0
  47. package/dist/chunk-TV3CBM7R.js +28 -0
  48. package/dist/chunk-V2LU736V.js +3495 -0
  49. package/dist/chunk-ZUYL3W53.js +741 -0
  50. package/dist/claude-plugin-577TAQVS.js +1463 -0
  51. package/dist/claude-plugin-L3MXJJ6J.js +1464 -0
  52. package/dist/cli.js +7021 -0
  53. package/dist/cloudflare-HBBABPK6.js +114 -0
  54. package/dist/cloudflare-RDFPKMM5.js +115 -0
  55. package/dist/cnb-FLP3QX46.js +44 -0
  56. package/dist/cnb-YAVVEYFB.js +45 -0
  57. package/dist/console/index.html +12 -0
  58. package/dist/console/logo.png +0 -0
  59. package/dist/console/static/css/5079.f9e0918d.css +1 -0
  60. package/dist/console/static/css/index.7f91f806.css +1 -0
  61. package/dist/console/static/font/codicon.5b7d6fac.ttf +0 -0
  62. package/dist/console/static/js/5079.72a51ca2.js +699 -0
  63. package/dist/console/static/js/5079.72a51ca2.js.LICENSE.txt +35 -0
  64. package/dist/console/static/js/7426.f8d483ea.js +1 -0
  65. package/dist/console/static/js/async/1008.4df521b7.js +1 -0
  66. package/dist/console/static/js/async/102.1d473ec7.js +1 -0
  67. package/dist/console/static/js/async/1134.3f9fd9e7.js +1 -0
  68. package/dist/console/static/js/async/1318.4b8e48e7.js +1 -0
  69. package/dist/console/static/js/async/1360.5606da88.js +7 -0
  70. package/dist/console/static/js/async/1546.045f484f.js +1 -0
  71. package/dist/console/static/js/async/1562.187de2a8.js +1 -0
  72. package/dist/console/static/js/async/168.456d4813.js +1 -0
  73. package/dist/console/static/js/async/1750.e6dc2664.js +1 -0
  74. package/dist/console/static/js/async/1994.3fc86066.js +1 -0
  75. package/dist/console/static/js/async/2348.613ae3d9.js +1 -0
  76. package/dist/console/static/js/async/2390.1b890b9d.js +1 -0
  77. package/dist/console/static/js/async/2414.9d040212.js +1 -0
  78. package/dist/console/static/js/async/2454.4c1784ab.js +1 -0
  79. package/dist/console/static/js/async/2498.f5f92030.js +1 -0
  80. package/dist/console/static/js/async/2924.b823cd1a.js +1 -0
  81. package/dist/console/static/js/async/3062.63fddea6.js +1 -0
  82. package/dist/console/static/js/async/3078.dd712008.js +1 -0
  83. package/dist/console/static/js/async/3198.1f307065.js +1 -0
  84. package/dist/console/static/js/async/3246.3d5a899f.js +1 -0
  85. package/dist/console/static/js/async/3286.871676eb.js +1 -0
  86. package/dist/console/static/js/async/342.10bf3b90.js +1 -0
  87. package/dist/console/static/js/async/3446.9681a4d7.js +1 -0
  88. package/dist/console/static/js/async/3698.ccfaabec.js +1 -0
  89. package/dist/console/static/js/async/3790.2a1106a6.js +1 -0
  90. package/dist/console/static/js/async/4231.b29784d4.js +1 -0
  91. package/dist/console/static/js/async/4551.515bd41d.js +1 -0
  92. package/dist/console/static/js/async/4596.40f6e71b.js +1 -0
  93. package/dist/console/static/js/async/4600.4aaebe6d.js +1 -0
  94. package/dist/console/static/js/async/4718.1aae022f.js +1 -0
  95. package/dist/console/static/js/async/4846.a347c020.js +1 -0
  96. package/dist/console/static/js/async/4860.83dadf89.js +1 -0
  97. package/dist/console/static/js/async/500.fcfa37cb.js +1 -0
  98. package/dist/console/static/js/async/5096.b360203d.js +1 -0
  99. package/dist/console/static/js/async/5222.043274fe.js +1 -0
  100. package/dist/console/static/js/async/5362.f498001c.js +1 -0
  101. package/dist/console/static/js/async/54.c94f0755.js +1 -0
  102. package/dist/console/static/js/async/5478.50dd9ef0.js +2 -0
  103. package/dist/console/static/js/async/5478.50dd9ef0.js.LICENSE.txt +3 -0
  104. package/dist/console/static/js/async/5507.a6a1f793.js +1 -0
  105. package/dist/console/static/js/async/5638.bc6b102d.js +1 -0
  106. package/dist/console/static/js/async/5722.e0029049.js +1 -0
  107. package/dist/console/static/js/async/5942.74635c6b.js +1 -0
  108. package/dist/console/static/js/async/5994.1c5629c1.js +1 -0
  109. package/dist/console/static/js/async/6054.6bddf720.js +1 -0
  110. package/dist/console/static/js/async/6118.45e754e5.js +1 -0
  111. package/dist/console/static/js/async/6127.adcbcbb6.js +1 -0
  112. package/dist/console/static/js/async/614.3f434c20.js +1 -0
  113. package/dist/console/static/js/async/6234.ba3b002d.js +1 -0
  114. package/dist/console/static/js/async/6310.6546a9ba.js +1 -0
  115. package/dist/console/static/js/async/6378.9f805419.js +1 -0
  116. package/dist/console/static/js/async/6380.e4433c49.js +1 -0
  117. package/dist/console/static/js/async/6418.f23bcfda.js +1 -0
  118. package/dist/console/static/js/async/6428.77c86114.js +1 -0
  119. package/dist/console/static/js/async/6443.83318a6c.js +1 -0
  120. package/dist/console/static/js/async/6508.2b445d62.js +3 -0
  121. package/dist/console/static/js/async/6542.e82a26c8.js +1 -0
  122. package/dist/console/static/js/async/6544.62111ecb.js +1 -0
  123. package/dist/console/static/js/async/6612.a0c9fcf4.js +1 -0
  124. package/dist/console/static/js/async/6740.695aebf0.js +1 -0
  125. package/dist/console/static/js/async/6822.dbbb32bc.js +1 -0
  126. package/dist/console/static/js/async/6824.ad3540ab.js +1 -0
  127. package/dist/console/static/js/async/6930.585dab94.js +1 -0
  128. package/dist/console/static/js/async/6982.c81b95e6.js +1 -0
  129. package/dist/console/static/js/async/7046.ab2378c1.js +1 -0
  130. package/dist/console/static/js/async/7110.a603277f.js +1 -0
  131. package/dist/console/static/js/async/7142.4a21366f.js +1 -0
  132. package/dist/console/static/js/async/7348.15cc6148.js +1373 -0
  133. package/dist/console/static/js/async/7348.15cc6148.js.LICENSE.txt +14 -0
  134. package/dist/console/static/js/async/7374.b1ac5c44.js +1 -0
  135. package/dist/console/static/js/async/742.847f17ca.js +1 -0
  136. package/dist/console/static/js/async/7446.743954d8.js +1 -0
  137. package/dist/console/static/js/async/7673.59bbbaac.js +1 -0
  138. package/dist/console/static/js/async/7684.c5760c8c.js +1 -0
  139. package/dist/console/static/js/async/7714.c30d0f94.js +1 -0
  140. package/dist/console/static/js/async/8118.36d5a3bf.js +298 -0
  141. package/dist/console/static/js/async/8145.4bcf043a.js +1 -0
  142. package/dist/console/static/js/async/8246.408de938.js +1 -0
  143. package/dist/console/static/js/async/8390.bdae1f7d.js +1 -0
  144. package/dist/console/static/js/async/8422.fd94dbe1.js +1 -0
  145. package/dist/console/static/js/async/8434.94a0e2ae.js +1 -0
  146. package/dist/console/static/js/async/8518.3158de13.js +1 -0
  147. package/dist/console/static/js/async/8564.fc2eb841.js +1 -0
  148. package/dist/console/static/js/async/8678.73af4c9b.js +1 -0
  149. package/dist/console/static/js/async/8694.79747168.js +1 -0
  150. package/dist/console/static/js/async/8756.1de37b83.js +1 -0
  151. package/dist/console/static/js/async/8804.7fe6bdf9.js +3 -0
  152. package/dist/console/static/js/async/8883.e717ee94.js +1 -0
  153. package/dist/console/static/js/async/8886.fe6e876c.js +1 -0
  154. package/dist/console/static/js/async/9030.fc1ae402.js +1 -0
  155. package/dist/console/static/js/async/9094.5598d084.js +1 -0
  156. package/dist/console/static/js/async/9218.ee7b84b7.js +1 -0
  157. package/dist/console/static/js/async/94.9b80bc35.js +1 -0
  158. package/dist/console/static/js/async/9526.92aba34c.js +1 -0
  159. package/dist/console/static/js/async/9762.f83bc4f3.js +1 -0
  160. package/dist/console/static/js/async/984.e11c113a.js +1 -0
  161. package/dist/console/static/js/async/9846.246653cd.js +1 -0
  162. package/dist/console/static/js/index.4487e1ff.js +1 -0
  163. package/dist/console/static/js/lib-react.15d7ca9a.js +2 -0
  164. package/dist/console/static/js/lib-react.15d7ca9a.js.LICENSE.txt +49 -0
  165. package/dist/coze-C6PMDPBI.js +49 -0
  166. package/dist/coze-E6VGRNLV.js +48 -0
  167. package/dist/dashboard.command-J7XOZNXU.js +8 -0
  168. package/dist/dashboard.command-RV2NHDKW.js +7 -0
  169. package/dist/dingtalk-JNRNRN7E.js +77 -0
  170. package/dist/dingtalk-WZGGIAHJ.js +76 -0
  171. package/dist/douyin-miniprogram-AIJPPIZH.js +41 -0
  172. package/dist/douyin-miniprogram-HCYZ5NBW.js +42 -0
  173. package/dist/figma-2YYNSCDX.js +103 -0
  174. package/dist/figma-RYOBMENP.js +102 -0
  175. package/dist/firebase-2IJDDBXX.js +112 -0
  176. package/dist/firebase-OYSY6HPT.js +111 -0
  177. package/dist/firecrawl-2T3SBUW7.js +66 -0
  178. package/dist/firecrawl-IYYXLAZM.js +65 -0
  179. package/dist/flyai-7FJ4TRAG.js +81 -0
  180. package/dist/flyai-QS5Q6FJR.js +82 -0
  181. package/dist/gitagent-MWI75OIX.js +725 -0
  182. package/dist/gitagent-YBMWY7NZ.js +726 -0
  183. package/dist/gitee-3N7OFOM7.js +53 -0
  184. package/dist/gitee-KVNK6KLZ.js +54 -0
  185. package/dist/github-LUEC2LID.js +143 -0
  186. package/dist/github-XRO5Z3GC.js +142 -0
  187. package/dist/google-ads-A3QAJI4D.js +88 -0
  188. package/dist/google-ads-VPKWTX67.js +89 -0
  189. package/dist/google-analytics-C4UR5ZR2.js +50 -0
  190. package/dist/google-analytics-XDYZA2B7.js +49 -0
  191. package/dist/google-workspace-LL3EWVHH.js +320 -0
  192. package/dist/google-workspace-YX35SHHX.js +321 -0
  193. package/dist/huawei-xiaoyi-6BSMGJHR.js +40 -0
  194. package/dist/huawei-xiaoyi-KPWLTSHB.js +41 -0
  195. package/dist/hubspot-DIUHGEDI.js +45 -0
  196. package/dist/hubspot-FTIEMNZO.js +44 -0
  197. package/dist/huggingface-MJCOXA7E.js +116 -0
  198. package/dist/huggingface-UUXK2RHK.js +117 -0
  199. package/dist/index.d.ts +3013 -0
  200. package/dist/index.js +15649 -0
  201. package/dist/inference-ai-image-generation-CMI6R5T3.js +106 -0
  202. package/dist/inference-ai-image-generation-PXV6IG4U.js +107 -0
  203. package/dist/inference-sh-7AZOLEFI.js +94 -0
  204. package/dist/inference-sh-ABQOD3YF.js +95 -0
  205. package/dist/init.command-6E24K4H3.js +9 -0
  206. package/dist/init.command-O4HG4HKR.js +10 -0
  207. package/dist/klaviyo-6K5YEFNH.js +45 -0
  208. package/dist/klaviyo-LDPBWBSS.js +44 -0
  209. package/dist/kuaidi100-HGFM5VK2.js +42 -0
  210. package/dist/kuaidi100-UHPFCVXP.js +41 -0
  211. package/dist/lark-6LNA3LUQ.js +103 -0
  212. package/dist/lark-URVBZNS4.js +102 -0
  213. package/dist/linear-7QFSFPOD.js +57 -0
  214. package/dist/linear-T4ORUP7N.js +56 -0
  215. package/dist/lovart-PDUXRUHJ.js +99 -0
  216. package/dist/lovart-QO3SK55T.js +100 -0
  217. package/dist/meta-ads-SCNFI45S.js +42 -0
  218. package/dist/meta-ads-V6XPZWX3.js +41 -0
  219. package/dist/miclaw-5CNTW7VV.js +36 -0
  220. package/dist/miclaw-TPPPS2WN.js +35 -0
  221. package/dist/model-provider-AVSFJSZP.js +393 -0
  222. package/dist/model-provider-KFB76XV5.js +392 -0
  223. package/dist/notion-FZK76MN2.js +69 -0
  224. package/dist/notion-WFA7KGZZ.js +70 -0
  225. package/dist/oceanengine-3JZUS3PP.js +43 -0
  226. package/dist/oceanengine-5BRIJVJE.js +42 -0
  227. package/dist/opencli-PFXHGCS2.js +81 -0
  228. package/dist/opencli-VIGRJTGH.js +80 -0
  229. package/dist/paypal-33UADIPR.js +54 -0
  230. package/dist/paypal-Z5JYHIWD.js +55 -0
  231. package/dist/playwright-MG5WHK47.js +58 -0
  232. package/dist/playwright-SQAQ3DZG.js +59 -0
  233. package/dist/plugins-HZBWK3WQ.js +120 -0
  234. package/dist/plugins-I4GD5SZX.js +121 -0
  235. package/dist/posthog-MU5MAJOQ.js +79 -0
  236. package/dist/posthog-RJRRKDWB.js +80 -0
  237. package/dist/salesforce-34FVIJTG.js +82 -0
  238. package/dist/salesforce-3QZ6OFVO.js +83 -0
  239. package/dist/sentry-MCIRMACU.js +111 -0
  240. package/dist/sentry-PIWW46VA.js +110 -0
  241. package/dist/seo-suite-4SQ3I67Q.js +54 -0
  242. package/dist/seo-suite-WJXMA3S4.js +55 -0
  243. package/dist/serve.command-5FMIPQRY.js +10 -0
  244. package/dist/serve.command-DNE6GPMK.js +9 -0
  245. package/dist/shadowob-JELOWHWX.js +1068 -0
  246. package/dist/shadowob-PRSMI5MW.js +1069 -0
  247. package/dist/sherlock-2PKY2E2Y.js +66 -0
  248. package/dist/sherlock-C5ZWPPVT.js +67 -0
  249. package/dist/shopify-GL3NFVGE.js +94 -0
  250. package/dist/shopify-R4G3UXM6.js +93 -0
  251. package/dist/skill-discovery-7INAUP4D.js +77 -0
  252. package/dist/skill-discovery-YPXXV622.js +78 -0
  253. package/dist/state-7MCZBTR5.js +17 -0
  254. package/dist/state-FGOFLFBE.js +18 -0
  255. package/dist/stripe-C22RR4ZS.js +83 -0
  256. package/dist/stripe-LJNPQ3CQ.js +82 -0
  257. package/dist/supabase-IRNQ54FJ.js +98 -0
  258. package/dist/supabase-N4ONFJNQ.js +97 -0
  259. package/dist/taobao-aipaas-LRR4GMO3.js +45 -0
  260. package/dist/taobao-aipaas-RVKORSF4.js +46 -0
  261. package/dist/tapd-3JPVJ7XH.js +46 -0
  262. package/dist/tapd-TMQRSMFG.js +47 -0
  263. package/dist/tencent-ads-IGD33LO7.js +42 -0
  264. package/dist/tencent-ads-UHC6OPBV.js +43 -0
  265. package/dist/tencent-docs-C3A4J3CJ.js +47 -0
  266. package/dist/tencent-docs-O2SC4FHL.js +48 -0
  267. package/dist/tencent-maps-HMMWMNF4.js +37 -0
  268. package/dist/tencent-maps-OQOKHVW2.js +36 -0
  269. package/dist/vercel-KOXDDTHX.js +73 -0
  270. package/dist/vercel-OLNVDWMG.js +74 -0
  271. package/dist/webflow-FULU5Q2I.js +114 -0
  272. package/dist/webflow-OMJKZM54.js +115 -0
  273. package/dist/wechat-miniprogram-skyline-KYCDMQNW.js +74 -0
  274. package/dist/wechat-miniprogram-skyline-VR4FVIQL.js +75 -0
  275. package/dist/wechat-pay-BCMAJ6UW.js +50 -0
  276. package/dist/wechat-pay-YQQKXVUI.js +51 -0
  277. package/dist/wonda-NGWIORYN.js +81 -0
  278. package/dist/wonda-RBABXFNM.js +82 -0
  279. package/dist/wordpress-woocommerce-RDIUTHYT.js +57 -0
  280. package/dist/wordpress-woocommerce-RNA5HB3N.js +58 -0
  281. package/dist/wps-DAEFQHDE.js +47 -0
  282. package/dist/wps-LUWHMZQQ.js +48 -0
  283. package/dist/yuque-HCHTJWNI.js +72 -0
  284. package/dist/yuque-KRH5O74J.js +71 -0
  285. package/images/RUNNERS.md +270 -0
  286. package/images/cc-connect-runner/entrypoint.mjs +311 -0
  287. package/images/claude-runner/Dockerfile +88 -0
  288. package/images/claude-runner/RUNNER.md +222 -0
  289. package/images/claude-runner/entrypoint.mjs +2 -0
  290. package/images/codex-runner/Dockerfile +87 -0
  291. package/images/codex-runner/RUNNER.md +226 -0
  292. package/images/codex-runner/entrypoint.mjs +2 -0
  293. package/images/gemini-runner/Dockerfile +87 -0
  294. package/images/gemini-runner/RUNNER.md +218 -0
  295. package/images/gemini-runner/entrypoint.mjs +2 -0
  296. package/images/hermes-runner/Dockerfile +74 -0
  297. package/images/hermes-runner/RUNNER.md +243 -0
  298. package/images/hermes-runner/entrypoint.mjs +283 -0
  299. package/images/openclaw-runner/Dockerfile +212 -0
  300. package/images/openclaw-runner/RUNNER.md +170 -0
  301. package/images/openclaw-runner/entrypoint.mjs +1113 -0
  302. package/images/openclaw-runner/warm-runtime-deps.mjs +95 -0
  303. package/images/opencode-runner/Dockerfile +87 -0
  304. package/images/opencode-runner/RUNNER.md +202 -0
  305. package/images/opencode-runner/entrypoint.mjs +2 -0
  306. package/package.json +121 -0
  307. package/templates/agent-marketplace-buddy.template.json +131 -0
  308. package/templates/ai-werewolf.template.json +92 -0
  309. package/templates/bmad-method-buddy.template.json +123 -0
  310. package/templates/brain-fix.template.json +92 -0
  311. package/templates/claude-ads-buddy.template.json +123 -0
  312. package/templates/claude-financial-services-buddy.template.json +111 -0
  313. package/templates/claude-seo-buddy.template.json +123 -0
  314. package/templates/code-arena.template.json +92 -0
  315. package/templates/daily-brief.template.json +92 -0
  316. package/templates/e-wife.template.json +92 -0
  317. package/templates/everything-claude-code-buddy.template.json +125 -0
  318. package/templates/financial-freedom.template.json +92 -0
  319. package/templates/gitstory.template.json +92 -0
  320. package/templates/google-workspace-buddy.template.json +88 -0
  321. package/templates/gsd-buddy.template.json +119 -0
  322. package/templates/gstack-buddy.template.json +143 -0
  323. package/templates/gstack.template.json +92 -0
  324. package/templates/little-match-girl.template.json +114 -0
  325. package/templates/lovart-buddy.template.json +110 -0
  326. package/templates/marketingskills-buddy.template.json +102 -0
  327. package/templates/retire-buddy.template.json +92 -0
  328. package/templates/scientific-skills-buddy.template.json +119 -0
  329. package/templates/seomachine-buddy.template.json +113 -0
  330. package/templates/shadow-server-app-demo.template.json +105 -0
  331. package/templates/slavingia-skills-buddy.template.json +102 -0
  332. package/templates/superclaude-buddy.template.json +146 -0
  333. package/templates/superpowers-buddy.template.json +108 -0
  334. package/templates/world-pulse.template.json +92 -0
@@ -0,0 +1,392 @@
1
+ import {
2
+ definePlugin
3
+ } from "./chunk-JY2HTT7Q.js";
4
+ import "./chunk-R5U7XKVJ.js";
5
+
6
+ // src/plugins/model-provider/manifest.json
7
+ var manifest_default = {
8
+ id: "model-provider",
9
+ name: "Model Provider",
10
+ description: "Auto-discovers AI model providers from environment variables. Injects provider configs for any detected API keys (Anthropic, OpenAI, DeepSeek, Gemini, Grok, OpenRouter, or custom OpenAI-compatible endpoints) \u2014 no manual registry.providers needed.",
11
+ version: "1.0.0",
12
+ category: "ai-provider",
13
+ icon: "cpu",
14
+ auth: {
15
+ type: "none",
16
+ fields: []
17
+ },
18
+ config: {
19
+ type: "object",
20
+ properties: {}
21
+ },
22
+ capabilities: ["auth-provider", "config-builder"],
23
+ tags: ["ai", "llm", "models", "provider", "model-selection"]
24
+ };
25
+
26
+ // src/plugins/model-provider/index.ts
27
+ var PROVIDER_PROFILE_MODELS_ENV_KEY = "SHADOW_PROVIDER_PROFILE_MODELS_JSON";
28
+ var ALL_TAGS = ["default", "fast", "flash", "reasoning", "vision"];
29
+ var BUILTIN_PROVIDER_CATALOGS = [
30
+ {
31
+ id: "anthropic",
32
+ api: "anthropic-messages",
33
+ envKey: "ANTHROPIC_API_KEY",
34
+ envKeyAliases: ["ANTHROPIC_AUTH_TOKEN"],
35
+ baseUrl: "https://api.anthropic.com/v1",
36
+ baseUrlEnvKey: "ANTHROPIC_BASE_URL",
37
+ modelEnvKey: "ANTHROPIC_MODEL",
38
+ priority: 10,
39
+ models: [
40
+ { id: "claude-sonnet-4-5", tags: ["default", "vision"] },
41
+ { id: "claude-3-5-haiku-20241022", tags: ["flash"] },
42
+ { id: "claude-opus-4-5", tags: ["reasoning"] }
43
+ ]
44
+ },
45
+ {
46
+ id: "openai",
47
+ api: "openai-completions",
48
+ envKey: "OPENAI_API_KEY",
49
+ baseUrl: "https://api.openai.com/v1",
50
+ priority: 20,
51
+ models: [
52
+ { id: "gpt-4o", tags: ["default", "vision"] },
53
+ { id: "gpt-4o-mini", tags: ["flash"] },
54
+ { id: "o3", tags: ["reasoning"] }
55
+ ]
56
+ },
57
+ {
58
+ id: "gemini",
59
+ api: "google-generative-ai",
60
+ envKey: "GEMINI_API_KEY",
61
+ envKeyAliases: ["GOOGLE_API_KEY", "GOOGLE_AI_API_KEY"],
62
+ baseUrl: "https://generativelanguage.googleapis.com/v1beta",
63
+ priority: 30,
64
+ models: [
65
+ { id: "gemini-2.0-flash", tags: ["default", "flash", "vision"] },
66
+ { id: "gemini-2.5-pro", tags: ["reasoning"] }
67
+ ]
68
+ },
69
+ {
70
+ id: "deepseek",
71
+ api: "openai-completions",
72
+ envKey: "DEEPSEEK_API_KEY",
73
+ baseUrl: "https://api.deepseek.com/v1",
74
+ priority: 50,
75
+ models: [
76
+ { id: "deepseek-chat", tags: ["default", "flash"] },
77
+ { id: "deepseek-reasoner", tags: ["reasoning"] }
78
+ ]
79
+ },
80
+ {
81
+ id: "qwen",
82
+ api: "openai-completions",
83
+ envKey: "DASHSCOPE_API_KEY",
84
+ envKeyAliases: ["ALIBABA_API_KEY", "QWEN_API_KEY"],
85
+ baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
86
+ priority: 52,
87
+ models: [
88
+ { id: "qwen-turbo", name: "Qwen Turbo", tags: ["fast", "flash"] },
89
+ { id: "qwen-plus", name: "Qwen Plus", tags: ["default"] },
90
+ { id: "qwen-max", name: "Qwen Max", tags: ["reasoning"] },
91
+ { id: "qwen-vl-plus", name: "Qwen VL Plus", tags: ["vision"] }
92
+ ]
93
+ },
94
+ {
95
+ id: "minimax",
96
+ api: "openai-completions",
97
+ envKey: "MINIMAX_API_KEY",
98
+ baseUrl: "https://api.minimax.io/v1",
99
+ priority: 54,
100
+ models: [
101
+ { id: "MiniMax-M2.1", name: "MiniMax M2.1", tags: ["default"] },
102
+ {
103
+ id: "MiniMax-M2.1-highspeed",
104
+ name: "MiniMax M2.1 Highspeed",
105
+ tags: ["fast", "flash"]
106
+ },
107
+ { id: "MiniMax-M2.5", name: "MiniMax M2.5", tags: ["reasoning"] }
108
+ ]
109
+ },
110
+ {
111
+ id: "moonshot",
112
+ api: "openai-completions",
113
+ envKey: "MOONSHOT_API_KEY",
114
+ envKeyAliases: ["KIMI_API_KEY"],
115
+ baseUrl: "https://api.moonshot.ai/v1",
116
+ priority: 56,
117
+ models: [
118
+ { id: "moonshot-v1-8k", name: "Moonshot 8K", tags: ["fast", "flash"] },
119
+ { id: "moonshot-v1-32k", name: "Moonshot 32K", tags: ["default"] },
120
+ { id: "moonshot-v1-128k", name: "Moonshot 128K", tags: ["reasoning"] }
121
+ ]
122
+ },
123
+ {
124
+ id: "zai",
125
+ api: "openai-completions",
126
+ envKey: "ZAI_API_KEY",
127
+ envKeyAliases: ["ZHIPUAI_API_KEY", "GLM_API_KEY", "BIGMODEL_API_KEY"],
128
+ baseUrl: "https://api.z.ai/api/paas/v4",
129
+ priority: 58,
130
+ models: [
131
+ {
132
+ id: "glm-4.5-air",
133
+ name: "GLM 4.5 Air",
134
+ tags: ["fast", "flash", "reasoning"]
135
+ },
136
+ { id: "glm-4.5", name: "GLM 4.5", tags: ["default", "reasoning"] },
137
+ { id: "glm-4.5v", name: "GLM 4.5V", tags: ["vision"] }
138
+ ]
139
+ },
140
+ {
141
+ id: "openrouter",
142
+ api: "openai-completions",
143
+ envKey: "OPENROUTER_API_KEY",
144
+ baseUrl: "https://openrouter.ai/api/v1",
145
+ priority: 60,
146
+ models: [{ id: "auto", tags: ["default", "flash", "reasoning", "vision"] }]
147
+ },
148
+ {
149
+ id: "grok",
150
+ api: "openai-completions",
151
+ envKey: "XAI_API_KEY",
152
+ envKeyAliases: ["GROK_API_KEY"],
153
+ baseUrl: "https://api.x.ai/v1",
154
+ priority: 62,
155
+ models: [
156
+ { id: "grok-4.1", name: "Grok 4.1", tags: ["default", "reasoning"] },
157
+ { id: "grok-4.1-fast", name: "Grok 4.1 Fast", tags: ["fast", "flash"] }
158
+ ]
159
+ }
160
+ ];
161
+ function providerCatalogs(ctx) {
162
+ return ctx.pluginRegistry.getAll().flatMap((plugin) => plugin.providerCatalogs ?? []).filter((catalog) => catalog.allowEnvDetection !== false).sort((a, b) => (a.priority ?? 1e3) - (b.priority ?? 1e3));
163
+ }
164
+ function resolveEnvKey(catalog, env) {
165
+ for (const key of [catalog.envKey, ...catalog.envKeyAliases ?? []]) {
166
+ if (env[key] ?? process.env[key]) return key;
167
+ }
168
+ return void 0;
169
+ }
170
+ function runtimeValue(key, env) {
171
+ if (!key) return void 0;
172
+ return env[key] ?? process.env[key];
173
+ }
174
+ function modelTagAliases(tag) {
175
+ return tag === "fast" || tag === "flash" ? ["fast", "flash"] : [tag];
176
+ }
177
+ function normalizeProfileModel(raw) {
178
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) return null;
179
+ const record = raw;
180
+ const id = typeof record.id === "string" ? record.id.trim() : "";
181
+ if (!id) return null;
182
+ const tags = Array.isArray(record.tags) ? record.tags.filter((tag) => typeof tag === "string").map((tag) => tag.trim().toLowerCase()).filter((tag) => ALL_TAGS.includes(tag)) : void 0;
183
+ const contextWindow = typeof record.contextWindow === "number" && Number.isFinite(record.contextWindow) ? record.contextWindow : void 0;
184
+ const maxTokens = typeof record.maxTokens === "number" && Number.isFinite(record.maxTokens) ? record.maxTokens : void 0;
185
+ return {
186
+ id,
187
+ ...typeof record.name === "string" && record.name.trim() ? { name: record.name.trim() } : {},
188
+ ...tags && tags.length > 0 ? { tags: [...new Set(tags)] } : {},
189
+ ...contextWindow ? { contextWindow } : {},
190
+ ...maxTokens ? { maxTokens } : {}
191
+ };
192
+ }
193
+ function parseProviderProfileModelSets(env) {
194
+ const value = runtimeValue(PROVIDER_PROFILE_MODELS_ENV_KEY, env);
195
+ if (!value) return [];
196
+ try {
197
+ const parsed = JSON.parse(value);
198
+ if (!Array.isArray(parsed)) return [];
199
+ return parsed.map((item) => {
200
+ if (!item || typeof item !== "object" || Array.isArray(item)) return null;
201
+ const record = item;
202
+ const providerId = typeof record.providerId === "string" ? record.providerId.trim() : "";
203
+ const profileId = typeof record.profileId === "string" ? record.profileId.trim() : void 0;
204
+ const models = Array.isArray(record.models) ? record.models.map(normalizeProfileModel).filter((model) => Boolean(model)) : [];
205
+ return providerId && models.length > 0 ? { providerId, profileId, models } : null;
206
+ }).filter((entry) => Boolean(entry));
207
+ } catch {
208
+ return [];
209
+ }
210
+ }
211
+ function mergeModelEntries(catalog, profileModelSets) {
212
+ const profileModels = profileModelSets.filter((set) => set.providerId === catalog.id).flatMap((set) => set.models);
213
+ if (profileModels.length === 0) return catalog;
214
+ const seen = /* @__PURE__ */ new Set();
215
+ const models = [];
216
+ for (const model of [...profileModels, ...catalog.models]) {
217
+ if (seen.has(model.id)) continue;
218
+ seen.add(model.id);
219
+ models.push(model);
220
+ }
221
+ return { ...catalog, models };
222
+ }
223
+ function modelEntries(models) {
224
+ return models.map((model) => ({
225
+ id: model.id,
226
+ name: model.name ?? model.id,
227
+ ...model.contextWindow != null ? { contextWindow: model.contextWindow } : {},
228
+ ...model.maxTokens != null ? { maxTokens: model.maxTokens } : {}
229
+ }));
230
+ }
231
+ function withModelOverride(catalog, env) {
232
+ const rawModelOverride = runtimeValue(catalog.modelEnvKey, env)?.trim();
233
+ const modelOverride = rawModelOverride?.startsWith(`${catalog.id}/`) ? rawModelOverride.slice(catalog.id.length + 1) : rawModelOverride;
234
+ if (!modelOverride) return { catalog, models: catalog.models };
235
+ const models = [
236
+ { id: modelOverride, tags: [...ALL_TAGS] },
237
+ ...catalog.models
238
+ ];
239
+ return { catalog: { ...catalog, models }, models };
240
+ }
241
+ function buildProviderEntry(catalog, env) {
242
+ const resolvedEnvKey = resolveEnvKey(catalog, env);
243
+ if (!resolvedEnvKey) return null;
244
+ const baseUrl = runtimeValue(catalog.baseUrlEnvKey, env) ?? catalog.baseUrl;
245
+ if (catalog.id === "custom" && !baseUrl) return null;
246
+ const resolved = withModelOverride(catalog, env);
247
+ const entry = {
248
+ api: catalog.api,
249
+ apiKey: `\${env:${resolvedEnvKey}}`,
250
+ request: { allowPrivateNetwork: true },
251
+ models: modelEntries(resolved.models)
252
+ };
253
+ if (baseUrl) entry.baseUrl = baseUrl;
254
+ return { catalog: resolved.catalog, entry };
255
+ }
256
+ function resolveModelsBySelector(catalogs, selector) {
257
+ const refs = [];
258
+ const normalized = selector.trim().toLowerCase();
259
+ const tag = ALL_TAGS.includes(normalized) ? normalized : void 0;
260
+ const aliases = tag ? modelTagAliases(tag) : [];
261
+ for (const catalog of catalogs) {
262
+ const model = catalog.models.find(
263
+ (m) => m.id.toLowerCase() === normalized || `${catalog.id}/${m.id}`.toLowerCase() === normalized || m.tags?.some((modelTag) => aliases.includes(modelTag))
264
+ );
265
+ if (model) refs.push(`${catalog.id}/${model.id}`);
266
+ }
267
+ return refs;
268
+ }
269
+ function selectedSelector(ctx) {
270
+ const agentUseEntry = ctx.agent.use?.find((e) => e.plugin === "model-provider");
271
+ const templateUseEntry = ctx.config.use?.find((e) => e.plugin === "model-provider");
272
+ const rawSelector = agentUseEntry?.options?.selector ?? agentUseEntry?.options?.tag ?? agentUseEntry?.options?.model ?? templateUseEntry?.options?.selector ?? templateUseEntry?.options?.tag ?? templateUseEntry?.options?.model ?? "default";
273
+ return rawSelector?.trim() || "default";
274
+ }
275
+ function envCandidates(catalogs) {
276
+ const keys = /* @__PURE__ */ new Set([PROVIDER_PROFILE_MODELS_ENV_KEY]);
277
+ for (const catalog of catalogs) {
278
+ keys.add(catalog.envKey);
279
+ for (const alias of catalog.envKeyAliases ?? []) keys.add(alias);
280
+ if (catalog.baseUrlEnvKey) keys.add(catalog.baseUrlEnvKey);
281
+ if (catalog.modelEnvKey) keys.add(catalog.modelEnvKey);
282
+ }
283
+ return [...keys];
284
+ }
285
+ function hasOpenAICompatibleProxy(env) {
286
+ return Boolean(
287
+ runtimeValue("OPENAI_COMPATIBLE_API_KEY", env) && runtimeValue("OPENAI_COMPATIBLE_BASE_URL", env)
288
+ );
289
+ }
290
+ function activeProviderCatalogs(ctx, env) {
291
+ const catalogs = providerCatalogs(ctx);
292
+ if (!hasOpenAICompatibleProxy(env)) return catalogs;
293
+ return catalogs.filter((catalog) => catalog.id === "custom");
294
+ }
295
+ var model_provider_default = definePlugin(manifest_default, (api) => {
296
+ for (const catalog of BUILTIN_PROVIDER_CATALOGS) {
297
+ api.addProviderCatalog(catalog);
298
+ }
299
+ api.addProviderCatalog({
300
+ id: "custom",
301
+ api: "openai-completions",
302
+ envKey: "OPENAI_COMPATIBLE_API_KEY",
303
+ baseUrlEnvKey: "OPENAI_COMPATIBLE_BASE_URL",
304
+ modelEnvKey: "OPENAI_COMPATIBLE_MODEL_ID",
305
+ priority: 5,
306
+ models: [{ id: "default", tags: ["default", "flash", "reasoning", "vision"] }]
307
+ });
308
+ api.addSecretFields([
309
+ {
310
+ key: "OPENAI_COMPATIBLE_API_KEY",
311
+ label: "OpenAI-compatible API Key",
312
+ required: false,
313
+ sensitive: true
314
+ },
315
+ {
316
+ key: "OPENAI_COMPATIBLE_BASE_URL",
317
+ label: "OpenAI-compatible Base URL",
318
+ required: false,
319
+ sensitive: false
320
+ },
321
+ {
322
+ key: "OPENAI_COMPATIBLE_MODEL_ID",
323
+ label: "OpenAI-compatible Model ID",
324
+ required: false,
325
+ sensitive: false
326
+ }
327
+ ]);
328
+ api.onBuildConfig((ctx) => {
329
+ const env = ctx.secrets;
330
+ const profileModelSets = parseProviderProfileModelSets(env);
331
+ const providers = {};
332
+ const discovered = [];
333
+ for (const catalog of activeProviderCatalogs(ctx, env).map(
334
+ (entry) => mergeModelEntries(entry, profileModelSets)
335
+ )) {
336
+ const provider = buildProviderEntry(catalog, env);
337
+ if (!provider) continue;
338
+ providers[catalog.id] = provider.entry;
339
+ discovered.push(provider.catalog);
340
+ }
341
+ if (Object.keys(providers).length === 0) return {};
342
+ const fragment = {
343
+ models: {
344
+ mode: "merge",
345
+ providers
346
+ }
347
+ };
348
+ const modelRefs = resolveModelsBySelector(discovered, selectedSelector(ctx));
349
+ if (modelRefs.length > 0) {
350
+ const [primary, ...fallbacks] = modelRefs;
351
+ fragment.agents = {
352
+ defaults: {
353
+ model: {
354
+ primary,
355
+ ...fallbacks.length > 0 ? { fallbacks } : {}
356
+ }
357
+ }
358
+ };
359
+ }
360
+ return fragment;
361
+ });
362
+ api.onBuildEnv((ctx) => {
363
+ const env = ctx.secrets;
364
+ const out = {};
365
+ for (const key of envCandidates(activeProviderCatalogs(ctx, env))) {
366
+ const value = runtimeValue(key, env);
367
+ if (value) out[key] = value;
368
+ }
369
+ return out;
370
+ });
371
+ api.onValidate((ctx) => {
372
+ const env = ctx.secrets;
373
+ const keys = envCandidates(providerCatalogs(ctx));
374
+ const found = keys.some((key) => runtimeValue(key, env));
375
+ if (!found) {
376
+ return {
377
+ valid: true,
378
+ errors: [
379
+ {
380
+ path: "use[model-provider]",
381
+ message: "model-provider: no provider credentials detected. Configure a saved provider profile or set one provider env var such as ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, DEEPSEEK_API_KEY, XAI_API_KEY, OPENROUTER_API_KEY, or OPENAI_COMPATIBLE_API_KEY.",
382
+ severity: "warning"
383
+ }
384
+ ]
385
+ };
386
+ }
387
+ return { valid: true, errors: [] };
388
+ });
389
+ });
390
+ export {
391
+ model_provider_default as default
392
+ };
@@ -0,0 +1,69 @@
1
+ import {
2
+ defineSkillPlugin
3
+ } from "./chunk-JY2HTT7Q.js";
4
+ import "./chunk-R5U7XKVJ.js";
5
+
6
+ // src/plugins/notion/manifest.json
7
+ var manifest_default = {
8
+ id: "notion",
9
+ name: "Notion",
10
+ description: "Connect agents to Notion for page management, database queries, search, and knowledge management via the official Notion MCP server",
11
+ version: "1.0.0",
12
+ category: "productivity",
13
+ icon: "file-text",
14
+ website: "https://notion.so",
15
+ docs: "https://github.com/makenotion/notion-mcp-server",
16
+ auth: {
17
+ type: "token",
18
+ fields: [
19
+ {
20
+ key: "NOTION_TOKEN",
21
+ label: "Notion Integration Token",
22
+ description: "Internal integration token from https://www.notion.so/profile/integrations",
23
+ required: true,
24
+ sensitive: true,
25
+ placeholder: "ntn_..."
26
+ }
27
+ ]
28
+ },
29
+ config: {
30
+ type: "object",
31
+ properties: {
32
+ readOnly: {
33
+ type: "boolean",
34
+ default: false,
35
+ description: "Restrict integration to read-only capabilities"
36
+ }
37
+ }
38
+ },
39
+ capabilities: ["tool", "data-source", "mcp"],
40
+ tags: ["productivity", "wiki", "docs", "tasks", "mcp", "notion"],
41
+ popularity: 90
42
+ };
43
+
44
+ // src/plugins/notion/index.ts
45
+ var notion_default = defineSkillPlugin(manifest_default, {
46
+ skills: {
47
+ bundled: ["notion"],
48
+ entries: [
49
+ {
50
+ id: "notion",
51
+ name: "Notion",
52
+ description: "Page management, database queries, search, knowledge management",
53
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: OpenClaw template syntax
54
+ env: { NOTION_API_KEY: "${env:NOTION_API_KEY}" }
55
+ }
56
+ ],
57
+ install: { npmPackages: ["@notionhq/notion-mcp-server"] }
58
+ },
59
+ mcp: {
60
+ transport: "stdio",
61
+ command: "npx",
62
+ args: ["-y", "@notionhq/notion-mcp-server"],
63
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: OpenClaw template syntax
64
+ env: { NOTION_API_KEY: "${env:NOTION_API_KEY}" }
65
+ }
66
+ });
67
+ export {
68
+ notion_default as default
69
+ };
@@ -0,0 +1,70 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ defineSkillPlugin
4
+ } from "./chunk-CTNUKOQE.js";
5
+ import "./chunk-AD3JTIU3.js";
6
+
7
+ // src/plugins/notion/manifest.json
8
+ var manifest_default = {
9
+ id: "notion",
10
+ name: "Notion",
11
+ description: "Connect agents to Notion for page management, database queries, search, and knowledge management via the official Notion MCP server",
12
+ version: "1.0.0",
13
+ category: "productivity",
14
+ icon: "file-text",
15
+ website: "https://notion.so",
16
+ docs: "https://github.com/makenotion/notion-mcp-server",
17
+ auth: {
18
+ type: "token",
19
+ fields: [
20
+ {
21
+ key: "NOTION_TOKEN",
22
+ label: "Notion Integration Token",
23
+ description: "Internal integration token from https://www.notion.so/profile/integrations",
24
+ required: true,
25
+ sensitive: true,
26
+ placeholder: "ntn_..."
27
+ }
28
+ ]
29
+ },
30
+ config: {
31
+ type: "object",
32
+ properties: {
33
+ readOnly: {
34
+ type: "boolean",
35
+ default: false,
36
+ description: "Restrict integration to read-only capabilities"
37
+ }
38
+ }
39
+ },
40
+ capabilities: ["tool", "data-source", "mcp"],
41
+ tags: ["productivity", "wiki", "docs", "tasks", "mcp", "notion"],
42
+ popularity: 90
43
+ };
44
+
45
+ // src/plugins/notion/index.ts
46
+ var notion_default = defineSkillPlugin(manifest_default, {
47
+ skills: {
48
+ bundled: ["notion"],
49
+ entries: [
50
+ {
51
+ id: "notion",
52
+ name: "Notion",
53
+ description: "Page management, database queries, search, knowledge management",
54
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: OpenClaw template syntax
55
+ env: { NOTION_API_KEY: "${env:NOTION_API_KEY}" }
56
+ }
57
+ ],
58
+ install: { npmPackages: ["@notionhq/notion-mcp-server"] }
59
+ },
60
+ mcp: {
61
+ transport: "stdio",
62
+ command: "npx",
63
+ args: ["-y", "@notionhq/notion-mcp-server"],
64
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: OpenClaw template syntax
65
+ env: { NOTION_API_KEY: "${env:NOTION_API_KEY}" }
66
+ }
67
+ });
68
+ export {
69
+ notion_default as default
70
+ };
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ connectorField,
4
+ connectorManifest
5
+ } from "./chunk-SVMXSIMG.js";
6
+ import "./chunk-RECNVWMT.js";
7
+ import {
8
+ defineConnectorPlugin
9
+ } from "./chunk-CTNUKOQE.js";
10
+ import "./chunk-AD3JTIU3.js";
11
+
12
+ // src/plugins/oceanengine/index.ts
13
+ var manifest = connectorManifest({
14
+ id: "oceanengine",
15
+ name: "OceanEngine",
16
+ description: "OceanEngine advertising workflows for campaign diagnosis, spend anomalies, creative review, report analysis, CRM leads, and marketing operations.",
17
+ category: "analytics",
18
+ icon: "megaphone",
19
+ website: "https://open.oceanengine.com",
20
+ docs: "https://open.oceanengine.com/mcp",
21
+ fields: [
22
+ connectorField("OCEANENGINE_ACCESS_TOKEN", "Access token", {
23
+ description: "OceanEngine OpenAPI access token.",
24
+ placeholder: "Access token",
25
+ helpUrl: "https://open.oceanengine.com/mcp"
26
+ }),
27
+ connectorField("OCEANENGINE_ADVERTISER_ID", "Advertiser ID", {
28
+ description: "Default advertiser ID.",
29
+ required: false,
30
+ sensitive: false,
31
+ placeholder: "Advertiser ID"
32
+ })
33
+ ],
34
+ capabilities: ["tool", "data-source", "action", "mcp"],
35
+ tags: ["oceanengine", "ads", "campaigns", "creative", "crm", "reports", "mcp"],
36
+ popularity: 92
37
+ });
38
+ var oceanengine_default = defineConnectorPlugin(manifest, {
39
+ prompt: "Use OceanEngine for campaign audits, budget anomalies, creative review, lead analysis, reports, and marketing operations. Confirm write actions before creating or changing campaigns, assets, or CRM data."
40
+ });
41
+ export {
42
+ oceanengine_default as default
43
+ };
@@ -0,0 +1,42 @@
1
+ import {
2
+ connectorField,
3
+ connectorManifest
4
+ } from "./chunk-EEFMJYKB.js";
5
+ import "./chunk-POSVEKIY.js";
6
+ import {
7
+ defineConnectorPlugin
8
+ } from "./chunk-JY2HTT7Q.js";
9
+ import "./chunk-R5U7XKVJ.js";
10
+
11
+ // src/plugins/oceanengine/index.ts
12
+ var manifest = connectorManifest({
13
+ id: "oceanengine",
14
+ name: "OceanEngine",
15
+ description: "OceanEngine advertising workflows for campaign diagnosis, spend anomalies, creative review, report analysis, CRM leads, and marketing operations.",
16
+ category: "analytics",
17
+ icon: "megaphone",
18
+ website: "https://open.oceanengine.com",
19
+ docs: "https://open.oceanengine.com/mcp",
20
+ fields: [
21
+ connectorField("OCEANENGINE_ACCESS_TOKEN", "Access token", {
22
+ description: "OceanEngine OpenAPI access token.",
23
+ placeholder: "Access token",
24
+ helpUrl: "https://open.oceanengine.com/mcp"
25
+ }),
26
+ connectorField("OCEANENGINE_ADVERTISER_ID", "Advertiser ID", {
27
+ description: "Default advertiser ID.",
28
+ required: false,
29
+ sensitive: false,
30
+ placeholder: "Advertiser ID"
31
+ })
32
+ ],
33
+ capabilities: ["tool", "data-source", "action", "mcp"],
34
+ tags: ["oceanengine", "ads", "campaigns", "creative", "crm", "reports", "mcp"],
35
+ popularity: 92
36
+ });
37
+ var oceanengine_default = defineConnectorPlugin(manifest, {
38
+ prompt: "Use OceanEngine for campaign audits, budget anomalies, creative review, lead analysis, reports, and marketing operations. Confirm write actions before creating or changing campaigns, assets, or CRM data."
39
+ });
40
+ export {
41
+ oceanengine_default as default
42
+ };