@better-openclaw/core 1.0.0

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 (461) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-lint.log +360 -0
  3. package/.turbo/turbo-typecheck.log +4 -0
  4. package/dist/bare-metal-partition.d.ts +22 -0
  5. package/dist/bare-metal-partition.d.ts.map +1 -0
  6. package/dist/bare-metal-partition.js +49 -0
  7. package/dist/bare-metal-partition.js.map +1 -0
  8. package/dist/composer.d.ts +17 -0
  9. package/dist/composer.d.ts.map +1 -0
  10. package/dist/composer.js +305 -0
  11. package/dist/composer.js.map +1 -0
  12. package/dist/generate.d.ts +7 -0
  13. package/dist/generate.d.ts.map +1 -0
  14. package/dist/generate.js +218 -0
  15. package/dist/generate.js.map +1 -0
  16. package/dist/generators/bare-metal-install.d.ts +18 -0
  17. package/dist/generators/bare-metal-install.d.ts.map +1 -0
  18. package/dist/generators/bare-metal-install.js +228 -0
  19. package/dist/generators/bare-metal-install.js.map +1 -0
  20. package/dist/generators/caddy.d.ts +13 -0
  21. package/dist/generators/caddy.d.ts.map +1 -0
  22. package/dist/generators/caddy.js +85 -0
  23. package/dist/generators/caddy.js.map +1 -0
  24. package/dist/generators/env.d.ts +42 -0
  25. package/dist/generators/env.d.ts.map +1 -0
  26. package/dist/generators/env.js +276 -0
  27. package/dist/generators/env.js.map +1 -0
  28. package/dist/generators/grafana.d.ts +19 -0
  29. package/dist/generators/grafana.d.ts.map +1 -0
  30. package/dist/generators/grafana.js +247 -0
  31. package/dist/generators/grafana.js.map +1 -0
  32. package/dist/generators/n8n-workflows.d.ts +7 -0
  33. package/dist/generators/n8n-workflows.d.ts.map +1 -0
  34. package/dist/generators/n8n-workflows.js +78 -0
  35. package/dist/generators/n8n-workflows.js.map +1 -0
  36. package/dist/generators/native-services.d.ts +13 -0
  37. package/dist/generators/native-services.d.ts.map +1 -0
  38. package/dist/generators/native-services.js +85 -0
  39. package/dist/generators/native-services.js.map +1 -0
  40. package/dist/generators/postgres-init.d.ts +27 -0
  41. package/dist/generators/postgres-init.d.ts.map +1 -0
  42. package/dist/generators/postgres-init.js +119 -0
  43. package/dist/generators/postgres-init.js.map +1 -0
  44. package/dist/generators/prometheus.d.ts +10 -0
  45. package/dist/generators/prometheus.d.ts.map +1 -0
  46. package/dist/generators/prometheus.js +79 -0
  47. package/dist/generators/prometheus.js.map +1 -0
  48. package/dist/generators/readme.d.ts +21 -0
  49. package/dist/generators/readme.d.ts.map +1 -0
  50. package/dist/generators/readme.js +224 -0
  51. package/dist/generators/readme.js.map +1 -0
  52. package/dist/generators/scripts.d.ts +7 -0
  53. package/dist/generators/scripts.d.ts.map +1 -0
  54. package/dist/generators/scripts.js +352 -0
  55. package/dist/generators/scripts.js.map +1 -0
  56. package/dist/generators/skills.d.ts +10 -0
  57. package/dist/generators/skills.d.ts.map +1 -0
  58. package/dist/generators/skills.js +596 -0
  59. package/dist/generators/skills.js.map +1 -0
  60. package/dist/index.d.ts +24 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +27 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/presets/registry.d.ts +5 -0
  65. package/dist/presets/registry.d.ts.map +1 -0
  66. package/dist/presets/registry.js +121 -0
  67. package/dist/presets/registry.js.map +1 -0
  68. package/dist/resolver.d.ts +17 -0
  69. package/dist/resolver.d.ts.map +1 -0
  70. package/dist/resolver.js +254 -0
  71. package/dist/resolver.js.map +1 -0
  72. package/dist/schema.d.ts +2426 -0
  73. package/dist/schema.d.ts.map +1 -0
  74. package/dist/schema.js +259 -0
  75. package/dist/schema.js.map +1 -0
  76. package/dist/services/definitions/anything-llm.d.ts +3 -0
  77. package/dist/services/definitions/anything-llm.d.ts.map +1 -0
  78. package/dist/services/definitions/anything-llm.js +39 -0
  79. package/dist/services/definitions/anything-llm.js.map +1 -0
  80. package/dist/services/definitions/appflowy.d.ts +3 -0
  81. package/dist/services/definitions/appflowy.d.ts.map +1 -0
  82. package/dist/services/definitions/appflowy.js +39 -0
  83. package/dist/services/definitions/appflowy.js.map +1 -0
  84. package/dist/services/definitions/beszel.d.ts +3 -0
  85. package/dist/services/definitions/beszel.d.ts.map +1 -0
  86. package/dist/services/definitions/beszel.js +39 -0
  87. package/dist/services/definitions/beszel.js.map +1 -0
  88. package/dist/services/definitions/browserless.d.ts +3 -0
  89. package/dist/services/definitions/browserless.d.ts.map +1 -0
  90. package/dist/services/definitions/browserless.js +77 -0
  91. package/dist/services/definitions/browserless.js.map +1 -0
  92. package/dist/services/definitions/caddy.d.ts +3 -0
  93. package/dist/services/definitions/caddy.d.ts.map +1 -0
  94. package/dist/services/definitions/caddy.js +50 -0
  95. package/dist/services/definitions/caddy.js.map +1 -0
  96. package/dist/services/definitions/chromadb.d.ts +3 -0
  97. package/dist/services/definitions/chromadb.d.ts.map +1 -0
  98. package/dist/services/definitions/chromadb.js +61 -0
  99. package/dist/services/definitions/chromadb.js.map +1 -0
  100. package/dist/services/definitions/claude-code.d.ts +3 -0
  101. package/dist/services/definitions/claude-code.d.ts.map +1 -0
  102. package/dist/services/definitions/claude-code.js +49 -0
  103. package/dist/services/definitions/claude-code.js.map +1 -0
  104. package/dist/services/definitions/code-server.d.ts +3 -0
  105. package/dist/services/definitions/code-server.d.ts.map +1 -0
  106. package/dist/services/definitions/code-server.js +61 -0
  107. package/dist/services/definitions/code-server.js.map +1 -0
  108. package/dist/services/definitions/codex.d.ts +3 -0
  109. package/dist/services/definitions/codex.d.ts.map +1 -0
  110. package/dist/services/definitions/codex.js +41 -0
  111. package/dist/services/definitions/codex.js.map +1 -0
  112. package/dist/services/definitions/coolify.d.ts +3 -0
  113. package/dist/services/definitions/coolify.d.ts.map +1 -0
  114. package/dist/services/definitions/coolify.js +44 -0
  115. package/dist/services/definitions/coolify.js.map +1 -0
  116. package/dist/services/definitions/dify.d.ts +3 -0
  117. package/dist/services/definitions/dify.d.ts.map +1 -0
  118. package/dist/services/definitions/dify.js +75 -0
  119. package/dist/services/definitions/dify.js.map +1 -0
  120. package/dist/services/definitions/docsgpt.d.ts +3 -0
  121. package/dist/services/definitions/docsgpt.d.ts.map +1 -0
  122. package/dist/services/definitions/docsgpt.js +39 -0
  123. package/dist/services/definitions/docsgpt.js.map +1 -0
  124. package/dist/services/definitions/dokploy.d.ts +3 -0
  125. package/dist/services/definitions/dokploy.d.ts.map +1 -0
  126. package/dist/services/definitions/dokploy.js +44 -0
  127. package/dist/services/definitions/dokploy.js.map +1 -0
  128. package/dist/services/definitions/dozzle.d.ts +3 -0
  129. package/dist/services/definitions/dozzle.d.ts.map +1 -0
  130. package/dist/services/definitions/dozzle.js +33 -0
  131. package/dist/services/definitions/dozzle.js.map +1 -0
  132. package/dist/services/definitions/ffmpeg.d.ts +3 -0
  133. package/dist/services/definitions/ffmpeg.d.ts.map +1 -0
  134. package/dist/services/definitions/ffmpeg.js +63 -0
  135. package/dist/services/definitions/ffmpeg.js.map +1 -0
  136. package/dist/services/definitions/flowise.d.ts +3 -0
  137. package/dist/services/definitions/flowise.d.ts.map +1 -0
  138. package/dist/services/definitions/flowise.js +39 -0
  139. package/dist/services/definitions/flowise.js.map +1 -0
  140. package/dist/services/definitions/gemini-cli.d.ts +3 -0
  141. package/dist/services/definitions/gemini-cli.d.ts.map +1 -0
  142. package/dist/services/definitions/gemini-cli.js +41 -0
  143. package/dist/services/definitions/gemini-cli.js.map +1 -0
  144. package/dist/services/definitions/gitea.d.ts +3 -0
  145. package/dist/services/definitions/gitea.d.ts.map +1 -0
  146. package/dist/services/definitions/gitea.js +45 -0
  147. package/dist/services/definitions/gitea.js.map +1 -0
  148. package/dist/services/definitions/gotify.d.ts +3 -0
  149. package/dist/services/definitions/gotify.d.ts.map +1 -0
  150. package/dist/services/definitions/gotify.js +60 -0
  151. package/dist/services/definitions/gotify.js.map +1 -0
  152. package/dist/services/definitions/grafana.d.ts +3 -0
  153. package/dist/services/definitions/grafana.d.ts.map +1 -0
  154. package/dist/services/definitions/grafana.js +61 -0
  155. package/dist/services/definitions/grafana.js.map +1 -0
  156. package/dist/services/definitions/index.d.ts +68 -0
  157. package/dist/services/definitions/index.d.ts.map +1 -0
  158. package/dist/services/definitions/index.js +198 -0
  159. package/dist/services/definitions/index.js.map +1 -0
  160. package/dist/services/definitions/kimi.d.ts +3 -0
  161. package/dist/services/definitions/kimi.d.ts.map +1 -0
  162. package/dist/services/definitions/kimi.js +41 -0
  163. package/dist/services/definitions/kimi.js.map +1 -0
  164. package/dist/services/definitions/lasuite-meet-agents.d.ts +3 -0
  165. package/dist/services/definitions/lasuite-meet-agents.d.ts.map +1 -0
  166. package/dist/services/definitions/lasuite-meet-agents.js +26 -0
  167. package/dist/services/definitions/lasuite-meet-agents.js.map +1 -0
  168. package/dist/services/definitions/lasuite-meet-backend.d.ts +3 -0
  169. package/dist/services/definitions/lasuite-meet-backend.d.ts.map +1 -0
  170. package/dist/services/definitions/lasuite-meet-backend.js +118 -0
  171. package/dist/services/definitions/lasuite-meet-backend.js.map +1 -0
  172. package/dist/services/definitions/lasuite-meet-frontend.d.ts +3 -0
  173. package/dist/services/definitions/lasuite-meet-frontend.d.ts.map +1 -0
  174. package/dist/services/definitions/lasuite-meet-frontend.js +31 -0
  175. package/dist/services/definitions/lasuite-meet-frontend.js.map +1 -0
  176. package/dist/services/definitions/librechat.d.ts +3 -0
  177. package/dist/services/definitions/librechat.d.ts.map +1 -0
  178. package/dist/services/definitions/librechat.js +47 -0
  179. package/dist/services/definitions/librechat.js.map +1 -0
  180. package/dist/services/definitions/lightpanda.d.ts +3 -0
  181. package/dist/services/definitions/lightpanda.d.ts.map +1 -0
  182. package/dist/services/definitions/lightpanda.js +59 -0
  183. package/dist/services/definitions/lightpanda.js.map +1 -0
  184. package/dist/services/definitions/litellm.d.ts +3 -0
  185. package/dist/services/definitions/litellm.d.ts.map +1 -0
  186. package/dist/services/definitions/litellm.js +41 -0
  187. package/dist/services/definitions/litellm.js.map +1 -0
  188. package/dist/services/definitions/livekit.d.ts +3 -0
  189. package/dist/services/definitions/livekit.d.ts.map +1 -0
  190. package/dist/services/definitions/livekit.js +31 -0
  191. package/dist/services/definitions/livekit.js.map +1 -0
  192. package/dist/services/definitions/matomo.d.ts +3 -0
  193. package/dist/services/definitions/matomo.d.ts.map +1 -0
  194. package/dist/services/definitions/matomo.js +75 -0
  195. package/dist/services/definitions/matomo.js.map +1 -0
  196. package/dist/services/definitions/matrix-synapse.d.ts +3 -0
  197. package/dist/services/definitions/matrix-synapse.d.ts.map +1 -0
  198. package/dist/services/definitions/matrix-synapse.js +82 -0
  199. package/dist/services/definitions/matrix-synapse.js.map +1 -0
  200. package/dist/services/definitions/mattermost.d.ts +3 -0
  201. package/dist/services/definitions/mattermost.d.ts.map +1 -0
  202. package/dist/services/definitions/mattermost.js +59 -0
  203. package/dist/services/definitions/mattermost.js.map +1 -0
  204. package/dist/services/definitions/meilisearch.d.ts +3 -0
  205. package/dist/services/definitions/meilisearch.d.ts.map +1 -0
  206. package/dist/services/definitions/meilisearch.js +76 -0
  207. package/dist/services/definitions/meilisearch.js.map +1 -0
  208. package/dist/services/definitions/minio.d.ts +3 -0
  209. package/dist/services/definitions/minio.d.ts.map +1 -0
  210. package/dist/services/definitions/minio.js +98 -0
  211. package/dist/services/definitions/minio.js.map +1 -0
  212. package/dist/services/definitions/mixpost.d.ts +3 -0
  213. package/dist/services/definitions/mixpost.d.ts.map +1 -0
  214. package/dist/services/definitions/mixpost.js +82 -0
  215. package/dist/services/definitions/mixpost.js.map +1 -0
  216. package/dist/services/definitions/motion-canvas.d.ts +3 -0
  217. package/dist/services/definitions/motion-canvas.d.ts.map +1 -0
  218. package/dist/services/definitions/motion-canvas.js +48 -0
  219. package/dist/services/definitions/motion-canvas.js.map +1 -0
  220. package/dist/services/definitions/n8n.d.ts +3 -0
  221. package/dist/services/definitions/n8n.d.ts.map +1 -0
  222. package/dist/services/definitions/n8n.js +146 -0
  223. package/dist/services/definitions/n8n.js.map +1 -0
  224. package/dist/services/definitions/nocodb.d.ts +3 -0
  225. package/dist/services/definitions/nocodb.d.ts.map +1 -0
  226. package/dist/services/definitions/nocodb.js +39 -0
  227. package/dist/services/definitions/nocodb.js.map +1 -0
  228. package/dist/services/definitions/ntfy.d.ts +3 -0
  229. package/dist/services/definitions/ntfy.d.ts.map +1 -0
  230. package/dist/services/definitions/ntfy.js +61 -0
  231. package/dist/services/definitions/ntfy.js.map +1 -0
  232. package/dist/services/definitions/ollama.d.ts +3 -0
  233. package/dist/services/definitions/ollama.d.ts.map +1 -0
  234. package/dist/services/definitions/ollama.js +61 -0
  235. package/dist/services/definitions/ollama.js.map +1 -0
  236. package/dist/services/definitions/open-webui.d.ts +3 -0
  237. package/dist/services/definitions/open-webui.d.ts.map +1 -0
  238. package/dist/services/definitions/open-webui.js +47 -0
  239. package/dist/services/definitions/open-webui.js.map +1 -0
  240. package/dist/services/definitions/opencode.d.ts +3 -0
  241. package/dist/services/definitions/opencode.d.ts.map +1 -0
  242. package/dist/services/definitions/opencode.js +47 -0
  243. package/dist/services/definitions/opencode.js.map +1 -0
  244. package/dist/services/definitions/openpanel.d.ts +3 -0
  245. package/dist/services/definitions/openpanel.d.ts.map +1 -0
  246. package/dist/services/definitions/openpanel.js +41 -0
  247. package/dist/services/definitions/openpanel.js.map +1 -0
  248. package/dist/services/definitions/outline.d.ts +3 -0
  249. package/dist/services/definitions/outline.d.ts.map +1 -0
  250. package/dist/services/definitions/outline.js +68 -0
  251. package/dist/services/definitions/outline.js.map +1 -0
  252. package/dist/services/definitions/paperless-ngx.d.ts +3 -0
  253. package/dist/services/definitions/paperless-ngx.d.ts.map +1 -0
  254. package/dist/services/definitions/paperless-ngx.js +85 -0
  255. package/dist/services/definitions/paperless-ngx.js.map +1 -0
  256. package/dist/services/definitions/playwright-server.d.ts +3 -0
  257. package/dist/services/definitions/playwright-server.d.ts.map +1 -0
  258. package/dist/services/definitions/playwright-server.js +34 -0
  259. package/dist/services/definitions/playwright-server.js.map +1 -0
  260. package/dist/services/definitions/portainer.d.ts +3 -0
  261. package/dist/services/definitions/portainer.d.ts.map +1 -0
  262. package/dist/services/definitions/portainer.js +44 -0
  263. package/dist/services/definitions/portainer.js.map +1 -0
  264. package/dist/services/definitions/postgresql.d.ts +3 -0
  265. package/dist/services/definitions/postgresql.d.ts.map +1 -0
  266. package/dist/services/definitions/postgresql.js +83 -0
  267. package/dist/services/definitions/postgresql.js.map +1 -0
  268. package/dist/services/definitions/postiz.d.ts +3 -0
  269. package/dist/services/definitions/postiz.d.ts.map +1 -0
  270. package/dist/services/definitions/postiz.js +79 -0
  271. package/dist/services/definitions/postiz.js.map +1 -0
  272. package/dist/services/definitions/prometheus.d.ts +3 -0
  273. package/dist/services/definitions/prometheus.d.ts.map +1 -0
  274. package/dist/services/definitions/prometheus.js +47 -0
  275. package/dist/services/definitions/prometheus.js.map +1 -0
  276. package/dist/services/definitions/qdrant.d.ts +3 -0
  277. package/dist/services/definitions/qdrant.d.ts.map +1 -0
  278. package/dist/services/definitions/qdrant.js +75 -0
  279. package/dist/services/definitions/qdrant.js.map +1 -0
  280. package/dist/services/definitions/redis.d.ts +3 -0
  281. package/dist/services/definitions/redis.d.ts.map +1 -0
  282. package/dist/services/definitions/redis.js +90 -0
  283. package/dist/services/definitions/redis.js.map +1 -0
  284. package/dist/services/definitions/remotion.d.ts +3 -0
  285. package/dist/services/definitions/remotion.d.ts.map +1 -0
  286. package/dist/services/definitions/remotion.js +48 -0
  287. package/dist/services/definitions/remotion.js.map +1 -0
  288. package/dist/services/definitions/rocketchat.d.ts +3 -0
  289. package/dist/services/definitions/rocketchat.d.ts.map +1 -0
  290. package/dist/services/definitions/rocketchat.js +54 -0
  291. package/dist/services/definitions/rocketchat.js.map +1 -0
  292. package/dist/services/definitions/searxng.d.ts +3 -0
  293. package/dist/services/definitions/searxng.d.ts.map +1 -0
  294. package/dist/services/definitions/searxng.js +61 -0
  295. package/dist/services/definitions/searxng.js.map +1 -0
  296. package/dist/services/definitions/stable-diffusion.d.ts +3 -0
  297. package/dist/services/definitions/stable-diffusion.d.ts.map +1 -0
  298. package/dist/services/definitions/stable-diffusion.js +44 -0
  299. package/dist/services/definitions/stable-diffusion.js.map +1 -0
  300. package/dist/services/definitions/steel-browser.d.ts +3 -0
  301. package/dist/services/definitions/steel-browser.d.ts.map +1 -0
  302. package/dist/services/definitions/steel-browser.js +68 -0
  303. package/dist/services/definitions/steel-browser.js.map +1 -0
  304. package/dist/services/definitions/tailscale.d.ts +3 -0
  305. package/dist/services/definitions/tailscale.d.ts.map +1 -0
  306. package/dist/services/definitions/tailscale.js +62 -0
  307. package/dist/services/definitions/tailscale.js.map +1 -0
  308. package/dist/services/definitions/temporal.d.ts +3 -0
  309. package/dist/services/definitions/temporal.d.ts.map +1 -0
  310. package/dist/services/definitions/temporal.js +97 -0
  311. package/dist/services/definitions/temporal.js.map +1 -0
  312. package/dist/services/definitions/traefik.d.ts +3 -0
  313. package/dist/services/definitions/traefik.d.ts.map +1 -0
  314. package/dist/services/definitions/traefik.js +52 -0
  315. package/dist/services/definitions/traefik.js.map +1 -0
  316. package/dist/services/definitions/umami.d.ts +3 -0
  317. package/dist/services/definitions/umami.d.ts.map +1 -0
  318. package/dist/services/definitions/umami.js +41 -0
  319. package/dist/services/definitions/umami.js.map +1 -0
  320. package/dist/services/definitions/uptime-kuma.d.ts +3 -0
  321. package/dist/services/definitions/uptime-kuma.d.ts.map +1 -0
  322. package/dist/services/definitions/uptime-kuma.js +46 -0
  323. package/dist/services/definitions/uptime-kuma.js.map +1 -0
  324. package/dist/services/definitions/valkey.d.ts +3 -0
  325. package/dist/services/definitions/valkey.d.ts.map +1 -0
  326. package/dist/services/definitions/valkey.js +60 -0
  327. package/dist/services/definitions/valkey.js.map +1 -0
  328. package/dist/services/definitions/watchtower.d.ts +3 -0
  329. package/dist/services/definitions/watchtower.d.ts.map +1 -0
  330. package/dist/services/definitions/watchtower.js +41 -0
  331. package/dist/services/definitions/watchtower.js.map +1 -0
  332. package/dist/services/definitions/weaviate.d.ts +3 -0
  333. package/dist/services/definitions/weaviate.d.ts.map +1 -0
  334. package/dist/services/definitions/weaviate.js +89 -0
  335. package/dist/services/definitions/weaviate.js.map +1 -0
  336. package/dist/services/definitions/whisper.d.ts +3 -0
  337. package/dist/services/definitions/whisper.d.ts.map +1 -0
  338. package/dist/services/definitions/whisper.js +55 -0
  339. package/dist/services/definitions/whisper.js.map +1 -0
  340. package/dist/services/registry.d.ts +12 -0
  341. package/dist/services/registry.d.ts.map +1 -0
  342. package/dist/services/registry.js +28 -0
  343. package/dist/services/registry.js.map +1 -0
  344. package/dist/skills/registry.d.ts +7 -0
  345. package/dist/skills/registry.d.ts.map +1 -0
  346. package/dist/skills/registry.js +111 -0
  347. package/dist/skills/registry.js.map +1 -0
  348. package/dist/types.d.ts +60 -0
  349. package/dist/types.d.ts.map +1 -0
  350. package/dist/types.js +20 -0
  351. package/dist/types.js.map +1 -0
  352. package/dist/validator.d.ts +16 -0
  353. package/dist/validator.d.ts.map +1 -0
  354. package/dist/validator.js +142 -0
  355. package/dist/validator.js.map +1 -0
  356. package/dist/version-manager.d.ts +10 -0
  357. package/dist/version-manager.d.ts.map +1 -0
  358. package/dist/version-manager.js +60 -0
  359. package/dist/version-manager.js.map +1 -0
  360. package/package.json +37 -0
  361. package/src/__snapshots__/composer.snapshot.test.ts.snap +903 -0
  362. package/src/bare-metal-partition.test.ts +63 -0
  363. package/src/bare-metal-partition.ts +64 -0
  364. package/src/composer.snapshot.test.ts +87 -0
  365. package/src/composer.test.ts +224 -0
  366. package/src/composer.ts +403 -0
  367. package/src/generate.test.ts +349 -0
  368. package/src/generate.ts +259 -0
  369. package/src/generators/bare-metal-install.test.ts +43 -0
  370. package/src/generators/bare-metal-install.ts +249 -0
  371. package/src/generators/caddy.ts +99 -0
  372. package/src/generators/env.ts +405 -0
  373. package/src/generators/grafana.ts +255 -0
  374. package/src/generators/n8n-workflows.ts +88 -0
  375. package/src/generators/native-services.ts +103 -0
  376. package/src/generators/postgres-init.ts +137 -0
  377. package/src/generators/prometheus.ts +89 -0
  378. package/src/generators/readme.ts +274 -0
  379. package/src/generators/scripts.ts +362 -0
  380. package/src/generators/skills.ts +628 -0
  381. package/src/index.ts +118 -0
  382. package/src/presets/registry.test.ts +32 -0
  383. package/src/presets/registry.ts +126 -0
  384. package/src/resolver.test.ts +204 -0
  385. package/src/resolver.ts +282 -0
  386. package/src/schema.test.ts +295 -0
  387. package/src/schema.ts +307 -0
  388. package/src/services/definitions/anything-llm.ts +46 -0
  389. package/src/services/definitions/appflowy.ts +46 -0
  390. package/src/services/definitions/beszel.ts +46 -0
  391. package/src/services/definitions/browserless.ts +84 -0
  392. package/src/services/definitions/caddy.ts +57 -0
  393. package/src/services/definitions/chromadb.ts +68 -0
  394. package/src/services/definitions/claude-code.ts +56 -0
  395. package/src/services/definitions/code-server.ts +67 -0
  396. package/src/services/definitions/codex.ts +48 -0
  397. package/src/services/definitions/coolify.ts +51 -0
  398. package/src/services/definitions/dify.ts +82 -0
  399. package/src/services/definitions/docsgpt.ts +45 -0
  400. package/src/services/definitions/dokploy.ts +51 -0
  401. package/src/services/definitions/dozzle.ts +40 -0
  402. package/src/services/definitions/ffmpeg.ts +70 -0
  403. package/src/services/definitions/flowise.ts +45 -0
  404. package/src/services/definitions/gemini-cli.ts +48 -0
  405. package/src/services/definitions/gitea.ts +52 -0
  406. package/src/services/definitions/gotify.ts +67 -0
  407. package/src/services/definitions/grafana.ts +68 -0
  408. package/src/services/definitions/index.ts +200 -0
  409. package/src/services/definitions/kimi.ts +48 -0
  410. package/src/services/definitions/lasuite-meet-agents.ts +33 -0
  411. package/src/services/definitions/lasuite-meet-backend.ts +125 -0
  412. package/src/services/definitions/lasuite-meet-frontend.ts +38 -0
  413. package/src/services/definitions/librechat.ts +54 -0
  414. package/src/services/definitions/lightpanda.ts +61 -0
  415. package/src/services/definitions/litellm.ts +48 -0
  416. package/src/services/definitions/livekit.ts +38 -0
  417. package/src/services/definitions/matomo.ts +82 -0
  418. package/src/services/definitions/matrix-synapse.ts +89 -0
  419. package/src/services/definitions/mattermost.ts +67 -0
  420. package/src/services/definitions/meilisearch.ts +83 -0
  421. package/src/services/definitions/minio.ts +105 -0
  422. package/src/services/definitions/mixpost.ts +89 -0
  423. package/src/services/definitions/motion-canvas.ts +55 -0
  424. package/src/services/definitions/n8n.ts +153 -0
  425. package/src/services/definitions/nocodb.ts +46 -0
  426. package/src/services/definitions/ntfy.ts +68 -0
  427. package/src/services/definitions/ollama.ts +68 -0
  428. package/src/services/definitions/open-webui.ts +54 -0
  429. package/src/services/definitions/opencode.ts +54 -0
  430. package/src/services/definitions/openpanel.ts +48 -0
  431. package/src/services/definitions/outline.ts +75 -0
  432. package/src/services/definitions/paperless-ngx.ts +92 -0
  433. package/src/services/definitions/playwright-server.ts +41 -0
  434. package/src/services/definitions/portainer.ts +50 -0
  435. package/src/services/definitions/postgresql.ts +90 -0
  436. package/src/services/definitions/postiz.ts +86 -0
  437. package/src/services/definitions/prometheus.ts +54 -0
  438. package/src/services/definitions/qdrant.ts +82 -0
  439. package/src/services/definitions/redis.ts +99 -0
  440. package/src/services/definitions/remotion.ts +55 -0
  441. package/src/services/definitions/rocketchat.ts +61 -0
  442. package/src/services/definitions/searxng.ts +68 -0
  443. package/src/services/definitions/stable-diffusion.ts +50 -0
  444. package/src/services/definitions/steel-browser.ts +70 -0
  445. package/src/services/definitions/tailscale.ts +69 -0
  446. package/src/services/definitions/temporal.ts +104 -0
  447. package/src/services/definitions/traefik.ts +60 -0
  448. package/src/services/definitions/umami.ts +48 -0
  449. package/src/services/definitions/uptime-kuma.ts +53 -0
  450. package/src/services/definitions/valkey.ts +67 -0
  451. package/src/services/definitions/watchtower.ts +47 -0
  452. package/src/services/definitions/weaviate.ts +96 -0
  453. package/src/services/definitions/whisper.ts +62 -0
  454. package/src/services/registry.test.ts +98 -0
  455. package/src/services/registry.ts +37 -0
  456. package/src/skills/registry.ts +126 -0
  457. package/src/types.ts +123 -0
  458. package/src/validator.test.ts +66 -0
  459. package/src/validator.ts +166 -0
  460. package/src/version-manager.ts +65 -0
  461. package/tsconfig.json +9 -0
@@ -0,0 +1,596 @@
1
+ import Handlebars from "handlebars";
2
+ /**
3
+ * Basic skill templates keyed by skillId.
4
+ *
5
+ * Templates use Handlebars `{{VAR}}` syntax. Variables are resolved from the
6
+ * service's `openclawEnvVars` array at generation time.
7
+ */
8
+ const skillTemplates = {
9
+ "redis-cache": `---
10
+ name: redis-cache
11
+ description: "Cache data and manage key-value state using Redis"
12
+ metadata:
13
+ openclaw:
14
+ emoji: "🔴"
15
+ ---
16
+
17
+ # Redis Cache
18
+
19
+ Use Redis as a high-performance in-memory cache and key-value store.
20
+
21
+ ## Connection Details
22
+
23
+ - **Host:** \`{{REDIS_HOST}}\`
24
+ - **Port:** \`{{REDIS_PORT}}\`
25
+
26
+ ## Example Commands
27
+
28
+ ### Set a value
29
+ \`\`\`bash
30
+ redis-cli -h {{REDIS_HOST}} -p {{REDIS_PORT}} -a $REDIS_PASSWORD SET mykey "myvalue"
31
+ \`\`\`
32
+
33
+ ### Get a value
34
+ \`\`\`bash
35
+ redis-cli -h {{REDIS_HOST}} -p {{REDIS_PORT}} -a $REDIS_PASSWORD GET mykey
36
+ \`\`\`
37
+
38
+ ### List all keys
39
+ \`\`\`bash
40
+ redis-cli -h {{REDIS_HOST}} -p {{REDIS_PORT}} -a $REDIS_PASSWORD KEYS "*"
41
+ \`\`\`
42
+
43
+ ## Usage Notes
44
+
45
+ - Use Redis for caching frequently accessed data, session storage, and pub/sub messaging.
46
+ - Data is persisted to disk via RDB snapshots in the mounted volume.
47
+ - Password authentication is required.
48
+ `,
49
+ "qdrant-memory": `---
50
+ name: qdrant-memory
51
+ description: "Store and retrieve vector embeddings for semantic search and RAG"
52
+ metadata:
53
+ openclaw:
54
+ emoji: "🧠"
55
+ ---
56
+
57
+ # Qdrant Memory
58
+
59
+ Use Qdrant as a vector database for storing embeddings, enabling semantic search and retrieval-augmented generation (RAG).
60
+
61
+ ## Connection Details
62
+
63
+ - **Host:** \`{{QDRANT_HOST}}\`
64
+ - **Port:** \`{{QDRANT_PORT}}\` (REST API)
65
+
66
+ ## Example API Calls
67
+
68
+ ### Create a collection
69
+ \`\`\`bash
70
+ curl -X PUT "http://{{QDRANT_HOST}}:{{QDRANT_PORT}}/collections/my_collection" \\
71
+ -H "Content-Type: application/json" \\
72
+ -d '{"vectors": {"size": 384, "distance": "Cosine"}}'
73
+ \`\`\`
74
+
75
+ ### Upsert points
76
+ \`\`\`bash
77
+ curl -X PUT "http://{{QDRANT_HOST}}:{{QDRANT_PORT}}/collections/my_collection/points" \\
78
+ -H "Content-Type: application/json" \\
79
+ -d '{"points": [{"id": 1, "vector": [0.1, 0.2, ...], "payload": {"text": "hello"}}]}'
80
+ \`\`\`
81
+
82
+ ### Search similar vectors
83
+ \`\`\`bash
84
+ curl -X POST "http://{{QDRANT_HOST}}:{{QDRANT_PORT}}/collections/my_collection/points/search" \\
85
+ -H "Content-Type: application/json" \\
86
+ -d '{"vector": [0.1, 0.2, ...], "limit": 5}'
87
+ \`\`\`
88
+
89
+ ## Usage Notes
90
+
91
+ - Use 384-dimensional vectors for MiniLM-based embeddings or 1536 for OpenAI ada-002.
92
+ - Qdrant supports filtering, batch operations, and named vectors.
93
+ `,
94
+ "n8n-trigger": `---
95
+ name: n8n-trigger
96
+ description: "Trigger and manage automation workflows using n8n"
97
+ metadata:
98
+ openclaw:
99
+ emoji: "🔄"
100
+ ---
101
+
102
+ # n8n Workflow Trigger
103
+
104
+ Use n8n to create, trigger, and manage automation workflows via its REST API.
105
+
106
+ ## Connection Details
107
+
108
+ - **Host:** \`{{N8N_HOST}}\`
109
+ - **Port:** \`{{N8N_PORT}}\`
110
+ - **Webhook URL:** \`{{N8N_WEBHOOK_URL}}\`
111
+
112
+ ## Example API Calls
113
+
114
+ ### Trigger a webhook workflow
115
+ \`\`\`bash
116
+ curl -X POST "{{N8N_WEBHOOK_URL}}webhook/<your-webhook-id>" \\
117
+ -H "Content-Type: application/json" \\
118
+ -d '{"message": "Hello from OpenClaw"}'
119
+ \`\`\`
120
+
121
+ ### List workflows
122
+ \`\`\`bash
123
+ curl -X GET "http://{{N8N_HOST}}:{{N8N_PORT}}/api/v1/workflows" \\
124
+ -H "Content-Type: application/json"
125
+ \`\`\`
126
+
127
+ ### Activate a workflow
128
+ \`\`\`bash
129
+ curl -X PATCH "http://{{N8N_HOST}}:{{N8N_PORT}}/api/v1/workflows/<id>" \\
130
+ -H "Content-Type: application/json" \\
131
+ -d '{"active": true}'
132
+ \`\`\`
133
+
134
+ ## Usage Notes
135
+
136
+ - Create workflows in the n8n UI at http://{{N8N_HOST}}:{{N8N_PORT}}.
137
+ - Webhook nodes allow external triggers from OpenClaw.
138
+ - n8n stores workflow state in PostgreSQL.
139
+ `,
140
+ "ffmpeg-process": `---
141
+ name: ffmpeg-process
142
+ description: "Process media files using FFmpeg for transcoding, conversion, and manipulation"
143
+ metadata:
144
+ openclaw:
145
+ emoji: "🎬"
146
+ ---
147
+
148
+ # FFmpeg Media Processing
149
+
150
+ Use FFmpeg for video/audio transcoding, format conversion, and media manipulation.
151
+
152
+ ## Shared Directory
153
+
154
+ - **Media directory:** \`{{FFMPEG_SHARED_DIR}}\`
155
+
156
+ ## Example Commands
157
+
158
+ ### Convert video to MP4
159
+ \`\`\`bash
160
+ docker exec ffmpeg ffmpeg -i /data/input.avi -c:v libx264 -c:a aac /data/output.mp4
161
+ \`\`\`
162
+
163
+ ### Extract audio from video
164
+ \`\`\`bash
165
+ docker exec ffmpeg ffmpeg -i /data/video.mp4 -vn -acodec libmp3lame /data/audio.mp3
166
+ \`\`\`
167
+
168
+ ### Create thumbnail from video
169
+ \`\`\`bash
170
+ docker exec ffmpeg ffmpeg -i /data/video.mp4 -ss 00:00:05 -vframes 1 /data/thumb.jpg
171
+ \`\`\`
172
+
173
+ ### Resize video
174
+ \`\`\`bash
175
+ docker exec ffmpeg ffmpeg -i /data/input.mp4 -vf scale=1280:720 /data/output_720p.mp4
176
+ \`\`\`
177
+
178
+ ## Usage Notes
179
+
180
+ - Place input files in the shared media directory.
181
+ - FFmpeg runs as a sidecar container sharing a volume with OpenClaw.
182
+ - Output files appear in the same shared directory.
183
+ `,
184
+ "minio-storage": `---
185
+ name: minio-storage
186
+ description: "Store and retrieve files using S3-compatible object storage"
187
+ metadata:
188
+ openclaw:
189
+ emoji: "💾"
190
+ ---
191
+
192
+ # MinIO Object Storage
193
+
194
+ Use MinIO as S3-compatible object storage for files, assets, and backups.
195
+
196
+ ## Connection Details
197
+
198
+ - **Host:** \`{{MINIO_HOST}}\`
199
+ - **API Port:** \`{{MINIO_PORT}}\`
200
+ - **Access Key:** Uses \`MINIO_ACCESS_KEY\` env var
201
+ - **Secret Key:** Uses \`MINIO_SECRET_KEY\` env var
202
+
203
+ ## Example API Calls
204
+
205
+ ### Create a bucket
206
+ \`\`\`bash
207
+ mc alias set local http://{{MINIO_HOST}}:{{MINIO_PORT}} $MINIO_ACCESS_KEY $MINIO_SECRET_KEY
208
+ mc mb local/my-bucket
209
+ \`\`\`
210
+
211
+ ### Upload a file
212
+ \`\`\`bash
213
+ mc cp /path/to/file.txt local/my-bucket/file.txt
214
+ \`\`\`
215
+
216
+ ### Download a file
217
+ \`\`\`bash
218
+ mc cp local/my-bucket/file.txt /path/to/local/file.txt
219
+ \`\`\`
220
+
221
+ ### List bucket contents
222
+ \`\`\`bash
223
+ mc ls local/my-bucket/
224
+ \`\`\`
225
+
226
+ ## Usage Notes
227
+
228
+ - MinIO is fully S3-compatible—use any S3 SDK or CLI.
229
+ - Access the web console at http://{{MINIO_HOST}}:9001 for a visual file browser.
230
+ - Create separate buckets for different data types (assets, backups, uploads).
231
+ `,
232
+ "browserless-browse": `---
233
+ name: browserless-browse
234
+ description: "Automate browser interactions, scrape web pages, and generate PDFs"
235
+ metadata:
236
+ openclaw:
237
+ emoji: "🌐"
238
+ ---
239
+
240
+ # Browserless Browser Automation
241
+
242
+ Use Browserless for headless Chrome browser automation, web scraping, screenshots, and PDF generation.
243
+
244
+ ## Connection Details
245
+
246
+ - **Host:** \`{{BROWSERLESS_HOST}}\`
247
+ - **Port:** \`{{BROWSERLESS_PORT}}\`
248
+ - **Token:** Uses \`BROWSERLESS_TOKEN\` env var
249
+
250
+ ## Example API Calls
251
+
252
+ ### Take a screenshot
253
+ \`\`\`bash
254
+ curl -X POST "http://{{BROWSERLESS_HOST}}:{{BROWSERLESS_PORT}}/screenshot?token=$BROWSERLESS_TOKEN" \\
255
+ -H "Content-Type: application/json" \\
256
+ -d '{"url": "https://example.com", "options": {"fullPage": true}}' \\
257
+ --output screenshot.png
258
+ \`\`\`
259
+
260
+ ### Generate a PDF
261
+ \`\`\`bash
262
+ curl -X POST "http://{{BROWSERLESS_HOST}}:{{BROWSERLESS_PORT}}/pdf?token=$BROWSERLESS_TOKEN" \\
263
+ -H "Content-Type: application/json" \\
264
+ -d '{"url": "https://example.com"}' \\
265
+ --output page.pdf
266
+ \`\`\`
267
+
268
+ ### Scrape page content
269
+ \`\`\`bash
270
+ curl -X POST "http://{{BROWSERLESS_HOST}}:{{BROWSERLESS_PORT}}/content?token=$BROWSERLESS_TOKEN" \\
271
+ -H "Content-Type: application/json" \\
272
+ -d '{"url": "https://example.com"}'
273
+ \`\`\`
274
+
275
+ ## Usage Notes
276
+
277
+ - Browserless manages a pool of Chrome instances (max concurrent sessions configured via env).
278
+ - Token authentication is required for all API calls.
279
+ - Supports Puppeteer and Playwright WebSocket connections.
280
+ `,
281
+ "searxng-search": `---
282
+ name: searxng-search
283
+ description: "Search the web using a privacy-respecting metasearch engine"
284
+ metadata:
285
+ openclaw:
286
+ emoji: "🔍"
287
+ ---
288
+
289
+ # SearXNG Web Search
290
+
291
+ Use SearXNG as a privacy-respecting metasearch engine to query the web.
292
+
293
+ ## Connection Details
294
+
295
+ - **Host:** \`{{SEARXNG_HOST}}\`
296
+ - **Port:** \`{{SEARXNG_PORT}}\`
297
+
298
+ ## Example API Calls
299
+
300
+ ### Search the web
301
+ \`\`\`bash
302
+ curl "http://{{SEARXNG_HOST}}:{{SEARXNG_PORT}}/search?q=your+search+query&format=json"
303
+ \`\`\`
304
+
305
+ ### Search with category filter
306
+ \`\`\`bash
307
+ curl "http://{{SEARXNG_HOST}}:{{SEARXNG_PORT}}/search?q=openai&categories=it&format=json"
308
+ \`\`\`
309
+
310
+ ### Search with language filter
311
+ \`\`\`bash
312
+ curl "http://{{SEARXNG_HOST}}:{{SEARXNG_PORT}}/search?q=hello&language=en&format=json"
313
+ \`\`\`
314
+
315
+ ## Usage Notes
316
+
317
+ - Always use \`format=json\` for machine-readable results.
318
+ - Available categories: general, images, videos, news, map, music, it, science, files.
319
+ - SearXNG aggregates results from many search engines without tracking.
320
+ `,
321
+ "whisper-transcribe": `---
322
+ name: whisper-transcribe
323
+ description: "Transcribe audio files to text using Faster Whisper"
324
+ metadata:
325
+ openclaw:
326
+ emoji: "🎙️"
327
+ ---
328
+
329
+ # Whisper Transcription
330
+
331
+ Use the Faster Whisper server for speech-to-text transcription.
332
+
333
+ ## Connection Details
334
+
335
+ - **Host:** \`{{WHISPER_HOST}}\`
336
+ - **Port:** \`{{WHISPER_PORT}}\`
337
+
338
+ ## Example API Calls
339
+
340
+ ### Transcribe an audio file
341
+ \`\`\`bash
342
+ curl -X POST "http://{{WHISPER_HOST}}:{{WHISPER_PORT}}/v1/audio/transcriptions" \\
343
+ -F "file=@/path/to/audio.mp3" \\
344
+ -F "model=base"
345
+ \`\`\`
346
+
347
+ ### Transcribe with language hint
348
+ \`\`\`bash
349
+ curl -X POST "http://{{WHISPER_HOST}}:{{WHISPER_PORT}}/v1/audio/transcriptions" \\
350
+ -F "file=@/path/to/audio.wav" \\
351
+ -F "model=base" \\
352
+ -F "language=en"
353
+ \`\`\`
354
+
355
+ ### Get available models
356
+ \`\`\`bash
357
+ curl "http://{{WHISPER_HOST}}:{{WHISPER_PORT}}/v1/models"
358
+ \`\`\`
359
+
360
+ ## Usage Notes
361
+
362
+ - Supports MP3, WAV, FLAC, and other common audio formats.
363
+ - Model sizes: tiny, base, small, medium, large (larger = more accurate but slower).
364
+ - GPU acceleration significantly improves transcription speed.
365
+ `,
366
+ "ollama-local-llm": `---
367
+ name: ollama-local-llm
368
+ description: "Run local language models for text generation, chat, and embeddings"
369
+ metadata:
370
+ openclaw:
371
+ emoji: "🦙"
372
+ ---
373
+
374
+ # Ollama Local LLM
375
+
376
+ Use Ollama to run large language models locally for text generation, chat, and embeddings.
377
+
378
+ ## Connection Details
379
+
380
+ - **Host:** \`{{OLLAMA_HOST}}\`
381
+ - **Port:** \`{{OLLAMA_PORT}}\`
382
+
383
+ ## Example API Calls
384
+
385
+ ### Generate text
386
+ \`\`\`bash
387
+ curl -X POST "http://{{OLLAMA_HOST}}:{{OLLAMA_PORT}}/api/generate" \\
388
+ -H "Content-Type: application/json" \\
389
+ -d '{"model": "llama3.2", "prompt": "Explain quantum computing in simple terms"}'
390
+ \`\`\`
391
+
392
+ ### Chat completion
393
+ \`\`\`bash
394
+ curl -X POST "http://{{OLLAMA_HOST}}:{{OLLAMA_PORT}}/api/chat" \\
395
+ -H "Content-Type: application/json" \\
396
+ -d '{"model": "llama3.2", "messages": [{"role": "user", "content": "Hello!"}]}'
397
+ \`\`\`
398
+
399
+ ### Pull a model
400
+ \`\`\`bash
401
+ curl -X POST "http://{{OLLAMA_HOST}}:{{OLLAMA_PORT}}/api/pull" \\
402
+ -H "Content-Type: application/json" \\
403
+ -d '{"name": "llama3.2"}'
404
+ \`\`\`
405
+
406
+ ### Generate embeddings
407
+ \`\`\`bash
408
+ curl -X POST "http://{{OLLAMA_HOST}}:{{OLLAMA_PORT}}/api/embeddings" \\
409
+ -H "Content-Type: application/json" \\
410
+ -d '{"model": "nomic-embed-text", "prompt": "Hello world"}'
411
+ \`\`\`
412
+
413
+ ## Usage Notes
414
+
415
+ - Pull models before first use (they are cached in the persistent volume).
416
+ - Recommended models: llama3.2 (general), codellama (code), nomic-embed-text (embeddings).
417
+ - GPU passthrough dramatically improves inference speed.
418
+ - The Ollama API is OpenAI-compatible at /v1/ endpoints.
419
+ `,
420
+ "remotion-render": `---
421
+ name: remotion-render
422
+ description: "Create and render videos programmatically using React"
423
+ metadata:
424
+ openclaw:
425
+ emoji: "🎥"
426
+ ---
427
+
428
+ # Remotion Video Rendering
429
+
430
+ Use Remotion Studio to create and render videos programmatically with React.
431
+
432
+ ## Connection Details
433
+
434
+ - **Host:** \`{{REMOTION_HOST}}\`
435
+ - **Port:** \`{{REMOTION_PORT}}\`
436
+
437
+ ## Example Usage
438
+
439
+ ### Access the Studio UI
440
+ Open \`http://{{REMOTION_HOST}}:{{REMOTION_PORT}}\` in your browser to use the Remotion Studio visual editor.
441
+
442
+ ### Render a video via CLI
443
+ \`\`\`bash
444
+ docker exec remotion npx remotion render src/index.tsx MyComposition out/video.mp4
445
+ \`\`\`
446
+
447
+ ### Render with custom props
448
+ \`\`\`bash
449
+ docker exec remotion npx remotion render src/index.tsx MyComposition out/video.mp4 \\
450
+ --props='{"title": "Hello World"}'
451
+ \`\`\`
452
+
453
+ ## Usage Notes
454
+
455
+ - Define video compositions in React components.
456
+ - Remotion supports MP4, WebM, and GIF output formats.
457
+ - Use the Studio UI for previewing before rendering.
458
+ - Combine with FFmpeg for post-processing.
459
+ `,
460
+ "lightpanda-browse": `---
461
+ name: lightpanda-browse
462
+ description: "Browse the web using the ultra-fast LightPanda headless browser via CDP"
463
+ metadata:
464
+ openclaw:
465
+ emoji: "🐼"
466
+ ---
467
+
468
+ # LightPanda Browse
469
+
470
+ LightPanda is an ultra-fast headless browser available via CDP WebSocket at \`ws://{{LIGHTPANDA_HOST}}:{{LIGHTPANDA_PORT}}\`.
471
+
472
+ ## Connect via Puppeteer
473
+
474
+ \`\`\`javascript
475
+ const browser = await puppeteer.connect({
476
+ browserWSEndpoint: "ws://{{LIGHTPANDA_HOST}}:{{LIGHTPANDA_PORT}}"
477
+ });
478
+ const page = await browser.newPage();
479
+ await page.goto('https://example.com');
480
+ const content = await page.evaluate(() => document.body.innerText);
481
+ \`\`\`
482
+
483
+ ## Key Advantages
484
+
485
+ - 9x less memory than Chrome (ideal for parallel scraping)
486
+ - 11x faster page loading
487
+ - Instant startup
488
+ - Full CDP compatibility with Puppeteer and Playwright
489
+ `,
490
+ "steel-browse": `---
491
+ name: steel-browse
492
+ description: "Browse the web using Steel Browser API with session management and anti-detection"
493
+ metadata:
494
+ openclaw:
495
+ emoji: "🔥"
496
+ ---
497
+
498
+ # Steel Browser
499
+
500
+ Steel provides a REST API at \`http://{{STEEL_HOST}}:{{STEEL_PORT}}\` for AI agent web automation.
501
+
502
+ ## Create a Session
503
+
504
+ \`\`\`bash
505
+ curl -X POST http://{{STEEL_HOST}}:{{STEEL_PORT}}/v1/sessions \\
506
+ -H "Content-Type: application/json" \\
507
+ -d '{"blockAds": true}'
508
+ \`\`\`
509
+
510
+ ## Scrape a Page
511
+
512
+ \`\`\`bash
513
+ curl -X POST http://{{STEEL_HOST}}:{{STEEL_PORT}}/v1/scrape \\
514
+ -H "Content-Type: application/json" \\
515
+ -d '{"url": "https://example.com", "format": "markdown"}'
516
+ \`\`\`
517
+
518
+ ## Features
519
+
520
+ - Session management with persistent cookies
521
+ - Anti-detection and stealth plugins
522
+ - Proxy support and IP rotation
523
+ - Auto CAPTCHA solving
524
+ - Puppeteer/Playwright/Selenium compatible
525
+ `,
526
+ };
527
+ /**
528
+ * Generates SKILL.md files for each service that has skills defined.
529
+ *
530
+ * Returns a map of file paths (relative to project root) to file contents.
531
+ * Handlebars is used to replace `{{VAR}}` placeholders with actual values
532
+ * from each service's `openclawEnvVars`.
533
+ */
534
+ export function generateSkillFiles(resolved) {
535
+ const files = {};
536
+ for (const { definition } of resolved.services) {
537
+ if (definition.skills.length === 0)
538
+ continue;
539
+ // Build a variable map from openclawEnvVars for Handlebars
540
+ const vars = {};
541
+ for (const envVar of definition.openclawEnvVars) {
542
+ // Resolve ${REFERENCES} to the default value (just strip the ${} wrapper)
543
+ const val = envVar.defaultValue.startsWith("${")
544
+ ? envVar.defaultValue.slice(2, -1)
545
+ : envVar.defaultValue;
546
+ vars[envVar.key] = val;
547
+ }
548
+ for (const skill of definition.skills) {
549
+ const template = skillTemplates[skill.skillId];
550
+ if (!template) {
551
+ // Generate a generic skill file if no template exists
552
+ const generic = generateGenericSkill(skill.skillId, definition.name, definition.icon, definition.description, vars);
553
+ files[`openclaw/workspace/skills/${skill.skillId}/SKILL.md`] = generic;
554
+ continue;
555
+ }
556
+ const compiled = Handlebars.compile(template, { noEscape: true });
557
+ const rendered = compiled(vars);
558
+ files[`openclaw/workspace/skills/${skill.skillId}/SKILL.md`] = rendered;
559
+ }
560
+ }
561
+ return files;
562
+ }
563
+ /**
564
+ * Generate a generic SKILL.md for skills that don't have a dedicated template.
565
+ */
566
+ function generateGenericSkill(skillId, serviceName, icon, description, vars) {
567
+ const title = skillId
568
+ .split("-")
569
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
570
+ .join(" ");
571
+ const envSection = Object.entries(vars)
572
+ .map(([key, value]) => `- **${key}:** \`${value}\``)
573
+ .join("\n");
574
+ return `---
575
+ name: ${skillId}
576
+ description: "${description}"
577
+ metadata:
578
+ openclaw:
579
+ emoji: "${icon}"
580
+ ---
581
+
582
+ # ${title}
583
+
584
+ Interact with ${serviceName} through this skill.
585
+
586
+ ## Connection Details
587
+
588
+ ${envSection || "No specific connection variables configured."}
589
+
590
+ ## Usage Notes
591
+
592
+ - This skill provides OpenClaw access to ${serviceName}.
593
+ - Refer to the service documentation for available API endpoints.
594
+ `;
595
+ }
596
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/generators/skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export { partitionBareMetal, platformToNativePlatform, resolvedWithOnlyServices, } from "./bare-metal-partition.js";
2
+ export type { ComposeResult } from "./composer.js";
3
+ export { compose, composeMultiFile } from "./composer.js";
4
+ export { generate } from "./generate.js";
5
+ export { generateCaddyfile } from "./generators/caddy.js";
6
+ export type { EnvVarGroup } from "./generators/env.js";
7
+ export { generateEnvFiles, getStructuredEnvVars } from "./generators/env.js";
8
+ export { generateGrafanaConfig, generateGrafanaDashboard } from "./generators/grafana.js";
9
+ export { generateN8nWorkflows } from "./generators/n8n-workflows.js";
10
+ export { generatePostgresInit, getDbRequirements } from "./generators/postgres-init.js";
11
+ export { generatePrometheusConfig } from "./generators/prometheus.js";
12
+ export { generateReadme } from "./generators/readme.js";
13
+ export { generateScripts } from "./generators/scripts.js";
14
+ export { generateSkillFiles } from "./generators/skills.js";
15
+ export { getAllPresets, getPresetById, presetRegistry } from "./presets/registry.js";
16
+ export { resolve } from "./resolver.js";
17
+ export { AddedDependencySchema, ApiErrorSchema, ComposeOptionsSchema, DeploymentTargetSchema, DeploymentTypeSchema, DeploySchema, EnvVariableSchema, ErrorSchema, GenerationInputSchema, HealthCheckSchema, MaturitySchema, NativePlatformSchema, NativeRecipeSchema, OutputFormatSchema, PlatformSchema, PortMappingSchema, PresetSchema, ProxyTypeSchema, ResolvedServiceSchema, ResolverOutputSchema, ResourceLimitsSchema, RestartPolicySchema, ServiceCategorySchema, ServiceDefinitionSchema, SkillBindingSchema, SkillPackSchema, ValidateRequestSchema, ValidateResponseSchema, VolumeMappingSchema, WarningSchema, } from "./schema.js";
18
+ export { getAllServices, getServiceById, getServicesByCategory, serviceRegistry, } from "./services/registry.js";
19
+ export { getAllSkillPacks, getCompatibleSkillPacks, getSkillPackById, skillPackRegistry, } from "./skills/registry.js";
20
+ export type { AddedDependency, ApiError, CategoryInfo, ComposeOptions, Deploy, DeploymentTarget, DeploymentType, EnvVariable, GeneratedFiles, GenerationInput, GenerationMetadata, GenerationResult, HealthCheck, Maturity, NativePlatform, NativeRecipe, OutputFormat, Platform, PortMapping, Preset, ProxyType, ResolvedService, ResolverError, ResolverInput, ResolverOutput, ResourceLimits, RestartPolicy, ServiceCategory, ServiceDefinition, SkillBinding, SkillPack, ValidateRequest, ValidateResponse, VolumeMapping, Warning, } from "./types.js";
21
+ export { SERVICE_CATEGORIES } from "./types.js";
22
+ export { validate } from "./validator.js";
23
+ export { checkCompatibility, getImageReference, getImageTag, pinImageTags, } from "./version-manager.js";
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,GACxB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACN,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EACN,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,eAAe,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACN,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACX,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,MAAM,EACN,SAAS,EACT,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,OAAO,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,YAAY,GACZ,MAAM,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ // ─── Schemas ────────────────────────────────────────────────────────────────
2
+ // ─── Core Engines ───────────────────────────────────────────────────────────
3
+ export { partitionBareMetal, platformToNativePlatform, resolvedWithOnlyServices, } from "./bare-metal-partition.js";
4
+ export { compose, composeMultiFile } from "./composer.js";
5
+ export { generate } from "./generate.js";
6
+ export { generateCaddyfile } from "./generators/caddy.js";
7
+ export { generateEnvFiles, getStructuredEnvVars } from "./generators/env.js";
8
+ export { generateGrafanaConfig, generateGrafanaDashboard } from "./generators/grafana.js";
9
+ export { generateN8nWorkflows } from "./generators/n8n-workflows.js";
10
+ export { generatePostgresInit, getDbRequirements } from "./generators/postgres-init.js";
11
+ export { generatePrometheusConfig } from "./generators/prometheus.js";
12
+ export { generateReadme } from "./generators/readme.js";
13
+ export { generateScripts } from "./generators/scripts.js";
14
+ export { generateSkillFiles } from "./generators/skills.js";
15
+ // ─── Presets ────────────────────────────────────────────────────────────────
16
+ export { getAllPresets, getPresetById, presetRegistry } from "./presets/registry.js";
17
+ export { resolve } from "./resolver.js";
18
+ export { AddedDependencySchema, ApiErrorSchema, ComposeOptionsSchema, DeploymentTargetSchema, DeploymentTypeSchema, DeploySchema, EnvVariableSchema, ErrorSchema, GenerationInputSchema, HealthCheckSchema, MaturitySchema, NativePlatformSchema, NativeRecipeSchema, OutputFormatSchema, PlatformSchema, PortMappingSchema, PresetSchema, ProxyTypeSchema, ResolvedServiceSchema, ResolverOutputSchema, ResourceLimitsSchema, RestartPolicySchema, ServiceCategorySchema, ServiceDefinitionSchema, SkillBindingSchema, SkillPackSchema, ValidateRequestSchema, ValidateResponseSchema, VolumeMappingSchema, WarningSchema, } from "./schema.js";
19
+ // ─── Service Registry ───────────────────────────────────────────────────────
20
+ export { getAllServices, getServiceById, getServicesByCategory, serviceRegistry, } from "./services/registry.js";
21
+ // ─── Skill Packs ────────────────────────────────────────────────────────────
22
+ export { getAllSkillPacks, getCompatibleSkillPacks, getSkillPackById, skillPackRegistry, } from "./skills/registry.js";
23
+ export { SERVICE_CATEGORIES } from "./types.js";
24
+ export { validate } from "./validator.js";
25
+ // ─── Version Manager ────────────────────────────────────────────────────────
26
+ export { checkCompatibility, getImageReference, getImageTag, pinImageTags, } from "./version-manager.js";
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,+EAA+E;AAC/E,OAAO,EACN,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,+EAA+E;AAC/E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACN,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,GACb,MAAM,aAAa,CAAC;AACrB,+EAA+E;AAC/E,OAAO,EACN,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,eAAe,GACf,MAAM,wBAAwB,CAAC;AAChC,+EAA+E;AAC/E,OAAO,EACN,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,sBAAsB,CAAC;AAuC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,+EAA+E;AAC/E,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,YAAY,GACZ,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Preset } from "../types.js";
2
+ export declare const presetRegistry: ReadonlyMap<string, Preset>;
3
+ export declare function getPresetById(id: string): Preset | undefined;
4
+ export declare function getAllPresets(): Preset[];
5
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/presets/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAqH1C,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,CAAC;AAErE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5D;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC"}