@dotobokuri/fleet-console 1.22.0 → 1.23.0
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/AGENTS.md +4 -2
- package/dist/cli.mjs +3457 -1927
- package/dist/client/assets/{_baseUniq-cap0P4FK.js → _baseUniq-BjOe5yYF.js} +1 -1
- package/dist/client/assets/{arc-yBqa09aK.js → arc-bFUuO3jf.js} +1 -1
- package/dist/client/assets/{architectureDiagram-Q4EWVU46-Bug4qdr-.js → architectureDiagram-Q4EWVU46-Ba7nimQq.js} +1 -1
- package/dist/client/assets/{blockDiagram-DXYQGD6D-BkiIL2xt.js → blockDiagram-DXYQGD6D-CQGf47hl.js} +1 -1
- package/dist/client/assets/{c4Diagram-AHTNJAMY-DYY200Al.js → c4Diagram-AHTNJAMY-DZF_cAK4.js} +1 -1
- package/dist/client/assets/channel-D2BahVp1.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-DQKmhVxn.js → chunk-4BX2VUAB-DjUUHSQ5.js} +1 -1
- package/dist/client/assets/{chunk-4TB4RGXK-DHpmA3Zl.js → chunk-4TB4RGXK-Dvqti8bd.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-DeRDuQXE.js → chunk-55IACEB6-2BxiBvkp.js} +1 -1
- package/dist/client/assets/{chunk-EDXVE4YY-CNpnhSJm.js → chunk-EDXVE4YY-CqCjol5O.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-BXGVABL-.js → chunk-FMBD7UC4-eoCfIbly.js} +1 -1
- package/dist/client/assets/{chunk-OYMX7WX6-WbJs4VwZ.js → chunk-OYMX7WX6-CoC86V_1.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-u3BLl6Sl.js → chunk-QZHKN3VN-CJQA5mlQ.js} +1 -1
- package/dist/client/assets/{chunk-YZCP3GAM-BFESuhuJ.js → chunk-YZCP3GAM-C5C4kbLu.js} +1 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-DsDAVLhS.js +1 -0
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-DsDAVLhS.js +1 -0
- package/dist/client/assets/clone-CdZy2Xzf.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-rouOsZjT.js → cose-bilkent-S5V4N54A-CahuunpL.js} +1 -1
- package/dist/client/assets/{dagre-KV5264BT-QCUeCVpM.js → dagre-KV5264BT-Cbv5kSi5.js} +1 -1
- package/dist/client/assets/{diagram-5BDNPKRD-DqerlFb_.js → diagram-5BDNPKRD-CNm40ZGB.js} +1 -1
- package/dist/client/assets/{diagram-G4DWMVQ6-BS3a1YGN.js → diagram-G4DWMVQ6-DrlGNT3i.js} +1 -1
- package/dist/client/assets/{diagram-MMDJMWI5-BeauTcSV.js → diagram-MMDJMWI5-r8Y2oqmw.js} +1 -1
- package/dist/client/assets/{diagram-TYMM5635-Ci2wLUUE.js → diagram-TYMM5635-CMzEhXup.js} +1 -1
- package/dist/client/assets/{erDiagram-SMLLAGMA-9MnmiKch.js → erDiagram-SMLLAGMA-UFjUUMPz.js} +1 -1
- package/dist/client/assets/{flowDiagram-DWJPFMVM-CiV9p5EU.js → flowDiagram-DWJPFMVM-Dd1STmYc.js} +1 -1
- package/dist/client/assets/{ganttDiagram-T4ZO3ILL-D6oNoENl.js → ganttDiagram-T4ZO3ILL-CHHU0hVd.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-UUTBAWPF-DESO385F.js → gitGraphDiagram-UUTBAWPF-vj2HukAF.js} +1 -1
- package/dist/client/assets/{graph-BZdl-RHy.js → graph-DhjfEbEb.js} +1 -1
- package/dist/client/assets/index-Dq9EKm2G.css +1 -0
- package/dist/client/assets/{index-BKpCMFrm.js → index-DtzbOdd7.js} +75 -75
- package/dist/client/assets/{infoDiagram-42DDH7IO-lc8vZnyi.js → infoDiagram-42DDH7IO-CC7AEgDm.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-BfzvQXhn.js → ishikawaDiagram-UXIWVN3A-DlRw2B9G.js} +1 -1
- package/dist/client/assets/{journeyDiagram-VCZTEJTY-BS_Dr0EV.js → journeyDiagram-VCZTEJTY-BbRXANKQ.js} +1 -1
- package/dist/client/assets/{kanban-definition-6JOO6SKY-Cw7oTQJN.js → kanban-definition-6JOO6SKY-DtvdCxGN.js} +1 -1
- package/dist/client/assets/{layout-ChwcDQm8.js → layout-Dg5cvw5v.js} +1 -1
- package/dist/client/assets/{linear-C7GLbmND.js → linear-BvVlQLqF.js} +1 -1
- package/dist/client/assets/{mermaid.core-D9phfpQo.js → mermaid.core-DzrV8sC-.js} +4 -4
- package/dist/client/assets/{min-p7Whc_Wi.js → min-DNGQ1Ciz.js} +1 -1
- package/dist/client/assets/{mindmap-definition-QFDTVHPH-fl_SJKrw.js → mindmap-definition-QFDTVHPH-DxJCNZbg.js} +1 -1
- package/dist/client/assets/{pieDiagram-DEJITSTG-Btw7ckA5.js → pieDiagram-DEJITSTG-B75XHG-s.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-34T5L4WZ-DB4iJlTI.js → quadrantDiagram-34T5L4WZ-CL4yoF0m.js} +1 -1
- package/dist/client/assets/{requirementDiagram-MS252O5E-hXwV5Nhy.js → requirementDiagram-MS252O5E-kGV4vcr1.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-XADWPNL6-DC-fizCk.js → sankeyDiagram-XADWPNL6-DoA4u7wI.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-FGHM5R23-RrfrroR5.js → sequenceDiagram-FGHM5R23-ZpNDf1bS.js} +1 -1
- package/dist/client/assets/{stateDiagram-FHFEXIEX-q8FUPV_e.js → stateDiagram-FHFEXIEX-BzgKcVAG.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-yRK5hzZ4.js +1 -0
- package/dist/client/assets/{timeline-definition-GMOUNBTQ-tegMd8Od.js → timeline-definition-GMOUNBTQ-B_DkUDsD.js} +1 -1
- package/dist/client/assets/{vennDiagram-DHZGUBPP-CXx5oN2X.js → vennDiagram-DHZGUBPP-MCUnnsKb.js} +1 -1
- package/dist/client/assets/{wardley-RL74JXVD-CxSJ3P_7.js → wardley-RL74JXVD-D_JAMSxj.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-NUSXRM2D-DN1P180Z.js → wardleyDiagram-NUSXRM2D-BHCwZGLq.js} +1 -1
- package/dist/client/assets/{xychartDiagram-5P7HB3ND-Dcn9ukv5.js → xychartDiagram-5P7HB3ND-FbGwbD3V.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/fleet-plugins/skills/routes.mjs +1642 -1277
- package/dist/fleet-plugins/terminal/routes.mjs +3693 -2206
- package/package.json +1 -1
- package/dist/client/assets/channel-B3EqY8ya.js +0 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-BekEZLVJ.js +0 -1
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-BekEZLVJ.js +0 -1
- package/dist/client/assets/clone-CsVi9-Ni.js +0 -1
- package/dist/client/assets/index-cg8Uxys9.css +0 -1
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-BErzXGq7.js +0 -1
package/AGENTS.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
- Console durable state is persisted in the console data directory's `state.json` (`createDurableJsonStore`, `sensitivity: "sensitive"`). The data directory follows the release channel: published stable builds use `~/.fleet/console/state.json`, while unpublished local runs (`pnpm fleet-console`/`tsx`) use the project workspace `.fleet/console/state.json` co-located with the lock, so a dev console never shares Theaters/Operations with a globally installed one. Setting `FLEET_CONSOLE_DIR` relocates the durable state (and captures) into that directory too — co-located with the lock, matching the runtime-file escape hatch — so a read-only checkout can point its writable runtime slot away from the project tree. The console server is the sole writer; the file stores `{ version: 2, theaters, operations }`. On startup the server restores Theaters and Operations into a dormant state (no PTY), and Operation state survives console restarts.
|
|
12
12
|
- A capture inbound channel writes `{fleetSessionId}.json` under the same console data directory's `captures/` (`~/.fleet/console/captures/` for stable, the project `.fleet/console/captures/` for local runs). Provider CLI SessionStart hooks record provider session ids via `fleet-console hook capture-session <provider>`; the server reads the capture file, merges the provider session id into durable state, and cleans up the capture file. This is separate from the console lock file in `os.tmpdir()` (stable) / the project `.fleet/console` lock (local).
|
|
13
13
|
- The React SPA served from the console backend at `/console/`: layout, components, styles, and visual identity. The bottom StatusBar provides version/What's New, self-update, and repository affordances, while the Operations SideBar owns **Theater** selection — a project root directory that groups console-owned terminal sessions and Codex wiki context. The Operations surface renders a single spatial Map canvas of terminal sessions filtered to the active Theater; operators create sessions directly on the canvas (Shift-drag or right-click), choosing an Agent CLI before a new terminal session starts. Each session panel lists its active carrier jobs in a floating job dock, and selecting a job opens a centered streaming overlay scoped to that session's jobs. The canvas also hosts free shell panels (right-click) that resolve their cwd from the active Theater. A console-wide Operation quick-search (Cmd/Ctrl+K) searches terminal sessions across all Theaters, switches to the selected Operation's Theater, selects that Operation, and navigates to `/operations`; on `/codex` paths the same shortcut yields to Codex's own search.
|
|
14
|
-
- The built-in Terminal plugin (`runtime/fleet-plugins/terminal`, package `@fleet-plugins/terminal`): one plugin id, `terminal`, owns the Shell and Agent operation kinds plus plugin-scoped WebSocket, ticket registry, PTY session lifecycle, and launch runtime. It absorbs the server-shared and client-shared helpers, keeps operation type ids `shell` and `agent` (carrier streaming renders inside the Agent panel as a resident collapsible stream dock pinned to the panel bottom — live output always visible without a click, per-browser collapsed state persisted — plus a
|
|
14
|
+
- The built-in Terminal plugin (`runtime/fleet-plugins/terminal`, package `@fleet-plugins/terminal`): one plugin id, `terminal`, owns the Shell and Agent operation kinds plus plugin-scoped WebSocket, ticket registry, PTY session lifecycle, and launch runtime. It absorbs the server-shared and client-shared helpers, keeps operation type ids `shell` and `agent` (carrier streaming renders inside the Agent panel as a resident collapsible stream dock pinned to the panel bottom — live output always visible without a click, per-browser collapsed state persisted — plus a Details modal for full track history accessed via the dock header, not a separate child operation; thinking text never appears on the dock strip or rows — live tracks with no output show neutral-ink `thinking…` state, and the full thought body is available only through the Details modal's default-collapsed disclosure (`thinking · N chars`); the Details modal shares pin-to-bottom follow — released on upward scroll, restored via the aurora Follow button — and keeps rendering finalized jobs until the modal closes; the dock lingers ~4s after the last active job ends — neutral dot on normal termination, coral dot on error — then collapses), serves plugin HTTP routes under `/plugins/terminal/{shell,agent}/*`, and uses the plugin-scoped `ws` route for PTY transport. The Shell launch label is `Shell`.
|
|
15
15
|
- The Codex/Fleet Wiki web surface under `/console/codex`: the console-owned Codex server gateway, workspace registry, wiki API routes, and migrated vanilla TypeScript Maritime Codex client. The console-level **TheaterRegistry** is the source of truth for project roots and does not require a Fleet Wiki knowledge root; the Codex `WorkspaceRegistry` is the subset of Theaters whose directories contain a Fleet Wiki knowledge root. Codex is mounted as a Right Rail built-in panel without an iframe or proxy daemon.
|
|
16
16
|
- The observer-side client contract: REST snapshot fetches and the SSE consumption loop with reconnect/resync.
|
|
17
17
|
- The streaming view model: the event reducer that folds `CarrierJobStreamEvent` timelines into per-job, per-track views with incremental text accumulation.
|
|
@@ -171,9 +171,11 @@ Operation chrome (maximize, minimize, focus, and the Operations Left SideBar) is
|
|
|
171
171
|
## Streaming Invariants
|
|
172
172
|
|
|
173
173
|
- `track:text` / `track:thought` events are **deltas**; the reducer appends them per track. Never treat them as snapshots.
|
|
174
|
+
- `latestLine` (the collapsed strip tail source) updates from output (`track:text`) only; `track:thought` must never update it.
|
|
174
175
|
- Event ids (the console-assigned `observedId`) are globally monotonic across all registered CLI sessions; the reducer must ignore non-advancing ids so snapshot resync and live frames can overlap safely.
|
|
175
176
|
- Snapshot rebuild (`/observer/jobs`) and live SSE application must go through the same reducer (`applyEvent`) — no second interpretation of event payloads.
|
|
176
|
-
- The output view
|
|
177
|
+
- The output view and Details modal keep pin-to-bottom follow behavior: pinned within slack distance, released on upward scroll, restored via the follow button. Removing this is a UX regression.
|
|
178
|
+
- Error track state renders as coral in the dock; `conn` status tracks count as live.
|
|
177
179
|
- `sentTextLength` tracks emitted length from `textLength` metadata so retention clamping on the console-backend side stays visible to the operator.
|
|
178
180
|
|
|
179
181
|
## Right Rail (Activity Rail)
|