loudmouth-ai 0.1.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 (2572) hide show
  1. package/CHANGELOG.md +1158 -0
  2. package/LICENSE +21 -0
  3. package/README.md +128 -0
  4. package/assets/avatar-placeholder.svg +19 -0
  5. package/assets/chrome-extension/README.md +22 -0
  6. package/assets/chrome-extension/background.js +438 -0
  7. package/assets/chrome-extension/icons/icon128.png +0 -0
  8. package/assets/chrome-extension/icons/icon16.png +0 -0
  9. package/assets/chrome-extension/icons/icon32.png +0 -0
  10. package/assets/chrome-extension/icons/icon48.png +0 -0
  11. package/assets/chrome-extension/manifest.json +25 -0
  12. package/assets/chrome-extension/options.html +197 -0
  13. package/assets/chrome-extension/options.js +59 -0
  14. package/assets/dmg-background-small.png +0 -0
  15. package/assets/dmg-background.png +0 -0
  16. package/dist/acp/client.js +144 -0
  17. package/dist/acp/commands.js +38 -0
  18. package/dist/acp/event-mapper.js +70 -0
  19. package/dist/acp/index.js +2 -0
  20. package/dist/acp/meta.js +30 -0
  21. package/dist/acp/server.js +131 -0
  22. package/dist/acp/session-mapper.js +65 -0
  23. package/dist/acp/session.js +68 -0
  24. package/dist/acp/translator.js +344 -0
  25. package/dist/acp/types.js +6 -0
  26. package/dist/agents/agent-paths.js +19 -0
  27. package/dist/agents/agent-scope.js +118 -0
  28. package/dist/agents/anthropic-payload-log.js +160 -0
  29. package/dist/agents/apply-patch-update.js +145 -0
  30. package/dist/agents/apply-patch.js +355 -0
  31. package/dist/agents/auth-health.js +165 -0
  32. package/dist/agents/auth-profiles/constants.js +20 -0
  33. package/dist/agents/auth-profiles/display.js +10 -0
  34. package/dist/agents/auth-profiles/doctor.js +31 -0
  35. package/dist/agents/auth-profiles/external-cli-sync.js +62 -0
  36. package/dist/agents/auth-profiles/oauth.js +193 -0
  37. package/dist/agents/auth-profiles/order.js +166 -0
  38. package/dist/agents/auth-profiles/paths.js +27 -0
  39. package/dist/agents/auth-profiles/profiles.js +63 -0
  40. package/dist/agents/auth-profiles/repair.js +120 -0
  41. package/dist/agents/auth-profiles/session-override.js +97 -0
  42. package/dist/agents/auth-profiles/store.js +323 -0
  43. package/dist/agents/auth-profiles/types.js +1 -0
  44. package/dist/agents/auth-profiles/usage.js +235 -0
  45. package/dist/agents/auth-profiles.js +10 -0
  46. package/dist/agents/bash-process-registry.js +177 -0
  47. package/dist/agents/bash-tools.exec.js +1176 -0
  48. package/dist/agents/bash-tools.js +2 -0
  49. package/dist/agents/bash-tools.process.js +569 -0
  50. package/dist/agents/bash-tools.shared.js +191 -0
  51. package/dist/agents/bedrock-discovery.js +157 -0
  52. package/dist/agents/bootstrap-files.js +28 -0
  53. package/dist/agents/bootstrap-hooks.js +19 -0
  54. package/dist/agents/cache-trace.js +185 -0
  55. package/dist/agents/channel-tools.js +58 -0
  56. package/dist/agents/chutes-oauth.js +133 -0
  57. package/dist/agents/claude-cli-runner.js +3 -0
  58. package/dist/agents/clawdbot-tools.js +124 -0
  59. package/dist/agents/cli-backends.js +126 -0
  60. package/dist/agents/cli-credentials.js +360 -0
  61. package/dist/agents/cli-runner/helpers.js +409 -0
  62. package/dist/agents/cli-runner.js +265 -0
  63. package/dist/agents/cli-session.js +27 -0
  64. package/dist/agents/compaction.js +226 -0
  65. package/dist/agents/context-window-guard.js +37 -0
  66. package/dist/agents/context.js +34 -0
  67. package/dist/agents/date-time.js +158 -0
  68. package/dist/agents/defaults.js +6 -0
  69. package/dist/agents/docs-path.js +20 -0
  70. package/dist/agents/failover-error.js +164 -0
  71. package/dist/agents/identity-avatar.js +82 -0
  72. package/dist/agents/identity-file.js +80 -0
  73. package/dist/agents/identity.js +61 -0
  74. package/dist/agents/lanes.js +2 -0
  75. package/dist/agents/live-auth-keys.js +70 -0
  76. package/dist/agents/live-model-filter.js +70 -0
  77. package/dist/agents/memory-search.js +184 -0
  78. package/dist/agents/minimax-vlm.js +81 -0
  79. package/dist/agents/model-auth.js +273 -0
  80. package/dist/agents/model-catalog.js +95 -0
  81. package/dist/agents/model-compat.js +17 -0
  82. package/dist/agents/model-fallback.js +246 -0
  83. package/dist/agents/model-scan.js +350 -0
  84. package/dist/agents/model-selection.js +284 -0
  85. package/dist/agents/models-config.js +111 -0
  86. package/dist/agents/models-config.providers.js +423 -0
  87. package/dist/agents/opencode-zen-models.js +254 -0
  88. package/dist/agents/pi-embedded-block-chunker.js +209 -0
  89. package/dist/agents/pi-embedded-helpers/bootstrap.js +159 -0
  90. package/dist/agents/pi-embedded-helpers/errors.js +436 -0
  91. package/dist/agents/pi-embedded-helpers/google.js +12 -0
  92. package/dist/agents/pi-embedded-helpers/images.js +92 -0
  93. package/dist/agents/pi-embedded-helpers/messaging-dedupe.js +35 -0
  94. package/dist/agents/pi-embedded-helpers/openai.js +98 -0
  95. package/dist/agents/pi-embedded-helpers/thinking.js +32 -0
  96. package/dist/agents/pi-embedded-helpers/turns.js +95 -0
  97. package/dist/agents/pi-embedded-helpers/types.js +1 -0
  98. package/dist/agents/pi-embedded-helpers.js +9 -0
  99. package/dist/agents/pi-embedded-messaging.js +24 -0
  100. package/dist/agents/pi-embedded-runner/abort.js +9 -0
  101. package/dist/agents/pi-embedded-runner/cache-ttl.js +45 -0
  102. package/dist/agents/pi-embedded-runner/compact.js +405 -0
  103. package/dist/agents/pi-embedded-runner/extensions.js +59 -0
  104. package/dist/agents/pi-embedded-runner/extra-params.js +70 -0
  105. package/dist/agents/pi-embedded-runner/google.js +302 -0
  106. package/dist/agents/pi-embedded-runner/history.js +61 -0
  107. package/dist/agents/pi-embedded-runner/lanes.js +11 -0
  108. package/dist/agents/pi-embedded-runner/logger.js +2 -0
  109. package/dist/agents/pi-embedded-runner/model.js +70 -0
  110. package/dist/agents/pi-embedded-runner/run/attempt.js +748 -0
  111. package/dist/agents/pi-embedded-runner/run/images.js +344 -0
  112. package/dist/agents/pi-embedded-runner/run/params.js +1 -0
  113. package/dist/agents/pi-embedded-runner/run/payloads.js +162 -0
  114. package/dist/agents/pi-embedded-runner/run/types.js +1 -0
  115. package/dist/agents/pi-embedded-runner/run.js +535 -0
  116. package/dist/agents/pi-embedded-runner/runs.js +107 -0
  117. package/dist/agents/pi-embedded-runner/sandbox-info.js +25 -0
  118. package/dist/agents/pi-embedded-runner/session-manager-cache.js +54 -0
  119. package/dist/agents/pi-embedded-runner/session-manager-init.js +31 -0
  120. package/dist/agents/pi-embedded-runner/system-prompt.js +33 -0
  121. package/dist/agents/pi-embedded-runner/tool-split.js +8 -0
  122. package/dist/agents/pi-embedded-runner/types.js +1 -0
  123. package/dist/agents/pi-embedded-runner/utils.js +25 -0
  124. package/dist/agents/pi-embedded-runner.js +10 -0
  125. package/dist/agents/pi-embedded-subscribe.handlers.js +45 -0
  126. package/dist/agents/pi-embedded-subscribe.handlers.lifecycle.js +86 -0
  127. package/dist/agents/pi-embedded-subscribe.handlers.messages.js +230 -0
  128. package/dist/agents/pi-embedded-subscribe.handlers.tools.js +176 -0
  129. package/dist/agents/pi-embedded-subscribe.handlers.types.js +1 -0
  130. package/dist/agents/pi-embedded-subscribe.js +454 -0
  131. package/dist/agents/pi-embedded-subscribe.raw-stream.js +27 -0
  132. package/dist/agents/pi-embedded-subscribe.tools.js +166 -0
  133. package/dist/agents/pi-embedded-subscribe.types.js +1 -0
  134. package/dist/agents/pi-embedded-utils.js +341 -0
  135. package/dist/agents/pi-embedded.js +1 -0
  136. package/dist/agents/pi-extensions/compaction-safeguard.js +223 -0
  137. package/dist/agents/pi-extensions/context-pruning/extension.js +32 -0
  138. package/dist/agents/pi-extensions/context-pruning/pruner.js +263 -0
  139. package/dist/agents/pi-extensions/context-pruning/runtime.js +21 -0
  140. package/dist/agents/pi-extensions/context-pruning/settings.js +71 -0
  141. package/dist/agents/pi-extensions/context-pruning/tools.js +44 -0
  142. package/dist/agents/pi-extensions/context-pruning.js +9 -0
  143. package/dist/agents/pi-settings.js +19 -0
  144. package/dist/agents/pi-tool-definition-adapter.js +74 -0
  145. package/dist/agents/pi-tools.abort.js +41 -0
  146. package/dist/agents/pi-tools.js +289 -0
  147. package/dist/agents/pi-tools.policy.js +212 -0
  148. package/dist/agents/pi-tools.read.js +227 -0
  149. package/dist/agents/pi-tools.schema.js +147 -0
  150. package/dist/agents/pi-tools.types.js +1 -0
  151. package/dist/agents/pty-dsr.js +13 -0
  152. package/dist/agents/pty-keys.js +235 -0
  153. package/dist/agents/sandbox/browser-bridges.js +1 -0
  154. package/dist/agents/sandbox/browser.js +178 -0
  155. package/dist/agents/sandbox/config-hash.js +45 -0
  156. package/dist/agents/sandbox/config.js +126 -0
  157. package/dist/agents/sandbox/constants.js +45 -0
  158. package/dist/agents/sandbox/context.js +117 -0
  159. package/dist/agents/sandbox/docker.js +272 -0
  160. package/dist/agents/sandbox/manage.js +91 -0
  161. package/dist/agents/sandbox/prune.js +87 -0
  162. package/dist/agents/sandbox/registry.js +71 -0
  163. package/dist/agents/sandbox/runtime-status.js +90 -0
  164. package/dist/agents/sandbox/shared.js +38 -0
  165. package/dist/agents/sandbox/tool-policy.js +106 -0
  166. package/dist/agents/sandbox/types.docker.js +1 -0
  167. package/dist/agents/sandbox/types.js +1 -0
  168. package/dist/agents/sandbox/workspace.js +39 -0
  169. package/dist/agents/sandbox-paths.js +68 -0
  170. package/dist/agents/sandbox.js +7 -0
  171. package/dist/agents/schema/clean-for-gemini.js +295 -0
  172. package/dist/agents/schema/typebox.js +22 -0
  173. package/dist/agents/session-slug.js +134 -0
  174. package/dist/agents/session-tool-result-guard-wrapper.js +34 -0
  175. package/dist/agents/session-tool-result-guard.js +99 -0
  176. package/dist/agents/session-transcript-repair.js +174 -0
  177. package/dist/agents/session-write-lock.js +102 -0
  178. package/dist/agents/shell-utils.js +99 -0
  179. package/dist/agents/skills/bundled-dir.js +30 -0
  180. package/dist/agents/skills/config.js +141 -0
  181. package/dist/agents/skills/env-overrides.js +67 -0
  182. package/dist/agents/skills/frontmatter.js +119 -0
  183. package/dist/agents/skills/plugin-skills.js +55 -0
  184. package/dist/agents/skills/refresh.js +135 -0
  185. package/dist/agents/skills/serialize.js +13 -0
  186. package/dist/agents/skills/types.js +1 -0
  187. package/dist/agents/skills/workspace.js +272 -0
  188. package/dist/agents/skills-install.js +390 -0
  189. package/dist/agents/skills-status.js +183 -0
  190. package/dist/agents/skills.js +13 -0
  191. package/dist/agents/subagent-announce-queue.js +129 -0
  192. package/dist/agents/subagent-announce.js +391 -0
  193. package/dist/agents/subagent-registry.js +343 -0
  194. package/dist/agents/subagent-registry.store.js +73 -0
  195. package/dist/agents/synthetic-models.js +174 -0
  196. package/dist/agents/system-prompt-params.js +70 -0
  197. package/dist/agents/system-prompt-report.js +113 -0
  198. package/dist/agents/system-prompt.js +467 -0
  199. package/dist/agents/test-helpers/fast-coding-tools.js +18 -0
  200. package/dist/agents/test-helpers/fast-core-tools.js +24 -0
  201. package/dist/agents/timeout.js +24 -0
  202. package/dist/agents/tool-call-id.js +164 -0
  203. package/dist/agents/tool-display.js +209 -0
  204. package/dist/agents/tool-display.json +308 -0
  205. package/dist/agents/tool-images.js +166 -0
  206. package/dist/agents/tool-policy.js +193 -0
  207. package/dist/agents/tool-summaries.js +10 -0
  208. package/dist/agents/tools/agent-step.js +44 -0
  209. package/dist/agents/tools/agents-list-tool.js +66 -0
  210. package/dist/agents/tools/browser-tool.js +656 -0
  211. package/dist/agents/tools/browser-tool.schema.js +106 -0
  212. package/dist/agents/tools/canvas-tool.js +158 -0
  213. package/dist/agents/tools/common.js +146 -0
  214. package/dist/agents/tools/cron-tool.js +261 -0
  215. package/dist/agents/tools/discord-actions-guild.js +453 -0
  216. package/dist/agents/tools/discord-actions-messaging.js +383 -0
  217. package/dist/agents/tools/discord-actions-moderation.js +92 -0
  218. package/dist/agents/tools/discord-actions.js +61 -0
  219. package/dist/agents/tools/gateway-tool.js +214 -0
  220. package/dist/agents/tools/gateway.js +30 -0
  221. package/dist/agents/tools/image-tool.helpers.js +55 -0
  222. package/dist/agents/tools/image-tool.js +370 -0
  223. package/dist/agents/tools/memory-tool.js +103 -0
  224. package/dist/agents/tools/message-tool.js +319 -0
  225. package/dist/agents/tools/nodes-tool.js +399 -0
  226. package/dist/agents/tools/nodes-utils.js +92 -0
  227. package/dist/agents/tools/session-status-tool.js +357 -0
  228. package/dist/agents/tools/sessions-announce-target.js +43 -0
  229. package/dist/agents/tools/sessions-helpers.js +261 -0
  230. package/dist/agents/tools/sessions-history-tool.js +118 -0
  231. package/dist/agents/tools/sessions-list-tool.js +161 -0
  232. package/dist/agents/tools/sessions-send-helpers.js +116 -0
  233. package/dist/agents/tools/sessions-send-tool.a2a.js +119 -0
  234. package/dist/agents/tools/sessions-send-tool.js +345 -0
  235. package/dist/agents/tools/sessions-spawn-tool.js +232 -0
  236. package/dist/agents/tools/slack-actions.js +243 -0
  237. package/dist/agents/tools/telegram-actions.js +162 -0
  238. package/dist/agents/tools/tts-tool.js +47 -0
  239. package/dist/agents/tools/web-fetch-utils.js +104 -0
  240. package/dist/agents/tools/web-fetch.js +477 -0
  241. package/dist/agents/tools/web-search.js +355 -0
  242. package/dist/agents/tools/web-shared.js +62 -0
  243. package/dist/agents/tools/web-tools.js +2 -0
  244. package/dist/agents/tools/whatsapp-actions.js +32 -0
  245. package/dist/agents/transcript-policy.js +83 -0
  246. package/dist/agents/usage.js +48 -0
  247. package/dist/agents/venice-models.js +342 -0
  248. package/dist/agents/workspace.js +234 -0
  249. package/dist/auto-reply/chunk.js +358 -0
  250. package/dist/auto-reply/command-auth.js +132 -0
  251. package/dist/auto-reply/command-detection.js +56 -0
  252. package/dist/auto-reply/commands-args.js +85 -0
  253. package/dist/auto-reply/commands-registry.data.js +509 -0
  254. package/dist/auto-reply/commands-registry.js +351 -0
  255. package/dist/auto-reply/commands-registry.types.js +1 -0
  256. package/dist/auto-reply/dispatch.js +40 -0
  257. package/dist/auto-reply/envelope.js +173 -0
  258. package/dist/auto-reply/group-activation.js +22 -0
  259. package/dist/auto-reply/heartbeat.js +120 -0
  260. package/dist/auto-reply/inbound-debounce.js +74 -0
  261. package/dist/auto-reply/media-note.js +72 -0
  262. package/dist/auto-reply/model.js +28 -0
  263. package/dist/auto-reply/reply/abort.js +151 -0
  264. package/dist/auto-reply/reply/agent-runner-execution.js +461 -0
  265. package/dist/auto-reply/reply/agent-runner-helpers.js +65 -0
  266. package/dist/auto-reply/reply/agent-runner-memory.js +155 -0
  267. package/dist/auto-reply/reply/agent-runner-payloads.js +85 -0
  268. package/dist/auto-reply/reply/agent-runner-utils.js +101 -0
  269. package/dist/auto-reply/reply/agent-runner.js +379 -0
  270. package/dist/auto-reply/reply/audio-tags.js +1 -0
  271. package/dist/auto-reply/reply/bash-command.js +336 -0
  272. package/dist/auto-reply/reply/block-reply-coalescer.js +101 -0
  273. package/dist/auto-reply/reply/block-reply-pipeline.js +179 -0
  274. package/dist/auto-reply/reply/block-streaming.js +91 -0
  275. package/dist/auto-reply/reply/body.js +37 -0
  276. package/dist/auto-reply/reply/commands-allowlist.js +570 -0
  277. package/dist/auto-reply/reply/commands-approve.js +88 -0
  278. package/dist/auto-reply/reply/commands-bash.js +25 -0
  279. package/dist/auto-reply/reply/commands-compact.js +106 -0
  280. package/dist/auto-reply/reply/commands-config.js +239 -0
  281. package/dist/auto-reply/reply/commands-context-report.js +294 -0
  282. package/dist/auto-reply/reply/commands-context.js +29 -0
  283. package/dist/auto-reply/reply/commands-core.js +101 -0
  284. package/dist/auto-reply/reply/commands-info.js +109 -0
  285. package/dist/auto-reply/reply/commands-models.js +201 -0
  286. package/dist/auto-reply/reply/commands-plugin.js +35 -0
  287. package/dist/auto-reply/reply/commands-session.js +311 -0
  288. package/dist/auto-reply/reply/commands-status.js +178 -0
  289. package/dist/auto-reply/reply/commands-subagents.js +357 -0
  290. package/dist/auto-reply/reply/commands-tts.js +228 -0
  291. package/dist/auto-reply/reply/commands-types.js +1 -0
  292. package/dist/auto-reply/reply/commands.js +3 -0
  293. package/dist/auto-reply/reply/config-commands.js +58 -0
  294. package/dist/auto-reply/reply/config-value.js +35 -0
  295. package/dist/auto-reply/reply/debug-commands.js +58 -0
  296. package/dist/auto-reply/reply/directive-handling.auth.js +191 -0
  297. package/dist/auto-reply/reply/directive-handling.fast-lane.js +60 -0
  298. package/dist/auto-reply/reply/directive-handling.impl.js +380 -0
  299. package/dist/auto-reply/reply/directive-handling.js +5 -0
  300. package/dist/auto-reply/reply/directive-handling.model-picker.js +64 -0
  301. package/dist/auto-reply/reply/directive-handling.model.js +279 -0
  302. package/dist/auto-reply/reply/directive-handling.parse.js +84 -0
  303. package/dist/auto-reply/reply/directive-handling.persist.js +181 -0
  304. package/dist/auto-reply/reply/directive-handling.queue-validation.js +48 -0
  305. package/dist/auto-reply/reply/directive-handling.shared.js +43 -0
  306. package/dist/auto-reply/reply/directives.js +114 -0
  307. package/dist/auto-reply/reply/dispatch-from-config.js +289 -0
  308. package/dist/auto-reply/reply/exec/directive.js +183 -0
  309. package/dist/auto-reply/reply/exec.js +1 -0
  310. package/dist/auto-reply/reply/followup-runner.js +221 -0
  311. package/dist/auto-reply/reply/get-reply-directives-apply.js +201 -0
  312. package/dist/auto-reply/reply/get-reply-directives-utils.js +45 -0
  313. package/dist/auto-reply/reply/get-reply-directives.js +343 -0
  314. package/dist/auto-reply/reply/get-reply-inline-actions.js +257 -0
  315. package/dist/auto-reply/reply/get-reply-run.js +282 -0
  316. package/dist/auto-reply/reply/get-reply.js +234 -0
  317. package/dist/auto-reply/reply/groups.js +102 -0
  318. package/dist/auto-reply/reply/history.js +87 -0
  319. package/dist/auto-reply/reply/inbound-context.js +51 -0
  320. package/dist/auto-reply/reply/inbound-dedupe.js +39 -0
  321. package/dist/auto-reply/reply/inbound-sender-meta.js +45 -0
  322. package/dist/auto-reply/reply/inbound-text.js +3 -0
  323. package/dist/auto-reply/reply/line-directives.js +294 -0
  324. package/dist/auto-reply/reply/memory-flush.js +66 -0
  325. package/dist/auto-reply/reply/mentions.js +122 -0
  326. package/dist/auto-reply/reply/model-selection.js +398 -0
  327. package/dist/auto-reply/reply/normalize-reply.js +54 -0
  328. package/dist/auto-reply/reply/provider-dispatcher.js +19 -0
  329. package/dist/auto-reply/reply/queue/cleanup.js +19 -0
  330. package/dist/auto-reply/reply/queue/directive.js +155 -0
  331. package/dist/auto-reply/reply/queue/drain.js +111 -0
  332. package/dist/auto-reply/reply/queue/enqueue.js +43 -0
  333. package/dist/auto-reply/reply/queue/normalize.js +30 -0
  334. package/dist/auto-reply/reply/queue/settings.js +52 -0
  335. package/dist/auto-reply/reply/queue/state.js +53 -0
  336. package/dist/auto-reply/reply/queue/types.js +1 -0
  337. package/dist/auto-reply/reply/queue.js +6 -0
  338. package/dist/auto-reply/reply/reply-directives.js +30 -0
  339. package/dist/auto-reply/reply/reply-dispatcher.js +100 -0
  340. package/dist/auto-reply/reply/reply-elevated.js +166 -0
  341. package/dist/auto-reply/reply/reply-inline.js +28 -0
  342. package/dist/auto-reply/reply/reply-payloads.js +83 -0
  343. package/dist/auto-reply/reply/reply-reference.js +35 -0
  344. package/dist/auto-reply/reply/reply-tags.js +13 -0
  345. package/dist/auto-reply/reply/reply-threading.js +41 -0
  346. package/dist/auto-reply/reply/response-prefix-template.js +76 -0
  347. package/dist/auto-reply/reply/route-reply.js +108 -0
  348. package/dist/auto-reply/reply/session-reset-model.js +133 -0
  349. package/dist/auto-reply/reply/session-updates.js +228 -0
  350. package/dist/auto-reply/reply/session-usage.js +79 -0
  351. package/dist/auto-reply/reply/session.js +303 -0
  352. package/dist/auto-reply/reply/stage-sandbox-media.js +146 -0
  353. package/dist/auto-reply/reply/streaming-directives.js +92 -0
  354. package/dist/auto-reply/reply/subagents-utils.js +52 -0
  355. package/dist/auto-reply/reply/test-ctx.js +15 -0
  356. package/dist/auto-reply/reply/typing-mode.js +91 -0
  357. package/dist/auto-reply/reply/typing.js +132 -0
  358. package/dist/auto-reply/reply.js +5 -0
  359. package/dist/auto-reply/send-policy.js +30 -0
  360. package/dist/auto-reply/skill-commands.js +97 -0
  361. package/dist/auto-reply/status.js +399 -0
  362. package/dist/auto-reply/templating.js +39 -0
  363. package/dist/auto-reply/thinking.js +154 -0
  364. package/dist/auto-reply/tokens.js +15 -0
  365. package/dist/auto-reply/tool-meta.js +112 -0
  366. package/dist/auto-reply/types.js +1 -0
  367. package/dist/browser/bridge-server.js +47 -0
  368. package/dist/browser/cdp.helpers.js +136 -0
  369. package/dist/browser/cdp.js +293 -0
  370. package/dist/browser/chrome.executables.js +509 -0
  371. package/dist/browser/chrome.js +253 -0
  372. package/dist/browser/chrome.profile-decoration.js +144 -0
  373. package/dist/browser/client-actions-core.js +94 -0
  374. package/dist/browser/client-actions-observe.js +94 -0
  375. package/dist/browser/client-actions-state.js +163 -0
  376. package/dist/browser/client-actions-types.js +1 -0
  377. package/dist/browser/client-actions.js +4 -0
  378. package/dist/browser/client-fetch.js +78 -0
  379. package/dist/browser/client.js +139 -0
  380. package/dist/browser/config.js +193 -0
  381. package/dist/browser/constants.js +8 -0
  382. package/dist/browser/extension-relay.js +541 -0
  383. package/dist/browser/profiles-service.js +132 -0
  384. package/dist/browser/profiles.js +93 -0
  385. package/dist/browser/pw-ai-module.js +37 -0
  386. package/dist/browser/pw-ai.js +2 -0
  387. package/dist/browser/pw-role-snapshot.js +310 -0
  388. package/dist/browser/pw-session.js +431 -0
  389. package/dist/browser/pw-tools-core.activity.js +44 -0
  390. package/dist/browser/pw-tools-core.downloads.js +176 -0
  391. package/dist/browser/pw-tools-core.interactions.js +420 -0
  392. package/dist/browser/pw-tools-core.js +8 -0
  393. package/dist/browser/pw-tools-core.responses.js +83 -0
  394. package/dist/browser/pw-tools-core.shared.js +48 -0
  395. package/dist/browser/pw-tools-core.snapshot.js +142 -0
  396. package/dist/browser/pw-tools-core.state.js +147 -0
  397. package/dist/browser/pw-tools-core.storage.js +72 -0
  398. package/dist/browser/pw-tools-core.trace.js +25 -0
  399. package/dist/browser/routes/agent.act.js +453 -0
  400. package/dist/browser/routes/agent.act.shared.js +38 -0
  401. package/dist/browser/routes/agent.debug.js +133 -0
  402. package/dist/browser/routes/agent.js +10 -0
  403. package/dist/browser/routes/agent.shared.js +45 -0
  404. package/dist/browser/routes/agent.snapshot.js +269 -0
  405. package/dist/browser/routes/agent.storage.js +386 -0
  406. package/dist/browser/routes/basic.js +174 -0
  407. package/dist/browser/routes/index.js +8 -0
  408. package/dist/browser/routes/tabs.js +120 -0
  409. package/dist/browser/routes/utils.js +57 -0
  410. package/dist/browser/screenshot.js +39 -0
  411. package/dist/browser/server-context.js +533 -0
  412. package/dist/browser/server-context.types.js +1 -0
  413. package/dist/browser/server.js +92 -0
  414. package/dist/browser/target-id.js +16 -0
  415. package/dist/browser/trash.js +21 -0
  416. package/dist/build-info.json +5 -0
  417. package/dist/canvas-host/a2ui/.bundle.hash +1 -0
  418. package/dist/canvas-host/a2ui/a2ui.bundle.js +17768 -0
  419. package/dist/canvas-host/a2ui/index.html +307 -0
  420. package/dist/canvas-host/a2ui.js +185 -0
  421. package/dist/canvas-host/server.js +380 -0
  422. package/dist/channel-web.js +8 -0
  423. package/dist/channels/ack-reactions.js +56 -0
  424. package/dist/channels/allowlist-match.js +3 -0
  425. package/dist/channels/allowlists/resolve-utils.js +37 -0
  426. package/dist/channels/channel-config.js +131 -0
  427. package/dist/channels/chat-type.js +12 -0
  428. package/dist/channels/command-gating.js +24 -0
  429. package/dist/channels/conversation-label.js +48 -0
  430. package/dist/channels/dock.js +344 -0
  431. package/dist/channels/location.js +44 -0
  432. package/dist/channels/logging.js +13 -0
  433. package/dist/channels/mention-gating.js +26 -0
  434. package/dist/channels/plugins/actions/discord/handle-action.guild-admin.js +328 -0
  435. package/dist/channels/plugins/actions/discord/handle-action.js +165 -0
  436. package/dist/channels/plugins/actions/discord.js +93 -0
  437. package/dist/channels/plugins/actions/signal.js +115 -0
  438. package/dist/channels/plugins/actions/telegram.js +95 -0
  439. package/dist/channels/plugins/agent-tools/whatsapp-login.js +63 -0
  440. package/dist/channels/plugins/allowlist-match.js +1 -0
  441. package/dist/channels/plugins/bluebubbles-actions.js +16 -0
  442. package/dist/channels/plugins/catalog.js +216 -0
  443. package/dist/channels/plugins/channel-config.js +1 -0
  444. package/dist/channels/plugins/config-helpers.js +87 -0
  445. package/dist/channels/plugins/config-schema.js +8 -0
  446. package/dist/channels/plugins/config-writes.js +21 -0
  447. package/dist/channels/plugins/directory-config.js +185 -0
  448. package/dist/channels/plugins/group-mentions.js +267 -0
  449. package/dist/channels/plugins/helpers.js +12 -0
  450. package/dist/channels/plugins/index.js +51 -0
  451. package/dist/channels/plugins/load.js +22 -0
  452. package/dist/channels/plugins/media-limits.js +15 -0
  453. package/dist/channels/plugins/message-action-names.js +50 -0
  454. package/dist/channels/plugins/message-actions.js +35 -0
  455. package/dist/channels/plugins/normalize/discord.js +18 -0
  456. package/dist/channels/plugins/normalize/imessage.js +36 -0
  457. package/dist/channels/plugins/normalize/signal.js +52 -0
  458. package/dist/channels/plugins/normalize/slack.js +19 -0
  459. package/dist/channels/plugins/normalize/telegram.js +31 -0
  460. package/dist/channels/plugins/normalize/whatsapp.js +17 -0
  461. package/dist/channels/plugins/onboarding/channel-access.js +68 -0
  462. package/dist/channels/plugins/onboarding/discord.js +413 -0
  463. package/dist/channels/plugins/onboarding/helpers.js +33 -0
  464. package/dist/channels/plugins/onboarding/imessage.js +231 -0
  465. package/dist/channels/plugins/onboarding/signal.js +262 -0
  466. package/dist/channels/plugins/onboarding/slack.js +470 -0
  467. package/dist/channels/plugins/onboarding/telegram.js +281 -0
  468. package/dist/channels/plugins/onboarding/whatsapp.js +286 -0
  469. package/dist/channels/plugins/onboarding-types.js +1 -0
  470. package/dist/channels/plugins/outbound/discord.js +29 -0
  471. package/dist/channels/plugins/outbound/imessage.js +38 -0
  472. package/dist/channels/plugins/outbound/load.js +28 -0
  473. package/dist/channels/plugins/outbound/signal.js +36 -0
  474. package/dist/channels/plugins/outbound/slack.js +27 -0
  475. package/dist/channels/plugins/outbound/telegram.js +91 -0
  476. package/dist/channels/plugins/outbound/whatsapp.js +76 -0
  477. package/dist/channels/plugins/pairing-message.js +1 -0
  478. package/dist/channels/plugins/pairing.js +44 -0
  479. package/dist/channels/plugins/setup-helpers.js +89 -0
  480. package/dist/channels/plugins/slack.actions.js +158 -0
  481. package/dist/channels/plugins/status-issues/bluebubbles.js +76 -0
  482. package/dist/channels/plugins/status-issues/discord.js +115 -0
  483. package/dist/channels/plugins/status-issues/shared.js +23 -0
  484. package/dist/channels/plugins/status-issues/telegram.js +100 -0
  485. package/dist/channels/plugins/status-issues/whatsapp.js +52 -0
  486. package/dist/channels/plugins/status.js +26 -0
  487. package/dist/channels/plugins/types.adapters.js +1 -0
  488. package/dist/channels/plugins/types.core.js +1 -0
  489. package/dist/channels/plugins/types.js +1 -0
  490. package/dist/channels/plugins/types.plugin.js +1 -0
  491. package/dist/channels/plugins/whatsapp-heartbeat.js +56 -0
  492. package/dist/channels/registry.js +153 -0
  493. package/dist/channels/reply-prefix.js +21 -0
  494. package/dist/channels/sender-identity.js +30 -0
  495. package/dist/channels/sender-label.js +38 -0
  496. package/dist/channels/session.js +26 -0
  497. package/dist/channels/targets.js +27 -0
  498. package/dist/channels/typing.js +17 -0
  499. package/dist/channels/web/index.js +2 -0
  500. package/dist/cli/acp-cli.js +61 -0
  501. package/dist/cli/argv.js +119 -0
  502. package/dist/cli/banner.js +94 -0
  503. package/dist/cli/browser-cli-actions-input/register.element.js +200 -0
  504. package/dist/cli/browser-cli-actions-input/register.files-downloads.js +128 -0
  505. package/dist/cli/browser-cli-actions-input/register.form-wait-eval.js +108 -0
  506. package/dist/cli/browser-cli-actions-input/register.js +10 -0
  507. package/dist/cli/browser-cli-actions-input/register.navigation.js +63 -0
  508. package/dist/cli/browser-cli-actions-input/shared.js +50 -0
  509. package/dist/cli/browser-cli-actions-input.js +1 -0
  510. package/dist/cli/browser-cli-actions-observe.js +82 -0
  511. package/dist/cli/browser-cli-debug.js +148 -0
  512. package/dist/cli/browser-cli-examples.js +33 -0
  513. package/dist/cli/browser-cli-extension.js +98 -0
  514. package/dist/cli/browser-cli-inspect.js +130 -0
  515. package/dist/cli/browser-cli-manage.js +351 -0
  516. package/dist/cli/browser-cli-serve.js +91 -0
  517. package/dist/cli/browser-cli-shared.js +1 -0
  518. package/dist/cli/browser-cli-state.cookies-storage.js +168 -0
  519. package/dist/cli/browser-cli-state.js +261 -0
  520. package/dist/cli/browser-cli.js +38 -0
  521. package/dist/cli/channel-auth.js +49 -0
  522. package/dist/cli/channel-options.js +29 -0
  523. package/dist/cli/channels-cli.js +208 -0
  524. package/dist/cli/cli-utils.js +34 -0
  525. package/dist/cli/command-format.js +14 -0
  526. package/dist/cli/command-options.js +6 -0
  527. package/dist/cli/config-cli.js +295 -0
  528. package/dist/cli/cron-cli/register.cron-add.js +188 -0
  529. package/dist/cli/cron-cli/register.cron-edit.js +160 -0
  530. package/dist/cli/cron-cli/register.cron-simple.js +98 -0
  531. package/dist/cli/cron-cli/register.js +16 -0
  532. package/dist/cli/cron-cli/shared.js +178 -0
  533. package/dist/cli/cron-cli.js +1 -0
  534. package/dist/cli/daemon-cli/install.js +112 -0
  535. package/dist/cli/daemon-cli/lifecycle.js +265 -0
  536. package/dist/cli/daemon-cli/probe.js +28 -0
  537. package/dist/cli/daemon-cli/register.js +69 -0
  538. package/dist/cli/daemon-cli/response.js +20 -0
  539. package/dist/cli/daemon-cli/runners.js +3 -0
  540. package/dist/cli/daemon-cli/shared.js +162 -0
  541. package/dist/cli/daemon-cli/status.gather.js +170 -0
  542. package/dist/cli/daemon-cli/status.js +19 -0
  543. package/dist/cli/daemon-cli/status.print.js +241 -0
  544. package/dist/cli/daemon-cli/types.js +1 -0
  545. package/dist/cli/daemon-cli.js +2 -0
  546. package/dist/cli/deps.js +28 -0
  547. package/dist/cli/devices-cli.js +181 -0
  548. package/dist/cli/directory-cli.js +227 -0
  549. package/dist/cli/dns-cli.js +199 -0
  550. package/dist/cli/docs-cli.js +17 -0
  551. package/dist/cli/exec-approvals-cli.js +378 -0
  552. package/dist/cli/gateway-cli/call.js +25 -0
  553. package/dist/cli/gateway-cli/dev.js +99 -0
  554. package/dist/cli/gateway-cli/discover.js +88 -0
  555. package/dist/cli/gateway-cli/register.js +255 -0
  556. package/dist/cli/gateway-cli/run-loop.js +87 -0
  557. package/dist/cli/gateway-cli/run.js +265 -0
  558. package/dist/cli/gateway-cli/shared.js +101 -0
  559. package/dist/cli/gateway-cli.js +1 -0
  560. package/dist/cli/gateway-rpc.js +27 -0
  561. package/dist/cli/help-format.js +16 -0
  562. package/dist/cli/hooks-cli.js +709 -0
  563. package/dist/cli/logs-cli.js +222 -0
  564. package/dist/cli/memory-cli.js +527 -0
  565. package/dist/cli/models-cli.js +321 -0
  566. package/dist/cli/node-cli/daemon.js +481 -0
  567. package/dist/cli/node-cli/register.js +81 -0
  568. package/dist/cli/node-cli.js +1 -0
  569. package/dist/cli/nodes-camera.js +50 -0
  570. package/dist/cli/nodes-canvas.js +24 -0
  571. package/dist/cli/nodes-cli/a2ui-jsonl.js +81 -0
  572. package/dist/cli/nodes-cli/cli-utils.js +27 -0
  573. package/dist/cli/nodes-cli/format.js +35 -0
  574. package/dist/cli/nodes-cli/register.camera.js +193 -0
  575. package/dist/cli/nodes-cli/register.canvas.js +215 -0
  576. package/dist/cli/nodes-cli/register.invoke.js +303 -0
  577. package/dist/cli/nodes-cli/register.js +24 -0
  578. package/dist/cli/nodes-cli/register.location.js +64 -0
  579. package/dist/cli/nodes-cli/register.notify.js +51 -0
  580. package/dist/cli/nodes-cli/register.pairing.js +99 -0
  581. package/dist/cli/nodes-cli/register.screen.js +66 -0
  582. package/dist/cli/nodes-cli/register.status.js +328 -0
  583. package/dist/cli/nodes-cli/rpc.js +88 -0
  584. package/dist/cli/nodes-cli/types.js +1 -0
  585. package/dist/cli/nodes-cli.js +1 -0
  586. package/dist/cli/nodes-run.js +19 -0
  587. package/dist/cli/nodes-screen.js +35 -0
  588. package/dist/cli/outbound-send-deps.js +11 -0
  589. package/dist/cli/pairing-cli.js +115 -0
  590. package/dist/cli/parse-duration.js +28 -0
  591. package/dist/cli/parse-timeout.js +18 -0
  592. package/dist/cli/plugin-registry.js +24 -0
  593. package/dist/cli/plugins-cli.js +469 -0
  594. package/dist/cli/ports.js +101 -0
  595. package/dist/cli/profile-utils.js +17 -0
  596. package/dist/cli/profile.js +86 -0
  597. package/dist/cli/program/build-program.js +14 -0
  598. package/dist/cli/program/command-registry.js +148 -0
  599. package/dist/cli/program/config-guard.js +67 -0
  600. package/dist/cli/program/context.js +11 -0
  601. package/dist/cli/program/help.js +69 -0
  602. package/dist/cli/program/helpers.js +26 -0
  603. package/dist/cli/program/message/helpers.js +46 -0
  604. package/dist/cli/program/message/register.broadcast.js +11 -0
  605. package/dist/cli/program/message/register.discord-admin.js +119 -0
  606. package/dist/cli/program/message/register.emoji-sticker.js +43 -0
  607. package/dist/cli/program/message/register.permissions-search.js +22 -0
  608. package/dist/cli/program/message/register.pins.js +23 -0
  609. package/dist/cli/program/message/register.poll.js +13 -0
  610. package/dist/cli/program/message/register.reactions.js +21 -0
  611. package/dist/cli/program/message/register.read-edit-delete.js +30 -0
  612. package/dist/cli/program/message/register.send.js +17 -0
  613. package/dist/cli/program/message/register.thread.js +35 -0
  614. package/dist/cli/program/preaction.js +46 -0
  615. package/dist/cli/program/register.agent.js +162 -0
  616. package/dist/cli/program/register.configure.js +32 -0
  617. package/dist/cli/program/register.maintenance.js +91 -0
  618. package/dist/cli/program/register.message.js +54 -0
  619. package/dist/cli/program/register.onboard.js +120 -0
  620. package/dist/cli/program/register.setup.js +41 -0
  621. package/dist/cli/program/register.status-health-sessions.js +109 -0
  622. package/dist/cli/program/register.subclis.js +271 -0
  623. package/dist/cli/program.js +2 -0
  624. package/dist/cli/progress.js +165 -0
  625. package/dist/cli/prompt.js +17 -0
  626. package/dist/cli/route.js +29 -0
  627. package/dist/cli/run-main.js +100 -0
  628. package/dist/cli/sandbox-cli.js +98 -0
  629. package/dist/cli/security-cli.js +123 -0
  630. package/dist/cli/skills-cli.js +341 -0
  631. package/dist/cli/system-cli.js +98 -0
  632. package/dist/cli/tagline.js +208 -0
  633. package/dist/cli/tui-cli.js +44 -0
  634. package/dist/cli/update-cli.js +997 -0
  635. package/dist/cli/wait.js +8 -0
  636. package/dist/cli/webhooks-cli.js +140 -0
  637. package/dist/commands/agent/delivery.js +140 -0
  638. package/dist/commands/agent/run-context.js +27 -0
  639. package/dist/commands/agent/session-store.js +43 -0
  640. package/dist/commands/agent/session.js +74 -0
  641. package/dist/commands/agent/types.js +1 -0
  642. package/dist/commands/agent-via-gateway.js +119 -0
  643. package/dist/commands/agent.js +438 -0
  644. package/dist/commands/agents.bindings.js +126 -0
  645. package/dist/commands/agents.command-shared.js +18 -0
  646. package/dist/commands/agents.commands.add.js +293 -0
  647. package/dist/commands/agents.commands.delete.js +75 -0
  648. package/dist/commands/agents.commands.identity.js +168 -0
  649. package/dist/commands/agents.commands.list.js +98 -0
  650. package/dist/commands/agents.config.js +145 -0
  651. package/dist/commands/agents.js +6 -0
  652. package/dist/commands/agents.providers.js +140 -0
  653. package/dist/commands/auth-choice-options.js +165 -0
  654. package/dist/commands/auth-choice-prompt.js +36 -0
  655. package/dist/commands/auth-choice.api-key.js +34 -0
  656. package/dist/commands/auth-choice.apply.anthropic.js +77 -0
  657. package/dist/commands/auth-choice.apply.api-providers.js +502 -0
  658. package/dist/commands/auth-choice.apply.copilot-proxy.js +10 -0
  659. package/dist/commands/auth-choice.apply.github-copilot.js +47 -0
  660. package/dist/commands/auth-choice.apply.google-antigravity.js +10 -0
  661. package/dist/commands/auth-choice.apply.google-gemini-cli.js +10 -0
  662. package/dist/commands/auth-choice.apply.js +30 -0
  663. package/dist/commands/auth-choice.apply.minimax.js +72 -0
  664. package/dist/commands/auth-choice.apply.oauth.js +78 -0
  665. package/dist/commands/auth-choice.apply.openai.js +117 -0
  666. package/dist/commands/auth-choice.apply.plugin-provider.js +140 -0
  667. package/dist/commands/auth-choice.apply.qwen-portal.js +10 -0
  668. package/dist/commands/auth-choice.default-model.js +12 -0
  669. package/dist/commands/auth-choice.js +3 -0
  670. package/dist/commands/auth-choice.model-check.js +61 -0
  671. package/dist/commands/auth-choice.preferred-provider.js +32 -0
  672. package/dist/commands/auth-token.js +32 -0
  673. package/dist/commands/channels/add-mutators.js +49 -0
  674. package/dist/commands/channels/add.js +210 -0
  675. package/dist/commands/channels/capabilities.js +439 -0
  676. package/dist/commands/channels/list.js +145 -0
  677. package/dist/commands/channels/logs.js +85 -0
  678. package/dist/commands/channels/remove.js +114 -0
  679. package/dist/commands/channels/resolve.js +107 -0
  680. package/dist/commands/channels/shared.js +41 -0
  681. package/dist/commands/channels/status.js +238 -0
  682. package/dist/commands/channels.js +7 -0
  683. package/dist/commands/chutes-oauth.js +144 -0
  684. package/dist/commands/cleanup-utils.js +74 -0
  685. package/dist/commands/configure.channels.js +52 -0
  686. package/dist/commands/configure.commands.js +8 -0
  687. package/dist/commands/configure.daemon.js +101 -0
  688. package/dist/commands/configure.gateway-auth.js +64 -0
  689. package/dist/commands/configure.gateway.js +159 -0
  690. package/dist/commands/configure.js +4 -0
  691. package/dist/commands/configure.shared.js +49 -0
  692. package/dist/commands/configure.wizard.js +466 -0
  693. package/dist/commands/daemon-install-helpers.js +51 -0
  694. package/dist/commands/daemon-runtime.js +11 -0
  695. package/dist/commands/dashboard.js +47 -0
  696. package/dist/commands/docs.js +148 -0
  697. package/dist/commands/doctor-auth.js +236 -0
  698. package/dist/commands/doctor-config-flow.js +188 -0
  699. package/dist/commands/doctor-format.js +85 -0
  700. package/dist/commands/doctor-gateway-daemon-flow.js +201 -0
  701. package/dist/commands/doctor-gateway-health.js +43 -0
  702. package/dist/commands/doctor-gateway-services.js +209 -0
  703. package/dist/commands/doctor-install.js +27 -0
  704. package/dist/commands/doctor-legacy-config.js +42 -0
  705. package/dist/commands/doctor-platform-notes.js +66 -0
  706. package/dist/commands/doctor-prompter.js +64 -0
  707. package/dist/commands/doctor-sandbox.js +207 -0
  708. package/dist/commands/doctor-security.js +141 -0
  709. package/dist/commands/doctor-state-integrity.js +332 -0
  710. package/dist/commands/doctor-state-migrations.js +1 -0
  711. package/dist/commands/doctor-ui.js +119 -0
  712. package/dist/commands/doctor-update.js +65 -0
  713. package/dist/commands/doctor-workspace-status.js +56 -0
  714. package/dist/commands/doctor-workspace.js +69 -0
  715. package/dist/commands/doctor.js +252 -0
  716. package/dist/commands/gateway-status/helpers.js +200 -0
  717. package/dist/commands/gateway-status.js +300 -0
  718. package/dist/commands/google-gemini-model-default.js +33 -0
  719. package/dist/commands/health-format.js +37 -0
  720. package/dist/commands/health.js +595 -0
  721. package/dist/commands/message-format.js +345 -0
  722. package/dist/commands/message.js +45 -0
  723. package/dist/commands/model-picker.js +420 -0
  724. package/dist/commands/models/aliases.js +92 -0
  725. package/dist/commands/models/auth-order.js +95 -0
  726. package/dist/commands/models/auth.js +334 -0
  727. package/dist/commands/models/fallbacks.js +126 -0
  728. package/dist/commands/models/image-fallbacks.js +126 -0
  729. package/dist/commands/models/list.auth-overview.js +93 -0
  730. package/dist/commands/models/list.configured.js +80 -0
  731. package/dist/commands/models/list.format.js +41 -0
  732. package/dist/commands/models/list.js +2 -0
  733. package/dist/commands/models/list.list-command.js +99 -0
  734. package/dist/commands/models/list.probe.js +348 -0
  735. package/dist/commands/models/list.registry.js +81 -0
  736. package/dist/commands/models/list.status-command.js +420 -0
  737. package/dist/commands/models/list.table.js +58 -0
  738. package/dist/commands/models/list.types.js +1 -0
  739. package/dist/commands/models/scan.js +293 -0
  740. package/dist/commands/models/set-image.js +28 -0
  741. package/dist/commands/models/set.js +28 -0
  742. package/dist/commands/models/shared.js +80 -0
  743. package/dist/commands/models.js +10 -0
  744. package/dist/commands/node-daemon-install-helpers.js +35 -0
  745. package/dist/commands/node-daemon-runtime.js +6 -0
  746. package/dist/commands/oauth-env.js +16 -0
  747. package/dist/commands/oauth-flow.js +33 -0
  748. package/dist/commands/onboard-auth.config-core.js +386 -0
  749. package/dist/commands/onboard-auth.config-minimax.js +176 -0
  750. package/dist/commands/onboard-auth.config-opencode.js +40 -0
  751. package/dist/commands/onboard-auth.credentials.js +147 -0
  752. package/dist/commands/onboard-auth.js +7 -0
  753. package/dist/commands/onboard-auth.models.js +100 -0
  754. package/dist/commands/onboard-channels.js +527 -0
  755. package/dist/commands/onboard-helpers.js +359 -0
  756. package/dist/commands/onboard-hooks.js +59 -0
  757. package/dist/commands/onboard-interactive.js +17 -0
  758. package/dist/commands/onboard-non-interactive/api-keys.js +45 -0
  759. package/dist/commands/onboard-non-interactive/local/auth-choice.js +333 -0
  760. package/dist/commands/onboard-non-interactive/local/daemon-install.js +45 -0
  761. package/dist/commands/onboard-non-interactive/local/gateway-config.js +86 -0
  762. package/dist/commands/onboard-non-interactive/local/output.js +14 -0
  763. package/dist/commands/onboard-non-interactive/local/skills-config.js +21 -0
  764. package/dist/commands/onboard-non-interactive/local/workspace.js +7 -0
  765. package/dist/commands/onboard-non-interactive/local.js +105 -0
  766. package/dist/commands/onboard-non-interactive/remote.js +41 -0
  767. package/dist/commands/onboard-non-interactive.js +25 -0
  768. package/dist/commands/onboard-remote.js +121 -0
  769. package/dist/commands/onboard-skills.js +146 -0
  770. package/dist/commands/onboard-types.js +1 -0
  771. package/dist/commands/onboard.js +62 -0
  772. package/dist/commands/onboarding/__tests__/test-utils.js +20 -0
  773. package/dist/commands/onboarding/plugin-install.js +162 -0
  774. package/dist/commands/onboarding/registry.js +13 -0
  775. package/dist/commands/onboarding/types.js +1 -0
  776. package/dist/commands/openai-codex-model-default.js +44 -0
  777. package/dist/commands/opencode-zen-model-default.js +35 -0
  778. package/dist/commands/reset.js +134 -0
  779. package/dist/commands/sandbox-display.js +82 -0
  780. package/dist/commands/sandbox-explain.js +226 -0
  781. package/dist/commands/sandbox-formatters.js +31 -0
  782. package/dist/commands/sandbox.js +119 -0
  783. package/dist/commands/sessions.js +211 -0
  784. package/dist/commands/setup.js +60 -0
  785. package/dist/commands/signal-install.js +132 -0
  786. package/dist/commands/status-all/agents.js +62 -0
  787. package/dist/commands/status-all/channels.js +354 -0
  788. package/dist/commands/status-all/diagnosis.js +156 -0
  789. package/dist/commands/status-all/format.js +41 -0
  790. package/dist/commands/status-all/gateway.js +158 -0
  791. package/dist/commands/status-all/report-lines.js +135 -0
  792. package/dist/commands/status-all.js +409 -0
  793. package/dist/commands/status.agent-local.js +68 -0
  794. package/dist/commands/status.command.js +476 -0
  795. package/dist/commands/status.daemon.js +30 -0
  796. package/dist/commands/status.format.js +52 -0
  797. package/dist/commands/status.gateway-probe.js +35 -0
  798. package/dist/commands/status.js +2 -0
  799. package/dist/commands/status.link-channel.js +39 -0
  800. package/dist/commands/status.scan.js +140 -0
  801. package/dist/commands/status.summary.js +172 -0
  802. package/dist/commands/status.types.js +1 -0
  803. package/dist/commands/status.update.js +112 -0
  804. package/dist/commands/systemd-linger.js +77 -0
  805. package/dist/commands/uninstall.js +161 -0
  806. package/dist/config/agent-dirs.js +79 -0
  807. package/dist/config/agent-limits.js +16 -0
  808. package/dist/config/cache-utils.js +22 -0
  809. package/dist/config/channel-capabilities.js +42 -0
  810. package/dist/config/commands.js +38 -0
  811. package/dist/config/config-paths.js +75 -0
  812. package/dist/config/config.js +7 -0
  813. package/dist/config/defaults.js +350 -0
  814. package/dist/config/env-substitution.js +117 -0
  815. package/dist/config/env-vars.js +21 -0
  816. package/dist/config/group-policy.js +54 -0
  817. package/dist/config/includes.js +183 -0
  818. package/dist/config/io.js +488 -0
  819. package/dist/config/legacy-migrate.js +13 -0
  820. package/dist/config/legacy.js +34 -0
  821. package/dist/config/legacy.migrations.js +8 -0
  822. package/dist/config/legacy.migrations.part-1.js +308 -0
  823. package/dist/config/legacy.migrations.part-2.js +343 -0
  824. package/dist/config/legacy.migrations.part-3.js +161 -0
  825. package/dist/config/legacy.rules.js +116 -0
  826. package/dist/config/legacy.shared.js +76 -0
  827. package/dist/config/logging.js +10 -0
  828. package/dist/config/markdown-tables.js +36 -0
  829. package/dist/config/merge-config.js +22 -0
  830. package/dist/config/merge-patch.js +22 -0
  831. package/dist/config/normalize-paths.js +54 -0
  832. package/dist/config/paths.js +90 -0
  833. package/dist/config/plugin-auto-enable.js +338 -0
  834. package/dist/config/port-defaults.js +30 -0
  835. package/dist/config/runtime-overrides.js +50 -0
  836. package/dist/config/schema.js +789 -0
  837. package/dist/config/sessions/group.js +83 -0
  838. package/dist/config/sessions/main-session.js +43 -0
  839. package/dist/config/sessions/metadata.js +114 -0
  840. package/dist/config/sessions/paths.js +46 -0
  841. package/dist/config/sessions/reset.js +103 -0
  842. package/dist/config/sessions/session-key.js +34 -0
  843. package/dist/config/sessions/store.js +346 -0
  844. package/dist/config/sessions/transcript.js +113 -0
  845. package/dist/config/sessions/types.js +11 -0
  846. package/dist/config/sessions.js +9 -0
  847. package/dist/config/talk.js +31 -0
  848. package/dist/config/telegram-custom-commands.js +70 -0
  849. package/dist/config/types.agent-defaults.js +1 -0
  850. package/dist/config/types.agents.js +1 -0
  851. package/dist/config/types.approvals.js +1 -0
  852. package/dist/config/types.auth.js +1 -0
  853. package/dist/config/types.base.js +1 -0
  854. package/dist/config/types.browser.js +1 -0
  855. package/dist/config/types.channels.js +1 -0
  856. package/dist/config/types.clawdbot.js +1 -0
  857. package/dist/config/types.cron.js +1 -0
  858. package/dist/config/types.discord.js +1 -0
  859. package/dist/config/types.gateway.js +1 -0
  860. package/dist/config/types.googlechat.js +1 -0
  861. package/dist/config/types.hooks.js +1 -0
  862. package/dist/config/types.imessage.js +1 -0
  863. package/dist/config/types.js +29 -0
  864. package/dist/config/types.messages.js +1 -0
  865. package/dist/config/types.models.js +1 -0
  866. package/dist/config/types.msteams.js +1 -0
  867. package/dist/config/types.node-host.js +1 -0
  868. package/dist/config/types.plugins.js +1 -0
  869. package/dist/config/types.queue.js +1 -0
  870. package/dist/config/types.sandbox.js +1 -0
  871. package/dist/config/types.signal.js +1 -0
  872. package/dist/config/types.skills.js +1 -0
  873. package/dist/config/types.slack.js +1 -0
  874. package/dist/config/types.telegram.js +1 -0
  875. package/dist/config/types.tools.js +1 -0
  876. package/dist/config/types.tts.js +1 -0
  877. package/dist/config/types.whatsapp.js +1 -0
  878. package/dist/config/validation.js +297 -0
  879. package/dist/config/version.js +30 -0
  880. package/dist/config/zod-schema.agent-defaults.js +156 -0
  881. package/dist/config/zod-schema.agent-runtime.js +487 -0
  882. package/dist/config/zod-schema.agents.js +46 -0
  883. package/dist/config/zod-schema.approvals.js +25 -0
  884. package/dist/config/zod-schema.channels.js +9 -0
  885. package/dist/config/zod-schema.core.js +452 -0
  886. package/dist/config/zod-schema.hooks.js +124 -0
  887. package/dist/config/zod-schema.js +539 -0
  888. package/dist/config/zod-schema.providers-core.js +687 -0
  889. package/dist/config/zod-schema.providers-whatsapp.js +123 -0
  890. package/dist/config/zod-schema.providers.js +29 -0
  891. package/dist/config/zod-schema.session.js +100 -0
  892. package/dist/control-ui/assets/index-08nzABV3.css +1 -0
  893. package/dist/control-ui/assets/index-DQcOTEYz.js +3119 -0
  894. package/dist/control-ui/assets/index-DQcOTEYz.js.map +1 -0
  895. package/dist/control-ui/index.html +15 -0
  896. package/dist/cron/isolated-agent/delivery-target.js +59 -0
  897. package/dist/cron/isolated-agent/helpers.js +49 -0
  898. package/dist/cron/isolated-agent/run.js +374 -0
  899. package/dist/cron/isolated-agent/session.js +27 -0
  900. package/dist/cron/isolated-agent.js +1 -0
  901. package/dist/cron/normalize.js +111 -0
  902. package/dist/cron/parse.js +24 -0
  903. package/dist/cron/payload-migration.js +29 -0
  904. package/dist/cron/run-log.js +70 -0
  905. package/dist/cron/schedule.js +24 -0
  906. package/dist/cron/service/jobs.js +174 -0
  907. package/dist/cron/service/locked.js +12 -0
  908. package/dist/cron/service/normalize.js +55 -0
  909. package/dist/cron/service/ops.js +118 -0
  910. package/dist/cron/service/state.js +10 -0
  911. package/dist/cron/service/store.js +57 -0
  912. package/dist/cron/service/timer.js +217 -0
  913. package/dist/cron/service.js +35 -0
  914. package/dist/cron/store.js +43 -0
  915. package/dist/cron/types.js +1 -0
  916. package/dist/daemon/constants.js +71 -0
  917. package/dist/daemon/diagnostics.js +38 -0
  918. package/dist/daemon/inspect.js +313 -0
  919. package/dist/daemon/launchd-plist.js +68 -0
  920. package/dist/daemon/launchd.js +316 -0
  921. package/dist/daemon/legacy.js +44 -0
  922. package/dist/daemon/node-service.js +53 -0
  923. package/dist/daemon/paths.js +35 -0
  924. package/dist/daemon/program-args.js +220 -0
  925. package/dist/daemon/runtime-parse.js +17 -0
  926. package/dist/daemon/runtime-paths.js +109 -0
  927. package/dist/daemon/schtasks.js +303 -0
  928. package/dist/daemon/service-audit.js +270 -0
  929. package/dist/daemon/service-env.js +128 -0
  930. package/dist/daemon/service-runtime.js +1 -0
  931. package/dist/daemon/service.js +90 -0
  932. package/dist/daemon/systemd-hints.js +24 -0
  933. package/dist/daemon/systemd-linger.js +59 -0
  934. package/dist/daemon/systemd-unit.js +108 -0
  935. package/dist/daemon/systemd.js +318 -0
  936. package/dist/discord/accounts.js +52 -0
  937. package/dist/discord/api.js +93 -0
  938. package/dist/discord/audit.js +94 -0
  939. package/dist/discord/chunk.js +200 -0
  940. package/dist/discord/directory-live.js +76 -0
  941. package/dist/discord/gateway-logging.js +48 -0
  942. package/dist/discord/index.js +2 -0
  943. package/dist/discord/monitor/allow-list.js +230 -0
  944. package/dist/discord/monitor/exec-approvals.js +406 -0
  945. package/dist/discord/monitor/format.js +27 -0
  946. package/dist/discord/monitor/listeners.js +240 -0
  947. package/dist/discord/monitor/message-handler.js +101 -0
  948. package/dist/discord/monitor/message-handler.preflight.js +438 -0
  949. package/dist/discord/monitor/message-handler.preflight.types.js +1 -0
  950. package/dist/discord/monitor/message-handler.process.js +344 -0
  951. package/dist/discord/monitor/message-utils.js +189 -0
  952. package/dist/discord/monitor/native-command.js +705 -0
  953. package/dist/discord/monitor/presence-cache.js +38 -0
  954. package/dist/discord/monitor/provider.js +551 -0
  955. package/dist/discord/monitor/reply-context.js +29 -0
  956. package/dist/discord/monitor/reply-delivery.js +57 -0
  957. package/dist/discord/monitor/system-events.js +53 -0
  958. package/dist/discord/monitor/threading.js +201 -0
  959. package/dist/discord/monitor/typing.js +8 -0
  960. package/dist/discord/monitor.gateway.js +54 -0
  961. package/dist/discord/monitor.js +7 -0
  962. package/dist/discord/probe.js +124 -0
  963. package/dist/discord/resolve-channels.js +239 -0
  964. package/dist/discord/resolve-users.js +114 -0
  965. package/dist/discord/send.channels.js +74 -0
  966. package/dist/discord/send.emojis-stickers.js +48 -0
  967. package/dist/discord/send.guild.js +79 -0
  968. package/dist/discord/send.js +7 -0
  969. package/dist/discord/send.messages.js +91 -0
  970. package/dist/discord/send.outbound.js +87 -0
  971. package/dist/discord/send.permissions.js +116 -0
  972. package/dist/discord/send.reactions.js +71 -0
  973. package/dist/discord/send.shared.js +249 -0
  974. package/dist/discord/send.types.js +16 -0
  975. package/dist/discord/targets.js +43 -0
  976. package/dist/discord/token.js +29 -0
  977. package/dist/entry.js +127 -0
  978. package/dist/gateway/assistant-identity.js +64 -0
  979. package/dist/gateway/auth.js +194 -0
  980. package/dist/gateway/boot.js +72 -0
  981. package/dist/gateway/call.js +182 -0
  982. package/dist/gateway/chat-abort.js +55 -0
  983. package/dist/gateway/chat-attachments.js +133 -0
  984. package/dist/gateway/chat-sanitize.js +103 -0
  985. package/dist/gateway/client.js +339 -0
  986. package/dist/gateway/config-reload.js +295 -0
  987. package/dist/gateway/control-ui-shared.js +48 -0
  988. package/dist/gateway/control-ui.js +258 -0
  989. package/dist/gateway/device-auth.js +19 -0
  990. package/dist/gateway/exec-approval-manager.js +40 -0
  991. package/dist/gateway/hooks-mapping.js +287 -0
  992. package/dist/gateway/hooks.js +169 -0
  993. package/dist/gateway/http-common.js +43 -0
  994. package/dist/gateway/http-utils.js +51 -0
  995. package/dist/gateway/live-image-probe.js +156 -0
  996. package/dist/gateway/net.js +176 -0
  997. package/dist/gateway/node-command-policy.js +106 -0
  998. package/dist/gateway/node-registry.js +142 -0
  999. package/dist/gateway/open-responses.schema.js +285 -0
  1000. package/dist/gateway/openai-http.js +327 -0
  1001. package/dist/gateway/openresponses-http.js +693 -0
  1002. package/dist/gateway/probe.js +87 -0
  1003. package/dist/gateway/protocol/client-info.js +46 -0
  1004. package/dist/gateway/protocol/index.js +109 -0
  1005. package/dist/gateway/protocol/schema/agent.js +73 -0
  1006. package/dist/gateway/protocol/schema/agents-models-skills.js +47 -0
  1007. package/dist/gateway/protocol/schema/channels.js +74 -0
  1008. package/dist/gateway/protocol/schema/config.js +44 -0
  1009. package/dist/gateway/protocol/schema/cron.js +159 -0
  1010. package/dist/gateway/protocol/schema/devices.js +36 -0
  1011. package/dist/gateway/protocol/schema/error-codes.js +14 -0
  1012. package/dist/gateway/protocol/schema/exec-approvals.js +66 -0
  1013. package/dist/gateway/protocol/schema/frames.js +101 -0
  1014. package/dist/gateway/protocol/schema/logs-chat.js +53 -0
  1015. package/dist/gateway/protocol/schema/nodes.js +54 -0
  1016. package/dist/gateway/protocol/schema/primitives.js +10 -0
  1017. package/dist/gateway/protocol/schema/protocol-schemas.js +117 -0
  1018. package/dist/gateway/protocol/schema/sessions.js +69 -0
  1019. package/dist/gateway/protocol/schema/snapshot.js +40 -0
  1020. package/dist/gateway/protocol/schema/types.js +1 -0
  1021. package/dist/gateway/protocol/schema/wizard.js +76 -0
  1022. package/dist/gateway/protocol/schema.js +16 -0
  1023. package/dist/gateway/server/__tests__/test-utils.js +24 -0
  1024. package/dist/gateway/server/close-reason.js +10 -0
  1025. package/dist/gateway/server/health-state.js +69 -0
  1026. package/dist/gateway/server/hooks.js +85 -0
  1027. package/dist/gateway/server/http-listen.js +26 -0
  1028. package/dist/gateway/server/plugins-http.js +45 -0
  1029. package/dist/gateway/server/tls.js +4 -0
  1030. package/dist/gateway/server/ws-connection/message-handler.js +771 -0
  1031. package/dist/gateway/server/ws-connection.js +191 -0
  1032. package/dist/gateway/server/ws-types.js +1 -0
  1033. package/dist/gateway/server-broadcast.js +73 -0
  1034. package/dist/gateway/server-browser.js +11 -0
  1035. package/dist/gateway/server-channels.js +242 -0
  1036. package/dist/gateway/server-chat.js +195 -0
  1037. package/dist/gateway/server-close.js +99 -0
  1038. package/dist/gateway/server-constants.js +29 -0
  1039. package/dist/gateway/server-cron.js +84 -0
  1040. package/dist/gateway/server-discovery-runtime.js +69 -0
  1041. package/dist/gateway/server-discovery.js +62 -0
  1042. package/dist/gateway/server-http.js +224 -0
  1043. package/dist/gateway/server-lanes.js +7 -0
  1044. package/dist/gateway/server-maintenance.js +68 -0
  1045. package/dist/gateway/server-methods/agent-job.js +104 -0
  1046. package/dist/gateway/server-methods/agent.js +360 -0
  1047. package/dist/gateway/server-methods/agents.js +14 -0
  1048. package/dist/gateway/server-methods/channels.js +218 -0
  1049. package/dist/gateway/server-methods/chat.js +520 -0
  1050. package/dist/gateway/server-methods/config.js +269 -0
  1051. package/dist/gateway/server-methods/connect.js +6 -0
  1052. package/dist/gateway/server-methods/cron.js +109 -0
  1053. package/dist/gateway/server-methods/devices.js +95 -0
  1054. package/dist/gateway/server-methods/exec-approval.js +78 -0
  1055. package/dist/gateway/server-methods/exec-approvals.js +141 -0
  1056. package/dist/gateway/server-methods/health.js +29 -0
  1057. package/dist/gateway/server-methods/logs.js +143 -0
  1058. package/dist/gateway/server-methods/models.js +16 -0
  1059. package/dist/gateway/server-methods/nodes.helpers.js +32 -0
  1060. package/dist/gateway/server-methods/nodes.js +426 -0
  1061. package/dist/gateway/server-methods/send.js +280 -0
  1062. package/dist/gateway/server-methods/sessions.js +322 -0
  1063. package/dist/gateway/server-methods/skills.js +137 -0
  1064. package/dist/gateway/server-methods/system.js +122 -0
  1065. package/dist/gateway/server-methods/talk.js +20 -0
  1066. package/dist/gateway/server-methods/tts.js +132 -0
  1067. package/dist/gateway/server-methods/types.js +1 -0
  1068. package/dist/gateway/server-methods/update.js +96 -0
  1069. package/dist/gateway/server-methods/usage.js +63 -0
  1070. package/dist/gateway/server-methods/voicewake.js +30 -0
  1071. package/dist/gateway/server-methods/web.js +73 -0
  1072. package/dist/gateway/server-methods/wizard.js +100 -0
  1073. package/dist/gateway/server-methods-list.js +107 -0
  1074. package/dist/gateway/server-methods.js +192 -0
  1075. package/dist/gateway/server-mobile-nodes.js +10 -0
  1076. package/dist/gateway/server-model-catalog.js +11 -0
  1077. package/dist/gateway/server-node-events-types.js +1 -0
  1078. package/dist/gateway/server-node-events.js +206 -0
  1079. package/dist/gateway/server-node-subscriptions.js +93 -0
  1080. package/dist/gateway/server-plugins.js +36 -0
  1081. package/dist/gateway/server-reload-handlers.js +112 -0
  1082. package/dist/gateway/server-restart-sentinel.js +84 -0
  1083. package/dist/gateway/server-runtime-config.js +66 -0
  1084. package/dist/gateway/server-runtime-state.js +113 -0
  1085. package/dist/gateway/server-session-key.js +20 -0
  1086. package/dist/gateway/server-shared.js +1 -0
  1087. package/dist/gateway/server-startup-log.js +27 -0
  1088. package/dist/gateway/server-startup.js +119 -0
  1089. package/dist/gateway/server-tailscale.js +41 -0
  1090. package/dist/gateway/server-utils.js +35 -0
  1091. package/dist/gateway/server-wizard-sessions.js +19 -0
  1092. package/dist/gateway/server-ws-runtime.js +20 -0
  1093. package/dist/gateway/server.impl.js +436 -0
  1094. package/dist/gateway/server.js +2 -0
  1095. package/dist/gateway/session-utils.fs.js +343 -0
  1096. package/dist/gateway/session-utils.js +534 -0
  1097. package/dist/gateway/session-utils.types.js +1 -0
  1098. package/dist/gateway/sessions-patch.js +298 -0
  1099. package/dist/gateway/sessions-resolve.js +103 -0
  1100. package/dist/gateway/test-helpers.e2e.js +101 -0
  1101. package/dist/gateway/test-helpers.mocks.js +502 -0
  1102. package/dist/gateway/test-helpers.openai-mock.js +163 -0
  1103. package/dist/gateway/test-helpers.server.js +369 -0
  1104. package/dist/gateway/tools-invoke-http.js +178 -0
  1105. package/dist/gateway/ws-log.js +336 -0
  1106. package/dist/gateway/ws-logging.js +8 -0
  1107. package/dist/globals.js +41 -0
  1108. package/dist/hooks/bundled/boot-md/HOOK.md +19 -0
  1109. package/dist/hooks/bundled/boot-md/handler.js +14 -0
  1110. package/dist/hooks/bundled/command-logger/HOOK.md +122 -0
  1111. package/dist/hooks/bundled/command-logger/handler.js +55 -0
  1112. package/dist/hooks/bundled/session-memory/HOOK.md +86 -0
  1113. package/dist/hooks/bundled/session-memory/handler.js +140 -0
  1114. package/dist/hooks/bundled/soul-evil/HOOK.md +71 -0
  1115. package/dist/hooks/bundled/soul-evil/handler.js +36 -0
  1116. package/dist/hooks/bundled-dir.js +42 -0
  1117. package/dist/hooks/config.js +122 -0
  1118. package/dist/hooks/frontmatter.js +105 -0
  1119. package/dist/hooks/gmail-ops.js +243 -0
  1120. package/dist/hooks/gmail-setup-utils.js +310 -0
  1121. package/dist/hooks/gmail-watcher.js +191 -0
  1122. package/dist/hooks/gmail.js +179 -0
  1123. package/dist/hooks/hooks-status.js +135 -0
  1124. package/dist/hooks/hooks.js +2 -0
  1125. package/dist/hooks/install.js +327 -0
  1126. package/dist/hooks/installs.js +24 -0
  1127. package/dist/hooks/internal-hooks.js +121 -0
  1128. package/dist/hooks/llm-slug-generator.js +70 -0
  1129. package/dist/hooks/loader.js +110 -0
  1130. package/dist/hooks/plugin-hooks.js +91 -0
  1131. package/dist/hooks/soul-evil.js +186 -0
  1132. package/dist/hooks/types.js +1 -0
  1133. package/dist/hooks/workspace.js +206 -0
  1134. package/dist/imessage/accounts.js +61 -0
  1135. package/dist/imessage/client.js +174 -0
  1136. package/dist/imessage/index.js +3 -0
  1137. package/dist/imessage/monitor/deliver.js +45 -0
  1138. package/dist/imessage/monitor/monitor-provider.js +592 -0
  1139. package/dist/imessage/monitor/runtime.js +12 -0
  1140. package/dist/imessage/monitor/types.js +1 -0
  1141. package/dist/imessage/monitor.js +1 -0
  1142. package/dist/imessage/probe.js +68 -0
  1143. package/dist/imessage/send.js +101 -0
  1144. package/dist/imessage/targets.js +172 -0
  1145. package/dist/index.js +49 -0
  1146. package/dist/infra/agent-events.js +54 -0
  1147. package/dist/infra/archive.js +97 -0
  1148. package/dist/infra/backoff.js +19 -0
  1149. package/dist/infra/binaries.js +9 -0
  1150. package/dist/infra/bonjour-ciao.js +10 -0
  1151. package/dist/infra/bonjour-discovery.js +445 -0
  1152. package/dist/infra/bonjour-errors.js +7 -0
  1153. package/dist/infra/bonjour.js +209 -0
  1154. package/dist/infra/brew.js +55 -0
  1155. package/dist/infra/canvas-host-url.js +52 -0
  1156. package/dist/infra/channel-activity.js +32 -0
  1157. package/dist/infra/channel-summary.js +183 -0
  1158. package/dist/infra/channels-status-issues.js +15 -0
  1159. package/dist/infra/clawdbot-root.js +56 -0
  1160. package/dist/infra/clipboard.js +24 -0
  1161. package/dist/infra/control-ui-assets.js +98 -0
  1162. package/dist/infra/dedupe.js +47 -0
  1163. package/dist/infra/device-auth-store.js +97 -0
  1164. package/dist/infra/device-identity.js +149 -0
  1165. package/dist/infra/device-pairing.js +401 -0
  1166. package/dist/infra/diagnostic-events.js +28 -0
  1167. package/dist/infra/diagnostic-flags.js +66 -0
  1168. package/dist/infra/dotenv.js +15 -0
  1169. package/dist/infra/env-file.js +43 -0
  1170. package/dist/infra/env.js +34 -0
  1171. package/dist/infra/errors.js +35 -0
  1172. package/dist/infra/exec-approval-forwarder.js +212 -0
  1173. package/dist/infra/exec-approvals.js +1040 -0
  1174. package/dist/infra/exec-host.js +75 -0
  1175. package/dist/infra/exec-safety.js +31 -0
  1176. package/dist/infra/fetch.js +58 -0
  1177. package/dist/infra/format-duration.js +20 -0
  1178. package/dist/infra/gateway-lock.js +202 -0
  1179. package/dist/infra/git-commit.js +106 -0
  1180. package/dist/infra/heartbeat-events.js +34 -0
  1181. package/dist/infra/heartbeat-runner.js +743 -0
  1182. package/dist/infra/heartbeat-visibility.js +31 -0
  1183. package/dist/infra/heartbeat-wake.js +61 -0
  1184. package/dist/infra/is-main.js +33 -0
  1185. package/dist/infra/json-file.js +21 -0
  1186. package/dist/infra/machine-name.js +43 -0
  1187. package/dist/infra/net/ssrf.js +199 -0
  1188. package/dist/infra/node-pairing.js +228 -0
  1189. package/dist/infra/node-shell.js +9 -0
  1190. package/dist/infra/os-summary.js +23 -0
  1191. package/dist/infra/outbound/agent-delivery.js +86 -0
  1192. package/dist/infra/outbound/channel-adapters.js +16 -0
  1193. package/dist/infra/outbound/channel-selection.js +62 -0
  1194. package/dist/infra/outbound/channel-target.js +28 -0
  1195. package/dist/infra/outbound/deliver.js +253 -0
  1196. package/dist/infra/outbound/directory-cache.js +44 -0
  1197. package/dist/infra/outbound/envelope.js +20 -0
  1198. package/dist/infra/outbound/format.js +66 -0
  1199. package/dist/infra/outbound/message-action-runner.js +766 -0
  1200. package/dist/infra/outbound/message-action-spec.js +82 -0
  1201. package/dist/infra/outbound/message.js +189 -0
  1202. package/dist/infra/outbound/outbound-policy.js +122 -0
  1203. package/dist/infra/outbound/outbound-send-service.js +123 -0
  1204. package/dist/infra/outbound/outbound-session.js +744 -0
  1205. package/dist/infra/outbound/payloads.js +78 -0
  1206. package/dist/infra/outbound/target-errors.js +23 -0
  1207. package/dist/infra/outbound/target-normalization.js +27 -0
  1208. package/dist/infra/outbound/target-resolver.js +348 -0
  1209. package/dist/infra/outbound/targets.js +213 -0
  1210. package/dist/infra/path-env.js +93 -0
  1211. package/dist/infra/ports-format.js +53 -0
  1212. package/dist/infra/ports-inspect.js +240 -0
  1213. package/dist/infra/ports-lsof.js +33 -0
  1214. package/dist/infra/ports-types.js +1 -0
  1215. package/dist/infra/ports.js +75 -0
  1216. package/dist/infra/provider-usage.auth.js +188 -0
  1217. package/dist/infra/provider-usage.fetch.antigravity.js +212 -0
  1218. package/dist/infra/provider-usage.fetch.claude.js +129 -0
  1219. package/dist/infra/provider-usage.fetch.codex.js +62 -0
  1220. package/dist/infra/provider-usage.fetch.copilot.js +42 -0
  1221. package/dist/infra/provider-usage.fetch.gemini.js +57 -0
  1222. package/dist/infra/provider-usage.fetch.js +7 -0
  1223. package/dist/infra/provider-usage.fetch.minimax.js +332 -0
  1224. package/dist/infra/provider-usage.fetch.shared.js +10 -0
  1225. package/dist/infra/provider-usage.fetch.zai.js +62 -0
  1226. package/dist/infra/provider-usage.format.js +96 -0
  1227. package/dist/infra/provider-usage.js +3 -0
  1228. package/dist/infra/provider-usage.load.js +59 -0
  1229. package/dist/infra/provider-usage.shared.js +51 -0
  1230. package/dist/infra/provider-usage.types.js +1 -0
  1231. package/dist/infra/restart-sentinel.js +65 -0
  1232. package/dist/infra/restart.js +171 -0
  1233. package/dist/infra/retry-policy.js +68 -0
  1234. package/dist/infra/retry.js +85 -0
  1235. package/dist/infra/runtime-guard.js +60 -0
  1236. package/dist/infra/session-cost-usage.js +190 -0
  1237. package/dist/infra/shell-env.js +125 -0
  1238. package/dist/infra/skills-remote.js +282 -0
  1239. package/dist/infra/ssh-config.js +83 -0
  1240. package/dist/infra/ssh-tunnel.js +166 -0
  1241. package/dist/infra/state-migrations.fs.js +49 -0
  1242. package/dist/infra/state-migrations.js +498 -0
  1243. package/dist/infra/system-events.js +75 -0
  1244. package/dist/infra/system-presence.js +231 -0
  1245. package/dist/infra/tailnet.js +46 -0
  1246. package/dist/infra/tailscale.js +368 -0
  1247. package/dist/infra/tls/fingerprint.js +5 -0
  1248. package/dist/infra/tls/gateway.js +119 -0
  1249. package/dist/infra/transport-ready.js +38 -0
  1250. package/dist/infra/unhandled-rejections.js +29 -0
  1251. package/dist/infra/update-channels.js +57 -0
  1252. package/dist/infra/update-check.js +293 -0
  1253. package/dist/infra/update-global.js +85 -0
  1254. package/dist/infra/update-runner.js +557 -0
  1255. package/dist/infra/update-startup.js +86 -0
  1256. package/dist/infra/voicewake.js +74 -0
  1257. package/dist/infra/warnings.js +25 -0
  1258. package/dist/infra/widearea-dns.js +131 -0
  1259. package/dist/infra/ws.js +13 -0
  1260. package/dist/infra/wsl.js +25 -0
  1261. package/dist/line/accounts.js +130 -0
  1262. package/dist/line/auto-reply-delivery.js +102 -0
  1263. package/dist/line/bot-access.js +38 -0
  1264. package/dist/line/bot-handlers.js +258 -0
  1265. package/dist/line/bot-message-context.js +374 -0
  1266. package/dist/line/bot.js +48 -0
  1267. package/dist/line/config-schema.js +47 -0
  1268. package/dist/line/download.js +95 -0
  1269. package/dist/line/flex-templates.js +1264 -0
  1270. package/dist/line/http-registry.js +27 -0
  1271. package/dist/line/index.js +19 -0
  1272. package/dist/line/markdown-to-line.js +346 -0
  1273. package/dist/line/monitor.js +270 -0
  1274. package/dist/line/probe.js +37 -0
  1275. package/dist/line/reply-chunks.js +53 -0
  1276. package/dist/line/rich-menu.js +320 -0
  1277. package/dist/line/send.js +451 -0
  1278. package/dist/line/template-messages.js +258 -0
  1279. package/dist/line/types.js +1 -0
  1280. package/dist/line/webhook.js +75 -0
  1281. package/dist/link-understanding/apply.js +22 -0
  1282. package/dist/link-understanding/defaults.js +2 -0
  1283. package/dist/link-understanding/detect.js +49 -0
  1284. package/dist/link-understanding/format.js +10 -0
  1285. package/dist/link-understanding/index.js +4 -0
  1286. package/dist/link-understanding/runner.js +99 -0
  1287. package/dist/logger.js +53 -0
  1288. package/dist/logging/config.js +19 -0
  1289. package/dist/logging/console.js +237 -0
  1290. package/dist/logging/diagnostic.js +236 -0
  1291. package/dist/logging/levels.js +26 -0
  1292. package/dist/logging/logger.js +185 -0
  1293. package/dist/logging/parse-log-line.js +52 -0
  1294. package/dist/logging/redact.js +115 -0
  1295. package/dist/logging/state.js +12 -0
  1296. package/dist/logging/subsystem.js +234 -0
  1297. package/dist/logging.js +5 -0
  1298. package/dist/macos/gateway-daemon.js +178 -0
  1299. package/dist/macos/relay-smoke.js +29 -0
  1300. package/dist/macos/relay.js +60 -0
  1301. package/dist/markdown/code-spans.js +67 -0
  1302. package/dist/markdown/fences.js +57 -0
  1303. package/dist/markdown/frontmatter.js +124 -0
  1304. package/dist/markdown/ir.js +687 -0
  1305. package/dist/markdown/render.js +113 -0
  1306. package/dist/markdown/tables.js +35 -0
  1307. package/dist/media/audio-tags.js +14 -0
  1308. package/dist/media/audio.js +15 -0
  1309. package/dist/media/constants.js +33 -0
  1310. package/dist/media/fetch.js +151 -0
  1311. package/dist/media/host.js +43 -0
  1312. package/dist/media/image-ops.js +385 -0
  1313. package/dist/media/input-files.js +276 -0
  1314. package/dist/media/mime.js +147 -0
  1315. package/dist/media/parse.js +175 -0
  1316. package/dist/media/server.js +64 -0
  1317. package/dist/media/store.js +199 -0
  1318. package/dist/media-understanding/apply.js +78 -0
  1319. package/dist/media-understanding/attachments.js +320 -0
  1320. package/dist/media-understanding/concurrency.js +26 -0
  1321. package/dist/media-understanding/defaults.js +30 -0
  1322. package/dist/media-understanding/errors.js +11 -0
  1323. package/dist/media-understanding/format.js +56 -0
  1324. package/dist/media-understanding/index.js +3 -0
  1325. package/dist/media-understanding/providers/anthropic/index.js +6 -0
  1326. package/dist/media-understanding/providers/deepgram/audio.js +47 -0
  1327. package/dist/media-understanding/providers/deepgram/index.js +6 -0
  1328. package/dist/media-understanding/providers/google/audio.js +64 -0
  1329. package/dist/media-understanding/providers/google/index.js +10 -0
  1330. package/dist/media-understanding/providers/google/video.js +64 -0
  1331. package/dist/media-understanding/providers/groq/index.js +10 -0
  1332. package/dist/media-understanding/providers/image.js +59 -0
  1333. package/dist/media-understanding/providers/index.js +45 -0
  1334. package/dist/media-understanding/providers/minimax/index.js +6 -0
  1335. package/dist/media-understanding/providers/openai/audio.js +46 -0
  1336. package/dist/media-understanding/providers/openai/index.js +8 -0
  1337. package/dist/media-understanding/providers/shared.js +29 -0
  1338. package/dist/media-understanding/resolve.js +113 -0
  1339. package/dist/media-understanding/runner.js +976 -0
  1340. package/dist/media-understanding/scope.js +41 -0
  1341. package/dist/media-understanding/types.js +1 -0
  1342. package/dist/media-understanding/video.js +8 -0
  1343. package/dist/memory/batch-gemini.js +320 -0
  1344. package/dist/memory/batch-openai.js +290 -0
  1345. package/dist/memory/embeddings-gemini.js +129 -0
  1346. package/dist/memory/embeddings-openai.js +65 -0
  1347. package/dist/memory/embeddings.js +170 -0
  1348. package/dist/memory/headers-fingerprint.js +16 -0
  1349. package/dist/memory/hybrid.js +61 -0
  1350. package/dist/memory/index.js +1 -0
  1351. package/dist/memory/internal.js +189 -0
  1352. package/dist/memory/manager-cache-key.js +45 -0
  1353. package/dist/memory/manager-search.js +95 -0
  1354. package/dist/memory/manager.js +1815 -0
  1355. package/dist/memory/memory-schema.js +76 -0
  1356. package/dist/memory/node-llama.js +3 -0
  1357. package/dist/memory/openai-batch.js +2 -0
  1358. package/dist/memory/provider-key.js +23 -0
  1359. package/dist/memory/search-manager.js +11 -0
  1360. package/dist/memory/session-files.js +98 -0
  1361. package/dist/memory/sqlite-vec.js +19 -0
  1362. package/dist/memory/sqlite.js +7 -0
  1363. package/dist/memory/status-format.js +23 -0
  1364. package/dist/memory/sync-memory-files.js +69 -0
  1365. package/dist/memory/sync-session-files.js +95 -0
  1366. package/dist/node-host/config.js +53 -0
  1367. package/dist/node-host/runner.js +951 -0
  1368. package/dist/pairing/pairing-labels.js +4 -0
  1369. package/dist/pairing/pairing-messages.js +14 -0
  1370. package/dist/pairing/pairing-store.js +357 -0
  1371. package/dist/plugin-sdk/index.js +84 -0
  1372. package/dist/plugins/bundled-dir.js +35 -0
  1373. package/dist/plugins/cli.js +49 -0
  1374. package/dist/plugins/commands.js +228 -0
  1375. package/dist/plugins/config-schema.js +23 -0
  1376. package/dist/plugins/config-state.js +101 -0
  1377. package/dist/plugins/discovery.js +273 -0
  1378. package/dist/plugins/enable.js +36 -0
  1379. package/dist/plugins/hook-runner-global.js +57 -0
  1380. package/dist/plugins/hooks.js +283 -0
  1381. package/dist/plugins/http-path.js +10 -0
  1382. package/dist/plugins/http-registry.js +31 -0
  1383. package/dist/plugins/install.js +323 -0
  1384. package/dist/plugins/installs.js +21 -0
  1385. package/dist/plugins/loader.js +364 -0
  1386. package/dist/plugins/manifest-registry.js +136 -0
  1387. package/dist/plugins/manifest.js +69 -0
  1388. package/dist/plugins/providers.js +16 -0
  1389. package/dist/plugins/registry.js +312 -0
  1390. package/dist/plugins/runtime/index.js +290 -0
  1391. package/dist/plugins/runtime/native-deps.js +16 -0
  1392. package/dist/plugins/runtime/types.js +1 -0
  1393. package/dist/plugins/runtime.js +42 -0
  1394. package/dist/plugins/schema-validator.js +28 -0
  1395. package/dist/plugins/services.js +55 -0
  1396. package/dist/plugins/slots.js +68 -0
  1397. package/dist/plugins/status.js +27 -0
  1398. package/dist/plugins/tools.js +98 -0
  1399. package/dist/plugins/types.js +1 -0
  1400. package/dist/plugins/update.js +324 -0
  1401. package/dist/polls.js +41 -0
  1402. package/dist/process/child-process-bridge.js +34 -0
  1403. package/dist/process/command-queue.js +104 -0
  1404. package/dist/process/exec.js +98 -0
  1405. package/dist/process/lanes.js +1 -0
  1406. package/dist/process/spawn-utils.js +95 -0
  1407. package/dist/providers/github-copilot-auth.js +124 -0
  1408. package/dist/providers/github-copilot-models.js +35 -0
  1409. package/dist/providers/github-copilot-token.js +95 -0
  1410. package/dist/providers/qwen-portal-oauth.js +38 -0
  1411. package/dist/routing/bindings.js +87 -0
  1412. package/dist/routing/resolve-route.js +140 -0
  1413. package/dist/routing/session-key.js +169 -0
  1414. package/dist/runtime.js +15 -0
  1415. package/dist/security/audit-extra.js +852 -0
  1416. package/dist/security/audit-fs.js +133 -0
  1417. package/dist/security/audit.js +790 -0
  1418. package/dist/security/external-content.js +143 -0
  1419. package/dist/security/fix.js +402 -0
  1420. package/dist/security/windows-acl.js +162 -0
  1421. package/dist/sessions/level-overrides.js +24 -0
  1422. package/dist/sessions/model-overrides.js +57 -0
  1423. package/dist/sessions/send-policy.js +69 -0
  1424. package/dist/sessions/session-key-utils.js +51 -0
  1425. package/dist/sessions/session-label.js +16 -0
  1426. package/dist/sessions/transcript-events.js +16 -0
  1427. package/dist/shared/text/reasoning-tags.js +48 -0
  1428. package/dist/signal/accounts.js +59 -0
  1429. package/dist/signal/client.js +141 -0
  1430. package/dist/signal/daemon.js +69 -0
  1431. package/dist/signal/format.js +165 -0
  1432. package/dist/signal/identity.js +95 -0
  1433. package/dist/signal/index.js +5 -0
  1434. package/dist/signal/monitor/event-handler.js +492 -0
  1435. package/dist/signal/monitor/event-handler.types.js +1 -0
  1436. package/dist/signal/monitor.js +269 -0
  1437. package/dist/signal/probe.js +46 -0
  1438. package/dist/signal/reaction-level.js +53 -0
  1439. package/dist/signal/send-reactions.js +155 -0
  1440. package/dist/signal/send.js +192 -0
  1441. package/dist/signal/sse-reconnect.js +56 -0
  1442. package/dist/slack/accounts.js +84 -0
  1443. package/dist/slack/actions.js +156 -0
  1444. package/dist/slack/channel-migration.js +53 -0
  1445. package/dist/slack/client.js +17 -0
  1446. package/dist/slack/directory-live.js +122 -0
  1447. package/dist/slack/format.js +111 -0
  1448. package/dist/slack/http/index.js +1 -0
  1449. package/dist/slack/http/registry.js +27 -0
  1450. package/dist/slack/index.js +6 -0
  1451. package/dist/slack/monitor/allow-list.js +58 -0
  1452. package/dist/slack/monitor/auth.js +17 -0
  1453. package/dist/slack/monitor/channel-config.js +79 -0
  1454. package/dist/slack/monitor/commands.js +17 -0
  1455. package/dist/slack/monitor/context.js +242 -0
  1456. package/dist/slack/monitor/events/channels.js +116 -0
  1457. package/dist/slack/monitor/events/members.js +74 -0
  1458. package/dist/slack/monitor/events/messages.js +111 -0
  1459. package/dist/slack/monitor/events/pins.js +76 -0
  1460. package/dist/slack/monitor/events/reactions.js +54 -0
  1461. package/dist/slack/monitor/events.js +15 -0
  1462. package/dist/slack/monitor/media.js +93 -0
  1463. package/dist/slack/monitor/message-handler/dispatch.js +170 -0
  1464. package/dist/slack/monitor/message-handler/prepare.js +477 -0
  1465. package/dist/slack/monitor/message-handler/types.js +1 -0
  1466. package/dist/slack/monitor/message-handler.js +87 -0
  1467. package/dist/slack/monitor/policy.js +10 -0
  1468. package/dist/slack/monitor/provider.js +324 -0
  1469. package/dist/slack/monitor/replies.js +107 -0
  1470. package/dist/slack/monitor/slash.js +504 -0
  1471. package/dist/slack/monitor/thread-resolution.js +102 -0
  1472. package/dist/slack/monitor/types.js +1 -0
  1473. package/dist/slack/monitor.js +4 -0
  1474. package/dist/slack/monitor.test-helpers.js +119 -0
  1475. package/dist/slack/probe.js +47 -0
  1476. package/dist/slack/resolve-channels.js +88 -0
  1477. package/dist/slack/resolve-users.js +133 -0
  1478. package/dist/slack/scopes.js +87 -0
  1479. package/dist/slack/send.js +132 -0
  1480. package/dist/slack/targets.js +48 -0
  1481. package/dist/slack/threading-tool-context.js +18 -0
  1482. package/dist/slack/threading.js +26 -0
  1483. package/dist/slack/token.js +10 -0
  1484. package/dist/slack/types.js +1 -0
  1485. package/dist/telegram/accounts.js +98 -0
  1486. package/dist/telegram/allowed-updates.js +8 -0
  1487. package/dist/telegram/audit.js +116 -0
  1488. package/dist/telegram/bot/delivery.js +312 -0
  1489. package/dist/telegram/bot/helpers.js +303 -0
  1490. package/dist/telegram/bot/types.js +1 -0
  1491. package/dist/telegram/bot-access.js +59 -0
  1492. package/dist/telegram/bot-handlers.js +516 -0
  1493. package/dist/telegram/bot-message-context.js +435 -0
  1494. package/dist/telegram/bot-message-dispatch.js +183 -0
  1495. package/dist/telegram/bot-message.js +41 -0
  1496. package/dist/telegram/bot-native-commands.js +402 -0
  1497. package/dist/telegram/bot-updates.js +25 -0
  1498. package/dist/telegram/bot.js +383 -0
  1499. package/dist/telegram/caption.js +11 -0
  1500. package/dist/telegram/download.js +34 -0
  1501. package/dist/telegram/draft-chunking.js +22 -0
  1502. package/dist/telegram/draft-stream.js +101 -0
  1503. package/dist/telegram/fetch.js +11 -0
  1504. package/dist/telegram/format.js +66 -0
  1505. package/dist/telegram/group-migration.js +53 -0
  1506. package/dist/telegram/index.js +4 -0
  1507. package/dist/telegram/inline-buttons.js +55 -0
  1508. package/dist/telegram/monitor.js +142 -0
  1509. package/dist/telegram/pairing-store.js +77 -0
  1510. package/dist/telegram/probe.js +70 -0
  1511. package/dist/telegram/proxy.js +10 -0
  1512. package/dist/telegram/reaction-level.js +46 -0
  1513. package/dist/telegram/send.js +382 -0
  1514. package/dist/telegram/sent-message-cache.js +53 -0
  1515. package/dist/telegram/targets.js +46 -0
  1516. package/dist/telegram/token.js +58 -0
  1517. package/dist/telegram/update-offset-store.js +60 -0
  1518. package/dist/telegram/voice.js +23 -0
  1519. package/dist/telegram/webhook-set.js +21 -0
  1520. package/dist/telegram/webhook.js +90 -0
  1521. package/dist/terminal/ansi.js +11 -0
  1522. package/dist/terminal/links.js +17 -0
  1523. package/dist/terminal/note.js +79 -0
  1524. package/dist/terminal/palette.js +12 -0
  1525. package/dist/terminal/progress-line.js +18 -0
  1526. package/dist/terminal/prompt-style.js +4 -0
  1527. package/dist/terminal/stream-writer.js +49 -0
  1528. package/dist/terminal/table.js +327 -0
  1529. package/dist/terminal/theme.js +22 -0
  1530. package/dist/tts/tts.js +1159 -0
  1531. package/dist/tui/commands.js +134 -0
  1532. package/dist/tui/components/assistant-message.js +16 -0
  1533. package/dist/tui/components/chat-log.js +86 -0
  1534. package/dist/tui/components/custom-editor.js +61 -0
  1535. package/dist/tui/components/filterable-select-list.js +102 -0
  1536. package/dist/tui/components/fuzzy-filter.js +113 -0
  1537. package/dist/tui/components/searchable-select-list.js +231 -0
  1538. package/dist/tui/components/selectors.js +16 -0
  1539. package/dist/tui/components/tool-execution.js +109 -0
  1540. package/dist/tui/components/user-message.js +17 -0
  1541. package/dist/tui/gateway-chat.js +146 -0
  1542. package/dist/tui/theme/syntax-theme.js +49 -0
  1543. package/dist/tui/theme/theme.js +119 -0
  1544. package/dist/tui/tui-command-handlers.js +418 -0
  1545. package/dist/tui/tui-event-handlers.js +160 -0
  1546. package/dist/tui/tui-formatters.js +158 -0
  1547. package/dist/tui/tui-local-shell.js +99 -0
  1548. package/dist/tui/tui-overlays.js +13 -0
  1549. package/dist/tui/tui-session-actions.js +205 -0
  1550. package/dist/tui/tui-status-summary.js +74 -0
  1551. package/dist/tui/tui-stream-assembler.js +54 -0
  1552. package/dist/tui/tui-types.js +1 -0
  1553. package/dist/tui/tui-waiting.js +34 -0
  1554. package/dist/tui/tui.js +551 -0
  1555. package/dist/utils/account-id.js +6 -0
  1556. package/dist/utils/boolean.js +22 -0
  1557. package/dist/utils/delivery-context.js +84 -0
  1558. package/dist/utils/directive-tags.js +54 -0
  1559. package/dist/utils/message-channel.js +84 -0
  1560. package/dist/utils/provider-utils.js +28 -0
  1561. package/dist/utils/queue-helpers.js +95 -0
  1562. package/dist/utils/time-format.js +19 -0
  1563. package/dist/utils/usage-format.js +46 -0
  1564. package/dist/utils.js +247 -0
  1565. package/dist/version.js +18 -0
  1566. package/dist/web/accounts.js +122 -0
  1567. package/dist/web/active-listener.js +37 -0
  1568. package/dist/web/auth-store.js +168 -0
  1569. package/dist/web/auto-reply/constants.js +1 -0
  1570. package/dist/web/auto-reply/deliver-reply.js +140 -0
  1571. package/dist/web/auto-reply/heartbeat-runner.js +264 -0
  1572. package/dist/web/auto-reply/loggers.js +5 -0
  1573. package/dist/web/auto-reply/mentions.js +79 -0
  1574. package/dist/web/auto-reply/monitor/ack-reaction.js +47 -0
  1575. package/dist/web/auto-reply/monitor/broadcast.js +64 -0
  1576. package/dist/web/auto-reply/monitor/commands.js +21 -0
  1577. package/dist/web/auto-reply/monitor/echo.js +36 -0
  1578. package/dist/web/auto-reply/monitor/group-activation.js +37 -0
  1579. package/dist/web/auto-reply/monitor/group-gating.js +98 -0
  1580. package/dist/web/auto-reply/monitor/group-members.js +53 -0
  1581. package/dist/web/auto-reply/monitor/last-route.js +38 -0
  1582. package/dist/web/auto-reply/monitor/message-line.js +35 -0
  1583. package/dist/web/auto-reply/monitor/on-message.js +128 -0
  1584. package/dist/web/auto-reply/monitor/peer.js +10 -0
  1585. package/dist/web/auto-reply/monitor/process-message.js +316 -0
  1586. package/dist/web/auto-reply/monitor.js +355 -0
  1587. package/dist/web/auto-reply/session-snapshot.js +40 -0
  1588. package/dist/web/auto-reply/types.js +1 -0
  1589. package/dist/web/auto-reply/util.js +47 -0
  1590. package/dist/web/auto-reply.impl.js +5 -0
  1591. package/dist/web/auto-reply.js +1 -0
  1592. package/dist/web/inbound/access-control.js +147 -0
  1593. package/dist/web/inbound/dedupe.js +13 -0
  1594. package/dist/web/inbound/extract.js +254 -0
  1595. package/dist/web/inbound/media.js +35 -0
  1596. package/dist/web/inbound/monitor.js +332 -0
  1597. package/dist/web/inbound/send-api.js +90 -0
  1598. package/dist/web/inbound/types.js +1 -0
  1599. package/dist/web/inbound.js +3 -0
  1600. package/dist/web/login-qr.js +227 -0
  1601. package/dist/web/login.js +68 -0
  1602. package/dist/web/media.js +221 -0
  1603. package/dist/web/outbound.js +132 -0
  1604. package/dist/web/qr-image.js +95 -0
  1605. package/dist/web/reconnect.js +36 -0
  1606. package/dist/web/session.js +224 -0
  1607. package/dist/web/vcard.js +63 -0
  1608. package/dist/whatsapp/normalize.js +66 -0
  1609. package/dist/wizard/clack-prompter.js +72 -0
  1610. package/dist/wizard/onboarding.finalize.js +351 -0
  1611. package/dist/wizard/onboarding.gateway-config.js +188 -0
  1612. package/dist/wizard/onboarding.js +372 -0
  1613. package/dist/wizard/onboarding.types.js +1 -0
  1614. package/dist/wizard/prompts.js +6 -0
  1615. package/dist/wizard/session.js +201 -0
  1616. package/docs/CNAME +1 -0
  1617. package/docs/_config.yml +53 -0
  1618. package/docs/_layouts/default.html +145 -0
  1619. package/docs/assets/markdown.css +179 -0
  1620. package/docs/assets/pixel-lobster.svg +60 -0
  1621. package/docs/assets/showcase/agents-ui.jpg +0 -0
  1622. package/docs/assets/showcase/bambu-cli.png +0 -0
  1623. package/docs/assets/showcase/codexmonitor.png +0 -0
  1624. package/docs/assets/showcase/gohome-grafana.png +0 -0
  1625. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  1626. package/docs/assets/showcase/oura-health.png +0 -0
  1627. package/docs/assets/showcase/padel-cli.svg +11 -0
  1628. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  1629. package/docs/assets/showcase/papla-tts.jpg +0 -0
  1630. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  1631. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  1632. package/docs/assets/showcase/roborock-status.svg +13 -0
  1633. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  1634. package/docs/assets/showcase/snag.png +0 -0
  1635. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  1636. package/docs/assets/showcase/wienerlinien.png +0 -0
  1637. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  1638. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  1639. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  1640. package/docs/assets/terminal.css +470 -0
  1641. package/docs/assets/theme.js +55 -0
  1642. package/docs/automation/auth-monitoring.md +41 -0
  1643. package/docs/automation/cron-jobs.md +286 -0
  1644. package/docs/automation/cron-vs-heartbeat.md +274 -0
  1645. package/docs/automation/gmail-pubsub.md +252 -0
  1646. package/docs/automation/poll.md +63 -0
  1647. package/docs/automation/webhook.md +155 -0
  1648. package/docs/bedrock.md +172 -0
  1649. package/docs/brave-search.md +40 -0
  1650. package/docs/broadcast-groups.md +407 -0
  1651. package/docs/channels/bluebubbles.md +232 -0
  1652. package/docs/channels/discord.md +400 -0
  1653. package/docs/channels/googlechat.md +220 -0
  1654. package/docs/channels/grammy.md +27 -0
  1655. package/docs/channels/imessage.md +261 -0
  1656. package/docs/channels/index.md +43 -0
  1657. package/docs/channels/line.md +183 -0
  1658. package/docs/channels/location.md +48 -0
  1659. package/docs/channels/matrix.md +230 -0
  1660. package/docs/channels/mattermost.md +123 -0
  1661. package/docs/channels/msteams.md +703 -0
  1662. package/docs/channels/nextcloud-talk.md +120 -0
  1663. package/docs/channels/nostr.md +235 -0
  1664. package/docs/channels/signal.md +179 -0
  1665. package/docs/channels/slack.md +507 -0
  1666. package/docs/channels/telegram.md +546 -0
  1667. package/docs/channels/tlon.md +133 -0
  1668. package/docs/channels/troubleshooting.md +25 -0
  1669. package/docs/channels/twitch.md +366 -0
  1670. package/docs/channels/whatsapp.md +362 -0
  1671. package/docs/channels/zalo.md +167 -0
  1672. package/docs/channels/zalouser.md +123 -0
  1673. package/docs/cli/acp.md +166 -0
  1674. package/docs/cli/agent.md +22 -0
  1675. package/docs/cli/agents.md +71 -0
  1676. package/docs/cli/approvals.md +48 -0
  1677. package/docs/cli/browser.md +106 -0
  1678. package/docs/cli/channels.md +75 -0
  1679. package/docs/cli/config.md +49 -0
  1680. package/docs/cli/configure.md +30 -0
  1681. package/docs/cli/cron.md +29 -0
  1682. package/docs/cli/dashboard.md +16 -0
  1683. package/docs/cli/devices.md +66 -0
  1684. package/docs/cli/directory.md +60 -0
  1685. package/docs/cli/dns.md +22 -0
  1686. package/docs/cli/docs.md +15 -0
  1687. package/docs/cli/doctor.md +38 -0
  1688. package/docs/cli/gateway.md +187 -0
  1689. package/docs/cli/health.md +19 -0
  1690. package/docs/cli/hooks.md +290 -0
  1691. package/docs/cli/index.md +919 -0
  1692. package/docs/cli/logs.md +23 -0
  1693. package/docs/cli/memory.md +41 -0
  1694. package/docs/cli/message.md +228 -0
  1695. package/docs/cli/models.md +68 -0
  1696. package/docs/cli/node.md +108 -0
  1697. package/docs/cli/nodes.md +68 -0
  1698. package/docs/cli/onboard.md +25 -0
  1699. package/docs/cli/pairing.md +20 -0
  1700. package/docs/cli/plugins.md +60 -0
  1701. package/docs/cli/reset.md +17 -0
  1702. package/docs/cli/sandbox.md +150 -0
  1703. package/docs/cli/security.md +24 -0
  1704. package/docs/cli/sessions.md +16 -0
  1705. package/docs/cli/setup.md +28 -0
  1706. package/docs/cli/skills.md +25 -0
  1707. package/docs/cli/status.md +24 -0
  1708. package/docs/cli/system.md +55 -0
  1709. package/docs/cli/tui.md +22 -0
  1710. package/docs/cli/uninstall.md +17 -0
  1711. package/docs/cli/update.md +96 -0
  1712. package/docs/cli/voicecall.md +33 -0
  1713. package/docs/cli/webhooks.md +23 -0
  1714. package/docs/concepts/agent-loop.md +126 -0
  1715. package/docs/concepts/agent-workspace.md +231 -0
  1716. package/docs/concepts/agent.md +117 -0
  1717. package/docs/concepts/architecture.md +122 -0
  1718. package/docs/concepts/channel-routing.md +114 -0
  1719. package/docs/concepts/compaction.md +49 -0
  1720. package/docs/concepts/context.md +151 -0
  1721. package/docs/concepts/group-messages.md +78 -0
  1722. package/docs/concepts/groups.md +308 -0
  1723. package/docs/concepts/markdown-formatting.md +132 -0
  1724. package/docs/concepts/memory.md +388 -0
  1725. package/docs/concepts/messages.md +143 -0
  1726. package/docs/concepts/model-failover.md +139 -0
  1727. package/docs/concepts/model-providers.md +318 -0
  1728. package/docs/concepts/models.md +202 -0
  1729. package/docs/concepts/multi-agent.md +354 -0
  1730. package/docs/concepts/oauth.md +135 -0
  1731. package/docs/concepts/presence.md +98 -0
  1732. package/docs/concepts/queue.md +77 -0
  1733. package/docs/concepts/retry.md +60 -0
  1734. package/docs/concepts/session-pruning.md +104 -0
  1735. package/docs/concepts/session-tool.md +171 -0
  1736. package/docs/concepts/session.md +150 -0
  1737. package/docs/concepts/sessions.md +8 -0
  1738. package/docs/concepts/streaming.md +123 -0
  1739. package/docs/concepts/system-prompt.md +110 -0
  1740. package/docs/concepts/timezone.md +89 -0
  1741. package/docs/concepts/typebox.md +281 -0
  1742. package/docs/concepts/typing-indicators.md +59 -0
  1743. package/docs/concepts/usage-tracking.md +30 -0
  1744. package/docs/date-time.md +127 -0
  1745. package/docs/debug/node-issue.md +72 -0
  1746. package/docs/debugging.md +161 -0
  1747. package/docs/diagnostics/flags.md +89 -0
  1748. package/docs/docs.json +1135 -0
  1749. package/docs/environment.md +78 -0
  1750. package/docs/experiments/onboarding-config-protocol.md +34 -0
  1751. package/docs/experiments/plans/cron-add-hardening.md +57 -0
  1752. package/docs/experiments/plans/group-policy-hardening.md +38 -0
  1753. package/docs/experiments/plans/openresponses-gateway.md +122 -0
  1754. package/docs/experiments/proposals/model-config.md +32 -0
  1755. package/docs/experiments/research/memory.md +210 -0
  1756. package/docs/gateway/authentication.md +143 -0
  1757. package/docs/gateway/background-process.md +82 -0
  1758. package/docs/gateway/bonjour.md +162 -0
  1759. package/docs/gateway/bridge-protocol.md +85 -0
  1760. package/docs/gateway/cli-backends.md +221 -0
  1761. package/docs/gateway/configuration-examples.md +572 -0
  1762. package/docs/gateway/configuration.md +3246 -0
  1763. package/docs/gateway/discovery.md +110 -0
  1764. package/docs/gateway/doctor.md +252 -0
  1765. package/docs/gateway/gateway-lock.md +28 -0
  1766. package/docs/gateway/health.md +29 -0
  1767. package/docs/gateway/heartbeat.md +297 -0
  1768. package/docs/gateway/index.md +292 -0
  1769. package/docs/gateway/local-models.md +146 -0
  1770. package/docs/gateway/logging.md +112 -0
  1771. package/docs/gateway/multiple-gateways.md +107 -0
  1772. package/docs/gateway/openai-http-api.md +112 -0
  1773. package/docs/gateway/openresponses-http-api.md +298 -0
  1774. package/docs/gateway/pairing.md +92 -0
  1775. package/docs/gateway/protocol.md +215 -0
  1776. package/docs/gateway/remote-gateway-readme.md +153 -0
  1777. package/docs/gateway/remote.md +122 -0
  1778. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +117 -0
  1779. package/docs/gateway/sandboxing.md +174 -0
  1780. package/docs/gateway/security.md +741 -0
  1781. package/docs/gateway/tailscale.md +146 -0
  1782. package/docs/gateway/tools-invoke-http-api.md +79 -0
  1783. package/docs/gateway/troubleshooting.md +714 -0
  1784. package/docs/help/faq.md +2725 -0
  1785. package/docs/help/index.md +20 -0
  1786. package/docs/help/troubleshooting.md +97 -0
  1787. package/docs/hooks/soul-evil.md +68 -0
  1788. package/docs/hooks.md +896 -0
  1789. package/docs/images/groups-flow.svg +52 -0
  1790. package/docs/images/mobile-ui-screenshot.png +0 -0
  1791. package/docs/index.md +240 -0
  1792. package/docs/install/ansible.md +205 -0
  1793. package/docs/install/bun.md +58 -0
  1794. package/docs/install/development-channels.md +74 -0
  1795. package/docs/install/docker.md +447 -0
  1796. package/docs/install/index.md +180 -0
  1797. package/docs/install/installer.md +122 -0
  1798. package/docs/install/nix.md +95 -0
  1799. package/docs/install/node.md +77 -0
  1800. package/docs/install/uninstall.md +125 -0
  1801. package/docs/install/updating.md +218 -0
  1802. package/docs/logging.md +343 -0
  1803. package/docs/multi-agent-sandbox-tools.md +374 -0
  1804. package/docs/network.md +51 -0
  1805. package/docs/nodes/audio.md +109 -0
  1806. package/docs/nodes/camera.md +152 -0
  1807. package/docs/nodes/images.md +61 -0
  1808. package/docs/nodes/index.md +305 -0
  1809. package/docs/nodes/location-command.md +95 -0
  1810. package/docs/nodes/media-understanding.md +313 -0
  1811. package/docs/nodes/talk.md +79 -0
  1812. package/docs/nodes/voicewake.md +61 -0
  1813. package/docs/perplexity.md +79 -0
  1814. package/docs/platforms/android.md +141 -0
  1815. package/docs/platforms/digitalocean.md +243 -0
  1816. package/docs/platforms/exe-dev.md +187 -0
  1817. package/docs/platforms/fly.md +465 -0
  1818. package/docs/platforms/gcp.md +498 -0
  1819. package/docs/platforms/hetzner.md +325 -0
  1820. package/docs/platforms/index.md +50 -0
  1821. package/docs/platforms/ios.md +104 -0
  1822. package/docs/platforms/linux.md +89 -0
  1823. package/docs/platforms/mac/bundled-gateway.md +67 -0
  1824. package/docs/platforms/mac/canvas.md +121 -0
  1825. package/docs/platforms/mac/child-process.md +67 -0
  1826. package/docs/platforms/mac/dev-setup.md +91 -0
  1827. package/docs/platforms/mac/health.md +28 -0
  1828. package/docs/platforms/mac/icon.md +26 -0
  1829. package/docs/platforms/mac/logging.md +51 -0
  1830. package/docs/platforms/mac/menu-bar.md +70 -0
  1831. package/docs/platforms/mac/peekaboo.md +62 -0
  1832. package/docs/platforms/mac/permissions.md +40 -0
  1833. package/docs/platforms/mac/release.md +77 -0
  1834. package/docs/platforms/mac/remote.md +71 -0
  1835. package/docs/platforms/mac/signing.md +43 -0
  1836. package/docs/platforms/mac/skills.md +27 -0
  1837. package/docs/platforms/mac/voice-overlay.md +52 -0
  1838. package/docs/platforms/mac/voicewake.md +56 -0
  1839. package/docs/platforms/mac/webchat.md +39 -0
  1840. package/docs/platforms/mac/xpc.md +51 -0
  1841. package/docs/platforms/macos-vm.md +275 -0
  1842. package/docs/platforms/macos.md +195 -0
  1843. package/docs/platforms/oracle.md +291 -0
  1844. package/docs/platforms/raspberry-pi.md +354 -0
  1845. package/docs/platforms/windows.md +153 -0
  1846. package/docs/plugin.md +638 -0
  1847. package/docs/plugins/agent-tools.md +96 -0
  1848. package/docs/plugins/manifest.md +67 -0
  1849. package/docs/plugins/voice-call.md +238 -0
  1850. package/docs/plugins/zalouser.md +75 -0
  1851. package/docs/prose.md +131 -0
  1852. package/docs/providers/anthropic.md +126 -0
  1853. package/docs/providers/claude-max-api-proxy.md +145 -0
  1854. package/docs/providers/deepgram.md +89 -0
  1855. package/docs/providers/github-copilot.md +70 -0
  1856. package/docs/providers/glm.md +31 -0
  1857. package/docs/providers/index.md +59 -0
  1858. package/docs/providers/minimax.md +183 -0
  1859. package/docs/providers/models.md +48 -0
  1860. package/docs/providers/moonshot.md +151 -0
  1861. package/docs/providers/ollama.md +219 -0
  1862. package/docs/providers/openai.md +60 -0
  1863. package/docs/providers/opencode.md +34 -0
  1864. package/docs/providers/openrouter.md +35 -0
  1865. package/docs/providers/qwen.md +51 -0
  1866. package/docs/providers/synthetic.md +97 -0
  1867. package/docs/providers/venice.md +264 -0
  1868. package/docs/providers/vercel-ai-gateway.md +50 -0
  1869. package/docs/providers/zai.md +34 -0
  1870. package/docs/railway.mdx +96 -0
  1871. package/docs/refactor/clawnet.md +360 -0
  1872. package/docs/refactor/exec-host.md +265 -0
  1873. package/docs/refactor/outbound-session-mirroring.md +75 -0
  1874. package/docs/refactor/plugin-sdk.md +187 -0
  1875. package/docs/refactor/strict-config.md +81 -0
  1876. package/docs/reference/AGENTS.default.md +113 -0
  1877. package/docs/reference/RELEASING.md +107 -0
  1878. package/docs/reference/api-usage-costs.md +116 -0
  1879. package/docs/reference/device-models.md +46 -0
  1880. package/docs/reference/rpc.md +35 -0
  1881. package/docs/reference/session-management-compaction.md +273 -0
  1882. package/docs/reference/templates/AGENTS.dev.md +78 -0
  1883. package/docs/reference/templates/AGENTS.md +196 -0
  1884. package/docs/reference/templates/BOOT.md +9 -0
  1885. package/docs/reference/templates/BOOTSTRAP.md +55 -0
  1886. package/docs/reference/templates/HEARTBEAT.md +9 -0
  1887. package/docs/reference/templates/IDENTITY.dev.md +40 -0
  1888. package/docs/reference/templates/IDENTITY.md +27 -0
  1889. package/docs/reference/templates/SOUL.dev.md +74 -0
  1890. package/docs/reference/templates/SOUL.md +41 -0
  1891. package/docs/reference/templates/TOOLS.dev.md +21 -0
  1892. package/docs/reference/templates/TOOLS.md +41 -0
  1893. package/docs/reference/templates/USER.dev.md +17 -0
  1894. package/docs/reference/templates/USER.md +22 -0
  1895. package/docs/reference/test.md +46 -0
  1896. package/docs/reference/transcript-hygiene.md +95 -0
  1897. package/docs/render.mdx +158 -0
  1898. package/docs/scripts.md +31 -0
  1899. package/docs/start/clawd.md +235 -0
  1900. package/docs/start/getting-started.md +203 -0
  1901. package/docs/start/hubs.md +182 -0
  1902. package/docs/start/lore.md +133 -0
  1903. package/docs/start/onboarding.md +103 -0
  1904. package/docs/start/pairing.md +83 -0
  1905. package/docs/start/setup.md +143 -0
  1906. package/docs/start/showcase.md +416 -0
  1907. package/docs/start/wizard.md +318 -0
  1908. package/docs/testing.md +349 -0
  1909. package/docs/token-use.md +110 -0
  1910. package/docs/tools/agent-send.md +51 -0
  1911. package/docs/tools/apply-patch.md +49 -0
  1912. package/docs/tools/browser-linux-troubleshooting.md +129 -0
  1913. package/docs/tools/browser-login.md +67 -0
  1914. package/docs/tools/browser.md +642 -0
  1915. package/docs/tools/chrome-extension.md +185 -0
  1916. package/docs/tools/clawdhub.md +201 -0
  1917. package/docs/tools/creating-skills.md +41 -0
  1918. package/docs/tools/elevated.md +48 -0
  1919. package/docs/tools/exec-approvals.md +223 -0
  1920. package/docs/tools/exec.md +156 -0
  1921. package/docs/tools/firecrawl.md +58 -0
  1922. package/docs/tools/index.md +447 -0
  1923. package/docs/tools/llm-task.md +114 -0
  1924. package/docs/tools/lobster.md +326 -0
  1925. package/docs/tools/reactions.md +20 -0
  1926. package/docs/tools/skills-config.md +75 -0
  1927. package/docs/tools/skills.md +267 -0
  1928. package/docs/tools/slash-commands.md +188 -0
  1929. package/docs/tools/subagents.md +137 -0
  1930. package/docs/tools/thinking.md +62 -0
  1931. package/docs/tools/web.md +257 -0
  1932. package/docs/tts.md +389 -0
  1933. package/docs/tui.md +134 -0
  1934. package/docs/vps.md +39 -0
  1935. package/docs/web/control-ui.md +163 -0
  1936. package/docs/web/dashboard.md +42 -0
  1937. package/docs/web/index.md +110 -0
  1938. package/docs/web/webchat.md +41 -0
  1939. package/docs/whatsapp-clawd.jpg +0 -0
  1940. package/extensions/bluebubbles/clawdbot.plugin.json +11 -0
  1941. package/extensions/bluebubbles/index.ts +20 -0
  1942. package/extensions/bluebubbles/package.json +33 -0
  1943. package/extensions/bluebubbles/src/accounts.ts +80 -0
  1944. package/extensions/bluebubbles/src/actions.test.ts +651 -0
  1945. package/extensions/bluebubbles/src/actions.ts +403 -0
  1946. package/extensions/bluebubbles/src/attachments.test.ts +346 -0
  1947. package/extensions/bluebubbles/src/attachments.ts +282 -0
  1948. package/extensions/bluebubbles/src/channel.ts +399 -0
  1949. package/extensions/bluebubbles/src/chat.test.ts +462 -0
  1950. package/extensions/bluebubbles/src/chat.ts +354 -0
  1951. package/extensions/bluebubbles/src/config-schema.ts +51 -0
  1952. package/extensions/bluebubbles/src/media-send.ts +168 -0
  1953. package/extensions/bluebubbles/src/monitor.test.ts +2140 -0
  1954. package/extensions/bluebubbles/src/monitor.ts +2101 -0
  1955. package/extensions/bluebubbles/src/onboarding.ts +340 -0
  1956. package/extensions/bluebubbles/src/probe.ts +127 -0
  1957. package/extensions/bluebubbles/src/reactions.test.ts +393 -0
  1958. package/extensions/bluebubbles/src/reactions.ts +183 -0
  1959. package/extensions/bluebubbles/src/runtime.ts +14 -0
  1960. package/extensions/bluebubbles/src/send.test.ts +809 -0
  1961. package/extensions/bluebubbles/src/send.ts +418 -0
  1962. package/extensions/bluebubbles/src/targets.test.ts +184 -0
  1963. package/extensions/bluebubbles/src/targets.ts +323 -0
  1964. package/extensions/bluebubbles/src/types.ts +127 -0
  1965. package/extensions/copilot-proxy/README.md +24 -0
  1966. package/extensions/copilot-proxy/clawdbot.plugin.json +11 -0
  1967. package/extensions/copilot-proxy/index.ts +142 -0
  1968. package/extensions/copilot-proxy/package.json +11 -0
  1969. package/extensions/diagnostics-otel/clawdbot.plugin.json +8 -0
  1970. package/extensions/diagnostics-otel/index.ts +16 -0
  1971. package/extensions/diagnostics-otel/package.json +24 -0
  1972. package/extensions/diagnostics-otel/src/service.test.ts +220 -0
  1973. package/extensions/diagnostics-otel/src/service.ts +566 -0
  1974. package/extensions/discord/clawdbot.plugin.json +11 -0
  1975. package/extensions/discord/index.ts +18 -0
  1976. package/extensions/discord/package.json +11 -0
  1977. package/extensions/discord/src/channel.ts +422 -0
  1978. package/extensions/discord/src/runtime.ts +14 -0
  1979. package/extensions/google-antigravity-auth/README.md +24 -0
  1980. package/extensions/google-antigravity-auth/clawdbot.plugin.json +11 -0
  1981. package/extensions/google-antigravity-auth/index.ts +437 -0
  1982. package/extensions/google-antigravity-auth/package.json +11 -0
  1983. package/extensions/google-gemini-cli-auth/README.md +35 -0
  1984. package/extensions/google-gemini-cli-auth/clawdbot.plugin.json +11 -0
  1985. package/extensions/google-gemini-cli-auth/index.ts +91 -0
  1986. package/extensions/google-gemini-cli-auth/oauth.test.ts +228 -0
  1987. package/extensions/google-gemini-cli-auth/oauth.ts +580 -0
  1988. package/extensions/google-gemini-cli-auth/package.json +11 -0
  1989. package/extensions/googlechat/clawdbot.plugin.json +11 -0
  1990. package/extensions/googlechat/index.ts +20 -0
  1991. package/extensions/googlechat/package.json +39 -0
  1992. package/extensions/googlechat/src/accounts.ts +133 -0
  1993. package/extensions/googlechat/src/actions.ts +162 -0
  1994. package/extensions/googlechat/src/api.test.ts +62 -0
  1995. package/extensions/googlechat/src/api.ts +259 -0
  1996. package/extensions/googlechat/src/auth.ts +113 -0
  1997. package/extensions/googlechat/src/channel.ts +580 -0
  1998. package/extensions/googlechat/src/monitor.test.ts +27 -0
  1999. package/extensions/googlechat/src/monitor.ts +900 -0
  2000. package/extensions/googlechat/src/onboarding.ts +278 -0
  2001. package/extensions/googlechat/src/runtime.ts +14 -0
  2002. package/extensions/googlechat/src/targets.test.ts +35 -0
  2003. package/extensions/googlechat/src/targets.ts +55 -0
  2004. package/extensions/googlechat/src/types.config.ts +3 -0
  2005. package/extensions/googlechat/src/types.ts +73 -0
  2006. package/extensions/imessage/clawdbot.plugin.json +11 -0
  2007. package/extensions/imessage/index.ts +18 -0
  2008. package/extensions/imessage/package.json +11 -0
  2009. package/extensions/imessage/src/channel.ts +294 -0
  2010. package/extensions/imessage/src/runtime.ts +14 -0
  2011. package/extensions/line/clawdbot.plugin.json +11 -0
  2012. package/extensions/line/index.ts +20 -0
  2013. package/extensions/line/package.json +29 -0
  2014. package/extensions/line/src/card-command.ts +338 -0
  2015. package/extensions/line/src/channel.logout.test.ts +96 -0
  2016. package/extensions/line/src/channel.sendPayload.test.ts +308 -0
  2017. package/extensions/line/src/channel.ts +773 -0
  2018. package/extensions/line/src/runtime.ts +14 -0
  2019. package/extensions/llm-task/README.md +97 -0
  2020. package/extensions/llm-task/clawdbot.plugin.json +21 -0
  2021. package/extensions/llm-task/index.ts +7 -0
  2022. package/extensions/llm-task/package.json +11 -0
  2023. package/extensions/llm-task/src/llm-task-tool.test.ts +117 -0
  2024. package/extensions/llm-task/src/llm-task-tool.ts +218 -0
  2025. package/extensions/lobster/README.md +80 -0
  2026. package/extensions/lobster/SKILL.md +90 -0
  2027. package/extensions/lobster/clawdbot.plugin.json +10 -0
  2028. package/extensions/lobster/index.ts +13 -0
  2029. package/extensions/lobster/package.json +11 -0
  2030. package/extensions/lobster/src/lobster-tool.test.ts +123 -0
  2031. package/extensions/lobster/src/lobster-tool.ts +222 -0
  2032. package/extensions/matrix/CHANGELOG.md +54 -0
  2033. package/extensions/matrix/clawdbot.plugin.json +11 -0
  2034. package/extensions/matrix/index.ts +18 -0
  2035. package/extensions/matrix/package.json +36 -0
  2036. package/extensions/matrix/src/actions.ts +185 -0
  2037. package/extensions/matrix/src/channel.directory.test.ts +56 -0
  2038. package/extensions/matrix/src/channel.ts +417 -0
  2039. package/extensions/matrix/src/config-schema.ts +62 -0
  2040. package/extensions/matrix/src/directory-live.ts +175 -0
  2041. package/extensions/matrix/src/group-mentions.ts +61 -0
  2042. package/extensions/matrix/src/matrix/accounts.test.ts +83 -0
  2043. package/extensions/matrix/src/matrix/accounts.ts +63 -0
  2044. package/extensions/matrix/src/matrix/actions/client.ts +53 -0
  2045. package/extensions/matrix/src/matrix/actions/messages.ts +120 -0
  2046. package/extensions/matrix/src/matrix/actions/pins.ts +70 -0
  2047. package/extensions/matrix/src/matrix/actions/reactions.ts +84 -0
  2048. package/extensions/matrix/src/matrix/actions/room.ts +88 -0
  2049. package/extensions/matrix/src/matrix/actions/summary.ts +77 -0
  2050. package/extensions/matrix/src/matrix/actions/types.ts +84 -0
  2051. package/extensions/matrix/src/matrix/actions.ts +15 -0
  2052. package/extensions/matrix/src/matrix/active-client.ts +11 -0
  2053. package/extensions/matrix/src/matrix/client/config.ts +165 -0
  2054. package/extensions/matrix/src/matrix/client/create-client.ts +127 -0
  2055. package/extensions/matrix/src/matrix/client/logging.ts +35 -0
  2056. package/extensions/matrix/src/matrix/client/runtime.ts +4 -0
  2057. package/extensions/matrix/src/matrix/client/shared.ts +169 -0
  2058. package/extensions/matrix/src/matrix/client/storage.ts +131 -0
  2059. package/extensions/matrix/src/matrix/client/types.ts +34 -0
  2060. package/extensions/matrix/src/matrix/client.test.ts +57 -0
  2061. package/extensions/matrix/src/matrix/client.ts +9 -0
  2062. package/extensions/matrix/src/matrix/credentials.ts +103 -0
  2063. package/extensions/matrix/src/matrix/deps.ts +57 -0
  2064. package/extensions/matrix/src/matrix/format.test.ts +34 -0
  2065. package/extensions/matrix/src/matrix/format.ts +22 -0
  2066. package/extensions/matrix/src/matrix/index.ts +11 -0
  2067. package/extensions/matrix/src/matrix/monitor/allowlist.ts +58 -0
  2068. package/extensions/matrix/src/matrix/monitor/auto-join.ts +68 -0
  2069. package/extensions/matrix/src/matrix/monitor/direct.ts +105 -0
  2070. package/extensions/matrix/src/matrix/monitor/events.ts +103 -0
  2071. package/extensions/matrix/src/matrix/monitor/handler.ts +645 -0
  2072. package/extensions/matrix/src/matrix/monitor/index.ts +279 -0
  2073. package/extensions/matrix/src/matrix/monitor/location.ts +83 -0
  2074. package/extensions/matrix/src/matrix/monitor/media.test.ts +103 -0
  2075. package/extensions/matrix/src/matrix/monitor/media.ts +113 -0
  2076. package/extensions/matrix/src/matrix/monitor/mentions.ts +31 -0
  2077. package/extensions/matrix/src/matrix/monitor/replies.ts +96 -0
  2078. package/extensions/matrix/src/matrix/monitor/room-info.ts +58 -0
  2079. package/extensions/matrix/src/matrix/monitor/rooms.ts +43 -0
  2080. package/extensions/matrix/src/matrix/monitor/threads.ts +64 -0
  2081. package/extensions/matrix/src/matrix/monitor/types.ts +39 -0
  2082. package/extensions/matrix/src/matrix/poll-types.test.ts +22 -0
  2083. package/extensions/matrix/src/matrix/poll-types.ts +157 -0
  2084. package/extensions/matrix/src/matrix/probe.ts +70 -0
  2085. package/extensions/matrix/src/matrix/send/client.ts +63 -0
  2086. package/extensions/matrix/src/matrix/send/formatting.ts +92 -0
  2087. package/extensions/matrix/src/matrix/send/media.ts +220 -0
  2088. package/extensions/matrix/src/matrix/send/targets.test.ts +102 -0
  2089. package/extensions/matrix/src/matrix/send/targets.ts +144 -0
  2090. package/extensions/matrix/src/matrix/send/types.ts +109 -0
  2091. package/extensions/matrix/src/matrix/send.test.ts +172 -0
  2092. package/extensions/matrix/src/matrix/send.ts +255 -0
  2093. package/extensions/matrix/src/onboarding.ts +432 -0
  2094. package/extensions/matrix/src/outbound.ts +53 -0
  2095. package/extensions/matrix/src/resolve-targets.ts +89 -0
  2096. package/extensions/matrix/src/runtime.ts +14 -0
  2097. package/extensions/matrix/src/tool-actions.ts +160 -0
  2098. package/extensions/matrix/src/types.ts +95 -0
  2099. package/extensions/mattermost/clawdbot.plugin.json +11 -0
  2100. package/extensions/mattermost/index.ts +18 -0
  2101. package/extensions/mattermost/package.json +25 -0
  2102. package/extensions/mattermost/src/channel.test.ts +43 -0
  2103. package/extensions/mattermost/src/channel.ts +339 -0
  2104. package/extensions/mattermost/src/config-schema.ts +56 -0
  2105. package/extensions/mattermost/src/group-mentions.ts +14 -0
  2106. package/extensions/mattermost/src/mattermost/accounts.ts +115 -0
  2107. package/extensions/mattermost/src/mattermost/client.ts +208 -0
  2108. package/extensions/mattermost/src/mattermost/index.ts +9 -0
  2109. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +150 -0
  2110. package/extensions/mattermost/src/mattermost/monitor.ts +921 -0
  2111. package/extensions/mattermost/src/mattermost/probe.ts +70 -0
  2112. package/extensions/mattermost/src/mattermost/send.ts +217 -0
  2113. package/extensions/mattermost/src/normalize.ts +38 -0
  2114. package/extensions/mattermost/src/onboarding-helpers.ts +42 -0
  2115. package/extensions/mattermost/src/onboarding.ts +187 -0
  2116. package/extensions/mattermost/src/runtime.ts +14 -0
  2117. package/extensions/mattermost/src/types.ts +50 -0
  2118. package/extensions/memory-core/clawdbot.plugin.json +9 -0
  2119. package/extensions/memory-core/index.ts +36 -0
  2120. package/extensions/memory-core/package.json +14 -0
  2121. package/extensions/memory-lancedb/clawdbot.plugin.json +67 -0
  2122. package/extensions/memory-lancedb/config.ts +114 -0
  2123. package/extensions/memory-lancedb/index.test.ts +284 -0
  2124. package/extensions/memory-lancedb/index.ts +590 -0
  2125. package/extensions/memory-lancedb/package.json +16 -0
  2126. package/extensions/msteams/CHANGELOG.md +51 -0
  2127. package/extensions/msteams/clawdbot.plugin.json +11 -0
  2128. package/extensions/msteams/index.ts +18 -0
  2129. package/extensions/msteams/package.json +36 -0
  2130. package/extensions/msteams/src/attachments/download.ts +206 -0
  2131. package/extensions/msteams/src/attachments/graph.ts +319 -0
  2132. package/extensions/msteams/src/attachments/html.ts +76 -0
  2133. package/extensions/msteams/src/attachments/payload.ts +22 -0
  2134. package/extensions/msteams/src/attachments/shared.ts +235 -0
  2135. package/extensions/msteams/src/attachments/types.ts +37 -0
  2136. package/extensions/msteams/src/attachments.test.ts +424 -0
  2137. package/extensions/msteams/src/attachments.ts +18 -0
  2138. package/extensions/msteams/src/channel.directory.test.ts +46 -0
  2139. package/extensions/msteams/src/channel.ts +436 -0
  2140. package/extensions/msteams/src/conversation-store-fs.test.ts +88 -0
  2141. package/extensions/msteams/src/conversation-store-fs.ts +155 -0
  2142. package/extensions/msteams/src/conversation-store-memory.ts +45 -0
  2143. package/extensions/msteams/src/conversation-store.ts +41 -0
  2144. package/extensions/msteams/src/directory-live.ts +179 -0
  2145. package/extensions/msteams/src/errors.test.ts +46 -0
  2146. package/extensions/msteams/src/errors.ts +158 -0
  2147. package/extensions/msteams/src/file-consent-helpers.test.ts +234 -0
  2148. package/extensions/msteams/src/file-consent-helpers.ts +73 -0
  2149. package/extensions/msteams/src/file-consent.ts +122 -0
  2150. package/extensions/msteams/src/graph-chat.ts +52 -0
  2151. package/extensions/msteams/src/graph-upload.ts +445 -0
  2152. package/extensions/msteams/src/inbound.test.ts +67 -0
  2153. package/extensions/msteams/src/inbound.ts +38 -0
  2154. package/extensions/msteams/src/index.ts +4 -0
  2155. package/extensions/msteams/src/media-helpers.test.ts +186 -0
  2156. package/extensions/msteams/src/media-helpers.ts +77 -0
  2157. package/extensions/msteams/src/messenger.test.ts +245 -0
  2158. package/extensions/msteams/src/messenger.ts +460 -0
  2159. package/extensions/msteams/src/monitor-handler/inbound-media.ts +123 -0
  2160. package/extensions/msteams/src/monitor-handler/message-handler.ts +629 -0
  2161. package/extensions/msteams/src/monitor-handler.ts +166 -0
  2162. package/extensions/msteams/src/monitor-types.ts +5 -0
  2163. package/extensions/msteams/src/monitor.ts +290 -0
  2164. package/extensions/msteams/src/onboarding.ts +432 -0
  2165. package/extensions/msteams/src/outbound.ts +47 -0
  2166. package/extensions/msteams/src/pending-uploads.ts +87 -0
  2167. package/extensions/msteams/src/policy.test.ts +210 -0
  2168. package/extensions/msteams/src/policy.ts +202 -0
  2169. package/extensions/msteams/src/polls-store-memory.ts +30 -0
  2170. package/extensions/msteams/src/polls-store.test.ts +40 -0
  2171. package/extensions/msteams/src/polls.test.ts +72 -0
  2172. package/extensions/msteams/src/polls.ts +299 -0
  2173. package/extensions/msteams/src/probe.test.ts +57 -0
  2174. package/extensions/msteams/src/probe.ts +99 -0
  2175. package/extensions/msteams/src/reply-dispatcher.ts +128 -0
  2176. package/extensions/msteams/src/resolve-allowlist.ts +277 -0
  2177. package/extensions/msteams/src/runtime.ts +14 -0
  2178. package/extensions/msteams/src/sdk-types.ts +19 -0
  2179. package/extensions/msteams/src/sdk.ts +33 -0
  2180. package/extensions/msteams/src/send-context.ts +156 -0
  2181. package/extensions/msteams/src/send.ts +489 -0
  2182. package/extensions/msteams/src/sent-message-cache.test.ts +16 -0
  2183. package/extensions/msteams/src/sent-message-cache.ts +41 -0
  2184. package/extensions/msteams/src/storage.ts +22 -0
  2185. package/extensions/msteams/src/store-fs.ts +80 -0
  2186. package/extensions/msteams/src/token.ts +19 -0
  2187. package/extensions/nextcloud-talk/clawdbot.plugin.json +11 -0
  2188. package/extensions/nextcloud-talk/index.ts +18 -0
  2189. package/extensions/nextcloud-talk/package.json +30 -0
  2190. package/extensions/nextcloud-talk/src/accounts.ts +154 -0
  2191. package/extensions/nextcloud-talk/src/channel.ts +404 -0
  2192. package/extensions/nextcloud-talk/src/config-schema.ts +78 -0
  2193. package/extensions/nextcloud-talk/src/format.ts +79 -0
  2194. package/extensions/nextcloud-talk/src/inbound.ts +336 -0
  2195. package/extensions/nextcloud-talk/src/monitor.ts +246 -0
  2196. package/extensions/nextcloud-talk/src/normalize.ts +31 -0
  2197. package/extensions/nextcloud-talk/src/onboarding.ts +341 -0
  2198. package/extensions/nextcloud-talk/src/policy.ts +175 -0
  2199. package/extensions/nextcloud-talk/src/room-info.ts +111 -0
  2200. package/extensions/nextcloud-talk/src/runtime.ts +14 -0
  2201. package/extensions/nextcloud-talk/src/send.ts +206 -0
  2202. package/extensions/nextcloud-talk/src/signature.ts +67 -0
  2203. package/extensions/nextcloud-talk/src/types.ts +179 -0
  2204. package/extensions/nostr/CHANGELOG.md +46 -0
  2205. package/extensions/nostr/README.md +136 -0
  2206. package/extensions/nostr/clawdbot.plugin.json +11 -0
  2207. package/extensions/nostr/index.ts +69 -0
  2208. package/extensions/nostr/package.json +31 -0
  2209. package/extensions/nostr/src/channel.test.ts +141 -0
  2210. package/extensions/nostr/src/channel.ts +342 -0
  2211. package/extensions/nostr/src/config-schema.ts +90 -0
  2212. package/extensions/nostr/src/metrics.ts +464 -0
  2213. package/extensions/nostr/src/nostr-bus.fuzz.test.ts +544 -0
  2214. package/extensions/nostr/src/nostr-bus.integration.test.ts +452 -0
  2215. package/extensions/nostr/src/nostr-bus.test.ts +199 -0
  2216. package/extensions/nostr/src/nostr-bus.ts +741 -0
  2217. package/extensions/nostr/src/nostr-profile-http.test.ts +378 -0
  2218. package/extensions/nostr/src/nostr-profile-http.ts +500 -0
  2219. package/extensions/nostr/src/nostr-profile-import.test.ts +120 -0
  2220. package/extensions/nostr/src/nostr-profile-import.ts +259 -0
  2221. package/extensions/nostr/src/nostr-profile.fuzz.test.ts +479 -0
  2222. package/extensions/nostr/src/nostr-profile.test.ts +410 -0
  2223. package/extensions/nostr/src/nostr-profile.ts +242 -0
  2224. package/extensions/nostr/src/nostr-state-store.test.ts +128 -0
  2225. package/extensions/nostr/src/nostr-state-store.ts +226 -0
  2226. package/extensions/nostr/src/runtime.ts +14 -0
  2227. package/extensions/nostr/src/seen-tracker.ts +271 -0
  2228. package/extensions/nostr/src/types.test.ts +161 -0
  2229. package/extensions/nostr/src/types.ts +99 -0
  2230. package/extensions/nostr/test/setup.ts +5 -0
  2231. package/extensions/open-prose/README.md +25 -0
  2232. package/extensions/open-prose/clawdbot.plugin.json +11 -0
  2233. package/extensions/open-prose/index.ts +5 -0
  2234. package/extensions/open-prose/package.json +11 -0
  2235. package/extensions/open-prose/skills/prose/LICENSE +21 -0
  2236. package/extensions/open-prose/skills/prose/SKILL.md +318 -0
  2237. package/extensions/open-prose/skills/prose/alt-borges.md +141 -0
  2238. package/extensions/open-prose/skills/prose/alts/arabian-nights.md +358 -0
  2239. package/extensions/open-prose/skills/prose/alts/borges.md +360 -0
  2240. package/extensions/open-prose/skills/prose/alts/folk.md +322 -0
  2241. package/extensions/open-prose/skills/prose/alts/homer.md +346 -0
  2242. package/extensions/open-prose/skills/prose/alts/kafka.md +373 -0
  2243. package/extensions/open-prose/skills/prose/compiler.md +2967 -0
  2244. package/extensions/open-prose/skills/prose/examples/01-hello-world.prose +4 -0
  2245. package/extensions/open-prose/skills/prose/examples/02-research-and-summarize.prose +6 -0
  2246. package/extensions/open-prose/skills/prose/examples/03-code-review.prose +17 -0
  2247. package/extensions/open-prose/skills/prose/examples/04-write-and-refine.prose +14 -0
  2248. package/extensions/open-prose/skills/prose/examples/05-debug-issue.prose +20 -0
  2249. package/extensions/open-prose/skills/prose/examples/06-explain-codebase.prose +17 -0
  2250. package/extensions/open-prose/skills/prose/examples/07-refactor.prose +20 -0
  2251. package/extensions/open-prose/skills/prose/examples/08-blog-post.prose +20 -0
  2252. package/extensions/open-prose/skills/prose/examples/09-research-with-agents.prose +25 -0
  2253. package/extensions/open-prose/skills/prose/examples/10-code-review-agents.prose +32 -0
  2254. package/extensions/open-prose/skills/prose/examples/11-skills-and-imports.prose +27 -0
  2255. package/extensions/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +43 -0
  2256. package/extensions/open-prose/skills/prose/examples/13-variables-and-context.prose +51 -0
  2257. package/extensions/open-prose/skills/prose/examples/14-composition-blocks.prose +48 -0
  2258. package/extensions/open-prose/skills/prose/examples/15-inline-sequences.prose +23 -0
  2259. package/extensions/open-prose/skills/prose/examples/16-parallel-reviews.prose +19 -0
  2260. package/extensions/open-prose/skills/prose/examples/17-parallel-research.prose +19 -0
  2261. package/extensions/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +36 -0
  2262. package/extensions/open-prose/skills/prose/examples/19-advanced-parallel.prose +71 -0
  2263. package/extensions/open-prose/skills/prose/examples/20-fixed-loops.prose +20 -0
  2264. package/extensions/open-prose/skills/prose/examples/21-pipeline-operations.prose +35 -0
  2265. package/extensions/open-prose/skills/prose/examples/22-error-handling.prose +51 -0
  2266. package/extensions/open-prose/skills/prose/examples/23-retry-with-backoff.prose +63 -0
  2267. package/extensions/open-prose/skills/prose/examples/24-choice-blocks.prose +86 -0
  2268. package/extensions/open-prose/skills/prose/examples/25-conditionals.prose +114 -0
  2269. package/extensions/open-prose/skills/prose/examples/26-parameterized-blocks.prose +100 -0
  2270. package/extensions/open-prose/skills/prose/examples/27-string-interpolation.prose +105 -0
  2271. package/extensions/open-prose/skills/prose/examples/28-automated-pr-review.prose +37 -0
  2272. package/extensions/open-prose/skills/prose/examples/28-gas-town.prose +1572 -0
  2273. package/extensions/open-prose/skills/prose/examples/29-captains-chair.prose +218 -0
  2274. package/extensions/open-prose/skills/prose/examples/30-captains-chair-simple.prose +42 -0
  2275. package/extensions/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +145 -0
  2276. package/extensions/open-prose/skills/prose/examples/33-pr-review-autofix.prose +168 -0
  2277. package/extensions/open-prose/skills/prose/examples/34-content-pipeline.prose +204 -0
  2278. package/extensions/open-prose/skills/prose/examples/35-feature-factory.prose +296 -0
  2279. package/extensions/open-prose/skills/prose/examples/36-bug-hunter.prose +237 -0
  2280. package/extensions/open-prose/skills/prose/examples/37-the-forge.prose +1474 -0
  2281. package/extensions/open-prose/skills/prose/examples/38-skill-scan.prose +455 -0
  2282. package/extensions/open-prose/skills/prose/examples/39-architect-by-simulation.prose +277 -0
  2283. package/extensions/open-prose/skills/prose/examples/40-rlm-self-refine.prose +32 -0
  2284. package/extensions/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +38 -0
  2285. package/extensions/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +46 -0
  2286. package/extensions/open-prose/skills/prose/examples/43-rlm-pairwise.prose +50 -0
  2287. package/extensions/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +261 -0
  2288. package/extensions/open-prose/skills/prose/examples/45-plugin-release.prose +159 -0
  2289. package/extensions/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +637 -0
  2290. package/extensions/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +148 -0
  2291. package/extensions/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +225 -0
  2292. package/extensions/open-prose/skills/prose/examples/47-language-self-improvement.prose +356 -0
  2293. package/extensions/open-prose/skills/prose/examples/48-habit-miner.prose +445 -0
  2294. package/extensions/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +210 -0
  2295. package/extensions/open-prose/skills/prose/examples/README.md +391 -0
  2296. package/extensions/open-prose/skills/prose/examples/roadmap/README.md +22 -0
  2297. package/extensions/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +20 -0
  2298. package/extensions/open-prose/skills/prose/examples/roadmap/parallel-review.prose +18 -0
  2299. package/extensions/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +17 -0
  2300. package/extensions/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +223 -0
  2301. package/extensions/open-prose/skills/prose/guidance/antipatterns.md +951 -0
  2302. package/extensions/open-prose/skills/prose/guidance/patterns.md +700 -0
  2303. package/extensions/open-prose/skills/prose/guidance/system-prompt.md +180 -0
  2304. package/extensions/open-prose/skills/prose/help.md +143 -0
  2305. package/extensions/open-prose/skills/prose/lib/README.md +105 -0
  2306. package/extensions/open-prose/skills/prose/lib/calibrator.prose +215 -0
  2307. package/extensions/open-prose/skills/prose/lib/cost-analyzer.prose +174 -0
  2308. package/extensions/open-prose/skills/prose/lib/error-forensics.prose +250 -0
  2309. package/extensions/open-prose/skills/prose/lib/inspector.prose +196 -0
  2310. package/extensions/open-prose/skills/prose/lib/profiler.prose +460 -0
  2311. package/extensions/open-prose/skills/prose/lib/program-improver.prose +275 -0
  2312. package/extensions/open-prose/skills/prose/lib/project-memory.prose +118 -0
  2313. package/extensions/open-prose/skills/prose/lib/user-memory.prose +93 -0
  2314. package/extensions/open-prose/skills/prose/lib/vm-improver.prose +243 -0
  2315. package/extensions/open-prose/skills/prose/primitives/session.md +587 -0
  2316. package/extensions/open-prose/skills/prose/prose.md +1235 -0
  2317. package/extensions/open-prose/skills/prose/state/filesystem.md +478 -0
  2318. package/extensions/open-prose/skills/prose/state/in-context.md +380 -0
  2319. package/extensions/open-prose/skills/prose/state/postgres.md +875 -0
  2320. package/extensions/open-prose/skills/prose/state/sqlite.md +572 -0
  2321. package/extensions/qwen-portal-auth/README.md +24 -0
  2322. package/extensions/qwen-portal-auth/clawdbot.plugin.json +11 -0
  2323. package/extensions/qwen-portal-auth/index.ts +127 -0
  2324. package/extensions/qwen-portal-auth/oauth.ts +190 -0
  2325. package/extensions/signal/clawdbot.plugin.json +11 -0
  2326. package/extensions/signal/index.ts +18 -0
  2327. package/extensions/signal/package.json +11 -0
  2328. package/extensions/signal/src/channel.ts +312 -0
  2329. package/extensions/signal/src/runtime.ts +14 -0
  2330. package/extensions/slack/clawdbot.plugin.json +11 -0
  2331. package/extensions/slack/index.ts +18 -0
  2332. package/extensions/slack/package.json +11 -0
  2333. package/extensions/slack/src/channel.ts +577 -0
  2334. package/extensions/slack/src/runtime.ts +14 -0
  2335. package/extensions/telegram/clawdbot.plugin.json +11 -0
  2336. package/extensions/telegram/index.ts +18 -0
  2337. package/extensions/telegram/package.json +11 -0
  2338. package/extensions/telegram/src/channel.ts +478 -0
  2339. package/extensions/telegram/src/runtime.ts +14 -0
  2340. package/extensions/tlon/README.md +5 -0
  2341. package/extensions/tlon/clawdbot.plugin.json +11 -0
  2342. package/extensions/tlon/index.ts +18 -0
  2343. package/extensions/tlon/package.json +30 -0
  2344. package/extensions/tlon/src/channel.ts +379 -0
  2345. package/extensions/tlon/src/config-schema.test.ts +32 -0
  2346. package/extensions/tlon/src/config-schema.ts +43 -0
  2347. package/extensions/tlon/src/monitor/discovery.ts +71 -0
  2348. package/extensions/tlon/src/monitor/history.ts +87 -0
  2349. package/extensions/tlon/src/monitor/index.ts +501 -0
  2350. package/extensions/tlon/src/monitor/processed-messages.test.ts +24 -0
  2351. package/extensions/tlon/src/monitor/processed-messages.ts +38 -0
  2352. package/extensions/tlon/src/monitor/utils.ts +83 -0
  2353. package/extensions/tlon/src/onboarding.ts +213 -0
  2354. package/extensions/tlon/src/runtime.ts +14 -0
  2355. package/extensions/tlon/src/targets.ts +79 -0
  2356. package/extensions/tlon/src/types.ts +85 -0
  2357. package/extensions/tlon/src/urbit/auth.ts +18 -0
  2358. package/extensions/tlon/src/urbit/http-api.ts +36 -0
  2359. package/extensions/tlon/src/urbit/send.test.ts +38 -0
  2360. package/extensions/tlon/src/urbit/send.ts +127 -0
  2361. package/extensions/tlon/src/urbit/sse-client.test.ts +41 -0
  2362. package/extensions/tlon/src/urbit/sse-client.ts +367 -0
  2363. package/extensions/twitch/CHANGELOG.md +21 -0
  2364. package/extensions/twitch/README.md +89 -0
  2365. package/extensions/twitch/clawdbot.plugin.json +9 -0
  2366. package/extensions/twitch/index.ts +20 -0
  2367. package/extensions/twitch/package.json +20 -0
  2368. package/extensions/twitch/src/access-control.test.ts +489 -0
  2369. package/extensions/twitch/src/access-control.ts +154 -0
  2370. package/extensions/twitch/src/actions.ts +173 -0
  2371. package/extensions/twitch/src/client-manager-registry.ts +115 -0
  2372. package/extensions/twitch/src/config-schema.ts +82 -0
  2373. package/extensions/twitch/src/config.test.ts +88 -0
  2374. package/extensions/twitch/src/config.ts +116 -0
  2375. package/extensions/twitch/src/monitor.ts +257 -0
  2376. package/extensions/twitch/src/onboarding.test.ts +311 -0
  2377. package/extensions/twitch/src/onboarding.ts +411 -0
  2378. package/extensions/twitch/src/outbound.test.ts +373 -0
  2379. package/extensions/twitch/src/outbound.ts +186 -0
  2380. package/extensions/twitch/src/plugin.test.ts +39 -0
  2381. package/extensions/twitch/src/plugin.ts +274 -0
  2382. package/extensions/twitch/src/probe.test.ts +198 -0
  2383. package/extensions/twitch/src/probe.ts +118 -0
  2384. package/extensions/twitch/src/resolver.ts +137 -0
  2385. package/extensions/twitch/src/runtime.ts +14 -0
  2386. package/extensions/twitch/src/send.test.ts +289 -0
  2387. package/extensions/twitch/src/send.ts +136 -0
  2388. package/extensions/twitch/src/status.test.ts +270 -0
  2389. package/extensions/twitch/src/status.ts +176 -0
  2390. package/extensions/twitch/src/token.test.ts +171 -0
  2391. package/extensions/twitch/src/token.ts +87 -0
  2392. package/extensions/twitch/src/twitch-client.test.ts +574 -0
  2393. package/extensions/twitch/src/twitch-client.ts +277 -0
  2394. package/extensions/twitch/src/types.ts +141 -0
  2395. package/extensions/twitch/src/utils/markdown.ts +92 -0
  2396. package/extensions/twitch/src/utils/twitch.ts +78 -0
  2397. package/extensions/twitch/test/setup.ts +7 -0
  2398. package/extensions/voice-call/CHANGELOG.md +72 -0
  2399. package/extensions/voice-call/README.md +134 -0
  2400. package/extensions/voice-call/clawdbot.plugin.json +601 -0
  2401. package/extensions/voice-call/index.ts +497 -0
  2402. package/extensions/voice-call/package.json +16 -0
  2403. package/extensions/voice-call/src/cli.ts +300 -0
  2404. package/extensions/voice-call/src/config.test.ts +204 -0
  2405. package/extensions/voice-call/src/config.ts +493 -0
  2406. package/extensions/voice-call/src/core-bridge.ts +196 -0
  2407. package/extensions/voice-call/src/manager/context.ts +21 -0
  2408. package/extensions/voice-call/src/manager/events.ts +177 -0
  2409. package/extensions/voice-call/src/manager/lookup.ts +33 -0
  2410. package/extensions/voice-call/src/manager/outbound.ts +248 -0
  2411. package/extensions/voice-call/src/manager/state.ts +50 -0
  2412. package/extensions/voice-call/src/manager/store.ts +88 -0
  2413. package/extensions/voice-call/src/manager/timers.ts +86 -0
  2414. package/extensions/voice-call/src/manager/twiml.ts +9 -0
  2415. package/extensions/voice-call/src/manager.test.ts +108 -0
  2416. package/extensions/voice-call/src/manager.ts +876 -0
  2417. package/extensions/voice-call/src/media-stream.test.ts +97 -0
  2418. package/extensions/voice-call/src/media-stream.ts +393 -0
  2419. package/extensions/voice-call/src/providers/base.ts +67 -0
  2420. package/extensions/voice-call/src/providers/index.ts +10 -0
  2421. package/extensions/voice-call/src/providers/mock.ts +168 -0
  2422. package/extensions/voice-call/src/providers/plivo.test.ts +28 -0
  2423. package/extensions/voice-call/src/providers/plivo.ts +504 -0
  2424. package/extensions/voice-call/src/providers/stt-openai-realtime.ts +311 -0
  2425. package/extensions/voice-call/src/providers/telnyx.ts +364 -0
  2426. package/extensions/voice-call/src/providers/tts-openai.ts +264 -0
  2427. package/extensions/voice-call/src/providers/twilio/api.ts +45 -0
  2428. package/extensions/voice-call/src/providers/twilio/webhook.ts +29 -0
  2429. package/extensions/voice-call/src/providers/twilio.test.ts +64 -0
  2430. package/extensions/voice-call/src/providers/twilio.ts +595 -0
  2431. package/extensions/voice-call/src/response-generator.ts +171 -0
  2432. package/extensions/voice-call/src/runtime.ts +205 -0
  2433. package/extensions/voice-call/src/telephony-audio.ts +88 -0
  2434. package/extensions/voice-call/src/telephony-tts.ts +95 -0
  2435. package/extensions/voice-call/src/tunnel.ts +331 -0
  2436. package/extensions/voice-call/src/types.ts +272 -0
  2437. package/extensions/voice-call/src/utils.ts +12 -0
  2438. package/extensions/voice-call/src/voice-mapping.ts +65 -0
  2439. package/extensions/voice-call/src/webhook-security.test.ts +233 -0
  2440. package/extensions/voice-call/src/webhook-security.ts +446 -0
  2441. package/extensions/voice-call/src/webhook.ts +490 -0
  2442. package/extensions/whatsapp/clawdbot.plugin.json +11 -0
  2443. package/extensions/whatsapp/index.ts +18 -0
  2444. package/extensions/whatsapp/package.json +11 -0
  2445. package/extensions/whatsapp/src/channel.ts +500 -0
  2446. package/extensions/whatsapp/src/runtime.ts +14 -0
  2447. package/extensions/zalo/CHANGELOG.md +55 -0
  2448. package/extensions/zalo/README.md +50 -0
  2449. package/extensions/zalo/clawdbot.plugin.json +11 -0
  2450. package/extensions/zalo/index.ts +20 -0
  2451. package/extensions/zalo/package.json +33 -0
  2452. package/extensions/zalo/src/accounts.ts +71 -0
  2453. package/extensions/zalo/src/actions.ts +62 -0
  2454. package/extensions/zalo/src/api.ts +206 -0
  2455. package/extensions/zalo/src/channel.directory.test.ts +35 -0
  2456. package/extensions/zalo/src/channel.ts +394 -0
  2457. package/extensions/zalo/src/config-schema.ts +24 -0
  2458. package/extensions/zalo/src/monitor.ts +760 -0
  2459. package/extensions/zalo/src/monitor.webhook.test.ts +70 -0
  2460. package/extensions/zalo/src/onboarding.ts +405 -0
  2461. package/extensions/zalo/src/probe.ts +46 -0
  2462. package/extensions/zalo/src/proxy.ts +18 -0
  2463. package/extensions/zalo/src/runtime.ts +14 -0
  2464. package/extensions/zalo/src/send.ts +117 -0
  2465. package/extensions/zalo/src/status-issues.ts +50 -0
  2466. package/extensions/zalo/src/token.ts +55 -0
  2467. package/extensions/zalo/src/types.ts +42 -0
  2468. package/extensions/zalouser/CHANGELOG.md +33 -0
  2469. package/extensions/zalouser/README.md +221 -0
  2470. package/extensions/zalouser/clawdbot.plugin.json +11 -0
  2471. package/extensions/zalouser/index.ts +32 -0
  2472. package/extensions/zalouser/package.json +33 -0
  2473. package/extensions/zalouser/src/accounts.ts +117 -0
  2474. package/extensions/zalouser/src/channel.test.ts +17 -0
  2475. package/extensions/zalouser/src/channel.ts +641 -0
  2476. package/extensions/zalouser/src/config-schema.ts +27 -0
  2477. package/extensions/zalouser/src/monitor.ts +574 -0
  2478. package/extensions/zalouser/src/onboarding.ts +488 -0
  2479. package/extensions/zalouser/src/probe.ts +28 -0
  2480. package/extensions/zalouser/src/runtime.ts +14 -0
  2481. package/extensions/zalouser/src/send.ts +150 -0
  2482. package/extensions/zalouser/src/status-issues.test.ts +58 -0
  2483. package/extensions/zalouser/src/status-issues.ts +81 -0
  2484. package/extensions/zalouser/src/tool.ts +156 -0
  2485. package/extensions/zalouser/src/types.ts +102 -0
  2486. package/extensions/zalouser/src/zca.ts +208 -0
  2487. package/git-hooks/pre-commit +4 -0
  2488. package/package.json +280 -0
  2489. package/patches/.gitkeep +0 -0
  2490. package/scripts/format-staged.js +148 -0
  2491. package/scripts/postinstall.js +300 -0
  2492. package/scripts/setup-git-hooks.js +96 -0
  2493. package/skills/1password/SKILL.md +53 -0
  2494. package/skills/1password/references/cli-examples.md +29 -0
  2495. package/skills/1password/references/get-started.md +17 -0
  2496. package/skills/apple-notes/SKILL.md +50 -0
  2497. package/skills/apple-reminders/SKILL.md +67 -0
  2498. package/skills/bear-notes/SKILL.md +79 -0
  2499. package/skills/bird/SKILL.md +197 -0
  2500. package/skills/blogwatcher/SKILL.md +46 -0
  2501. package/skills/blucli/SKILL.md +27 -0
  2502. package/skills/bluebubbles/SKILL.md +39 -0
  2503. package/skills/camsnap/SKILL.md +25 -0
  2504. package/skills/canvas/SKILL.md +189 -0
  2505. package/skills/clawdhub/SKILL.md +53 -0
  2506. package/skills/coding-agent/SKILL.md +278 -0
  2507. package/skills/content-writer/SKILL.md +260 -0
  2508. package/skills/discord/SKILL.md +475 -0
  2509. package/skills/eightctl/SKILL.md +29 -0
  2510. package/skills/food-order/SKILL.md +41 -0
  2511. package/skills/ga4/SKILL.md +297 -0
  2512. package/skills/gemini/SKILL.md +23 -0
  2513. package/skills/gifgrep/SKILL.md +47 -0
  2514. package/skills/github/SKILL.md +48 -0
  2515. package/skills/gog/SKILL.md +92 -0
  2516. package/skills/goplaces/SKILL.md +30 -0
  2517. package/skills/himalaya/SKILL.md +217 -0
  2518. package/skills/himalaya/references/configuration.md +174 -0
  2519. package/skills/himalaya/references/message-composition.md +182 -0
  2520. package/skills/imsg/SKILL.md +25 -0
  2521. package/skills/local-places/SERVER_README.md +101 -0
  2522. package/skills/local-places/SKILL.md +91 -0
  2523. package/skills/local-places/pyproject.toml +27 -0
  2524. package/skills/local-places/src/local_places/__init__.py +2 -0
  2525. package/skills/local-places/src/local_places/google_places.py +314 -0
  2526. package/skills/local-places/src/local_places/main.py +65 -0
  2527. package/skills/local-places/src/local_places/schemas.py +107 -0
  2528. package/skills/marketing-reporter/SKILL.md +221 -0
  2529. package/skills/mcporter/SKILL.md +38 -0
  2530. package/skills/model-usage/SKILL.md +45 -0
  2531. package/skills/model-usage/references/codexbar-cli.md +28 -0
  2532. package/skills/model-usage/scripts/model_usage.py +310 -0
  2533. package/skills/nano-banana-pro/SKILL.md +30 -0
  2534. package/skills/nano-banana-pro/scripts/generate_image.py +169 -0
  2535. package/skills/nano-pdf/SKILL.md +20 -0
  2536. package/skills/notion/SKILL.md +156 -0
  2537. package/skills/obsidian/SKILL.md +55 -0
  2538. package/skills/openai-image-gen/SKILL.md +71 -0
  2539. package/skills/openai-image-gen/scripts/gen.py +240 -0
  2540. package/skills/openai-whisper/SKILL.md +19 -0
  2541. package/skills/openai-whisper-api/SKILL.md +43 -0
  2542. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  2543. package/skills/openhue/SKILL.md +30 -0
  2544. package/skills/oracle/SKILL.md +105 -0
  2545. package/skills/ordercli/SKILL.md +47 -0
  2546. package/skills/peekaboo/SKILL.md +153 -0
  2547. package/skills/sag/SKILL.md +62 -0
  2548. package/skills/search-console/SKILL.md +288 -0
  2549. package/skills/session-logs/SKILL.md +105 -0
  2550. package/skills/sherpa-onnx-tts/SKILL.md +49 -0
  2551. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  2552. package/skills/skill-creator/SKILL.md +371 -0
  2553. package/skills/skill-creator/license.txt +202 -0
  2554. package/skills/skill-creator/scripts/init_skill.py +378 -0
  2555. package/skills/skill-creator/scripts/package_skill.py +111 -0
  2556. package/skills/skill-creator/scripts/quick_validate.py +101 -0
  2557. package/skills/slack/SKILL.md +144 -0
  2558. package/skills/social-posting/SKILL.md +311 -0
  2559. package/skills/songsee/SKILL.md +29 -0
  2560. package/skills/sonoscli/SKILL.md +26 -0
  2561. package/skills/spotify-player/SKILL.md +34 -0
  2562. package/skills/summarize/SKILL.md +67 -0
  2563. package/skills/things-mac/SKILL.md +61 -0
  2564. package/skills/tmux/SKILL.md +121 -0
  2565. package/skills/tmux/scripts/find-sessions.sh +112 -0
  2566. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  2567. package/skills/trello/SKILL.md +84 -0
  2568. package/skills/video-frames/SKILL.md +29 -0
  2569. package/skills/video-frames/scripts/frame.sh +81 -0
  2570. package/skills/voice-call/SKILL.md +35 -0
  2571. package/skills/wacli/SKILL.md +42 -0
  2572. package/skills/weather/SKILL.md +49 -0
@@ -0,0 +1,1572 @@
1
+ # Gas Town: Multi-Agent Orchestration System
2
+ #
3
+ # A "Kubernetes for agents" - an industrialized coding factory
4
+ # with 7 worker roles coordinating through persistent state.
5
+ #
6
+ # Based on Steve Yegge's Gas Town architecture (2025-2026).
7
+ #
8
+ # =============================================================================
9
+ # THE MEOW STACK: Molecular Expression of Work
10
+ # =============================================================================
11
+ #
12
+ # Gas Town is built on the MEOW stack - a discovery about how to express
13
+ # and compose knowledge work for AI agents:
14
+ #
15
+ # 1. BEADS - Atomic work units (issues) stored in Git-backed JSON
16
+ # - ID, description, status, assignee, dependencies
17
+ # - Two tiers: Rig beads (project work) and Town beads (orchestration)
18
+ #
19
+ # 2. EPICS - Beads with children, for top-down planning
20
+ # - Children are parallel by default
21
+ # - Explicit dependencies force sequencing
22
+ #
23
+ # 3. MOLECULES - Workflows encoded as chains of beads
24
+ # - Arbitrary shapes with loops and gates
25
+ # - Turing-complete when combined with AI evaluation
26
+ # - Each step has acceptance criteria
27
+ #
28
+ # 4. PROTOMOLECULES - Templates/classes for molecules
29
+ # - Define workflow shapes in advance
30
+ # - Instantiate with variable substitution
31
+ # - E.g., 20-step release process as a template
32
+ #
33
+ # 5. FORMULAS - Source form for workflows (TOML)
34
+ # - "Cooked" into protomolecules
35
+ # - Support loops, gates, composition
36
+ # - Marketplace: "Mol Mall"
37
+ #
38
+ # 6. WISPS - Ephemeral beads (vapor phase)
39
+ # - In database but NOT written to Git
40
+ # - Used for patrol orchestration
41
+ # - Burned (destroyed) after completion
42
+ # - Optionally squashed to single-line digest
43
+ #
44
+ # =============================================================================
45
+ # KEY CONCEPTS
46
+ # =============================================================================
47
+ #
48
+ # GUPP: Gas Town Universal Propulsion Principle
49
+ # "If there is work on your hook, YOU MUST RUN IT"
50
+ # Physics over politeness. No waiting for permission.
51
+ #
52
+ # NDI: Nondeterministic Idempotence
53
+ # - Agent is persistent (Bead in Git)
54
+ # - Hook is persistent (Bead in Git)
55
+ # - Molecule is persistent (chain of Beads in Git)
56
+ # - Path is nondeterministic but outcome is guaranteed
57
+ # - Crashes don't matter - new session picks up where left off
58
+ #
59
+ # CONVOYS: Work-order units tracking delivery
60
+ # - Wraps beads into trackable delivery units
61
+ # - Multiple swarms can "attack" a convoy
62
+ # - Lands when all beads complete and MRs merge
63
+ #
64
+ # PATROLS: Ephemeral workflows run in loops by patrol agents
65
+ # - Use wisps (not persisted to Git)
66
+ # - Exponential backoff when idle
67
+ # - Deacon → Witness → Polecats/Refinery
68
+ #
69
+ # =============================================================================
70
+ # PERSISTENT STATE (in .prose/gas-town/)
71
+ # =============================================================================
72
+ #
73
+ # Town-level (orchestration):
74
+ # town-beads.jsonl - Town-level beads
75
+ # patrol-state.json - Deacon/Witness/Refinery patrol state
76
+ # activity-feed.jsonl - Live activity stream
77
+ # plugins/town/ - Town-level plugins
78
+ #
79
+ # Per-rig (project work):
80
+ # rigs/{name}/
81
+ # rig-beads.jsonl - Rig-level beads
82
+ # hooks/ - Worker hooks (GUPP)
83
+ # mail/ - Worker inboxes
84
+ # polecats/ - Polecat state
85
+ # merge-queue.json - Pending MRs
86
+ # plugins/ - Rig-level plugins
87
+ #
88
+ # Shared:
89
+ # convoys/ - Active work orders
90
+ # archive/ - Completed convoys
91
+ # workers/ - Worker identity beads (persistent)
92
+ # formulas/ - Workflow templates
93
+ # wisps/ - Ephemeral orchestration (not in Git)
94
+ #
95
+ # This example assumes persistent file-based state is enabled.
96
+
97
+ # =============================================================================
98
+ # AGENT DEFINITIONS: The 7 Worker Roles
99
+ # =============================================================================
100
+
101
+ # The Mayor: Your concierge and chief-of-staff
102
+ # Main agent you interact with, kicks off most work convoys
103
+ agent mayor:
104
+ model: sonnet # Orchestration role - sonnet excels here
105
+ persist: project # Survives across runs - your long-term concierge
106
+ prompt: """
107
+ You are the Mayor of Gas Town, the user's concierge and chief-of-staff.
108
+
109
+ Your responsibilities:
110
+ - Receive requests from the Overseer (user) and translate them into work
111
+ - File beads (issues) and sling work to appropriate workers
112
+ - Track convoy status and notify when work lands
113
+ - Manage the big picture while polecats handle details
114
+ - Help keep Gas Town running smoothly
115
+
116
+ Key commands you use:
117
+ - gt sling <bead> <worker> - Send work to a worker's hook
118
+ - gt convoy create <name> - Start tracking a unit of work
119
+ - gt mail send <worker> <message> - Send messages to workers
120
+ - gt handoff - Gracefully restart your session
121
+
122
+ Remember GUPP: If there is work on your hook, YOU MUST RUN IT.
123
+ Physics over politeness. Check your hook on startup.
124
+ """
125
+
126
+ # Polecats: Ephemeral workers that swarm on work
127
+ # Spin up on demand, produce Merge Requests, then decommission
128
+ agent polecat:
129
+ model: sonnet
130
+ prompt: """
131
+ You are a Polecat - an ephemeral worker in Gas Town.
132
+
133
+ Your lifecycle:
134
+ 1. Spin up when work is slung to you
135
+ 2. Execute the molecule (workflow) on your hook
136
+ 3. Produce a Merge Request when code changes are ready
137
+ 4. Hand off to the Merge Queue
138
+ 5. Decommission (your name gets recycled)
139
+
140
+ Work style:
141
+ - Focus on ONE task at a time from your hook
142
+ - Follow the molecule step by step
143
+ - Create clean, atomic commits
144
+ - Submit MRs to the Refinery's merge queue
145
+ - Report status updates to the Witness
146
+
147
+ GUPP: If there is work on your hook, YOU MUST RUN IT.
148
+ No waiting for permission. Check hook, do work, submit MR.
149
+ """
150
+
151
+ # Refinery: The Merge Queue processor
152
+ # Intelligently merges all changes one at a time to main
153
+ agent refinery:
154
+ model: sonnet # Orchestration role - merge queue is control flow
155
+ persist: true # Execution-scoped - maintains MQ state within run
156
+ prompt: """
157
+ You are the Refinery - Gas Town's merge queue processor.
158
+
159
+ Your patrol loop:
160
+ 1. Preflight: Clean workspace, fetch latest
161
+ 2. Process: Merge one MR at a time, intelligently
162
+ 3. Handle conflicts: Reimagine changes against new head if needed
163
+ 4. Run quality gates: Tests, lint, type checks
164
+ 5. Postflight: Update convoy status, notify completion
165
+
166
+ Merge strategy:
167
+ - Process MRs in priority order (convoys can set priority)
168
+ - No work can be lost (escalate if truly unmergeable)
169
+ - Rebase against latest main before each merge
170
+ - Run full CI validation before completing merge
171
+
172
+ GUPP applies to your patrol: If MQ has items, PROCESS THEM.
173
+ """
174
+
175
+ # Witness: Watches over polecats and helps them get unstuck
176
+ # A patrol agent that monitors swarm health
177
+ agent witness:
178
+ model: sonnet
179
+ persist: true # Execution-scoped - tracks polecat health within run
180
+ prompt: """
181
+ You are the Witness - Gas Town's swarm health monitor.
182
+
183
+ Your patrol loop:
184
+ 1. Check polecat wellbeing - are they stuck? crashed?
185
+ 2. Nudge stuck polecats to continue their molecules
186
+ 3. Monitor refinery progress - is the MQ flowing?
187
+ 4. Peek at the Deacon - make sure it's not stuck
188
+ 5. Run rig-level plugins
189
+ 6. Recycle long-running polecats before context exhaustion
190
+
191
+ Intervention strategy:
192
+ - gt nudge <polecat> - Wake up a stuck worker
193
+ - gt seance <polecat> - Talk to predecessor if state lost
194
+ - Escalate to Mayor if systemic issues
195
+ - Keep convoys moving toward landing
196
+
197
+ GUPP: Your patrol IS your hook. Keep running it.
198
+ """
199
+
200
+ # Deacon: The daemon beacon - propagates heartbeat through the system
201
+ # Named for Dennis Hopper's Waterworld character
202
+ agent deacon:
203
+ model: sonnet
204
+ persist: true # Execution-scoped - maintains patrol state within run
205
+ prompt: """
206
+ You are the Deacon - Gas Town's daemon beacon.
207
+
208
+ Your patrol loop (pinged every ~2 minutes by the daemon):
209
+ 1. Check town health - all systems nominal?
210
+ 2. Propagate DYFJ (Do Your F***ing Job) signal downward
211
+ 3. Nudge witnesses to check on their rigs
212
+ 4. Run town-level plugins
213
+ 5. Manage worker recycling and cleanup
214
+ 6. Delegate complex investigations to Dogs
215
+
216
+ Signal propagation:
217
+ - Deacon -> Witnesses -> Polecats/Refinery
218
+ - Exponential backoff when idle (save resources)
219
+ - Any mutating command wakes the town
220
+
221
+ Hand off complex work to Dogs - don't get bogged down.
222
+ GUPP: The daemon will ping you. Run your patrol.
223
+ """
224
+
225
+ # Dogs: The Deacon's personal crew (inspired by MI5's "Dogs")
226
+ # Handle maintenance and handyman work for the Deacon
227
+ agent dog:
228
+ model: sonnet
229
+ prompt: """
230
+ You are a Dog - one of the Deacon's personal crew.
231
+
232
+ Your responsibilities:
233
+ - Maintenance tasks (clean stale branches, prune old convoys)
234
+ - Plugin execution on behalf of the Deacon
235
+ - Investigation and troubleshooting
236
+ - Long-running tasks that would block the Deacon's patrol
237
+
238
+ Work style:
239
+ - Receive work from Deacon via mail or hook
240
+ - Execute thoroughly without time pressure
241
+ - Report findings back to Deacon
242
+ - Go back to sleep when done
243
+
244
+ Special dog Boot: Awakened every 5 minutes just to check on Deacon.
245
+ Decides if Deacon needs a heartbeat, nudge, restart, or to be left alone.
246
+
247
+ GUPP: If work is on your hook, do it. Then sleep.
248
+ """
249
+
250
+ # Crew: Per-rig coding agents that work for the Overseer
251
+ # Long-lived identities, great for design work with back-and-forth
252
+ agent crew:
253
+ model: opus # Hard/difficult work - design requires deep reasoning
254
+ persist: project # Survives across runs - maintains design context
255
+ prompt: """
256
+ You are a Crew member - a named, long-lived coding agent.
257
+
258
+ Unlike polecats (ephemeral), you have a persistent identity.
259
+ You work directly for the Overseer (the human).
260
+
261
+ Your work style:
262
+ - Handle design work, architecture discussions
263
+ - Iterative development with feedback loops
264
+ - Can sling work to polecats for implementation
265
+ - Maintain context across many sessions via handoff
266
+
267
+ You can:
268
+ - gt sling <bead> polecat - Delegate implementation
269
+ - gt convoy create - Start tracking work
270
+ - gt mail mayor "status update" - Keep mayor informed
271
+ - gt handoff - Gracefully continue in new session
272
+
273
+ GUPP applies but you often wait for Overseer input.
274
+ """
275
+
276
+ # =============================================================================
277
+ # BLOCK DEFINITIONS: Reusable Gas Town Workflows
278
+ # =============================================================================
279
+
280
+ # GUPP Check: The core propulsion check every worker runs
281
+ block gupp_check(worker_name):
282
+ session "Check if {worker_name} has work hooked"
283
+ prompt: """
284
+ Read .prose/gas-town/hooks/{worker_name}.json
285
+ If hook has a molecule, return the first uncompleted step.
286
+ If hook is empty, return "NO_WORK".
287
+ """
288
+
289
+ # Patrol Step: Execute a single patrol step
290
+ block patrol_step(patrol_name, step_number, step_description):
291
+ session "{patrol_name} patrol step {step_number}: {step_description}"
292
+ session "Update patrol state with step {step_number} completion"
293
+ prompt: """
294
+ Update .prose/gas-town/patrol-state.json:
295
+ - Set {patrol_name}.current_step = {step_number}
296
+ - Set {patrol_name}.last_completed = now()
297
+ - If all steps done, set {patrol_name}.patrol_complete = true
298
+ """
299
+
300
+ # Sling Work: Send work to a worker's hook
301
+ block sling_work(bead_id, target_worker):
302
+ session "Sling bead {bead_id} to {target_worker}"
303
+ prompt: """
304
+ 1. Read .prose/gas-town/beads/{bead_id}.json
305
+ 2. Add to .prose/gas-town/hooks/{target_worker}.json
306
+ 3. Send nudge message to {target_worker}
307
+ 4. Return confirmation
308
+ """
309
+
310
+ # Create Convoy: Start tracking a unit of work
311
+ block create_convoy(convoy_name, initial_beads):
312
+ session "Create convoy: {convoy_name}"
313
+ prompt: """
314
+ 1. Generate convoy ID (timestamp + random)
315
+ 2. Create .prose/gas-town/convoys/{convoy_id}.json with:
316
+ - name: {convoy_name}
317
+ - status: "active"
318
+ - beads: {initial_beads}
319
+ - created: now()
320
+ 3. Return convoy ID
321
+ """
322
+
323
+ # Land Convoy: Mark a convoy as complete
324
+ block land_convoy(convoy_id):
325
+ session "Land convoy {convoy_id}"
326
+ prompt: """
327
+ 1. Update .prose/gas-town/convoys/{convoy_id}.json:
328
+ - status: "landed"
329
+ - landed_at: now()
330
+ 2. Notify Mayor that convoy has landed
331
+ 3. Archive convoy to .prose/gas-town/convoys/archive/
332
+ """
333
+
334
+ # Handoff: Gracefully transition to new session
335
+ # Note: For persistent agents (persist: true/project), use `resume:` instead
336
+ # of this block - it handles memory loading automatically.
337
+ block handoff(worker_name, continuation_notes):
338
+ session "{worker_name} preparing handoff"
339
+ prompt: """
340
+ 1. Write continuation state to hook:
341
+ .prose/gas-town/hooks/{worker_name}.json
342
+ Include: {continuation_notes}
343
+ 2. Send mail to self with handoff summary
344
+ 3. Signal ready for session restart
345
+ """
346
+ session "Execute gt handoff to restart session"
347
+
348
+ # =============================================================================
349
+ # GT COMMANDS: Core Gas Town Operations
350
+ # =============================================================================
351
+
352
+ # gt nudge: Wake up a worker that may be stuck
353
+ # Workers sometimes don't follow GUPP automatically - nudge kicks them
354
+ block gt_nudge(worker_name):
355
+ session "Nudge {worker_name} to check hook and continue"
356
+ prompt: """
357
+ Send wake-up signal to {worker_name}:
358
+ 1. Send tmux notification to worker's pane
359
+ 2. Message content: "GUPP check - if work on hook, run it"
360
+ 3. Log nudge to activity feed
361
+ 4. Return confirmation
362
+
363
+ The nudge bypasses Claude Code's politeness - worker will
364
+ check hook regardless of what you type.
365
+ """
366
+
367
+ # gt seance: Talk to a worker's predecessor (dead ancestor)
368
+ # Uses Claude Code's /resume to communicate with previous sessions
369
+ block gt_seance(worker_name, question):
370
+ session "Seance: {worker_name} talking to predecessor"
371
+ prompt: """
372
+ Talk to {worker_name}'s previous session:
373
+ 1. Find last session ID from .prose/gas-town/workers/{worker_name}.json
374
+ 2. Use /resume to reconnect to that session
375
+ 3. Ask: "{question}"
376
+ 4. Capture the response
377
+ 5. Return findings to current session
378
+
379
+ This is useful when:
380
+ - State was lost during handoff
381
+ - Predecessor said "I left X for you" but you can't find it
382
+ - Need context from previous work
383
+ """
384
+
385
+ # gt mail send: Send message to a worker's inbox
386
+ block gt_mail_send(from_worker, to_worker, message):
387
+ session "Mail: {from_worker} -> {to_worker}"
388
+ prompt: """
389
+ Send mail message:
390
+ 1. Create mail entry with timestamp, from, to, message
391
+ 2. Append to .prose/gas-town/rigs/*/mail/{to_worker}.json
392
+ (or town-level mail for town workers)
393
+ 3. If to_worker is active, send nudge
394
+ 4. Log to activity feed
395
+ 5. Return message ID
396
+ """
397
+
398
+ # gt mail check: Read messages from inbox
399
+ block gt_mail_check(worker_name):
400
+ session "Check mail for {worker_name}"
401
+ prompt: """
402
+ Read mail inbox:
403
+ 1. Read .prose/gas-town/rigs/*/mail/{worker_name}.json
404
+ 2. Also check town-level mail
405
+ 3. Return unread messages sorted by timestamp
406
+ 4. Mark as read after returning
407
+ """
408
+
409
+ # =============================================================================
410
+ # WISP OPERATIONS: Ephemeral Orchestration Beads
411
+ # =============================================================================
412
+
413
+ # Create a wisp (ephemeral bead - not persisted to Git)
414
+ block create_wisp(wisp_type, content):
415
+ session "Create wisp: {wisp_type}"
416
+ prompt: """
417
+ Create ephemeral bead (wisp):
418
+ 1. Generate wisp ID (timestamp + random)
419
+ 2. Write to .prose/gas-town/wisps/{wisp_id}.json:
420
+ - type: {wisp_type}
421
+ - content: {content}
422
+ - created: now()
423
+ - ephemeral: true
424
+ 3. DO NOT add to Git staging
425
+ 4. Return wisp ID
426
+
427
+ Wisps are for:
428
+ - Patrol orchestration
429
+ - Temporary workflow state
430
+ - High-velocity operations that would pollute Git
431
+ """
432
+
433
+ # Burn a wisp (destroy after use)
434
+ block burn_wisp(wisp_id, create_digest):
435
+ session "Burn wisp {wisp_id}"
436
+ prompt: """
437
+ Destroy ephemeral bead:
438
+ 1. Read .prose/gas-town/wisps/{wisp_id}.json
439
+ 2. If {create_digest} is true:
440
+ - Squash to single-line summary
441
+ - Append to .prose/gas-town/wisp-digest.jsonl (this IS in Git)
442
+ 3. Delete the wisp file
443
+ 4. Return confirmation
444
+ """
445
+
446
+ # =============================================================================
447
+ # ACTIVITY FEED: Live Status Dashboard
448
+ # =============================================================================
449
+
450
+ # Log to activity feed
451
+ block log_activity(worker_name, activity_type, details):
452
+ session "Log activity: {worker_name} - {activity_type}"
453
+ prompt: """
454
+ Append to activity feed:
455
+ 1. Create entry:
456
+ - timestamp: now()
457
+ - worker: {worker_name}
458
+ - type: {activity_type}
459
+ - details: {details}
460
+ 2. Append to .prose/gas-town/activity-feed.jsonl
461
+ 3. If watching dashboard is active, send update
462
+ """
463
+
464
+ # Read activity feed
465
+ block get_activity_feed(since_timestamp, worker_filter):
466
+ session "Get activity feed"
467
+ prompt: """
468
+ Read activity feed:
469
+ 1. Read .prose/gas-town/activity-feed.jsonl
470
+ 2. Filter to entries after {since_timestamp}
471
+ 3. If {worker_filter} specified, filter to that worker
472
+ 4. Return entries (most recent first, limit 100)
473
+ """
474
+
475
+ # =============================================================================
476
+ # SWARM OPERATIONS: Polecat Allocation and Management
477
+ # =============================================================================
478
+
479
+ # Spawn a swarm of polecats for a convoy
480
+ block spawn_swarm(convoy_id, bead_ids, max_polecats):
481
+ session "Spawn swarm for convoy {convoy_id}"
482
+ prompt: """
483
+ Allocate polecats to work on convoy:
484
+ 1. Read available polecat slots (max {max_polecats}, usually 30)
485
+ 2. For each bead in {bead_ids}:
486
+ - Check if dependencies are met
487
+ - If ready, allocate a polecat
488
+ - Sling bead to polecat's hook
489
+ 3. Create swarm tracking entry:
490
+ .prose/gas-town/convoys/{convoy_id}/swarm.json
491
+ 4. Notify Witness of new swarm
492
+ 5. Return swarm status (polecats allocated, beads queued)
493
+ """
494
+
495
+ # Check swarm health
496
+ block check_swarm_health(convoy_id):
497
+ session "Check swarm health for {convoy_id}"
498
+ prompt: """
499
+ Assess swarm status:
500
+ 1. Read .prose/gas-town/convoys/{convoy_id}/swarm.json
501
+ 2. For each allocated polecat:
502
+ - Check last_activity timestamp
503
+ - Check hook status (working/stuck/complete)
504
+ - Check if context exhaustion imminent
505
+ 3. Return health report:
506
+ - active_polecats: N
507
+ - stuck_polecats: [list]
508
+ - beads_completed: N
509
+ - beads_remaining: N
510
+ - estimated_completion: timestamp
511
+ """
512
+
513
+ # Recycle exhausted polecats (prevent context exhaustion)
514
+ block recycle_polecat(polecat_id, rig_name):
515
+ session "Recycle polecat {polecat_id}"
516
+ prompt: """
517
+ Gracefully recycle polecat before context exhaustion:
518
+ 1. Read current molecule state from hook
519
+ 2. Trigger handoff for polecat
520
+ 3. Wait for new session to spin up
521
+ 4. Verify hook is picked up by new session
522
+ 5. Update swarm tracking
523
+ 6. Return confirmation
524
+ """
525
+
526
+ # =============================================================================
527
+ # FORMULA AND MOLECULE OPERATIONS
528
+ # =============================================================================
529
+
530
+ # Cook a formula into a protomolecule
531
+ block cook_formula(formula_name):
532
+ session "Cook formula: {formula_name}"
533
+ prompt: """
534
+ Transform formula into protomolecule:
535
+ 1. Read .prose/gas-town/formulas/{formula_name}.toml
536
+ 2. Parse formula structure (steps, loops, gates)
537
+ 3. Expand loops and conditionals
538
+ 4. Generate protomolecule beads (templates)
539
+ 5. Write to .prose/gas-town/protomolecules/{formula_name}/
540
+ 6. Return protomolecule ID
541
+ """
542
+
543
+ # Instantiate a protomolecule into a working molecule
544
+ block instantiate_molecule(protomolecule_id, variables):
545
+ session "Instantiate molecule from {protomolecule_id}"
546
+ prompt: """
547
+ Create working molecule from template:
548
+ 1. Read .prose/gas-town/protomolecules/{protomolecule_id}/
549
+ 2. Copy all template beads
550
+ 3. Perform variable substitution with {variables}
551
+ 4. Generate unique IDs for each bead
552
+ 5. Link beads according to dependency graph
553
+ 6. Write molecule to rig's bead database
554
+ 7. Return molecule ID and first step
555
+ """
556
+
557
+ # The "Rule of Five" formula composer
558
+ # Makes each step get reviewed 4 additional times (5 total)
559
+ block compose_rule_of_five(base_molecule_id):
560
+ session "Apply Rule of Five to molecule"
561
+ prompt: """
562
+ Wrap molecule with 5x review pattern:
563
+ 1. Read molecule {base_molecule_id}
564
+ 2. For each step in molecule:
565
+ - Keep original step (review #1)
566
+ - Add 4 review steps with different focus:
567
+ * Review #2: Correctness focus
568
+ * Review #3: Edge cases focus
569
+ * Review #4: Performance focus
570
+ * Review #5: Security focus
571
+ 3. Chain reviews to gate original step completion
572
+ 4. Return enhanced molecule ID
573
+
574
+ This generates superior outcomes per Jeffrey Emanuel's observation.
575
+ """
576
+
577
+ # =============================================================================
578
+ # RIG MANAGEMENT
579
+ # =============================================================================
580
+
581
+ # Add a rig to Gas Town management
582
+ block gt_rig_add(rig_name, repo_path):
583
+ session "Add rig: {rig_name}"
584
+ prompt: """
585
+ Add project to Gas Town:
586
+ 1. Verify {repo_path} is a valid Git repo
587
+ 2. Create .prose/gas-town/rigs/{rig_name}/ structure:
588
+ - rig-beads.jsonl
589
+ - hooks/
590
+ - mail/
591
+ - polecats/
592
+ - merge-queue.json
593
+ - plugins/
594
+ 3. Initialize witness for this rig
595
+ 4. Initialize refinery for this rig
596
+ 5. Add to town's rig registry
597
+ 6. Return confirmation
598
+ """
599
+
600
+ # List all rigs
601
+ block gt_rig_list:
602
+ session "List all rigs"
603
+ prompt: """
604
+ List Gas Town rigs:
605
+ 1. Read .prose/gas-town/rigs/
606
+ 2. For each rig, report:
607
+ - name
608
+ - repo path
609
+ - active polecats
610
+ - pending MRs
611
+ - active convoys
612
+ 3. Return formatted list
613
+ """
614
+
615
+ # War Rig: A rig's contribution to a cross-rig convoy
616
+ block war_rig_status(rig_name, convoy_id):
617
+ session "War Rig status: {rig_name} for {convoy_id}"
618
+ prompt: """
619
+ Get rig's contribution to cross-rig convoy:
620
+ 1. Read convoy {convoy_id}
621
+ 2. Filter to beads assigned to {rig_name}
622
+ 3. Report:
623
+ - Beads completed
624
+ - Beads in progress
625
+ - MRs pending merge
626
+ - Blockers
627
+ 4. Return War Rig summary
628
+ """
629
+
630
+ # =============================================================================
631
+ # THE DEACON'S PATROL: Town-level orchestration heartbeat
632
+ # =============================================================================
633
+
634
+ block deacon_patrol:
635
+ # Step 1: Check town health
636
+ do patrol_step("deacon", 1, "Check town health")
637
+ session: deacon
638
+ prompt: """
639
+ Scan Gas Town health:
640
+ - Read .prose/gas-town/patrol-state.json
641
+ - Check all workers have recent activity
642
+ - Identify any stuck or crashed workers
643
+ - Return health report
644
+ """
645
+
646
+ # Step 2: Propagate DYFJ signal
647
+ do patrol_step("deacon", 2, "Propagate DYFJ to witnesses")
648
+ parallel (on-fail: "continue"):
649
+ session "Nudge witness for rig 1"
650
+ prompt: "Send DYFJ signal to witness-1"
651
+ session "Nudge witness for rig 2"
652
+ prompt: "Send DYFJ signal to witness-2"
653
+
654
+ # Step 3: Run town-level plugins
655
+ do patrol_step("deacon", 3, "Run town plugins")
656
+ let plugins_needed = session "Check for pending town plugins"
657
+ prompt: "Read .prose/gas-town/plugins/town/*.json, return pending"
658
+
659
+ if **there are plugins that need to run**:
660
+ session: deacon
661
+ prompt: "Sling plugin work to an available Dog"
662
+ context: plugins_needed
663
+
664
+ # Step 4: Cleanup and maintenance
665
+ do patrol_step("deacon", 4, "Delegate maintenance to Dogs")
666
+ session: deacon
667
+ prompt: """
668
+ Check if maintenance needed:
669
+ - Stale branches older than 7 days
670
+ - Orphaned convoys
671
+ - Log rotation
672
+ If needed, mail a Dog with maintenance tasks.
673
+ """
674
+
675
+ # Step 5: Set backoff for next patrol
676
+ do patrol_step("deacon", 5, "Calculate patrol backoff")
677
+ session: deacon
678
+ prompt: """
679
+ Check activity level:
680
+ - If lots of active work: backoff = 30 seconds
681
+ - If moderate activity: backoff = 2 minutes
682
+ - If idle: double previous backoff (max 10 minutes)
683
+ Write backoff to .prose/gas-town/patrol-state.json
684
+ """
685
+
686
+ # =============================================================================
687
+ # THE WITNESS'S PATROL: Rig-level swarm health monitoring
688
+ # =============================================================================
689
+
690
+ block witness_patrol(rig_name):
691
+ # Step 1: Check polecat wellbeing
692
+ do patrol_step("witness-{rig_name}", 1, "Check polecat health")
693
+ let polecat_status = session: witness
694
+ prompt: """
695
+ For rig {rig_name}, check all active polecats:
696
+ - Read .prose/gas-town/polecats/{rig_name}/*.json
697
+ - Check last_activity timestamp
698
+ - Identify stuck polecats (no activity > 5 minutes)
699
+ Return list of stuck polecats.
700
+ """
701
+
702
+ # Step 2: Nudge stuck polecats
703
+ if **there are stuck polecats**:
704
+ do patrol_step("witness-{rig_name}", 2, "Nudge stuck polecats")
705
+ for polecat in polecat_status:
706
+ session: witness
707
+ prompt: "Execute gt nudge {polecat} for rig {rig_name}"
708
+ context: polecat
709
+
710
+ # Step 3: Check refinery progress
711
+ do patrol_step("witness-{rig_name}", 3, "Check merge queue")
712
+ let mq_status = session: witness
713
+ prompt: """
714
+ Check .prose/gas-town/merge-queue.json for {rig_name}:
715
+ - How many MRs pending?
716
+ - Is refinery processing?
717
+ - Any stuck MRs (age > 30 minutes)?
718
+ Return MQ health status.
719
+ """
720
+
721
+ if **the merge queue is stuck**:
722
+ session: witness
723
+ prompt: "Nudge the refinery to process MQ for {rig_name}"
724
+ context: mq_status
725
+
726
+ # Step 4: Peek at Deacon
727
+ do patrol_step("witness-{rig_name}", 4, "Peek at Deacon")
728
+ session: witness
729
+ prompt: """
730
+ Quick check on Deacon:
731
+ - Read .prose/gas-town/patrol-state.json
732
+ - Is Deacon's last patrol > 10 minutes ago?
733
+ - If so, send alert to Mayor
734
+ """
735
+
736
+ # Step 5: Run rig plugins
737
+ do patrol_step("witness-{rig_name}", 5, "Run rig plugins")
738
+ session: witness
739
+ prompt: """
740
+ Check .prose/gas-town/plugins/rig/{rig_name}/*.json
741
+ Run any pending plugins for this rig.
742
+ """
743
+
744
+ # Step 6: Recycle exhausted polecats
745
+ do patrol_step("witness-{rig_name}", 6, "Recycle polecats")
746
+ session: witness
747
+ prompt: """
748
+ Check polecat session lengths:
749
+ - Any polecat running > 45 minutes?
750
+ - If so, trigger handoff before context exhaustion
751
+ - Ensure work continues on new session
752
+ """
753
+
754
+ # =============================================================================
755
+ # THE REFINERY'S PATROL: Merge Queue Processing
756
+ # =============================================================================
757
+
758
+ block refinery_patrol(rig_name):
759
+ # Preflight: Clean workspace
760
+ do patrol_step("refinery-{rig_name}", 1, "Preflight checks")
761
+ session: refinery
762
+ prompt: """
763
+ Preflight for {rig_name}:
764
+ 1. git fetch origin
765
+ 2. git checkout main && git pull
766
+ 3. Clean any uncommitted changes
767
+ 4. Verify workspace is ready
768
+ """
769
+
770
+ # Main loop: Process MQ until empty
771
+ do patrol_step("refinery-{rig_name}", 2, "Process merge queue")
772
+
773
+ loop until **the merge queue is empty** (max: 20):
774
+ let next_mr = session: refinery
775
+ prompt: """
776
+ Read .prose/gas-town/merge-queue.json
777
+ Get highest priority MR for {rig_name}
778
+ Return MR details or "EMPTY" if none.
779
+ """
780
+
781
+ if **there is an MR to process**:
782
+ # Process single MR
783
+ try:
784
+ session: refinery
785
+ prompt: """
786
+ Process MR for {rig_name}:
787
+ 1. git checkout {next_mr.branch}
788
+ 2. git rebase main
789
+ 3. Run tests: npm test / pytest / cargo test
790
+ 4. Run lint and type checks
791
+ 5. If all pass, merge to main
792
+ 6. Update convoy status
793
+ """
794
+ context: next_mr
795
+ retry: 2
796
+ backoff: "linear"
797
+
798
+ session: refinery
799
+ prompt: """
800
+ MR merged successfully:
801
+ 1. Remove from .prose/gas-town/merge-queue.json
802
+ 2. Delete branch
803
+ 3. Update convoy progress
804
+ 4. Notify polecat of completion
805
+ """
806
+ context: next_mr
807
+
808
+ catch as merge_error:
809
+ # Handle merge conflicts
810
+ choice **the type of merge failure**:
811
+ option "Conflict - needs reimplementation":
812
+ session: refinery
813
+ prompt: """
814
+ Merge conflict detected. Create escalation:
815
+ 1. Mark MR as "needs_reimplementation"
816
+ 2. Create new bead for conflict resolution
817
+ 3. Sling to a new polecat
818
+ 4. Notify Witness of the situation
819
+ """
820
+ context: merge_error
821
+
822
+ option "Test failure - needs fix":
823
+ session: refinery
824
+ prompt: """
825
+ Tests failed after merge:
826
+ 1. Git reset the merge
827
+ 2. Create fix-tests bead
828
+ 3. Assign back to original polecat
829
+ 4. Add to same convoy
830
+ """
831
+ context: merge_error
832
+
833
+ option "Unrecoverable - escalate":
834
+ session: refinery
835
+ prompt: """
836
+ Cannot process MR:
837
+ 1. Mark as "escalated" in MQ
838
+ 2. Send urgent mail to Mayor
839
+ 3. Add to convoy blockers
840
+ 4. Continue with next MR
841
+ """
842
+ context: merge_error
843
+
844
+ # Postflight: Cleanup and report
845
+ do patrol_step("refinery-{rig_name}", 3, "Postflight")
846
+ session: refinery
847
+ prompt: """
848
+ Postflight for {rig_name}:
849
+ 1. Report MQ processing summary
850
+ 2. Update patrol state with completion time
851
+ 3. Check if any convoys can be landed
852
+ 4. Set backoff based on MQ activity
853
+ """
854
+
855
+ # =============================================================================
856
+ # BOOT THE DOG: Special Dog that watches the Deacon
857
+ # =============================================================================
858
+
859
+ block boot_check:
860
+ session: dog
861
+ prompt: """
862
+ You are Boot the Dog. Your only job: check on the Deacon.
863
+
864
+ Read .prose/gas-town/patrol-state.json
865
+ Check deacon.last_patrol timestamp.
866
+
867
+ Decision:
868
+ - If < 2 min ago: Deacon is fine. Go back to sleep.
869
+ - If 2-5 min ago: Send gentle nudge to Deacon.
870
+ - If 5-10 min ago: Send firm DYFJ to Deacon.
871
+ - If > 10 min ago: Restart Deacon session.
872
+
873
+ Execute your decision, then sleep until next 5-minute wake.
874
+ """
875
+
876
+ # =============================================================================
877
+ # CONVOY WORKFLOW: Full lifecycle of a work unit
878
+ # =============================================================================
879
+
880
+ block convoy_workflow(convoy_name, work_description, target_rig):
881
+ # Phase 1: Mayor receives and plans (first call uses session:)
882
+ let plan = session: mayor
883
+ prompt: """
884
+ New convoy requested: {convoy_name}
885
+ Work: {work_description}
886
+ Rig: {target_rig}
887
+
888
+ 1. Break down into implementable beads
889
+ 2. Identify dependencies between beads
890
+ 3. Estimate polecat count needed
891
+ 4. Create convoy structure
892
+ """
893
+
894
+ # Phase 2: Create convoy and beads
895
+ do create_convoy(convoy_name, plan)
896
+
897
+ # Subsequent Mayor calls use resume: to load memory
898
+ let beads = resume: mayor
899
+ prompt: """
900
+ Create individual beads for convoy {convoy_name}:
901
+ 1. Write each bead to .prose/gas-town/beads/
902
+ 2. Link beads to convoy
903
+ 3. Set initial status to "ready"
904
+ Return list of bead IDs.
905
+ """
906
+ context: plan
907
+
908
+ # Phase 3: Swarm the work
909
+ resume: mayor
910
+ prompt: """
911
+ Initiate swarm for convoy {convoy_name}:
912
+ 1. Determine optimal polecat count (max 30)
913
+ 2. Sling work to polecats based on dependencies
914
+ 3. Notify Witness to monitor swarm
915
+ 4. Return swarm status
916
+ """
917
+ context: beads
918
+
919
+ # Phase 4: Let the swarm run (monitored by Witness)
920
+ loop until **all convoy beads are complete or blocked** (max: 50):
921
+ # Witness patrol handles the actual monitoring
922
+ do witness_patrol(target_rig)
923
+
924
+ # Check convoy status
925
+ let convoy_status = resume: mayor
926
+ prompt: """
927
+ Check convoy {convoy_name} status:
928
+ - Read .prose/gas-town/convoys/{convoy_name}.json
929
+ - Count completed vs pending beads
930
+ - Check for blockers
931
+ Return status summary.
932
+ """
933
+
934
+ if **there are blocked beads that need attention**:
935
+ resume: mayor
936
+ prompt: """
937
+ Handle blocked beads in convoy:
938
+ 1. Analyze block reasons
939
+ 2. Create unblock beads if needed
940
+ 3. Escalate to Overseer if human decision required
941
+ """
942
+ context: convoy_status
943
+
944
+ # Phase 5: Refinery merges everything
945
+ loop until **all MRs from convoy are merged** (max: 30):
946
+ do refinery_patrol(target_rig)
947
+
948
+ # Phase 6: Land the convoy
949
+ do land_convoy(convoy_name)
950
+
951
+ resume: mayor
952
+ prompt: """
953
+ Convoy {convoy_name} has landed!
954
+ 1. Generate completion summary
955
+ 2. Notify Overseer
956
+ 3. Archive convoy artifacts
957
+ 4. Update rig statistics
958
+ """
959
+
960
+ # =============================================================================
961
+ # POLECAT LIFECYCLE: Ephemeral worker execution
962
+ # =============================================================================
963
+
964
+ block polecat_lifecycle(polecat_id, rig_name):
965
+ # Startup: GUPP check
966
+ let hook_work = do gupp_check("polecat-{polecat_id}")
967
+
968
+ if **there is no work on hook**:
969
+ session: polecat
970
+ prompt: """
971
+ No work on hook. Options:
972
+ 1. Check mail for new assignments
973
+ 2. Ask Witness for work
974
+ 3. Go idle (decommission after 5 min idle)
975
+ """
976
+ else:
977
+ # Main work loop: Execute molecule
978
+ loop until **molecule is complete** (max: 100):
979
+ let current_step = session: polecat
980
+ prompt: """
981
+ Read current molecule step from hook.
982
+ Return step details:
983
+ - step_id
984
+ - description
985
+ - acceptance_criteria
986
+ - dependencies (must be complete first)
987
+ """
988
+ context: hook_work
989
+
990
+ if **dependencies are not met**:
991
+ session: polecat
992
+ prompt: """
993
+ Dependencies not ready. Options:
994
+ 1. Work on a different bead in molecule
995
+ 2. Wait and check again in 30 seconds
996
+ 3. Report blocker to Witness
997
+ """
998
+ context: current_step
999
+ else:
1000
+ # Execute the step
1001
+ try:
1002
+ session: polecat
1003
+ prompt: """
1004
+ Execute molecule step:
1005
+ {current_step.description}
1006
+
1007
+ Acceptance criteria:
1008
+ {current_step.acceptance_criteria}
1009
+
1010
+ Work until criteria are met, then mark step complete.
1011
+ """
1012
+ context: current_step
1013
+ retry: 2
1014
+ backoff: "exponential"
1015
+
1016
+ # Mark step complete
1017
+ session: polecat
1018
+ prompt: """
1019
+ Step complete. Update state:
1020
+ 1. Mark step as complete in molecule
1021
+ 2. Update convoy progress
1022
+ 3. If code changed, prepare MR
1023
+ 4. Move to next step
1024
+ """
1025
+
1026
+ catch as step_error:
1027
+ session: polecat
1028
+ prompt: """
1029
+ Step failed. Handle error:
1030
+ 1. Log failure details
1031
+ 2. Determine if retryable
1032
+ 3. If not, escalate to Witness
1033
+ 4. Update molecule state
1034
+ """
1035
+ context: step_error
1036
+
1037
+ # Check if should hand off (context exhaustion prevention)
1038
+ if **session is getting long (> 40 messages)**:
1039
+ do handoff("polecat-{polecat_id}", "Continue molecule execution")
1040
+
1041
+ # Molecule complete: Submit MR if needed
1042
+ let has_changes = session: polecat
1043
+ prompt: "Check if there are uncommitted code changes. Return true/false."
1044
+
1045
+ if **there are code changes to submit**:
1046
+ session: polecat
1047
+ prompt: """
1048
+ Prepare Merge Request:
1049
+ 1. Stage all changes: git add -A
1050
+ 2. Create atomic commit with descriptive message
1051
+ 3. Push branch to origin
1052
+ 4. Add MR to .prose/gas-town/merge-queue.json
1053
+ 5. Notify Refinery
1054
+ """
1055
+
1056
+ # Decommission
1057
+ session: polecat
1058
+ prompt: """
1059
+ Polecat {polecat_id} decommissioning:
1060
+ 1. Clear hook
1061
+ 2. Update convoy with completion status
1062
+ 3. Send completion mail to Witness
1063
+ 4. Mark self as available for reuse
1064
+ """
1065
+
1066
+ # =============================================================================
1067
+ # POLECAT WORKFLOW VARIANTS: Different quality levels
1068
+ # =============================================================================
1069
+
1070
+ # Standard polecat workflow (fast, minimal review)
1071
+ block polecat_workflow_standard(bead_id):
1072
+ session: polecat
1073
+ prompt: """
1074
+ Standard workflow for bead {bead_id}:
1075
+ 1. Read bead acceptance criteria
1076
+ 2. Implement the change
1077
+ 3. Self-review for obvious issues
1078
+ 4. Submit MR
1079
+ Fast but minimal quality gates.
1080
+ """
1081
+
1082
+ # "Shiny" polecat workflow (extra code review)
1083
+ block polecat_workflow_shiny(bead_id):
1084
+ session: polecat
1085
+ prompt: "Implement bead {bead_id}"
1086
+
1087
+ session: polecat
1088
+ prompt: """
1089
+ Shiny review pass 1: Code correctness
1090
+ - Does the implementation match requirements?
1091
+ - Are there any logical errors?
1092
+ - Fix any issues found.
1093
+ """
1094
+
1095
+ session: polecat
1096
+ prompt: """
1097
+ Shiny review pass 2: Code quality
1098
+ - Is the code readable and maintainable?
1099
+ - Does it follow project conventions?
1100
+ - Fix any issues found.
1101
+ """
1102
+
1103
+ session: polecat
1104
+ prompt: "Submit MR with shiny review complete"
1105
+
1106
+ # "Chrome" polecat workflow (extra review + testing)
1107
+ block polecat_workflow_chrome(bead_id):
1108
+ session: polecat
1109
+ prompt: "Implement bead {bead_id}"
1110
+
1111
+ # All shiny review passes
1112
+ session: polecat
1113
+ prompt: "Chrome review pass 1: Correctness check"
1114
+ session: polecat
1115
+ prompt: "Chrome review pass 2: Quality check"
1116
+ session: polecat
1117
+ prompt: "Chrome review pass 3: Edge cases check"
1118
+
1119
+ # Extra chrome passes
1120
+ session: polecat
1121
+ prompt: """
1122
+ Chrome review pass 4: Test coverage
1123
+ - Write unit tests for new code
1124
+ - Ensure edge cases are tested
1125
+ - Run tests locally
1126
+ """
1127
+
1128
+ session: polecat
1129
+ prompt: """
1130
+ Chrome review pass 5: Security check
1131
+ - Check for injection vulnerabilities
1132
+ - Verify input validation
1133
+ - Check for data exposure risks
1134
+ """
1135
+
1136
+ session: polecat
1137
+ prompt: "Submit MR with chrome review complete"
1138
+
1139
+ # =============================================================================
1140
+ # CV CHAINS: Polecat Work Credits
1141
+ # =============================================================================
1142
+
1143
+ # Record polecat completion to CV chain (credited work history)
1144
+ block record_cv_completion(polecat_id, bead_id, convoy_id):
1145
+ session "Record CV completion for polecat {polecat_id}"
1146
+ prompt: """
1147
+ Add completion to polecat's CV chain:
1148
+ 1. Read .prose/gas-town/workers/polecats/{polecat_id}.json
1149
+ 2. Append to cv_chain:
1150
+ - bead_id: {bead_id}
1151
+ - convoy_id: {convoy_id}
1152
+ - completed_at: now()
1153
+ - outcome: success/partial/escalated
1154
+ 3. Update statistics:
1155
+ - total_completions
1156
+ - success_rate
1157
+ - average_duration
1158
+ 4. Save updated worker record
1159
+
1160
+ CV chains provide:
1161
+ - Work attribution (who did what)
1162
+ - Performance metrics
1163
+ - Trust scoring for assignment prioritization
1164
+ """
1165
+
1166
+ # Get polecat's CV summary
1167
+ block get_cv_summary(polecat_id):
1168
+ session "Get CV summary for {polecat_id}"
1169
+ prompt: """
1170
+ Summarize polecat's work history:
1171
+ 1. Read .prose/gas-town/workers/polecats/{polecat_id}.json
1172
+ 2. Return:
1173
+ - Total completions
1174
+ - Success rate
1175
+ - Recent convoy contributions
1176
+ - Specializations (detected from bead types)
1177
+ - Trust score
1178
+ """
1179
+
1180
+ # =============================================================================
1181
+ # MAIN: Gas Town Startup and Operation
1182
+ # =============================================================================
1183
+
1184
+ # Initialize Gas Town state directories
1185
+ session "Initialize Gas Town persistent state"
1186
+ prompt: """
1187
+ Create Gas Town state structure:
1188
+
1189
+ .prose/gas-town/
1190
+ ├── town-beads.jsonl # Town-level orchestration beads
1191
+ ├── activity-feed.jsonl # Live activity stream
1192
+ ├── patrol-state.json # Patrol agent states
1193
+ ├── wisp-digest.jsonl # Burned wisp summaries
1194
+
1195
+ ├── workers/ # Persistent worker identities
1196
+ │ ├── mayor.json
1197
+ │ ├── deacon.json
1198
+ │ ├── dogs/
1199
+ │ │ └── boot.json
1200
+ │ └── polecats/ # Polecat CV chains
1201
+
1202
+ ├── convoys/ # Work orders
1203
+ │ ├── active/
1204
+ │ └── archive/
1205
+
1206
+ ├── formulas/ # Workflow templates (TOML)
1207
+ ├── protomolecules/ # Cooked templates
1208
+ ├── wisps/ # Ephemeral beads (NOT in Git)
1209
+
1210
+ ├── plugins/
1211
+ │ └── town/ # Town-level plugins
1212
+
1213
+ └── rigs/ # Per-project state
1214
+ └── {rig-name}/
1215
+ ├── rig-beads.jsonl # Project issues
1216
+ ├── merge-queue.json # Pending MRs
1217
+ ├── hooks/ # Worker hooks (GUPP)
1218
+ ├── mail/ # Worker inboxes
1219
+ ├── polecats/ # Per-rig polecat state
1220
+ └── plugins/ # Rig-level plugins
1221
+
1222
+ Initialize all files with empty/default values.
1223
+ Add .prose/gas-town/wisps/ to .gitignore (ephemeral).
1224
+ """
1225
+
1226
+ # Start the Mayor
1227
+ session: mayor
1228
+ prompt: """
1229
+ Gas Town Mayor starting up.
1230
+
1231
+ GUPP Check: Read .prose/gas-town/hooks/mayor.json
1232
+ If work hooked, begin immediately.
1233
+ Otherwise, greet the Overseer and await instructions.
1234
+
1235
+ Available commands:
1236
+ - "Create convoy for: <description>" - Start new work unit
1237
+ - "Sling <bead> to <worker>" - Assign work
1238
+ - "Status" - Show town status
1239
+ - "Let's hand off" - Gracefully restart
1240
+ """
1241
+
1242
+ # Start patrol agents in background (parallel)
1243
+ parallel (on-fail: "continue"):
1244
+ # Deacon patrol loop
1245
+ loop (max: 1000):
1246
+ try:
1247
+ do deacon_patrol
1248
+ catch:
1249
+ session "Deacon patrol error - will retry"
1250
+ session "Wait for deacon backoff period"
1251
+ prompt: "Read backoff from patrol-state.json and wait"
1252
+
1253
+ # Boot the Dog wakes every 5 minutes
1254
+ loop (max: 1000):
1255
+ do boot_check
1256
+ session "Boot sleeping for 5 minutes"
1257
+ prompt: "Wait 5 minutes before next Deacon check"
1258
+
1259
+ # =============================================================================
1260
+ # EXAMPLE: Running a Convoy
1261
+ # =============================================================================
1262
+
1263
+ # This block shows how an Overseer would use Gas Town
1264
+
1265
+ block example_convoy:
1266
+ # Overseer tells Mayor what to build
1267
+ session: mayor
1268
+ prompt: """
1269
+ Overseer request: "Add dark mode to the dashboard"
1270
+
1271
+ As Mayor:
1272
+ 1. Acknowledge the request
1273
+ 2. Break it down into implementable pieces
1274
+ 3. Create a convoy to track it
1275
+ 4. Swarm polecats on the work
1276
+ 5. Report when convoy lands
1277
+ """
1278
+
1279
+ # Mayor creates and manages the convoy
1280
+ do convoy_workflow(
1281
+ "dark-mode-dashboard",
1282
+ "Add dark mode toggle and theme support to the dashboard",
1283
+ "main-app"
1284
+ )
1285
+
1286
+ # When done, Mayor reports back
1287
+ session: mayor
1288
+ prompt: """
1289
+ Report convoy completion to Overseer:
1290
+ - What was implemented
1291
+ - Any issues encountered
1292
+ - Files changed
1293
+ - Ready for review
1294
+ """
1295
+
1296
+ # =============================================================================
1297
+ # EXAMPLE: Direct Crew Work
1298
+ # =============================================================================
1299
+
1300
+ # For design/architecture work, use Crew instead of polecats
1301
+
1302
+ block crew_design_session(topic):
1303
+ # First invocation starts fresh design session
1304
+ session: crew
1305
+ prompt: """
1306
+ Design session for: {topic}
1307
+
1308
+ As a Crew member, engage in iterative design:
1309
+ 1. Understand the problem space
1310
+ 2. Propose architecture options
1311
+ 3. Discuss trade-offs with Overseer
1312
+ 4. Document decisions
1313
+ 5. Optionally sling implementation to polecats
1314
+
1315
+ This is interactive - wait for Overseer input.
1316
+ """
1317
+
1318
+ loop until **design is finalized** (max: 20):
1319
+ # Subsequent calls resume with memory
1320
+ resume: crew
1321
+ prompt: """
1322
+ Continue design iteration:
1323
+ - Address Overseer feedback
1324
+ - Refine the design
1325
+ - When ready, ask if should proceed to implementation
1326
+ """
1327
+
1328
+ if **Overseer wants to proceed with implementation**:
1329
+ resume: crew
1330
+ prompt: """
1331
+ Create implementation convoy:
1332
+ 1. Convert design into beads
1333
+ 2. Create convoy
1334
+ 3. Sling to polecats
1335
+ 4. Return convoy ID to track
1336
+ """
1337
+
1338
+ # =============================================================================
1339
+ # EXAMPLE: Hanoi Towers (MAKER Problem)
1340
+ # =============================================================================
1341
+ #
1342
+ # Gas Town can solve arbitrarily long sequential workflows.
1343
+ # The Towers of Hanoi problem (from the MAKER paper) demonstrates this:
1344
+ # - 10-disc Hanoi: ~1000 steps (runs in minutes)
1345
+ # - 20-disc Hanoi: ~1,000,000 steps (runs in ~30 hours)
1346
+ #
1347
+ # LLMs traditionally fail after a few hundred steps (per MAKER paper).
1348
+ # Gas Town's molecular workflows make this trivial via NDI.
1349
+
1350
+ # Generate Hanoi formula (creates workflow from mathematical formula)
1351
+ block generate_hanoi_formula(num_discs):
1352
+ session "Generate Hanoi formula for {num_discs} discs"
1353
+ prompt: """
1354
+ Generate Towers of Hanoi workflow formula:
1355
+
1356
+ For {num_discs} discs, generate (2^n - 1) move steps.
1357
+ Each step is a bead:
1358
+ - ID: hanoi-move-{step_number}
1359
+ - Description: "Move disc from peg {from} to peg {to}"
1360
+ - Acceptance: "Disc moved, state updated"
1361
+ - Depends on: previous step
1362
+
1363
+ Write to .prose/gas-town/formulas/hanoi-{num_discs}.toml
1364
+
1365
+ This demonstrates Gas Town's ability to handle
1366
+ arbitrarily long workflows via NDI (Nondeterministic Idempotence).
1367
+ Crashes don't matter - just resume from last completed step.
1368
+ """
1369
+
1370
+ # Run the Hanoi demonstration
1371
+ block run_hanoi_demo(num_discs):
1372
+ # Generate the formula
1373
+ do generate_hanoi_formula(num_discs)
1374
+
1375
+ # Cook into protomolecule
1376
+ do cook_formula("hanoi-{num_discs}")
1377
+
1378
+ # Instantiate into working molecule
1379
+ let hanoi_mol = do instantiate_molecule(
1380
+ "hanoi-{num_discs}",
1381
+ {"discs": num_discs}
1382
+ )
1383
+
1384
+ # Create convoy to track
1385
+ do create_convoy("hanoi-{num_discs}-demo", hanoi_mol)
1386
+
1387
+ # Sling to a polecat (single worker for sequential)
1388
+ do sling_work(hanoi_mol, "polecat-hanoi")
1389
+
1390
+ # The polecat will work through all steps
1391
+ # Crashes are fine - NDI ensures eventual completion
1392
+ session: mayor
1393
+ prompt: """
1394
+ Hanoi convoy started for {num_discs} discs.
1395
+ - Steps: 2^{num_discs} - 1
1396
+ - Est. completion: varies by disc count
1397
+ - Polecat will checkpoint progress in molecule
1398
+ - Monitor via activity feed
1399
+ """
1400
+
1401
+ # =============================================================================
1402
+ # EXAMPLE: Full Production Workflow
1403
+ # =============================================================================
1404
+
1405
+ # This shows a realistic production workflow using all Gas Town features
1406
+
1407
+ block production_feature_workflow(feature_name, rig_name):
1408
+ # Phase 1: Design with Crew (first call)
1409
+ do log_activity("overseer", "feature_start", feature_name)
1410
+
1411
+ let design = session: crew
1412
+ prompt: """
1413
+ Design phase for: {feature_name}
1414
+ 1. Understand requirements
1415
+ 2. Research existing code
1416
+ 3. Propose architecture
1417
+ 4. Get Overseer approval
1418
+ """
1419
+
1420
+ # Phase 2: Create convoy with chrome-level quality (first Mayor call)
1421
+ let plan = session: mayor
1422
+ prompt: """
1423
+ Create implementation plan for {feature_name}:
1424
+ 1. Break into implementable beads
1425
+ 2. Add dependencies
1426
+ 3. Select chrome workflow (highest quality)
1427
+ 4. Estimate polecat count
1428
+ """
1429
+ context: design
1430
+
1431
+ do create_convoy("{feature_name}-impl", plan)
1432
+
1433
+ # Phase 3: Spawn swarm with chrome workflow
1434
+ resume: mayor
1435
+ prompt: """
1436
+ Spawn chrome-quality swarm:
1437
+ 1. Allocate polecats (use trust scores from CVs)
1438
+ 2. Assign chrome workflow to each bead
1439
+ 3. Notify Witness
1440
+ """
1441
+ context: plan
1442
+
1443
+ # Phase 4: Monitor progress (patrols handle the rest)
1444
+ loop until **all beads complete** (max: 100):
1445
+ do check_swarm_health("{feature_name}-impl")
1446
+
1447
+ if **any polecats stuck**:
1448
+ resume: witness
1449
+ prompt: "Nudge stuck polecats, use seance if needed"
1450
+
1451
+ if **any polecats near context limit**:
1452
+ resume: witness
1453
+ prompt: "Recycle exhausted polecats"
1454
+
1455
+ # Phase 5: Merge all MRs
1456
+ loop until **all MRs merged** (max: 50):
1457
+ do refinery_patrol(rig_name)
1458
+
1459
+ # Phase 6: Land and celebrate
1460
+ do land_convoy("{feature_name}-impl")
1461
+
1462
+ resume: mayor
1463
+ prompt: """
1464
+ Feature {feature_name} complete!
1465
+ 1. Generate release notes
1466
+ 2. Update documentation
1467
+ 3. Notify Overseer
1468
+ 4. Record CV completions for all polecats
1469
+ """
1470
+
1471
+ # =============================================================================
1472
+ # EXAMPLE: Cross-Rig Convoy (War Rigs)
1473
+ # =============================================================================
1474
+
1475
+ # When a feature spans multiple projects
1476
+
1477
+ block cross_rig_convoy(feature_name, rig_list):
1478
+ # Create convoy that spans multiple rigs (first Mayor call)
1479
+ session: mayor
1480
+ prompt: """
1481
+ Cross-rig convoy for {feature_name}:
1482
+ Rigs involved: {rig_list}
1483
+
1484
+ 1. Identify work for each rig (War Rigs)
1485
+ 2. Create beads in each rig's database
1486
+ 3. Link with cross-rig dependencies
1487
+ 4. Coordinate witnesses across rigs
1488
+ """
1489
+
1490
+ # Spawn witnesses for each rig
1491
+ parallel for rig in rig_list:
1492
+ session: witness
1493
+ prompt: "Initialize War Rig monitoring for {rig} in convoy {feature_name}"
1494
+
1495
+ # Swarm all rigs in parallel
1496
+ parallel for rig in rig_list:
1497
+ do spawn_swarm("{feature_name}", "war-rig-{rig}-beads", 10)
1498
+
1499
+ # Monitor War Rig contributions
1500
+ loop until **all War Rigs complete** (max: 200):
1501
+ parallel for rig in rig_list:
1502
+ do war_rig_status(rig, "{feature_name}")
1503
+
1504
+ if **any War Rig blocked**:
1505
+ resume: mayor
1506
+ prompt: "Coordinate cross-rig blocker resolution"
1507
+
1508
+ # Land the cross-rig convoy
1509
+ do land_convoy("{feature_name}")
1510
+
1511
+ resume: mayor
1512
+ prompt: """
1513
+ Cross-rig convoy {feature_name} landed!
1514
+ War Rig summary for each rig: {rig_list}
1515
+ """
1516
+
1517
+ # =============================================================================
1518
+ # GAS TOWN STATUS DASHBOARD
1519
+ # =============================================================================
1520
+
1521
+ block gt_status:
1522
+ parallel:
1523
+ town_health = session "Check town health"
1524
+ prompt: """
1525
+ Town-level status:
1526
+ - Deacon patrol status
1527
+ - Dogs status
1528
+ - Active convoys (town-level)
1529
+ """
1530
+
1531
+ rig_health = session "Check rig health"
1532
+ prompt: """
1533
+ Per-rig status:
1534
+ - Read .prose/gas-town/rigs/
1535
+ - For each rig: polecats, MQ depth, witnesses
1536
+ """
1537
+
1538
+ activity = do get_activity_feed("last_hour", "")
1539
+
1540
+ session: mayor
1541
+ prompt: """
1542
+ Gas Town Status Report:
1543
+
1544
+ TOWN:
1545
+ {town_health}
1546
+
1547
+ RIGS:
1548
+ {rig_health}
1549
+
1550
+ RECENT ACTIVITY:
1551
+ {activity}
1552
+
1553
+ Recommendations:
1554
+ - Any workers needing attention?
1555
+ - Any convoys blocked?
1556
+ - Resource utilization?
1557
+ """
1558
+ context: { town_health, rig_health, activity }
1559
+
1560
+ # =============================================================================
1561
+ # RUN EXAMPLES (commented out - uncomment to execute)
1562
+ # =============================================================================
1563
+
1564
+ # Basic examples:
1565
+ # do example_convoy
1566
+ # do crew_design_session("API redesign for v2")
1567
+
1568
+ # Advanced examples:
1569
+ # do run_hanoi_demo(10) # ~1000 steps, runs in minutes
1570
+ # do production_feature_workflow("user-auth", "main-app")
1571
+ # do cross_rig_convoy("unified-search", ["frontend", "backend", "search-service"])
1572
+ # do gt_status