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.
- package/README.md +148 -77
- package/dist/build-info.json +3 -3
- package/extensions/package.json +6 -0
- package/package.json +1 -1
- package/skills/autopilot/SKILL.md +179 -0
- package/skills/goals/SKILL.md +189 -0
- package/skills/wordpress/SKILL.md +232 -0
- package/extensions/bluebubbles/clawdbot.plugin.json +0 -11
- package/extensions/bluebubbles/index.ts +0 -20
- package/extensions/bluebubbles/package.json +0 -33
- package/extensions/bluebubbles/src/accounts.ts +0 -80
- package/extensions/bluebubbles/src/actions.test.ts +0 -651
- package/extensions/bluebubbles/src/actions.ts +0 -403
- package/extensions/bluebubbles/src/attachments.test.ts +0 -346
- package/extensions/bluebubbles/src/attachments.ts +0 -282
- package/extensions/bluebubbles/src/channel.ts +0 -399
- package/extensions/bluebubbles/src/chat.test.ts +0 -462
- package/extensions/bluebubbles/src/chat.ts +0 -354
- package/extensions/bluebubbles/src/config-schema.ts +0 -51
- package/extensions/bluebubbles/src/media-send.ts +0 -168
- package/extensions/bluebubbles/src/monitor.test.ts +0 -2140
- package/extensions/bluebubbles/src/monitor.ts +0 -2101
- package/extensions/bluebubbles/src/onboarding.ts +0 -340
- package/extensions/bluebubbles/src/probe.ts +0 -127
- package/extensions/bluebubbles/src/reactions.test.ts +0 -393
- package/extensions/bluebubbles/src/reactions.ts +0 -183
- package/extensions/bluebubbles/src/runtime.ts +0 -14
- package/extensions/bluebubbles/src/send.test.ts +0 -809
- package/extensions/bluebubbles/src/send.ts +0 -418
- package/extensions/bluebubbles/src/targets.test.ts +0 -184
- package/extensions/bluebubbles/src/targets.ts +0 -323
- package/extensions/bluebubbles/src/types.ts +0 -127
- package/extensions/copilot-proxy/README.md +0 -24
- package/extensions/copilot-proxy/clawdbot.plugin.json +0 -11
- package/extensions/copilot-proxy/index.ts +0 -142
- package/extensions/copilot-proxy/package.json +0 -11
- package/extensions/google-antigravity-auth/README.md +0 -24
- package/extensions/google-antigravity-auth/clawdbot.plugin.json +0 -11
- package/extensions/google-antigravity-auth/index.ts +0 -437
- package/extensions/google-antigravity-auth/package.json +0 -11
- package/extensions/google-gemini-cli-auth/README.md +0 -35
- package/extensions/google-gemini-cli-auth/clawdbot.plugin.json +0 -11
- package/extensions/google-gemini-cli-auth/index.ts +0 -91
- package/extensions/google-gemini-cli-auth/oauth.test.ts +0 -228
- package/extensions/google-gemini-cli-auth/oauth.ts +0 -580
- package/extensions/google-gemini-cli-auth/package.json +0 -11
- package/extensions/googlechat/clawdbot.plugin.json +0 -11
- package/extensions/googlechat/index.ts +0 -20
- package/extensions/googlechat/package.json +0 -39
- package/extensions/googlechat/src/accounts.ts +0 -133
- package/extensions/googlechat/src/actions.ts +0 -162
- package/extensions/googlechat/src/api.test.ts +0 -62
- package/extensions/googlechat/src/api.ts +0 -259
- package/extensions/googlechat/src/auth.ts +0 -113
- package/extensions/googlechat/src/channel.ts +0 -580
- package/extensions/googlechat/src/monitor.test.ts +0 -27
- package/extensions/googlechat/src/monitor.ts +0 -900
- package/extensions/googlechat/src/onboarding.ts +0 -278
- package/extensions/googlechat/src/runtime.ts +0 -14
- package/extensions/googlechat/src/targets.test.ts +0 -35
- package/extensions/googlechat/src/targets.ts +0 -55
- package/extensions/googlechat/src/types.config.ts +0 -3
- package/extensions/googlechat/src/types.ts +0 -73
- package/extensions/imessage/clawdbot.plugin.json +0 -11
- package/extensions/imessage/index.ts +0 -18
- package/extensions/imessage/package.json +0 -11
- package/extensions/imessage/src/channel.ts +0 -294
- package/extensions/imessage/src/runtime.ts +0 -14
- package/extensions/line/clawdbot.plugin.json +0 -11
- package/extensions/line/index.ts +0 -20
- package/extensions/line/package.json +0 -29
- package/extensions/line/src/card-command.ts +0 -338
- package/extensions/line/src/channel.logout.test.ts +0 -96
- package/extensions/line/src/channel.sendPayload.test.ts +0 -308
- package/extensions/line/src/channel.ts +0 -773
- package/extensions/line/src/runtime.ts +0 -14
- package/extensions/matrix/CHANGELOG.md +0 -54
- package/extensions/matrix/clawdbot.plugin.json +0 -11
- package/extensions/matrix/index.ts +0 -18
- package/extensions/matrix/package.json +0 -36
- package/extensions/matrix/src/actions.ts +0 -185
- package/extensions/matrix/src/channel.directory.test.ts +0 -56
- package/extensions/matrix/src/channel.ts +0 -417
- package/extensions/matrix/src/config-schema.ts +0 -62
- package/extensions/matrix/src/directory-live.ts +0 -175
- package/extensions/matrix/src/group-mentions.ts +0 -61
- package/extensions/matrix/src/matrix/accounts.test.ts +0 -83
- package/extensions/matrix/src/matrix/accounts.ts +0 -63
- package/extensions/matrix/src/matrix/actions/client.ts +0 -53
- package/extensions/matrix/src/matrix/actions/messages.ts +0 -120
- package/extensions/matrix/src/matrix/actions/pins.ts +0 -70
- package/extensions/matrix/src/matrix/actions/reactions.ts +0 -84
- package/extensions/matrix/src/matrix/actions/room.ts +0 -88
- package/extensions/matrix/src/matrix/actions/summary.ts +0 -77
- package/extensions/matrix/src/matrix/actions/types.ts +0 -84
- package/extensions/matrix/src/matrix/actions.ts +0 -15
- package/extensions/matrix/src/matrix/active-client.ts +0 -11
- package/extensions/matrix/src/matrix/client/config.ts +0 -165
- package/extensions/matrix/src/matrix/client/create-client.ts +0 -127
- package/extensions/matrix/src/matrix/client/logging.ts +0 -35
- package/extensions/matrix/src/matrix/client/runtime.ts +0 -4
- package/extensions/matrix/src/matrix/client/shared.ts +0 -169
- package/extensions/matrix/src/matrix/client/storage.ts +0 -131
- package/extensions/matrix/src/matrix/client/types.ts +0 -34
- package/extensions/matrix/src/matrix/client.test.ts +0 -57
- package/extensions/matrix/src/matrix/client.ts +0 -9
- package/extensions/matrix/src/matrix/credentials.ts +0 -103
- package/extensions/matrix/src/matrix/deps.ts +0 -57
- package/extensions/matrix/src/matrix/format.test.ts +0 -34
- package/extensions/matrix/src/matrix/format.ts +0 -22
- package/extensions/matrix/src/matrix/index.ts +0 -11
- package/extensions/matrix/src/matrix/monitor/allowlist.ts +0 -58
- package/extensions/matrix/src/matrix/monitor/auto-join.ts +0 -68
- package/extensions/matrix/src/matrix/monitor/direct.ts +0 -105
- package/extensions/matrix/src/matrix/monitor/events.ts +0 -103
- package/extensions/matrix/src/matrix/monitor/handler.ts +0 -645
- package/extensions/matrix/src/matrix/monitor/index.ts +0 -279
- package/extensions/matrix/src/matrix/monitor/location.ts +0 -83
- package/extensions/matrix/src/matrix/monitor/media.test.ts +0 -103
- package/extensions/matrix/src/matrix/monitor/media.ts +0 -113
- package/extensions/matrix/src/matrix/monitor/mentions.ts +0 -31
- package/extensions/matrix/src/matrix/monitor/replies.ts +0 -96
- package/extensions/matrix/src/matrix/monitor/room-info.ts +0 -58
- package/extensions/matrix/src/matrix/monitor/rooms.ts +0 -43
- package/extensions/matrix/src/matrix/monitor/threads.ts +0 -64
- package/extensions/matrix/src/matrix/monitor/types.ts +0 -39
- package/extensions/matrix/src/matrix/poll-types.test.ts +0 -22
- package/extensions/matrix/src/matrix/poll-types.ts +0 -157
- package/extensions/matrix/src/matrix/probe.ts +0 -70
- package/extensions/matrix/src/matrix/send/client.ts +0 -63
- package/extensions/matrix/src/matrix/send/formatting.ts +0 -92
- package/extensions/matrix/src/matrix/send/media.ts +0 -220
- package/extensions/matrix/src/matrix/send/targets.test.ts +0 -102
- package/extensions/matrix/src/matrix/send/targets.ts +0 -144
- package/extensions/matrix/src/matrix/send/types.ts +0 -109
- package/extensions/matrix/src/matrix/send.test.ts +0 -172
- package/extensions/matrix/src/matrix/send.ts +0 -255
- package/extensions/matrix/src/onboarding.ts +0 -432
- package/extensions/matrix/src/outbound.ts +0 -53
- package/extensions/matrix/src/resolve-targets.ts +0 -89
- package/extensions/matrix/src/runtime.ts +0 -14
- package/extensions/matrix/src/tool-actions.ts +0 -160
- package/extensions/matrix/src/types.ts +0 -95
- package/extensions/mattermost/clawdbot.plugin.json +0 -11
- package/extensions/mattermost/index.ts +0 -18
- package/extensions/mattermost/package.json +0 -25
- package/extensions/mattermost/src/channel.test.ts +0 -43
- package/extensions/mattermost/src/channel.ts +0 -339
- package/extensions/mattermost/src/config-schema.ts +0 -56
- package/extensions/mattermost/src/group-mentions.ts +0 -14
- package/extensions/mattermost/src/mattermost/accounts.ts +0 -115
- package/extensions/mattermost/src/mattermost/client.ts +0 -208
- package/extensions/mattermost/src/mattermost/index.ts +0 -9
- package/extensions/mattermost/src/mattermost/monitor-helpers.ts +0 -150
- package/extensions/mattermost/src/mattermost/monitor.ts +0 -921
- package/extensions/mattermost/src/mattermost/probe.ts +0 -70
- package/extensions/mattermost/src/mattermost/send.ts +0 -217
- package/extensions/mattermost/src/normalize.ts +0 -38
- package/extensions/mattermost/src/onboarding-helpers.ts +0 -42
- package/extensions/mattermost/src/onboarding.ts +0 -187
- package/extensions/mattermost/src/runtime.ts +0 -14
- package/extensions/mattermost/src/types.ts +0 -50
- package/extensions/msteams/CHANGELOG.md +0 -51
- package/extensions/msteams/clawdbot.plugin.json +0 -11
- package/extensions/msteams/index.ts +0 -18
- package/extensions/msteams/package.json +0 -36
- package/extensions/msteams/src/attachments/download.ts +0 -206
- package/extensions/msteams/src/attachments/graph.ts +0 -319
- package/extensions/msteams/src/attachments/html.ts +0 -76
- package/extensions/msteams/src/attachments/payload.ts +0 -22
- package/extensions/msteams/src/attachments/shared.ts +0 -235
- package/extensions/msteams/src/attachments/types.ts +0 -37
- package/extensions/msteams/src/attachments.test.ts +0 -424
- package/extensions/msteams/src/attachments.ts +0 -18
- package/extensions/msteams/src/channel.directory.test.ts +0 -46
- package/extensions/msteams/src/channel.ts +0 -436
- package/extensions/msteams/src/conversation-store-fs.test.ts +0 -88
- package/extensions/msteams/src/conversation-store-fs.ts +0 -155
- package/extensions/msteams/src/conversation-store-memory.ts +0 -45
- package/extensions/msteams/src/conversation-store.ts +0 -41
- package/extensions/msteams/src/directory-live.ts +0 -179
- package/extensions/msteams/src/errors.test.ts +0 -46
- package/extensions/msteams/src/errors.ts +0 -158
- package/extensions/msteams/src/file-consent-helpers.test.ts +0 -234
- package/extensions/msteams/src/file-consent-helpers.ts +0 -73
- package/extensions/msteams/src/file-consent.ts +0 -122
- package/extensions/msteams/src/graph-chat.ts +0 -52
- package/extensions/msteams/src/graph-upload.ts +0 -445
- package/extensions/msteams/src/inbound.test.ts +0 -67
- package/extensions/msteams/src/inbound.ts +0 -38
- package/extensions/msteams/src/index.ts +0 -4
- package/extensions/msteams/src/media-helpers.test.ts +0 -186
- package/extensions/msteams/src/media-helpers.ts +0 -77
- package/extensions/msteams/src/messenger.test.ts +0 -245
- package/extensions/msteams/src/messenger.ts +0 -460
- package/extensions/msteams/src/monitor-handler/inbound-media.ts +0 -123
- package/extensions/msteams/src/monitor-handler/message-handler.ts +0 -629
- package/extensions/msteams/src/monitor-handler.ts +0 -166
- package/extensions/msteams/src/monitor-types.ts +0 -5
- package/extensions/msteams/src/monitor.ts +0 -290
- package/extensions/msteams/src/onboarding.ts +0 -432
- package/extensions/msteams/src/outbound.ts +0 -47
- package/extensions/msteams/src/pending-uploads.ts +0 -87
- package/extensions/msteams/src/policy.test.ts +0 -210
- package/extensions/msteams/src/policy.ts +0 -202
- package/extensions/msteams/src/polls-store-memory.ts +0 -30
- package/extensions/msteams/src/polls-store.test.ts +0 -40
- package/extensions/msteams/src/polls.test.ts +0 -72
- package/extensions/msteams/src/polls.ts +0 -299
- package/extensions/msteams/src/probe.test.ts +0 -57
- package/extensions/msteams/src/probe.ts +0 -99
- package/extensions/msteams/src/reply-dispatcher.ts +0 -128
- package/extensions/msteams/src/resolve-allowlist.ts +0 -277
- package/extensions/msteams/src/runtime.ts +0 -14
- package/extensions/msteams/src/sdk-types.ts +0 -19
- package/extensions/msteams/src/sdk.ts +0 -33
- package/extensions/msteams/src/send-context.ts +0 -156
- package/extensions/msteams/src/send.ts +0 -489
- package/extensions/msteams/src/sent-message-cache.test.ts +0 -16
- package/extensions/msteams/src/sent-message-cache.ts +0 -41
- package/extensions/msteams/src/storage.ts +0 -22
- package/extensions/msteams/src/store-fs.ts +0 -80
- package/extensions/msteams/src/token.ts +0 -19
- package/extensions/nextcloud-talk/clawdbot.plugin.json +0 -11
- package/extensions/nextcloud-talk/index.ts +0 -18
- package/extensions/nextcloud-talk/package.json +0 -30
- package/extensions/nextcloud-talk/src/accounts.ts +0 -154
- package/extensions/nextcloud-talk/src/channel.ts +0 -404
- package/extensions/nextcloud-talk/src/config-schema.ts +0 -78
- package/extensions/nextcloud-talk/src/format.ts +0 -79
- package/extensions/nextcloud-talk/src/inbound.ts +0 -336
- package/extensions/nextcloud-talk/src/monitor.ts +0 -246
- package/extensions/nextcloud-talk/src/normalize.ts +0 -31
- package/extensions/nextcloud-talk/src/onboarding.ts +0 -341
- package/extensions/nextcloud-talk/src/policy.ts +0 -175
- package/extensions/nextcloud-talk/src/room-info.ts +0 -111
- package/extensions/nextcloud-talk/src/runtime.ts +0 -14
- package/extensions/nextcloud-talk/src/send.ts +0 -206
- package/extensions/nextcloud-talk/src/signature.ts +0 -67
- package/extensions/nextcloud-talk/src/types.ts +0 -179
- package/extensions/nostr/CHANGELOG.md +0 -46
- package/extensions/nostr/README.md +0 -136
- package/extensions/nostr/clawdbot.plugin.json +0 -11
- package/extensions/nostr/index.ts +0 -69
- package/extensions/nostr/package.json +0 -31
- package/extensions/nostr/src/channel.test.ts +0 -141
- package/extensions/nostr/src/channel.ts +0 -342
- package/extensions/nostr/src/config-schema.ts +0 -90
- package/extensions/nostr/src/metrics.ts +0 -464
- package/extensions/nostr/src/nostr-bus.fuzz.test.ts +0 -544
- package/extensions/nostr/src/nostr-bus.integration.test.ts +0 -452
- package/extensions/nostr/src/nostr-bus.test.ts +0 -199
- package/extensions/nostr/src/nostr-bus.ts +0 -741
- package/extensions/nostr/src/nostr-profile-http.test.ts +0 -378
- package/extensions/nostr/src/nostr-profile-http.ts +0 -500
- package/extensions/nostr/src/nostr-profile-import.test.ts +0 -120
- package/extensions/nostr/src/nostr-profile-import.ts +0 -259
- package/extensions/nostr/src/nostr-profile.fuzz.test.ts +0 -479
- package/extensions/nostr/src/nostr-profile.test.ts +0 -410
- package/extensions/nostr/src/nostr-profile.ts +0 -242
- package/extensions/nostr/src/nostr-state-store.test.ts +0 -128
- package/extensions/nostr/src/nostr-state-store.ts +0 -226
- package/extensions/nostr/src/runtime.ts +0 -14
- package/extensions/nostr/src/seen-tracker.ts +0 -271
- package/extensions/nostr/src/types.test.ts +0 -161
- package/extensions/nostr/src/types.ts +0 -99
- package/extensions/nostr/test/setup.ts +0 -5
- package/extensions/open-prose/README.md +0 -25
- package/extensions/open-prose/clawdbot.plugin.json +0 -11
- package/extensions/open-prose/index.ts +0 -5
- package/extensions/open-prose/package.json +0 -11
- package/extensions/open-prose/skills/prose/LICENSE +0 -21
- package/extensions/open-prose/skills/prose/SKILL.md +0 -318
- package/extensions/open-prose/skills/prose/alt-borges.md +0 -141
- package/extensions/open-prose/skills/prose/alts/arabian-nights.md +0 -358
- package/extensions/open-prose/skills/prose/alts/borges.md +0 -360
- package/extensions/open-prose/skills/prose/alts/folk.md +0 -322
- package/extensions/open-prose/skills/prose/alts/homer.md +0 -346
- package/extensions/open-prose/skills/prose/alts/kafka.md +0 -373
- package/extensions/open-prose/skills/prose/compiler.md +0 -2967
- package/extensions/open-prose/skills/prose/examples/01-hello-world.prose +0 -4
- package/extensions/open-prose/skills/prose/examples/02-research-and-summarize.prose +0 -6
- package/extensions/open-prose/skills/prose/examples/03-code-review.prose +0 -17
- package/extensions/open-prose/skills/prose/examples/04-write-and-refine.prose +0 -14
- package/extensions/open-prose/skills/prose/examples/05-debug-issue.prose +0 -20
- package/extensions/open-prose/skills/prose/examples/06-explain-codebase.prose +0 -17
- package/extensions/open-prose/skills/prose/examples/07-refactor.prose +0 -20
- package/extensions/open-prose/skills/prose/examples/08-blog-post.prose +0 -20
- package/extensions/open-prose/skills/prose/examples/09-research-with-agents.prose +0 -25
- package/extensions/open-prose/skills/prose/examples/10-code-review-agents.prose +0 -32
- package/extensions/open-prose/skills/prose/examples/11-skills-and-imports.prose +0 -27
- package/extensions/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +0 -43
- package/extensions/open-prose/skills/prose/examples/13-variables-and-context.prose +0 -51
- package/extensions/open-prose/skills/prose/examples/14-composition-blocks.prose +0 -48
- package/extensions/open-prose/skills/prose/examples/15-inline-sequences.prose +0 -23
- package/extensions/open-prose/skills/prose/examples/16-parallel-reviews.prose +0 -19
- package/extensions/open-prose/skills/prose/examples/17-parallel-research.prose +0 -19
- package/extensions/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +0 -36
- package/extensions/open-prose/skills/prose/examples/19-advanced-parallel.prose +0 -71
- package/extensions/open-prose/skills/prose/examples/20-fixed-loops.prose +0 -20
- package/extensions/open-prose/skills/prose/examples/21-pipeline-operations.prose +0 -35
- package/extensions/open-prose/skills/prose/examples/22-error-handling.prose +0 -51
- package/extensions/open-prose/skills/prose/examples/23-retry-with-backoff.prose +0 -63
- package/extensions/open-prose/skills/prose/examples/24-choice-blocks.prose +0 -86
- package/extensions/open-prose/skills/prose/examples/25-conditionals.prose +0 -114
- package/extensions/open-prose/skills/prose/examples/26-parameterized-blocks.prose +0 -100
- package/extensions/open-prose/skills/prose/examples/27-string-interpolation.prose +0 -105
- package/extensions/open-prose/skills/prose/examples/28-automated-pr-review.prose +0 -37
- package/extensions/open-prose/skills/prose/examples/28-gas-town.prose +0 -1572
- package/extensions/open-prose/skills/prose/examples/29-captains-chair.prose +0 -218
- package/extensions/open-prose/skills/prose/examples/30-captains-chair-simple.prose +0 -42
- package/extensions/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +0 -145
- package/extensions/open-prose/skills/prose/examples/33-pr-review-autofix.prose +0 -168
- package/extensions/open-prose/skills/prose/examples/34-content-pipeline.prose +0 -204
- package/extensions/open-prose/skills/prose/examples/35-feature-factory.prose +0 -296
- package/extensions/open-prose/skills/prose/examples/36-bug-hunter.prose +0 -237
- package/extensions/open-prose/skills/prose/examples/37-the-forge.prose +0 -1474
- package/extensions/open-prose/skills/prose/examples/38-skill-scan.prose +0 -455
- package/extensions/open-prose/skills/prose/examples/39-architect-by-simulation.prose +0 -277
- package/extensions/open-prose/skills/prose/examples/40-rlm-self-refine.prose +0 -32
- package/extensions/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +0 -38
- package/extensions/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +0 -46
- package/extensions/open-prose/skills/prose/examples/43-rlm-pairwise.prose +0 -50
- package/extensions/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +0 -261
- package/extensions/open-prose/skills/prose/examples/45-plugin-release.prose +0 -159
- package/extensions/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +0 -637
- package/extensions/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +0 -148
- package/extensions/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +0 -225
- package/extensions/open-prose/skills/prose/examples/47-language-self-improvement.prose +0 -356
- package/extensions/open-prose/skills/prose/examples/48-habit-miner.prose +0 -445
- package/extensions/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +0 -210
- package/extensions/open-prose/skills/prose/examples/README.md +0 -391
- package/extensions/open-prose/skills/prose/examples/roadmap/README.md +0 -22
- package/extensions/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +0 -20
- package/extensions/open-prose/skills/prose/examples/roadmap/parallel-review.prose +0 -18
- package/extensions/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +0 -17
- package/extensions/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +0 -223
- package/extensions/open-prose/skills/prose/guidance/antipatterns.md +0 -951
- package/extensions/open-prose/skills/prose/guidance/patterns.md +0 -700
- package/extensions/open-prose/skills/prose/guidance/system-prompt.md +0 -180
- package/extensions/open-prose/skills/prose/help.md +0 -143
- package/extensions/open-prose/skills/prose/lib/README.md +0 -105
- package/extensions/open-prose/skills/prose/lib/calibrator.prose +0 -215
- package/extensions/open-prose/skills/prose/lib/cost-analyzer.prose +0 -174
- package/extensions/open-prose/skills/prose/lib/error-forensics.prose +0 -250
- package/extensions/open-prose/skills/prose/lib/inspector.prose +0 -196
- package/extensions/open-prose/skills/prose/lib/profiler.prose +0 -460
- package/extensions/open-prose/skills/prose/lib/program-improver.prose +0 -275
- package/extensions/open-prose/skills/prose/lib/project-memory.prose +0 -118
- package/extensions/open-prose/skills/prose/lib/user-memory.prose +0 -93
- package/extensions/open-prose/skills/prose/lib/vm-improver.prose +0 -243
- package/extensions/open-prose/skills/prose/primitives/session.md +0 -587
- package/extensions/open-prose/skills/prose/prose.md +0 -1235
- package/extensions/open-prose/skills/prose/state/filesystem.md +0 -478
- package/extensions/open-prose/skills/prose/state/in-context.md +0 -380
- package/extensions/open-prose/skills/prose/state/postgres.md +0 -875
- package/extensions/open-prose/skills/prose/state/sqlite.md +0 -572
- package/extensions/qwen-portal-auth/README.md +0 -24
- package/extensions/qwen-portal-auth/clawdbot.plugin.json +0 -11
- package/extensions/qwen-portal-auth/index.ts +0 -127
- package/extensions/qwen-portal-auth/oauth.ts +0 -190
- package/extensions/signal/clawdbot.plugin.json +0 -11
- package/extensions/signal/index.ts +0 -18
- package/extensions/signal/package.json +0 -11
- package/extensions/signal/src/channel.ts +0 -312
- package/extensions/signal/src/runtime.ts +0 -14
- package/extensions/telegram/clawdbot.plugin.json +0 -11
- package/extensions/telegram/index.ts +0 -18
- package/extensions/telegram/package.json +0 -11
- package/extensions/telegram/src/channel.ts +0 -478
- package/extensions/telegram/src/runtime.ts +0 -14
- package/extensions/tlon/README.md +0 -5
- package/extensions/tlon/clawdbot.plugin.json +0 -11
- package/extensions/tlon/index.ts +0 -18
- package/extensions/tlon/package.json +0 -30
- package/extensions/tlon/src/channel.ts +0 -379
- package/extensions/tlon/src/config-schema.test.ts +0 -32
- package/extensions/tlon/src/config-schema.ts +0 -43
- package/extensions/tlon/src/monitor/discovery.ts +0 -71
- package/extensions/tlon/src/monitor/history.ts +0 -87
- package/extensions/tlon/src/monitor/index.ts +0 -501
- package/extensions/tlon/src/monitor/processed-messages.test.ts +0 -24
- package/extensions/tlon/src/monitor/processed-messages.ts +0 -38
- package/extensions/tlon/src/monitor/utils.ts +0 -83
- package/extensions/tlon/src/onboarding.ts +0 -213
- package/extensions/tlon/src/runtime.ts +0 -14
- package/extensions/tlon/src/targets.ts +0 -79
- package/extensions/tlon/src/types.ts +0 -85
- package/extensions/tlon/src/urbit/auth.ts +0 -18
- package/extensions/tlon/src/urbit/http-api.ts +0 -36
- package/extensions/tlon/src/urbit/send.test.ts +0 -38
- package/extensions/tlon/src/urbit/send.ts +0 -127
- package/extensions/tlon/src/urbit/sse-client.test.ts +0 -41
- package/extensions/tlon/src/urbit/sse-client.ts +0 -367
- package/extensions/twitch/CHANGELOG.md +0 -21
- package/extensions/twitch/README.md +0 -89
- package/extensions/twitch/clawdbot.plugin.json +0 -9
- package/extensions/twitch/index.ts +0 -20
- package/extensions/twitch/package.json +0 -20
- package/extensions/twitch/src/access-control.test.ts +0 -489
- package/extensions/twitch/src/access-control.ts +0 -154
- package/extensions/twitch/src/actions.ts +0 -173
- package/extensions/twitch/src/client-manager-registry.ts +0 -115
- package/extensions/twitch/src/config-schema.ts +0 -82
- package/extensions/twitch/src/config.test.ts +0 -88
- package/extensions/twitch/src/config.ts +0 -116
- package/extensions/twitch/src/monitor.ts +0 -257
- package/extensions/twitch/src/onboarding.test.ts +0 -311
- package/extensions/twitch/src/onboarding.ts +0 -411
- package/extensions/twitch/src/outbound.test.ts +0 -373
- package/extensions/twitch/src/outbound.ts +0 -186
- package/extensions/twitch/src/plugin.test.ts +0 -39
- package/extensions/twitch/src/plugin.ts +0 -274
- package/extensions/twitch/src/probe.test.ts +0 -198
- package/extensions/twitch/src/probe.ts +0 -118
- package/extensions/twitch/src/resolver.ts +0 -137
- package/extensions/twitch/src/runtime.ts +0 -14
- package/extensions/twitch/src/send.test.ts +0 -289
- package/extensions/twitch/src/send.ts +0 -136
- package/extensions/twitch/src/status.test.ts +0 -270
- package/extensions/twitch/src/status.ts +0 -176
- package/extensions/twitch/src/token.test.ts +0 -171
- package/extensions/twitch/src/token.ts +0 -87
- package/extensions/twitch/src/twitch-client.test.ts +0 -574
- package/extensions/twitch/src/twitch-client.ts +0 -277
- package/extensions/twitch/src/types.ts +0 -141
- package/extensions/twitch/src/utils/markdown.ts +0 -92
- package/extensions/twitch/src/utils/twitch.ts +0 -78
- package/extensions/twitch/test/setup.ts +0 -7
- package/extensions/voice-call/CHANGELOG.md +0 -72
- package/extensions/voice-call/README.md +0 -134
- package/extensions/voice-call/clawdbot.plugin.json +0 -601
- package/extensions/voice-call/index.ts +0 -497
- package/extensions/voice-call/package.json +0 -16
- package/extensions/voice-call/src/cli.ts +0 -300
- package/extensions/voice-call/src/config.test.ts +0 -204
- package/extensions/voice-call/src/config.ts +0 -493
- package/extensions/voice-call/src/core-bridge.ts +0 -196
- package/extensions/voice-call/src/manager/context.ts +0 -21
- package/extensions/voice-call/src/manager/events.ts +0 -177
- package/extensions/voice-call/src/manager/lookup.ts +0 -33
- package/extensions/voice-call/src/manager/outbound.ts +0 -248
- package/extensions/voice-call/src/manager/state.ts +0 -50
- package/extensions/voice-call/src/manager/store.ts +0 -88
- package/extensions/voice-call/src/manager/timers.ts +0 -86
- package/extensions/voice-call/src/manager/twiml.ts +0 -9
- package/extensions/voice-call/src/manager.test.ts +0 -108
- package/extensions/voice-call/src/manager.ts +0 -876
- package/extensions/voice-call/src/media-stream.test.ts +0 -97
- package/extensions/voice-call/src/media-stream.ts +0 -393
- package/extensions/voice-call/src/providers/base.ts +0 -67
- package/extensions/voice-call/src/providers/index.ts +0 -10
- package/extensions/voice-call/src/providers/mock.ts +0 -168
- package/extensions/voice-call/src/providers/plivo.test.ts +0 -28
- package/extensions/voice-call/src/providers/plivo.ts +0 -504
- package/extensions/voice-call/src/providers/stt-openai-realtime.ts +0 -311
- package/extensions/voice-call/src/providers/telnyx.ts +0 -364
- package/extensions/voice-call/src/providers/tts-openai.ts +0 -264
- package/extensions/voice-call/src/providers/twilio/api.ts +0 -45
- package/extensions/voice-call/src/providers/twilio/webhook.ts +0 -29
- package/extensions/voice-call/src/providers/twilio.test.ts +0 -64
- package/extensions/voice-call/src/providers/twilio.ts +0 -595
- package/extensions/voice-call/src/response-generator.ts +0 -171
- package/extensions/voice-call/src/runtime.ts +0 -205
- package/extensions/voice-call/src/telephony-audio.ts +0 -88
- package/extensions/voice-call/src/telephony-tts.ts +0 -95
- package/extensions/voice-call/src/tunnel.ts +0 -331
- package/extensions/voice-call/src/types.ts +0 -272
- package/extensions/voice-call/src/utils.ts +0 -12
- package/extensions/voice-call/src/voice-mapping.ts +0 -65
- package/extensions/voice-call/src/webhook-security.test.ts +0 -233
- package/extensions/voice-call/src/webhook-security.ts +0 -446
- package/extensions/voice-call/src/webhook.ts +0 -490
- package/extensions/whatsapp/clawdbot.plugin.json +0 -11
- package/extensions/whatsapp/index.ts +0 -18
- package/extensions/whatsapp/package.json +0 -11
- package/extensions/whatsapp/src/channel.ts +0 -500
- package/extensions/whatsapp/src/runtime.ts +0 -14
- package/extensions/zalo/CHANGELOG.md +0 -55
- package/extensions/zalo/README.md +0 -50
- package/extensions/zalo/clawdbot.plugin.json +0 -11
- package/extensions/zalo/index.ts +0 -20
- package/extensions/zalo/package.json +0 -33
- package/extensions/zalo/src/accounts.ts +0 -71
- package/extensions/zalo/src/actions.ts +0 -62
- package/extensions/zalo/src/api.ts +0 -206
- package/extensions/zalo/src/channel.directory.test.ts +0 -35
- package/extensions/zalo/src/channel.ts +0 -394
- package/extensions/zalo/src/config-schema.ts +0 -24
- package/extensions/zalo/src/monitor.ts +0 -760
- package/extensions/zalo/src/monitor.webhook.test.ts +0 -70
- package/extensions/zalo/src/onboarding.ts +0 -405
- package/extensions/zalo/src/probe.ts +0 -46
- package/extensions/zalo/src/proxy.ts +0 -18
- package/extensions/zalo/src/runtime.ts +0 -14
- package/extensions/zalo/src/send.ts +0 -117
- package/extensions/zalo/src/status-issues.ts +0 -50
- package/extensions/zalo/src/token.ts +0 -55
- package/extensions/zalo/src/types.ts +0 -42
- package/extensions/zalouser/CHANGELOG.md +0 -33
- package/extensions/zalouser/README.md +0 -221
- package/extensions/zalouser/clawdbot.plugin.json +0 -11
- package/extensions/zalouser/index.ts +0 -32
- package/extensions/zalouser/package.json +0 -33
- package/extensions/zalouser/src/accounts.ts +0 -117
- package/extensions/zalouser/src/channel.test.ts +0 -17
- package/extensions/zalouser/src/channel.ts +0 -641
- package/extensions/zalouser/src/config-schema.ts +0 -27
- package/extensions/zalouser/src/monitor.ts +0 -574
- package/extensions/zalouser/src/onboarding.ts +0 -488
- package/extensions/zalouser/src/probe.ts +0 -28
- package/extensions/zalouser/src/runtime.ts +0 -14
- package/extensions/zalouser/src/send.ts +0 -150
- package/extensions/zalouser/src/status-issues.test.ts +0 -58
- package/extensions/zalouser/src/status-issues.ts +0 -81
- package/extensions/zalouser/src/tool.ts +0 -156
- package/extensions/zalouser/src/types.ts +0 -102
- package/extensions/zalouser/src/zca.ts +0 -208
- package/skills/1password/SKILL.md +0 -53
- package/skills/1password/references/cli-examples.md +0 -29
- package/skills/1password/references/get-started.md +0 -17
- package/skills/apple-notes/SKILL.md +0 -50
- package/skills/apple-reminders/SKILL.md +0 -67
- package/skills/bear-notes/SKILL.md +0 -79
- package/skills/bird/SKILL.md +0 -197
- package/skills/blogwatcher/SKILL.md +0 -46
- package/skills/blucli/SKILL.md +0 -27
- package/skills/bluebubbles/SKILL.md +0 -39
- package/skills/camsnap/SKILL.md +0 -25
- package/skills/canvas/SKILL.md +0 -189
- package/skills/clawdhub/SKILL.md +0 -53
- package/skills/coding-agent/SKILL.md +0 -278
- package/skills/discord/SKILL.md +0 -475
- package/skills/eightctl/SKILL.md +0 -29
- package/skills/food-order/SKILL.md +0 -41
- package/skills/gemini/SKILL.md +0 -23
- package/skills/gifgrep/SKILL.md +0 -47
- package/skills/github/SKILL.md +0 -48
- package/skills/gog/SKILL.md +0 -92
- package/skills/goplaces/SKILL.md +0 -30
- package/skills/himalaya/SKILL.md +0 -217
- package/skills/himalaya/references/configuration.md +0 -174
- package/skills/himalaya/references/message-composition.md +0 -182
- package/skills/imsg/SKILL.md +0 -25
- package/skills/local-places/SERVER_README.md +0 -101
- package/skills/local-places/SKILL.md +0 -91
- package/skills/local-places/pyproject.toml +0 -27
- package/skills/local-places/src/local_places/__init__.py +0 -2
- package/skills/local-places/src/local_places/google_places.py +0 -314
- package/skills/local-places/src/local_places/main.py +0 -65
- package/skills/local-places/src/local_places/schemas.py +0 -107
- package/skills/mcporter/SKILL.md +0 -38
- package/skills/model-usage/SKILL.md +0 -45
- package/skills/model-usage/references/codexbar-cli.md +0 -28
- package/skills/model-usage/scripts/model_usage.py +0 -310
- package/skills/nano-banana-pro/SKILL.md +0 -30
- package/skills/nano-banana-pro/scripts/generate_image.py +0 -169
- package/skills/nano-pdf/SKILL.md +0 -20
- package/skills/notion/SKILL.md +0 -156
- package/skills/obsidian/SKILL.md +0 -55
- package/skills/openai-image-gen/SKILL.md +0 -71
- package/skills/openai-image-gen/scripts/gen.py +0 -240
- package/skills/openai-whisper/SKILL.md +0 -19
- package/skills/openai-whisper-api/SKILL.md +0 -43
- package/skills/openai-whisper-api/scripts/transcribe.sh +0 -85
- package/skills/openhue/SKILL.md +0 -30
- package/skills/oracle/SKILL.md +0 -105
- package/skills/ordercli/SKILL.md +0 -47
- package/skills/peekaboo/SKILL.md +0 -153
- package/skills/sag/SKILL.md +0 -62
- package/skills/session-logs/SKILL.md +0 -105
- package/skills/sherpa-onnx-tts/SKILL.md +0 -49
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
- package/skills/skill-creator/SKILL.md +0 -371
- package/skills/skill-creator/license.txt +0 -202
- package/skills/skill-creator/scripts/init_skill.py +0 -378
- package/skills/skill-creator/scripts/package_skill.py +0 -111
- package/skills/skill-creator/scripts/quick_validate.py +0 -101
- package/skills/slack/SKILL.md +0 -144
- package/skills/songsee/SKILL.md +0 -29
- package/skills/sonoscli/SKILL.md +0 -26
- package/skills/spotify-player/SKILL.md +0 -34
- package/skills/summarize/SKILL.md +0 -67
- package/skills/things-mac/SKILL.md +0 -61
- package/skills/tmux/SKILL.md +0 -121
- package/skills/tmux/scripts/find-sessions.sh +0 -112
- package/skills/tmux/scripts/wait-for-text.sh +0 -83
- package/skills/trello/SKILL.md +0 -84
- package/skills/video-frames/SKILL.md +0 -29
- package/skills/video-frames/scripts/frame.sh +0 -81
- package/skills/voice-call/SKILL.md +0 -35
- package/skills/wacli/SKILL.md +0 -42
- 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.
|