@ours.network/fleet 1.2.0-nightly.7 → 1.2.0-nightly.71

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 (423) hide show
  1. package/README.md +279 -68
  2. package/dist/account-origin.d.ts +2 -0
  3. package/dist/account-origin.js +6 -0
  4. package/dist/agent-ours/bridge.js +26 -9
  5. package/dist/agent-ours/correspondence.d.ts +10 -0
  6. package/dist/agent-ours/correspondence.js +1 -0
  7. package/dist/agent-ours/file-rpc.d.ts +12 -0
  8. package/dist/agent-ours/file-rpc.js +18 -4
  9. package/dist/agent-ours/harness.js +9 -1
  10. package/dist/agent-ours/mcp-endpoint.d.ts +19 -0
  11. package/dist/agent-ours/mcp-endpoint.js +98 -25
  12. package/dist/agent-ours/runtime.d.ts +9 -1
  13. package/dist/agent-ours/runtime.js +50 -2
  14. package/dist/agent-ours/service.d.ts +24 -1
  15. package/dist/agent-ours/service.js +97 -13
  16. package/dist/application/codex-models.d.ts +15 -0
  17. package/dist/application/codex-models.js +56 -0
  18. package/dist/application/conversation-history.d.ts +34 -0
  19. package/dist/application/conversation-history.js +280 -0
  20. package/dist/application/conversation-role-observer.d.ts +62 -0
  21. package/dist/application/conversation-role-observer.js +206 -0
  22. package/dist/application/fleet-query-service.d.ts +1 -1
  23. package/dist/application/fleet-query-service.js +3 -3
  24. package/dist/application/log-service.js +8 -8
  25. package/dist/application/model-catalog.d.ts +1 -1
  26. package/dist/application/model-catalog.js +5 -2
  27. package/dist/application/preset-provenance.d.ts +19 -0
  28. package/dist/application/preset-provenance.js +59 -0
  29. package/dist/application/resource-observer.d.ts +40 -0
  30. package/dist/application/resource-observer.js +278 -0
  31. package/dist/application/role-creation-service.js +3 -2
  32. package/dist/application/role-removal-service.js +17 -3
  33. package/dist/application/role-repository.d.ts +1 -1
  34. package/dist/application/role-repository.js +30 -7
  35. package/dist/application/room-layout-definitions.d.ts +45 -0
  36. package/dist/application/room-layout-definitions.js +130 -0
  37. package/dist/application/session-control.d.ts +61 -17
  38. package/dist/application/session-control.js +207 -23
  39. package/dist/application/supervisor-ours-tools.js +5 -11
  40. package/dist/application/task-layouts.d.ts +91 -0
  41. package/dist/application/task-layouts.js +261 -0
  42. package/dist/application/task-room-service.d.ts +101 -3
  43. package/dist/application/task-room-service.js +286 -33
  44. package/dist/application/types.d.ts +2 -0
  45. package/dist/atomic-file.d.ts +34 -1
  46. package/dist/atomic-file.js +161 -18
  47. package/dist/briefing.d.ts +3 -1
  48. package/dist/briefing.js +97 -31
  49. package/dist/build-info.json +9 -4
  50. package/dist/capabilities.d.ts +9 -1
  51. package/dist/capabilities.js +13 -0
  52. package/dist/cli.js +400 -37
  53. package/dist/client-profile.d.ts +5 -17
  54. package/dist/client-profile.js +4 -127
  55. package/dist/config.d.ts +45 -0
  56. package/dist/config.js +57 -6
  57. package/dist/creation.d.ts +1 -1
  58. package/dist/creation.js +4 -4
  59. package/dist/daemon-recovery.d.ts +14 -9
  60. package/dist/daemon-recovery.js +124 -115
  61. package/dist/docs.d.ts +1 -1
  62. package/dist/docs.js +207 -19
  63. package/dist/doctor.d.ts +4 -1
  64. package/dist/doctor.js +75 -60
  65. package/dist/erased-resources.d.ts +9 -0
  66. package/dist/erased-resources.js +87 -0
  67. package/dist/file-delivery/reader.d.ts +15 -0
  68. package/dist/file-delivery/reader.js +63 -0
  69. package/dist/file-delivery/store.d.ts +15 -0
  70. package/dist/file-delivery/store.js +124 -0
  71. package/dist/file-delivery/types.d.ts +19 -0
  72. package/dist/file-delivery/types.js +1 -0
  73. package/dist/fleet-command-audit.d.ts +7 -0
  74. package/dist/fleet-command-audit.js +24 -8
  75. package/dist/harness/agent-session.d.ts +4 -0
  76. package/dist/harness/claude-code-session.js +1 -1
  77. package/dist/harness/claude-code.js +21 -11
  78. package/dist/harness/claude-runtime.d.ts +12 -0
  79. package/dist/harness/claude-runtime.js +43 -0
  80. package/dist/harness/codex-app-server-proxy.d.ts +4 -1
  81. package/dist/harness/codex-app-server-proxy.js +41 -5
  82. package/dist/harness/codex-reasoning.d.ts +5 -0
  83. package/dist/harness/codex-reasoning.js +12 -0
  84. package/dist/harness/codex-runtime.d.ts +11 -1
  85. package/dist/harness/codex-runtime.js +31 -4
  86. package/dist/harness/codex-session.js +2 -2
  87. package/dist/harness/codex.js +24 -12
  88. package/dist/init-wizard.d.ts +2 -0
  89. package/dist/init-wizard.js +38 -19
  90. package/dist/isolation/policy.js +6 -1
  91. package/dist/isolation/types.d.ts +5 -0
  92. package/dist/managed-cli.d.ts +253 -0
  93. package/dist/managed-cli.js +923 -0
  94. package/dist/managed-recovery.d.ts +13 -0
  95. package/dist/managed-recovery.js +31 -0
  96. package/dist/minimal-setup.d.ts +2 -0
  97. package/dist/minimal-setup.js +44 -0
  98. package/dist/monitor.d.ts +9 -34
  99. package/dist/monitor.js +90 -153
  100. package/dist/notifications/fleet-producer.d.ts +22 -0
  101. package/dist/notifications/fleet-producer.js +237 -0
  102. package/dist/notifications/outbox.d.ts +46 -0
  103. package/dist/notifications/outbox.js +158 -0
  104. package/dist/notifications/target-cleanup.d.ts +11 -0
  105. package/dist/notifications/target-cleanup.js +63 -0
  106. package/dist/notifications/task-producer.d.ts +20 -0
  107. package/dist/notifications/task-producer.js +100 -0
  108. package/dist/ops.d.ts +2 -0
  109. package/dist/ops.js +20 -3
  110. package/dist/owner-channel/channel.js +17 -6
  111. package/dist/owner-channel/commands.d.ts +4 -0
  112. package/dist/owner-channel/commands.js +8 -0
  113. package/dist/owner-channel/lifecycle-outbox.js +4 -3
  114. package/dist/owner-channel/ours-client.js +2 -17
  115. package/dist/paths.d.ts +2 -0
  116. package/dist/paths.js +2 -0
  117. package/dist/preset-migration.js +43 -0
  118. package/dist/process-incarnation.d.ts +23 -0
  119. package/dist/process-incarnation.js +42 -0
  120. package/dist/reminders/manager.d.ts +75 -0
  121. package/dist/reminders/manager.js +278 -0
  122. package/dist/reminders/runtime.d.ts +27 -0
  123. package/dist/reminders/runtime.js +32 -0
  124. package/dist/reminders/schedule.d.ts +37 -0
  125. package/dist/reminders/schedule.js +104 -0
  126. package/dist/reminders/store.d.ts +341 -0
  127. package/dist/reminders/store.js +762 -0
  128. package/dist/reminders/tools.d.ts +20 -0
  129. package/dist/reminders/tools.js +114 -0
  130. package/dist/resolved-plan.js +1 -0
  131. package/dist/rooms-tasks/add-member.d.ts +48 -0
  132. package/dist/rooms-tasks/add-member.js +84 -0
  133. package/dist/rooms-tasks/archived-absence.d.ts +8 -0
  134. package/dist/rooms-tasks/archived-absence.js +48 -0
  135. package/dist/rooms-tasks/cli.js +65 -5
  136. package/dist/rooms-tasks/close.d.ts +6 -2
  137. package/dist/rooms-tasks/close.js +246 -37
  138. package/dist/rooms-tasks/config.d.ts +1 -1
  139. package/dist/rooms-tasks/config.js +11 -4
  140. package/dist/rooms-tasks/cowork-adapter.d.ts +12 -5
  141. package/dist/rooms-tasks/cowork-adapter.js +15 -121
  142. package/dist/rooms-tasks/cowork-http.js +56 -6
  143. package/dist/rooms-tasks/deletion.d.ts +1 -1
  144. package/dist/rooms-tasks/deletion.js +84 -5
  145. package/dist/rooms-tasks/erasure.d.ts +6 -0
  146. package/dist/rooms-tasks/erasure.js +173 -0
  147. package/dist/rooms-tasks/external-worker.d.ts +1 -1
  148. package/dist/rooms-tasks/external-worker.js +3 -4
  149. package/dist/rooms-tasks/layout-binding-client.d.ts +11 -0
  150. package/dist/rooms-tasks/layout-binding-client.js +56 -0
  151. package/dist/rooms-tasks/layout-binding-grants.d.ts +21 -0
  152. package/dist/rooms-tasks/layout-binding-grants.js +128 -0
  153. package/dist/rooms-tasks/layout-cli.d.ts +4 -0
  154. package/dist/rooms-tasks/layout-cli.js +107 -0
  155. package/dist/rooms-tasks/layout-config.d.ts +11 -0
  156. package/dist/rooms-tasks/layout-config.js +89 -0
  157. package/dist/rooms-tasks/layout-control.d.ts +21 -0
  158. package/dist/rooms-tasks/layout-control.js +52 -0
  159. package/dist/rooms-tasks/layout-member-retirement.d.ts +10 -0
  160. package/dist/rooms-tasks/layout-member-retirement.js +90 -0
  161. package/dist/rooms-tasks/layout-service.d.ts +43 -0
  162. package/dist/rooms-tasks/layout-service.js +203 -0
  163. package/dist/rooms-tasks/layout.d.ts +121 -0
  164. package/dist/rooms-tasks/layout.js +286 -0
  165. package/dist/rooms-tasks/legacy-task-member.d.ts +19 -0
  166. package/dist/rooms-tasks/legacy-task-member.js +116 -0
  167. package/dist/rooms-tasks/live-readiness.d.ts +18 -0
  168. package/dist/rooms-tasks/live-readiness.js +85 -0
  169. package/dist/rooms-tasks/member-ownership.d.ts +5 -0
  170. package/dist/rooms-tasks/member-ownership.js +40 -0
  171. package/dist/rooms-tasks/member-startup.d.ts +1 -0
  172. package/dist/rooms-tasks/member-startup.js +2 -0
  173. package/dist/rooms-tasks/provision.d.ts +3 -0
  174. package/dist/rooms-tasks/provision.js +101 -49
  175. package/dist/rooms-tasks/recovery.d.ts +19 -0
  176. package/dist/rooms-tasks/recovery.js +110 -0
  177. package/dist/rooms-tasks/room-state.d.ts +4 -2
  178. package/dist/rooms-tasks/room-state.js +47 -8
  179. package/dist/rooms-tasks/task-service-retirement.d.ts +11 -0
  180. package/dist/rooms-tasks/task-service-retirement.js +21 -0
  181. package/dist/rooms-tasks/task-state.d.ts +52 -8
  182. package/dist/rooms-tasks/task-state.js +251 -26
  183. package/dist/rooms-tasks/types.d.ts +40 -0
  184. package/dist/rooms-tasks/workspace-artifacts.d.ts +6 -0
  185. package/dist/rooms-tasks/workspace-artifacts.js +93 -0
  186. package/dist/rooms-tasks/workspace.d.ts +35 -0
  187. package/dist/rooms-tasks/workspace.js +325 -0
  188. package/dist/runner.d.ts +33 -4
  189. package/dist/runner.js +410 -62
  190. package/dist/session/acp.d.ts +75 -2
  191. package/dist/session/acp.js +345 -82
  192. package/dist/session/arbiter.d.ts +98 -0
  193. package/dist/session/arbiter.js +272 -3
  194. package/dist/session/codex-app-server.d.ts +45 -1
  195. package/dist/session/codex-app-server.js +225 -32
  196. package/dist/session/control.d.ts +17 -3
  197. package/dist/session/control.js +213 -23
  198. package/dist/session/conversation-normalizer.d.ts +2 -1
  199. package/dist/session/conversation-normalizer.js +1 -1
  200. package/dist/session/conversation-observation.d.ts +25 -0
  201. package/dist/session/conversation-observation.js +100 -0
  202. package/dist/session/conversation-replay.d.ts +50 -0
  203. package/dist/session/conversation-replay.js +203 -0
  204. package/dist/session/conversation-store.d.ts +15 -1
  205. package/dist/session/conversation-store.js +206 -26
  206. package/dist/session/conversation-types.d.ts +57 -4
  207. package/dist/session/prompt-batch.d.ts +79 -0
  208. package/dist/session/prompt-batch.js +120 -0
  209. package/dist/session/task-notice.d.ts +14 -0
  210. package/dist/session/task-notice.js +13 -0
  211. package/dist/session/types.d.ts +42 -1
  212. package/dist/setup-tunnel-preflight.d.ts +34 -0
  213. package/dist/setup-tunnel-preflight.js +62 -0
  214. package/dist/socket-path.d.ts +2 -0
  215. package/dist/socket-path.js +22 -0
  216. package/dist/spawn.d.ts +5 -1
  217. package/dist/spawn.js +40 -4
  218. package/dist/startup-prompt.d.ts +15 -0
  219. package/dist/startup-prompt.js +71 -0
  220. package/dist/startup-readiness.d.ts +32 -0
  221. package/dist/startup-readiness.js +101 -0
  222. package/dist/startup-telemetry.d.ts +16 -0
  223. package/dist/startup-telemetry.js +46 -0
  224. package/dist/subscriptions/cli.d.ts +91 -0
  225. package/dist/subscriptions/cli.js +223 -0
  226. package/dist/subscriptions/launch.d.ts +37 -0
  227. package/dist/subscriptions/launch.js +93 -0
  228. package/dist/subscriptions/login.d.ts +77 -0
  229. package/dist/subscriptions/login.js +215 -0
  230. package/dist/subscriptions/observed.d.ts +7 -0
  231. package/dist/subscriptions/observed.js +44 -0
  232. package/dist/subscriptions/probe.d.ts +10 -0
  233. package/dist/subscriptions/probe.js +73 -0
  234. package/dist/subscriptions/service.d.ts +102 -0
  235. package/dist/subscriptions/service.js +364 -0
  236. package/dist/subscriptions/store.d.ts +71 -0
  237. package/dist/subscriptions/store.js +143 -0
  238. package/dist/supervisor/adoption.d.ts +8 -0
  239. package/dist/supervisor/adoption.js +78 -0
  240. package/dist/supervisor/catalog.d.ts +62 -0
  241. package/dist/supervisor/catalog.js +254 -0
  242. package/dist/supervisor/fleet.d.ts +8 -0
  243. package/dist/supervisor/fleet.js +89 -0
  244. package/dist/supervisor/index.js +3 -6
  245. package/dist/supervisor/launchd.d.ts +1 -1
  246. package/dist/supervisor/launchd.js +26 -13
  247. package/dist/supervisor/legacy.d.ts +35 -0
  248. package/dist/supervisor/legacy.js +524 -0
  249. package/dist/supervisor/manager.d.ts +15 -0
  250. package/dist/supervisor/manager.js +270 -0
  251. package/dist/supervisor/registration-refresh.d.ts +45 -0
  252. package/dist/supervisor/registration-refresh.js +266 -0
  253. package/dist/supervisor/scope.d.ts +4 -0
  254. package/dist/supervisor/scope.js +10 -0
  255. package/dist/supervisor/systemd.d.ts +2 -2
  256. package/dist/supervisor/systemd.js +19 -33
  257. package/dist/task-supervision.d.ts +9 -0
  258. package/dist/task-supervision.js +145 -0
  259. package/dist/temp-idle.d.ts +17 -0
  260. package/dist/temp-idle.js +42 -0
  261. package/dist/temp-lifecycle.d.ts +23 -8
  262. package/dist/temp-lifecycle.js +123 -66
  263. package/dist/temp-supervisor-recovery.d.ts +1 -1
  264. package/dist/temp-supervisor-recovery.js +2 -2
  265. package/dist/tunnel-setup-completion.d.ts +7 -0
  266. package/dist/tunnel-setup-completion.js +13 -0
  267. package/dist/tunnel-setup-input.d.ts +19 -0
  268. package/dist/tunnel-setup-input.js +124 -0
  269. package/dist/watchdog/query.d.ts +3 -1
  270. package/dist/watchdog/query.js +2 -1
  271. package/dist/web/agent-attachments.d.ts +29 -0
  272. package/dist/web/agent-attachments.js +162 -0
  273. package/dist/web/auth.d.ts +65 -2
  274. package/dist/web/auth.js +201 -11
  275. package/dist/web/available-port.d.ts +2 -0
  276. package/dist/web/available-port.js +23 -0
  277. package/dist/web/control.d.ts +3 -3
  278. package/dist/web/control.js +10 -8
  279. package/dist/web/conversation-stream-codec.d.ts +23 -0
  280. package/dist/web/conversation-stream-codec.js +110 -0
  281. package/dist/web/conversation-stream.d.ts +25 -0
  282. package/dist/web/conversation-stream.js +231 -0
  283. package/dist/web/events.d.ts +2 -0
  284. package/dist/web/events.js +9 -0
  285. package/dist/web/fleet-config-service.d.ts +4 -1
  286. package/dist/web/fleet-config-service.js +46 -15
  287. package/dist/web/prefix-gateway.d.ts +32 -0
  288. package/dist/web/prefix-gateway.js +248 -0
  289. package/dist/web/resource-views.d.ts +124 -0
  290. package/dist/web/resource-views.js +424 -0
  291. package/dist/web/runtime.d.ts +3 -1
  292. package/dist/web/runtime.js +132 -34
  293. package/dist/web/server.d.ts +19 -0
  294. package/dist/web/server.js +802 -67
  295. package/dist/web/service.d.ts +11 -2
  296. package/dist/web/service.js +30 -4
  297. package/dist/web/workspace-devices.d.ts +107 -0
  298. package/dist/web/workspace-devices.js +277 -0
  299. package/dist/web/workspace-tunnel.d.ts +1 -0
  300. package/dist/web/workspace-tunnel.js +34 -0
  301. package/dist/workspace-enrollment.d.ts +83 -0
  302. package/dist/workspace-enrollment.js +580 -0
  303. package/dist/workspace-replacement.d.ts +66 -0
  304. package/dist/workspace-replacement.js +220 -0
  305. package/docs/acp-files.md +146 -0
  306. package/docs/conversation-stream.md +196 -0
  307. package/docs/fleet-migration.md +54 -0
  308. package/docs/live-voice.md +13 -0
  309. package/docs/room-layouts.md +227 -0
  310. package/docs/self-reminders.md +374 -0
  311. package/docs/task-workspaces.md +225 -0
  312. package/docs/validation/managed-cli-permissions.md +421 -0
  313. package/examples/room-layouts/fresh.yaml +27 -0
  314. package/examples/room-layouts/scoped.yaml +21 -0
  315. package/examples/room-layouts/shared.yaml +19 -0
  316. package/package.json +24 -20
  317. package/presets/README.md +78 -0
  318. package/presets/brain-catalog.json +8 -2
  319. package/presets/fleet/agent_templates/Critic.yaml +1 -1
  320. package/presets/fleet/agent_templates/Developer.yaml +1 -1
  321. package/presets/fleet/agent_templates/Engineer.yaml +5 -0
  322. package/presets/fleet/agent_templates/LocalCoordinator.yaml +4 -2
  323. package/presets/fleet/agents/FleetCoordinator.yaml +1 -1
  324. package/presets/fleet/brains/claude-fable-5-1-high.yaml +5 -0
  325. package/presets/fleet/brains/claude-fable-5-1-low.yaml +5 -0
  326. package/presets/fleet/brains/claude-fable-5-1-max.yaml +5 -0
  327. package/presets/fleet/brains/claude-fable-5-1-medium.yaml +5 -0
  328. package/presets/fleet/brains/claude-fable-5-1-xhigh.yaml +5 -0
  329. package/presets/fleet/brains/claude-fable-5-high.yaml +1 -1
  330. package/presets/fleet/brains/claude-fable-5-low.yaml +1 -1
  331. package/presets/fleet/brains/claude-fable-5-max.yaml +1 -1
  332. package/presets/fleet/brains/claude-fable-5-medium.yaml +1 -1
  333. package/presets/fleet/brains/claude-fable-5-xhigh.yaml +1 -1
  334. package/presets/fleet/brains/claude-haiku-4-5-20251001-default.yaml +4 -0
  335. package/presets/fleet/brains/claude-opus-5-5-high.yaml +5 -0
  336. package/presets/fleet/brains/claude-opus-5-5-low.yaml +5 -0
  337. package/presets/fleet/brains/claude-opus-5-5-max.yaml +5 -0
  338. package/presets/fleet/brains/claude-opus-5-5-medium.yaml +5 -0
  339. package/presets/fleet/brains/claude-opus-5-5-xhigh.yaml +5 -0
  340. package/presets/fleet/brains/claude-opus-5-high.yaml +1 -1
  341. package/presets/fleet/brains/claude-opus-5-low.yaml +1 -1
  342. package/presets/fleet/brains/claude-opus-5-max.yaml +1 -1
  343. package/presets/fleet/brains/claude-opus-5-medium.yaml +1 -1
  344. package/presets/fleet/brains/claude-opus-5-xhigh.yaml +1 -1
  345. package/presets/fleet/brains/claude-sonnet-5-high.yaml +1 -1
  346. package/presets/fleet/brains/claude-sonnet-5-low.yaml +1 -1
  347. package/presets/fleet/brains/claude-sonnet-5-max.yaml +1 -1
  348. package/presets/fleet/brains/claude-sonnet-5-medium.yaml +1 -1
  349. package/presets/fleet/brains/claude-sonnet-5-xhigh.yaml +1 -1
  350. package/presets/fleet/brains/codex-gpt-5-3-codex-spark-high.yaml +1 -1
  351. package/presets/fleet/brains/codex-gpt-5-3-codex-spark-low.yaml +1 -1
  352. package/presets/fleet/brains/codex-gpt-5-3-codex-spark-medium.yaml +1 -1
  353. package/presets/fleet/brains/codex-gpt-5-3-codex-spark-xhigh.yaml +1 -1
  354. package/presets/fleet/brains/codex-gpt-5-4-high.yaml +1 -1
  355. package/presets/fleet/brains/codex-gpt-5-4-low.yaml +1 -1
  356. package/presets/fleet/brains/codex-gpt-5-4-medium.yaml +1 -1
  357. package/presets/fleet/brains/codex-gpt-5-4-mini-high.yaml +1 -1
  358. package/presets/fleet/brains/codex-gpt-5-4-mini-low.yaml +1 -1
  359. package/presets/fleet/brains/codex-gpt-5-4-mini-medium.yaml +1 -1
  360. package/presets/fleet/brains/codex-gpt-5-4-mini-xhigh.yaml +1 -1
  361. package/presets/fleet/brains/codex-gpt-5-4-xhigh.yaml +1 -1
  362. package/presets/fleet/brains/codex-gpt-5-5-high.yaml +1 -1
  363. package/presets/fleet/brains/codex-gpt-5-5-low.yaml +1 -1
  364. package/presets/fleet/brains/codex-gpt-5-5-medium.yaml +1 -1
  365. package/presets/fleet/brains/codex-gpt-5-5-xhigh.yaml +1 -1
  366. package/presets/fleet/brains/codex-gpt-5-6-luna-high.yaml +1 -1
  367. package/presets/fleet/brains/codex-gpt-5-6-luna-low.yaml +1 -1
  368. package/presets/fleet/brains/codex-gpt-5-6-luna-max.yaml +1 -1
  369. package/presets/fleet/brains/codex-gpt-5-6-luna-medium.yaml +1 -1
  370. package/presets/fleet/brains/codex-gpt-5-6-luna-xhigh.yaml +1 -1
  371. package/presets/fleet/brains/codex-gpt-5-6-sol-high.yaml +1 -1
  372. package/presets/fleet/brains/codex-gpt-5-6-sol-low.yaml +1 -1
  373. package/presets/fleet/brains/codex-gpt-5-6-sol-max.yaml +1 -1
  374. package/presets/fleet/brains/codex-gpt-5-6-sol-medium.yaml +1 -1
  375. package/presets/fleet/brains/codex-gpt-5-6-sol-ultra.yaml +1 -1
  376. package/presets/fleet/brains/codex-gpt-5-6-sol-xhigh.yaml +1 -1
  377. package/presets/fleet/brains/codex-gpt-5-6-terra-high.yaml +1 -1
  378. package/presets/fleet/brains/codex-gpt-5-6-terra-low.yaml +1 -1
  379. package/presets/fleet/brains/codex-gpt-5-6-terra-max.yaml +1 -1
  380. package/presets/fleet/brains/codex-gpt-5-6-terra-medium.yaml +1 -1
  381. package/presets/fleet/brains/codex-gpt-5-6-terra-ultra.yaml +1 -1
  382. package/presets/fleet/brains/codex-gpt-5-6-terra-xhigh.yaml +1 -1
  383. package/presets/fleet/brains/codex-gpt-6-1-sol-high.yaml +5 -0
  384. package/presets/fleet/brains/codex-gpt-6-1-sol-low.yaml +5 -0
  385. package/presets/fleet/brains/codex-gpt-6-1-sol-max.yaml +5 -0
  386. package/presets/fleet/brains/codex-gpt-6-1-sol-medium.yaml +5 -0
  387. package/presets/fleet/brains/codex-gpt-6-1-sol-ultra.yaml +5 -0
  388. package/presets/fleet/brains/codex-gpt-6-1-sol-xhigh.yaml +5 -0
  389. package/presets/fleet/brains/codex-gpt-6-astra-high.yaml +1 -1
  390. package/presets/fleet/brains/codex-gpt-6-astra-low.yaml +1 -1
  391. package/presets/fleet/brains/codex-gpt-6-astra-max.yaml +1 -1
  392. package/presets/fleet/brains/codex-gpt-6-astra-medium.yaml +1 -1
  393. package/presets/fleet/brains/codex-gpt-6-astra-ultra.yaml +1 -1
  394. package/presets/fleet/brains/codex-gpt-6-astra-xhigh.yaml +1 -1
  395. package/presets/fleet/brains/codex-gpt-6-luna-high.yaml +5 -0
  396. package/presets/fleet/brains/codex-gpt-6-luna-low.yaml +5 -0
  397. package/presets/fleet/brains/codex-gpt-6-luna-max.yaml +5 -0
  398. package/presets/fleet/brains/codex-gpt-6-luna-medium.yaml +5 -0
  399. package/presets/fleet/brains/codex-gpt-6-luna-xhigh.yaml +5 -0
  400. package/presets/fleet/brains/codex-gpt-6-sol-high.yaml +5 -0
  401. package/presets/fleet/brains/codex-gpt-6-sol-low.yaml +5 -0
  402. package/presets/fleet/brains/codex-gpt-6-sol-max.yaml +5 -0
  403. package/presets/fleet/brains/codex-gpt-6-sol-medium.yaml +5 -0
  404. package/presets/fleet/brains/codex-gpt-6-sol-ultra.yaml +5 -0
  405. package/presets/fleet/brains/codex-gpt-6-sol-xhigh.yaml +5 -0
  406. package/presets/fleet/roles/Coordinator.yaml +12 -11
  407. package/presets/fleet/roles/Critic.yaml +13 -0
  408. package/presets/fleet/roles/Developer.yaml +13 -0
  409. package/presets/fleet/roles/Engineer.yaml +53 -0
  410. package/presets/fleet/room_layouts/engineering.yaml +25 -0
  411. package/presets/fleet/room_layouts/pair.yaml +24 -0
  412. package/presets/fleet/room_layouts/single.yaml +17 -0
  413. package/presets/fleet/room_layouts/team.yaml +30 -0
  414. package/presets/fleet/room_templates/engineering.yaml +19 -0
  415. package/presets/manifest.json +2 -2
  416. package/dist/web-app/assets/index-59GF-gsZ.css +0 -1
  417. package/dist/web-app/assets/index-C0h3ALvs.js +0 -10
  418. package/dist/web-app/icons/ours-fleet-maskable.svg +0 -4
  419. package/dist/web-app/icons/ours-fleet.svg +0 -4
  420. package/dist/web-app/index.html +0 -17
  421. package/dist/web-app/manifest.webmanifest +0 -15
  422. package/dist/web-app/offline.html +0 -18
  423. package/dist/web-app/sw.js +0 -51
@@ -0,0 +1,341 @@
1
+ /**
2
+ * Durable, private, single-writer state for one agent's self-reminders.
3
+ *
4
+ * The runner that supervises the agent is the only writer: the agent's MCP
5
+ * tools, the dispatch timer and the session's release guard all run in that
6
+ * one process, and every mutation here is synchronous, so each method call is
7
+ * its own linearization point. Asynchronous callers (a queue receipt, a turn
8
+ * completion) never carry state across an `await`; they re-read the current
9
+ * record and apply only forward transitions, so a late receipt can never undo
10
+ * an acknowledgement, update or cancellation that happened meanwhile.
11
+ *
12
+ * Event lifecycle — the boundary that matters is `dispatched`:
13
+ *
14
+ * pending ──admit──▶ admitting ──release guard──▶ dispatched ──ack──▶ acknowledged
15
+ * ▲ │ │
16
+ * └── not released ───┘ └─ restart ─▶ uncertain (held)
17
+ *
18
+ * `dispatched` is written durably by the session's release guard immediately
19
+ * before the prompt is handed to the model. An event found `admitting` after a
20
+ * restart therefore provably never reached the model (reminder prompt bodies
21
+ * are not retained, so session recovery cannot replay them) and is retried
22
+ * under the same event id. An event found `dispatched` may or may not have been
23
+ * seen, so it is held as `uncertain` and never automatically re-admitted.
24
+ *
25
+ * Urgency is an explicit opt-in per reminder (`interrupt`). Absent means false,
26
+ * so stores written before it existed keep their exact idle-only meaning, and
27
+ * an older runtime that ignores the field stays idle-only. An urgent event may
28
+ * request at most ONE interruption of the agent's current turn per revision:
29
+ * the request is durably recorded before the session is asked to cancel, so a
30
+ * crash, a forced adapter restart or a second urgent reminder can never turn
31
+ * it into a cancellation loop. Every later admission of that event is
32
+ * idle-only, and only the release guard ever records `dispatched`.
33
+ */
34
+ export declare const SELF_REMINDERS_FILE = ".self-reminders.json";
35
+ export declare const MAX_OPEN_REMINDERS = 100;
36
+ export declare const MAX_RETAINED_CLOSED = 200;
37
+ export declare const DEFAULT_LATE_WINDOW_SECONDS = 3600;
38
+ export declare const MAX_LATE_WINDOW_SECONDS: number;
39
+ export declare const MIN_LATE_WINDOW_SECONDS = 60;
40
+ export type ReminderState = 'active' | 'delivered' | 'acknowledged' | 'cancelled' | 'expired';
41
+ export type ReminderEventState = 'pending' | 'admitting' | 'dispatched' | 'uncertain' | 'acknowledged' | 'invalidated' | 'expired';
42
+ /**
43
+ * Who a store belongs to. The fields that must match depend on lifetime,
44
+ * because that is what each lifetime keeps stable across its ordinary
45
+ * stop/start:
46
+ *
47
+ * - `permanent`: an orderly stop releases the managed runtime, and the next
48
+ * start provisions a new runtime instance and action for the SAME identity
49
+ * and state directory. Ownership is the role plus its identity CID. A
50
+ * removed agent's state directory is deleted, so a later same-named agent
51
+ * starts without this store; a replaced identity has a different CID.
52
+ * - `temporary` (including task members): suspend/resume keeps the runtime
53
+ * instance and action, and retirement archives the directory with this store
54
+ * removed. Ownership is role, CID, instance and action.
55
+ */
56
+ export interface ReminderOwner {
57
+ role: string;
58
+ lifetime: 'permanent' | 'temporary';
59
+ /** Logical managed-runtime instance. */
60
+ instance: string;
61
+ cid: string;
62
+ /** Creation action of that runtime instance. */
63
+ action: string;
64
+ }
65
+ export interface ReminderRecord {
66
+ id: string;
67
+ requestKey: string;
68
+ requestDigest: string;
69
+ revision: number;
70
+ state: ReminderState;
71
+ title: string;
72
+ note: string;
73
+ localTime: string;
74
+ timeZone: string;
75
+ fold?: 0 | 1;
76
+ dueAt: string;
77
+ lateWindowSeconds: number;
78
+ expiresAt: string;
79
+ createdAt: string;
80
+ updatedAt: string;
81
+ closedReason?: string;
82
+ /** Present (true) only for an urgent reminder; absent is the idle-only default. */
83
+ interrupt?: true;
84
+ }
85
+ /**
86
+ * What became of an urgent event's single interruption request. `requested` is
87
+ * the durable mark written before the session is asked to cancel; it is never
88
+ * evidence that anything was cancelled or delivered.
89
+ *
90
+ * - `cancelled`: the target turn's own terminal result says it was cancelled
91
+ * by this request (correlated, not inferred).
92
+ * - `ended`: the session reported the cancellation settled, but the target's
93
+ * terminal could not be correlated, or it ended some other way.
94
+ * - `forced`: the adapter ignored the cancel and was restarted.
95
+ * - `failed`: the control call failed; it may or may not have reached the adapter.
96
+ * - `unknown`: the supervisor restarted before the outcome was recorded.
97
+ */
98
+ export type ReminderInterruptOutcome = 'requested' | 'cancelled' | 'ended' | 'forced' | 'failed' | 'unknown';
99
+ /**
100
+ * The exact turn an urgent event asked to stop: typed provenance and the
101
+ * session's own identifiers for it (prompt id within that session generation),
102
+ * never a body.
103
+ */
104
+ export interface ReminderInterruptTarget {
105
+ source: string;
106
+ promptId: string;
107
+ generation: string;
108
+ sessionId?: string;
109
+ }
110
+ export interface ReminderEventInterrupt {
111
+ requestedAt: string;
112
+ target: ReminderInterruptTarget;
113
+ outcome: ReminderInterruptOutcome;
114
+ settledAt?: string;
115
+ reason?: string;
116
+ }
117
+ export interface ReminderEvent {
118
+ id: string;
119
+ reminderId: string;
120
+ revision: number;
121
+ state: ReminderEventState;
122
+ createdAt: string;
123
+ attempts: number;
124
+ retryAt?: string;
125
+ promptId?: string;
126
+ admittedAt?: string;
127
+ dispatchedAt?: string;
128
+ closedAt?: string;
129
+ reason?: string;
130
+ /** The one interruption an urgent event may have requested. */
131
+ interrupt?: ReminderEventInterrupt;
132
+ /** Why an urgent event last found the busy turn not interruptible (diagnostic). */
133
+ interruptDeferred?: string;
134
+ }
135
+ export declare class ReminderError extends Error {
136
+ readonly code: string;
137
+ constructor(code: string, message: string);
138
+ }
139
+ export interface ReminderWriter {
140
+ (path: string, contents: string): void;
141
+ }
142
+ export interface ScheduleInput {
143
+ title?: unknown;
144
+ note?: unknown;
145
+ local_time?: unknown;
146
+ time_zone?: unknown;
147
+ fold?: unknown;
148
+ late_window_seconds?: unknown;
149
+ interrupt?: unknown;
150
+ }
151
+ export interface ReminderView {
152
+ id: string;
153
+ /** The caller's own idempotency key, so a retried or interrupted run can find its work. */
154
+ request_key: string;
155
+ revision: number;
156
+ state: ReminderState;
157
+ title: string;
158
+ note: string;
159
+ local_time: string;
160
+ time_zone: string;
161
+ fold?: 0 | 1;
162
+ due_at: string;
163
+ late_window_seconds: number;
164
+ /** True only when this reminder may interrupt a busy turn when due. */
165
+ interrupt: boolean;
166
+ expires_at: string;
167
+ created_at: string;
168
+ updated_at: string;
169
+ closed_reason?: string;
170
+ /** The current revision's wake, if one exists. */
171
+ event?: {
172
+ id: string;
173
+ state: ReminderEventState;
174
+ revision: number;
175
+ interrupt_state?: ReminderInterruptOutcome;
176
+ };
177
+ }
178
+ export declare class ReminderStore {
179
+ readonly owner: ReminderOwner;
180
+ private readonly now;
181
+ private readonly log;
182
+ private readonly write;
183
+ readonly path: string;
184
+ private state;
185
+ /**
186
+ * Load or create the store for exactly this owner (see `ReminderOwner`). A
187
+ * store written for anyone else is never adopted: it is moved aside and
188
+ * nothing in it is delivered, so a same-named successor or a replaced
189
+ * identity cannot inherit a predecessor's wakes.
190
+ */
191
+ constructor(stateDir: string, owner: ReminderOwner, now: () => number, log?: (line: string) => void, write?: ReminderWriter);
192
+ /** Restart recovery. Never re-admits anything that may have reached the model. */
193
+ private recover;
194
+ private persist;
195
+ /**
196
+ * Apply a mutation and persist it as one step. If the write fails the
197
+ * in-memory state is restored, so memory never claims what disk does not.
198
+ */
199
+ private commit;
200
+ private reminder;
201
+ private event;
202
+ private schedule;
203
+ private openCount;
204
+ create(requestKey: unknown, input: ScheduleInput): {
205
+ reminder: ReminderView;
206
+ created: boolean;
207
+ };
208
+ update(id: unknown, expectedRevision: unknown, input: ScheduleInput): ReminderView;
209
+ cancel(id: unknown, expectedRevision: unknown): ReminderView;
210
+ list(filter?: {
211
+ state?: unknown;
212
+ limit?: unknown;
213
+ after?: unknown;
214
+ }): {
215
+ uncertain_events: number;
216
+ after?: string | undefined;
217
+ reminders: ReminderView[];
218
+ more: boolean;
219
+ };
220
+ inspect(eventId: unknown): {
221
+ event: {
222
+ interrupt?: {
223
+ reason?: string | undefined;
224
+ settled_at?: string | undefined;
225
+ state: ReminderInterruptOutcome;
226
+ requested_at: string;
227
+ target_source: string;
228
+ target: {
229
+ session_id?: string | undefined;
230
+ source: string;
231
+ prompt_id: string;
232
+ generation: string;
233
+ };
234
+ } | undefined;
235
+ interrupt_deferred?: string | undefined;
236
+ reason?: string | undefined;
237
+ closed_at?: string | undefined;
238
+ dispatched_at?: string | undefined;
239
+ id: string;
240
+ reminder_id: string;
241
+ revision: number;
242
+ state: ReminderEventState;
243
+ created_at: string;
244
+ };
245
+ reminder: ReminderView | undefined;
246
+ current: boolean;
247
+ eligible: boolean;
248
+ late_by_ms: number | undefined;
249
+ };
250
+ ack(eventId: unknown, expectedRevision: unknown): {
251
+ event: {
252
+ interrupt?: {
253
+ reason?: string | undefined;
254
+ settled_at?: string | undefined;
255
+ state: ReminderInterruptOutcome;
256
+ requested_at: string;
257
+ target_source: string;
258
+ target: {
259
+ session_id?: string | undefined;
260
+ source: string;
261
+ prompt_id: string;
262
+ generation: string;
263
+ };
264
+ } | undefined;
265
+ interrupt_deferred?: string | undefined;
266
+ reason?: string | undefined;
267
+ closed_at?: string | undefined;
268
+ dispatched_at?: string | undefined;
269
+ id: string;
270
+ reminder_id: string;
271
+ revision: number;
272
+ state: ReminderEventState;
273
+ created_at: string;
274
+ };
275
+ acknowledged: boolean;
276
+ duplicate: boolean;
277
+ };
278
+ /**
279
+ * Earliest instant the dispatcher has work, or undefined when idle.
280
+ * `live` names admissions still owned by a queued prompt in this process:
281
+ * their own completion re-arms the dispatcher, so they are not work here.
282
+ */
283
+ nextWorkAt(live?: ReadonlySet<string>): number | undefined;
284
+ private openEvent;
285
+ /**
286
+ * Expire what is past its window and create a pending event for each due
287
+ * reminder. Returns the events ready to admit now, earliest due first.
288
+ */
289
+ sweep(live?: ReadonlySet<string>): ReminderEvent[];
290
+ /** Durable claim made before the prompt is queued. False: do not queue. */
291
+ markAdmitting(eventId: string): boolean;
292
+ /** Record the session's queue receipt; never moves an event backwards. */
293
+ recordReceipt(eventId: string, promptId: string): void;
294
+ /**
295
+ * The release guard: called synchronously by the session at the moment the
296
+ * prompt would be handed to the model. It returns true only after
297
+ * `dispatched` is durably on disk; any doubt refuses the dispatch.
298
+ */
299
+ claimDispatch(eventId: string, stopping: boolean): {
300
+ dispatch: boolean;
301
+ reason?: string;
302
+ };
303
+ /**
304
+ * Whether this undispatched event may still ask to interrupt a busy turn: its
305
+ * reminder is urgent and current, and no interruption was ever requested
306
+ * for it (in this process or before a restart).
307
+ */
308
+ mayInterrupt(eventId: string): boolean;
309
+ /**
310
+ * Durable mark made BEFORE the session is asked to cancel. False: do not
311
+ * interrupt. Once written it is never cleared, which is what bounds every
312
+ * urgent event to one interruption.
313
+ */
314
+ markInterruptRequested(eventId: string, target: ReminderInterruptTarget): boolean;
315
+ /**
316
+ * Record why an urgent event did not interrupt this time. Written only when
317
+ * the reason changes, so a long busy stretch costs one write, not one per poll.
318
+ */
319
+ recordInterruptDeferred(eventId: string, reason: string): void;
320
+ /** How the requested interruption ended. Diagnostic; never moves the event. */
321
+ recordInterruptOutcome(eventId: string, outcome: Exclude<ReminderInterruptOutcome, 'requested'>, reason?: string): void;
322
+ /** Still the current, undispatched claim this process made? Re-checked after every await. */
323
+ stillAdmitting(eventId: string): boolean;
324
+ /**
325
+ * An admission that ended without the release guard dispatching it (queue
326
+ * refused, session died, release refused while stopping) goes back to
327
+ * pending. Anything already past `admitting` is left exactly as it is.
328
+ */
329
+ releaseUndispatched(eventId: string, retryAt: number): void;
330
+ eventSummary(eventId: string): {
331
+ event: ReminderEvent;
332
+ reminder: ReminderRecord;
333
+ } | undefined;
334
+ private supersedeEvents;
335
+ /** Bound retained history; open reminders and their events are never dropped. */
336
+ private prune;
337
+ private view;
338
+ private eventView;
339
+ }
340
+ /** Remove a retired agent's reminder store and any quarantined copies. */
341
+ export declare function removeReminderState(stateDir: string): void;