@dotobokuri/fleet-console 1.7.1 → 1.8.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 +3 -2
- package/dist/cli-bin.mjs +3689 -3480
- package/dist/cli.d.ts +2 -0
- package/dist/cli.mjs +3689 -3480
- package/dist/client/assets/{_baseUniq-CEicxaGA.js → _baseUniq-BvJBBAyx.js} +1 -1
- package/dist/client/assets/{arc-CWwZK8jZ.js → arc-_In9IKSA.js} +1 -1
- package/dist/client/assets/{architectureDiagram-Q4EWVU46-DFoizZcx.js → architectureDiagram-Q4EWVU46-Ch4p9PP9.js} +1 -1
- package/dist/client/assets/{blockDiagram-DXYQGD6D-D79ULj8O.js → blockDiagram-DXYQGD6D-dV3nM6N6.js} +1 -1
- package/dist/client/assets/{c4Diagram-AHTNJAMY-BuQECLg_.js → c4Diagram-AHTNJAMY-Cd4rkDvb.js} +1 -1
- package/dist/client/assets/channel-F-hXrSqZ.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-CKrtpE9R.js → chunk-4BX2VUAB-BdFP7-t8.js} +1 -1
- package/dist/client/assets/{chunk-4TB4RGXK-b9qDffil.js → chunk-4TB4RGXK-CwZmzqqH.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-mOQubskJ.js → chunk-55IACEB6-jonfKM4s.js} +1 -1
- package/dist/client/assets/{chunk-EDXVE4YY-Di_0HRJL.js → chunk-EDXVE4YY-Di2ByMxa.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-B7i4RzXP.js → chunk-FMBD7UC4-DXLnCQWV.js} +1 -1
- package/dist/client/assets/{chunk-OYMX7WX6-BNWTeYIk.js → chunk-OYMX7WX6-DpgtrxyA.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-L6OyqXrX.js → chunk-QZHKN3VN-BdkOO2d4.js} +1 -1
- package/dist/client/assets/{chunk-YZCP3GAM-BlJeD9wl.js → chunk-YZCP3GAM-Hfgm6DyM.js} +1 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-DqXQgyK4.js +1 -0
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-DqXQgyK4.js +1 -0
- package/dist/client/assets/clone-kL599Cyi.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-Mwp3SQ01.js → cose-bilkent-S5V4N54A-DqClnVsA.js} +1 -1
- package/dist/client/assets/{dagre-KV5264BT-DjEflIQ4.js → dagre-KV5264BT-DlVHx9hg.js} +1 -1
- package/dist/client/assets/{diagram-5BDNPKRD-s7OUgAtU.js → diagram-5BDNPKRD-DJVcbz8w.js} +1 -1
- package/dist/client/assets/{diagram-G4DWMVQ6-69UDh2S0.js → diagram-G4DWMVQ6-ZCER6PqU.js} +1 -1
- package/dist/client/assets/{diagram-MMDJMWI5-CSz3He9G.js → diagram-MMDJMWI5-DFt5a-B8.js} +1 -1
- package/dist/client/assets/{diagram-TYMM5635-BxcH7Y4_.js → diagram-TYMM5635-DXPsYs4b.js} +1 -1
- package/dist/client/assets/{erDiagram-SMLLAGMA-B5ueKIOd.js → erDiagram-SMLLAGMA-BEiMZzzV.js} +1 -1
- package/dist/client/assets/{flowDiagram-DWJPFMVM-CjvGe6Gd.js → flowDiagram-DWJPFMVM-DTBFF-X2.js} +1 -1
- package/dist/client/assets/{ganttDiagram-T4ZO3ILL-Dpbfyidy.js → ganttDiagram-T4ZO3ILL-nE9kklkz.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-UUTBAWPF-CtlfijiM.js → gitGraphDiagram-UUTBAWPF-VD6J4jc_.js} +1 -1
- package/dist/client/assets/{graph-DSPCKtzE.js → graph-CuZGH1eI.js} +1 -1
- package/dist/client/assets/index-ClU0e8Rv.js +734 -0
- package/dist/client/assets/index-VeebE_4d.css +1 -0
- package/dist/client/assets/{infoDiagram-42DDH7IO-xmMHYo6d.js → infoDiagram-42DDH7IO-BdxLeDgE.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-DNTxZaTX.js → ishikawaDiagram-UXIWVN3A-OG_S8qjo.js} +1 -1
- package/dist/client/assets/{journeyDiagram-VCZTEJTY-CKi0c9Qq.js → journeyDiagram-VCZTEJTY-CvZPwJCs.js} +1 -1
- package/dist/client/assets/{kanban-definition-6JOO6SKY-Ci21zMm8.js → kanban-definition-6JOO6SKY-4hgVjEGs.js} +1 -1
- package/dist/client/assets/{layout-C2Me86rf.js → layout-BHDLAxp5.js} +1 -1
- package/dist/client/assets/{linear-ByUNb5CC.js → linear-WT8NWS1o.js} +1 -1
- package/dist/client/assets/{mermaid.core-BoWZkfpL.js → mermaid.core-UWKHwZrH.js} +4 -4
- package/dist/client/assets/{min-B8IRUA1j.js → min-CkGW0p-k.js} +1 -1
- package/dist/client/assets/{mindmap-definition-QFDTVHPH-3mewX-qM.js → mindmap-definition-QFDTVHPH-BxjJxQqR.js} +1 -1
- package/dist/client/assets/{pieDiagram-DEJITSTG-BlriRvJU.js → pieDiagram-DEJITSTG-BTjPSbyX.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-34T5L4WZ-CSUKPLtY.js → quadrantDiagram-34T5L4WZ-D2fCxzGw.js} +1 -1
- package/dist/client/assets/{requirementDiagram-MS252O5E-DFzn-e8C.js → requirementDiagram-MS252O5E-CtElLmk8.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-XADWPNL6-CwBXMPIr.js → sankeyDiagram-XADWPNL6-DGqMKAC2.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-FGHM5R23-CU1OfDeP.js → sequenceDiagram-FGHM5R23-B8Yva4cR.js} +1 -1
- package/dist/client/assets/{stateDiagram-FHFEXIEX-OXatcKBx.js → stateDiagram-FHFEXIEX-BxBGow-_.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-COhEt-rs.js +1 -0
- package/dist/client/assets/{timeline-definition-GMOUNBTQ-XRolMK2B.js → timeline-definition-GMOUNBTQ-CUcV7Qpm.js} +1 -1
- package/dist/client/assets/{vennDiagram-DHZGUBPP-BUS74Ldc.js → vennDiagram-DHZGUBPP-DS0hFmpX.js} +1 -1
- package/dist/client/assets/{wardley-RL74JXVD-ByVYsbPe.js → wardley-RL74JXVD-Dhd3kp0H.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-NUSXRM2D-C_toYeEZ.js → wardleyDiagram-NUSXRM2D-B6QDK0rE.js} +1 -1
- package/dist/client/assets/{xychartDiagram-5P7HB3ND-1BjG0WNn.js → xychartDiagram-5P7HB3ND-tiuCrAL_.js} +1 -1
- package/dist/client/index.html +2 -2
- package/package.json +1 -1
- package/dist/client/assets/channel-Cn_SBpql.js +0 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-Upd_UEcv.js +0 -1
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-Upd_UEcv.js +0 -1
- package/dist/client/assets/clone-EvNJ1MeH.js +0 -1
- package/dist/client/assets/index-C_fsPgQB.css +0 -1
- package/dist/client/assets/index-Cktz8vZi.js +0 -734
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-DikGMI8K.js +0 -1
package/AGENTS.md
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
- Canonical Codex workspace routes live under `/console/codex/w/:ws/...`; MRU-compatible API routes live under `/console/codex/api/...`. Do not reintroduce global `/api/...` wiki routes because console owns its own local API namespace.
|
|
21
21
|
- The console-level **Theater** is the parent concept for project roots. Codex workspaces share the same id space (`workspaceHash(realpath(dir))`) but are a strict subset of the Theater registry (`hasWiki=true`). The Codex left workspace switcher is removed; Theater selection in the global navigation bar is the only workspace switch, and Theaters without a Fleet Wiki knowledge root render a "Codex 없음" state instead of mounting a wiki surface.
|
|
22
22
|
- The migrated Codex client stays Vanilla TypeScript under `client/src/codex/**`; do not rewrite it into React state or components beyond the React mount host.
|
|
23
|
+
- Codex has two presentation modes — **Full** (the dedicated `/console/codex` route) and **Side** (a right-docked overlay panel over the current route). A single shared mount host (`codex-host.ts`) is relocated between containers with `appendChild` and is never mounted twice — the Vanilla client is a module-level singleton, so exactly one Codex instance is ever live and switching modes must not `destroy()`+remount. In every mode the URL stays `/console/codex/...`; Side keeps the previously active route mounted as a background via the react-router `<Routes location=…>` pattern, and a direct deep-link or refresh onto `/codex` always renders Full. The view mode is a **global-navigation-bar-only** toggle persisted at `fleet-console.codex.view-mode` (`route`|`side`); the Side panel width persists at `fleet-console.codex.side-width` with no fixed min/max (viewport-bounded only), and the Codex layout is container-responsive — it sheds the rail, then the nav, as the panel narrows, leaving only the reading content.
|
|
23
24
|
- Preserve Maritime Codex UX: reading flow, raw viewer, Drydock queue, conflicts, index/log views, command palette, Manifest/ToC rails, copy-context actions, diagram lightbox, brass/aurora roles, and self-hosted fonts.
|
|
24
25
|
- Preserve wiki security invariants: Host allowlist, Origin guard, write-surface loopback gate, DOMPurify markdown sanitization, Mermaid `securityLevel: "strict"` with `htmlLabels: false` and no `bindFunctions`, path containment, and lockfile bearer auth for admin workspace registration.
|
|
25
26
|
- Browser payloads must not expose MCP/session tokens, terminal tickets, or Codex admin tokens.
|
|
@@ -53,7 +54,7 @@
|
|
|
53
54
|
|
|
54
55
|
## Layout
|
|
55
56
|
|
|
56
|
-
- `src/` — Node-side backend and CLI lifecycle: the HTTP server (`server.ts`), security headers, static serving (`static-console.ts`), observer routes (including `/observer/theaters*` Theater registry, session launch, and `DELETE /observer/theaters/:theaterId` for Theater plus cascading Operation/capture removal), the SSE helper, `codex/` (Fleet Wiki/Codex API gateway and workspace registration), `theaters.ts` (console-level in-memory TheaterRegistry backed by durable state), `theater.ts` (Theater id hash, realpath canonicalization, and label helpers), `terminal/` (PTY ticket/session/ws transport, `POST /terminal/sessions/:sessionId/resume` for lazy on-open resume of dormant Operations, and `DELETE /terminal/sessions/:sessionId` which kills a live session and removes it or simply removes a dormant session, persisting the change in all cases; console terminal sessions resolve Agent CLI launch specs through `@dotobokuri/fleet-admiral`, spawn the selected provider CLI directly, inject carrier job completion system-reminders (and, on Operation rename, a `/rename <name>` slash command) only into the originating session's PTY,
|
|
57
|
+
- `src/` — Node-side backend and CLI lifecycle: the HTTP server (`server.ts`), security headers, static serving (`static-console.ts`), observer routes (including `/observer/theaters*` Theater registry, session launch, and `DELETE /observer/theaters/:theaterId` for Theater plus cascading Operation/capture removal), the SSE helper, `codex/` (Fleet Wiki/Codex API gateway and workspace registration), `theaters.ts` (console-level in-memory TheaterRegistry backed by durable state), `theater.ts` (Theater id hash, realpath canonicalization, and label helpers), `terminal/` (PTY ticket/session/ws transport, `POST /terminal/sessions/:sessionId/resume` for lazy on-open resume of dormant Operations, and `DELETE /terminal/sessions/:sessionId` which kills a live session and removes it or simply removes a dormant session, persisting the change in all cases; console terminal sessions resolve Agent CLI launch specs through `@dotobokuri/fleet-admiral`, spawn the selected provider CLI directly, inject carrier job completion system-reminders (and, on Operation rename, a `/rename <name>` slash command) only into the originating session's PTY, bridge carrier runtime events into console-owned observability, and surface Claude input-waiting pauses (AskUserQuestion and permission/idle/elicitation notifications) to the browser as a transient observer-SSE attention signal that raises a notification toast, without exposing MCP/session tokens, terminal tickets, or system reminders to the browser; closing the browser view or switching Operations does not terminate the PTY — live sessions persist until the child process exits, an operator explicitly terminates the session, or the server stops; restarting the console restores Operations in a dormant state without a PTY and resumes them lazily when opened), the lifecycle modules (`lock.ts`, `paths.ts`, `health.ts`, `stale.ts`), and the CLI (`cli.ts`, `cli-bin.ts`, `browser.ts`, `help-style.ts`). Built by tsup to `dist/cli.mjs` and `dist/cli-bin.mjs`. `help-style.ts` is a CLI-help-only **self-hosted** style helper shared by the console and Codex compatibility CLIs; it must not import from `fleet-cli`, `packages/*`, or `client/`, and changes to the shared banner/SGR vocabulary require manual sync across those copies.
|
|
57
58
|
- `client/` — the Vite React SPA (`client/src/`, `client/index.html`, `client/vite.config.ts`). Must not import Node-only modules or the console backend (`src/`).
|
|
58
59
|
- `tests/` — vitest suites for the reducer, SSE parser, store, terminal, and CLI lifecycle.
|
|
59
60
|
|
|
@@ -83,7 +84,7 @@ The console is the operations variant of Fleet Wiki's **Maritime Codex** languag
|
|
|
83
84
|
- `coral` means error/bad; `--warn` (amber, near `oklch(80% 0.13 85)`) means warning/connecting; neutral ink means idle.
|
|
84
85
|
- **Typography**: `Fraunces Variable` is display type for the topbar brand, job titles, idle marks, and large headings. `Manrope Variable` is the default UI family. `JetBrains Mono Variable` is for stream output, job ids, timelines, and eyebrow labels with uppercase tracked styling. **Exception**: the Operations terminal (xterm) uses `Cascadia Code` — a terminal-tuned face for box-drawing/Powerline glyph alignment — rendered via the xterm WebGL addon with DOM fallback. This is the sole surface where the console mono identity deliberately diverges from JetBrains Mono; the terminal font lives in the `terminal.tsx` xterm options (xterm takes a JS font string, not a CSS token), so it is not a `theme.css` variable.
|
|
85
86
|
- **Surface and atmosphere**: `body::before` owns the multi-radial cold teal + brass afterglow field, and `body::after` owns the `feTurbulence` grain overlay. Sidebar, selected-job stage, timeline dock, and job summary are glass cards using `backdrop-filter: blur(18px) saturate(140%)`, `--surface-glass`, `--surface-rim`, `--shadow-soft`, and `--radius-xl`/large-radius surfaces.
|
|
86
|
-
- **Motion**: panes use one first-paint `codex-rise` reveal (720ms, `--ease-spring`, topbar/sidebar/stage staggered 40/120/200ms). Live dots use aurora pulse, the stream caret keeps its blink, and ambient infinite motion is forbidden. `prefers-reduced-motion` must continue to short-circuit animation. Exception: the Operations canvas background may render a user-toggleable ambient radar sweep that defaults on and persists per browser; it remains short-circuited by `prefers-reduced-motion`.
|
|
87
|
+
- **Motion**: panes use one first-paint `codex-rise` reveal (720ms, `--ease-spring`, topbar/sidebar/stage staggered 40/120/200ms). Live dots use aurora pulse, the stream caret keeps its blink, and ambient infinite motion is forbidden. `prefers-reduced-motion` must continue to short-circuit animation. Exception: the Operations canvas background may render a user-toggleable ambient radar sweep that defaults on and persists per browser; it remains short-circuited by `prefers-reduced-motion`. Second exception: a running Operation panel renders a continuous perimeter "wake" ripple as a functional status signal (not ambient decoration) — it appears only while work is in progress (an active carrier job, or an in-progress Agent CLI turn), its color **follows the panel beacon** (aurora for an active job, amber `--warn` for a turn in progress), and it stays short-circuited by `prefers-reduced-motion`, degrading to a static tinted rim and glow. Like the live-dot pulse, this is allowed functional status motion, not forbidden ambient motion.
|
|
87
88
|
- **Hard bans**: no font CDN; no `Inter`/`Roboto`/`Arial`/`system-ui` as the first font family; no solid `#fff` or `#000` backgrounds; no card/button/chip radius at or below 4px; no removal of `prefers-reduced-motion`; no mixing brass and aurora roles; no reintroduction of `--carbon-*` or `--signal-*` token families.
|
|
88
89
|
- CSS stays in three layers: `theme.css` (tokens/reset/keyframes only), `layout.css` (shell grid/breakpoints only), `components.css` (every concrete surface).
|
|
89
90
|
|