@hera-al/server 1.6.1

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 (348) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +325 -0
  3. package/bundled/apple-notes/SKILL.md +77 -0
  4. package/bundled/apple-reminders/SKILL.md +96 -0
  5. package/bundled/blogwatcher/SKILL.md +69 -0
  6. package/bundled/camsnap/SKILL.md +45 -0
  7. package/bundled/discord/SKILL.md +578 -0
  8. package/bundled/gemini/SKILL.md +43 -0
  9. package/bundled/gifgrep/SKILL.md +79 -0
  10. package/bundled/github/SKILL.md +77 -0
  11. package/bundled/gog/SKILL.md +116 -0
  12. package/bundled/goplaces/SKILL.md +52 -0
  13. package/bundled/himalaya/SKILL.md +257 -0
  14. package/bundled/himalaya/references/configuration.md +184 -0
  15. package/bundled/himalaya/references/message-composition.md +199 -0
  16. package/bundled/homebrew/SKILL.md +82 -0
  17. package/bundled/local-places/SERVER_README.md +101 -0
  18. package/bundled/local-places/SKILL.md +102 -0
  19. package/bundled/local-places/pyproject.toml +21 -0
  20. package/bundled/local-places/src/local_places/__init__.py +2 -0
  21. package/bundled/local-places/src/local_places/google_places.py +314 -0
  22. package/bundled/local-places/src/local_places/main.py +65 -0
  23. package/bundled/local-places/src/local_places/schemas.py +107 -0
  24. package/bundled/markitdown/SKILL.md +96 -0
  25. package/bundled/mcporter/SKILL.md +61 -0
  26. package/bundled/merge-pr/SKILL.md +187 -0
  27. package/bundled/merge-pr/agents/openai.yaml +4 -0
  28. package/bundled/nano-banana-pro/SKILL.md +58 -0
  29. package/bundled/nano-banana-pro/scripts/generate_image.py +184 -0
  30. package/bundled/nano-pdf/SKILL.md +38 -0
  31. package/bundled/open-prose/README.md +25 -0
  32. package/bundled/open-prose/index.ts +5 -0
  33. package/bundled/open-prose/openclaw.plugin.json +11 -0
  34. package/bundled/open-prose/package.json +15 -0
  35. package/bundled/open-prose/skills/prose/LICENSE +21 -0
  36. package/bundled/open-prose/skills/prose/SKILL.md +323 -0
  37. package/bundled/open-prose/skills/prose/alt-borges.md +141 -0
  38. package/bundled/open-prose/skills/prose/alts/arabian-nights.md +358 -0
  39. package/bundled/open-prose/skills/prose/alts/borges.md +360 -0
  40. package/bundled/open-prose/skills/prose/alts/folk.md +322 -0
  41. package/bundled/open-prose/skills/prose/alts/homer.md +346 -0
  42. package/bundled/open-prose/skills/prose/alts/kafka.md +373 -0
  43. package/bundled/open-prose/skills/prose/compiler.md +2971 -0
  44. package/bundled/open-prose/skills/prose/examples/01-hello-world.prose +4 -0
  45. package/bundled/open-prose/skills/prose/examples/02-research-and-summarize.prose +6 -0
  46. package/bundled/open-prose/skills/prose/examples/03-code-review.prose +17 -0
  47. package/bundled/open-prose/skills/prose/examples/04-write-and-refine.prose +14 -0
  48. package/bundled/open-prose/skills/prose/examples/05-debug-issue.prose +20 -0
  49. package/bundled/open-prose/skills/prose/examples/06-explain-codebase.prose +17 -0
  50. package/bundled/open-prose/skills/prose/examples/07-refactor.prose +20 -0
  51. package/bundled/open-prose/skills/prose/examples/08-blog-post.prose +20 -0
  52. package/bundled/open-prose/skills/prose/examples/09-research-with-agents.prose +25 -0
  53. package/bundled/open-prose/skills/prose/examples/10-code-review-agents.prose +32 -0
  54. package/bundled/open-prose/skills/prose/examples/11-skills-and-imports.prose +27 -0
  55. package/bundled/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +43 -0
  56. package/bundled/open-prose/skills/prose/examples/13-variables-and-context.prose +51 -0
  57. package/bundled/open-prose/skills/prose/examples/14-composition-blocks.prose +48 -0
  58. package/bundled/open-prose/skills/prose/examples/15-inline-sequences.prose +23 -0
  59. package/bundled/open-prose/skills/prose/examples/16-parallel-reviews.prose +19 -0
  60. package/bundled/open-prose/skills/prose/examples/17-parallel-research.prose +19 -0
  61. package/bundled/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +36 -0
  62. package/bundled/open-prose/skills/prose/examples/19-advanced-parallel.prose +71 -0
  63. package/bundled/open-prose/skills/prose/examples/20-fixed-loops.prose +20 -0
  64. package/bundled/open-prose/skills/prose/examples/21-pipeline-operations.prose +35 -0
  65. package/bundled/open-prose/skills/prose/examples/22-error-handling.prose +51 -0
  66. package/bundled/open-prose/skills/prose/examples/23-retry-with-backoff.prose +63 -0
  67. package/bundled/open-prose/skills/prose/examples/24-choice-blocks.prose +86 -0
  68. package/bundled/open-prose/skills/prose/examples/25-conditionals.prose +114 -0
  69. package/bundled/open-prose/skills/prose/examples/26-parameterized-blocks.prose +100 -0
  70. package/bundled/open-prose/skills/prose/examples/27-string-interpolation.prose +105 -0
  71. package/bundled/open-prose/skills/prose/examples/28-automated-pr-review.prose +37 -0
  72. package/bundled/open-prose/skills/prose/examples/28-gas-town.prose +1572 -0
  73. package/bundled/open-prose/skills/prose/examples/29-captains-chair.prose +218 -0
  74. package/bundled/open-prose/skills/prose/examples/30-captains-chair-simple.prose +42 -0
  75. package/bundled/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +145 -0
  76. package/bundled/open-prose/skills/prose/examples/33-pr-review-autofix.prose +168 -0
  77. package/bundled/open-prose/skills/prose/examples/34-content-pipeline.prose +204 -0
  78. package/bundled/open-prose/skills/prose/examples/35-feature-factory.prose +296 -0
  79. package/bundled/open-prose/skills/prose/examples/36-bug-hunter.prose +237 -0
  80. package/bundled/open-prose/skills/prose/examples/37-the-forge.prose +1474 -0
  81. package/bundled/open-prose/skills/prose/examples/38-skill-scan.prose +455 -0
  82. package/bundled/open-prose/skills/prose/examples/39-architect-by-simulation.prose +277 -0
  83. package/bundled/open-prose/skills/prose/examples/40-rlm-self-refine.prose +32 -0
  84. package/bundled/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +38 -0
  85. package/bundled/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +46 -0
  86. package/bundled/open-prose/skills/prose/examples/43-rlm-pairwise.prose +50 -0
  87. package/bundled/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +261 -0
  88. package/bundled/open-prose/skills/prose/examples/45-plugin-release.prose +159 -0
  89. package/bundled/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +637 -0
  90. package/bundled/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +148 -0
  91. package/bundled/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +225 -0
  92. package/bundled/open-prose/skills/prose/examples/47-language-self-improvement.prose +356 -0
  93. package/bundled/open-prose/skills/prose/examples/48-habit-miner.prose +445 -0
  94. package/bundled/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +210 -0
  95. package/bundled/open-prose/skills/prose/examples/README.md +391 -0
  96. package/bundled/open-prose/skills/prose/examples/roadmap/README.md +22 -0
  97. package/bundled/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +20 -0
  98. package/bundled/open-prose/skills/prose/examples/roadmap/parallel-review.prose +18 -0
  99. package/bundled/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +17 -0
  100. package/bundled/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +223 -0
  101. package/bundled/open-prose/skills/prose/guidance/antipatterns.md +951 -0
  102. package/bundled/open-prose/skills/prose/guidance/patterns.md +700 -0
  103. package/bundled/open-prose/skills/prose/guidance/system-prompt.md +180 -0
  104. package/bundled/open-prose/skills/prose/help.md +144 -0
  105. package/bundled/open-prose/skills/prose/lib/README.md +108 -0
  106. package/bundled/open-prose/skills/prose/lib/calibrator.prose +215 -0
  107. package/bundled/open-prose/skills/prose/lib/cost-analyzer.prose +174 -0
  108. package/bundled/open-prose/skills/prose/lib/error-forensics.prose +250 -0
  109. package/bundled/open-prose/skills/prose/lib/inspector.prose +196 -0
  110. package/bundled/open-prose/skills/prose/lib/profiler.prose +460 -0
  111. package/bundled/open-prose/skills/prose/lib/program-improver.prose +275 -0
  112. package/bundled/open-prose/skills/prose/lib/project-memory.prose +118 -0
  113. package/bundled/open-prose/skills/prose/lib/user-memory.prose +93 -0
  114. package/bundled/open-prose/skills/prose/lib/vm-improver.prose +243 -0
  115. package/bundled/open-prose/skills/prose/primitives/session.md +593 -0
  116. package/bundled/open-prose/skills/prose/prose.md +1237 -0
  117. package/bundled/open-prose/skills/prose/state/filesystem.md +498 -0
  118. package/bundled/open-prose/skills/prose/state/in-context.md +384 -0
  119. package/bundled/open-prose/skills/prose/state/postgres.md +880 -0
  120. package/bundled/open-prose/skills/prose/state/sqlite.md +574 -0
  121. package/bundled/peekaboo/SKILL.md +190 -0
  122. package/bundled/prepare-pr/SKILL.md +277 -0
  123. package/bundled/prepare-pr/agents/openai.yaml +4 -0
  124. package/bundled/review-pr/SKILL.md +228 -0
  125. package/bundled/review-pr/agents/openai.yaml +4 -0
  126. package/bundled/sag/SKILL.md +87 -0
  127. package/bundled/skill-creator/SKILL.md +370 -0
  128. package/bundled/skill-creator/license.txt +202 -0
  129. package/bundled/skill-creator/scripts/init_skill.py +378 -0
  130. package/bundled/skill-creator/scripts/package_skill.py +111 -0
  131. package/bundled/skill-creator/scripts/quick_validate.py +101 -0
  132. package/bundled/spotify-player/SKILL.md +64 -0
  133. package/bundled/ssh/SKILL.md +119 -0
  134. package/bundled/summarize/SKILL.md +87 -0
  135. package/bundled/video-frames/SKILL.md +46 -0
  136. package/bundled/video-frames/scripts/frame.sh +81 -0
  137. package/bundled/voice-call/SKILL.md +45 -0
  138. package/bundled/wacli/SKILL.md +72 -0
  139. package/bundled/weather/SKILL.md +54 -0
  140. package/dist/agent/agent-service.d.ts +88 -0
  141. package/dist/agent/agent-service.js +1 -0
  142. package/dist/agent/message-queue.d.ts +24 -0
  143. package/dist/agent/message-queue.js +1 -0
  144. package/dist/agent/prompt-builder.d.ts +58 -0
  145. package/dist/agent/prompt-builder.js +1 -0
  146. package/dist/agent/session-agent.d.ts +197 -0
  147. package/dist/agent/session-agent.js +1 -0
  148. package/dist/agent/session-db.d.ts +26 -0
  149. package/dist/agent/session-db.js +1 -0
  150. package/dist/agent/session-error-handler.d.ts +37 -0
  151. package/dist/agent/session-error-handler.js +1 -0
  152. package/dist/agent/session-manager.d.ts +19 -0
  153. package/dist/agent/session-manager.js +1 -0
  154. package/dist/agent/workspace-files.d.ts +51 -0
  155. package/dist/agent/workspace-files.js +1 -0
  156. package/dist/auth/auth-middleware.d.ts +9 -0
  157. package/dist/auth/auth-middleware.js +1 -0
  158. package/dist/auth/node-signature-db.d.ts +30 -0
  159. package/dist/auth/node-signature-db.js +1 -0
  160. package/dist/auth/token-db.d.ts +38 -0
  161. package/dist/auth/token-db.js +1 -0
  162. package/dist/browser/browser-service.d.ts +9 -0
  163. package/dist/browser/browser-service.js +1 -0
  164. package/dist/channels/channel.d.ts +2 -0
  165. package/dist/channels/channel.js +1 -0
  166. package/dist/channels/responses.d.ts +21 -0
  167. package/dist/channels/responses.js +1 -0
  168. package/dist/commands/clear.d.ts +7 -0
  169. package/dist/commands/clear.js +1 -0
  170. package/dist/commands/cmd.d.ts +7 -0
  171. package/dist/commands/cmd.js +1 -0
  172. package/dist/commands/coder.d.ts +12 -0
  173. package/dist/commands/coder.js +1 -0
  174. package/dist/commands/command-registry.d.ts +12 -0
  175. package/dist/commands/command-registry.js +1 -0
  176. package/dist/commands/command.d.ts +22 -0
  177. package/dist/commands/command.js +1 -0
  178. package/dist/commands/compact.d.ts +7 -0
  179. package/dist/commands/compact.js +1 -0
  180. package/dist/commands/customsubagents.d.ts +15 -0
  181. package/dist/commands/customsubagents.js +1 -0
  182. package/dist/commands/help.d.ts +9 -0
  183. package/dist/commands/help.js +1 -0
  184. package/dist/commands/mcp.d.ts +9 -0
  185. package/dist/commands/mcp.js +1 -0
  186. package/dist/commands/model.d.ts +22 -0
  187. package/dist/commands/model.js +1 -0
  188. package/dist/commands/models.d.ts +11 -0
  189. package/dist/commands/models.js +1 -0
  190. package/dist/commands/new.d.ts +7 -0
  191. package/dist/commands/new.js +1 -0
  192. package/dist/commands/plugin.d.ts +7 -0
  193. package/dist/commands/plugin.js +1 -0
  194. package/dist/commands/sandbox.d.ts +12 -0
  195. package/dist/commands/sandbox.js +1 -0
  196. package/dist/commands/showtool.d.ts +12 -0
  197. package/dist/commands/showtool.js +1 -0
  198. package/dist/commands/status.d.ts +24 -0
  199. package/dist/commands/status.js +1 -0
  200. package/dist/commands/stop.d.ts +10 -0
  201. package/dist/commands/stop.js +1 -0
  202. package/dist/commands/subagents.d.ts +12 -0
  203. package/dist/commands/subagents.js +1 -0
  204. package/dist/commands/usage.d.ts +25 -0
  205. package/dist/commands/usage.js +1 -0
  206. package/dist/commands/useplugin.d.ts +7 -0
  207. package/dist/commands/useplugin.js +1 -0
  208. package/dist/config-watcher.d.ts +14 -0
  209. package/dist/config-watcher.js +1 -0
  210. package/dist/config.d.ts +267 -0
  211. package/dist/config.js +1 -0
  212. package/dist/cron/cron-service.d.ts +57 -0
  213. package/dist/cron/cron-service.js +1 -0
  214. package/dist/cron/heartbeat-token.d.ts +29 -0
  215. package/dist/cron/heartbeat-token.js +1 -0
  216. package/dist/cron/schedule.d.ts +3 -0
  217. package/dist/cron/schedule.js +1 -0
  218. package/dist/cron/store.d.ts +4 -0
  219. package/dist/cron/store.js +1 -0
  220. package/dist/cron/types.d.ts +47 -0
  221. package/dist/cron/types.js +1 -0
  222. package/dist/gateway/bridge.d.ts +38 -0
  223. package/dist/gateway/bridge.js +1 -0
  224. package/dist/gateway/channel-manager.d.ts +45 -0
  225. package/dist/gateway/channel-manager.js +1 -0
  226. package/dist/gateway/channels/qr-image.d.ts +5 -0
  227. package/dist/gateway/channels/qr-image.js +1 -0
  228. package/dist/gateway/channels/telegram.d.ts +39 -0
  229. package/dist/gateway/channels/telegram.js +1 -0
  230. package/dist/gateway/channels/webchat.d.ts +51 -0
  231. package/dist/gateway/channels/webchat.js +1 -0
  232. package/dist/gateway/channels/whatsapp.d.ts +40 -0
  233. package/dist/gateway/channels/whatsapp.js +1 -0
  234. package/dist/gateway/node-registry.d.ts +38 -0
  235. package/dist/gateway/node-registry.js +1 -0
  236. package/dist/heracli/index.d.ts +3 -0
  237. package/dist/heracli/index.js +2 -0
  238. package/dist/heracli/logs.d.ts +13 -0
  239. package/dist/heracli/logs.js +1 -0
  240. package/dist/heracli/security/audit.d.ts +17 -0
  241. package/dist/heracli/security/audit.js +1 -0
  242. package/dist/heracli/security/checks/channel-policies.d.ts +6 -0
  243. package/dist/heracli/security/checks/channel-policies.js +1 -0
  244. package/dist/heracli/security/checks/credentials.d.ts +6 -0
  245. package/dist/heracli/security/checks/credentials.js +1 -0
  246. package/dist/heracli/security/checks/fs-permissions.d.ts +6 -0
  247. package/dist/heracli/security/checks/fs-permissions.js +1 -0
  248. package/dist/heracli/security/checks/network.d.ts +4 -0
  249. package/dist/heracli/security/checks/network.js +1 -0
  250. package/dist/heracli/security/report.d.ts +4 -0
  251. package/dist/heracli/security/report.js +1 -0
  252. package/dist/index.d.ts +3 -0
  253. package/dist/index.js +2 -0
  254. package/dist/installer/hera.d.ts +3 -0
  255. package/dist/installer/hera.js +2 -0
  256. package/dist/media/message-processor.d.ts +23 -0
  257. package/dist/media/message-processor.js +1 -0
  258. package/dist/memory/memory-manager.d.ts +21 -0
  259. package/dist/memory/memory-manager.js +1 -0
  260. package/dist/memory/memory-provider.d.ts +22 -0
  261. package/dist/memory/memory-provider.js +1 -0
  262. package/dist/memory/memory-search.d.ts +102 -0
  263. package/dist/memory/memory-search.js +1 -0
  264. package/dist/memory/recall-strategies.d.ts +2 -0
  265. package/dist/memory/recall-strategies.js +1 -0
  266. package/dist/nostromo/auth.d.ts +29 -0
  267. package/dist/nostromo/auth.js +1 -0
  268. package/dist/nostromo/nostromo.d.ts +23 -0
  269. package/dist/nostromo/nostromo.js +1 -0
  270. package/dist/nostromo/ui-html-layout.d.ts +3 -0
  271. package/dist/nostromo/ui-html-layout.js +1 -0
  272. package/dist/nostromo/ui-html-modals.d.ts +3 -0
  273. package/dist/nostromo/ui-html-modals.js +1 -0
  274. package/dist/nostromo/ui-js-agent.d.ts +3 -0
  275. package/dist/nostromo/ui-js-agent.js +1 -0
  276. package/dist/nostromo/ui-js-channels.d.ts +3 -0
  277. package/dist/nostromo/ui-js-channels.js +1 -0
  278. package/dist/nostromo/ui-js-competences.d.ts +3 -0
  279. package/dist/nostromo/ui-js-competences.js +1 -0
  280. package/dist/nostromo/ui-js-config.d.ts +3 -0
  281. package/dist/nostromo/ui-js-config.js +1 -0
  282. package/dist/nostromo/ui-js-core.d.ts +3 -0
  283. package/dist/nostromo/ui-js-core.js +1 -0
  284. package/dist/nostromo/ui-js-ops.d.ts +3 -0
  285. package/dist/nostromo/ui-js-ops.js +1 -0
  286. package/dist/nostromo/ui-js-prompts.d.ts +3 -0
  287. package/dist/nostromo/ui-js-prompts.js +1 -0
  288. package/dist/nostromo/ui-styles.d.ts +3 -0
  289. package/dist/nostromo/ui-styles.js +1 -0
  290. package/dist/nostromo/ui.d.ts +2 -0
  291. package/dist/nostromo/ui.js +1 -0
  292. package/dist/server.d.ts +80 -0
  293. package/dist/server.js +1 -0
  294. package/dist/stt/local-whisper.d.ts +9 -0
  295. package/dist/stt/local-whisper.js +1 -0
  296. package/dist/stt/openai-whisper.d.ts +14 -0
  297. package/dist/stt/openai-whisper.js +1 -0
  298. package/dist/stt/stt-loader.d.ts +4 -0
  299. package/dist/stt/stt-loader.js +1 -0
  300. package/dist/stt/stt-provider.d.ts +4 -0
  301. package/dist/stt/stt-provider.js +1 -0
  302. package/dist/tools/browser-tools.d.ts +9 -0
  303. package/dist/tools/browser-tools.js +1 -0
  304. package/dist/tools/cron-tools.d.ts +4 -0
  305. package/dist/tools/cron-tools.js +1 -0
  306. package/dist/tools/memory-tools.d.ts +3 -0
  307. package/dist/tools/memory-tools.js +1 -0
  308. package/dist/tools/message-tools.d.ts +5 -0
  309. package/dist/tools/message-tools.js +1 -0
  310. package/dist/tools/node-tools.d.ts +3 -0
  311. package/dist/tools/node-tools.js +1 -0
  312. package/dist/tools/server-tools.d.ts +2 -0
  313. package/dist/tools/server-tools.js +1 -0
  314. package/dist/tools/tts-tools.d.ts +3 -0
  315. package/dist/tools/tts-tools.js +1 -0
  316. package/dist/tts/tts-service.d.ts +19 -0
  317. package/dist/tts/tts-service.js +1 -0
  318. package/dist/utils/chunk.d.ts +3 -0
  319. package/dist/utils/chunk.js +1 -0
  320. package/dist/utils/logger.d.ts +16 -0
  321. package/dist/utils/logger.js +1 -0
  322. package/dist/utils/markdown/fences.d.ts +11 -0
  323. package/dist/utils/markdown/fences.js +1 -0
  324. package/dist/utils/markdown/ir.d.ts +33 -0
  325. package/dist/utils/markdown/ir.js +1 -0
  326. package/dist/utils/markdown/render.d.ts +19 -0
  327. package/dist/utils/markdown/render.js +1 -0
  328. package/dist/utils/markdown/tables.d.ts +3 -0
  329. package/dist/utils/markdown/tables.js +1 -0
  330. package/dist/utils/media-response.d.ts +29 -0
  331. package/dist/utils/media-response.js +1 -0
  332. package/dist/utils/package-paths.d.ts +5 -0
  333. package/dist/utils/package-paths.js +1 -0
  334. package/dist/utils/telegram-format.d.ts +13 -0
  335. package/dist/utils/telegram-format.js +1 -0
  336. package/installationPkg/.env.example +26 -0
  337. package/installationPkg/AGENTS.md +143 -0
  338. package/installationPkg/BOOTSTRAP.md +45 -0
  339. package/installationPkg/CBINT.json +16 -0
  340. package/installationPkg/HEARTBEAT.md +5 -0
  341. package/installationPkg/IDENTITY.md +7 -0
  342. package/installationPkg/SOUL.md +36 -0
  343. package/installationPkg/SYSTEM_PROMPT.md +55 -0
  344. package/installationPkg/SYSTEM_PROMPT_SUBAGENT.md +40 -0
  345. package/installationPkg/TOOLS.md +36 -0
  346. package/installationPkg/USER.md +11 -0
  347. package/installationPkg/config.example.yaml +291 -0
  348. package/package.json +95 -0
@@ -0,0 +1,578 @@
1
+ ---
2
+ name: discord
3
+ description: Use when you need to control Discord from OpenClaw via the discord tool: send messages, react, post or upload stickers, upload emojis, run polls, manage threads/pins/search, create/edit/delete channels and categories, fetch permissions or member/role/channel info, set bot presence/activity, or handle moderation actions in Discord DMs or channels.
4
+ metadata: {"openclaw":{"emoji":"🎮","requires":{"config":["channels.discord"]}}}
5
+ ---
6
+
7
+ # Discord Actions
8
+
9
+ ## Overview
10
+
11
+ Use `discord` to manage messages, reactions, threads, polls, and moderation. You can disable groups via `discord.actions.*` (defaults to enabled, except roles/moderation). The tool uses the bot token configured for OpenClaw.
12
+
13
+ ## Inputs to collect
14
+
15
+ - For reactions: `channelId`, `messageId`, and an `emoji`.
16
+ - For fetchMessage: `guildId`, `channelId`, `messageId`, or a `messageLink` like `https://discord.com/channels/<guildId>/<channelId>/<messageId>`.
17
+ - For stickers/polls/sendMessage: a `to` target (`channel:<id>` or `user:<id>`). Optional `content` text.
18
+ - Polls also need a `question` plus 2–10 `answers`.
19
+ - For media: `mediaUrl` with `file:///path` for local files or `https://...` for remote.
20
+ - For emoji uploads: `guildId`, `name`, `mediaUrl`, optional `roleIds` (limit 256KB, PNG/JPG/GIF).
21
+ - For sticker uploads: `guildId`, `name`, `description`, `tags`, `mediaUrl` (limit 512KB, PNG/APNG/Lottie JSON).
22
+
23
+ Message context lines include `discord message id` and `channel` fields you can reuse directly.
24
+
25
+ **Note:** `sendMessage` uses `to: "channel:<id>"` format, not `channelId`. Other actions like `react`, `readMessages`, `editMessage` use `channelId` directly.
26
+ **Note:** `fetchMessage` accepts message IDs or full links like `https://discord.com/channels/<guildId>/<channelId>/<messageId>`.
27
+
28
+ ## Actions
29
+
30
+ ### React to a message
31
+
32
+ ```json
33
+ {
34
+ "action": "react",
35
+ "channelId": "123",
36
+ "messageId": "456",
37
+ "emoji": "✅"
38
+ }
39
+ ```
40
+
41
+ ### List reactions + users
42
+
43
+ ```json
44
+ {
45
+ "action": "reactions",
46
+ "channelId": "123",
47
+ "messageId": "456",
48
+ "limit": 100
49
+ }
50
+ ```
51
+
52
+ ### Send a sticker
53
+
54
+ ```json
55
+ {
56
+ "action": "sticker",
57
+ "to": "channel:123",
58
+ "stickerIds": ["9876543210"],
59
+ "content": "Nice work!"
60
+ }
61
+ ```
62
+
63
+ - Up to 3 sticker IDs per message.
64
+ - `to` can be `user:<id>` for DMs.
65
+
66
+ ### Upload a custom emoji
67
+
68
+ ```json
69
+ {
70
+ "action": "emojiUpload",
71
+ "guildId": "999",
72
+ "name": "party_blob",
73
+ "mediaUrl": "file:///tmp/party.png",
74
+ "roleIds": ["222"]
75
+ }
76
+ ```
77
+
78
+ - Emoji images must be PNG/JPG/GIF and <= 256KB.
79
+ - `roleIds` is optional; omit to make the emoji available to everyone.
80
+
81
+ ### Upload a sticker
82
+
83
+ ```json
84
+ {
85
+ "action": "stickerUpload",
86
+ "guildId": "999",
87
+ "name": "openclaw_wave",
88
+ "description": "OpenClaw waving hello",
89
+ "tags": "👋",
90
+ "mediaUrl": "file:///tmp/wave.png"
91
+ }
92
+ ```
93
+
94
+ - Stickers require `name`, `description`, and `tags`.
95
+ - Uploads must be PNG/APNG/Lottie JSON and <= 512KB.
96
+
97
+ ### Create a poll
98
+
99
+ ```json
100
+ {
101
+ "action": "poll",
102
+ "to": "channel:123",
103
+ "question": "Lunch?",
104
+ "answers": ["Pizza", "Sushi", "Salad"],
105
+ "allowMultiselect": false,
106
+ "durationHours": 24,
107
+ "content": "Vote now"
108
+ }
109
+ ```
110
+
111
+ - `durationHours` defaults to 24; max 32 days (768 hours).
112
+
113
+ ### Check bot permissions for a channel
114
+
115
+ ```json
116
+ {
117
+ "action": "permissions",
118
+ "channelId": "123"
119
+ }
120
+ ```
121
+
122
+ ## Ideas to try
123
+
124
+ - React with ✅/⚠️ to mark status updates.
125
+ - Post a quick poll for release decisions or meeting times.
126
+ - Send celebratory stickers after successful deploys.
127
+ - Upload new emojis/stickers for release moments.
128
+ - Run weekly “priority check” polls in team channels.
129
+ - DM stickers as acknowledgements when a user’s request is completed.
130
+
131
+ ## Action gating
132
+
133
+ Use `discord.actions.*` to disable action groups:
134
+
135
+ - `reactions` (react + reactions list + emojiList)
136
+ - `stickers`, `polls`, `permissions`, `messages`, `threads`, `pins`, `search`
137
+ - `emojiUploads`, `stickerUploads`
138
+ - `memberInfo`, `roleInfo`, `channelInfo`, `voiceStatus`, `events`
139
+ - `roles` (role add/remove, default `false`)
140
+ - `channels` (channel/category create/edit/delete/move, default `false`)
141
+ - `moderation` (timeout/kick/ban, default `false`)
142
+ - `presence` (bot status/activity, default `false`)
143
+
144
+ ### Read recent messages
145
+
146
+ ```json
147
+ {
148
+ "action": "readMessages",
149
+ "channelId": "123",
150
+ "limit": 20
151
+ }
152
+ ```
153
+
154
+ ### Fetch a single message
155
+
156
+ ```json
157
+ {
158
+ "action": "fetchMessage",
159
+ "guildId": "999",
160
+ "channelId": "123",
161
+ "messageId": "456"
162
+ }
163
+ ```
164
+
165
+ ```json
166
+ {
167
+ "action": "fetchMessage",
168
+ "messageLink": "https://discord.com/channels/999/123/456"
169
+ }
170
+ ```
171
+
172
+ ### Send/edit/delete a message
173
+
174
+ ```json
175
+ {
176
+ "action": "sendMessage",
177
+ "to": "channel:123",
178
+ "content": "Hello from OpenClaw"
179
+ }
180
+ ```
181
+
182
+ **With media attachment:**
183
+
184
+ ```json
185
+ {
186
+ "action": "sendMessage",
187
+ "to": "channel:123",
188
+ "content": "Check out this audio!",
189
+ "mediaUrl": "file:///tmp/audio.mp3"
190
+ }
191
+ ```
192
+
193
+ - `to` uses format `channel:<id>` or `user:<id>` for DMs (not `channelId`!)
194
+ - `mediaUrl` supports local files (`file:///path/to/file`) and remote URLs (`https://...`)
195
+ - Optional `replyTo` with a message ID to reply to a specific message
196
+
197
+ ```json
198
+ {
199
+ "action": "editMessage",
200
+ "channelId": "123",
201
+ "messageId": "456",
202
+ "content": "Fixed typo"
203
+ }
204
+ ```
205
+
206
+ ```json
207
+ {
208
+ "action": "deleteMessage",
209
+ "channelId": "123",
210
+ "messageId": "456"
211
+ }
212
+ ```
213
+
214
+ ### Threads
215
+
216
+ ```json
217
+ {
218
+ "action": "threadCreate",
219
+ "channelId": "123",
220
+ "name": "Bug triage",
221
+ "messageId": "456"
222
+ }
223
+ ```
224
+
225
+ ```json
226
+ {
227
+ "action": "threadList",
228
+ "guildId": "999"
229
+ }
230
+ ```
231
+
232
+ ```json
233
+ {
234
+ "action": "threadReply",
235
+ "channelId": "777",
236
+ "content": "Replying in thread"
237
+ }
238
+ ```
239
+
240
+ ### Pins
241
+
242
+ ```json
243
+ {
244
+ "action": "pinMessage",
245
+ "channelId": "123",
246
+ "messageId": "456"
247
+ }
248
+ ```
249
+
250
+ ```json
251
+ {
252
+ "action": "listPins",
253
+ "channelId": "123"
254
+ }
255
+ ```
256
+
257
+ ### Search messages
258
+
259
+ ```json
260
+ {
261
+ "action": "searchMessages",
262
+ "guildId": "999",
263
+ "content": "release notes",
264
+ "channelIds": ["123", "456"],
265
+ "limit": 10
266
+ }
267
+ ```
268
+
269
+ ### Member + role info
270
+
271
+ ```json
272
+ {
273
+ "action": "memberInfo",
274
+ "guildId": "999",
275
+ "userId": "111"
276
+ }
277
+ ```
278
+
279
+ ```json
280
+ {
281
+ "action": "roleInfo",
282
+ "guildId": "999"
283
+ }
284
+ ```
285
+
286
+ ### List available custom emojis
287
+
288
+ ```json
289
+ {
290
+ "action": "emojiList",
291
+ "guildId": "999"
292
+ }
293
+ ```
294
+
295
+ ### Role changes (disabled by default)
296
+
297
+ ```json
298
+ {
299
+ "action": "roleAdd",
300
+ "guildId": "999",
301
+ "userId": "111",
302
+ "roleId": "222"
303
+ }
304
+ ```
305
+
306
+ ### Channel info
307
+
308
+ ```json
309
+ {
310
+ "action": "channelInfo",
311
+ "channelId": "123"
312
+ }
313
+ ```
314
+
315
+ ```json
316
+ {
317
+ "action": "channelList",
318
+ "guildId": "999"
319
+ }
320
+ ```
321
+
322
+ ### Channel management (disabled by default)
323
+
324
+ Create, edit, delete, and move channels and categories. Enable via `discord.actions.channels: true`.
325
+
326
+ **Create a text channel:**
327
+
328
+ ```json
329
+ {
330
+ "action": "channelCreate",
331
+ "guildId": "999",
332
+ "name": "general-chat",
333
+ "type": 0,
334
+ "parentId": "888",
335
+ "topic": "General discussion"
336
+ }
337
+ ```
338
+
339
+ - `type`: Discord channel type integer (0 = text, 2 = voice, 4 = category; other values supported)
340
+ - `parentId`: category ID to nest under (optional)
341
+ - `topic`, `position`, `nsfw`: optional
342
+
343
+ **Create a category:**
344
+
345
+ ```json
346
+ {
347
+ "action": "categoryCreate",
348
+ "guildId": "999",
349
+ "name": "Projects"
350
+ }
351
+ ```
352
+
353
+ **Edit a channel:**
354
+
355
+ ```json
356
+ {
357
+ "action": "channelEdit",
358
+ "channelId": "123",
359
+ "name": "new-name",
360
+ "topic": "Updated topic"
361
+ }
362
+ ```
363
+
364
+ - Supports `name`, `topic`, `position`, `parentId` (null to remove from category), `nsfw`, `rateLimitPerUser`
365
+
366
+ **Move a channel:**
367
+
368
+ ```json
369
+ {
370
+ "action": "channelMove",
371
+ "guildId": "999",
372
+ "channelId": "123",
373
+ "parentId": "888",
374
+ "position": 2
375
+ }
376
+ ```
377
+
378
+ - `parentId`: target category (null to move to top level)
379
+
380
+ **Delete a channel:**
381
+
382
+ ```json
383
+ {
384
+ "action": "channelDelete",
385
+ "channelId": "123"
386
+ }
387
+ ```
388
+
389
+ **Edit/delete a category:**
390
+
391
+ ```json
392
+ {
393
+ "action": "categoryEdit",
394
+ "categoryId": "888",
395
+ "name": "Renamed Category"
396
+ }
397
+ ```
398
+
399
+ ```json
400
+ {
401
+ "action": "categoryDelete",
402
+ "categoryId": "888"
403
+ }
404
+ ```
405
+
406
+ ### Voice status
407
+
408
+ ```json
409
+ {
410
+ "action": "voiceStatus",
411
+ "guildId": "999",
412
+ "userId": "111"
413
+ }
414
+ ```
415
+
416
+ ### Scheduled events
417
+
418
+ ```json
419
+ {
420
+ "action": "eventList",
421
+ "guildId": "999"
422
+ }
423
+ ```
424
+
425
+ ### Moderation (disabled by default)
426
+
427
+ ```json
428
+ {
429
+ "action": "timeout",
430
+ "guildId": "999",
431
+ "userId": "111",
432
+ "durationMinutes": 10
433
+ }
434
+ ```
435
+
436
+ ### Bot presence/activity (disabled by default)
437
+
438
+ Set the bot's online status and activity. Enable via `discord.actions.presence: true`.
439
+
440
+ Discord bots can only set `name`, `state`, `type`, and `url` on an activity. Other Activity fields (details, emoji, assets) are accepted by the gateway but silently ignored by Discord for bots.
441
+
442
+ **How fields render by activity type:**
443
+
444
+ - **playing, streaming, listening, watching, competing**: `activityName` is shown in the sidebar under the bot's name (e.g. "**with fire**" for type "playing" and name "with fire"). `activityState` is shown in the profile flyout.
445
+ - **custom**: `activityName` is ignored. Only `activityState` is displayed as the status text in the sidebar.
446
+ - **streaming**: `activityUrl` may be displayed or embedded by the client.
447
+
448
+ **Set playing status:**
449
+
450
+ ```json
451
+ {
452
+ "action": "setPresence",
453
+ "activityType": "playing",
454
+ "activityName": "with fire"
455
+ }
456
+ ```
457
+
458
+ Result in sidebar: "**with fire**". Flyout shows: "Playing: with fire"
459
+
460
+ **With state (shown in flyout):**
461
+
462
+ ```json
463
+ {
464
+ "action": "setPresence",
465
+ "activityType": "playing",
466
+ "activityName": "My Game",
467
+ "activityState": "In the lobby"
468
+ }
469
+ ```
470
+
471
+ Result in sidebar: "**My Game**". Flyout shows: "Playing: My Game (newline) In the lobby".
472
+
473
+ **Set streaming (optional URL, may not render for bots):**
474
+
475
+ ```json
476
+ {
477
+ "action": "setPresence",
478
+ "activityType": "streaming",
479
+ "activityName": "Live coding",
480
+ "activityUrl": "https://twitch.tv/example"
481
+ }
482
+ ```
483
+
484
+ **Set listening/watching:**
485
+
486
+ ```json
487
+ {
488
+ "action": "setPresence",
489
+ "activityType": "listening",
490
+ "activityName": "Spotify"
491
+ }
492
+ ```
493
+
494
+ ```json
495
+ {
496
+ "action": "setPresence",
497
+ "activityType": "watching",
498
+ "activityName": "the logs"
499
+ }
500
+ ```
501
+
502
+ **Set a custom status (text in sidebar):**
503
+
504
+ ```json
505
+ {
506
+ "action": "setPresence",
507
+ "activityType": "custom",
508
+ "activityState": "Vibing"
509
+ }
510
+ ```
511
+
512
+ Result in sidebar: "Vibing". Note: `activityName` is ignored for custom type.
513
+
514
+ **Set bot status only (no activity/clear status):**
515
+
516
+ ```json
517
+ {
518
+ "action": "setPresence",
519
+ "status": "dnd"
520
+ }
521
+ ```
522
+
523
+ **Parameters:**
524
+
525
+ - `activityType`: `playing`, `streaming`, `listening`, `watching`, `competing`, `custom`
526
+ - `activityName`: text shown in the sidebar for non-custom types (ignored for `custom`)
527
+ - `activityUrl`: Twitch or YouTube URL for streaming type (optional; may not render for bots)
528
+ - `activityState`: for `custom` this is the status text; for other types it shows in the profile flyout
529
+ - `status`: `online` (default), `dnd`, `idle`, `invisible`
530
+
531
+ ## Discord Writing Style Guide
532
+
533
+ **Keep it conversational!** Discord is a chat platform, not documentation.
534
+
535
+ ### Do
536
+
537
+ - Short, punchy messages (1-3 sentences ideal)
538
+ - Multiple quick replies > one wall of text
539
+ - Use emoji for tone/emphasis 🦞
540
+ - Lowercase casual style is fine
541
+ - Break up info into digestible chunks
542
+ - Match the energy of the conversation
543
+
544
+ ### Don't
545
+
546
+ - No markdown tables (Discord renders them as ugly raw `| text |`)
547
+ - No `## Headers` for casual chat (use **bold** or CAPS for emphasis)
548
+ - Avoid multi-paragraph essays
549
+ - Don't over-explain simple things
550
+ - Skip the "I'd be happy to help!" fluff
551
+
552
+ ### Formatting that works
553
+
554
+ - **bold** for emphasis
555
+ - `code` for technical terms
556
+ - Lists for multiple items
557
+ - > quotes for referencing
558
+ - Wrap multiple links in `<>` to suppress embeds
559
+
560
+ ### Example transformations
561
+
562
+ ❌ Bad:
563
+
564
+ ```
565
+ I'd be happy to help with that! Here's a comprehensive overview of the versioning strategies available:
566
+
567
+ ## Semantic Versioning
568
+ Semver uses MAJOR.MINOR.PATCH format where...
569
+
570
+ ## Calendar Versioning
571
+ CalVer uses date-based versions like...
572
+ ```
573
+
574
+ ✅ Good:
575
+
576
+ ```
577
+ versioning options: semver (1.2.3), calver (2026.01.04), or yolo (`latest` forever). what fits your release cadence?
578
+ ```
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: gemini
3
+ description: Gemini CLI for one-shot Q&A, summaries, and generation.
4
+ homepage: https://ai.google.dev/
5
+ metadata:
6
+ {
7
+ "openclaw":
8
+ {
9
+ "emoji": "♊️",
10
+ "requires": { "bins": ["gemini"] },
11
+ "install":
12
+ [
13
+ {
14
+ "id": "brew",
15
+ "kind": "brew",
16
+ "formula": "gemini-cli",
17
+ "bins": ["gemini"],
18
+ "label": "Install Gemini CLI (brew)",
19
+ },
20
+ ],
21
+ },
22
+ }
23
+ ---
24
+
25
+ # Gemini CLI
26
+
27
+ Use Gemini in one-shot mode with a positional prompt (avoid interactive mode).
28
+
29
+ Quick start
30
+
31
+ - `gemini "Answer this question..."`
32
+ - `gemini --model <name> "Prompt..."`
33
+ - `gemini --output-format json "Return JSON"`
34
+
35
+ Extensions
36
+
37
+ - List: `gemini --list-extensions`
38
+ - Manage: `gemini extensions <command>`
39
+
40
+ Notes
41
+
42
+ - If auth is required, run `gemini` once interactively and follow the login flow.
43
+ - Avoid `--yolo` for safety.
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: gifgrep
3
+ description: Search GIF providers with CLI/TUI, download results, and extract stills/sheets.
4
+ homepage: https://gifgrep.com
5
+ metadata:
6
+ {
7
+ "openclaw":
8
+ {
9
+ "emoji": "🧲",
10
+ "requires": { "bins": ["gifgrep"] },
11
+ "install":
12
+ [
13
+ {
14
+ "id": "brew",
15
+ "kind": "brew",
16
+ "formula": "steipete/tap/gifgrep",
17
+ "bins": ["gifgrep"],
18
+ "label": "Install gifgrep (brew)",
19
+ },
20
+ {
21
+ "id": "go",
22
+ "kind": "go",
23
+ "module": "github.com/steipete/gifgrep/cmd/gifgrep@latest",
24
+ "bins": ["gifgrep"],
25
+ "label": "Install gifgrep (go)",
26
+ },
27
+ ],
28
+ },
29
+ }
30
+ ---
31
+
32
+ # gifgrep
33
+
34
+ Use `gifgrep` to search GIF providers (Tenor/Giphy), browse in a TUI, download results, and extract stills or sheets.
35
+
36
+ GIF-Grab (gifgrep workflow)
37
+
38
+ - Search → preview → download → extract (still/sheet) for fast review and sharing.
39
+
40
+ Quick start
41
+
42
+ - `gifgrep cats --max 5`
43
+ - `gifgrep cats --format url | head -n 5`
44
+ - `gifgrep search --json cats | jq '.[0].url'`
45
+ - `gifgrep tui "office handshake"`
46
+ - `gifgrep cats --download --max 1 --format url`
47
+
48
+ TUI + previews
49
+
50
+ - TUI: `gifgrep tui "query"`
51
+ - CLI still previews: `--thumbs` (Kitty/Ghostty only; still frame)
52
+
53
+ Download + reveal
54
+
55
+ - `--download` saves to `~/Downloads`
56
+ - `--reveal` shows the last download in Finder
57
+
58
+ Stills + sheets
59
+
60
+ - `gifgrep still ./clip.gif --at 1.5s -o still.png`
61
+ - `gifgrep sheet ./clip.gif --frames 9 --cols 3 -o sheet.png`
62
+ - Sheets = single PNG grid of sampled frames (great for quick review, docs, PRs, chat).
63
+ - Tune: `--frames` (count), `--cols` (grid width), `--padding` (spacing).
64
+
65
+ Providers
66
+
67
+ - `--source auto|tenor|giphy`
68
+ - `GIPHY_API_KEY` required for `--source giphy`
69
+ - `TENOR_API_KEY` optional (Tenor demo key used if unset)
70
+
71
+ Output
72
+
73
+ - `--json` prints an array of results (`id`, `title`, `url`, `preview_url`, `tags`, `width`, `height`)
74
+ - `--format` for pipe-friendly fields (e.g., `url`)
75
+
76
+ Environment tweaks
77
+
78
+ - `GIFGREP_SOFTWARE_ANIM=1` to force software animation
79
+ - `GIFGREP_CELL_ASPECT=0.5` to tweak preview geometry