loudmouth-ai 0.1.0 → 0.2.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 (593) hide show
  1. package/README.md +148 -77
  2. package/dist/build-info.json +3 -3
  3. package/extensions/package.json +6 -0
  4. package/package.json +1 -1
  5. package/skills/autopilot/SKILL.md +179 -0
  6. package/skills/goals/SKILL.md +189 -0
  7. package/skills/wordpress/SKILL.md +232 -0
  8. package/extensions/bluebubbles/clawdbot.plugin.json +0 -11
  9. package/extensions/bluebubbles/index.ts +0 -20
  10. package/extensions/bluebubbles/package.json +0 -33
  11. package/extensions/bluebubbles/src/accounts.ts +0 -80
  12. package/extensions/bluebubbles/src/actions.test.ts +0 -651
  13. package/extensions/bluebubbles/src/actions.ts +0 -403
  14. package/extensions/bluebubbles/src/attachments.test.ts +0 -346
  15. package/extensions/bluebubbles/src/attachments.ts +0 -282
  16. package/extensions/bluebubbles/src/channel.ts +0 -399
  17. package/extensions/bluebubbles/src/chat.test.ts +0 -462
  18. package/extensions/bluebubbles/src/chat.ts +0 -354
  19. package/extensions/bluebubbles/src/config-schema.ts +0 -51
  20. package/extensions/bluebubbles/src/media-send.ts +0 -168
  21. package/extensions/bluebubbles/src/monitor.test.ts +0 -2140
  22. package/extensions/bluebubbles/src/monitor.ts +0 -2101
  23. package/extensions/bluebubbles/src/onboarding.ts +0 -340
  24. package/extensions/bluebubbles/src/probe.ts +0 -127
  25. package/extensions/bluebubbles/src/reactions.test.ts +0 -393
  26. package/extensions/bluebubbles/src/reactions.ts +0 -183
  27. package/extensions/bluebubbles/src/runtime.ts +0 -14
  28. package/extensions/bluebubbles/src/send.test.ts +0 -809
  29. package/extensions/bluebubbles/src/send.ts +0 -418
  30. package/extensions/bluebubbles/src/targets.test.ts +0 -184
  31. package/extensions/bluebubbles/src/targets.ts +0 -323
  32. package/extensions/bluebubbles/src/types.ts +0 -127
  33. package/extensions/copilot-proxy/README.md +0 -24
  34. package/extensions/copilot-proxy/clawdbot.plugin.json +0 -11
  35. package/extensions/copilot-proxy/index.ts +0 -142
  36. package/extensions/copilot-proxy/package.json +0 -11
  37. package/extensions/google-antigravity-auth/README.md +0 -24
  38. package/extensions/google-antigravity-auth/clawdbot.plugin.json +0 -11
  39. package/extensions/google-antigravity-auth/index.ts +0 -437
  40. package/extensions/google-antigravity-auth/package.json +0 -11
  41. package/extensions/google-gemini-cli-auth/README.md +0 -35
  42. package/extensions/google-gemini-cli-auth/clawdbot.plugin.json +0 -11
  43. package/extensions/google-gemini-cli-auth/index.ts +0 -91
  44. package/extensions/google-gemini-cli-auth/oauth.test.ts +0 -228
  45. package/extensions/google-gemini-cli-auth/oauth.ts +0 -580
  46. package/extensions/google-gemini-cli-auth/package.json +0 -11
  47. package/extensions/googlechat/clawdbot.plugin.json +0 -11
  48. package/extensions/googlechat/index.ts +0 -20
  49. package/extensions/googlechat/package.json +0 -39
  50. package/extensions/googlechat/src/accounts.ts +0 -133
  51. package/extensions/googlechat/src/actions.ts +0 -162
  52. package/extensions/googlechat/src/api.test.ts +0 -62
  53. package/extensions/googlechat/src/api.ts +0 -259
  54. package/extensions/googlechat/src/auth.ts +0 -113
  55. package/extensions/googlechat/src/channel.ts +0 -580
  56. package/extensions/googlechat/src/monitor.test.ts +0 -27
  57. package/extensions/googlechat/src/monitor.ts +0 -900
  58. package/extensions/googlechat/src/onboarding.ts +0 -278
  59. package/extensions/googlechat/src/runtime.ts +0 -14
  60. package/extensions/googlechat/src/targets.test.ts +0 -35
  61. package/extensions/googlechat/src/targets.ts +0 -55
  62. package/extensions/googlechat/src/types.config.ts +0 -3
  63. package/extensions/googlechat/src/types.ts +0 -73
  64. package/extensions/imessage/clawdbot.plugin.json +0 -11
  65. package/extensions/imessage/index.ts +0 -18
  66. package/extensions/imessage/package.json +0 -11
  67. package/extensions/imessage/src/channel.ts +0 -294
  68. package/extensions/imessage/src/runtime.ts +0 -14
  69. package/extensions/line/clawdbot.plugin.json +0 -11
  70. package/extensions/line/index.ts +0 -20
  71. package/extensions/line/package.json +0 -29
  72. package/extensions/line/src/card-command.ts +0 -338
  73. package/extensions/line/src/channel.logout.test.ts +0 -96
  74. package/extensions/line/src/channel.sendPayload.test.ts +0 -308
  75. package/extensions/line/src/channel.ts +0 -773
  76. package/extensions/line/src/runtime.ts +0 -14
  77. package/extensions/matrix/CHANGELOG.md +0 -54
  78. package/extensions/matrix/clawdbot.plugin.json +0 -11
  79. package/extensions/matrix/index.ts +0 -18
  80. package/extensions/matrix/package.json +0 -36
  81. package/extensions/matrix/src/actions.ts +0 -185
  82. package/extensions/matrix/src/channel.directory.test.ts +0 -56
  83. package/extensions/matrix/src/channel.ts +0 -417
  84. package/extensions/matrix/src/config-schema.ts +0 -62
  85. package/extensions/matrix/src/directory-live.ts +0 -175
  86. package/extensions/matrix/src/group-mentions.ts +0 -61
  87. package/extensions/matrix/src/matrix/accounts.test.ts +0 -83
  88. package/extensions/matrix/src/matrix/accounts.ts +0 -63
  89. package/extensions/matrix/src/matrix/actions/client.ts +0 -53
  90. package/extensions/matrix/src/matrix/actions/messages.ts +0 -120
  91. package/extensions/matrix/src/matrix/actions/pins.ts +0 -70
  92. package/extensions/matrix/src/matrix/actions/reactions.ts +0 -84
  93. package/extensions/matrix/src/matrix/actions/room.ts +0 -88
  94. package/extensions/matrix/src/matrix/actions/summary.ts +0 -77
  95. package/extensions/matrix/src/matrix/actions/types.ts +0 -84
  96. package/extensions/matrix/src/matrix/actions.ts +0 -15
  97. package/extensions/matrix/src/matrix/active-client.ts +0 -11
  98. package/extensions/matrix/src/matrix/client/config.ts +0 -165
  99. package/extensions/matrix/src/matrix/client/create-client.ts +0 -127
  100. package/extensions/matrix/src/matrix/client/logging.ts +0 -35
  101. package/extensions/matrix/src/matrix/client/runtime.ts +0 -4
  102. package/extensions/matrix/src/matrix/client/shared.ts +0 -169
  103. package/extensions/matrix/src/matrix/client/storage.ts +0 -131
  104. package/extensions/matrix/src/matrix/client/types.ts +0 -34
  105. package/extensions/matrix/src/matrix/client.test.ts +0 -57
  106. package/extensions/matrix/src/matrix/client.ts +0 -9
  107. package/extensions/matrix/src/matrix/credentials.ts +0 -103
  108. package/extensions/matrix/src/matrix/deps.ts +0 -57
  109. package/extensions/matrix/src/matrix/format.test.ts +0 -34
  110. package/extensions/matrix/src/matrix/format.ts +0 -22
  111. package/extensions/matrix/src/matrix/index.ts +0 -11
  112. package/extensions/matrix/src/matrix/monitor/allowlist.ts +0 -58
  113. package/extensions/matrix/src/matrix/monitor/auto-join.ts +0 -68
  114. package/extensions/matrix/src/matrix/monitor/direct.ts +0 -105
  115. package/extensions/matrix/src/matrix/monitor/events.ts +0 -103
  116. package/extensions/matrix/src/matrix/monitor/handler.ts +0 -645
  117. package/extensions/matrix/src/matrix/monitor/index.ts +0 -279
  118. package/extensions/matrix/src/matrix/monitor/location.ts +0 -83
  119. package/extensions/matrix/src/matrix/monitor/media.test.ts +0 -103
  120. package/extensions/matrix/src/matrix/monitor/media.ts +0 -113
  121. package/extensions/matrix/src/matrix/monitor/mentions.ts +0 -31
  122. package/extensions/matrix/src/matrix/monitor/replies.ts +0 -96
  123. package/extensions/matrix/src/matrix/monitor/room-info.ts +0 -58
  124. package/extensions/matrix/src/matrix/monitor/rooms.ts +0 -43
  125. package/extensions/matrix/src/matrix/monitor/threads.ts +0 -64
  126. package/extensions/matrix/src/matrix/monitor/types.ts +0 -39
  127. package/extensions/matrix/src/matrix/poll-types.test.ts +0 -22
  128. package/extensions/matrix/src/matrix/poll-types.ts +0 -157
  129. package/extensions/matrix/src/matrix/probe.ts +0 -70
  130. package/extensions/matrix/src/matrix/send/client.ts +0 -63
  131. package/extensions/matrix/src/matrix/send/formatting.ts +0 -92
  132. package/extensions/matrix/src/matrix/send/media.ts +0 -220
  133. package/extensions/matrix/src/matrix/send/targets.test.ts +0 -102
  134. package/extensions/matrix/src/matrix/send/targets.ts +0 -144
  135. package/extensions/matrix/src/matrix/send/types.ts +0 -109
  136. package/extensions/matrix/src/matrix/send.test.ts +0 -172
  137. package/extensions/matrix/src/matrix/send.ts +0 -255
  138. package/extensions/matrix/src/onboarding.ts +0 -432
  139. package/extensions/matrix/src/outbound.ts +0 -53
  140. package/extensions/matrix/src/resolve-targets.ts +0 -89
  141. package/extensions/matrix/src/runtime.ts +0 -14
  142. package/extensions/matrix/src/tool-actions.ts +0 -160
  143. package/extensions/matrix/src/types.ts +0 -95
  144. package/extensions/mattermost/clawdbot.plugin.json +0 -11
  145. package/extensions/mattermost/index.ts +0 -18
  146. package/extensions/mattermost/package.json +0 -25
  147. package/extensions/mattermost/src/channel.test.ts +0 -43
  148. package/extensions/mattermost/src/channel.ts +0 -339
  149. package/extensions/mattermost/src/config-schema.ts +0 -56
  150. package/extensions/mattermost/src/group-mentions.ts +0 -14
  151. package/extensions/mattermost/src/mattermost/accounts.ts +0 -115
  152. package/extensions/mattermost/src/mattermost/client.ts +0 -208
  153. package/extensions/mattermost/src/mattermost/index.ts +0 -9
  154. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +0 -150
  155. package/extensions/mattermost/src/mattermost/monitor.ts +0 -921
  156. package/extensions/mattermost/src/mattermost/probe.ts +0 -70
  157. package/extensions/mattermost/src/mattermost/send.ts +0 -217
  158. package/extensions/mattermost/src/normalize.ts +0 -38
  159. package/extensions/mattermost/src/onboarding-helpers.ts +0 -42
  160. package/extensions/mattermost/src/onboarding.ts +0 -187
  161. package/extensions/mattermost/src/runtime.ts +0 -14
  162. package/extensions/mattermost/src/types.ts +0 -50
  163. package/extensions/msteams/CHANGELOG.md +0 -51
  164. package/extensions/msteams/clawdbot.plugin.json +0 -11
  165. package/extensions/msteams/index.ts +0 -18
  166. package/extensions/msteams/package.json +0 -36
  167. package/extensions/msteams/src/attachments/download.ts +0 -206
  168. package/extensions/msteams/src/attachments/graph.ts +0 -319
  169. package/extensions/msteams/src/attachments/html.ts +0 -76
  170. package/extensions/msteams/src/attachments/payload.ts +0 -22
  171. package/extensions/msteams/src/attachments/shared.ts +0 -235
  172. package/extensions/msteams/src/attachments/types.ts +0 -37
  173. package/extensions/msteams/src/attachments.test.ts +0 -424
  174. package/extensions/msteams/src/attachments.ts +0 -18
  175. package/extensions/msteams/src/channel.directory.test.ts +0 -46
  176. package/extensions/msteams/src/channel.ts +0 -436
  177. package/extensions/msteams/src/conversation-store-fs.test.ts +0 -88
  178. package/extensions/msteams/src/conversation-store-fs.ts +0 -155
  179. package/extensions/msteams/src/conversation-store-memory.ts +0 -45
  180. package/extensions/msteams/src/conversation-store.ts +0 -41
  181. package/extensions/msteams/src/directory-live.ts +0 -179
  182. package/extensions/msteams/src/errors.test.ts +0 -46
  183. package/extensions/msteams/src/errors.ts +0 -158
  184. package/extensions/msteams/src/file-consent-helpers.test.ts +0 -234
  185. package/extensions/msteams/src/file-consent-helpers.ts +0 -73
  186. package/extensions/msteams/src/file-consent.ts +0 -122
  187. package/extensions/msteams/src/graph-chat.ts +0 -52
  188. package/extensions/msteams/src/graph-upload.ts +0 -445
  189. package/extensions/msteams/src/inbound.test.ts +0 -67
  190. package/extensions/msteams/src/inbound.ts +0 -38
  191. package/extensions/msteams/src/index.ts +0 -4
  192. package/extensions/msteams/src/media-helpers.test.ts +0 -186
  193. package/extensions/msteams/src/media-helpers.ts +0 -77
  194. package/extensions/msteams/src/messenger.test.ts +0 -245
  195. package/extensions/msteams/src/messenger.ts +0 -460
  196. package/extensions/msteams/src/monitor-handler/inbound-media.ts +0 -123
  197. package/extensions/msteams/src/monitor-handler/message-handler.ts +0 -629
  198. package/extensions/msteams/src/monitor-handler.ts +0 -166
  199. package/extensions/msteams/src/monitor-types.ts +0 -5
  200. package/extensions/msteams/src/monitor.ts +0 -290
  201. package/extensions/msteams/src/onboarding.ts +0 -432
  202. package/extensions/msteams/src/outbound.ts +0 -47
  203. package/extensions/msteams/src/pending-uploads.ts +0 -87
  204. package/extensions/msteams/src/policy.test.ts +0 -210
  205. package/extensions/msteams/src/policy.ts +0 -202
  206. package/extensions/msteams/src/polls-store-memory.ts +0 -30
  207. package/extensions/msteams/src/polls-store.test.ts +0 -40
  208. package/extensions/msteams/src/polls.test.ts +0 -72
  209. package/extensions/msteams/src/polls.ts +0 -299
  210. package/extensions/msteams/src/probe.test.ts +0 -57
  211. package/extensions/msteams/src/probe.ts +0 -99
  212. package/extensions/msteams/src/reply-dispatcher.ts +0 -128
  213. package/extensions/msteams/src/resolve-allowlist.ts +0 -277
  214. package/extensions/msteams/src/runtime.ts +0 -14
  215. package/extensions/msteams/src/sdk-types.ts +0 -19
  216. package/extensions/msteams/src/sdk.ts +0 -33
  217. package/extensions/msteams/src/send-context.ts +0 -156
  218. package/extensions/msteams/src/send.ts +0 -489
  219. package/extensions/msteams/src/sent-message-cache.test.ts +0 -16
  220. package/extensions/msteams/src/sent-message-cache.ts +0 -41
  221. package/extensions/msteams/src/storage.ts +0 -22
  222. package/extensions/msteams/src/store-fs.ts +0 -80
  223. package/extensions/msteams/src/token.ts +0 -19
  224. package/extensions/nextcloud-talk/clawdbot.plugin.json +0 -11
  225. package/extensions/nextcloud-talk/index.ts +0 -18
  226. package/extensions/nextcloud-talk/package.json +0 -30
  227. package/extensions/nextcloud-talk/src/accounts.ts +0 -154
  228. package/extensions/nextcloud-talk/src/channel.ts +0 -404
  229. package/extensions/nextcloud-talk/src/config-schema.ts +0 -78
  230. package/extensions/nextcloud-talk/src/format.ts +0 -79
  231. package/extensions/nextcloud-talk/src/inbound.ts +0 -336
  232. package/extensions/nextcloud-talk/src/monitor.ts +0 -246
  233. package/extensions/nextcloud-talk/src/normalize.ts +0 -31
  234. package/extensions/nextcloud-talk/src/onboarding.ts +0 -341
  235. package/extensions/nextcloud-talk/src/policy.ts +0 -175
  236. package/extensions/nextcloud-talk/src/room-info.ts +0 -111
  237. package/extensions/nextcloud-talk/src/runtime.ts +0 -14
  238. package/extensions/nextcloud-talk/src/send.ts +0 -206
  239. package/extensions/nextcloud-talk/src/signature.ts +0 -67
  240. package/extensions/nextcloud-talk/src/types.ts +0 -179
  241. package/extensions/nostr/CHANGELOG.md +0 -46
  242. package/extensions/nostr/README.md +0 -136
  243. package/extensions/nostr/clawdbot.plugin.json +0 -11
  244. package/extensions/nostr/index.ts +0 -69
  245. package/extensions/nostr/package.json +0 -31
  246. package/extensions/nostr/src/channel.test.ts +0 -141
  247. package/extensions/nostr/src/channel.ts +0 -342
  248. package/extensions/nostr/src/config-schema.ts +0 -90
  249. package/extensions/nostr/src/metrics.ts +0 -464
  250. package/extensions/nostr/src/nostr-bus.fuzz.test.ts +0 -544
  251. package/extensions/nostr/src/nostr-bus.integration.test.ts +0 -452
  252. package/extensions/nostr/src/nostr-bus.test.ts +0 -199
  253. package/extensions/nostr/src/nostr-bus.ts +0 -741
  254. package/extensions/nostr/src/nostr-profile-http.test.ts +0 -378
  255. package/extensions/nostr/src/nostr-profile-http.ts +0 -500
  256. package/extensions/nostr/src/nostr-profile-import.test.ts +0 -120
  257. package/extensions/nostr/src/nostr-profile-import.ts +0 -259
  258. package/extensions/nostr/src/nostr-profile.fuzz.test.ts +0 -479
  259. package/extensions/nostr/src/nostr-profile.test.ts +0 -410
  260. package/extensions/nostr/src/nostr-profile.ts +0 -242
  261. package/extensions/nostr/src/nostr-state-store.test.ts +0 -128
  262. package/extensions/nostr/src/nostr-state-store.ts +0 -226
  263. package/extensions/nostr/src/runtime.ts +0 -14
  264. package/extensions/nostr/src/seen-tracker.ts +0 -271
  265. package/extensions/nostr/src/types.test.ts +0 -161
  266. package/extensions/nostr/src/types.ts +0 -99
  267. package/extensions/nostr/test/setup.ts +0 -5
  268. package/extensions/open-prose/README.md +0 -25
  269. package/extensions/open-prose/clawdbot.plugin.json +0 -11
  270. package/extensions/open-prose/index.ts +0 -5
  271. package/extensions/open-prose/package.json +0 -11
  272. package/extensions/open-prose/skills/prose/LICENSE +0 -21
  273. package/extensions/open-prose/skills/prose/SKILL.md +0 -318
  274. package/extensions/open-prose/skills/prose/alt-borges.md +0 -141
  275. package/extensions/open-prose/skills/prose/alts/arabian-nights.md +0 -358
  276. package/extensions/open-prose/skills/prose/alts/borges.md +0 -360
  277. package/extensions/open-prose/skills/prose/alts/folk.md +0 -322
  278. package/extensions/open-prose/skills/prose/alts/homer.md +0 -346
  279. package/extensions/open-prose/skills/prose/alts/kafka.md +0 -373
  280. package/extensions/open-prose/skills/prose/compiler.md +0 -2967
  281. package/extensions/open-prose/skills/prose/examples/01-hello-world.prose +0 -4
  282. package/extensions/open-prose/skills/prose/examples/02-research-and-summarize.prose +0 -6
  283. package/extensions/open-prose/skills/prose/examples/03-code-review.prose +0 -17
  284. package/extensions/open-prose/skills/prose/examples/04-write-and-refine.prose +0 -14
  285. package/extensions/open-prose/skills/prose/examples/05-debug-issue.prose +0 -20
  286. package/extensions/open-prose/skills/prose/examples/06-explain-codebase.prose +0 -17
  287. package/extensions/open-prose/skills/prose/examples/07-refactor.prose +0 -20
  288. package/extensions/open-prose/skills/prose/examples/08-blog-post.prose +0 -20
  289. package/extensions/open-prose/skills/prose/examples/09-research-with-agents.prose +0 -25
  290. package/extensions/open-prose/skills/prose/examples/10-code-review-agents.prose +0 -32
  291. package/extensions/open-prose/skills/prose/examples/11-skills-and-imports.prose +0 -27
  292. package/extensions/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +0 -43
  293. package/extensions/open-prose/skills/prose/examples/13-variables-and-context.prose +0 -51
  294. package/extensions/open-prose/skills/prose/examples/14-composition-blocks.prose +0 -48
  295. package/extensions/open-prose/skills/prose/examples/15-inline-sequences.prose +0 -23
  296. package/extensions/open-prose/skills/prose/examples/16-parallel-reviews.prose +0 -19
  297. package/extensions/open-prose/skills/prose/examples/17-parallel-research.prose +0 -19
  298. package/extensions/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +0 -36
  299. package/extensions/open-prose/skills/prose/examples/19-advanced-parallel.prose +0 -71
  300. package/extensions/open-prose/skills/prose/examples/20-fixed-loops.prose +0 -20
  301. package/extensions/open-prose/skills/prose/examples/21-pipeline-operations.prose +0 -35
  302. package/extensions/open-prose/skills/prose/examples/22-error-handling.prose +0 -51
  303. package/extensions/open-prose/skills/prose/examples/23-retry-with-backoff.prose +0 -63
  304. package/extensions/open-prose/skills/prose/examples/24-choice-blocks.prose +0 -86
  305. package/extensions/open-prose/skills/prose/examples/25-conditionals.prose +0 -114
  306. package/extensions/open-prose/skills/prose/examples/26-parameterized-blocks.prose +0 -100
  307. package/extensions/open-prose/skills/prose/examples/27-string-interpolation.prose +0 -105
  308. package/extensions/open-prose/skills/prose/examples/28-automated-pr-review.prose +0 -37
  309. package/extensions/open-prose/skills/prose/examples/28-gas-town.prose +0 -1572
  310. package/extensions/open-prose/skills/prose/examples/29-captains-chair.prose +0 -218
  311. package/extensions/open-prose/skills/prose/examples/30-captains-chair-simple.prose +0 -42
  312. package/extensions/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +0 -145
  313. package/extensions/open-prose/skills/prose/examples/33-pr-review-autofix.prose +0 -168
  314. package/extensions/open-prose/skills/prose/examples/34-content-pipeline.prose +0 -204
  315. package/extensions/open-prose/skills/prose/examples/35-feature-factory.prose +0 -296
  316. package/extensions/open-prose/skills/prose/examples/36-bug-hunter.prose +0 -237
  317. package/extensions/open-prose/skills/prose/examples/37-the-forge.prose +0 -1474
  318. package/extensions/open-prose/skills/prose/examples/38-skill-scan.prose +0 -455
  319. package/extensions/open-prose/skills/prose/examples/39-architect-by-simulation.prose +0 -277
  320. package/extensions/open-prose/skills/prose/examples/40-rlm-self-refine.prose +0 -32
  321. package/extensions/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +0 -38
  322. package/extensions/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +0 -46
  323. package/extensions/open-prose/skills/prose/examples/43-rlm-pairwise.prose +0 -50
  324. package/extensions/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +0 -261
  325. package/extensions/open-prose/skills/prose/examples/45-plugin-release.prose +0 -159
  326. package/extensions/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +0 -637
  327. package/extensions/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +0 -148
  328. package/extensions/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +0 -225
  329. package/extensions/open-prose/skills/prose/examples/47-language-self-improvement.prose +0 -356
  330. package/extensions/open-prose/skills/prose/examples/48-habit-miner.prose +0 -445
  331. package/extensions/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +0 -210
  332. package/extensions/open-prose/skills/prose/examples/README.md +0 -391
  333. package/extensions/open-prose/skills/prose/examples/roadmap/README.md +0 -22
  334. package/extensions/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +0 -20
  335. package/extensions/open-prose/skills/prose/examples/roadmap/parallel-review.prose +0 -18
  336. package/extensions/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +0 -17
  337. package/extensions/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +0 -223
  338. package/extensions/open-prose/skills/prose/guidance/antipatterns.md +0 -951
  339. package/extensions/open-prose/skills/prose/guidance/patterns.md +0 -700
  340. package/extensions/open-prose/skills/prose/guidance/system-prompt.md +0 -180
  341. package/extensions/open-prose/skills/prose/help.md +0 -143
  342. package/extensions/open-prose/skills/prose/lib/README.md +0 -105
  343. package/extensions/open-prose/skills/prose/lib/calibrator.prose +0 -215
  344. package/extensions/open-prose/skills/prose/lib/cost-analyzer.prose +0 -174
  345. package/extensions/open-prose/skills/prose/lib/error-forensics.prose +0 -250
  346. package/extensions/open-prose/skills/prose/lib/inspector.prose +0 -196
  347. package/extensions/open-prose/skills/prose/lib/profiler.prose +0 -460
  348. package/extensions/open-prose/skills/prose/lib/program-improver.prose +0 -275
  349. package/extensions/open-prose/skills/prose/lib/project-memory.prose +0 -118
  350. package/extensions/open-prose/skills/prose/lib/user-memory.prose +0 -93
  351. package/extensions/open-prose/skills/prose/lib/vm-improver.prose +0 -243
  352. package/extensions/open-prose/skills/prose/primitives/session.md +0 -587
  353. package/extensions/open-prose/skills/prose/prose.md +0 -1235
  354. package/extensions/open-prose/skills/prose/state/filesystem.md +0 -478
  355. package/extensions/open-prose/skills/prose/state/in-context.md +0 -380
  356. package/extensions/open-prose/skills/prose/state/postgres.md +0 -875
  357. package/extensions/open-prose/skills/prose/state/sqlite.md +0 -572
  358. package/extensions/qwen-portal-auth/README.md +0 -24
  359. package/extensions/qwen-portal-auth/clawdbot.plugin.json +0 -11
  360. package/extensions/qwen-portal-auth/index.ts +0 -127
  361. package/extensions/qwen-portal-auth/oauth.ts +0 -190
  362. package/extensions/signal/clawdbot.plugin.json +0 -11
  363. package/extensions/signal/index.ts +0 -18
  364. package/extensions/signal/package.json +0 -11
  365. package/extensions/signal/src/channel.ts +0 -312
  366. package/extensions/signal/src/runtime.ts +0 -14
  367. package/extensions/telegram/clawdbot.plugin.json +0 -11
  368. package/extensions/telegram/index.ts +0 -18
  369. package/extensions/telegram/package.json +0 -11
  370. package/extensions/telegram/src/channel.ts +0 -478
  371. package/extensions/telegram/src/runtime.ts +0 -14
  372. package/extensions/tlon/README.md +0 -5
  373. package/extensions/tlon/clawdbot.plugin.json +0 -11
  374. package/extensions/tlon/index.ts +0 -18
  375. package/extensions/tlon/package.json +0 -30
  376. package/extensions/tlon/src/channel.ts +0 -379
  377. package/extensions/tlon/src/config-schema.test.ts +0 -32
  378. package/extensions/tlon/src/config-schema.ts +0 -43
  379. package/extensions/tlon/src/monitor/discovery.ts +0 -71
  380. package/extensions/tlon/src/monitor/history.ts +0 -87
  381. package/extensions/tlon/src/monitor/index.ts +0 -501
  382. package/extensions/tlon/src/monitor/processed-messages.test.ts +0 -24
  383. package/extensions/tlon/src/monitor/processed-messages.ts +0 -38
  384. package/extensions/tlon/src/monitor/utils.ts +0 -83
  385. package/extensions/tlon/src/onboarding.ts +0 -213
  386. package/extensions/tlon/src/runtime.ts +0 -14
  387. package/extensions/tlon/src/targets.ts +0 -79
  388. package/extensions/tlon/src/types.ts +0 -85
  389. package/extensions/tlon/src/urbit/auth.ts +0 -18
  390. package/extensions/tlon/src/urbit/http-api.ts +0 -36
  391. package/extensions/tlon/src/urbit/send.test.ts +0 -38
  392. package/extensions/tlon/src/urbit/send.ts +0 -127
  393. package/extensions/tlon/src/urbit/sse-client.test.ts +0 -41
  394. package/extensions/tlon/src/urbit/sse-client.ts +0 -367
  395. package/extensions/twitch/CHANGELOG.md +0 -21
  396. package/extensions/twitch/README.md +0 -89
  397. package/extensions/twitch/clawdbot.plugin.json +0 -9
  398. package/extensions/twitch/index.ts +0 -20
  399. package/extensions/twitch/package.json +0 -20
  400. package/extensions/twitch/src/access-control.test.ts +0 -489
  401. package/extensions/twitch/src/access-control.ts +0 -154
  402. package/extensions/twitch/src/actions.ts +0 -173
  403. package/extensions/twitch/src/client-manager-registry.ts +0 -115
  404. package/extensions/twitch/src/config-schema.ts +0 -82
  405. package/extensions/twitch/src/config.test.ts +0 -88
  406. package/extensions/twitch/src/config.ts +0 -116
  407. package/extensions/twitch/src/monitor.ts +0 -257
  408. package/extensions/twitch/src/onboarding.test.ts +0 -311
  409. package/extensions/twitch/src/onboarding.ts +0 -411
  410. package/extensions/twitch/src/outbound.test.ts +0 -373
  411. package/extensions/twitch/src/outbound.ts +0 -186
  412. package/extensions/twitch/src/plugin.test.ts +0 -39
  413. package/extensions/twitch/src/plugin.ts +0 -274
  414. package/extensions/twitch/src/probe.test.ts +0 -198
  415. package/extensions/twitch/src/probe.ts +0 -118
  416. package/extensions/twitch/src/resolver.ts +0 -137
  417. package/extensions/twitch/src/runtime.ts +0 -14
  418. package/extensions/twitch/src/send.test.ts +0 -289
  419. package/extensions/twitch/src/send.ts +0 -136
  420. package/extensions/twitch/src/status.test.ts +0 -270
  421. package/extensions/twitch/src/status.ts +0 -176
  422. package/extensions/twitch/src/token.test.ts +0 -171
  423. package/extensions/twitch/src/token.ts +0 -87
  424. package/extensions/twitch/src/twitch-client.test.ts +0 -574
  425. package/extensions/twitch/src/twitch-client.ts +0 -277
  426. package/extensions/twitch/src/types.ts +0 -141
  427. package/extensions/twitch/src/utils/markdown.ts +0 -92
  428. package/extensions/twitch/src/utils/twitch.ts +0 -78
  429. package/extensions/twitch/test/setup.ts +0 -7
  430. package/extensions/voice-call/CHANGELOG.md +0 -72
  431. package/extensions/voice-call/README.md +0 -134
  432. package/extensions/voice-call/clawdbot.plugin.json +0 -601
  433. package/extensions/voice-call/index.ts +0 -497
  434. package/extensions/voice-call/package.json +0 -16
  435. package/extensions/voice-call/src/cli.ts +0 -300
  436. package/extensions/voice-call/src/config.test.ts +0 -204
  437. package/extensions/voice-call/src/config.ts +0 -493
  438. package/extensions/voice-call/src/core-bridge.ts +0 -196
  439. package/extensions/voice-call/src/manager/context.ts +0 -21
  440. package/extensions/voice-call/src/manager/events.ts +0 -177
  441. package/extensions/voice-call/src/manager/lookup.ts +0 -33
  442. package/extensions/voice-call/src/manager/outbound.ts +0 -248
  443. package/extensions/voice-call/src/manager/state.ts +0 -50
  444. package/extensions/voice-call/src/manager/store.ts +0 -88
  445. package/extensions/voice-call/src/manager/timers.ts +0 -86
  446. package/extensions/voice-call/src/manager/twiml.ts +0 -9
  447. package/extensions/voice-call/src/manager.test.ts +0 -108
  448. package/extensions/voice-call/src/manager.ts +0 -876
  449. package/extensions/voice-call/src/media-stream.test.ts +0 -97
  450. package/extensions/voice-call/src/media-stream.ts +0 -393
  451. package/extensions/voice-call/src/providers/base.ts +0 -67
  452. package/extensions/voice-call/src/providers/index.ts +0 -10
  453. package/extensions/voice-call/src/providers/mock.ts +0 -168
  454. package/extensions/voice-call/src/providers/plivo.test.ts +0 -28
  455. package/extensions/voice-call/src/providers/plivo.ts +0 -504
  456. package/extensions/voice-call/src/providers/stt-openai-realtime.ts +0 -311
  457. package/extensions/voice-call/src/providers/telnyx.ts +0 -364
  458. package/extensions/voice-call/src/providers/tts-openai.ts +0 -264
  459. package/extensions/voice-call/src/providers/twilio/api.ts +0 -45
  460. package/extensions/voice-call/src/providers/twilio/webhook.ts +0 -29
  461. package/extensions/voice-call/src/providers/twilio.test.ts +0 -64
  462. package/extensions/voice-call/src/providers/twilio.ts +0 -595
  463. package/extensions/voice-call/src/response-generator.ts +0 -171
  464. package/extensions/voice-call/src/runtime.ts +0 -205
  465. package/extensions/voice-call/src/telephony-audio.ts +0 -88
  466. package/extensions/voice-call/src/telephony-tts.ts +0 -95
  467. package/extensions/voice-call/src/tunnel.ts +0 -331
  468. package/extensions/voice-call/src/types.ts +0 -272
  469. package/extensions/voice-call/src/utils.ts +0 -12
  470. package/extensions/voice-call/src/voice-mapping.ts +0 -65
  471. package/extensions/voice-call/src/webhook-security.test.ts +0 -233
  472. package/extensions/voice-call/src/webhook-security.ts +0 -446
  473. package/extensions/voice-call/src/webhook.ts +0 -490
  474. package/extensions/whatsapp/clawdbot.plugin.json +0 -11
  475. package/extensions/whatsapp/index.ts +0 -18
  476. package/extensions/whatsapp/package.json +0 -11
  477. package/extensions/whatsapp/src/channel.ts +0 -500
  478. package/extensions/whatsapp/src/runtime.ts +0 -14
  479. package/extensions/zalo/CHANGELOG.md +0 -55
  480. package/extensions/zalo/README.md +0 -50
  481. package/extensions/zalo/clawdbot.plugin.json +0 -11
  482. package/extensions/zalo/index.ts +0 -20
  483. package/extensions/zalo/package.json +0 -33
  484. package/extensions/zalo/src/accounts.ts +0 -71
  485. package/extensions/zalo/src/actions.ts +0 -62
  486. package/extensions/zalo/src/api.ts +0 -206
  487. package/extensions/zalo/src/channel.directory.test.ts +0 -35
  488. package/extensions/zalo/src/channel.ts +0 -394
  489. package/extensions/zalo/src/config-schema.ts +0 -24
  490. package/extensions/zalo/src/monitor.ts +0 -760
  491. package/extensions/zalo/src/monitor.webhook.test.ts +0 -70
  492. package/extensions/zalo/src/onboarding.ts +0 -405
  493. package/extensions/zalo/src/probe.ts +0 -46
  494. package/extensions/zalo/src/proxy.ts +0 -18
  495. package/extensions/zalo/src/runtime.ts +0 -14
  496. package/extensions/zalo/src/send.ts +0 -117
  497. package/extensions/zalo/src/status-issues.ts +0 -50
  498. package/extensions/zalo/src/token.ts +0 -55
  499. package/extensions/zalo/src/types.ts +0 -42
  500. package/extensions/zalouser/CHANGELOG.md +0 -33
  501. package/extensions/zalouser/README.md +0 -221
  502. package/extensions/zalouser/clawdbot.plugin.json +0 -11
  503. package/extensions/zalouser/index.ts +0 -32
  504. package/extensions/zalouser/package.json +0 -33
  505. package/extensions/zalouser/src/accounts.ts +0 -117
  506. package/extensions/zalouser/src/channel.test.ts +0 -17
  507. package/extensions/zalouser/src/channel.ts +0 -641
  508. package/extensions/zalouser/src/config-schema.ts +0 -27
  509. package/extensions/zalouser/src/monitor.ts +0 -574
  510. package/extensions/zalouser/src/onboarding.ts +0 -488
  511. package/extensions/zalouser/src/probe.ts +0 -28
  512. package/extensions/zalouser/src/runtime.ts +0 -14
  513. package/extensions/zalouser/src/send.ts +0 -150
  514. package/extensions/zalouser/src/status-issues.test.ts +0 -58
  515. package/extensions/zalouser/src/status-issues.ts +0 -81
  516. package/extensions/zalouser/src/tool.ts +0 -156
  517. package/extensions/zalouser/src/types.ts +0 -102
  518. package/extensions/zalouser/src/zca.ts +0 -208
  519. package/skills/1password/SKILL.md +0 -53
  520. package/skills/1password/references/cli-examples.md +0 -29
  521. package/skills/1password/references/get-started.md +0 -17
  522. package/skills/apple-notes/SKILL.md +0 -50
  523. package/skills/apple-reminders/SKILL.md +0 -67
  524. package/skills/bear-notes/SKILL.md +0 -79
  525. package/skills/bird/SKILL.md +0 -197
  526. package/skills/blogwatcher/SKILL.md +0 -46
  527. package/skills/blucli/SKILL.md +0 -27
  528. package/skills/bluebubbles/SKILL.md +0 -39
  529. package/skills/camsnap/SKILL.md +0 -25
  530. package/skills/canvas/SKILL.md +0 -189
  531. package/skills/clawdhub/SKILL.md +0 -53
  532. package/skills/coding-agent/SKILL.md +0 -278
  533. package/skills/discord/SKILL.md +0 -475
  534. package/skills/eightctl/SKILL.md +0 -29
  535. package/skills/food-order/SKILL.md +0 -41
  536. package/skills/gemini/SKILL.md +0 -23
  537. package/skills/gifgrep/SKILL.md +0 -47
  538. package/skills/github/SKILL.md +0 -48
  539. package/skills/gog/SKILL.md +0 -92
  540. package/skills/goplaces/SKILL.md +0 -30
  541. package/skills/himalaya/SKILL.md +0 -217
  542. package/skills/himalaya/references/configuration.md +0 -174
  543. package/skills/himalaya/references/message-composition.md +0 -182
  544. package/skills/imsg/SKILL.md +0 -25
  545. package/skills/local-places/SERVER_README.md +0 -101
  546. package/skills/local-places/SKILL.md +0 -91
  547. package/skills/local-places/pyproject.toml +0 -27
  548. package/skills/local-places/src/local_places/__init__.py +0 -2
  549. package/skills/local-places/src/local_places/google_places.py +0 -314
  550. package/skills/local-places/src/local_places/main.py +0 -65
  551. package/skills/local-places/src/local_places/schemas.py +0 -107
  552. package/skills/mcporter/SKILL.md +0 -38
  553. package/skills/model-usage/SKILL.md +0 -45
  554. package/skills/model-usage/references/codexbar-cli.md +0 -28
  555. package/skills/model-usage/scripts/model_usage.py +0 -310
  556. package/skills/nano-banana-pro/SKILL.md +0 -30
  557. package/skills/nano-banana-pro/scripts/generate_image.py +0 -169
  558. package/skills/nano-pdf/SKILL.md +0 -20
  559. package/skills/notion/SKILL.md +0 -156
  560. package/skills/obsidian/SKILL.md +0 -55
  561. package/skills/openai-image-gen/SKILL.md +0 -71
  562. package/skills/openai-image-gen/scripts/gen.py +0 -240
  563. package/skills/openai-whisper/SKILL.md +0 -19
  564. package/skills/openai-whisper-api/SKILL.md +0 -43
  565. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -85
  566. package/skills/openhue/SKILL.md +0 -30
  567. package/skills/oracle/SKILL.md +0 -105
  568. package/skills/ordercli/SKILL.md +0 -47
  569. package/skills/peekaboo/SKILL.md +0 -153
  570. package/skills/sag/SKILL.md +0 -62
  571. package/skills/session-logs/SKILL.md +0 -105
  572. package/skills/sherpa-onnx-tts/SKILL.md +0 -49
  573. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  574. package/skills/skill-creator/SKILL.md +0 -371
  575. package/skills/skill-creator/license.txt +0 -202
  576. package/skills/skill-creator/scripts/init_skill.py +0 -378
  577. package/skills/skill-creator/scripts/package_skill.py +0 -111
  578. package/skills/skill-creator/scripts/quick_validate.py +0 -101
  579. package/skills/slack/SKILL.md +0 -144
  580. package/skills/songsee/SKILL.md +0 -29
  581. package/skills/sonoscli/SKILL.md +0 -26
  582. package/skills/spotify-player/SKILL.md +0 -34
  583. package/skills/summarize/SKILL.md +0 -67
  584. package/skills/things-mac/SKILL.md +0 -61
  585. package/skills/tmux/SKILL.md +0 -121
  586. package/skills/tmux/scripts/find-sessions.sh +0 -112
  587. package/skills/tmux/scripts/wait-for-text.sh +0 -83
  588. package/skills/trello/SKILL.md +0 -84
  589. package/skills/video-frames/SKILL.md +0 -29
  590. package/skills/video-frames/scripts/frame.sh +0 -81
  591. package/skills/voice-call/SKILL.md +0 -35
  592. package/skills/wacli/SKILL.md +0 -42
  593. package/skills/weather/SKILL.md +0 -49
@@ -1,572 +0,0 @@
1
- ---
2
- role: sqlite-state-management
3
- status: experimental
4
- summary: |
5
- SQLite-based state management for OpenProse programs. This approach persists
6
- execution state to a SQLite database, enabling structured queries, atomic
7
- transactions, and flexible schema evolution.
8
- requires: sqlite3 CLI tool in PATH
9
- see-also:
10
- - ../prose.md: VM execution semantics
11
- - filesystem.md: File-based state (default, more prescriptive)
12
- - in-context.md: In-context state (for simple programs)
13
- - ../primitives/session.md: Session context and compaction guidelines
14
- ---
15
-
16
- # SQLite State Management (Experimental)
17
-
18
- This document describes how the OpenProse VM tracks execution state using a **SQLite database**. This is an experimental alternative to file-based state (`filesystem.md`) and in-context state (`in-context.md`).
19
-
20
- ## Prerequisites
21
-
22
- **Requires:** The `sqlite3` command-line tool must be available in your PATH.
23
-
24
- | Platform | Installation |
25
- |----------|--------------|
26
- | macOS | Pre-installed |
27
- | Linux | `apt install sqlite3` / `dnf install sqlite3` / etc. |
28
- | Windows | `winget install SQLite.SQLite` or download from sqlite.org |
29
-
30
- If `sqlite3` is not available, the VM will fall back to filesystem state and warn the user.
31
-
32
- ---
33
-
34
- ## Overview
35
-
36
- SQLite state provides:
37
-
38
- - **Atomic transactions**: State changes are ACID-compliant
39
- - **Structured queries**: Find specific bindings, filter by status, aggregate results
40
- - **Flexible schema**: Add columns and tables as needed
41
- - **Single-file portability**: The entire run state is one `.db` file
42
- - **Concurrent access**: SQLite handles locking automatically
43
-
44
- **Key principle:** The database is a flexible workspace. The VM and subagents share it as a coordination mechanism, not a rigid contract.
45
-
46
- ---
47
-
48
- ## Database Location
49
-
50
- The database lives within the standard run directory:
51
-
52
- ```
53
- .prose/runs/{YYYYMMDD}-{HHMMSS}-{random}/
54
- ├── state.db # SQLite database (this file)
55
- ├── program.prose # Copy of running program
56
- └── attachments/ # Large outputs that don't fit in DB (optional)
57
- ```
58
-
59
- **Run ID format:** Same as filesystem state: `{YYYYMMDD}-{HHMMSS}-{random6}`
60
-
61
- Example: `.prose/runs/20260116-143052-a7b3c9/state.db`
62
-
63
- ### Project-Scoped and User-Scoped Agents
64
-
65
- Execution-scoped agents (the default) live in the per-run `state.db`. However, **project-scoped agents** (`persist: project`) and **user-scoped agents** (`persist: user`) must survive across runs.
66
-
67
- For project-scoped agents, use a separate database:
68
-
69
- ```
70
- .prose/
71
- ├── agents.db # Project-scoped agent memory (survives runs)
72
- └── runs/
73
- └── {id}/
74
- └── state.db # Execution-scoped state (dies with run)
75
- ```
76
-
77
- For user-scoped agents, use a database in the home directory:
78
-
79
- ```
80
- ~/.prose/
81
- └── agents.db # User-scoped agent memory (survives across projects)
82
- ```
83
-
84
- The `agents` and `agent_segments` tables for project-scoped agents live in `.prose/agents.db`, and for user-scoped agents live in `~/.prose/agents.db`. The VM initializes these databases on first use and provides the correct path to subagents.
85
-
86
- ---
87
-
88
- ## Responsibility Separation
89
-
90
- This section defines **who does what**. This is the contract between the VM and subagents.
91
-
92
- ### VM Responsibilities
93
-
94
- The VM (the orchestrating agent running the .prose program) is responsible for:
95
-
96
- | Responsibility | Description |
97
- |----------------|-------------|
98
- | **Database creation** | Create `state.db` and initialize core tables at run start |
99
- | **Program registration** | Store the program source and metadata |
100
- | **Execution tracking** | Update position, status, and timing as statements execute |
101
- | **Subagent spawning** | Spawn sessions via Task tool with database path and instructions |
102
- | **Parallel coordination** | Track branch status, implement join strategies |
103
- | **Loop management** | Track iteration counts, evaluate conditions |
104
- | **Error aggregation** | Record failures, manage retry state |
105
- | **Context preservation** | Maintain sufficient narration in the main conversation thread so execution can be understood and resumed |
106
- | **Completion detection** | Mark the run as complete when finished |
107
-
108
- **Critical:** The VM must preserve enough context in its own conversation to understand execution state without re-reading the entire database. The database is for coordination and persistence, not a replacement for working memory.
109
-
110
- ### Subagent Responsibilities
111
-
112
- Subagents (sessions spawned by the VM) are responsible for:
113
-
114
- | Responsibility | Description |
115
- |----------------|-------------|
116
- | **Writing own outputs** | Insert/update their binding in the `bindings` table |
117
- | **Memory management** | For persistent agents: read and update their memory record |
118
- | **Segment recording** | For persistent agents: append segment history |
119
- | **Attachment handling** | Write large outputs to `attachments/` directory, store path in DB |
120
- | **Atomic writes** | Use transactions when updating multiple related records |
121
-
122
- **Critical:** Subagents write ONLY to `bindings`, `agents`, and `agent_segments` tables. The VM owns the `execution` table entirely. Completion signaling happens through the substrate (Task tool return), not database updates.
123
-
124
- **Critical:** Subagents must write their outputs directly to the database. The VM does not write subagent outputs—it only reads them after the subagent completes.
125
-
126
- **What subagents return to the VM:** A confirmation message with the binding location—not the full content:
127
-
128
- **Root scope:**
129
- ```
130
- Binding written: research
131
- Location: .prose/runs/20260116-143052-a7b3c9/state.db (bindings table, name='research', execution_id=NULL)
132
- Summary: AI safety research covering alignment, robustness, and interpretability with 15 citations.
133
- ```
134
-
135
- **Inside block invocation:**
136
- ```
137
- Binding written: result
138
- Location: .prose/runs/20260116-143052-a7b3c9/state.db (bindings table, name='result', execution_id=43)
139
- Execution ID: 43
140
- Summary: Processed chunk into 3 sub-parts for recursive processing.
141
- ```
142
-
143
- The VM tracks locations, not values. This keeps the VM's context lean and enables arbitrarily large intermediate values.
144
-
145
- ### Shared Concerns
146
-
147
- | Concern | Who Handles |
148
- |---------|-------------|
149
- | Schema evolution | Either (use `CREATE TABLE IF NOT EXISTS`, `ALTER TABLE` as needed) |
150
- | Custom tables | Either (prefix with `x_` for extensions) |
151
- | Indexing | Either (add indexes for frequently-queried columns) |
152
- | Cleanup | VM (at run end, optionally vacuum) |
153
-
154
- ---
155
-
156
- ## Core Schema
157
-
158
- The VM initializes these tables. This is a **minimum viable schema**—extend freely.
159
-
160
- ```sql
161
- -- Run metadata
162
- CREATE TABLE IF NOT EXISTS run (
163
- id TEXT PRIMARY KEY,
164
- program_path TEXT,
165
- program_source TEXT,
166
- started_at TEXT DEFAULT (datetime('now')),
167
- updated_at TEXT DEFAULT (datetime('now')),
168
- status TEXT DEFAULT 'running', -- running, completed, failed, interrupted
169
- state_mode TEXT DEFAULT 'sqlite'
170
- );
171
-
172
- -- Execution position and history
173
- CREATE TABLE IF NOT EXISTS execution (
174
- id INTEGER PRIMARY KEY AUTOINCREMENT,
175
- statement_index INTEGER,
176
- statement_text TEXT,
177
- status TEXT, -- pending, executing, completed, failed, skipped
178
- started_at TEXT,
179
- completed_at TEXT,
180
- error_message TEXT,
181
- parent_id INTEGER REFERENCES execution(id), -- for nested blocks
182
- metadata TEXT -- JSON for construct-specific data (loop iteration, parallel branch, etc.)
183
- );
184
-
185
- -- All named values (input, output, let, const)
186
- CREATE TABLE IF NOT EXISTS bindings (
187
- name TEXT,
188
- execution_id INTEGER, -- NULL for root scope, non-null for block invocations
189
- kind TEXT, -- input, output, let, const
190
- value TEXT,
191
- source_statement TEXT,
192
- created_at TEXT DEFAULT (datetime('now')),
193
- updated_at TEXT DEFAULT (datetime('now')),
194
- attachment_path TEXT, -- if value is too large, store path to file
195
- PRIMARY KEY (name, IFNULL(execution_id, -1)) -- IFNULL handles NULL for root scope
196
- );
197
-
198
- -- Persistent agent memory
199
- CREATE TABLE IF NOT EXISTS agents (
200
- name TEXT PRIMARY KEY,
201
- scope TEXT, -- execution, project, user, custom
202
- memory TEXT,
203
- created_at TEXT DEFAULT (datetime('now')),
204
- updated_at TEXT DEFAULT (datetime('now'))
205
- );
206
-
207
- -- Agent invocation history
208
- CREATE TABLE IF NOT EXISTS agent_segments (
209
- id INTEGER PRIMARY KEY AUTOINCREMENT,
210
- agent_name TEXT REFERENCES agents(name),
211
- segment_number INTEGER,
212
- timestamp TEXT DEFAULT (datetime('now')),
213
- prompt TEXT,
214
- summary TEXT,
215
- UNIQUE(agent_name, segment_number)
216
- );
217
-
218
- -- Import registry
219
- CREATE TABLE IF NOT EXISTS imports (
220
- alias TEXT PRIMARY KEY,
221
- source_url TEXT,
222
- fetched_at TEXT,
223
- inputs_schema TEXT, -- JSON
224
- outputs_schema TEXT -- JSON
225
- );
226
- ```
227
-
228
- ### Schema Conventions
229
-
230
- - **Timestamps**: Use ISO 8601 format (`datetime('now')`)
231
- - **JSON fields**: Store structured data as JSON text in `metadata`, `*_schema` columns
232
- - **Large values**: If a binding value exceeds ~100KB, write to `attachments/{name}.md` and store path
233
- - **Extension tables**: Prefix with `x_` (e.g., `x_metrics`, `x_audit_log`)
234
- - **Anonymous bindings**: Sessions without explicit capture (`session "..."` without `let x =`) use auto-generated names: `anon_001`, `anon_002`, etc.
235
- - **Import bindings**: Prefix with import alias for scoping: `research.findings`, `research.sources`
236
- - **Scoped bindings**: Use `execution_id` column—NULL for root scope, non-null for block invocations
237
-
238
- ### Scope Resolution Query
239
-
240
- For recursive blocks, bindings are scoped to their execution frame. Resolve variables by walking up the call stack:
241
-
242
- ```sql
243
- -- Find binding 'result' starting from execution_id 43
244
- WITH RECURSIVE scope_chain AS (
245
- -- Start with current execution
246
- SELECT id, parent_id FROM execution WHERE id = 43
247
- UNION ALL
248
- -- Walk up to parent
249
- SELECT e.id, e.parent_id
250
- FROM execution e
251
- JOIN scope_chain s ON e.id = s.parent_id
252
- )
253
- SELECT b.* FROM bindings b
254
- LEFT JOIN scope_chain s ON b.execution_id = s.id
255
- WHERE b.name = 'result'
256
- AND (b.execution_id IN (SELECT id FROM scope_chain) OR b.execution_id IS NULL)
257
- ORDER BY
258
- CASE WHEN b.execution_id IS NULL THEN 1 ELSE 0 END, -- Prefer scoped over root
259
- s.id DESC NULLS LAST -- Prefer deeper (more local) scope
260
- LIMIT 1;
261
- ```
262
-
263
- **Simpler version if you know the scope chain:**
264
-
265
- ```sql
266
- -- Direct lookup: check current scope, then parent, then root
267
- SELECT * FROM bindings
268
- WHERE name = 'result'
269
- AND (execution_id = 43 OR execution_id = 42 OR execution_id IS NULL)
270
- ORDER BY execution_id DESC NULLS LAST
271
- LIMIT 1;
272
- ```
273
-
274
- ---
275
-
276
- ## Database Interaction
277
-
278
- Both VM and subagents interact via the `sqlite3` CLI.
279
-
280
- ### From the VM
281
-
282
- ```bash
283
- # Initialize database
284
- sqlite3 .prose/runs/20260116-143052-a7b3c9/state.db "CREATE TABLE IF NOT EXISTS..."
285
-
286
- # Update execution position
287
- sqlite3 .prose/runs/20260116-143052-a7b3c9/state.db "
288
- INSERT INTO execution (statement_index, statement_text, status, started_at)
289
- VALUES (3, 'session \"Research AI safety\"', 'executing', datetime('now'))
290
- "
291
-
292
- # Read a binding
293
- sqlite3 -json .prose/runs/20260116-143052-a7b3c9/state.db "
294
- SELECT value FROM bindings WHERE name = 'research'
295
- "
296
-
297
- # Check parallel branch status
298
- sqlite3 .prose/runs/20260116-143052-a7b3c9/state.db "
299
- SELECT statement_text, status FROM execution
300
- WHERE json_extract(metadata, '$.parallel_id') = 'p1'
301
- "
302
- ```
303
-
304
- ### From Subagents
305
-
306
- The VM provides the database path and instructions when spawning:
307
-
308
- **Root scope (outside block invocations):**
309
-
310
- ```
311
- Your output database is:
312
- .prose/runs/20260116-143052-a7b3c9/state.db
313
-
314
- When complete, write your output:
315
-
316
- sqlite3 .prose/runs/20260116-143052-a7b3c9/state.db "
317
- INSERT OR REPLACE INTO bindings (name, execution_id, kind, value, source_statement, updated_at)
318
- VALUES (
319
- 'research',
320
- NULL, -- root scope
321
- 'let',
322
- 'AI safety research covers alignment, robustness...',
323
- 'let research = session: researcher',
324
- datetime('now')
325
- )
326
- "
327
- ```
328
-
329
- **Inside block invocation (include execution_id):**
330
-
331
- ```
332
- Execution scope:
333
- execution_id: 43
334
- block: process
335
- depth: 3
336
-
337
- Your output database is:
338
- .prose/runs/20260116-143052-a7b3c9/state.db
339
-
340
- When complete, write your output:
341
-
342
- sqlite3 .prose/runs/20260116-143052-a7b3c9/state.db "
343
- INSERT OR REPLACE INTO bindings (name, execution_id, kind, value, source_statement, updated_at)
344
- VALUES (
345
- 'result',
346
- 43, -- scoped to this execution
347
- 'let',
348
- 'Processed chunk into 3 sub-parts...',
349
- 'let result = session \"Process chunk\"',
350
- datetime('now')
351
- )
352
- "
353
- ```
354
-
355
- For persistent agents (execution-scoped):
356
-
357
- ```
358
- Your memory is in the database:
359
- .prose/runs/20260116-143052-a7b3c9/state.db
360
-
361
- Read your current state:
362
- sqlite3 -json .prose/runs/20260116-143052-a7b3c9/state.db "SELECT memory FROM agents WHERE name = 'captain'"
363
-
364
- Update when done:
365
- sqlite3 .prose/runs/20260116-143052-a7b3c9/state.db "UPDATE agents SET memory = '...', updated_at = datetime('now') WHERE name = 'captain'"
366
-
367
- Record this segment:
368
- sqlite3 .prose/runs/20260116-143052-a7b3c9/state.db "INSERT INTO agent_segments (agent_name, segment_number, prompt, summary) VALUES ('captain', 3, '...', '...')"
369
- ```
370
-
371
- For project-scoped agents, use `.prose/agents.db`. For user-scoped agents, use `~/.prose/agents.db`.
372
-
373
- ---
374
-
375
- ## Context Preservation in Main Thread
376
-
377
- **This is critical.** The database is for persistence and coordination, but the VM must still maintain conversational context.
378
-
379
- ### What the VM Must Narrate
380
-
381
- Even with SQLite state, the VM should narrate key events in its conversation:
382
-
383
- ```
384
- [Position] Statement 3: let research = session: researcher
385
- Spawning session, will write to state.db
386
- [Task tool call]
387
- [Success] Session complete, binding written to DB
388
- [Binding] research = <stored in state.db>
389
- ```
390
-
391
- ### Why Both?
392
-
393
- | Purpose | Mechanism |
394
- |---------|-----------|
395
- | **Working memory** | Conversation narration (what the VM "remembers" without re-querying) |
396
- | **Durable state** | SQLite database (survives context limits, enables resumption) |
397
- | **Subagent coordination** | SQLite database (shared access point) |
398
- | **Debugging/inspection** | SQLite database (queryable history) |
399
-
400
- The narration is the VM's "mental model" of execution. The database is the "source of truth" for resumption and inspection.
401
-
402
- ---
403
-
404
- ## Parallel Execution
405
-
406
- For parallel blocks, the VM uses the `metadata` JSON field to track branches. **Only the VM writes to the `execution` table.**
407
-
408
- ```sql
409
- -- VM marks parallel start
410
- INSERT INTO execution (statement_index, statement_text, status, metadata)
411
- VALUES (5, 'parallel:', 'executing', '{"parallel_id": "p1", "strategy": "all", "branches": ["a", "b", "c"]}');
412
-
413
- -- VM creates execution record for each branch
414
- INSERT INTO execution (statement_index, statement_text, status, parent_id, metadata)
415
- VALUES (6, 'a = session "Task A"', 'executing', 5, '{"parallel_id": "p1", "branch": "a"}');
416
-
417
- -- Subagent writes its output to bindings table (see "From Subagents" section)
418
- -- Task tool signals completion to VM via substrate
419
-
420
- -- VM marks branch complete after Task returns
421
- UPDATE execution SET status = 'completed', completed_at = datetime('now')
422
- WHERE json_extract(metadata, '$.parallel_id') = 'p1' AND json_extract(metadata, '$.branch') = 'a';
423
-
424
- -- VM checks if all branches complete
425
- SELECT COUNT(*) as pending FROM execution
426
- WHERE json_extract(metadata, '$.parallel_id') = 'p1' AND status != 'completed';
427
- ```
428
-
429
- ---
430
-
431
- ## Loop Tracking
432
-
433
- ```sql
434
- -- Loop metadata tracks iteration state
435
- INSERT INTO execution (statement_index, statement_text, status, metadata)
436
- VALUES (10, 'loop until **analysis complete** (max: 5):', 'executing',
437
- '{"loop_id": "l1", "max_iterations": 5, "current_iteration": 0, "condition": "**analysis complete**"}');
438
-
439
- -- Update iteration
440
- UPDATE execution
441
- SET metadata = json_set(metadata, '$.current_iteration', 2),
442
- updated_at = datetime('now')
443
- WHERE json_extract(metadata, '$.loop_id') = 'l1';
444
- ```
445
-
446
- ---
447
-
448
- ## Error Handling
449
-
450
- ```sql
451
- -- Record failure
452
- UPDATE execution
453
- SET status = 'failed',
454
- error_message = 'Connection timeout after 30s',
455
- completed_at = datetime('now')
456
- WHERE id = 15;
457
-
458
- -- Track retry attempts in metadata
459
- UPDATE execution
460
- SET metadata = json_set(metadata, '$.retry_attempt', 2, '$.max_retries', 3)
461
- WHERE id = 15;
462
- ```
463
-
464
- ---
465
-
466
- ## Large Outputs
467
-
468
- When a binding value is too large for comfortable database storage (>100KB):
469
-
470
- 1. Write content to `attachments/{binding_name}.md`
471
- 2. Store the path in the `attachment_path` column
472
- 3. Leave `value` as a summary or null
473
-
474
- ```sql
475
- INSERT INTO bindings (name, kind, value, attachment_path, source_statement)
476
- VALUES (
477
- 'full_report',
478
- 'let',
479
- 'Full analysis report (847KB) - see attachment',
480
- 'attachments/full_report.md',
481
- 'let full_report = session "Generate comprehensive report"'
482
- );
483
- ```
484
-
485
- ---
486
-
487
- ## Resuming Execution
488
-
489
- To resume an interrupted run:
490
-
491
- ```sql
492
- -- Find current position
493
- SELECT statement_index, statement_text, status
494
- FROM execution
495
- WHERE status = 'executing'
496
- ORDER BY id DESC LIMIT 1;
497
-
498
- -- Get all completed bindings
499
- SELECT name, kind, value, attachment_path FROM bindings;
500
-
501
- -- Get agent memory states
502
- SELECT name, memory FROM agents;
503
-
504
- -- Check parallel block status
505
- SELECT json_extract(metadata, '$.branch') as branch, status
506
- FROM execution
507
- WHERE json_extract(metadata, '$.parallel_id') IS NOT NULL
508
- AND parent_id = (SELECT id FROM execution WHERE status = 'executing' AND statement_text LIKE 'parallel:%');
509
- ```
510
-
511
- ---
512
-
513
- ## Flexibility Encouragement
514
-
515
- Unlike filesystem state, SQLite state is intentionally **less prescriptive**. The core schema is a starting point. You are encouraged to:
516
-
517
- - **Add columns** to existing tables as needed
518
- - **Create extension tables** (prefix with `x_`)
519
- - **Store custom metrics** (timing, token counts, model info)
520
- - **Build indexes** for your query patterns
521
- - **Use JSON functions** for semi-structured data
522
-
523
- Example extensions:
524
-
525
- ```sql
526
- -- Custom metrics table
527
- CREATE TABLE x_metrics (
528
- execution_id INTEGER REFERENCES execution(id),
529
- metric_name TEXT,
530
- metric_value REAL,
531
- recorded_at TEXT DEFAULT (datetime('now'))
532
- );
533
-
534
- -- Add custom column
535
- ALTER TABLE bindings ADD COLUMN token_count INTEGER;
536
-
537
- -- Create index for common query
538
- CREATE INDEX idx_execution_status ON execution(status);
539
- ```
540
-
541
- The database is your workspace. Use it.
542
-
543
- ---
544
-
545
- ## Comparison with Other Modes
546
-
547
- | Aspect | filesystem.md | in-context.md | sqlite.md |
548
- |--------|---------------|---------------|-----------|
549
- | **State location** | `.prose/runs/{id}/` files | Conversation history | `.prose/runs/{id}/state.db` |
550
- | **Queryable** | Via file reads | No | Yes (SQL) |
551
- | **Atomic updates** | No | N/A | Yes (transactions) |
552
- | **Schema flexibility** | Rigid file structure | N/A | Flexible (add tables/columns) |
553
- | **Resumption** | Read state.md | Re-read conversation | Query database |
554
- | **Complexity ceiling** | High | Low (<30 statements) | High |
555
- | **Dependency** | None | None | sqlite3 CLI |
556
- | **Status** | Stable | Stable | **Experimental** |
557
-
558
- ---
559
-
560
- ## Summary
561
-
562
- SQLite state management:
563
-
564
- 1. Uses a **single database file** per run
565
- 2. Provides **clear responsibility separation** between VM and subagents
566
- 3. Enables **structured queries** for state inspection
567
- 4. Supports **atomic transactions** for reliable updates
568
- 5. Allows **flexible schema evolution** as needed
569
- 6. Requires the **sqlite3 CLI** tool
570
- 7. Is **experimental**—expect changes
571
-
572
- The core contract: the VM manages execution flow and spawns subagents; subagents write their own outputs directly to the database. Both maintain the principle that what happens is recorded, and what is recorded can be queried.
@@ -1,24 +0,0 @@
1
- # Qwen OAuth (Clawdbot plugin)
2
-
3
- OAuth provider plugin for **Qwen** (free-tier OAuth).
4
-
5
- ## Enable
6
-
7
- Bundled plugins are disabled by default. Enable this one:
8
-
9
- ```bash
10
- clawdbot plugins enable qwen-portal-auth
11
- ```
12
-
13
- Restart the Gateway after enabling.
14
-
15
- ## Authenticate
16
-
17
- ```bash
18
- clawdbot models auth login --provider qwen-portal --set-default
19
- ```
20
-
21
- ## Notes
22
-
23
- - Qwen OAuth uses a device-code login flow.
24
- - Tokens auto-refresh; re-run login if refresh fails or access is revoked.
@@ -1,11 +0,0 @@
1
- {
2
- "id": "qwen-portal-auth",
3
- "providers": [
4
- "qwen-portal"
5
- ],
6
- "configSchema": {
7
- "type": "object",
8
- "additionalProperties": false,
9
- "properties": {}
10
- }
11
- }