@ouro.bot/cli 0.1.0-alpha.56 → 0.1.0-alpha.560

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 (392) hide show
  1. package/README.md +127 -23
  2. package/RepairGuide.ouro/agent.json +5 -0
  3. package/RepairGuide.ouro/psyche/IDENTITY.md +19 -0
  4. package/RepairGuide.ouro/psyche/SOUL.md +55 -0
  5. package/RepairGuide.ouro/skills/diagnose-broken-remote.md +63 -0
  6. package/RepairGuide.ouro/skills/diagnose-stacked-typed-issues.md +35 -0
  7. package/RepairGuide.ouro/skills/diagnose-sync-blocked.md +54 -0
  8. package/RepairGuide.ouro/skills/diagnose-vault-expired.md +60 -0
  9. package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/agent.json +4 -2
  10. package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/SOUL.md +2 -2
  11. package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/the-serpent.md +1 -1
  12. package/changelog.json +3596 -0
  13. package/dist/arc/attention-types.js +8 -0
  14. package/dist/arc/cares.js +140 -0
  15. package/dist/arc/episodes.js +117 -0
  16. package/dist/arc/intentions.js +133 -0
  17. package/dist/arc/json-store.js +117 -0
  18. package/dist/arc/obligations.js +237 -0
  19. package/dist/arc/packets.js +193 -0
  20. package/dist/arc/presence.js +185 -0
  21. package/dist/arc/task-lifecycle.js +65 -0
  22. package/dist/heart/active-work.js +837 -26
  23. package/dist/heart/agent-entry.js +58 -3
  24. package/dist/heart/attachments/image-normalize.js +194 -0
  25. package/dist/heart/attachments/materialize.js +97 -0
  26. package/dist/heart/attachments/originals.js +88 -0
  27. package/dist/heart/attachments/render.js +29 -0
  28. package/dist/heart/attachments/sources/adapter.js +2 -0
  29. package/dist/heart/attachments/sources/bluebubbles.js +156 -0
  30. package/dist/heart/attachments/sources/cli-local-file.js +78 -0
  31. package/dist/heart/attachments/sources/index.js +16 -0
  32. package/dist/heart/attachments/store.js +103 -0
  33. package/dist/heart/attachments/types.js +93 -0
  34. package/dist/heart/auth/auth-flow.js +479 -0
  35. package/dist/heart/background-operations.js +281 -0
  36. package/dist/heart/bundle-state.js +168 -0
  37. package/dist/heart/commitments.js +111 -0
  38. package/dist/heart/config-registry.js +322 -0
  39. package/dist/heart/config.js +114 -118
  40. package/dist/heart/core.js +913 -246
  41. package/dist/heart/cross-chat-delivery.js +3 -18
  42. package/dist/heart/daemon/agent-config-check.js +419 -0
  43. package/dist/heart/daemon/agent-discovery.js +102 -3
  44. package/dist/heart/daemon/agent-service.js +522 -0
  45. package/dist/heart/daemon/agentic-repair.js +547 -0
  46. package/dist/heart/daemon/bluebubbles-health-diagnostics.js +122 -0
  47. package/dist/heart/daemon/boot-sync-probe.js +197 -0
  48. package/dist/heart/daemon/cadence.js +70 -0
  49. package/dist/heart/daemon/cli-defaults.js +776 -0
  50. package/dist/heart/daemon/cli-exec.js +7457 -0
  51. package/dist/heart/daemon/cli-help.js +498 -0
  52. package/dist/heart/daemon/cli-parse.js +1592 -0
  53. package/dist/heart/daemon/cli-render-doctor.js +57 -0
  54. package/dist/heart/daemon/cli-render.js +763 -0
  55. package/dist/heart/daemon/cli-types.js +8 -0
  56. package/dist/heart/daemon/connect-bay.js +323 -0
  57. package/dist/heart/daemon/daemon-cli.js +29 -1698
  58. package/dist/heart/daemon/daemon-entry.js +387 -2
  59. package/dist/heart/daemon/daemon-health.js +176 -0
  60. package/dist/heart/daemon/daemon-rollup.js +57 -0
  61. package/dist/heart/daemon/daemon-runtime-sync.js +88 -13
  62. package/dist/heart/daemon/daemon-tombstone.js +236 -0
  63. package/dist/heart/daemon/daemon.js +796 -71
  64. package/dist/heart/daemon/dns-workflow.js +394 -0
  65. package/dist/heart/daemon/doctor-types.js +8 -0
  66. package/dist/heart/daemon/doctor.js +826 -0
  67. package/dist/heart/daemon/health-monitor.js +122 -1
  68. package/dist/heart/daemon/hooks/agent-config-v2.js +33 -0
  69. package/dist/heart/daemon/hooks/bundle-meta.js +115 -1
  70. package/dist/heart/daemon/http-health-probe.js +80 -0
  71. package/dist/heart/daemon/human-command-screens.js +234 -0
  72. package/dist/heart/daemon/human-readiness.js +114 -0
  73. package/dist/heart/daemon/inner-status.js +89 -0
  74. package/dist/heart/daemon/interactive-repair.js +394 -0
  75. package/dist/heart/daemon/launchd.js +37 -8
  76. package/dist/heart/daemon/log-tailer.js +82 -12
  77. package/dist/heart/daemon/logs-prune.js +110 -0
  78. package/dist/heart/daemon/mcp-canary.js +297 -0
  79. package/dist/heart/daemon/message-router.js +2 -2
  80. package/dist/heart/daemon/os-cron-deps.js +135 -0
  81. package/dist/heart/daemon/os-cron.js +14 -12
  82. package/dist/heart/daemon/ouro-bot-entry.js +4 -2
  83. package/dist/heart/daemon/ouro-entry.js +3 -1
  84. package/dist/heart/daemon/process-manager.js +375 -33
  85. package/dist/heart/daemon/provider-discovery.js +137 -0
  86. package/dist/heart/daemon/provider-ping-progress.js +83 -0
  87. package/dist/heart/daemon/pulse.js +475 -0
  88. package/dist/heart/daemon/readiness-repair.js +365 -0
  89. package/dist/heart/daemon/run-hooks.js +2 -0
  90. package/dist/heart/daemon/runtime-logging.js +67 -16
  91. package/dist/heart/daemon/runtime-metadata.js +3 -31
  92. package/dist/heart/daemon/safe-mode.js +161 -0
  93. package/dist/heart/daemon/sense-manager.js +389 -38
  94. package/dist/heart/daemon/session-id-resolver.js +131 -0
  95. package/dist/heart/daemon/skill-management-installer.js +94 -0
  96. package/dist/heart/daemon/socket-client.js +158 -11
  97. package/dist/heart/daemon/stale-bundle-prune.js +96 -0
  98. package/dist/heart/daemon/startup-tui.js +330 -0
  99. package/dist/heart/daemon/task-scheduler.js +3 -25
  100. package/dist/heart/daemon/terminal-ui.js +499 -0
  101. package/dist/heart/daemon/thoughts.js +162 -17
  102. package/dist/heart/daemon/up-progress.js +366 -0
  103. package/dist/heart/daemon/vault-items.js +56 -0
  104. package/dist/heart/delegation.js +1 -1
  105. package/dist/heart/habits/habit-migration.js +189 -0
  106. package/dist/heart/habits/habit-parser.js +140 -0
  107. package/dist/heart/habits/habit-runtime-state.js +100 -0
  108. package/dist/heart/habits/habit-scheduler.js +372 -0
  109. package/dist/heart/{daemon → hatch}/hatch-flow.js +32 -56
  110. package/dist/heart/{daemon → hatch}/hatch-specialist.js +6 -8
  111. package/dist/heart/{daemon → hatch}/specialist-prompt.js +12 -9
  112. package/dist/heart/{daemon → hatch}/specialist-tools.js +35 -12
  113. package/dist/heart/identity.js +203 -57
  114. package/dist/heart/kept-notes.js +357 -0
  115. package/dist/heart/kicks.js +1 -1
  116. package/dist/heart/machine-identity.js +161 -0
  117. package/dist/heart/mail-import-discovery.js +353 -0
  118. package/dist/heart/mailbox/mailbox-http-hooks.js +66 -0
  119. package/dist/heart/mailbox/mailbox-http-response.js +7 -0
  120. package/dist/heart/mailbox/mailbox-http-routes.js +246 -0
  121. package/dist/heart/mailbox/mailbox-http-static.js +103 -0
  122. package/dist/heart/mailbox/mailbox-http-transport.js +116 -0
  123. package/dist/heart/mailbox/mailbox-http.js +99 -0
  124. package/dist/heart/mailbox/mailbox-read.js +31 -0
  125. package/dist/heart/mailbox/mailbox-types.js +27 -0
  126. package/dist/heart/mailbox/mailbox-view.js +195 -0
  127. package/dist/heart/mailbox/readers/agent-machine.js +382 -0
  128. package/dist/heart/mailbox/readers/continuity-readers.js +338 -0
  129. package/dist/heart/mailbox/readers/mail.js +362 -0
  130. package/dist/heart/mailbox/readers/runtime-readers.js +651 -0
  131. package/dist/heart/mailbox/readers/sessions.js +232 -0
  132. package/dist/heart/mailbox/readers/shared.js +111 -0
  133. package/dist/heart/mcp/mcp-server.js +683 -0
  134. package/dist/heart/migrate-config.js +100 -0
  135. package/dist/heart/model-capabilities.js +19 -0
  136. package/dist/heart/platform.js +81 -0
  137. package/dist/heart/provider-attempt.js +134 -0
  138. package/dist/heart/provider-binding-resolver.js +267 -0
  139. package/dist/heart/provider-credentials.js +425 -0
  140. package/dist/heart/provider-failover.js +301 -0
  141. package/dist/heart/provider-models.js +81 -0
  142. package/dist/heart/provider-ping.js +262 -0
  143. package/dist/heart/provider-readiness-cache.js +40 -0
  144. package/dist/heart/provider-visibility.js +188 -0
  145. package/dist/heart/providers/anthropic-token.js +131 -0
  146. package/dist/heart/providers/anthropic.js +139 -52
  147. package/dist/heart/providers/azure.js +97 -13
  148. package/dist/heart/providers/error-classification.js +127 -0
  149. package/dist/heart/providers/github-copilot.js +145 -0
  150. package/dist/heart/providers/minimax-vlm.js +189 -0
  151. package/dist/heart/providers/minimax.js +26 -8
  152. package/dist/heart/providers/openai-codex.js +55 -40
  153. package/dist/heart/runtime-capability-check.js +170 -0
  154. package/dist/heart/runtime-credentials.js +367 -0
  155. package/dist/heart/runtime-cwd.js +87 -0
  156. package/dist/heart/sense-truth.js +13 -4
  157. package/dist/heart/session-activity.js +43 -22
  158. package/dist/heart/session-events.js +1149 -0
  159. package/dist/heart/session-playback-cli-main.js +5 -0
  160. package/dist/heart/session-playback-cli.js +36 -0
  161. package/dist/heart/session-playback.js +231 -0
  162. package/dist/heart/session-stats-cli-main.js +5 -0
  163. package/dist/heart/session-stats.js +182 -0
  164. package/dist/heart/session-transcript.js +243 -0
  165. package/dist/heart/start-of-turn-packet.js +345 -0
  166. package/dist/heart/streaming.js +44 -27
  167. package/dist/heart/sync-classification.js +176 -0
  168. package/dist/heart/sync.js +449 -0
  169. package/dist/heart/target-resolution.js +9 -5
  170. package/dist/heart/tempo.js +93 -0
  171. package/dist/heart/temporal-view.js +41 -0
  172. package/dist/heart/timeouts.js +101 -0
  173. package/dist/heart/tool-activity-callbacks.js +59 -0
  174. package/dist/heart/tool-description.js +139 -0
  175. package/dist/heart/tool-friction.js +55 -0
  176. package/dist/heart/tool-loop.js +200 -0
  177. package/dist/heart/turn-context.js +389 -0
  178. package/dist/heart/{daemon → versioning}/ouro-bot-global-installer.js +6 -5
  179. package/dist/heart/{daemon → versioning}/ouro-bot-wrapper.js +1 -1
  180. package/dist/heart/versioning/ouro-path-installer.js +426 -0
  181. package/dist/heart/versioning/ouro-version-manager.js +295 -0
  182. package/dist/heart/{daemon → versioning}/staged-restart.js +40 -8
  183. package/dist/heart/{daemon → versioning}/update-checker.js +6 -1
  184. package/dist/heart/{daemon → versioning}/update-hooks.js +63 -59
  185. package/dist/mailbox-ui/assets/index-B-461hes.js +61 -0
  186. package/dist/mailbox-ui/assets/index-BPr5vNuM.css +1 -0
  187. package/dist/mailbox-ui/index.html +15 -0
  188. package/dist/mailroom/attention.js +167 -0
  189. package/dist/mailroom/autonomy.js +209 -0
  190. package/dist/mailroom/blob-store.js +674 -0
  191. package/dist/mailroom/body-cache.js +61 -0
  192. package/dist/mailroom/core.js +720 -0
  193. package/dist/mailroom/entry.js +160 -0
  194. package/dist/mailroom/file-store.js +430 -0
  195. package/dist/mailroom/mbox-import.js +383 -0
  196. package/dist/mailroom/outbound.js +380 -0
  197. package/dist/mailroom/policy.js +263 -0
  198. package/dist/mailroom/reader.js +233 -0
  199. package/dist/mailroom/search-cache.js +256 -0
  200. package/dist/mailroom/search-relevance.js +319 -0
  201. package/dist/mailroom/smtp-ingress.js +176 -0
  202. package/dist/mailroom/source-state.js +176 -0
  203. package/dist/mailroom/thread.js +109 -0
  204. package/dist/mailroom/travel-extract.js +89 -0
  205. package/dist/mind/bundle-manifest.js +7 -1
  206. package/dist/mind/context.js +165 -101
  207. package/dist/mind/diary-integrity.js +60 -0
  208. package/dist/mind/{memory.js → diary.js} +62 -75
  209. package/dist/mind/embedding-provider.js +60 -0
  210. package/dist/mind/file-state.js +179 -0
  211. package/dist/mind/friends/channel.js +39 -0
  212. package/dist/mind/friends/resolver.js +54 -2
  213. package/dist/mind/friends/store-file.js +39 -3
  214. package/dist/mind/friends/types.js +2 -2
  215. package/dist/mind/journal-index.js +161 -0
  216. package/dist/mind/note-search.js +268 -0
  217. package/dist/mind/obligation-steering.js +221 -0
  218. package/dist/mind/pending.js +4 -0
  219. package/dist/mind/prompt-refresh.js +3 -2
  220. package/dist/mind/prompt.js +1011 -123
  221. package/dist/mind/provenance-trust.js +26 -0
  222. package/dist/mind/scrutiny.js +173 -0
  223. package/dist/nerves/cli-logging.js +7 -1
  224. package/dist/nerves/coverage/audit-rules.js +15 -6
  225. package/dist/nerves/coverage/audit.js +28 -2
  226. package/dist/nerves/coverage/cli.js +1 -1
  227. package/dist/nerves/coverage/contract.js +5 -5
  228. package/dist/nerves/coverage/file-completeness.js +129 -5
  229. package/dist/nerves/coverage/run-artifacts.js +1 -1
  230. package/dist/nerves/event-buffer.js +111 -0
  231. package/dist/nerves/index.js +224 -4
  232. package/dist/nerves/observation.js +20 -0
  233. package/dist/nerves/redact.js +79 -0
  234. package/dist/nerves/review/cli-main.js +5 -0
  235. package/dist/nerves/review/cli.js +156 -0
  236. package/dist/nerves/review/core.js +152 -0
  237. package/dist/nerves/runtime.js +5 -1
  238. package/dist/repertoire/ado-client.js +15 -56
  239. package/dist/repertoire/ado-semantic.js +11 -10
  240. package/dist/repertoire/api-client.js +97 -0
  241. package/dist/repertoire/bitwarden-store.js +963 -0
  242. package/dist/repertoire/bundle-templates.js +72 -0
  243. package/dist/repertoire/bw-installer.js +180 -0
  244. package/dist/repertoire/coding/codex-jsonl.js +64 -0
  245. package/dist/repertoire/coding/context-pack.js +330 -0
  246. package/dist/repertoire/coding/feedback.js +197 -30
  247. package/dist/repertoire/coding/manager.js +158 -9
  248. package/dist/repertoire/coding/spawner.js +55 -9
  249. package/dist/repertoire/coding/tools.js +170 -7
  250. package/dist/repertoire/commerce-errors.js +109 -0
  251. package/dist/repertoire/commerce-self-test.js +156 -0
  252. package/dist/repertoire/credential-access.js +178 -0
  253. package/dist/repertoire/duffel-client.js +185 -0
  254. package/dist/repertoire/github-client.js +14 -55
  255. package/dist/repertoire/graph-client.js +11 -52
  256. package/dist/repertoire/guardrails.js +396 -0
  257. package/dist/repertoire/mcp-client.js +295 -0
  258. package/dist/repertoire/mcp-manager.js +362 -0
  259. package/dist/repertoire/mcp-tools.js +63 -0
  260. package/dist/repertoire/shell-sessions.js +133 -0
  261. package/dist/repertoire/skills.js +15 -24
  262. package/dist/repertoire/stripe-client.js +131 -0
  263. package/dist/repertoire/tasks/board.js +31 -5
  264. package/dist/repertoire/tasks/fix.js +182 -0
  265. package/dist/repertoire/tasks/index.js +16 -4
  266. package/dist/repertoire/tasks/lifecycle.js +2 -2
  267. package/dist/repertoire/tasks/parser.js +3 -2
  268. package/dist/repertoire/tasks/scanner.js +194 -37
  269. package/dist/repertoire/tasks/transitions.js +16 -78
  270. package/dist/repertoire/tool-results.js +29 -0
  271. package/dist/repertoire/tools-attachments.js +317 -0
  272. package/dist/repertoire/tools-base.js +47 -1075
  273. package/dist/repertoire/tools-bluebubbles.js +1 -0
  274. package/dist/repertoire/tools-bridge.js +142 -0
  275. package/dist/repertoire/tools-bundle.js +984 -0
  276. package/dist/repertoire/tools-config.js +185 -0
  277. package/dist/repertoire/tools-continuity.js +248 -0
  278. package/dist/repertoire/tools-credential.js +381 -0
  279. package/dist/repertoire/tools-files.js +342 -0
  280. package/dist/repertoire/tools-flight.js +224 -0
  281. package/dist/repertoire/tools-flow.js +119 -0
  282. package/dist/repertoire/tools-github.js +1 -7
  283. package/dist/repertoire/tools-mail.js +1857 -0
  284. package/dist/repertoire/tools-notes.js +421 -0
  285. package/dist/repertoire/tools-session.js +750 -0
  286. package/dist/repertoire/tools-shell.js +120 -0
  287. package/dist/repertoire/tools-stripe.js +180 -0
  288. package/dist/repertoire/tools-surface.js +243 -0
  289. package/dist/repertoire/tools-teams.js +9 -39
  290. package/dist/repertoire/tools-travel.js +125 -0
  291. package/dist/repertoire/tools-trip.js +604 -0
  292. package/dist/repertoire/tools-user-profile.js +144 -0
  293. package/dist/repertoire/tools-vault.js +40 -0
  294. package/dist/repertoire/tools.js +108 -100
  295. package/dist/repertoire/travel-api-client.js +360 -0
  296. package/dist/repertoire/user-profile.js +131 -0
  297. package/dist/repertoire/vault-setup.js +246 -0
  298. package/dist/repertoire/vault-unlock.js +594 -0
  299. package/dist/scripts/claude-code-hook.js +41 -0
  300. package/dist/scripts/claude-code-stop-hook.js +47 -0
  301. package/dist/senses/attention-queue.js +116 -0
  302. package/dist/senses/bluebubbles/active-turns.js +216 -0
  303. package/dist/senses/bluebubbles/attachment-cache.js +53 -0
  304. package/dist/senses/bluebubbles/attachment-download.js +137 -0
  305. package/dist/senses/{bluebubbles-client.js → bluebubbles/client.js} +219 -18
  306. package/dist/senses/bluebubbles/entry.js +77 -0
  307. package/dist/senses/{bluebubbles-inbound-log.js → bluebubbles/inbound-log.js} +20 -3
  308. package/dist/senses/bluebubbles/index.js +2305 -0
  309. package/dist/senses/{bluebubbles-media.js → bluebubbles/media.js} +121 -70
  310. package/dist/senses/{bluebubbles-model.js → bluebubbles/model.js} +33 -12
  311. package/dist/senses/{bluebubbles-mutation-log.js → bluebubbles/mutation-log.js} +3 -3
  312. package/dist/senses/bluebubbles/processed-log.js +133 -0
  313. package/dist/senses/bluebubbles/replay.js +137 -0
  314. package/dist/senses/{bluebubbles-runtime-state.js → bluebubbles/runtime-state.js} +30 -2
  315. package/dist/senses/{bluebubbles-session-cleanup.js → bluebubbles/session-cleanup.js} +1 -1
  316. package/dist/senses/cli/bracketed-paste.js +82 -0
  317. package/dist/senses/cli/image-paste.js +287 -0
  318. package/dist/senses/cli/image-ref-navigation.js +75 -0
  319. package/dist/senses/cli/ink-app.js +156 -0
  320. package/dist/senses/cli/inline-diff.js +64 -0
  321. package/dist/senses/cli/input-keys.js +174 -0
  322. package/dist/senses/cli/kill-ring.js +86 -0
  323. package/dist/senses/cli/message-list.js +51 -0
  324. package/dist/senses/cli/ouro-tui.js +607 -0
  325. package/dist/senses/cli/spinner-imperative.js +135 -0
  326. package/dist/senses/cli/spinner.js +101 -0
  327. package/dist/senses/cli/status-line.js +60 -0
  328. package/dist/senses/cli/streaming-markdown.js +526 -0
  329. package/dist/senses/cli/tool-display.js +85 -0
  330. package/dist/senses/cli/tool-render.js +85 -0
  331. package/dist/senses/cli/tui-store.js +240 -0
  332. package/dist/senses/cli/virtual-list.js +35 -0
  333. package/dist/senses/cli-entry.js +60 -8
  334. package/dist/senses/cli-layout.js +187 -0
  335. package/dist/senses/cli.js +520 -209
  336. package/dist/senses/commands.js +66 -3
  337. package/dist/senses/habit-turn-message.js +108 -0
  338. package/dist/senses/inner-dialog-worker.js +175 -21
  339. package/dist/senses/inner-dialog.js +330 -27
  340. package/dist/senses/mail-entry.js +66 -0
  341. package/dist/senses/mail.js +379 -0
  342. package/dist/senses/pipeline.js +549 -181
  343. package/dist/senses/proactive-content-guard.js +51 -0
  344. package/dist/senses/shared-turn.js +248 -0
  345. package/dist/senses/surface-tool.js +68 -0
  346. package/dist/senses/teams-entry.js +60 -8
  347. package/dist/senses/teams.js +387 -98
  348. package/dist/senses/trust-gate.js +100 -5
  349. package/dist/senses/voice/elevenlabs.js +125 -0
  350. package/dist/senses/voice/index.js +22 -0
  351. package/dist/senses/voice/transcript.js +70 -0
  352. package/dist/senses/voice/turn.js +85 -0
  353. package/dist/senses/voice/types.js +2 -0
  354. package/dist/senses/voice/whisper.js +133 -0
  355. package/dist/senses/voice-entry.js +80 -0
  356. package/dist/trips/core.js +138 -0
  357. package/dist/trips/store.js +146 -0
  358. package/package.json +38 -7
  359. package/skills/agent-commerce.md +106 -0
  360. package/skills/browser-navigation.md +117 -0
  361. package/skills/commerce-setup-guide.md +116 -0
  362. package/skills/commerce-setup.md +84 -0
  363. package/skills/configure-dev-tools.md +101 -0
  364. package/skills/travel-planning.md +138 -0
  365. package/dist/heart/daemon/auth-flow.js +0 -351
  366. package/dist/heart/daemon/ouro-path-installer.js +0 -178
  367. package/dist/heart/daemon/subagent-installer.js +0 -166
  368. package/dist/heart/session-recall.js +0 -116
  369. package/dist/mind/associative-recall.js +0 -209
  370. package/dist/senses/bluebubbles-entry.js +0 -13
  371. package/dist/senses/bluebubbles.js +0 -1177
  372. package/dist/senses/debug-activity.js +0 -148
  373. package/subagents/README.md +0 -86
  374. package/subagents/work-doer.md +0 -237
  375. package/subagents/work-merger.md +0 -618
  376. package/subagents/work-planner.md +0 -390
  377. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/basilisk.md +0 -0
  378. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/jafar.md +0 -0
  379. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/jormungandr.md +0 -0
  380. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/kaa.md +0 -0
  381. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/medusa.md +0 -0
  382. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/monty.md +0 -0
  383. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/nagini.md +0 -0
  384. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/ouroboros.md +0 -0
  385. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/python.md +0 -0
  386. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/quetzalcoatl.md +0 -0
  387. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/sir-hiss.md +0 -0
  388. /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/the-snake.md +0 -0
  389. /package/dist/heart/{daemon → hatch}/hatch-animation.js +0 -0
  390. /package/dist/heart/{daemon → hatch}/specialist-orchestrator.js +0 -0
  391. /package/dist/heart/{daemon → versioning}/ouro-uti.js +0 -0
  392. /package/dist/heart/{daemon → versioning}/wrapper-publish-guard.js +0 -0
@@ -0,0 +1,116 @@
1
+ # Commerce Setup Guide
2
+
3
+ Human-facing guide for configuring the agent's commerce capabilities.
4
+
5
+ ## Architecture Overview
6
+
7
+ The agent's commerce system has three pillars:
8
+
9
+ 1. **User Profile**: Secure storage of personal data (name, passport, payment preferences) in Vaultwarden, accessed only when needed for specific transactions.
10
+
11
+ 2. **Booking Delegation**: Direct API access to flight (Duffel) and hotel (LiteAPI) booking systems, plus browser automation fallback for sites without APIs.
12
+
13
+ 3. **Payment**: Stripe Issuing virtual cards created per-transaction, with spend limits and merchant category restrictions. Card numbers never enter the model's context.
14
+
15
+ ## Setup Steps
16
+
17
+ ### 1. Stripe Issuing (Required for Payments)
18
+
19
+ - Create a Stripe account: https://dashboard.stripe.com
20
+ - Enable Stripe Issuing (requires business verification)
21
+ - Create a restricted API key: https://dashboard.stripe.com/apikeys
22
+ - Permissions needed: `issuing_cards:write`, `issuing_cards:read`
23
+ - Store in vault: `credential_store stripe.com --password <key>`
24
+
25
+ ### 2. Duffel (Flights)
26
+
27
+ - Create a Duffel account: https://app.duffel.com
28
+ - Generate a sandbox token: https://app.duffel.com/tokens
29
+ - Store in vault: `credential_store duffel.com --password <token>`
30
+
31
+ ### 3. LiteAPI (Hotels)
32
+
33
+ - Create a LiteAPI account: https://dashboard.liteapi.travel
34
+ - Get your sandbox API key
35
+ - Store in vault: `credential_store liteapi.travel --password <key>`
36
+ - Configure MCP server in agent.json (see commerce-setup.md skill for details)
37
+
38
+ ### 4. User Profile
39
+
40
+ Store your travel profile with the agent:
41
+ ```
42
+ user_profile_store '{"legalName":{"first":"...","last":"..."},"email":"...","phone":"...","preferences":{}}'
43
+ ```
44
+
45
+ ## Tool Reference
46
+
47
+ ### User Profile Tools
48
+ | Tool | Description | Trust Level |
49
+ |------|-------------|-------------|
50
+ | `user_profile_store` | Store/update profile fields | Family |
51
+ | `user_profile_get` | Retrieve a specific profile field | Family |
52
+ | `user_profile_delete` | Delete entire profile | Family |
53
+
54
+ ### Payment Tools
55
+ | Tool | Description | Trust Level |
56
+ |------|-------------|-------------|
57
+ | `stripe_create_card` | Create a virtual card | Family |
58
+ | `stripe_deactivate_card` | Deactivate a card | Family |
59
+ | `stripe_list_cards` | List active cards | Family |
60
+
61
+ ### Flight Tools
62
+ | Tool | Description | Trust Level |
63
+ |------|-------------|-------------|
64
+ | `flight_search` | Search for flights | Friend |
65
+ | `flight_hold` | Hold a flight offer | Family |
66
+ | `flight_book` | Book a flight | Family |
67
+ | `flight_cancel` | Cancel a booking | Family |
68
+
69
+ ### Hotel Tools
70
+ Hotels are accessed through the LiteAPI MCP server. Tools are dynamically registered when the MCP server connects. Common tools include search, get rates, and book.
71
+
72
+ ## Security Model
73
+
74
+ ### Credential Gateway
75
+ All API keys are stored in the agent's Vaultwarden vault. They are never exposed as environment variables or stored in config files. MCP servers receive credentials at startup via `vault:` env resolution.
76
+
77
+ ### Card Number Isolation
78
+ Virtual card numbers exist only within the Stripe client's internal functions during a payment flow. They are never:
79
+ - Returned to the model in tool outputs
80
+ - Included in nerves events or logs
81
+ - Stored in any persistent state
82
+ - Shown in chat messages
83
+
84
+ The model only sees card IDs (e.g., `ic_...`) and last-4 digits.
85
+
86
+ ### Trust Gating
87
+ - **Family trust required**: All profile, payment, and booking tools
88
+ - **Friend trust sufficient**: Flight search (read-only, no payment)
89
+ - **Stranger/acquaintance**: No commerce access
90
+
91
+ ### Vault Resolution Failures
92
+ When a `vault:` reference cannot be resolved for an MCP server:
93
+ - The specific server is skipped (not crashed)
94
+ - Other servers continue to start normally
95
+ - An error event is emitted with the specific resolution failure
96
+ - Error messages are actionable (e.g., "item not found", "field empty")
97
+
98
+ ## Verification Tiers
99
+
100
+ ### Tier 1: Real-Tested
101
+ - User profile vault CRUD (tested against live Vaultwarden)
102
+ - MCP credential injection (tested with real `vault:` env resolution)
103
+ - Tool registration and guardrail enforcement
104
+
105
+ ### Tier 2: Mocked
106
+ - Stripe Issuing API calls (mocked SDK)
107
+ - Duffel flight API calls (mocked HTTP)
108
+ - LiteAPI hotel API calls (MCP config only)
109
+ - Full booking flow (profile -> search -> card -> book -> confirm -> deactivate)
110
+ - Card number leakage verification
111
+
112
+ ### Post-Handoff
113
+ - Real Stripe Issuing card creation (requires live Stripe account with Issuing)
114
+ - Real Duffel booking (requires live API key)
115
+ - Real LiteAPI hotel search (requires live MCP server)
116
+ - Browser automation for Pattern B sites
@@ -0,0 +1,84 @@
1
+ # Commerce Setup Wizard
2
+
3
+ Step-by-step guide for setting up the agent's commerce infrastructure: payment, booking, and accommodation APIs.
4
+
5
+ last_verified: 2026-04-06
6
+
7
+ ## Prerequisites
8
+
9
+ - Agent vault must be set up (run `vault_setup` tool if not done)
10
+ - Vault must be reachable at the configured server URL
11
+
12
+ ## Step 1: Stripe Issuing (Payments)
13
+
14
+ 1. Create a Stripe account at https://dashboard.stripe.com
15
+ 2. Enable Stripe Issuing (requires business verification)
16
+ 3. Create a restricted API key at https://dashboard.stripe.com/apikeys
17
+ - Enable only `issuing_cards:write` and `issuing_cards:read` permissions
18
+ 4. Store the key in the vault: `credential_store stripe.com --password <restricted_key> --notes "Stripe Issuing restricted key"`
19
+
20
+ ### Verification
21
+ Run `stripe_list_cards` to verify the key works. Expected: empty list or existing cards.
22
+
23
+ ## Step 2: Duffel (Flights)
24
+
25
+ 1. Create a Duffel account at https://app.duffel.com
26
+ 2. Generate a sandbox API token at https://app.duffel.com/tokens
27
+ - Start with sandbox mode for testing
28
+ - Switch to live mode when ready for real bookings
29
+ 3. Store the key in the vault: `credential_store duffel.com --password <api_token> --notes "Duffel API token (sandbox)"`
30
+
31
+ ### Verification
32
+ Run `flight_search` with any route (e.g., SFO to JFK). Expected: list of flight offers.
33
+
34
+ ## Step 3: LiteAPI (Hotels)
35
+
36
+ 1. Create a LiteAPI account at https://dashboard.liteapi.travel
37
+ 2. Get your sandbox API key from the dashboard
38
+ 3. Store the key in the vault: `credential_store liteapi.travel --password <api_key> --notes "LiteAPI sandbox key"`
39
+ 4. Configure the MCP server in agent.json:
40
+ ```json
41
+ {
42
+ "mcpServers": {
43
+ "liteapi": {
44
+ "command": "npx",
45
+ "args": ["tsx", "src/index.ts"],
46
+ "cwd": "/path/to/liteapi-mcp-server",
47
+ "env": {
48
+ "LITEAPI_API_KEY": "vault:liteapi.travel/apiKey"
49
+ }
50
+ }
51
+ }
52
+ }
53
+ ```
54
+
55
+ ### Verification
56
+ The LiteAPI MCP server will start automatically when the agent boots. Check agent logs for `mcp.connect_end` event for the liteapi server.
57
+
58
+ ## Step 4: User Profile
59
+
60
+ Store the human's travel profile:
61
+ ```
62
+ user_profile_store '{"legalName": {"first": "...", "last": "..."}, "email": "...", "phone": "...", "preferences": {}}'
63
+ ```
64
+
65
+ Optional but recommended fields: dateOfBirth, passport, driverLicense, addresses, loyaltyPrograms.
66
+
67
+ ## Self-Test
68
+
69
+ After setup, run the commerce self-test to verify all services:
70
+ - Stripe: creates and deactivates a test virtual card
71
+ - Duffel: runs a test flight search
72
+ - LiteAPI: verifies the API key is stored in the vault
73
+
74
+ The self-test reports per-service health with actionable error messages:
75
+ - "Flights working, hotels not yet -- LiteAPI key missing."
76
+ - "Your Duffel key returned 401. Verify it at app.duffel.com/tokens."
77
+
78
+ ## Security Model
79
+
80
+ - All API keys stored in the agent's Vaultwarden vault (not env vars)
81
+ - Card numbers never appear in model context or logs
82
+ - Virtual cards are single-use by default, deactivated after each transaction
83
+ - User profile access requires family trust level
84
+ - Vault credentials are resolved at MCP server startup, not at runtime
@@ -0,0 +1,101 @@
1
+ # Configure Dev Tools for MCP Agent Bridge
2
+
3
+ Set up your development tools (Claude Code, Codex) to communicate with Ouroboros agents via MCP. One command does everything — including cross-platform WSL2 bridging on Windows.
4
+
5
+ ## Setup
6
+
7
+ ### Claude Code
8
+
9
+ ```bash
10
+ ouro setup --tool claude-code --agent <agent-name>
11
+ ```
12
+
13
+ This command:
14
+ 1. Registers the MCP server with Claude Code via `claude mcp add`
15
+ 2. Configures lifecycle hooks (SessionStart, Stop, PostToolUse) for passive awareness
16
+ 3. Detects dev vs installed mode automatically and uses the correct command path
17
+
18
+ **On WSL2 (Windows):** The command automatically detects the WSL environment and:
19
+ - Calls `claude.exe` (the Windows binary) instead of `claude`
20
+ - Prefixes MCP serve and hook commands with `wsl` so Windows-side Claude Code spawns them through WSL
21
+ - Resolves the Windows-side home directory and writes config to the Windows-side `~/.claude/`
22
+ - After setup, open Claude Code in PowerShell — the agent is there
23
+
24
+ **On native Windows (no WSL):** Not yet supported. The command prints a message directing you to install WSL2.
25
+
26
+ For the full cross-machine setup flow (including cloning an agent to a new machine), see `docs/cross-machine-setup.md` in the harness repo.
27
+
28
+ ### Codex
29
+
30
+ ```bash
31
+ ouro setup --tool codex --agent <agent-name>
32
+ ```
33
+
34
+ This command:
35
+ 1. Registers the MCP server with Codex via `codex mcp add`
36
+ 2. Detects dev vs installed mode automatically
37
+
38
+ ## Verification
39
+
40
+ After setup, verify the connection:
41
+
42
+ 1. **Check daemon is running**: `ouro up` (installed) or `ouro dev --repo-path <path>` (dev mode).
43
+ 2. **Test from Claude Code**: Start a new session and use the `status` tool.
44
+ 3. **Test from Codex**: Run `codex exec "Use the <agent-name> status tool"`.
45
+ 4. **Check registration**: `claude mcp list` or `codex mcp list`.
46
+
47
+ ## Available MCP Tools
48
+
49
+ Once connected, these tools are available:
50
+
51
+ ### Conversation tools (new)
52
+ - **send_message** -- Send a message and get a synchronous agent response (full turn with tools)
53
+ - **check_response** -- Check for pending messages from the agent (after ponder or proactive surface)
54
+
55
+ ### Read-only tools
56
+ - **ask** -- Ask the agent a question (uses diary, journal, and context)
57
+ - **status** -- Get agent's current status and activity
58
+ - **catchup** -- Get recent activity summary
59
+ - **get_context** -- Get agent's current working context
60
+ - **search_notes** -- Search the agent's diary for specific topics
61
+ - **get_task** -- Get details of the agent's current task
62
+ - **check_scope** -- Verify if something is in scope for current work
63
+ - **check_guidance** -- Get guidance on how to approach something
64
+
65
+ ### Write tools
66
+ - **delegate** -- Request the agent to handle a task (runs full conversation turn)
67
+ - **request_decision** -- Ask agent to make a decision about something
68
+ - **report_progress** -- Report progress on delegated work
69
+ - **report_blocker** -- Report a blocker on delegated work
70
+ - **report_complete** -- Report completion of delegated work
71
+
72
+ ## Troubleshooting
73
+
74
+ ### "Daemon not running" error
75
+ Most read-only tools work without the daemon (reads filesystem directly). For write operations and `send_message`, start the daemon with `ouro up` or `ouro dev`.
76
+
77
+ ### MCP server not appearing
78
+ - Run `claude mcp list` or `codex mcp list` to verify registration
79
+ - Re-run `ouro setup` to fix
80
+ - Restart your dev tool (MCP loads at session start)
81
+
82
+ ### Connection timeouts
83
+ - Ensure `dist/` is built: `npm run build`
84
+ - Check that the entry point path is correct (setup auto-detects this)
85
+
86
+ ### WSL2-specific issues
87
+
88
+ **`claude.exe` not found** — Windows executables must be accessible from WSL. This is the default, but enterprise environments may disable it via `/etc/wsl.conf` setting `appendWindowsPath = false`. Check with `which claude.exe`. If missing, add Claude Code's install directory to WSL's PATH manually or update `wsl.conf`.
89
+
90
+ **`cmd.exe` or `wslpath` fails** — The setup command resolves the Windows home directory using `cmd.exe /C echo %USERPROFILE%` piped through `wslpath`. If either is unavailable, the setup will fail. `wslpath` ships with all standard WSL distributions. `cmd.exe` requires Windows executables to be on PATH (see above).
91
+
92
+ **MCP server hangs or returns empty** — The MCP server runs inside WSL via `wsl ouro mcp-serve --agent <name>`. If stdio piping between Windows and WSL is broken, check that the WSL distribution is running (`wsl --status`) and that no other process has claimed stdin.
93
+
94
+ **Hooks not firing** — Claude Code hooks use `wsl ouro hook <event> --agent <name>`. If hooks fail silently, check that `ouro` is on PATH inside WSL (run `wsl ouro --version` from PowerShell to verify).
95
+
96
+ ### Removing
97
+ ```bash
98
+ claude mcp remove ouro-<agent-name>
99
+ # or
100
+ codex mcp remove ouro-<agent-name>
101
+ ```
@@ -0,0 +1,138 @@
1
+ # Travel Planning Skill
2
+
3
+ Compose all travel infrastructure to plan and book trips effectively.
4
+
5
+ ## Research Phase
6
+
7
+ ### Destination Research
8
+ 1. Use `geocode_search` to find candidate destinations and get coordinates
9
+ 2. Use `weather_lookup` to check climate for travel dates
10
+ 3. Use `travel_advisory` to check US State Dept safety levels (1-4):
11
+ - Level 1: Exercise Normal Precautions
12
+ - Level 2: Exercise Increased Caution
13
+ - Level 3: Reconsider Travel
14
+ - Level 4: Do Not Travel
15
+ 4. Use browser tools (see `browser-navigation` skill) for destination reviews, travel blogs, local tips
16
+ 5. Compare multiple destinations on weather, safety, cost, and flight availability
17
+
18
+ ### Information Gathering Workflow
19
+ ```
20
+ geocode_search -> get coordinates
21
+ weather_lookup -> check weather at coordinates
22
+ travel_advisory -> check safety level
23
+ browser tools -> reviews, local info, pricing
24
+ ```
25
+
26
+ ## Flight Search
27
+
28
+ ### Using Duffel MCP (when available)
29
+ - Search via `duffel_search_flights` tool (first-class MCP tool)
30
+ - Provide: origin, destination, dates, passengers, cabin class
31
+ - Compare options on price, duration, stops, airline
32
+
33
+ ### Using Browser (fallback)
34
+ - Use browser-navigation skill patterns for Google Flights, airline sites
35
+ - Add delays between searches to avoid detection
36
+
37
+ ### Comparison Criteria
38
+ Present top 3-5 options comparing:
39
+ - Total price (including bags, seat selection)
40
+ - Duration and number of stops
41
+ - Airline and aircraft
42
+ - Departure/arrival times
43
+ - Cancellation/change policy
44
+
45
+ ## Accommodation Search
46
+
47
+ ### Hotel Search
48
+ - Use Expedia MCP when available (`expedia_search_hotels` tool)
49
+ - Compare: price per night, total stay cost, location, rating, amenities
50
+ - Check cancellation policies (crucial for travel planning)
51
+
52
+ ### Vacation Rentals (Browser-based)
53
+ - Use browser-navigation skill for Airbnb/VRBO
54
+ - Search by location, dates, guests, budget
55
+ - Compare: price, location proximity, reviews, amenities, host rating
56
+ - Screenshot listings for user review
57
+
58
+ ### Comparison Criteria
59
+ - Price per night and total cost
60
+ - Location (distance to key attractions/activities)
61
+ - Reviews and ratings
62
+ - Amenities (WiFi, kitchen, parking, pool)
63
+ - Cancellation flexibility
64
+
65
+ ## Booking Workflow
66
+
67
+ ### Critical Safety Gates
68
+ - **ALWAYS confirm with user before any booking action**
69
+ - **ALWAYS confirm before entering payment information**
70
+ - **ALWAYS confirm before agreeing to terms**
71
+ - **Never proceed with a financial commitment without explicit approval**
72
+
73
+ ### Credential Handling
74
+
75
+ Credentials are managed through the credential access layer, which stores
76
+ agent-owned secrets in the agent's Bitwarden/Vaultwarden credential vault.
77
+ Stored passwords stay in the vault. A brand-new signup password may enter
78
+ model context briefly when the agent explicitly generates or types it during
79
+ an interactive sign-up flow.
80
+
81
+ - Use `credential_get` to check what credentials exist for a domain (metadata only, never passwords)
82
+ - Use `credential_generate_password` to mint a strong password for a new sign-up
83
+ - Use `credential_store` to save credentials the agent acquired after the site accepts them
84
+ - The credential gateway automatically injects secrets into API requests via `getRawSecret()`
85
+ - Use browser-navigation skill form patterns for entering credentials during interactive sessions
86
+
87
+ **How credentials work:**
88
+ - Agent-owned credentials live in the agent's Bitwarden/Vaultwarden vault
89
+ - Travel credentials such as Duffel and Stripe are ordinary vault credential items
90
+ - The agent can sign up for services and store its own credentials
91
+ - Existing stored passwords are never returned to the model — only metadata (domain, username, notes)
92
+
93
+ ### Post-Booking
94
+ - Save confirmation details (confirmation number, dates, hotel name, airline, booking reference)
95
+ - Save to diary/journal for future reference
96
+ - Set reminders for check-in windows
97
+ - Note cancellation deadlines
98
+
99
+ ## Preference Management
100
+
101
+ ### Storing Preferences
102
+ Track and reference these travel preferences:
103
+ - Preferred airlines and alliance status
104
+ - Preferred hotel chains and loyalty numbers
105
+ - Seat preferences (window/aisle, extra legroom)
106
+ - Dietary needs for in-flight meals
107
+ - Budget ranges (per night for hotels, per flight)
108
+ - Must-have amenities (WiFi, gym, pool)
109
+
110
+ ### Using Preferences
111
+ - Reference stored preferences when searching
112
+ - Apply airline preferences to flight comparisons
113
+ - Apply hotel brand preferences to accommodation searches
114
+ - Adjust budget ranges based on destination
115
+
116
+ ## Tool Reference
117
+
118
+ ### Native Tools (always available)
119
+ - `weather_lookup` - Current weather and daily forecast by city or coordinates (Open-Meteo, zero config)
120
+ - `travel_advisory` - US State Dept advisory by country code
121
+ - `geocode_search` - Location/POI search with coordinates
122
+ - `credential_get` - Check credential metadata for a domain (never returns passwords)
123
+ - `credential_generate_password` - Generate a strong password for a new sign-up (family trust)
124
+ - `credential_store` - Store credentials the agent acquired (family trust)
125
+ - `credential_list` - List stored credential domains
126
+ - `credential_delete` - Delete stored credentials (family trust)
127
+
128
+ ### MCP Tools (when configured)
129
+ - Browser tools via `@playwright/mcp` - see `browser-navigation` skill
130
+ - Duffel flight search (when MCP server available)
131
+ - Expedia hotel search (when MCP server available)
132
+
133
+ ### Human Confirmation Required For
134
+ - Any booking or payment
135
+ - Entering personal information
136
+ - Agreeing to terms of service
137
+ - Creating financial obligations
138
+ - Sharing credentials with third parties