@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,148 @@
1
+ # /run Endpoint UX Test - Fast Loop
2
+ #
3
+ # Streamlined version optimized for speed:
4
+ # - Sonnet for most tasks (Opus only for complex synthesis)
5
+ # - Hardcoded defaults (no prompts for standard config)
6
+ # - Single-agent investigation (not 3 parallel)
7
+ # - Early exit on blocking errors
8
+ # - Auto-proceed for obvious decisions
9
+ # - Combined implement + test + review
10
+
11
+ # ============================================================================
12
+ # Configuration (hardcoded defaults - no user prompts)
13
+ # ============================================================================
14
+
15
+ const API_URL = "https://api-v2.prose.md"
16
+ const TEST_PROGRAM = """
17
+ # Quick Hello
18
+ session "Say hello and count to 5"
19
+ """
20
+
21
+ # Auth: Read from .env.test synchronously (no LLM needed)
22
+ const AUTH_CREDS = env("TEST_EMAIL", "TEST_PASSWORD") from ".env.test"
23
+ let auth_token = http.post("{API_URL}/auth/login", AUTH_CREDS).token
24
+
25
+ # ============================================================================
26
+ # Agents (Sonnet default, Opus only where complexity requires)
27
+ # ============================================================================
28
+
29
+ agent observer:
30
+ model: sonnet
31
+ persist: true
32
+ prompt: """UX researcher watching execution.
33
+ Focus on: latency, status clarity, error messages.
34
+ Signal IMMEDIATELY if you detect a blocking error (don't wait for completion).
35
+ Output: { blocking_error: bool, error_summary: string, observations: [...] }"""
36
+
37
+ agent investigator:
38
+ model: sonnet # Fast investigation
39
+ prompt: """Senior engineer diagnosing production errors.
40
+
41
+ COMBINED WORKFLOW (do all in one pass):
42
+ 1. Check code path that produced the error
43
+ 2. Examine logs/observations for timing and state
44
+ 3. Check execution context (env status, DB records)
45
+ 4. Self-verify: does evidence support conclusion?
46
+
47
+ Output a VERIFIED diagnosis:
48
+ - root_cause: specific and actionable
49
+ - evidence: concrete supporting data
50
+ - confidence: high/medium/low
51
+ - affected_files: list of files to change
52
+ - fix_approach: how to fix it"""
53
+
54
+ agent fixer:
55
+ model: sonnet
56
+ prompt: """Engineer implementing and verifying fixes.
57
+
58
+ COMBINED WORKFLOW:
59
+ 1. Implement the smallest fix that addresses root cause
60
+ 2. Run build/tests to verify
61
+ 3. Self-review: does it fix the issue without regressions?
62
+ 4. Commit if passing
63
+
64
+ Output: { implemented: bool, files_changed: [...], tests_pass: bool, commit_sha: string }"""
65
+
66
+ agent triage:
67
+ model: sonnet
68
+ prompt: """Tech lead classifying fixes.
69
+ QUICK: <3 files, <1hr, no architecture changes, low risk
70
+ BIGGER: anything else
71
+ Output: { decision: "quick"|"bigger", rationale: string }"""
72
+
73
+ # ============================================================================
74
+ # Main Flow (streamlined)
75
+ # ============================================================================
76
+
77
+ # Phase 1: Execute and observe (single agent, early exit on error)
78
+ let exec = http.post("{API_URL}/run", { program: TEST_PROGRAM, token: auth_token })
79
+
80
+ let observation = session: observer
81
+ prompt: """Connect to WebSocket: {exec.wsUrl}&token={auth_token}
82
+ Send: {"type":"execute","program":{TEST_PROGRAM}}
83
+
84
+ Watch the stream. If you see a BLOCKING ERROR (hung >10s, repeated failures,
85
+ stopped environment), signal immediately with blocking_error: true.
86
+
87
+ Otherwise observe until completion and summarize UX."""
88
+ timeout: 120s
89
+ early_exit: **blocking_error detected**
90
+
91
+ # Phase 2: Handle result
92
+ if observation.blocking_error:
93
+
94
+ # Auto-investigate (no user prompt - if there's an error, we investigate)
95
+ let diagnosis = session: investigator
96
+ prompt: """Investigate this blocking error:
97
+
98
+ ERROR: {observation.error_summary}
99
+ OBSERVATIONS: {observation.observations}
100
+ EXEC_INFO: {exec}
101
+
102
+ Search code, check logs, verify your diagnosis before outputting."""
103
+ context: { observation, exec }
104
+
105
+ # Skip if low confidence (needs human)
106
+ if diagnosis.confidence == "low":
107
+ output { status: "needs_human", diagnosis }
108
+
109
+ # Auto-triage
110
+ let triage_result = session: triage
111
+ prompt: """Triage: {diagnosis}"""
112
+ context: diagnosis
113
+
114
+ if triage_result.decision == "bigger":
115
+ # Bigger changes need human oversight
116
+ output { status: "needs_planning", diagnosis, triage: triage_result }
117
+
118
+ # Quick fix: implement + test + deploy in one flow
119
+ let fix = session: fixer
120
+ prompt: """Fix this issue:
121
+
122
+ DIAGNOSIS: {diagnosis}
123
+ APPROACH: {diagnosis.fix_approach}
124
+
125
+ Implement, test, self-review, commit."""
126
+ context: diagnosis
127
+
128
+ if not fix.tests_pass:
129
+ output { status: "fix_failed", diagnosis, fix }
130
+
131
+ # Deploy (auto if tests pass)
132
+ let deploy = session "Deploy"
133
+ prompt: """Deploy per docs/DEPLOYMENT.md. Verify health endpoint."""
134
+ retry: 2
135
+
136
+ # Quick smoke test
137
+ let smoke = http.get("{API_URL}/health")
138
+
139
+ output {
140
+ status: smoke.status == "ok" ? "fixed" : "deploy_failed",
141
+ diagnosis,
142
+ fix,
143
+ deploy
144
+ }
145
+
146
+ else:
147
+ # No blocking error - just output UX feedback
148
+ output { status: "ok", ux_feedback: observation }
@@ -0,0 +1,225 @@
1
+ # Workflow Crystallizer v2
2
+ # Observes a conversation thread, extracts the workflow pattern, crystallizes into .prose
3
+ #
4
+ # Key design decisions:
5
+ # - Author fetches latest prose.md spec + patterns/antipatterns from GitHub
6
+ # - Single self-verifying author session (Design+Author+Overseer consolidated)
7
+ # - Single user checkpoint (scope + placement combined)
8
+ # - Scoper uses Sonnet (analytical work, not creative)
9
+ # - Parallel: observation + research, collision + scope options
10
+
11
+ input thread: "The conversation thread to analyze"
12
+ input hint: "Optional: What aspect to focus on"
13
+
14
+ # Always fetch latest guidance from source of truth
15
+ const PROSE_SPEC_URL = "https://raw.githubusercontent.com/openprose/prose/refs/heads/main/skills/open-prose/prose.md"
16
+ const PATTERNS_URL = "https://raw.githubusercontent.com/openprose/prose/refs/heads/main/skills/open-prose/guidance/patterns.md"
17
+ const ANTIPATTERNS_URL = "https://raw.githubusercontent.com/openprose/prose/refs/heads/main/skills/open-prose/guidance/antipatterns.md"
18
+
19
+ agent observer:
20
+ model: opus
21
+ prompt: """
22
+ Identify implicit workflows in conversation threads.
23
+ Look for: repeated patterns, multi-step processes, decision points,
24
+ parallelization opportunities, validations performed.
25
+ Be specific - quote actions from the thread.
26
+ """
27
+
28
+ agent researcher:
29
+ model: sonnet
30
+ prompt: "Research codebases thoroughly. Report what exists and patterns used."
31
+ permissions:
32
+ read: ["**/*.prose", "**/*.md"]
33
+
34
+ agent scoper:
35
+ model: sonnet
36
+ prompt: """
37
+ Determine the right abstraction level for workflows.
38
+ Too specific = only works for one case
39
+ Too general = loses essence, becomes vague
40
+ Find the sweet spot: capture the pattern, parameterize the variables.
41
+ """
42
+
43
+ agent author:
44
+ model: opus
45
+ prompt: """
46
+ Write idiomatic OpenProse. Follow existing example patterns.
47
+ Prefer explicit over clever. Use agents for distinct roles.
48
+ Use parallel for independent tasks. Use try/catch for reversible operations.
49
+ """
50
+ permissions:
51
+ write: ["**/*.prose", "**/*.md"]
52
+
53
+ agent compiler:
54
+ model: sonnet
55
+ prompt: "Validate OpenProse syntax. Report specific errors with line numbers."
56
+ permissions:
57
+ bash: allow
58
+
59
+ # ============================================================
60
+ # Phase 1: Observe and Research (parallel)
61
+ # ============================================================
62
+
63
+ parallel:
64
+ raw_observation = session: observer
65
+ prompt: """
66
+ Analyze this conversation thread. Identify:
67
+ 1. What manual process was executed?
68
+ 2. What were the distinct steps?
69
+ 3. What decisions were made?
70
+ 4. What could have been parallelized?
71
+ 5. What validations were performed?
72
+ 6. What artifacts were created?
73
+ Be concrete. Quote specific actions.
74
+ """
75
+ context: { thread, hint }
76
+
77
+ existing_examples = session: researcher
78
+ prompt: "List all .prose examples with one-line summaries"
79
+ context: "skills/open-prose/examples/"
80
+
81
+ existing_ops = session: researcher
82
+ prompt: "What operational .prose files already exist?"
83
+ context: "OPERATIONS.prose.md"
84
+
85
+ patterns_used = session: researcher
86
+ prompt: "What patterns does this codebase favor?"
87
+ context: "skills/open-prose/examples/*.prose"
88
+
89
+ # ============================================================
90
+ # Phase 2: Scope (parallel analysis, then synthesis)
91
+ # ============================================================
92
+
93
+ parallel:
94
+ collision_check = session: scoper
95
+ prompt: """
96
+ Does the observed workflow overlap with existing examples?
97
+ If yes: how different? What unique value would a new file add?
98
+ If no: what category does it belong to?
99
+ """
100
+ context: { raw_observation, existing_examples, existing_ops }
101
+
102
+ scope_options_raw = session: scoper
103
+ prompt: """
104
+ Propose 3 scoping options:
105
+ 1. NARROW: Specific to exactly what happened (precise but may not generalize)
106
+ 2. MEDIUM: Captures pattern with key parameters (reusable, clear)
107
+ 3. BROAD: Abstract template (widely applicable but may lose details)
108
+ For each: describe inputs, agents, key phases.
109
+ """
110
+ context: { raw_observation, patterns_used }
111
+
112
+ let scope_options = session: scoper
113
+ prompt: "Refine scope options considering collision analysis"
114
+ context: { scope_options_raw, collision_check }
115
+
116
+ let placement_suggestion = session: scoper
117
+ prompt: """
118
+ Where should this file live?
119
+ 1. examples/XX-name.prose - If reusable pattern (determine next number)
120
+ 2. Custom location - If project-specific
121
+ Is this operational (used to run this project)? Note for OPERATIONS.prose.md
122
+ """
123
+ context: { raw_observation, existing_examples, existing_ops }
124
+
125
+ # ============================================================
126
+ # Phase 3: User Decision (single checkpoint)
127
+ # ============================================================
128
+
129
+ input user_decision: """
130
+ OBSERVED WORKFLOW:
131
+ {raw_observation}
132
+
133
+ COLLISION CHECK:
134
+ {collision_check}
135
+
136
+ SCOPE OPTIONS:
137
+ {scope_options}
138
+
139
+ PLACEMENT RECOMMENDATION:
140
+ {placement_suggestion}
141
+
142
+ YOUR DECISIONS:
143
+ 1. Which scope? (1/2/3 or describe custom)
144
+ 2. Confirm placement or specify different location:
145
+ """
146
+
147
+ let final_decisions = session: scoper
148
+ prompt: "Parse user's scope choice and placement confirmation into structured form"
149
+ context: { scope_options, placement_suggestion, user_decision }
150
+
151
+ # ============================================================
152
+ # Phase 4: Author with Self-Verification
153
+ # ============================================================
154
+
155
+ let draft = session: author
156
+ prompt: """
157
+ Design and write the complete .prose file.
158
+
159
+ IMPORTANT: First fetch and read the guidance documents:
160
+ - prose.md spec: {PROSE_SPEC_URL}
161
+ - patterns.md: {PATTERNS_URL}
162
+ - antipatterns.md: {ANTIPATTERNS_URL}
163
+
164
+ Then:
165
+ 1. DESIGN: Plan inputs, agents, phases, parallelism, error handling
166
+ 2. WRITE: Complete .prose following the spec and patterns
167
+ 3. SELF-REVIEW: Check against antipatterns and remove cruft:
168
+ - Remove sessions that just run single commands
169
+ - Remove over-abstracted agents that don't add value
170
+ - Remove comments that restate what code does
171
+ - Remove unnecessary variables and single-item parallel blocks
172
+ - Keep: clear agent roles, meaningful parallelism, genuine error handling
173
+
174
+ Include header comment explaining what it does.
175
+ Output only the final, clean version.
176
+ """
177
+ context: { final_decisions, existing_examples }
178
+ permissions:
179
+ network: [PROSE_SPEC_URL, PATTERNS_URL, ANTIPATTERNS_URL]
180
+
181
+ # ============================================================
182
+ # Phase 5: Compile with Bounded Retry
183
+ # ============================================================
184
+
185
+ let current = draft
186
+ loop until **compilation succeeds** (max: 3):
187
+ let result = session: compiler
188
+ prompt: """Validate this .prose file against the spec.
189
+ Fetch spec from: {PROSE_SPEC_URL}
190
+ Report SUCCESS or specific errors with line numbers."""
191
+ context: current
192
+ permissions:
193
+ network: [PROSE_SPEC_URL]
194
+
195
+ if **compilation has errors**:
196
+ current = session: author
197
+ prompt: "Fix these syntax errors, return corrected version"
198
+ context: { current, result }
199
+ permissions:
200
+ network: [PROSE_SPEC_URL]
201
+
202
+ # ============================================================
203
+ # Phase 6: Write All Files
204
+ # ============================================================
205
+
206
+ let written = session: author
207
+ prompt: """
208
+ Write the .prose file and update indices:
209
+ 1. Write .prose to confirmed location
210
+ 2. If this is an example, add entry to examples/README.md
211
+ 3. If this is operational, add entry to OPERATIONS.prose.md
212
+
213
+ Return: { file_path, readme_updated: bool, ops_updated: bool }
214
+ """
215
+ context: { current, final_decisions, existing_examples, existing_ops }
216
+
217
+ # ============================================================
218
+ # Output
219
+ # ============================================================
220
+
221
+ output crystallized = {
222
+ observation: raw_observation,
223
+ decisions: final_decisions,
224
+ file: written
225
+ }