@ours.network/fleet 1.2.0-nightly.3 → 1.2.0-nightly.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +158 -28
- package/dist/account-origin.d.ts +2 -0
- package/dist/account-origin.js +6 -0
- package/dist/agent-ours/bridge.d.ts +3 -0
- package/dist/agent-ours/bridge.js +178 -0
- package/dist/agent-ours/controller.d.ts +14 -0
- package/dist/agent-ours/controller.js +60 -0
- package/dist/agent-ours/correspondence.d.ts +10 -0
- package/dist/agent-ours/correspondence.js +1 -0
- package/dist/agent-ours/file-rpc.d.ts +23 -0
- package/dist/agent-ours/file-rpc.js +123 -0
- package/dist/agent-ours/harness.d.ts +14 -0
- package/dist/agent-ours/harness.js +72 -0
- package/dist/agent-ours/mcp-endpoint.d.ts +15 -0
- package/dist/agent-ours/mcp-endpoint.js +111 -0
- package/dist/agent-ours/runtime.d.ts +59 -0
- package/dist/agent-ours/runtime.js +283 -0
- package/dist/agent-ours/service.d.ts +23 -0
- package/dist/agent-ours/service.js +372 -0
- package/dist/agent-ours/state.d.ts +45 -0
- package/dist/agent-ours/state.js +95 -0
- package/dist/agent-ours/wire.d.ts +14 -0
- package/dist/agent-ours/wire.js +55 -0
- package/dist/application/conversation-history.d.ts +25 -0
- package/dist/application/conversation-history.js +189 -0
- package/dist/application/fleet-query-service.d.ts +1 -1
- package/dist/application/fleet-query-service.js +2 -2
- package/dist/application/legacy-supervisor-identity.d.ts +7 -0
- package/dist/application/legacy-supervisor-identity.js +43 -0
- package/dist/application/model-catalog.d.ts +1 -1
- package/dist/application/model-catalog.js +5 -2
- package/dist/application/preset-provenance.d.ts +19 -0
- package/dist/application/preset-provenance.js +59 -0
- package/dist/application/room-layout-definitions.d.ts +45 -0
- package/dist/application/room-layout-definitions.js +130 -0
- package/dist/application/session-control.d.ts +18 -0
- package/dist/application/session-control.js +54 -3
- package/dist/application/supervisor-ours-tools.d.ts +159 -0
- package/dist/application/supervisor-ours-tools.js +113 -0
- package/dist/application/task-layouts.d.ts +91 -0
- package/dist/application/task-layouts.js +249 -0
- package/dist/application/task-room-service.d.ts +99 -3
- package/dist/application/task-room-service.js +296 -31
- package/dist/atomic-file.d.ts +5 -0
- package/dist/atomic-file.js +62 -1
- package/dist/briefing.js +10 -59
- package/dist/build-info.json +6 -4
- package/dist/capabilities.d.ts +3 -1
- package/dist/capabilities.js +4 -0
- package/dist/cli.js +131 -5
- package/dist/client-profile.d.ts +5 -16
- package/dist/client-profile.js +4 -112
- package/dist/config.d.ts +4 -0
- package/dist/config.js +7 -0
- package/dist/creation.d.ts +1 -1
- package/dist/creation.js +5 -16
- package/dist/daemon-recovery.d.ts +1 -8
- package/dist/daemon-recovery.js +8 -113
- package/dist/docs.d.ts +3 -3
- package/dist/docs.js +43 -23
- package/dist/doctor.d.ts +1 -1
- package/dist/doctor.js +46 -59
- package/dist/erased-resources.d.ts +9 -0
- package/dist/erased-resources.js +87 -0
- package/dist/fleet-command-audit.d.ts +1 -0
- package/dist/fleet-command-audit.js +12 -7
- package/dist/harness/agent-session.d.ts +2 -0
- package/dist/harness/claude-code-session.js +4 -2
- package/dist/harness/codex-app-server-proxy.d.ts +4 -1
- package/dist/harness/codex-app-server-proxy.js +41 -5
- package/dist/harness/codex-session.js +9 -2
- package/dist/harness/codex.d.ts +3 -2
- package/dist/harness/codex.js +4 -3
- package/dist/harness/hermes-session.js +7 -1
- package/dist/init-wizard.js +20 -9
- package/dist/isolation/policy.js +2 -0
- package/dist/isolation/types.d.ts +5 -0
- package/dist/monitor.d.ts +1 -34
- package/dist/monitor.js +24 -151
- package/dist/notifications/fleet-producer.d.ts +18 -0
- package/dist/notifications/fleet-producer.js +129 -0
- package/dist/notifications/outbox.d.ts +31 -0
- package/dist/notifications/outbox.js +104 -0
- package/dist/owner-channel/channel.d.ts +3 -0
- package/dist/owner-channel/channel.js +34 -6
- package/dist/owner-channel/commands.d.ts +4 -0
- package/dist/owner-channel/commands.js +8 -0
- package/dist/owner-channel/lifecycle-outbox.js +4 -3
- package/dist/owner-channel/ours-client.js +2 -17
- package/dist/preset-migration.js +15 -0
- package/dist/rooms-tasks/add-member.d.ts +48 -0
- package/dist/rooms-tasks/add-member.js +83 -0
- package/dist/rooms-tasks/archived-absence.d.ts +8 -0
- package/dist/rooms-tasks/archived-absence.js +48 -0
- package/dist/rooms-tasks/cli.js +34 -5
- package/dist/rooms-tasks/close.d.ts +5 -2
- package/dist/rooms-tasks/close.js +208 -28
- package/dist/rooms-tasks/config.js +3 -1
- package/dist/rooms-tasks/cowork-adapter.d.ts +6 -4
- package/dist/rooms-tasks/cowork-adapter.js +11 -117
- package/dist/rooms-tasks/cowork-http.d.ts +3 -0
- package/dist/rooms-tasks/cowork-http.js +70 -0
- package/dist/rooms-tasks/deletion.d.ts +1 -1
- package/dist/rooms-tasks/deletion.js +74 -5
- package/dist/rooms-tasks/erasure.d.ts +6 -0
- package/dist/rooms-tasks/erasure.js +169 -0
- package/dist/rooms-tasks/external-worker.d.ts +1 -1
- package/dist/rooms-tasks/external-worker.js +3 -4
- package/dist/rooms-tasks/layout-binding-client.d.ts +11 -0
- package/dist/rooms-tasks/layout-binding-client.js +56 -0
- package/dist/rooms-tasks/layout-binding-grants.d.ts +21 -0
- package/dist/rooms-tasks/layout-binding-grants.js +128 -0
- package/dist/rooms-tasks/layout-cli.d.ts +4 -0
- package/dist/rooms-tasks/layout-cli.js +107 -0
- package/dist/rooms-tasks/layout-config.d.ts +11 -0
- package/dist/rooms-tasks/layout-config.js +89 -0
- package/dist/rooms-tasks/layout-control.d.ts +21 -0
- package/dist/rooms-tasks/layout-control.js +52 -0
- package/dist/rooms-tasks/layout-service.d.ts +42 -0
- package/dist/rooms-tasks/layout-service.js +185 -0
- package/dist/rooms-tasks/layout.d.ts +114 -0
- package/dist/rooms-tasks/layout.js +250 -0
- package/dist/rooms-tasks/live-readiness.d.ts +18 -0
- package/dist/rooms-tasks/live-readiness.js +85 -0
- package/dist/rooms-tasks/member-startup.d.ts +1 -0
- package/dist/rooms-tasks/member-startup.js +2 -0
- package/dist/rooms-tasks/provision.d.ts +14 -0
- package/dist/rooms-tasks/provision.js +182 -48
- package/dist/rooms-tasks/room-state.d.ts +4 -2
- package/dist/rooms-tasks/room-state.js +53 -8
- package/dist/rooms-tasks/task-state.d.ts +42 -7
- package/dist/rooms-tasks/task-state.js +153 -23
- package/dist/rooms-tasks/types.d.ts +28 -0
- package/dist/rooms-tasks/workspace-artifacts.d.ts +6 -0
- package/dist/rooms-tasks/workspace-artifacts.js +93 -0
- package/dist/rooms-tasks/workspace.d.ts +26 -0
- package/dist/rooms-tasks/workspace.js +195 -0
- package/dist/runner.d.ts +23 -3
- package/dist/runner.js +581 -494
- package/dist/session/acp.d.ts +3 -0
- package/dist/session/acp.js +14 -0
- package/dist/session/arbiter.d.ts +3 -0
- package/dist/session/arbiter.js +20 -2
- package/dist/session/codex-app-server-transport.js +1 -1
- package/dist/session/codex-app-server.d.ts +3 -0
- package/dist/session/codex-app-server.js +25 -1
- package/dist/session/control.d.ts +10 -1
- package/dist/session/control.js +37 -2
- package/dist/session/conversation-normalizer.d.ts +2 -1
- package/dist/session/conversation-normalizer.js +1 -1
- package/dist/session/conversation-types.d.ts +5 -3
- package/dist/session/task-notice.d.ts +14 -0
- package/dist/session/task-notice.js +13 -0
- package/dist/session/types.d.ts +3 -0
- package/dist/socket-path.d.ts +2 -0
- package/dist/socket-path.js +22 -0
- package/dist/spawn.js +19 -16
- package/dist/startup-readiness.d.ts +13 -0
- package/dist/startup-readiness.js +38 -0
- package/dist/subscriptions/cli.d.ts +78 -0
- package/dist/subscriptions/cli.js +186 -0
- package/dist/subscriptions/launch.d.ts +37 -0
- package/dist/subscriptions/launch.js +93 -0
- package/dist/subscriptions/login.d.ts +75 -0
- package/dist/subscriptions/login.js +182 -0
- package/dist/subscriptions/observed.d.ts +7 -0
- package/dist/subscriptions/observed.js +44 -0
- package/dist/subscriptions/probe.d.ts +10 -0
- package/dist/subscriptions/probe.js +73 -0
- package/dist/subscriptions/service.d.ts +102 -0
- package/dist/subscriptions/service.js +364 -0
- package/dist/subscriptions/store.d.ts +71 -0
- package/dist/subscriptions/store.js +140 -0
- package/dist/supervisor/launchd.js +2 -1
- package/dist/supervisor/systemd.js +9 -23
- package/dist/temp-idle.d.ts +17 -0
- package/dist/temp-idle.js +42 -0
- package/dist/temp-lifecycle.d.ts +6 -1
- package/dist/temp-lifecycle.js +29 -13
- package/dist/temp-supervisor-recovery.d.ts +3 -0
- package/dist/temp-supervisor-recovery.js +46 -0
- package/dist/watchdog/briefing.js +3 -16
- package/dist/watchdog/run.js +19 -5
- package/dist/web/agent-attachments.d.ts +29 -0
- package/dist/web/agent-attachments.js +162 -0
- package/dist/web/auth.d.ts +28 -2
- package/dist/web/auth.js +81 -8
- package/dist/web/available-port.d.ts +2 -0
- package/dist/web/available-port.js +23 -0
- package/dist/web/control.d.ts +3 -2
- package/dist/web/control.js +11 -7
- package/dist/web/fleet-config-service.d.ts +4 -1
- package/dist/web/fleet-config-service.js +46 -15
- package/dist/web/prefix-gateway.d.ts +23 -0
- package/dist/web/prefix-gateway.js +156 -0
- package/dist/web/runtime.d.ts +4 -0
- package/dist/web/runtime.js +106 -20
- package/dist/web/server.d.ts +11 -0
- package/dist/web/server.js +445 -31
- package/dist/web/service.d.ts +11 -2
- package/dist/web/service.js +30 -4
- package/dist/web/workspace-devices.d.ts +29 -0
- package/dist/web/workspace-devices.js +84 -0
- package/dist/web/workspace-tunnel.d.ts +1 -0
- package/dist/web/workspace-tunnel.js +32 -0
- package/dist/web-app/assets/FleetApp-D58F4xje.css +1 -0
- package/dist/web-app/assets/FleetApp-DP5cBY0o.js +302 -0
- package/dist/web-app/assets/FleetApp-DP5cBY0o.js.map +1 -0
- package/dist/web-app/assets/abnfDiagram-VCTEODGH-BvJIz7wN.js +2 -0
- package/dist/web-app/assets/abnfDiagram-VCTEODGH-BvJIz7wN.js.map +1 -0
- package/dist/web-app/assets/arc-AT_BEfpe.js +2 -0
- package/dist/web-app/assets/arc-AT_BEfpe.js.map +1 -0
- package/dist/web-app/assets/architectureDiagram-5GKGNRK7-vSgJa9Xb.js +37 -0
- package/dist/web-app/assets/architectureDiagram-5GKGNRK7-vSgJa9Xb.js.map +1 -0
- package/dist/web-app/assets/blockDiagram-I7D4REHJ-DCFk_4Kv.js +130 -0
- package/dist/web-app/assets/blockDiagram-I7D4REHJ-DCFk_4Kv.js.map +1 -0
- package/dist/web-app/assets/browser-CMIwJ_8L.js +9 -0
- package/dist/web-app/assets/browser-CMIwJ_8L.js.map +1 -0
- package/dist/web-app/assets/c4Diagram-7LVT6UL2-8J_dVUtF.js +39 -0
- package/dist/web-app/assets/c4Diagram-7LVT6UL2-8J_dVUtF.js.map +1 -0
- package/dist/web-app/assets/channel-BHCBlfND.js +2 -0
- package/dist/web-app/assets/channel-BHCBlfND.js.map +1 -0
- package/dist/web-app/assets/chunk-2Q5K7J3B-31RX-jnL.js +2 -0
- package/dist/web-app/assets/chunk-2Q5K7J3B-31RX-jnL.js.map +1 -0
- package/dist/web-app/assets/chunk-5VM5RSS4-CFF8_ZJH.js +16 -0
- package/dist/web-app/assets/chunk-5VM5RSS4-CFF8_ZJH.js.map +1 -0
- package/dist/web-app/assets/chunk-F27PBJKO-Dx1l5wLI.js +2 -0
- package/dist/web-app/assets/chunk-F27PBJKO-Dx1l5wLI.js.map +1 -0
- package/dist/web-app/assets/chunk-IMKFNOWR-Ba2_9bl_.js +232 -0
- package/dist/web-app/assets/chunk-IMKFNOWR-Ba2_9bl_.js.map +1 -0
- package/dist/web-app/assets/chunk-JWPE2WC7-_mnRB2OH.js +2 -0
- package/dist/web-app/assets/chunk-JWPE2WC7-_mnRB2OH.js.map +1 -0
- package/dist/web-app/assets/chunk-POPQ4Y6H-B8jQTxQO.js +2 -0
- package/dist/web-app/assets/chunk-POPQ4Y6H-B8jQTxQO.js.map +1 -0
- package/dist/web-app/assets/chunk-SVP7TREG-BO_Jnb_c.js +89 -0
- package/dist/web-app/assets/chunk-SVP7TREG-BO_Jnb_c.js.map +1 -0
- package/dist/web-app/assets/chunk-TICWLB2K-ZYZ9hFu5.js +207 -0
- package/dist/web-app/assets/chunk-TICWLB2K-ZYZ9hFu5.js.map +1 -0
- package/dist/web-app/assets/chunk-XXDRQBXY-ByUAYXI3.js +2 -0
- package/dist/web-app/assets/chunk-XXDRQBXY-ByUAYXI3.js.map +1 -0
- package/dist/web-app/assets/classDiagram-ZZMXUADV-Ddx7RAuT.js +2 -0
- package/dist/web-app/assets/classDiagram-ZZMXUADV-Ddx7RAuT.js.map +1 -0
- package/dist/web-app/assets/classDiagram-v2-VYDZK3BY-Ddx7RAuT.js +2 -0
- package/dist/web-app/assets/classDiagram-v2-VYDZK3BY-Ddx7RAuT.js.map +1 -0
- package/dist/web-app/assets/cose-bilkent-JH36ORCC-BuOGJgHG.js +2 -0
- package/dist/web-app/assets/cose-bilkent-JH36ORCC-BuOGJgHG.js.map +1 -0
- package/dist/web-app/assets/cynefin-OW5HDTMX-DLksGPh8.js +179 -0
- package/dist/web-app/assets/cynefin-OW5HDTMX-DLksGPh8.js.map +1 -0
- package/dist/web-app/assets/cynefinDiagram-5FMLGOSQ-nJQb5qZR.js +63 -0
- package/dist/web-app/assets/cynefinDiagram-5FMLGOSQ-nJQb5qZR.js.map +1 -0
- package/dist/web-app/assets/cytoscape.esm-CtNdOvlO.js +332 -0
- package/dist/web-app/assets/cytoscape.esm-CtNdOvlO.js.map +1 -0
- package/dist/web-app/assets/dagre-GXQ25YYZ-CCF5O_UD.js +5 -0
- package/dist/web-app/assets/dagre-GXQ25YYZ-CCF5O_UD.js.map +1 -0
- package/dist/web-app/assets/defaultLocale-DX6XiGOO.js +2 -0
- package/dist/web-app/assets/defaultLocale-DX6XiGOO.js.map +1 -0
- package/dist/web-app/assets/diagram-S7CK7UJ4-C88au4NC.js +31 -0
- package/dist/web-app/assets/diagram-S7CK7UJ4-C88au4NC.js.map +1 -0
- package/dist/web-app/assets/diagram-UQ7AKVKN-B4QnPs7U.js +42 -0
- package/dist/web-app/assets/diagram-UQ7AKVKN-B4QnPs7U.js.map +1 -0
- package/dist/web-app/assets/diagram-VSXAHHWV-DeANdVWA.js +4 -0
- package/dist/web-app/assets/diagram-VSXAHHWV-DeANdVWA.js.map +1 -0
- package/dist/web-app/assets/diagram-VX7I27RA-YzlB_2AY.js +25 -0
- package/dist/web-app/assets/diagram-VX7I27RA-YzlB_2AY.js.map +1 -0
- package/dist/web-app/assets/diagram-Z3DM3KII-YY9NFaz_.js +25 -0
- package/dist/web-app/assets/diagram-Z3DM3KII-YY9NFaz_.js.map +1 -0
- package/dist/web-app/assets/ebnfDiagram-PWID7BFC-Cqu9kHUC.js +2 -0
- package/dist/web-app/assets/ebnfDiagram-PWID7BFC-Cqu9kHUC.js.map +1 -0
- package/dist/web-app/assets/erDiagram-RLTQ6QDP-IHi93MdG.js +100 -0
- package/dist/web-app/assets/erDiagram-RLTQ6QDP-IHi93MdG.js.map +1 -0
- package/dist/web-app/assets/flowDiagram-HODETNUW-19bm7W5P.js +169 -0
- package/dist/web-app/assets/flowDiagram-HODETNUW-19bm7W5P.js.map +1 -0
- package/dist/web-app/assets/ganttDiagram-EL5Y4UJY-BvCqvyiB.js +293 -0
- package/dist/web-app/assets/ganttDiagram-EL5Y4UJY-BvCqvyiB.js.map +1 -0
- package/dist/web-app/assets/gitGraphDiagram-WWUBYQGX-G4Ubl8Fs.js +107 -0
- package/dist/web-app/assets/gitGraphDiagram-WWUBYQGX-G4Ubl8Fs.js.map +1 -0
- package/dist/web-app/assets/index-C4BdeFB9.css +1 -0
- package/dist/web-app/assets/index-Dtn3ZY6J.js +430 -0
- package/dist/web-app/assets/index-Dtn3ZY6J.js.map +1 -0
- package/dist/web-app/assets/infoDiagram-27XIBGKW-B6rtfbuC.js +3 -0
- package/dist/web-app/assets/infoDiagram-27XIBGKW-B6rtfbuC.js.map +1 -0
- package/dist/web-app/assets/init-Gi6I4Gst.js +2 -0
- package/dist/web-app/assets/init-Gi6I4Gst.js.map +1 -0
- package/dist/web-app/assets/ishikawaDiagram-5VMMS53U-Lp8q1D21.js +71 -0
- package/dist/web-app/assets/ishikawaDiagram-5VMMS53U-Lp8q1D21.js.map +1 -0
- package/dist/web-app/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
- package/dist/web-app/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
- package/dist/web-app/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/dist/web-app/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/dist/web-app/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
- package/dist/web-app/assets/journeyDiagram-3NMN7TZE-Av03B9l3.js +140 -0
- package/dist/web-app/assets/journeyDiagram-3NMN7TZE-Av03B9l3.js.map +1 -0
- package/dist/web-app/assets/kanban-definition-UXKFOSKX-Ddd3_ejb.js +90 -0
- package/dist/web-app/assets/kanban-definition-UXKFOSKX-Ddd3_ejb.js.map +1 -0
- package/dist/web-app/assets/katex-HP8lGamR.js +258 -0
- package/dist/web-app/assets/katex-HP8lGamR.js.map +1 -0
- package/dist/web-app/assets/layout-CNjBeOlp.js +2 -0
- package/dist/web-app/assets/layout-CNjBeOlp.js.map +1 -0
- package/dist/web-app/assets/linear-DDONU9Ir.js +2 -0
- package/dist/web-app/assets/linear-DDONU9Ir.js.map +1 -0
- package/dist/web-app/assets/mermaid.core-B9X3C61k.js +313 -0
- package/dist/web-app/assets/mermaid.core-B9X3C61k.js.map +1 -0
- package/dist/web-app/assets/mindmap-definition-YA3MSWOX-I2UME2Ce.js +97 -0
- package/dist/web-app/assets/mindmap-definition-YA3MSWOX-I2UME2Ce.js.map +1 -0
- package/dist/web-app/assets/ordinal-Cboi1Yqb.js +2 -0
- package/dist/web-app/assets/ordinal-Cboi1Yqb.js.map +1 -0
- package/dist/web-app/assets/pegDiagram-XKGWAZYB-BER8lNbi.js +2 -0
- package/dist/web-app/assets/pegDiagram-XKGWAZYB-BER8lNbi.js.map +1 -0
- package/dist/web-app/assets/pieDiagram-E7YTZNPT-FVWVg8rH.js +40 -0
- package/dist/web-app/assets/pieDiagram-E7YTZNPT-FVWVg8rH.js.map +1 -0
- package/dist/web-app/assets/quadrantDiagram-AXDQQJYC-YlvT1u77.js +8 -0
- package/dist/web-app/assets/quadrantDiagram-AXDQQJYC-YlvT1u77.js.map +1 -0
- package/dist/web-app/assets/railroadDiagram-O6MQD6OU-CvxT6dMW.js +2 -0
- package/dist/web-app/assets/railroadDiagram-O6MQD6OU-CvxT6dMW.js.map +1 -0
- package/dist/web-app/assets/requirementDiagram-BXWQKSXE-Caav4EkP.js +85 -0
- package/dist/web-app/assets/requirementDiagram-BXWQKSXE-Caav4EkP.js.map +1 -0
- package/dist/web-app/assets/sankeyDiagram-P5KCCOFB-B5Uw70Gn.js +41 -0
- package/dist/web-app/assets/sankeyDiagram-P5KCCOFB-B5Uw70Gn.js.map +1 -0
- package/dist/web-app/assets/sequenceDiagram-WJ2MYXX4-D2SLKVJl.js +163 -0
- package/dist/web-app/assets/sequenceDiagram-WJ2MYXX4-D2SLKVJl.js.map +1 -0
- package/dist/web-app/assets/sizeCapture-INFHLROL-BVaBfbwa.js +2 -0
- package/dist/web-app/assets/sizeCapture-INFHLROL-BVaBfbwa.js.map +1 -0
- package/dist/web-app/assets/stateDiagram-D77RDMKH-BlV9y2tf.js +2 -0
- package/dist/web-app/assets/stateDiagram-D77RDMKH-BlV9y2tf.js.map +1 -0
- package/dist/web-app/assets/stateDiagram-v2-MP3YSRHH-BU4Tu2pp.js +2 -0
- package/dist/web-app/assets/stateDiagram-v2-MP3YSRHH-BU4Tu2pp.js.map +1 -0
- package/dist/web-app/assets/swimlanes-42K2YHIH-Pv3Wv8c7.js +2 -0
- package/dist/web-app/assets/swimlanes-42K2YHIH-Pv3Wv8c7.js.map +1 -0
- package/dist/web-app/assets/swimlanesDiagram-VR7AAH4N-BNKjOvPH.js +9 -0
- package/dist/web-app/assets/swimlanesDiagram-VR7AAH4N-BNKjOvPH.js.map +1 -0
- package/dist/web-app/assets/timeline-definition-24CTP7MA-C9TOilaR.js +121 -0
- package/dist/web-app/assets/timeline-definition-24CTP7MA-C9TOilaR.js.map +1 -0
- package/dist/web-app/assets/vennDiagram-4TSXK5OY-DeSDprN4.js +35 -0
- package/dist/web-app/assets/vennDiagram-4TSXK5OY-DeSDprN4.js.map +1 -0
- package/dist/web-app/assets/wardleyDiagram-VM6X3IG4-SulZn-nm.js +79 -0
- package/dist/web-app/assets/wardleyDiagram-VM6X3IG4-SulZn-nm.js.map +1 -0
- package/dist/web-app/assets/xychartDiagram-S5SC5T6Z-CC6MrQ0h.js +8 -0
- package/dist/web-app/assets/xychartDiagram-S5SC5T6Z-CC6MrQ0h.js.map +1 -0
- package/dist/web-app/fleet-index.html +19 -0
- package/dist/web-app/fleet.webmanifest +37 -0
- package/dist/web-app/icons/apple-touch-icon.png +0 -0
- package/dist/web-app/icons/favicon-16.png +0 -0
- package/dist/web-app/icons/favicon-32.png +0 -0
- package/dist/web-app/icons/icon-192-maskable.png +0 -0
- package/dist/web-app/icons/icon-192.png +0 -0
- package/dist/web-app/icons/icon-512-maskable.png +0 -0
- package/dist/web-app/icons/icon-512.png +0 -0
- package/dist/web-app/index.html +9 -7
- package/dist/web-app/manifest.webmanifest +10 -8
- package/dist/web-app/sw.js +210 -40
- package/dist/web-app/version.json +1 -0
- package/dist/web-app/workspace-install.sh +148 -0
- package/dist/workspace-enrollment.d.ts +28 -0
- package/dist/workspace-enrollment.js +129 -0
- package/docs/room-layouts.md +227 -0
- package/docs/task-workspaces.md +130 -0
- package/examples/room-layouts/fresh.yaml +27 -0
- package/examples/room-layouts/scoped.yaml +21 -0
- package/examples/room-layouts/shared.yaml +19 -0
- package/package.json +14 -17
- package/presets/README.md +78 -0
- package/presets/brain-catalog.json +8 -2
- package/presets/fleet/agent_templates/Engineer.yaml +5 -0
- package/presets/fleet/brains/claude-fable-5-1-high.yaml +5 -0
- package/presets/fleet/brains/claude-fable-5-1-low.yaml +5 -0
- package/presets/fleet/brains/claude-fable-5-1-max.yaml +5 -0
- package/presets/fleet/brains/claude-fable-5-1-medium.yaml +5 -0
- package/presets/fleet/brains/claude-fable-5-1-xhigh.yaml +5 -0
- package/presets/fleet/brains/claude-fable-5-high.yaml +1 -1
- package/presets/fleet/brains/claude-fable-5-low.yaml +1 -1
- package/presets/fleet/brains/claude-fable-5-max.yaml +1 -1
- package/presets/fleet/brains/claude-fable-5-medium.yaml +1 -1
- package/presets/fleet/brains/claude-fable-5-xhigh.yaml +1 -1
- package/presets/fleet/brains/claude-haiku-4-5-20251001-default.yaml +4 -0
- package/presets/fleet/brains/claude-opus-5-5-high.yaml +5 -0
- package/presets/fleet/brains/claude-opus-5-5-low.yaml +5 -0
- package/presets/fleet/brains/claude-opus-5-5-max.yaml +5 -0
- package/presets/fleet/brains/claude-opus-5-5-medium.yaml +5 -0
- package/presets/fleet/brains/claude-opus-5-5-xhigh.yaml +5 -0
- package/presets/fleet/brains/claude-opus-5-high.yaml +1 -1
- package/presets/fleet/brains/claude-opus-5-low.yaml +1 -1
- package/presets/fleet/brains/claude-opus-5-max.yaml +1 -1
- package/presets/fleet/brains/claude-opus-5-medium.yaml +1 -1
- package/presets/fleet/brains/claude-opus-5-xhigh.yaml +1 -1
- package/presets/fleet/brains/claude-sonnet-5-high.yaml +1 -1
- package/presets/fleet/brains/claude-sonnet-5-low.yaml +1 -1
- package/presets/fleet/brains/claude-sonnet-5-max.yaml +1 -1
- package/presets/fleet/brains/claude-sonnet-5-medium.yaml +1 -1
- package/presets/fleet/brains/claude-sonnet-5-xhigh.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-3-codex-spark-high.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-3-codex-spark-low.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-3-codex-spark-medium.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-3-codex-spark-xhigh.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-4-high.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-4-low.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-4-medium.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-4-mini-high.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-4-mini-low.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-4-mini-medium.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-4-mini-xhigh.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-4-xhigh.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-5-high.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-5-low.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-5-medium.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-5-xhigh.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-luna-high.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-luna-low.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-luna-max.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-luna-medium.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-luna-xhigh.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-sol-high.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-sol-low.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-sol-max.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-sol-medium.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-sol-ultra.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-sol-xhigh.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-terra-high.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-terra-low.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-terra-max.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-terra-medium.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-terra-ultra.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-5-6-terra-xhigh.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-6-1-sol-high.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-1-sol-low.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-1-sol-max.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-1-sol-medium.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-1-sol-ultra.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-1-sol-xhigh.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-astra-high.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-6-astra-low.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-6-astra-max.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-6-astra-medium.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-6-astra-ultra.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-6-astra-xhigh.yaml +1 -1
- package/presets/fleet/brains/codex-gpt-6-luna-high.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-luna-low.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-luna-max.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-luna-medium.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-luna-xhigh.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-sol-high.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-sol-low.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-sol-max.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-sol-medium.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-sol-ultra.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-sol-xhigh.yaml +5 -0
- package/presets/fleet/roles/Coordinator.yaml +22 -0
- package/presets/fleet/roles/Engineer.yaml +40 -0
- package/presets/fleet/room_layouts/engineering.yaml +25 -0
- package/presets/fleet/room_layouts/pair.yaml +24 -0
- package/presets/fleet/room_layouts/single.yaml +17 -0
- package/presets/fleet/room_layouts/team.yaml +30 -0
- package/presets/fleet/room_templates/engineering.yaml +19 -0
- package/presets/manifest.json +2 -2
- package/dist/web-app/assets/index-59GF-gsZ.css +0 -1
- package/dist/web-app/assets/index-C0h3ALvs.js +0 -10
- package/dist/web-app/icons/ours-fleet-maskable.svg +0 -4
- package/dist/web-app/icons/ours-fleet.svg +0 -4
- package/dist/web-app/offline.html +0 -18
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# YAML Room Layouts
|
|
2
|
+
|
|
3
|
+
Room Layout describes room goals, participants and their shared or independent
|
|
4
|
+
sessions. Rooms and agents have independent lifecycles.
|
|
5
|
+
|
|
6
|
+
Place a layout at `fleet/room_layouts/<name>.yaml` beside the split configuration
|
|
7
|
+
for `fleet.yaml`. Agent Templates remain in `fleet/agent_templates/`.
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
version: 1
|
|
11
|
+
participants:
|
|
12
|
+
product: {agent_template: Product}
|
|
13
|
+
developer: {agent_template: Developer}
|
|
14
|
+
qa: {agent_template: QA}
|
|
15
|
+
rooms:
|
|
16
|
+
discovery:
|
|
17
|
+
goal: Clarify the problem and acceptance criteria
|
|
18
|
+
members: [product, developer, qa]
|
|
19
|
+
design:
|
|
20
|
+
goal: Review implementation choices
|
|
21
|
+
members: [developer, qa]
|
|
22
|
+
amigos:
|
|
23
|
+
goal: Resolve a concrete acceptance question
|
|
24
|
+
members: [product, developer, qa]
|
|
25
|
+
roles: {product: product, developer: developer, qa: qa}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Participant `instance_scope` controls instance reuse:
|
|
29
|
+
|
|
30
|
+
- `layout` (default): repeating a participant key reuses its exact running instance
|
|
31
|
+
and session within this layout run.
|
|
32
|
+
- `room`: each room using the key gets its own identity and session, lazily created
|
|
33
|
+
when that room opens. Repeated opens of the same active room reuse that instance.
|
|
34
|
+
|
|
35
|
+
For example, one shared process doctor and one independent critic per room:
|
|
36
|
+
|
|
37
|
+
```yaml
|
|
38
|
+
version: 1
|
|
39
|
+
participants:
|
|
40
|
+
doctor: {agent_template: ProcessDoctor, instance_scope: layout}
|
|
41
|
+
critic: {agent_template: Critic, instance_scope: room}
|
|
42
|
+
rooms:
|
|
43
|
+
discovery:
|
|
44
|
+
goal: Agree on the problem
|
|
45
|
+
members: [doctor, critic]
|
|
46
|
+
design:
|
|
47
|
+
goal: Review the design
|
|
48
|
+
members: [doctor, critic]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Different keys using the same Agent Template still create independent instances.
|
|
52
|
+
See the [shared](../examples/room-layouts/shared.yaml) and
|
|
53
|
+
[fresh](../examples/room-layouts/fresh.yaml) examples, and the mixed
|
|
54
|
+
[scoped](../examples/room-layouts/scoped.yaml) example. All choices can coexist.
|
|
55
|
+
Fresh agents receive their room context. Supply relevant evidence through ordinary
|
|
56
|
+
room messages or existing project documents when needed.
|
|
57
|
+
|
|
58
|
+
A participant without `agent_template` requires a binding. `layout instance`
|
|
59
|
+
returns a local exact reference (supervisor, agent, launch, CID and session).
|
|
60
|
+
Pass participant-to-reference YAML to `create --bindings`. A stopped or replaced instance is rejected. Cross-Fleet bindings require
|
|
61
|
+
an explicit owner grant, as described below.
|
|
62
|
+
Room-scoped participants require `agent_template`; an explicit binding for them
|
|
63
|
+
is rejected before creating resources. Bindings for layout-scoped participants
|
|
64
|
+
keep their existing behavior.
|
|
65
|
+
|
|
66
|
+
```sh
|
|
67
|
+
ours-fleet layout validate work
|
|
68
|
+
ours-fleet layout create work --id example
|
|
69
|
+
ours-fleet layout open example design
|
|
70
|
+
ours-fleet layout open example discovery
|
|
71
|
+
ours-fleet layout open example amigos
|
|
72
|
+
ours-fleet layout close-room example amigos
|
|
73
|
+
ours-fleet layout status example
|
|
74
|
+
ours-fleet layout close example
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Any declared room may open first. `create` only saves the definition and resolved
|
|
78
|
+
Agent Templates; `open` lazily starts missing participants and admits all members
|
|
79
|
+
before sending their room context. The membership notification is informational. Existing room rules govern when
|
|
80
|
+
an agent contributes. Each room opens through an explicit command.
|
|
81
|
+
|
|
82
|
+
`close-room` archives a room and keeps agents available to other rooms. `close`
|
|
83
|
+
archives opened rooms and stops only temporary participants created by this layout
|
|
84
|
+
instance. Explicitly bound participants survive. Cleanup processes existing resources. A 3-Amigos room is an ordinary room with
|
|
85
|
+
complementary members.
|
|
86
|
+
Room-scoped instances follow the same cleanup rules: closing a room does not
|
|
87
|
+
retire them, and a closed room cannot reopen. A new layout run creates new instances.
|
|
88
|
+
|
|
89
|
+
Private state keeps the authorable definition unchanged. Its `participants` map
|
|
90
|
+
uses the original key for shared instances and `<room>:<participant>` for
|
|
91
|
+
room-scoped instances, with `participant` and `room` metadata. Declared but unopened
|
|
92
|
+
rooms have no running instance. Status and task read models distinguish these
|
|
93
|
+
entries and resolve their original Agent Template. Existing snapshots without
|
|
94
|
+
`instance_scope` retain their original keys and require no migration. Snapshots
|
|
95
|
+
using `room` require a Fleet version that supports this field; they are not a
|
|
96
|
+
downgrade format for older Fleet versions.
|
|
97
|
+
|
|
98
|
+
Supported room fields: `goal`, `members`, optional `roles`, `contract`,
|
|
99
|
+
`quiet_membership`, `anonymous`. `contract` is briefing text.
|
|
100
|
+
Top-level fields: `version: 1`, optional `description`, `participants`, `rooms`.
|
|
101
|
+
Participant fields: optional `agent_template`, `instance_scope: layout|room`.
|
|
102
|
+
Unknown fields, ambiguous YAML and invalid member references are rejected.
|
|
103
|
+
Existing templates and tasks keep their behavior.
|
|
104
|
+
|
|
105
|
+
Local Fleet control uses the existing authenticated control socket,
|
|
106
|
+
agent runtime, `spawnTemp` and session queue. Cross-Fleet bindings delegate
|
|
107
|
+
membership operations to their owning Fleet as described below. Private state
|
|
108
|
+
snapshots template definitions; public status hides their environment values.
|
|
109
|
+
Existing owner settings apply; owner CID/invite fingerprint are pinned. Unknown
|
|
110
|
+
mutation outcomes stop new work for inspection rather than blindly replaying a
|
|
111
|
+
spawn or room creation. `close` and `close-room` can still clean known resources.
|
|
112
|
+
Cleanup continues after individual errors and does not stop replacement or borrowed
|
|
113
|
+
instances. Confirmed stopped workers need no live control socket. An unknown
|
|
114
|
+
original outcome remains recorded, and cleanup reports incomplete until inspected;
|
|
115
|
+
it never claims that unknown resources were found or removed. Retrying cleanup
|
|
116
|
+
checks known resources and skips completed cleanup. Reopening an active layout room
|
|
117
|
+
checks its native state, CID and required seats and reports drift without repairing it.
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
Shared sessions retain available conversation context, not guaranteed perfect
|
|
121
|
+
recall or isolation between rooms. Compaction and model judgment still matter.
|
|
122
|
+
Rooms keep their existing turn scheduling.
|
|
123
|
+
|
|
124
|
+
Each layout instance creates distinct native room names, so several instances can
|
|
125
|
+
open the same declared room key. Participant roles must differ from the attached
|
|
126
|
+
owner role; a collision is rejected before creating resources.
|
|
127
|
+
|
|
128
|
+
Definitions are loaded for authoring commands. Retained instances use their saved
|
|
129
|
+
layout and Agent Templates. Status and cleanup operate on saved resources even
|
|
130
|
+
when the source YAML is broken or removed. New agent launches continue to use
|
|
131
|
+
Fleet's normal configuration and launch checks.
|
|
132
|
+
|
|
133
|
+
## Borrowing an instance from another Fleet on the same host
|
|
134
|
+
|
|
135
|
+
Fleet A can open rooms using standalone temporary or persistent agents supervised
|
|
136
|
+
by Fleet B under another OS user. Both must select the same daemon instance and
|
|
137
|
+
Cowork gateway. An agent's original Fleet keeps its session, identity and lifecycle
|
|
138
|
+
control. This extends layout bindings; it does not add bindings to legacy
|
|
139
|
+
`room create` / RoomTemplate provisioning.
|
|
140
|
+
|
|
141
|
+
On the agent owner's Fleet B, use its existing web server and grant access to an
|
|
142
|
+
exact live standalone instance:
|
|
143
|
+
|
|
144
|
+
```sh
|
|
145
|
+
ours-fleet web serve --port 49272 --no-open
|
|
146
|
+
# In another terminal belonging to Fleet B's owner:
|
|
147
|
+
ours-fleet layout share Architect --temporary --participant architect \
|
|
148
|
+
--server-url http://127.0.0.1:49272 --output ./architect.binding.yaml
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
The command prints the grant ID and output path. It creates a binding YAML and
|
|
152
|
+
an adjacent `.token` file, both owner-only. The private owner record stores a
|
|
153
|
+
SHA-256 token digest, not the token. `share` never overwrites an existing export.
|
|
154
|
+
Transfer both files explicitly to Fleet A's user through your existing secure
|
|
155
|
+
file-transfer method, keeping the receiving credential file owned by that user
|
|
156
|
+
with mode `0600`. Do not share Fleet B's console session, client profile, daemon
|
|
157
|
+
credential, private state directory or supervisor socket. This feature creates
|
|
158
|
+
no additional server; Fleet B's existing web server must remain available.
|
|
159
|
+
|
|
160
|
+
Export each specialist under its logical layout participant key, then merge the
|
|
161
|
+
YAML mappings into one bindings document. Keep every adjacent token filename
|
|
162
|
+
unique. Relative credential paths resolve against the bindings file's directory.
|
|
163
|
+
The reusable layout contains participant factories or empty participant mappings,
|
|
164
|
+
never concrete credentials or running-instance references:
|
|
165
|
+
|
|
166
|
+
```yaml
|
|
167
|
+
version: 1
|
|
168
|
+
participants:
|
|
169
|
+
architect: {}
|
|
170
|
+
developer: {}
|
|
171
|
+
doctor: {}
|
|
172
|
+
rooms:
|
|
173
|
+
product: {goal: Scope, members: [architect, doctor]}
|
|
174
|
+
design: {goal: Design, members: [architect, developer, doctor]}
|
|
175
|
+
delivery: {goal: Delivery, members: [developer, doctor]}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
On Fleet A:
|
|
179
|
+
|
|
180
|
+
```sh
|
|
181
|
+
ours-fleet layout create project --id project-run --bindings ./bindings.yaml
|
|
182
|
+
ours-fleet layout open project-run product
|
|
183
|
+
ours-fleet layout open project-run design
|
|
184
|
+
ours-fleet layout open project-run delivery
|
|
185
|
+
ours-fleet layout close-room project-run product
|
|
186
|
+
ours-fleet layout close project-run
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
The exact CID, launch and harness session are reused. Reopening an active room
|
|
190
|
+
checks existing membership without delivering duplicate context. Closing rooms
|
|
191
|
+
archives Cowork history and never stops borrowed instances. After acceptance,
|
|
192
|
+
the original Fleet B owner explicitly retires its standalone temporary specialists
|
|
193
|
+
using the existing lifecycle commands. Persistent specialists keep their ordinary
|
|
194
|
+
lifecycle. Mixed local-created and borrowed participants are supported.
|
|
195
|
+
|
|
196
|
+
An exported reference adds `remote` to the existing instance reference:
|
|
197
|
+
|
|
198
|
+
```yaml
|
|
199
|
+
remote:
|
|
200
|
+
url: http://127.0.0.1:49272
|
|
201
|
+
grant_id: 11111111-1111-4111-8111-111111111111
|
|
202
|
+
credential_file: architect.binding.yaml.token
|
|
203
|
+
daemon_instance_id: 22222222-2222-4222-8222-222222222222
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
The grant authorizes only `verify`, `join`, and `assign` for that exact instance.
|
|
207
|
+
Room admission validates the requested room ID and CID against shared Cowork and
|
|
208
|
+
uses an invite issued by Cowork on the owner side; caller-supplied contact invites
|
|
209
|
+
are rejected before contact mutation. Context delivery also requires its active seat, expected room CID and role in
|
|
210
|
+
Cowork. It cannot inspect inventory, spawn, stop, reconfigure, export identities,
|
|
211
|
+
or authenticate browser console routes. It grants the holder room admission and
|
|
212
|
+
room-context delivery, so transfer it only to the intended room creator.
|
|
213
|
+
|
|
214
|
+
Owner-side revocation does not stop the agent or remove existing memberships:
|
|
215
|
+
|
|
216
|
+
```sh
|
|
217
|
+
ours-fleet layout revoke-binding <grant-id>
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Stopped/replaced sessions, a different daemon, revoked grants or unavailable
|
|
221
|
+
owner transport produce errors; no replacement is spawned. A lost response to a
|
|
222
|
+
membership/context mutation retains the existing layout `uncertain` marker.
|
|
223
|
+
Inspect the native room and owning Fleet before retrying; no mutation is blindly
|
|
224
|
+
replayed. Only direct loopback HTTP origins (`127.0.0.1`) are supported;
|
|
225
|
+
redirects, external hosts and forwarded requests are rejected. No cross-host
|
|
226
|
+
support, discovery protocol, mission service, or room conversation limits are
|
|
227
|
+
introduced.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Task workspaces and artifact retention
|
|
2
|
+
|
|
3
|
+
New Tasks allocate a private workspace at
|
|
4
|
+
`$OURS_FLEET_HOME/.ours-fleet/workspaces/tasks/<task-id>` (the user's home is the
|
|
5
|
+
default for `OURS_FLEET_HOME`). New standalone Rooms use
|
|
6
|
+
`.ours-fleet/workspaces/rooms/<room-id>`. A linked Room shares its Task's workspace.
|
|
7
|
+
The absolute path, owner kind/ID and random ownership token are stored in the
|
|
8
|
+
record before directory allocation; `.fleet-workspace.json` proves ownership.
|
|
9
|
+
The path is visible in Task/Room JSON from both CLI and API. A folder of the same
|
|
10
|
+
name without the matching marker is never adopted.
|
|
11
|
+
|
|
12
|
+
Every newly managed member starts at that exact workspace, including retries.
|
|
13
|
+
An explicit template/member `cwd` remains in the sealed input execution plan as
|
|
14
|
+
source context, but the owned workspace overrides the effective launch cwd.
|
|
15
|
+
Copy or clone required source into the workspace; Fleet does not move or delete
|
|
16
|
+
the configured source directory. Briefings explain this rule. Use separate
|
|
17
|
+
per-agent branches/directories inside the workspace for concurrent edits.
|
|
18
|
+
|
|
19
|
+
All execution artifacts, dependency checkouts and worktrees belong inside the
|
|
20
|
+
workspace. Clone each repository there first, then use `git worktree add` with
|
|
21
|
+
destinations inside the same workspace. Git's native worktree registry is the
|
|
22
|
+
registry of record. Fleet audits `.git`, `commondir` and reverse `gitdir` links
|
|
23
|
+
before deletion; both the common repository and all registered worktrees must
|
|
24
|
+
be inside the workspace. An external repository's worktree inside the workspace,
|
|
25
|
+
or an internal repository's worktree outside it, blocks deletion. No broad
|
|
26
|
+
`git worktree prune`, branch deletion, reset or modification of unrelated Git
|
|
27
|
+
metadata is performed. Removing the owned repositories also removes their
|
|
28
|
+
complete internal worktree registries, including dirty and stale owned entries.
|
|
29
|
+
|
|
30
|
+
| Operation | Workspace and execution artifacts | Member runtime evidence |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| Complete, fail, cancel | Retained while Task is recorded | Retained in Fleet recovery archives |
|
|
33
|
+
| Linked Room retirement or deletion | Task workspace retained | Retained |
|
|
34
|
+
| Internal standalone Room retirement | Room workspace retained | Retained |
|
|
35
|
+
| Explicit Task deletion | Removed after member retirement | All proven owned retired launches removed |
|
|
36
|
+
| Explicit standalone Room deletion | Removed after member retirement | All proven owned retired launches removed |
|
|
37
|
+
|
|
38
|
+
Internal room close means retirement, not destructive Task deletion.
|
|
39
|
+
The existing CLI `room close ID ID` remains a deprecated alias for explicit
|
|
40
|
+
`room delete ID ID`: it deletes standalone room-owned artifacts, but always
|
|
41
|
+
retains a linked Task workspace. Its repeated-ID confirmation is unchanged. To remove a Task's
|
|
42
|
+
artifacts, explicitly delete the Task. Cancellation is not deletion. Automatic
|
|
43
|
+
compatibility cleanup of legacy closed Rooms skips records with owned workspaces.
|
|
44
|
+
These choices reconcile close/remove wording with the requirement that completed,
|
|
45
|
+
recorded Tasks retain all artifacts.
|
|
46
|
+
|
|
47
|
+
Fleet's active member state (briefings, logs, session state and WORKLOG) remains
|
|
48
|
+
under `.ours-fleet/tmp` while supervisors run, then in
|
|
49
|
+
`.ours-fleet/recovery/temporary`. The launch stores the workspace descriptor.
|
|
50
|
+
Explicit deletion first proves managed agents retired, then identifies all
|
|
51
|
+
matching archived launches, including failed and replaced attempts, using the
|
|
52
|
+
workspace descriptor plus role and termination/launch evidence. It preflights
|
|
53
|
+
these archives and atomically transfers them to `.fleet-retired-agents` in the
|
|
54
|
+
workspace before removal. Unrelated archives are not adopted by a name prefix.
|
|
55
|
+
Explicit deletion also erases legacy archives with exact launch/action or room
|
|
56
|
+
provenance, matching private supervisor journals and admission/launch descriptors,
|
|
57
|
+
and the exact retired-launch rows in the global termination journal. It never
|
|
58
|
+
infers ownership from an Agent's shared `cwd`. Artifact removal uses a durable
|
|
59
|
+
manifest, ownership fingerprints and per-entry rename/removal checkpoints, so
|
|
60
|
+
an interrupted deletion can resume without deleting a replacement at the old path.
|
|
61
|
+
Task deletion acceptance receipts exist only during cleanup and are erased after
|
|
62
|
+
settlement (including retry after a crash between Task unlink and receipt cleanup).
|
|
63
|
+
Shared Fleet command audit and lifecycle delivery ledgers have exactly attributed
|
|
64
|
+
target labels, configuration and command arguments removed; unrelated entries are
|
|
65
|
+
preserved. Delivery/deduplication metadata and a content-free erased-resource ID
|
|
66
|
+
registry remain so a running writer cannot resurrect erased content. Infrastructure
|
|
67
|
+
logs without structured ownership, backups, and copies already delivered to other
|
|
68
|
+
identities are external retention boundaries; this is not a claim to erase every
|
|
69
|
+
external copy.
|
|
70
|
+
|
|
71
|
+
Provisioning serializes Task operation then Room close locks, including bounded
|
|
72
|
+
seat waits, so concurrent retries cannot publish competing members and deletion
|
|
73
|
+
cannot race a member launch. Local published Rooms are reused if the Task link
|
|
74
|
+
write was interrupted. Workspace allocation publishes a marked staging directory;
|
|
75
|
+
restart reuses the durable token. Deletion renames the validated workspace to a
|
|
76
|
+
token-specific sibling tombstone before removal. A crash during removal resumes
|
|
77
|
+
that exact tombstone; the Task record is unlinked last. Before collecting archives,
|
|
78
|
+
Task deletion durably checkpoints verified retirement evidence. Retries verify
|
|
79
|
+
any remaining original archive and still refuse replacement live member state
|
|
80
|
+
or a recreated identity even after the archive has been consumed. Failed deletion
|
|
81
|
+
remains retryable with its recorded error.
|
|
82
|
+
|
|
83
|
+
Deletion rejects traversal, foreign recorded paths, changed markers and symlinked
|
|
84
|
+
workspace ancestors. Ordinary artifact symlinks are unlinked without following
|
|
85
|
+
their targets. Git control symlinks and foreign pointers are refused. As with
|
|
86
|
+
Fleet's other filesystem lifecycle operations, a hostile same-UID process that
|
|
87
|
+
mutates paths during validation requires OS isolation; application checks are
|
|
88
|
+
not a security boundary against that process. Fleet enforces launch cwd and
|
|
89
|
+
safe deletion; unrestricted agents can still write outside cwd, so the artifact
|
|
90
|
+
placement rule also requires agent compliance and/or filesystem isolation.
|
|
91
|
+
|
|
92
|
+
## Compatibility and limits
|
|
93
|
+
|
|
94
|
+
Records from before this feature without `workspace` remain unmanaged. Existing
|
|
95
|
+
agents retain their cwd and exact briefing/fingerprint so restart matching works.
|
|
96
|
+
Fleet never claims an old cwd, an outcome artifact path, or a legacy recovery
|
|
97
|
+
archive as owned merely because it was mentioned by a Task. Create a new managed
|
|
98
|
+
Task and explicitly copy desired artifacts to migrate; deleting a legacy Task
|
|
99
|
+
continues its previous lifecycle and does not delete arbitrary old files.
|
|
100
|
+
|
|
101
|
+
Changing `OURS_FLEET_HOME` does not silently rebase recorded absolute ownership
|
|
102
|
+
paths. Restore the original state root or explicitly migrate records and files
|
|
103
|
+
with the supervisors stopped; mismatched paths fail closed. Archive transfer
|
|
104
|
+
uses same-filesystem rename and reports a recoverable failure across mounts.
|
|
105
|
+
|
|
106
|
+
Cowork's remote create operation has no idempotency key in this interface. A crash
|
|
107
|
+
after remote creation but before local Room publication is an existing uncertain
|
|
108
|
+
remote result; this change deduplicates locally recorded rooms and does not claim
|
|
109
|
+
to solve that remote transaction window. Inspect remote room ownership before
|
|
110
|
+
retrying ambiguous remote creation. No services or installed Fleet code are
|
|
111
|
+
changed by building or testing this feature.
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
## Broken provisioning and deletion recovery
|
|
115
|
+
|
|
116
|
+
Deletion accepts every lifecycle state. Missing temporary directories, identities,
|
|
117
|
+
remote rooms and already-erased artifacts are settled outcomes. Retry the same
|
|
118
|
+
explicit delete after an interruption. A missing local member CID is recovered
|
|
119
|
+
only from a matching authenticated seat in the pinned room (exact invite and
|
|
120
|
+
role, uniquely matched), or a supervisor journal tied to the selected daemon,
|
|
121
|
+
temporary instance and recorded creation action. These sources must agree.
|
|
122
|
+
The recovered CID is persisted before retirement consumes the evidence.
|
|
123
|
+
|
|
124
|
+
A contradictory CID, replacement launch, ambiguous seat, unreadable/corrupt
|
|
125
|
+
record, or unreachable authority is not evidence of absence. Cleanup retains its
|
|
126
|
+
cursor and reports the conflict instead of deleting an unrelated resource or
|
|
127
|
+
claiming complete erasure. An identity with no recoverable authenticated binding
|
|
128
|
+
requires restoring its actual ownership evidence; a name-only force removal is
|
|
129
|
+
not supported. Room deletion removes the linked Task's dead room/member links and preserves its workspace; use explicit
|
|
130
|
+
Task deletion when the request includes the associated Task and its artifacts.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
description: Separate participant keys create independent agent sessions for each room
|
|
3
|
+
participants:
|
|
4
|
+
productArchitect:
|
|
5
|
+
agent_template: Architect
|
|
6
|
+
productReviewer:
|
|
7
|
+
agent_template: Reviewer
|
|
8
|
+
designArchitect:
|
|
9
|
+
agent_template: Architect
|
|
10
|
+
designDeveloper:
|
|
11
|
+
agent_template: Developer
|
|
12
|
+
designReviewer:
|
|
13
|
+
agent_template: Reviewer
|
|
14
|
+
deliveryDeveloper:
|
|
15
|
+
agent_template: Developer
|
|
16
|
+
deliveryReviewer:
|
|
17
|
+
agent_template: Reviewer
|
|
18
|
+
rooms:
|
|
19
|
+
product:
|
|
20
|
+
goal: Agree on the problem and acceptance criteria
|
|
21
|
+
members: [productArchitect, productReviewer]
|
|
22
|
+
design:
|
|
23
|
+
goal: Design the accepted solution
|
|
24
|
+
members: [designArchitect, designDeveloper, designReviewer]
|
|
25
|
+
delivery:
|
|
26
|
+
goal: Implement and verify the accepted design
|
|
27
|
+
members: [deliveryDeveloper, deliveryReviewer]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
description: Shared specialists and one independent reviewer per room
|
|
3
|
+
participants:
|
|
4
|
+
architect:
|
|
5
|
+
agent_template: Architect
|
|
6
|
+
instance_scope: layout
|
|
7
|
+
developer:
|
|
8
|
+
agent_template: Developer
|
|
9
|
+
reviewer:
|
|
10
|
+
agent_template: Reviewer
|
|
11
|
+
instance_scope: room
|
|
12
|
+
rooms:
|
|
13
|
+
product:
|
|
14
|
+
goal: Agree on the problem and acceptance criteria
|
|
15
|
+
members: [architect, reviewer]
|
|
16
|
+
design:
|
|
17
|
+
goal: Design the accepted solution
|
|
18
|
+
members: [architect, developer, reviewer]
|
|
19
|
+
delivery:
|
|
20
|
+
goal: Implement and verify the accepted design
|
|
21
|
+
members: [developer, reviewer]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
description: Same agents retain their sessions across rooms
|
|
3
|
+
participants:
|
|
4
|
+
architect:
|
|
5
|
+
agent_template: Architect
|
|
6
|
+
developer:
|
|
7
|
+
agent_template: Developer
|
|
8
|
+
reviewer:
|
|
9
|
+
agent_template: Reviewer
|
|
10
|
+
rooms:
|
|
11
|
+
product:
|
|
12
|
+
goal: Agree on the problem and acceptance criteria
|
|
13
|
+
members: [architect, reviewer]
|
|
14
|
+
design:
|
|
15
|
+
goal: Design the accepted solution
|
|
16
|
+
members: [architect, developer, reviewer]
|
|
17
|
+
delivery:
|
|
18
|
+
goal: Implement and verify the accepted design
|
|
19
|
+
members: [developer, reviewer]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ours.network/fleet",
|
|
3
|
-
"version": "1.2.0-nightly.
|
|
3
|
+
"version": "1.2.0-nightly.31",
|
|
4
4
|
"description": "Harness-agnostic fleet of persistent, identity-bound AI agents. Declarative fleet.yaml, managed native/ACP sessions, supervision, and ours.network messaging.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "FSL-1.1-Apache-2.0",
|
|
@@ -18,21 +18,21 @@
|
|
|
18
18
|
"examples",
|
|
19
19
|
"presets",
|
|
20
20
|
"README.md",
|
|
21
|
+
"docs/task-workspaces.md",
|
|
22
|
+
"docs/room-layouts.md",
|
|
21
23
|
"LICENSE"
|
|
22
24
|
],
|
|
23
25
|
"engines": {
|
|
24
|
-
"node": ">=22"
|
|
26
|
+
"node": ">=22.13.0"
|
|
25
27
|
},
|
|
26
28
|
"scripts": {
|
|
27
29
|
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
28
|
-
"build": "npm run clean && tsc -p tsconfig.json &&
|
|
29
|
-
"typecheck": "tsc -p tsconfig.json --noEmit
|
|
30
|
+
"build": "npm run clean && tsc -p tsconfig.json && node scripts/copy-web.mjs && node scripts/build-info.mjs",
|
|
31
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
30
32
|
"lint": "npm run typecheck",
|
|
31
33
|
"test": "vitest run",
|
|
32
34
|
"test:web": "vitest run test/web",
|
|
33
35
|
"test:pack": "vitest run --config vitest.integration.config.ts",
|
|
34
|
-
"test:e2e": "npm run build && playwright test",
|
|
35
|
-
"dev:web": "vite",
|
|
36
36
|
"prepack": "npm run build",
|
|
37
37
|
"prepublishOnly": "npm run build && npm test",
|
|
38
38
|
"test:v1-recovery": "node test/fleet-v1-recovery.integration.mjs retry && node test/fleet-v1-recovery.integration.mjs terminal-after-failure && node test/fleet-v1-recovery.integration.mjs terminal-release-failure"
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
"@agentclientprotocol/sdk": "^1.3.0",
|
|
42
42
|
"@fastify/static": "^10.1.2",
|
|
43
43
|
"@fastify/websocket": "^11.2.0",
|
|
44
|
-
"@ours.network/cli": "2.8.1-nightly.
|
|
45
|
-
"@ours.network/
|
|
44
|
+
"@ours.network/cli": "2.8.1-nightly.13",
|
|
45
|
+
"@ours.network/mcp": "1.2.0-nightly.10",
|
|
46
|
+
"@ours.network/sdk": "3.8.1-nightly.15",
|
|
46
47
|
"commander": "^12.1.0",
|
|
47
48
|
"fastify": "^5.4.0",
|
|
48
|
-
"
|
|
49
|
-
"react-dom": "^19.1.1",
|
|
49
|
+
"qrcode": "1.5.4",
|
|
50
50
|
"secure-json-parse": "^4.1.0",
|
|
51
51
|
"ws": "^8.18.3",
|
|
52
52
|
"yaml": "^2.5.0"
|
|
@@ -56,14 +56,11 @@
|
|
|
56
56
|
"@agentclientprotocol/codex-acp": "1.10.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
|
-
"@
|
|
60
|
-
"@types/node": "^20.
|
|
61
|
-
"@types/
|
|
62
|
-
"@types/react-dom": "^19.1.7",
|
|
59
|
+
"@ours.network/daemon": "3.8.1-nightly.7",
|
|
60
|
+
"@types/node": "^22.20.4",
|
|
61
|
+
"@types/qrcode": "^1.5.6",
|
|
63
62
|
"@types/ws": "^8.18.1",
|
|
64
63
|
"typescript": "^5.5.0",
|
|
65
|
-
"
|
|
66
|
-
"vitest": "^2.0.0",
|
|
67
|
-
"@ours.network/daemon": "3.8.1-nightly.1"
|
|
64
|
+
"vitest": "^2.0.0"
|
|
68
65
|
}
|
|
69
66
|
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Predefined Brains
|
|
2
|
+
|
|
3
|
+
`brain-catalog.json` is the source for generated `fleet/brains/*.yaml` files.
|
|
4
|
+
Run `node scripts/generate-brain-presets.mjs` after changing it, and run the same
|
|
5
|
+
command with `--check` to verify generated files. An empty `efforts` array generates
|
|
6
|
+
one `-default` preset with no `effort` field. Bootstrap adds missing presets and
|
|
7
|
+
preserves existing user files. Existing model presets remain available.
|
|
8
|
+
|
|
9
|
+
## GPT-6.1 Sol (added 2026-09-29)
|
|
10
|
+
|
|
11
|
+
The Codex presets `codex-gpt-6-1-sol-{low,medium,high,xhigh,max,ultra}`
|
|
12
|
+
use the exact model ID `gpt-6.1-sol` with ACP sessions. The init wizard offers
|
|
13
|
+
GPT-6.1 Sol for development, review, and coordination.
|
|
14
|
+
|
|
15
|
+
[Official OpenAI documentation](https://developers.openai.com/api/docs/models/gpt-6.1-sol)
|
|
16
|
+
supports low, medium, high, xhigh, and max API reasoning efforts. The local
|
|
17
|
+
Codex `models_cache.json` inspected on 2026-09-29 additionally advertises
|
|
18
|
+
`ultra`, a Codex harness mode. These presets reflect that six-effort Codex
|
|
19
|
+
catalog; no inference or ACP launch was performed for this addition.
|
|
20
|
+
|
|
21
|
+
## Current model additions (verified 2026-09-24)
|
|
22
|
+
|
|
23
|
+
| Harness | Exact model ID | Preset efforts |
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| Codex | `gpt-6-sol` | low, medium, high, xhigh, max, ultra |
|
|
26
|
+
| Codex | `gpt-6-luna` | low, medium, high, xhigh, max |
|
|
27
|
+
| Claude Code | `claude-fable-5-1` | low, medium, high, xhigh, max |
|
|
28
|
+
| Claude Code | `claude-opus-5-5` | low, medium, high, xhigh, max |
|
|
29
|
+
| Claude Code (retained) | `claude-sonnet-5` | low, medium, high, xhigh, max |
|
|
30
|
+
| Claude Code | `claude-haiku-4-5-20251001` | default, with no effort setting |
|
|
31
|
+
|
|
32
|
+
For example, select `codex-gpt-6-sol-ultra`, `claude-opus-5-5-max`, or
|
|
33
|
+
`claude-haiku-4-5-20251001-default` as a Brain reference. The init wizard offers
|
|
34
|
+
models supporting its Quick/Balanced/Thorough (low/medium/high) choices; use the
|
|
35
|
+
named Brain directly for Haiku, which does not support effort.
|
|
36
|
+
|
|
37
|
+
### Runtime requirements and evidence
|
|
38
|
+
|
|
39
|
+
Codex CLI **0.155.0** freshly queried through `app-server` `initialize` then
|
|
40
|
+
`model/list` advertised the GPT rows above. A previously populated
|
|
41
|
+
`~/.codex/models_cache.json` did not contain these models; refresh runtime discovery
|
|
42
|
+
before concluding a model is unavailable. `ours-fleet doctor` compares presets to
|
|
43
|
+
the local cache. The catalog is not an account entitlement guarantee.
|
|
44
|
+
|
|
45
|
+
The [Sol](https://developers.openai.com/api/docs/models/gpt-6-sol) and
|
|
46
|
+
[Luna](https://developers.openai.com/api/docs/models/gpt-6-luna) API model pages
|
|
47
|
+
also support `none`, but the verified Codex runtime does not advertise it.
|
|
48
|
+
Consequently there are no `none` presets. Sol's `ultra` is an advertised Codex
|
|
49
|
+
harness mode, not an additional API reasoning level; Luna does not advertise it.
|
|
50
|
+
|
|
51
|
+
Claude Code **2.1.281** was verified using the Agent SDK `supportedModels()`
|
|
52
|
+
control request, with `pathToClaudeCodeExecutable` pointing to the installed
|
|
53
|
+
Claude CLI, without sending an inference prompt. It reports Fable 5.1, Opus 5.5,
|
|
54
|
+
Sonnet 5 and Haiku 4.5 with the capabilities above. These are verified versions,
|
|
55
|
+
not asserted minimum versions. Provider references:
|
|
56
|
+
[model IDs](https://platform.claude.com/docs/en/models/overview) and
|
|
57
|
+
[Claude Code effort support](https://code.claude.com/docs/en/model-config#adjust-effort-level).
|
|
58
|
+
|
|
59
|
+
**Check the executable used by ACP before selecting the new Claude presets.**
|
|
60
|
+
The inspected `claude-agent-acp` **0.63.0** installation bundles Agent SDK
|
|
61
|
+
**0.3.220**, whose default executable reports older models. To use the verified
|
|
62
|
+
installed Claude CLI, set `CLAUDE_CODE_EXECUTABLE` to its absolute path in the
|
|
63
|
+
launch environment (for example `/usr/bin/claude` on the verification host).
|
|
64
|
+
Otherwise use a bundled SDK whose runtime advertises these models and efforts.
|
|
65
|
+
The presets do not change your executable or restart agents. An older bundled
|
|
66
|
+
runtime alone is not evidence of support for the new models.
|
|
67
|
+
|
|
68
|
+
No-prompt ACP startup and `session/set_config_option` probes also verified all
|
|
69
|
+
new GPT and Claude effort combinations, including Sol `ultra` and Claude `max`;
|
|
70
|
+
Haiku startup advertises no effort option. The probes used Codex ACP 1.10.0
|
|
71
|
+
with the installed Codex executable and Claude ACP 0.63.0 with the native override.
|
|
72
|
+
|
|
73
|
+
ACP builds effort options from the selected model's `supportedEffortLevels` and
|
|
74
|
+
applies the selection through the SDK's session flag settings. This supports
|
|
75
|
+
`max` without writing it to persistent `effortLevel` settings. Fleet verifies
|
|
76
|
+
that ACP applied the requested effort and fails on rejection. `ultracode` is a
|
|
77
|
+
separate Claude orchestration setting and is not a model effort preset. Account
|
|
78
|
+
and organization restrictions still apply at launch; no fallback model is added.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": 1,
|
|
3
|
-
"catalog_revision":
|
|
3
|
+
"catalog_revision": 4,
|
|
4
4
|
"models": [
|
|
5
5
|
{ "harness": "codex", "session": "acp", "model": "gpt-6-astra", "efforts": ["low", "medium", "high", "xhigh", "max", "ultra"] },
|
|
6
6
|
{ "harness": "codex", "session": "acp", "model": "gpt-5.6-sol", "efforts": ["low", "medium", "high", "xhigh", "max", "ultra"] },
|
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
{ "harness": "codex", "session": "acp", "model": "gpt-5.3-codex-spark", "efforts": ["low", "medium", "high", "xhigh"] },
|
|
13
13
|
{ "harness": "claude-code", "session": "acp", "model": "claude-fable-5", "efforts": ["low", "medium", "high", "xhigh", "max"] },
|
|
14
14
|
{ "harness": "claude-code", "session": "acp", "model": "claude-opus-5", "efforts": ["low", "medium", "high", "xhigh", "max"] },
|
|
15
|
-
{ "harness": "claude-code", "session": "acp", "model": "claude-sonnet-5", "efforts": ["low", "medium", "high", "xhigh", "max"] }
|
|
15
|
+
{ "harness": "claude-code", "session": "acp", "model": "claude-sonnet-5", "efforts": ["low", "medium", "high", "xhigh", "max"] },
|
|
16
|
+
{ "harness": "codex", "session": "acp", "model": "gpt-6.1-sol", "efforts": ["low", "medium", "high", "xhigh", "max", "ultra"] },
|
|
17
|
+
{ "harness": "codex", "session": "acp", "model": "gpt-6-sol", "efforts": ["low", "medium", "high", "xhigh", "max", "ultra"] },
|
|
18
|
+
{ "harness": "codex", "session": "acp", "model": "gpt-6-luna", "efforts": ["low", "medium", "high", "xhigh", "max"] },
|
|
19
|
+
{ "harness": "claude-code", "session": "acp", "model": "claude-fable-5-1", "efforts": ["low", "medium", "high", "xhigh", "max"] },
|
|
20
|
+
{ "harness": "claude-code", "session": "acp", "model": "claude-opus-5-5", "efforts": ["low", "medium", "high", "xhigh", "max"] },
|
|
21
|
+
{ "harness": "claude-code", "session": "acp", "model": "claude-haiku-4-5-20251001", "efforts": [] }
|
|
16
22
|
]
|
|
17
23
|
}
|