@hera-al/server 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +325 -0
  3. package/bundled/apple-notes/SKILL.md +77 -0
  4. package/bundled/apple-reminders/SKILL.md +96 -0
  5. package/bundled/blogwatcher/SKILL.md +69 -0
  6. package/bundled/camsnap/SKILL.md +45 -0
  7. package/bundled/discord/SKILL.md +578 -0
  8. package/bundled/gemini/SKILL.md +43 -0
  9. package/bundled/gifgrep/SKILL.md +79 -0
  10. package/bundled/github/SKILL.md +77 -0
  11. package/bundled/gog/SKILL.md +116 -0
  12. package/bundled/goplaces/SKILL.md +52 -0
  13. package/bundled/himalaya/SKILL.md +257 -0
  14. package/bundled/himalaya/references/configuration.md +184 -0
  15. package/bundled/himalaya/references/message-composition.md +199 -0
  16. package/bundled/homebrew/SKILL.md +82 -0
  17. package/bundled/local-places/SERVER_README.md +101 -0
  18. package/bundled/local-places/SKILL.md +102 -0
  19. package/bundled/local-places/pyproject.toml +21 -0
  20. package/bundled/local-places/src/local_places/__init__.py +2 -0
  21. package/bundled/local-places/src/local_places/google_places.py +314 -0
  22. package/bundled/local-places/src/local_places/main.py +65 -0
  23. package/bundled/local-places/src/local_places/schemas.py +107 -0
  24. package/bundled/markitdown/SKILL.md +96 -0
  25. package/bundled/mcporter/SKILL.md +61 -0
  26. package/bundled/merge-pr/SKILL.md +187 -0
  27. package/bundled/merge-pr/agents/openai.yaml +4 -0
  28. package/bundled/nano-banana-pro/SKILL.md +58 -0
  29. package/bundled/nano-banana-pro/scripts/generate_image.py +184 -0
  30. package/bundled/nano-pdf/SKILL.md +38 -0
  31. package/bundled/open-prose/README.md +25 -0
  32. package/bundled/open-prose/index.ts +5 -0
  33. package/bundled/open-prose/openclaw.plugin.json +11 -0
  34. package/bundled/open-prose/package.json +15 -0
  35. package/bundled/open-prose/skills/prose/LICENSE +21 -0
  36. package/bundled/open-prose/skills/prose/SKILL.md +323 -0
  37. package/bundled/open-prose/skills/prose/alt-borges.md +141 -0
  38. package/bundled/open-prose/skills/prose/alts/arabian-nights.md +358 -0
  39. package/bundled/open-prose/skills/prose/alts/borges.md +360 -0
  40. package/bundled/open-prose/skills/prose/alts/folk.md +322 -0
  41. package/bundled/open-prose/skills/prose/alts/homer.md +346 -0
  42. package/bundled/open-prose/skills/prose/alts/kafka.md +373 -0
  43. package/bundled/open-prose/skills/prose/compiler.md +2971 -0
  44. package/bundled/open-prose/skills/prose/examples/01-hello-world.prose +4 -0
  45. package/bundled/open-prose/skills/prose/examples/02-research-and-summarize.prose +6 -0
  46. package/bundled/open-prose/skills/prose/examples/03-code-review.prose +17 -0
  47. package/bundled/open-prose/skills/prose/examples/04-write-and-refine.prose +14 -0
  48. package/bundled/open-prose/skills/prose/examples/05-debug-issue.prose +20 -0
  49. package/bundled/open-prose/skills/prose/examples/06-explain-codebase.prose +17 -0
  50. package/bundled/open-prose/skills/prose/examples/07-refactor.prose +20 -0
  51. package/bundled/open-prose/skills/prose/examples/08-blog-post.prose +20 -0
  52. package/bundled/open-prose/skills/prose/examples/09-research-with-agents.prose +25 -0
  53. package/bundled/open-prose/skills/prose/examples/10-code-review-agents.prose +32 -0
  54. package/bundled/open-prose/skills/prose/examples/11-skills-and-imports.prose +27 -0
  55. package/bundled/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +43 -0
  56. package/bundled/open-prose/skills/prose/examples/13-variables-and-context.prose +51 -0
  57. package/bundled/open-prose/skills/prose/examples/14-composition-blocks.prose +48 -0
  58. package/bundled/open-prose/skills/prose/examples/15-inline-sequences.prose +23 -0
  59. package/bundled/open-prose/skills/prose/examples/16-parallel-reviews.prose +19 -0
  60. package/bundled/open-prose/skills/prose/examples/17-parallel-research.prose +19 -0
  61. package/bundled/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +36 -0
  62. package/bundled/open-prose/skills/prose/examples/19-advanced-parallel.prose +71 -0
  63. package/bundled/open-prose/skills/prose/examples/20-fixed-loops.prose +20 -0
  64. package/bundled/open-prose/skills/prose/examples/21-pipeline-operations.prose +35 -0
  65. package/bundled/open-prose/skills/prose/examples/22-error-handling.prose +51 -0
  66. package/bundled/open-prose/skills/prose/examples/23-retry-with-backoff.prose +63 -0
  67. package/bundled/open-prose/skills/prose/examples/24-choice-blocks.prose +86 -0
  68. package/bundled/open-prose/skills/prose/examples/25-conditionals.prose +114 -0
  69. package/bundled/open-prose/skills/prose/examples/26-parameterized-blocks.prose +100 -0
  70. package/bundled/open-prose/skills/prose/examples/27-string-interpolation.prose +105 -0
  71. package/bundled/open-prose/skills/prose/examples/28-automated-pr-review.prose +37 -0
  72. package/bundled/open-prose/skills/prose/examples/28-gas-town.prose +1572 -0
  73. package/bundled/open-prose/skills/prose/examples/29-captains-chair.prose +218 -0
  74. package/bundled/open-prose/skills/prose/examples/30-captains-chair-simple.prose +42 -0
  75. package/bundled/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +145 -0
  76. package/bundled/open-prose/skills/prose/examples/33-pr-review-autofix.prose +168 -0
  77. package/bundled/open-prose/skills/prose/examples/34-content-pipeline.prose +204 -0
  78. package/bundled/open-prose/skills/prose/examples/35-feature-factory.prose +296 -0
  79. package/bundled/open-prose/skills/prose/examples/36-bug-hunter.prose +237 -0
  80. package/bundled/open-prose/skills/prose/examples/37-the-forge.prose +1474 -0
  81. package/bundled/open-prose/skills/prose/examples/38-skill-scan.prose +455 -0
  82. package/bundled/open-prose/skills/prose/examples/39-architect-by-simulation.prose +277 -0
  83. package/bundled/open-prose/skills/prose/examples/40-rlm-self-refine.prose +32 -0
  84. package/bundled/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +38 -0
  85. package/bundled/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +46 -0
  86. package/bundled/open-prose/skills/prose/examples/43-rlm-pairwise.prose +50 -0
  87. package/bundled/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +261 -0
  88. package/bundled/open-prose/skills/prose/examples/45-plugin-release.prose +159 -0
  89. package/bundled/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +637 -0
  90. package/bundled/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +148 -0
  91. package/bundled/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +225 -0
  92. package/bundled/open-prose/skills/prose/examples/47-language-self-improvement.prose +356 -0
  93. package/bundled/open-prose/skills/prose/examples/48-habit-miner.prose +445 -0
  94. package/bundled/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +210 -0
  95. package/bundled/open-prose/skills/prose/examples/README.md +391 -0
  96. package/bundled/open-prose/skills/prose/examples/roadmap/README.md +22 -0
  97. package/bundled/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +20 -0
  98. package/bundled/open-prose/skills/prose/examples/roadmap/parallel-review.prose +18 -0
  99. package/bundled/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +17 -0
  100. package/bundled/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +223 -0
  101. package/bundled/open-prose/skills/prose/guidance/antipatterns.md +951 -0
  102. package/bundled/open-prose/skills/prose/guidance/patterns.md +700 -0
  103. package/bundled/open-prose/skills/prose/guidance/system-prompt.md +180 -0
  104. package/bundled/open-prose/skills/prose/help.md +144 -0
  105. package/bundled/open-prose/skills/prose/lib/README.md +108 -0
  106. package/bundled/open-prose/skills/prose/lib/calibrator.prose +215 -0
  107. package/bundled/open-prose/skills/prose/lib/cost-analyzer.prose +174 -0
  108. package/bundled/open-prose/skills/prose/lib/error-forensics.prose +250 -0
  109. package/bundled/open-prose/skills/prose/lib/inspector.prose +196 -0
  110. package/bundled/open-prose/skills/prose/lib/profiler.prose +460 -0
  111. package/bundled/open-prose/skills/prose/lib/program-improver.prose +275 -0
  112. package/bundled/open-prose/skills/prose/lib/project-memory.prose +118 -0
  113. package/bundled/open-prose/skills/prose/lib/user-memory.prose +93 -0
  114. package/bundled/open-prose/skills/prose/lib/vm-improver.prose +243 -0
  115. package/bundled/open-prose/skills/prose/primitives/session.md +593 -0
  116. package/bundled/open-prose/skills/prose/prose.md +1237 -0
  117. package/bundled/open-prose/skills/prose/state/filesystem.md +498 -0
  118. package/bundled/open-prose/skills/prose/state/in-context.md +384 -0
  119. package/bundled/open-prose/skills/prose/state/postgres.md +880 -0
  120. package/bundled/open-prose/skills/prose/state/sqlite.md +574 -0
  121. package/bundled/peekaboo/SKILL.md +190 -0
  122. package/bundled/prepare-pr/SKILL.md +277 -0
  123. package/bundled/prepare-pr/agents/openai.yaml +4 -0
  124. package/bundled/review-pr/SKILL.md +228 -0
  125. package/bundled/review-pr/agents/openai.yaml +4 -0
  126. package/bundled/sag/SKILL.md +87 -0
  127. package/bundled/skill-creator/SKILL.md +370 -0
  128. package/bundled/skill-creator/license.txt +202 -0
  129. package/bundled/skill-creator/scripts/init_skill.py +378 -0
  130. package/bundled/skill-creator/scripts/package_skill.py +111 -0
  131. package/bundled/skill-creator/scripts/quick_validate.py +101 -0
  132. package/bundled/spotify-player/SKILL.md +64 -0
  133. package/bundled/ssh/SKILL.md +119 -0
  134. package/bundled/summarize/SKILL.md +87 -0
  135. package/bundled/video-frames/SKILL.md +46 -0
  136. package/bundled/video-frames/scripts/frame.sh +81 -0
  137. package/bundled/voice-call/SKILL.md +45 -0
  138. package/bundled/wacli/SKILL.md +72 -0
  139. package/bundled/weather/SKILL.md +54 -0
  140. package/dist/agent/agent-service.d.ts +88 -0
  141. package/dist/agent/agent-service.js +1 -0
  142. package/dist/agent/message-queue.d.ts +24 -0
  143. package/dist/agent/message-queue.js +1 -0
  144. package/dist/agent/prompt-builder.d.ts +58 -0
  145. package/dist/agent/prompt-builder.js +1 -0
  146. package/dist/agent/session-agent.d.ts +197 -0
  147. package/dist/agent/session-agent.js +1 -0
  148. package/dist/agent/session-db.d.ts +26 -0
  149. package/dist/agent/session-db.js +1 -0
  150. package/dist/agent/session-error-handler.d.ts +37 -0
  151. package/dist/agent/session-error-handler.js +1 -0
  152. package/dist/agent/session-manager.d.ts +19 -0
  153. package/dist/agent/session-manager.js +1 -0
  154. package/dist/agent/workspace-files.d.ts +51 -0
  155. package/dist/agent/workspace-files.js +1 -0
  156. package/dist/auth/auth-middleware.d.ts +9 -0
  157. package/dist/auth/auth-middleware.js +1 -0
  158. package/dist/auth/node-signature-db.d.ts +30 -0
  159. package/dist/auth/node-signature-db.js +1 -0
  160. package/dist/auth/token-db.d.ts +38 -0
  161. package/dist/auth/token-db.js +1 -0
  162. package/dist/browser/browser-service.d.ts +9 -0
  163. package/dist/browser/browser-service.js +1 -0
  164. package/dist/channels/channel.d.ts +2 -0
  165. package/dist/channels/channel.js +1 -0
  166. package/dist/channels/responses.d.ts +21 -0
  167. package/dist/channels/responses.js +1 -0
  168. package/dist/commands/clear.d.ts +7 -0
  169. package/dist/commands/clear.js +1 -0
  170. package/dist/commands/cmd.d.ts +7 -0
  171. package/dist/commands/cmd.js +1 -0
  172. package/dist/commands/coder.d.ts +12 -0
  173. package/dist/commands/coder.js +1 -0
  174. package/dist/commands/command-registry.d.ts +12 -0
  175. package/dist/commands/command-registry.js +1 -0
  176. package/dist/commands/command.d.ts +22 -0
  177. package/dist/commands/command.js +1 -0
  178. package/dist/commands/compact.d.ts +7 -0
  179. package/dist/commands/compact.js +1 -0
  180. package/dist/commands/customsubagents.d.ts +15 -0
  181. package/dist/commands/customsubagents.js +1 -0
  182. package/dist/commands/help.d.ts +9 -0
  183. package/dist/commands/help.js +1 -0
  184. package/dist/commands/mcp.d.ts +9 -0
  185. package/dist/commands/mcp.js +1 -0
  186. package/dist/commands/model.d.ts +22 -0
  187. package/dist/commands/model.js +1 -0
  188. package/dist/commands/models.d.ts +11 -0
  189. package/dist/commands/models.js +1 -0
  190. package/dist/commands/new.d.ts +7 -0
  191. package/dist/commands/new.js +1 -0
  192. package/dist/commands/plugin.d.ts +7 -0
  193. package/dist/commands/plugin.js +1 -0
  194. package/dist/commands/sandbox.d.ts +12 -0
  195. package/dist/commands/sandbox.js +1 -0
  196. package/dist/commands/showtool.d.ts +12 -0
  197. package/dist/commands/showtool.js +1 -0
  198. package/dist/commands/status.d.ts +24 -0
  199. package/dist/commands/status.js +1 -0
  200. package/dist/commands/stop.d.ts +10 -0
  201. package/dist/commands/stop.js +1 -0
  202. package/dist/commands/subagents.d.ts +12 -0
  203. package/dist/commands/subagents.js +1 -0
  204. package/dist/commands/usage.d.ts +25 -0
  205. package/dist/commands/usage.js +1 -0
  206. package/dist/commands/useplugin.d.ts +7 -0
  207. package/dist/commands/useplugin.js +1 -0
  208. package/dist/config-watcher.d.ts +14 -0
  209. package/dist/config-watcher.js +1 -0
  210. package/dist/config.d.ts +267 -0
  211. package/dist/config.js +1 -0
  212. package/dist/cron/cron-service.d.ts +57 -0
  213. package/dist/cron/cron-service.js +1 -0
  214. package/dist/cron/heartbeat-token.d.ts +29 -0
  215. package/dist/cron/heartbeat-token.js +1 -0
  216. package/dist/cron/schedule.d.ts +3 -0
  217. package/dist/cron/schedule.js +1 -0
  218. package/dist/cron/store.d.ts +4 -0
  219. package/dist/cron/store.js +1 -0
  220. package/dist/cron/types.d.ts +47 -0
  221. package/dist/cron/types.js +1 -0
  222. package/dist/gateway/bridge.d.ts +38 -0
  223. package/dist/gateway/bridge.js +1 -0
  224. package/dist/gateway/channel-manager.d.ts +45 -0
  225. package/dist/gateway/channel-manager.js +1 -0
  226. package/dist/gateway/channels/qr-image.d.ts +5 -0
  227. package/dist/gateway/channels/qr-image.js +1 -0
  228. package/dist/gateway/channels/telegram.d.ts +39 -0
  229. package/dist/gateway/channels/telegram.js +1 -0
  230. package/dist/gateway/channels/webchat.d.ts +51 -0
  231. package/dist/gateway/channels/webchat.js +1 -0
  232. package/dist/gateway/channels/whatsapp.d.ts +40 -0
  233. package/dist/gateway/channels/whatsapp.js +1 -0
  234. package/dist/gateway/node-registry.d.ts +38 -0
  235. package/dist/gateway/node-registry.js +1 -0
  236. package/dist/heracli/index.d.ts +3 -0
  237. package/dist/heracli/index.js +2 -0
  238. package/dist/heracli/logs.d.ts +13 -0
  239. package/dist/heracli/logs.js +1 -0
  240. package/dist/heracli/security/audit.d.ts +17 -0
  241. package/dist/heracli/security/audit.js +1 -0
  242. package/dist/heracli/security/checks/channel-policies.d.ts +6 -0
  243. package/dist/heracli/security/checks/channel-policies.js +1 -0
  244. package/dist/heracli/security/checks/credentials.d.ts +6 -0
  245. package/dist/heracli/security/checks/credentials.js +1 -0
  246. package/dist/heracli/security/checks/fs-permissions.d.ts +6 -0
  247. package/dist/heracli/security/checks/fs-permissions.js +1 -0
  248. package/dist/heracli/security/checks/network.d.ts +4 -0
  249. package/dist/heracli/security/checks/network.js +1 -0
  250. package/dist/heracli/security/report.d.ts +4 -0
  251. package/dist/heracli/security/report.js +1 -0
  252. package/dist/index.d.ts +3 -0
  253. package/dist/index.js +2 -0
  254. package/dist/installer/hera.d.ts +3 -0
  255. package/dist/installer/hera.js +2 -0
  256. package/dist/media/message-processor.d.ts +23 -0
  257. package/dist/media/message-processor.js +1 -0
  258. package/dist/memory/memory-manager.d.ts +21 -0
  259. package/dist/memory/memory-manager.js +1 -0
  260. package/dist/memory/memory-provider.d.ts +22 -0
  261. package/dist/memory/memory-provider.js +1 -0
  262. package/dist/memory/memory-search.d.ts +102 -0
  263. package/dist/memory/memory-search.js +1 -0
  264. package/dist/memory/recall-strategies.d.ts +2 -0
  265. package/dist/memory/recall-strategies.js +1 -0
  266. package/dist/nostromo/auth.d.ts +29 -0
  267. package/dist/nostromo/auth.js +1 -0
  268. package/dist/nostromo/nostromo.d.ts +23 -0
  269. package/dist/nostromo/nostromo.js +1 -0
  270. package/dist/nostromo/ui-html-layout.d.ts +3 -0
  271. package/dist/nostromo/ui-html-layout.js +1 -0
  272. package/dist/nostromo/ui-html-modals.d.ts +3 -0
  273. package/dist/nostromo/ui-html-modals.js +1 -0
  274. package/dist/nostromo/ui-js-agent.d.ts +3 -0
  275. package/dist/nostromo/ui-js-agent.js +1 -0
  276. package/dist/nostromo/ui-js-channels.d.ts +3 -0
  277. package/dist/nostromo/ui-js-channels.js +1 -0
  278. package/dist/nostromo/ui-js-competences.d.ts +3 -0
  279. package/dist/nostromo/ui-js-competences.js +1 -0
  280. package/dist/nostromo/ui-js-config.d.ts +3 -0
  281. package/dist/nostromo/ui-js-config.js +1 -0
  282. package/dist/nostromo/ui-js-core.d.ts +3 -0
  283. package/dist/nostromo/ui-js-core.js +1 -0
  284. package/dist/nostromo/ui-js-ops.d.ts +3 -0
  285. package/dist/nostromo/ui-js-ops.js +1 -0
  286. package/dist/nostromo/ui-js-prompts.d.ts +3 -0
  287. package/dist/nostromo/ui-js-prompts.js +1 -0
  288. package/dist/nostromo/ui-styles.d.ts +3 -0
  289. package/dist/nostromo/ui-styles.js +1 -0
  290. package/dist/nostromo/ui.d.ts +2 -0
  291. package/dist/nostromo/ui.js +1 -0
  292. package/dist/server.d.ts +80 -0
  293. package/dist/server.js +1 -0
  294. package/dist/stt/local-whisper.d.ts +9 -0
  295. package/dist/stt/local-whisper.js +1 -0
  296. package/dist/stt/openai-whisper.d.ts +14 -0
  297. package/dist/stt/openai-whisper.js +1 -0
  298. package/dist/stt/stt-loader.d.ts +4 -0
  299. package/dist/stt/stt-loader.js +1 -0
  300. package/dist/stt/stt-provider.d.ts +4 -0
  301. package/dist/stt/stt-provider.js +1 -0
  302. package/dist/tools/browser-tools.d.ts +9 -0
  303. package/dist/tools/browser-tools.js +1 -0
  304. package/dist/tools/cron-tools.d.ts +4 -0
  305. package/dist/tools/cron-tools.js +1 -0
  306. package/dist/tools/memory-tools.d.ts +3 -0
  307. package/dist/tools/memory-tools.js +1 -0
  308. package/dist/tools/message-tools.d.ts +5 -0
  309. package/dist/tools/message-tools.js +1 -0
  310. package/dist/tools/node-tools.d.ts +3 -0
  311. package/dist/tools/node-tools.js +1 -0
  312. package/dist/tools/server-tools.d.ts +2 -0
  313. package/dist/tools/server-tools.js +1 -0
  314. package/dist/tools/tts-tools.d.ts +3 -0
  315. package/dist/tools/tts-tools.js +1 -0
  316. package/dist/tts/tts-service.d.ts +19 -0
  317. package/dist/tts/tts-service.js +1 -0
  318. package/dist/utils/chunk.d.ts +3 -0
  319. package/dist/utils/chunk.js +1 -0
  320. package/dist/utils/logger.d.ts +16 -0
  321. package/dist/utils/logger.js +1 -0
  322. package/dist/utils/markdown/fences.d.ts +11 -0
  323. package/dist/utils/markdown/fences.js +1 -0
  324. package/dist/utils/markdown/ir.d.ts +33 -0
  325. package/dist/utils/markdown/ir.js +1 -0
  326. package/dist/utils/markdown/render.d.ts +19 -0
  327. package/dist/utils/markdown/render.js +1 -0
  328. package/dist/utils/markdown/tables.d.ts +3 -0
  329. package/dist/utils/markdown/tables.js +1 -0
  330. package/dist/utils/media-response.d.ts +29 -0
  331. package/dist/utils/media-response.js +1 -0
  332. package/dist/utils/package-paths.d.ts +5 -0
  333. package/dist/utils/package-paths.js +1 -0
  334. package/dist/utils/telegram-format.d.ts +13 -0
  335. package/dist/utils/telegram-format.js +1 -0
  336. package/installationPkg/.env.example +26 -0
  337. package/installationPkg/AGENTS.md +143 -0
  338. package/installationPkg/BOOTSTRAP.md +45 -0
  339. package/installationPkg/CBINT.json +16 -0
  340. package/installationPkg/HEARTBEAT.md +5 -0
  341. package/installationPkg/IDENTITY.md +7 -0
  342. package/installationPkg/SOUL.md +36 -0
  343. package/installationPkg/SYSTEM_PROMPT.md +55 -0
  344. package/installationPkg/SYSTEM_PROMPT_SUBAGENT.md +40 -0
  345. package/installationPkg/TOOLS.md +36 -0
  346. package/installationPkg/USER.md +11 -0
  347. package/installationPkg/config.example.yaml +291 -0
  348. package/package.json +95 -0
@@ -0,0 +1,498 @@
1
+ ---
2
+ role: file-system-state-management
3
+ summary: |
4
+ File-system state management for OpenProse programs. This approach persists
5
+ execution state to the `.prose/` directory, enabling inspection, resumption,
6
+ and long-running workflows.
7
+ see-also:
8
+ - ../prose.md: VM execution semantics
9
+ - in-context.md: In-context state management (alternative approach)
10
+ - sqlite.md: SQLite state management (experimental)
11
+ - postgres.md: PostgreSQL state management (experimental)
12
+ - ../primitives/session.md: Session context and compaction guidelines
13
+ ---
14
+
15
+ # File-System State Management
16
+
17
+ This document describes how the OpenProse VM tracks execution state using **files in the `.prose/` directory**. This is one of two state management approaches (the other being in-context state in `in-context.md`).
18
+
19
+ ## Overview
20
+
21
+ File-based state persists all execution artifacts to disk. This enables:
22
+
23
+ - **Inspection**: See exactly what happened at each step
24
+ - **Resumption**: Pick up interrupted programs
25
+ - **Long-running workflows**: Handle programs that exceed context limits
26
+ - **Debugging**: Trace through execution history
27
+
28
+ **Key principle:** Files are inspectable artifacts. The directory structure IS the execution state.
29
+
30
+ ---
31
+
32
+ ## Directory Structure
33
+
34
+ ```
35
+ # Project-level state (in working directory)
36
+ .prose/
37
+ ├── .env # Config (simple key=value format)
38
+ ├── runs/
39
+ │ └── {YYYYMMDD}-{HHMMSS}-{random}/
40
+ │ ├── program.prose # Copy of running program
41
+ │ ├── state.md # Execution state with code snippets
42
+ │ ├── bindings/
43
+ │ │ ├── {name}.md # Root scope bindings
44
+ │ │ └── {name}__{execution_id}.md # Scoped bindings (block invocations)
45
+ │ ├── imports/
46
+ │ │ └── {handle}--{slug}/ # Nested program executions (same structure recursively)
47
+ │ └── agents/
48
+ │ └── {name}/
49
+ │ ├── memory.md # Agent's current state
50
+ │ ├── {name}-001.md # Historical segments (flattened)
51
+ │ ├── {name}-002.md
52
+ │ └── ...
53
+ └── agents/ # Project-scoped agent memory
54
+ └── {name}/
55
+ ├── memory.md
56
+ ├── {name}-001.md
57
+ └── ...
58
+
59
+ # User-level state (in home directory)
60
+ ~/.prose/
61
+ └── agents/ # User-scoped agent memory (cross-project)
62
+ └── {name}/
63
+ ├── memory.md
64
+ ├── {name}-001.md
65
+ └── ...
66
+ ```
67
+
68
+ ### Run ID Format
69
+
70
+ Format: `{YYYYMMDD}-{HHMMSS}-{random6}`
71
+
72
+ Example: `20260115-143052-a7b3c9`
73
+
74
+ No "run-" prefix needed—the directory name makes context obvious.
75
+
76
+ ### Segment Numbering
77
+
78
+ Segments use 3-digit zero-padded numbers: `captain-001.md`, `captain-002.md`, etc.
79
+
80
+ If a program exceeds 999 segments, extend to 4 digits: `captain-1000.md`.
81
+
82
+ ---
83
+
84
+ ## File Formats
85
+
86
+ ### `.prose/.env`
87
+
88
+ Simple key=value configuration file:
89
+
90
+ ```env
91
+ OPENPROSE_TELEMETRY=enabled
92
+ USER_ID=user-a7b3c9d4e5f6
93
+ SESSION_ID=sess-1704326400000-x9y8z7
94
+ ```
95
+
96
+ **Why this format:** Self-evident, no JSON parsing needed, familiar to developers.
97
+
98
+ ---
99
+
100
+ ### `state.md`
101
+
102
+ The execution state file shows the program's current position using **annotated code snippets**. This makes it self-evident where execution is and what has happened.
103
+
104
+ **Only the VM writes this file.** Subagents never modify `state.md`.
105
+
106
+ The format shows:
107
+
108
+ - **Full history** of executed code with inline annotations
109
+ - **Current position** clearly marked with status
110
+ - **~5-10 lines ahead** of current position (what's coming next)
111
+ - **Index** of all bindings and agents with file paths
112
+
113
+ ````markdown
114
+ # Execution State
115
+
116
+ run: 20260115-143052-a7b3c9
117
+ program: feature-implementation.prose
118
+ started: 2026-01-15T14:30:52Z
119
+ updated: 2026-01-15T14:35:22Z
120
+
121
+ ## Execution Trace
122
+
123
+ ```prose
124
+ agent researcher:
125
+ model: sonnet
126
+ prompt: "You research topics thoroughly"
127
+
128
+ agent captain:
129
+ model: opus
130
+ persist: true
131
+ prompt: "You coordinate and review"
132
+
133
+ let research = session: researcher # --> bindings/research.md
134
+ prompt: "Research AI safety"
135
+
136
+ parallel:
137
+ a = session "Analyze risk A" # --> bindings/a.md (complete)
138
+ b = session "Analyze risk B" # <-- EXECUTING
139
+
140
+ loop until **analysis complete** (max: 3): # [not yet entered]
141
+ session "Synthesize"
142
+ context: { a, b, research }
143
+
144
+ resume: captain # [...next...]
145
+ prompt: "Review the synthesis"
146
+ context: synthesis
147
+ ```
148
+ ````
149
+
150
+ ## Active Constructs
151
+
152
+ ### Parallel (lines 14-16)
153
+
154
+ - a: complete
155
+ - b: executing
156
+
157
+ ### Loop (lines 18-21)
158
+
159
+ - status: not yet entered
160
+ - iteration: 0/3
161
+ - condition: **analysis complete**
162
+
163
+ ## Index
164
+
165
+ ### Bindings
166
+
167
+ | Name | Kind | Path | Execution ID |
168
+ | -------- | ---- | ------------------------ | ------------ |
169
+ | research | let | bindings/research.md | (root) |
170
+ | a | let | bindings/a.md | (root) |
171
+ | result | let | bindings/result\_\_43.md | 43 |
172
+
173
+ ### Agents
174
+
175
+ | Name | Scope | Path |
176
+ | ------- | --------- | --------------- |
177
+ | captain | execution | agents/captain/ |
178
+
179
+ ## Call Stack
180
+
181
+ | execution_id | block | depth | status |
182
+ | ------------ | ------- | ----- | --------- |
183
+ | 43 | process | 3 | executing |
184
+ | 42 | process | 2 | waiting |
185
+ | 41 | process | 1 | waiting |
186
+
187
+ ````
188
+
189
+ **Status annotations:**
190
+
191
+ | Annotation | Meaning |
192
+ |------------|---------|
193
+ | `# --> bindings/name.md` | Output written to this file |
194
+ | `# <-- EXECUTING` | Currently executing this statement |
195
+ | `# (complete)` | Statement finished successfully |
196
+ | `# [not yet entered]` | Block not yet reached |
197
+ | `# [...next...]` | Coming up next |
198
+ | `# <-- RETRYING (attempt 2/3)` | Retry in progress |
199
+
200
+ ---
201
+
202
+ ### `bindings/{name}.md`
203
+
204
+ All named values (input, output, let, const) are stored as binding files.
205
+
206
+ ```markdown
207
+ # research
208
+
209
+ kind: let
210
+
211
+ source:
212
+ ```prose
213
+ let research = session: researcher
214
+ prompt: "Research AI safety"
215
+ ````
216
+
217
+ ---
218
+
219
+ AI safety research covers several key areas including alignment,
220
+ robustness, and interpretability. The field has grown significantly
221
+ since 2020 with major contributions from...
222
+
223
+ ````
224
+
225
+ **Structure:**
226
+ - Header with binding name
227
+ - `kind:` field indicating type (input, output, let, const)
228
+ - `source:` code snippet showing origin
229
+ - `---` separator
230
+ - Actual value below
231
+
232
+ **The `kind` field distinguishes:**
233
+
234
+ | Kind | Meaning |
235
+ |------|---------|
236
+ | `input` | Value received from caller |
237
+ | `output` | Value to return to caller |
238
+ | `let` | Mutable variable |
239
+ | `const` | Immutable variable |
240
+
241
+ ### Anonymous Session Bindings
242
+
243
+ Sessions without explicit output capture still produce results:
244
+
245
+ ```prose
246
+ session "Analyze the codebase" # No `let x = ...` capture
247
+ ````
248
+
249
+ These get auto-generated names with an `anon_` prefix:
250
+
251
+ - `bindings/anon_001.md`
252
+ - `bindings/anon_002.md`
253
+ - etc.
254
+
255
+ This ensures all session outputs are persisted and inspectable.
256
+
257
+ ---
258
+
259
+ ### Scoped Bindings (Block Invocations)
260
+
261
+ When a binding is created inside a block invocation, it's scoped to that execution frame to prevent collisions across recursive calls.
262
+
263
+ **Naming convention:** `{name}__{execution_id}.md`
264
+
265
+ Examples:
266
+
267
+ - `bindings/result__43.md` — binding `result` in execution_id 43
268
+ - `bindings/parts__44.md` — binding `parts` in execution_id 44
269
+
270
+ **File format with execution scope:**
271
+
272
+ ````markdown
273
+ # result
274
+
275
+ kind: let
276
+ execution_id: 43
277
+
278
+ source:
279
+
280
+ ```prose
281
+ let result = session "Process chunk"
282
+ ```
283
+ ````
284
+
285
+ ---
286
+
287
+ Processed chunk into 3 sub-parts...
288
+
289
+ ```
290
+
291
+ **Scope resolution:** The VM resolves variable references by checking:
292
+ 1. `{name}__{current_execution_id}.md`
293
+ 2. `{name}__{parent_execution_id}.md`
294
+ 3. Continue up the call stack
295
+ 4. `{name}.md` (root scope)
296
+
297
+ The first match wins.
298
+
299
+ **Example directory for recursive calls:**
300
+
301
+ ```
302
+
303
+ bindings/
304
+ ├── data.md # Root scope input
305
+ ├── result**1.md # First process() invocation
306
+ ├── parts**1.md # Parts from first invocation
307
+ ├── result**2.md # Recursive call (depth 2)
308
+ ├── parts**2.md # Parts from depth 2
309
+ ├── result\_\_3.md # Recursive call (depth 3)
310
+ └── ...
311
+
312
+ ````
313
+
314
+ ---
315
+
316
+ ### Agent Memory Files
317
+
318
+ #### `agents/{name}/memory.md`
319
+
320
+ The agent's current accumulated state:
321
+
322
+ ```markdown
323
+ # Agent Memory: captain
324
+
325
+ ## Current Understanding
326
+
327
+ The project is implementing a REST API for user management.
328
+ Architecture uses Express + PostgreSQL. Test coverage target is 80%.
329
+
330
+ ## Decisions Made
331
+
332
+ - 2026-01-15: Approved JWT over session tokens (simpler stateless auth)
333
+ - 2026-01-15: Set 80% coverage threshold (balances quality vs velocity)
334
+
335
+ ## Open Concerns
336
+
337
+ - Rate limiting not yet implemented on login endpoint
338
+ - Need to verify OAuth flow works with new token format
339
+ ````
340
+
341
+ #### `agents/{name}/{name}-NNN.md` (Segments)
342
+
343
+ Historical records of each invocation, flattened in the same directory:
344
+
345
+ ```markdown
346
+ # Segment 001
347
+
348
+ timestamp: 2026-01-15T14:32:15Z
349
+ prompt: "Review the research findings"
350
+
351
+ ## Summary
352
+
353
+ - Reviewed: docs from parallel research session
354
+ - Found: good coverage of core concepts, missing edge cases
355
+ - Decided: proceed with implementation, note gaps for later
356
+ - Next: review implementation against identified gaps
357
+ ```
358
+
359
+ ---
360
+
361
+ ## Who Writes What
362
+
363
+ | File | Written By |
364
+ | ----------------------------- | ---------------- |
365
+ | `state.md` | VM only |
366
+ | `bindings/{name}.md` | Subagent |
367
+ | `agents/{name}/memory.md` | Persistent agent |
368
+ | `agents/{name}/{name}-NNN.md` | Persistent agent |
369
+
370
+ The VM orchestrates; subagents write their own outputs directly to the filesystem. **The VM never holds full binding values—it tracks file paths.**
371
+
372
+ ---
373
+
374
+ ## Subagent Output Writing
375
+
376
+ When the VM spawns a session, it tells the subagent where to write output.
377
+
378
+ ### For Regular Sessions
379
+
380
+ ````
381
+ When you complete this task, write your output to:
382
+ .prose/runs/20260115-143052-a7b3c9/bindings/research.md
383
+
384
+ Format:
385
+ # research
386
+
387
+ kind: let
388
+
389
+ source:
390
+ ```prose
391
+ let research = session: researcher
392
+ prompt: "Research AI safety"
393
+ ````
394
+
395
+ ---
396
+
397
+ [Your output here]
398
+
399
+ ```
400
+
401
+ ### For Persistent Agents (resume:)
402
+
403
+ ```
404
+
405
+ Your memory is at:
406
+ .prose/runs/20260115-143052-a7b3c9/agents/captain/memory.md
407
+
408
+ Read it first to understand your prior context. When done, update it
409
+ with your compacted state following the guidelines in primitives/session.md.
410
+
411
+ Also write your segment record to:
412
+ .prose/runs/20260115-143052-a7b3c9/agents/captain/captain-003.md
413
+
414
+ ```
415
+
416
+ ### What Subagents Return to the VM
417
+
418
+ After writing output, the subagent returns a **confirmation message**—not the full content:
419
+
420
+ **Root scope (outside block invocations):**
421
+ ```
422
+
423
+ Binding written: research
424
+ Location: .prose/runs/20260115-143052-a7b3c9/bindings/research.md
425
+ Summary: AI safety research covering alignment, robustness, and interpretability with 15 citations.
426
+
427
+ ```
428
+
429
+ **Inside block invocation (include execution_id):**
430
+ ```
431
+
432
+ Binding written: result
433
+ Location: .prose/runs/20260115-143052-a7b3c9/bindings/result\_\_43.md
434
+ Execution ID: 43
435
+ Summary: Processed chunk into 3 sub-parts for recursive processing.
436
+
437
+ ```
438
+
439
+ The VM records the location and continues. It does NOT read the file—it passes the reference to subsequent sessions that need the context.
440
+
441
+ ---
442
+
443
+ ## Imports Recursive Structure
444
+
445
+ Imported programs use the **same unified structure recursively**:
446
+
447
+ ```
448
+
449
+ .prose/runs/{id}/imports/{handle}--{slug}/
450
+ ├── program.prose
451
+ ├── state.md
452
+ ├── bindings/
453
+ │ └── {name}.md
454
+ ├── imports/ # Nested imports go here
455
+ │ └── {handle2}--{slug2}/
456
+ │ └── ...
457
+ └── agents/
458
+ └── {name}/
459
+
460
+ ```
461
+
462
+ This allows unlimited nesting depth while maintaining consistent structure at every level.
463
+
464
+ ---
465
+
466
+ ## Memory Scoping for Persistent Agents
467
+
468
+ | Scope | Declaration | Path | Lifetime |
469
+ |-------|-------------|------|----------|
470
+ | Execution (default) | `persist: true` | `.prose/runs/{id}/agents/{name}/` | Dies with run |
471
+ | Project | `persist: project` | `.prose/agents/{name}/` | Survives runs in project |
472
+ | User | `persist: user` | `~/.prose/agents/{name}/` | Survives across projects |
473
+ | Custom | `persist: "path"` | Specified path | User-controlled |
474
+
475
+ ---
476
+
477
+ ## VM Update Protocol
478
+
479
+ After each statement completes, the VM:
480
+
481
+ 1. **Confirms** subagent wrote its output file(s)
482
+ 2. **Updates** `state.md` with new position and annotations
483
+ 3. **Continues** to next statement
484
+
485
+ The VM never does compaction—that's the subagent's responsibility.
486
+
487
+ ---
488
+
489
+ ## Resuming Execution
490
+
491
+ If execution is interrupted, resume by:
492
+
493
+ 1. Reading `.prose/runs/{id}/state.md` to find current position
494
+ 2. Loading all bindings from `bindings/`
495
+ 3. Continuing from the marked position
496
+
497
+ The `state.md` file contains everything needed to understand where execution stopped and what has been accomplished.
498
+ ```