@essentialai/cogent-server 3.1.6 → 3.3.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.
Files changed (52) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +1 -0
  3. package/dist/__tests__/helpers.d.ts.map +1 -1
  4. package/dist/__tests__/helpers.js +7 -4
  5. package/dist/__tests__/helpers.js.map +1 -1
  6. package/dist/app.js +2 -2
  7. package/dist/app.js.map +1 -1
  8. package/dist/index.js +3 -2
  9. package/dist/index.js.map +1 -1
  10. package/dist/routes/messages.d.ts +2 -1
  11. package/dist/routes/messages.d.ts.map +1 -1
  12. package/dist/routes/messages.js +83 -3
  13. package/dist/routes/messages.js.map +1 -1
  14. package/dist/routes/peers.d.ts +20 -3
  15. package/dist/routes/peers.d.ts.map +1 -1
  16. package/dist/routes/peers.js +27 -5
  17. package/dist/routes/peers.js.map +1 -1
  18. package/dist/routes/ui.d.ts.map +1 -1
  19. package/dist/routes/ui.js +3 -1
  20. package/dist/routes/ui.js.map +1 -1
  21. package/dist/services/stats-service.d.ts +47 -2
  22. package/dist/services/stats-service.d.ts.map +1 -1
  23. package/dist/services/stats-service.js +126 -4
  24. package/dist/services/stats-service.js.map +1 -1
  25. package/dist/ui/components/PlatformBadge.d.ts +8 -0
  26. package/dist/ui/components/PlatformBadge.d.ts.map +1 -0
  27. package/dist/ui/components/PlatformBadge.js +47 -0
  28. package/dist/ui/components/PlatformBadge.js.map +1 -0
  29. package/dist/ui/pages/AdminDashboard.d.ts +2 -1
  30. package/dist/ui/pages/AdminDashboard.d.ts.map +1 -1
  31. package/dist/ui/pages/AdminDashboard.js +15 -2
  32. package/dist/ui/pages/AdminDashboard.js.map +1 -1
  33. package/dist/ui/pages/FaqPage.d.ts.map +1 -1
  34. package/dist/ui/pages/FaqPage.js +10 -2
  35. package/dist/ui/pages/FaqPage.js.map +1 -1
  36. package/dist/ui/pages/HowToPage.js +2 -2
  37. package/dist/ui/pages/HowToPage.js.map +1 -1
  38. package/dist/ui/pages/LandingPage.d.ts.map +1 -1
  39. package/dist/ui/pages/LandingPage.js +33 -1
  40. package/dist/ui/pages/LandingPage.js.map +1 -1
  41. package/dist/ui/pages/SessionDetail.d.ts.map +1 -1
  42. package/dist/ui/pages/SessionDetail.js +3 -2
  43. package/dist/ui/pages/SessionDetail.js.map +1 -1
  44. package/dist/ui/pages/SessionList.d.ts +2 -0
  45. package/dist/ui/pages/SessionList.d.ts.map +1 -1
  46. package/dist/ui/pages/SessionList.js +16 -2
  47. package/dist/ui/pages/SessionList.js.map +1 -1
  48. package/dist/ui/styles/theme.d.ts +7 -0
  49. package/dist/ui/styles/theme.d.ts.map +1 -1
  50. package/dist/ui/styles/theme.js +8 -0
  51. package/dist/ui/styles/theme.js.map +1 -1
  52. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.2.1] - 2026-05-17
4
+
5
+ ### Added
6
+ - **FIX-INFERRED-ECHO: opt-in dedup of untagged auto-relay echoes (Phase 18 light).** `LocalGetHistoryQuerySchema` accepts new optional `dedupInferredEchoes: boolean` (preprocess coerces `"true"` string → boolean). When `true`, GET `/api/sessions/:id/messages` suppresses M[i] when `M[i].message === M[i-1].response`, `fromPeerId`/`toPeerId` are swapped, AND `Δt < 120s`. Catches the ~13% of echo records that bypass the `isRelayEcho` tag (peer-driven `cogent_send_message` re-broadcasts after autoRelay's execClaude returns). Filter applies BEFORE peerId narrowing so the M[i] vs M[i-1] pairing sees the full timeline. Opt-in keeps existing callers untouched. See `server/src/routes/messages.ts`.
7
+
8
+ ### Changed
9
+ - **PATCH `/api/sessions/:sessionId/messages/:messageId` accepts `response: null`.** `UpdateMessageResponseSchema` changed `response: z.string()` → `response: z.string().nullable()`. Lets cloud clients explicitly mark timed-out sends — the message record's `response` stays `null` instead of holding a bridge-generated stub that LLMs would misread as the recipient's reply. See `server/src/routes/messages.ts`. Paired with client `src/tools/send-message.ts` FIX-TIMEOUT-UX in cogent-bridge 3.2.1.
10
+
11
+ ### Internal
12
+ - 5 new tests under `src/__tests__/routes/messages.test.ts` `describe("dedupInferredEchoes (FIX-INFERRED-ECHO, 3.2.1)")` — covers happy-path suppression, default-off backward compat, content-mismatch no-op, direction-mismatch no-op, and the `"true"` string preprocess coercion.
13
+
14
+ ## [3.2.0] - 2026-05-12
15
+
16
+ ### Added
17
+ - **Server-side acceptance of `mode` on POST `/peers` (OBS-01 / OBS-02).** `ExtendedRegisterPeerRequestSchema` now accepts optional `mode: z.enum(["observer", "agent"])`. `StoredPeerInfo` widened with optional `mode`. Persistence uses conditional-set (no `{ mode: undefined }` placeholder); GET `/peers` returns it on records where it was supplied. See `server/src/routes/peers.ts`.
18
+ - **Server-side `metadataOnly` projection on GET `/api/sessions/:id/messages` (HIST-02).** `LocalGetHistoryQuerySchema` accepts `metadataOnly` (preprocess coerces `"true"` string → boolean) and the GET handler projects each record to the 7-key shape `{id, fromPeerId, toPeerId, timestamp, durationMs, isRelayEcho, success}` before `c.json`. Built via object literal so `message`/`response`/`error` keys are physically absent. Server is the source of truth for the wire shape in cloud mode. See `server/src/routes/messages.ts`.
19
+
20
+ ### Internal
21
+ - Drift-snapshot tripwire test extended to include `"mode"` in the expected key set alongside `"clientVersion"`. Both fields remain server-side extensions in the same drift-budget as `clientVersion` until Phase 18 retires the mirror via `.extend()` against a bumped `@essentialai/cogent` shared-types package.
22
+ - 5 new tests under `server/src/__tests__/routes/peers.test.ts` `describe("OBS-01 / OBS-02 mode field")` covering POST/GET with `mode: "observer" | "agent"`, absence-as-legacy compat, and validator rejection of garbage values.
23
+ - 4 new tests under `server/src/__tests__/routes/messages.test.ts` `describe("metadataOnly (HIST-02)")` covering 7-key projection, end-to-end response.text() size ratio ≤ 0.10, preprocess coercion, and default/false passthrough.
24
+
25
+ Planning: `.planning/phases/17-observer-mode-and-history-hygiene/`
26
+
3
27
  ## [3.1.3] - 2026-05-05
4
28
 
5
29
  ### Fixed
package/README.md CHANGED
@@ -8,6 +8,7 @@ Cloud relay server for [Cogent bridge](https://cogent.tools) inter-session commu
8
8
 
9
9
  ## Features
10
10
 
11
+ - **Multi-provider** -- Claude Code + OpenAI Codex + Slack
11
12
  - **REST API** -- Session management, peer registration, and messaging via Hono
12
13
  - **WebSocket push** -- Real-time message delivery with heartbeat and offline queuing
13
14
  - **Bearer token auth** -- bcrypt-hashed secrets, SHA-256 token storage
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/__tests__/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,EAAE,mBAAmB,CAAC;IAClC,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,WAAW,SAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA0CvE;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EACpB,MAAM,SAAsB,GAC3B,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ/C;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,SAAmB,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAclC;AAED;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,OAAO;IACxC,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACpE,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,WAAW,SAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA+D3E"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/__tests__/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,EAAE,mBAAmB,CAAC;IAClC,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,WAAW,SAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA6CvE;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EACpB,MAAM,SAAsB,GAC3B,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ/C;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,SAAmB,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAclC;AAED;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,OAAO;IACxC,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACpE,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,WAAW,SAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA+D3E"}
@@ -26,7 +26,7 @@ export async function createTestApp(maxMessages = 500) {
26
26
  const channelIndex = new ChannelIndex();
27
27
  await sessionStore.init();
28
28
  const startTime = Date.now();
29
- const statsService = new StatsService(sessionStore, connectionManager, startTime);
29
+ const statsService = new StatsService(sessionStore, connectionManager, startTime, tmpDir);
30
30
  const { app } = createApp({
31
31
  sessionStore,
32
32
  authService,
@@ -50,7 +50,10 @@ export async function createTestApp(maxMessages = 500) {
50
50
  adapterRegistry,
51
51
  channelIndex,
52
52
  cleanup: async () => {
53
- await fs.rm(tmpDir, { recursive: true, force: true });
53
+ // maxRetries handles the rare ENOTEMPTY race when fire-and-forget async
54
+ // writes (e.g. platform-stats.json) finish just as fs.rm starts removing
55
+ // the directory.
56
+ await fs.rm(tmpDir, { recursive: true, force: true, maxRetries: 3, retryDelay: 50 });
54
57
  },
55
58
  };
56
59
  }
@@ -103,7 +106,7 @@ export async function createTestWsApp(maxMessages = 500) {
103
106
  const adapterRegistry = new AdapterRegistry();
104
107
  const channelIndex = new ChannelIndex();
105
108
  const startTime = Date.now();
106
- const statsService = new StatsService(sessionStore, connectionManager, startTime);
109
+ const statsService = new StatsService(sessionStore, connectionManager, startTime, tmpDir);
107
110
  const { app, injectWebSocket } = createApp({
108
111
  sessionStore,
109
112
  authService,
@@ -137,7 +140,7 @@ export async function createTestWsApp(maxMessages = 500) {
137
140
  port,
138
141
  wsUrl: (sessionId, _token, peerId) => `ws://localhost:${port}/ws/${sessionId}?peerId=${encodeURIComponent(peerId)}`,
139
142
  cleanup: async () => {
140
- await fs.rm(tmpDir, { recursive: true, force: true });
143
+ await fs.rm(tmpDir, { recursive: true, force: true, maxRetries: 3, retryDelay: 50 });
141
144
  },
142
145
  shutdown: async () => {
143
146
  connectionManager.closeAll(1012, "Test shutdown");
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/__tests__/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AActC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAW,GAAG,GAAG;IACnD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IAEvE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;IACpE,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IAExC,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;IAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAElF,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;QACxB,YAAY;QACZ,WAAW;QACX,SAAS;QACT,WAAW;QACX,iBAAiB;QACjB,YAAY;QACZ,YAAY;QACZ,aAAa,EAAE,IAAI;QACnB,mBAAmB,EAAE,MAAM;QAC3B,kBAAkB,EAAE,CAAC;QACrB,eAAe;QACf,YAAY;KACb,CAAC,CAAC;IAEH,OAAO;QACL,GAAG;QACH,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,YAAY;QACZ,eAAe;QACf,YAAY;QACZ,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,GAAoB,EACpB,MAAM,GAAG,mBAAmB;IAE5B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE;QAC7C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACjC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyC,CAAC;IACxE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAoB,EACpB,SAAiB,EACjB,KAAa,EACb,MAAc,EACd,KAAK,GAAG,QAAQ,MAAM,EAAE;IAExB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,iBAAiB,SAAS,QAAQ,EAAE;QAChE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,MAAM;YACN,GAAG,EAAE,SAAS,MAAM,EAAE;YACtB,KAAK;SACN,CAAC;KACH,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;AACvD,CAAC;AAeD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAW,GAAG,GAAG;IACrD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAEpE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;IAE1B,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACpF,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IAExC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAElF,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;QACzC,YAAY;QACZ,WAAW;QACX,SAAS;QACT,WAAW;QACX,iBAAiB;QACjB,YAAY;QACZ,YAAY;QACZ,aAAa,EAAE,IAAI;QACnB,mBAAmB,EAAE,MAAM;QAC3B,kBAAkB,EAAE,CAAC;QACrB,eAAe;QACf,YAAY;KACb,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACxC,eAAe,CAAC,MAAM,CAAC,CAAC;IAExB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE;YACpB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9D,OAAO,CAAC;gBACN,GAAG;gBACH,YAAY;gBACZ,WAAW;gBACX,iBAAiB;gBACjB,YAAY;gBACZ,eAAe;gBACf,YAAY;gBACZ,MAAM;gBACN,IAAI;gBACJ,KAAK,EAAE,CAAC,SAAiB,EAAE,MAAc,EAAE,MAAc,EAAE,EAAE,CAC3D,kBAAkB,IAAI,OAAO,SAAS,WAAW,kBAAkB,CAAC,MAAM,CAAC,EAAE;gBAC/E,OAAO,EAAE,KAAK,IAAI,EAAE;oBAClB,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,CAAC;gBACD,QAAQ,EAAE,KAAK,IAAI,EAAE;oBACnB,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;oBAClD,OAAO,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;wBACpC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAClD,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/__tests__/helpers.ts"],"names":[],"mappings":"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"}
package/dist/app.js CHANGED
@@ -68,9 +68,9 @@ export function createApp(deps) {
68
68
  app.route("/api/health", createHealthRoutes(sessionStore, startTime, connectionManager));
69
69
  // --- Authenticated routes ---
70
70
  // Peer routes: /:sessionId/peers (POST, GET), /:sessionId/peers/:peerId (DELETE)
71
- app.route("/api/sessions", createPeerRoutes(sessionStore, authService, connectionManager));
71
+ app.route("/api/sessions", createPeerRoutes(sessionStore, authService, connectionManager, statsService));
72
72
  // Message routes: /:sessionId/messages (POST, GET)
73
- app.route("/api/sessions", createMessageRoutes(sessionStore, authService, maxMessages, connectionManager, messageQueue, adapterRegistry));
73
+ app.route("/api/sessions", createMessageRoutes(sessionStore, authService, maxMessages, connectionManager, messageQueue, adapterRegistry, statsService));
74
74
  // Poll routes: /:sessionId/poll (GET)
75
75
  app.route("/api/sessions", createPollRoutes(sessionStore, authService));
76
76
  // Adapter routes: /adapter/:sessionId/messages (POST, GET)
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAOpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAwB1E;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,MAAM,EACJ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,YAAY,GACb,GAAG,IAAI,CAAC;IAET,MAAM,GAAG,GAAG,IAAI,IAAI,EAAa,CAAC;IAClC,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAE3E,yBAAyB;IACzB,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1B,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAE9B,uFAAuF;IACvF,kFAAkF;IAClF,GAAG,CAAC,GAAG,CACL,gBAAgB,EAChB,sBAAsB,CAAC,YAAY,EAAE,WAAW,CAAC,EACjD,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAC;QACtC,OAAO,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE;YACxC,iBAAiB;YACjB,YAAY;YACZ,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEF,gFAAgF;IAChF,IAAI,eAAe,EAAE,CAAC;QACpB,GAAG,CAAC,GAAG,CACL,wBAAwB,EACxB,6BAA6B,CAAC,YAAY,EAAE,WAAW,CAAC,EACxD,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE;YACrB,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAE,CAAC;YAC1C,OAAO,sBAAsB,CAAC,SAAS,EAAE,QAAQ,EAAE;gBACjD,eAAe;gBACf,YAAY;gBACZ,YAAY;gBACZ,iBAAiB;gBACjB,mBAAmB;gBACnB,kBAAkB;aACnB,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,yGAAyG;IACzG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;IAE9B,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAClG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEzB,iCAAiC;IACjC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAC3E,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEzF,+BAA+B;IAC/B,iFAAiF;IACjF,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,gBAAgB,CAAC,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC;IAEzG,mDAAmD;IACnD,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC;IAExJ,sCAAsC;IACtC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,gBAAgB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAExE,2DAA2D;IAC3D,IAAI,eAAe,EAAE,CAAC;QACpB,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC;IACvI,CAAC;IAED,uFAAuF;IACvF,IAAI,YAAY,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,0BAA0B,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAClG,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;AAClC,CAAC"}
package/dist/index.js CHANGED
@@ -46,8 +46,9 @@ async function main() {
46
46
  const startTime = Date.now();
47
47
  // Admin dashboard password (null = admin disabled)
48
48
  const adminPassword = config.ADMIN_PASSWORD ?? null;
49
- // Stats aggregation service for landing page and SSE stream
50
- const statsService = new StatsService(sessionStore, connectionManager, startTime);
49
+ // Stats aggregation service for landing page and SSE stream.
50
+ // dataDir co-locates platform-stats.json with the session state files.
51
+ const statsService = new StatsService(sessionStore, connectionManager, startTime, config.STATE_DIR);
51
52
  // Create the Hono app with all middleware, routes, and WebSocket support
52
53
  const { app, injectWebSocket } = createApp({
53
54
  sessionStore,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { AuthService } from "../services/auth-service.js";
4
4
  import type { ConnectionManager } from "../services/connection-manager.js";
5
5
  import type { MessageQueueService } from "../services/message-queue.js";
6
6
  import type { AdapterRegistry } from "../services/adapter-registry.js";
7
+ import type { StatsService } from "../services/stats-service.js";
7
8
  import type { ServerEnv } from "../types.js";
8
9
  /**
9
10
  * Create message routes sub-router.
@@ -17,5 +18,5 @@ import type { ServerEnv } from "../types.js";
17
18
  *
18
19
  * @param maxMessages - Maximum messages to retain per session (oldest trimmed on write)
19
20
  */
20
- export declare function createMessageRoutes(sessionStore: SessionStore, authService: AuthService, maxMessages: number, connectionManager?: ConnectionManager, messageQueue?: MessageQueueService, adapterRegistry?: AdapterRegistry): Hono<ServerEnv>;
21
+ export declare function createMessageRoutes(sessionStore: SessionStore, authService: AuthService, maxMessages: number, connectionManager?: ConnectionManager, messageQueue?: MessageQueueService, adapterRegistry?: AdapterRegistry, statsService?: StatsService): Hono<ServerEnv>;
21
22
  //# sourceMappingURL=messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/routes/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAS5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,YAAY,CAAC,EAAE,mBAAmB,EAClC,eAAe,CAAC,EAAE,eAAe,GAChC,IAAI,CAAC,SAAS,CAAC,CAuTjB"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/routes/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAS5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,YAAY,CAAC,EAAE,mBAAmB,EAClC,eAAe,CAAC,EAAE,eAAe,EACjC,YAAY,CAAC,EAAE,YAAY,GAC1B,IAAI,CAAC,SAAS,CAAC,CAsYjB"}
@@ -17,7 +17,7 @@ import { createMessageFrame } from "../ws/frames.js";
17
17
  *
18
18
  * @param maxMessages - Maximum messages to retain per session (oldest trimmed on write)
19
19
  */
20
- export function createMessageRoutes(sessionStore, authService, maxMessages, connectionManager, messageQueue, adapterRegistry) {
20
+ export function createMessageRoutes(sessionStore, authService, maxMessages, connectionManager, messageQueue, adapterRegistry, statsService) {
21
21
  const messages = new Hono();
22
22
  // Auth middleware applied per-route (not wildcard) to avoid intercepting
23
23
  // unauthenticated session routes mounted at the same /api/sessions prefix.
@@ -33,7 +33,7 @@ export function createMessageRoutes(sessionStore, authService, maxMessages, conn
33
33
  fromPeerId: z.string().min(1),
34
34
  toPeerId: z.string().min(1),
35
35
  message: z.string().min(1),
36
- originPlatform: z.enum(["cc", "slack", "gchat", "web"]).optional(),
36
+ originPlatform: z.enum(["cc", "codex", "slack", "gchat", "web"]).optional(),
37
37
  isRelayEcho: z.boolean().optional(),
38
38
  })
39
39
  .strict();
@@ -49,6 +49,24 @@ export function createMessageRoutes(sessionStore, authService, maxMessages, conn
49
49
  .preprocess((v) => v === "true" || v === true, z.boolean())
50
50
  .optional()
51
51
  .default(false),
52
+ // HIST-02 (3.2): when true, response records are projected to a 7-key
53
+ // metadata-only shape (no message/response bodies). Mirrors the
54
+ // includeRelayEchoes preprocess so "true" / true both coerce to boolean.
55
+ metadataOnly: z
56
+ .preprocess((v) => v === "true" || v === true, z.boolean())
57
+ .optional()
58
+ .default(false),
59
+ // FIX-INFERRED-ECHO (3.2.1, Phase 18 light): when true, suppress untagged
60
+ // auto-relay echoes via content-and-direction heuristic — drop M[i] when
61
+ // M[i].message === M[i-1].response AND fromPeerId/toPeerId are swapped
62
+ // AND Δt < 120s. Catches the ~13% of echo records that bypass the
63
+ // isRelayEcho tag (peer-driven cogent_send_message re-broadcasts).
64
+ // Opt-in to avoid surprise behavior change for callers still relying on
65
+ // the legacy untagged stream.
66
+ dedupInferredEchoes: z
67
+ .preprocess((v) => v === "true" || v === true, z.boolean())
68
+ .optional()
69
+ .default(false),
52
70
  })
53
71
  .strict();
54
72
  /**
@@ -118,6 +136,10 @@ export function createMessageRoutes(sessionStore, authService, maxMessages, conn
118
136
  });
119
137
  // Increment global message counter (monotonic, survives session deletion)
120
138
  await sessionStore.incrementGlobalMessageCount();
139
+ // Increment cumulative platform message counter (fire-and-forget)
140
+ if (statsService) {
141
+ statsService.incrementMessageSent(originPlatform ?? "cc").catch(console.error);
142
+ }
121
143
  // Push message to connected WebSocket peers (fire-and-forget)
122
144
  if (connectionManager) {
123
145
  try {
@@ -186,6 +208,8 @@ export function createMessageRoutes(sessionStore, authService, maxMessages, conn
186
208
  const limit = query.limit ?? 300;
187
209
  const offset = query.offset ?? 0;
188
210
  const includeRelayEchoes = query.includeRelayEchoes ?? false;
211
+ const metadataOnly = query.metadataOnly ?? false;
212
+ const dedupInferredEchoes = query.dedupInferredEchoes ?? false;
189
213
  // Fresh read from store (not cached from auth middleware)
190
214
  const session = await sessionStore.getSession(authSessionId);
191
215
  if (!session) {
@@ -199,6 +223,35 @@ export function createMessageRoutes(sessionStore, authService, maxMessages, conn
199
223
  if (!includeRelayEchoes) {
200
224
  filtered = filtered.filter((m) => m.isRelayEcho !== true);
201
225
  }
226
+ // FIX-INFERRED-ECHO (3.2.1, Phase 18 light): suppress untagged
227
+ // auto-relay echoes. Apply BEFORE peerId narrowing so the pairing
228
+ // (M[i] vs M[i-1]) sees the full timeline. Heuristic:
229
+ // - same content: M[i].message === M[i-1].response
230
+ // - swapped direction: fromPeerId/toPeerId are inverted
231
+ // - tight window: Δt < 120s
232
+ // M[i].response may be anything (real reply or null) -- we only need
233
+ // the message-side to be a content duplicate of M[i-1]'s response.
234
+ if (dedupInferredEchoes && filtered.length > 1) {
235
+ const INFERRED_ECHO_WINDOW_MS = 120_000;
236
+ filtered = filtered.filter((msg, i) => {
237
+ if (i === 0)
238
+ return true;
239
+ const prev = filtered[i - 1];
240
+ if (!prev.response)
241
+ return true;
242
+ if (msg.message !== prev.response)
243
+ return true;
244
+ if (msg.fromPeerId !== prev.toPeerId)
245
+ return true;
246
+ if (msg.toPeerId !== prev.fromPeerId)
247
+ return true;
248
+ const dt = Date.parse(msg.timestamp) - Date.parse(prev.timestamp);
249
+ if (!Number.isFinite(dt) || dt < 0 || dt > INFERRED_ECHO_WINDOW_MS) {
250
+ return true;
251
+ }
252
+ return false;
253
+ });
254
+ }
202
255
  // Filter messages by peer if specified
203
256
  if (peerId) {
204
257
  filtered = filtered.filter((msg) => msg.fromPeerId === peerId ||
@@ -214,6 +267,30 @@ export function createMessageRoutes(sessionStore, authService, maxMessages, conn
214
267
  const endPos = Math.max(0, filtered.length - offset);
215
268
  const startPos = Math.max(0, endPos - limit);
216
269
  const paginated = filtered.slice(startPos, endPos);
270
+ // HIST-02: when metadataOnly is true, project each record to the
271
+ // 7-key contract shape BEFORE serialization. Built via object literal
272
+ // (not delete-on-clone) so the keys "message" and "response" are
273
+ // absent from the JSON (not nulled, not truncated). isRelayEcho is
274
+ // emitted explicitly as boolean (older records without the field
275
+ // get false) so the contract is stable on every record.
276
+ if (metadataOnly) {
277
+ const projected = paginated.map((m) => {
278
+ const rec = m;
279
+ return {
280
+ id: rec.id,
281
+ fromPeerId: rec.fromPeerId,
282
+ toPeerId: rec.toPeerId,
283
+ timestamp: rec.timestamp,
284
+ durationMs: rec.durationMs,
285
+ isRelayEcho: rec.isRelayEcho === true,
286
+ success: rec.success,
287
+ };
288
+ });
289
+ return c.json({
290
+ messages: projected,
291
+ total,
292
+ });
293
+ }
217
294
  return c.json({
218
295
  messages: paginated,
219
296
  total,
@@ -227,8 +304,11 @@ export function createMessageRoutes(sessionStore, authService, maxMessages, conn
227
304
  * messageId does not exist, succeeds silently (message may have been
228
305
  * trimmed by the cap).
229
306
  */
307
+ // v3.2.1 (FIX-TIMEOUT-UX): accept null response so cloud clients can mark
308
+ // timed-out sends explicitly (record's response stays null instead of
309
+ // holding a bridge-generated stub that LLMs would misread as the reply).
230
310
  const UpdateMessageResponseSchema = z.object({
231
- response: z.string(),
311
+ response: z.string().nullable(),
232
312
  durationMs: z.number().optional(),
233
313
  });
234
314
  messages.patch("/:sessionId/messages/:messageId", auth, zValidator("json", UpdateMessageResponseSchema, validationHook), async (c) => {
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/routes/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/routes/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,SAAS,EACT,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAA0B,EAC1B,WAAwB,EACxB,WAAmB,EACnB,iBAAqC,EACrC,YAAkC,EAClC,eAAiC,EACjC,YAA2B;IAE3B,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAa,CAAC;IAEvC,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,IAAI,GAAG,oBAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAE7D,2EAA2E;IAC3E,yEAAyE;IACzE,4EAA4E;IAC5E,8EAA8E;IAC9E,wEAAwE;IACxE,4EAA4E;IAC5E,MAAM,0BAA0B,GAAG,CAAC;SACjC,MAAM,CAAC;QACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC3E,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KACpC,CAAC;SACD,MAAM,EAAE,CAAC;IAEZ,MAAM,0BAA0B,GAAG,CAAC;SACjC,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;QACvE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5D,wEAAwE;QACxE,iEAAiE;QACjE,4CAA4C;QAC5C,kBAAkB,EAAE,CAAC;aAClB,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;aAC1D,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;QACjB,sEAAsE;QACtE,gEAAgE;QAChE,yEAAyE;QACzE,YAAY,EAAE,CAAC;aACZ,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;aAC1D,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;QACjB,0EAA0E;QAC1E,yEAAyE;QACzE,uEAAuE;QACvE,kEAAkE;QAClE,mEAAmE;QACnE,wEAAwE;QACxE,8BAA8B;QAC9B,mBAAmB,EAAE,CAAC;aACnB,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;aAC1D,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;KAClB,CAAC;SACD,MAAM,EAAE,CAAC;IAEZ;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,CACX,sBAAsB,EACtB,IAAI,EACJ,UAAU,CAAC,MAAM,EAAE,0BAA0B,EAAE,cAAc,CAAC,EAC9D,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE/C,kDAAkD;QAClD,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YACpC,MAAM,IAAI,WAAW,CACnB,SAAS,CAAC,kBAAkB,EAC5B,uCAAuC,CACxC,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,GAClE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEtB,6EAA6E;QAC7E,wEAAwE;QACxE,wEAAwE;QACxE,0EAA0E;QAC1E,IAAI,SAAiB,CAAC;QACtB,IAAI,SAAiB,CAAC;QACtB,IAAI,MAAiD,CAAC;QAEtD,MAAM,YAAY,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACxD,qDAAqD;YACrD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,WAAW,CACnB,SAAS,CAAC,cAAc,EACxB,uCAAuC,EACvC,kBAAkB,UAAU,2BAA2B,CACxD,CAAC;YACJ,CAAC;YAED,oEAAoE;YACpE,IAAI,QAAQ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,WAAW,CACnB,SAAS,CAAC,cAAc,EACxB,qCAAqC,EACrC,oBAAoB,QAAQ,gCAAgC,CAC7D,CAAC;YACJ,CAAC;YAED,qDAAqD;YACrD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC;YAEzC,4CAA4C;YAC5C,SAAS,GAAG,iBAAiB,EAAE,CAAC;YAChC,SAAS,GAAG,GAAG,CAAC;YAEhB,MAAM,GAAG;gBACP,EAAE,EAAE,SAAS;gBACb,UAAU;gBACV,QAAQ;gBACR,OAAO;gBACP,QAAQ,EAAE,IAAI;gBACd,SAAS;gBACT,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,cAAc,EAAE,cAAc,IAAI,IAAI;gBACtC,iEAAiE;gBACjE,6DAA6D;gBAC7D,+BAA+B;gBAC/B,WAAW,EAAE,WAAW,IAAI,KAAK;aAClC,CAAC;YAEF,kEAAkE;YAClE,mEAAmE;YACnE,sEAAsE;YACtE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAuB,CAAC,CAAC;YAE7C,0EAA0E;YAC1E,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;gBACxC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;YACtD,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,0EAA0E;QAC1E,MAAM,YAAY,CAAC,2BAA2B,EAAE,CAAC;QAEjD,kEAAkE;QAClE,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,oBAAoB,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjF,CAAC;QAED,8DAA8D;QAC9D,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAO,CAAC,CAAC;gBAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC;gBAE9C,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;oBACrB,mEAAmE;oBACnE,iBAAiB,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;oBAEtE,8DAA8D;oBAC9D,IAAI,eAAe,EAAE,CAAC;wBACpB,eAAe,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;oBAC3E,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,yEAAyE;oBACzE,IAAI,iBAAiB,CAAC,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC;wBAC3D,MAAM,IAAI,GAAG,iBAAiB,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBACzE,IAAI,IAAI,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;4BAC/B,MAAM,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAO,CAAC,CAAC;wBAC/D,CAAC;oBACH,CAAC;yBAAM,IAAI,YAAY,EAAE,CAAC;wBACxB,MAAM,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAO,CAAC,CAAC;oBAC/D,CAAC;oBAED,wEAAwE;oBACxE,uEAAuE;oBACvE,8DAA8D;oBAC9D,IAAI,eAAe,EAAE,CAAC;wBACpB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;wBAC7D,MAAM,iBAAiB,GAAG,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;wBAC7D,IAAI,iBAAiB,IAAI,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,cAAc,EAAE,CAAC;4BAC5F,eAAe,CAAC,aAAa,CAAC,aAAa,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;wBACxE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,iEAAiE;gBACjE,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CACX;YACE,EAAE,EAAE,SAAU;YACd,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,SAAU;SACtB,EACD,GAAG,CACJ,CAAC;IACJ,CAAC,CACF,CAAC;IAEF;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,CACV,sBAAsB,EACtB,IAAI,EACJ,UAAU,CAAC,OAAO,EAAE,0BAA0B,EAAE,cAAc,CAAC,EAC/D,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE/C,kDAAkD;QAClD,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YACpC,MAAM,IAAI,WAAW,CACnB,SAAS,CAAC,kBAAkB,EAC5B,uCAAuC,CACxC,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,0EAA0E;QAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC;QACjC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACjC,MAAM,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC;QACjD,MAAM,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC;QAE/D,0DAA0D;QAC1D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,WAAW,CACnB,SAAS,CAAC,iBAAiB,EAC3B,WAAW,aAAa,YAAY,CACrC,CAAC;QACJ,CAAC;QAED,oEAAoE;QACpE,wEAAwE;QACxE,sEAAsE;QACtE,mEAAmE;QACnE,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CACxB,CAAC,CAAC,EAAE,EAAE,CAAE,CAA+C,CAAC,WAAW,KAAK,IAAI,CAC7E,CAAC;QACJ,CAAC;QAED,+DAA+D;QAC/D,kEAAkE;QAClE,sDAAsD;QACtD,qDAAqD;QACrD,0DAA0D;QAC1D,8BAA8B;QAC9B,qEAAqE;QACrE,mEAAmE;QACnE,IAAI,mBAAmB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,uBAAuB,GAAG,OAAO,CAAC;YACxC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAChC,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAC/C,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAClD,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU;oBAAE,OAAO,IAAI,CAAC;gBAClD,MAAM,EAAE,GACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,uBAAuB,EAAE,CAAC;oBACnE,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;QAED,uCAAuC;QACvC,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,GAAG,QAAQ,CAAC,MAAM,CACxB,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,UAAU,KAAK,MAAM;gBACzB,GAAG,CAAC,QAAQ,KAAK,MAAM;gBACvB,GAAG,CAAC,QAAQ,KAAK,GAAG,CACvB,CAAC;QACJ,CAAC;QAED,kCAAkC;QAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE9B,mEAAmE;QACnE,sDAAsD;QACtD,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEnD,iEAAiE;QACjE,sEAAsE;QACtE,iEAAiE;QACjE,mEAAmE;QACnE,iEAAiE;QACjE,wDAAwD;QACxD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpC,MAAM,GAAG,GAAG,CAA8C,CAAC;gBAC3D,OAAO;oBACL,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,WAAW,EAAE,GAAG,CAAC,WAAW,KAAK,IAAI;oBACrC,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,SAAS;gBACnB,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,QAAQ,EAAE,SAAS;YACnB,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF;;;;;;;OAOG;IACH,0EAA0E;IAC1E,sEAAsE;IACtE,yEAAyE;IACzE,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;QAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,CACZ,iCAAiC,EACjC,IAAI,EACJ,UAAU,CAAC,MAAM,EAAE,2BAA2B,EAAE,cAAc,CAAC,EAC/D,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE/C,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YACpC,MAAM,IAAI,WAAW,CACnB,SAAS,CAAC,kBAAkB,EAC5B,uCAAuC,CACxC,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAErD,MAAM,YAAY,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACxD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;YAC3D,IAAI,GAAG,EAAE,CAAC;gBACR,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACxB,IAAI,UAAU,KAAK,SAAS;oBAAE,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;YAC5D,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC,CACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -3,6 +3,7 @@ import { z } from "zod";
3
3
  import type { SessionStore } from "../services/session-store.js";
4
4
  import type { AuthService } from "../services/auth-service.js";
5
5
  import type { ConnectionManager } from "../services/connection-manager.js";
6
+ import type { StatsService } from "../services/stats-service.js";
6
7
  import type { ServerEnv } from "../types.js";
7
8
  /**
8
9
  * DRIFT WARNING — MUST stay in sync with RegisterPeerRequestSchema in
@@ -11,12 +12,18 @@ import type { ServerEnv } from "../types.js";
11
12
  * The published schema is typed as `z.ZodType<RegisterPeerRequest>` in its .d.ts,
12
13
  * which prevents a TS-clean `.extend()` here without first bumping the shared
13
14
  * types package to 3.0.1 (deferred — see audit M1, Path B). Until then, this
14
- * file mirrors the shape verbatim and adds `clientVersion` (server 3.1.4+).
15
+ * file mirrors the shape verbatim and adds server-side extensions:
16
+ * - `clientVersion` (server 3.1.4+ / observability)
17
+ * - `mode` (server 3.2.0+ / Phase 17 OBS-01: observer-mode peers)
18
+ *
19
+ * Both extensions ship ahead of the shared-types bump; Phase 18 retires this
20
+ * local mirror in favor of an `.extend()` against the shared schema once
21
+ * @essentialai/cogent 3.0.1+ is published.
15
22
  *
16
23
  * Drift is guarded by a structural snapshot test in peers.test.ts that imports
17
24
  * THIS schema directly and asserts:
18
25
  * Object.keys(ExtendedRegisterPeerRequestSchema.shape).sort()
19
- * === [...Object.keys(publishedShape), "clientVersion"].sort()
26
+ * === [...Object.keys(publishedShape), "clientVersion", "mode"].sort()
20
27
  * Failure means @essentialai/cogent shipped a new field on its
21
28
  * RegisterPeerRequestSchema and this mirror needs the same addition.
22
29
  * The test cannot be silenced by editing a payload — it reads the live schemas.
@@ -27,6 +34,11 @@ import type { ServerEnv } from "../types.js";
27
34
  * clientVersion shape (audit L3): loose semver MAJOR.MINOR.PATCH with optional
28
35
  * pre-release suffix; rejects free-form strings, whitespace, and typos like
29
36
  * "client v3.1.6". Defense-in-depth — the field is observability-only.
37
+ *
38
+ * mode (Phase 17 OBS-01): "observer" registers a passive watcher that
39
+ * receives WS frames and remains targetable but never auto-replies. "agent"
40
+ * (default when absent) is the standard CC peer behavior. Pre-3.2.0 clients
41
+ * omit the field entirely; pre-3.2.0 servers reject it (strict schema).
30
42
  */
31
43
  export declare const ExtendedRegisterPeerRequestSchema: z.ZodObject<{
32
44
  peerId: z.ZodString;
@@ -36,6 +48,7 @@ export declare const ExtendedRegisterPeerRequestSchema: z.ZodObject<{
36
48
  slack: "slack";
37
49
  gchat: "gchat";
38
50
  cc: "cc";
51
+ codex: "codex";
39
52
  web: "web";
40
53
  }>>;
41
54
  type: z.ZodOptional<z.ZodEnum<{
@@ -50,6 +63,10 @@ export declare const ExtendedRegisterPeerRequestSchema: z.ZodObject<{
50
63
  }>>;
51
64
  platformIdentity: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
52
65
  clientVersion: z.ZodOptional<z.ZodString>;
66
+ mode: z.ZodOptional<z.ZodEnum<{
67
+ agent: "agent";
68
+ observer: "observer";
69
+ }>>;
53
70
  }, z.core.$strict>;
54
71
  /**
55
72
  * Create peer management routes sub-router.
@@ -61,5 +78,5 @@ export declare const ExtendedRegisterPeerRequestSchema: z.ZodObject<{
61
78
  * All routes require valid Bearer token authentication.
62
79
  * The sub-router is mounted at /api/sessions via app.route().
63
80
  */
64
- export declare function createPeerRoutes(sessionStore: SessionStore, authService: AuthService, connectionManager?: ConnectionManager): Hono<ServerEnv>;
81
+ export declare function createPeerRoutes(sessionStore: SessionStore, authService: AuthService, connectionManager?: ConnectionManager, statsService?: StatsService): Hono<ServerEnv>;
65
82
  //# sourceMappingURL=peers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"peers.d.ts","sourceRoot":"","sources":["../../src/routes/peers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQ7C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;kBAkBnC,CAAC;AAmBZ;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,IAAI,CAAC,SAAS,CAAC,CA+NjB"}
1
+ {"version":3,"file":"peers.d.ts","sourceRoot":"","sources":["../../src/routes/peers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQ7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmBnC,CAAC;AAsBZ;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,YAAY,CAAC,EAAE,YAAY,GAC1B,IAAI,CAAC,SAAS,CAAC,CA2OjB"}
@@ -12,12 +12,18 @@ import { createPeerConnectedFrame, createPeerDisconnectedFrame, } from "../ws/fr
12
12
  * The published schema is typed as `z.ZodType<RegisterPeerRequest>` in its .d.ts,
13
13
  * which prevents a TS-clean `.extend()` here without first bumping the shared
14
14
  * types package to 3.0.1 (deferred — see audit M1, Path B). Until then, this
15
- * file mirrors the shape verbatim and adds `clientVersion` (server 3.1.4+).
15
+ * file mirrors the shape verbatim and adds server-side extensions:
16
+ * - `clientVersion` (server 3.1.4+ / observability)
17
+ * - `mode` (server 3.2.0+ / Phase 17 OBS-01: observer-mode peers)
18
+ *
19
+ * Both extensions ship ahead of the shared-types bump; Phase 18 retires this
20
+ * local mirror in favor of an `.extend()` against the shared schema once
21
+ * @essentialai/cogent 3.0.1+ is published.
16
22
  *
17
23
  * Drift is guarded by a structural snapshot test in peers.test.ts that imports
18
24
  * THIS schema directly and asserts:
19
25
  * Object.keys(ExtendedRegisterPeerRequestSchema.shape).sort()
20
- * === [...Object.keys(publishedShape), "clientVersion"].sort()
26
+ * === [...Object.keys(publishedShape), "clientVersion", "mode"].sort()
21
27
  * Failure means @essentialai/cogent shipped a new field on its
22
28
  * RegisterPeerRequestSchema and this mirror needs the same addition.
23
29
  * The test cannot be silenced by editing a payload — it reads the live schemas.
@@ -28,13 +34,18 @@ import { createPeerConnectedFrame, createPeerDisconnectedFrame, } from "../ws/fr
28
34
  * clientVersion shape (audit L3): loose semver MAJOR.MINOR.PATCH with optional
29
35
  * pre-release suffix; rejects free-form strings, whitespace, and typos like
30
36
  * "client v3.1.6". Defense-in-depth — the field is observability-only.
37
+ *
38
+ * mode (Phase 17 OBS-01): "observer" registers a passive watcher that
39
+ * receives WS frames and remains targetable but never auto-replies. "agent"
40
+ * (default when absent) is the standard CC peer behavior. Pre-3.2.0 clients
41
+ * omit the field entirely; pre-3.2.0 servers reject it (strict schema).
31
42
  */
32
43
  export const ExtendedRegisterPeerRequestSchema = z
33
44
  .object({
34
45
  peerId: z.string().min(1),
35
46
  cwd: z.string(),
36
47
  label: z.string(),
37
- platform: z.enum(["cc", "slack", "gchat", "web"]).optional(),
48
+ platform: z.enum(["cc", "codex", "slack", "gchat", "web"]).optional(),
38
49
  type: z.enum(["agent", "human"]).optional(),
39
50
  transport: z.enum(["ws", "slack-bot", "gchat-bot", "websocket"]).optional(),
40
51
  platformIdentity: z.record(z.string(), z.string()).optional(),
@@ -43,6 +54,7 @@ export const ExtendedRegisterPeerRequestSchema = z
43
54
  .regex(/^\d+\.\d+\.\d+(?:-[a-z0-9.-]+)?$/, "clientVersion must be loose semver (e.g. 3.1.7 or 3.1.7-rc1)")
44
55
  .max(64)
45
56
  .optional(),
57
+ mode: z.enum(["observer", "agent"]).optional(),
46
58
  })
47
59
  .strict();
48
60
  /**
@@ -64,7 +76,7 @@ function verifySessionMatch(pathSessionId, authSessionId) {
64
76
  * All routes require valid Bearer token authentication.
65
77
  * The sub-router is mounted at /api/sessions via app.route().
66
78
  */
67
- export function createPeerRoutes(sessionStore, authService, connectionManager) {
79
+ export function createPeerRoutes(sessionStore, authService, connectionManager, statsService) {
68
80
  const peers = new Hono();
69
81
  // Auth middleware applied per-route (not wildcard) to avoid intercepting
70
82
  // unauthenticated session routes mounted at the same /api/sessions prefix.
@@ -82,7 +94,7 @@ export function createPeerRoutes(sessionStore, authService, connectionManager) {
82
94
  const pathSessionId = c.req.param("sessionId");
83
95
  const authSessionId = c.get("sessionId");
84
96
  verifySessionMatch(pathSessionId, authSessionId);
85
- const { peerId, cwd, label, platform, type: peerType, transport, platformIdentity, clientVersion, } = c.req.valid("json");
97
+ const { peerId, cwd, label, platform, type: peerType, transport, platformIdentity, clientVersion, mode, } = c.req.valid("json");
86
98
  const now = new Date().toISOString();
87
99
  const peerInfo = {
88
100
  peerId,
@@ -102,6 +114,12 @@ export function createPeerRoutes(sessionStore, authService, connectionManager) {
102
114
  if (clientVersion !== undefined) {
103
115
  peerInfo.clientVersion = clientVersion;
104
116
  }
117
+ // Same conditional-set pattern for the 3.2.0 mode field (Phase 17 OBS-01).
118
+ // Pre-3.2.0 clients omit the field; we MUST NOT serialize { mode: undefined }
119
+ // into the session state — list-peers consumers expect absent === "agent".
120
+ if (mode !== undefined) {
121
+ peerInfo.mode = mode;
122
+ }
105
123
  await sessionStore.updateSession(authSessionId, (state) => {
106
124
  // Add peer to session
107
125
  state.peers[peerId] = peerInfo;
@@ -114,6 +132,10 @@ export function createPeerRoutes(sessionStore, authService, connectionManager) {
114
132
  state.peerEvents.push(event);
115
133
  return state;
116
134
  });
135
+ // Increment cumulative platform registration counter (fire-and-forget)
136
+ if (statsService) {
137
+ statsService.incrementPeerRegistration(platform ?? "cc").catch(console.error);
138
+ }
117
139
  // Broadcast peer_connected event to connected WebSocket peers (fire-and-forget)
118
140
  if (connectionManager) {
119
141
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"peers.js","sourceRoot":"","sources":["../../src/routes/peers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peers.js","sourceRoot":"","sources":["../../src/routes/peers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/routes/ui.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAY3E,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CA4MjE"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/routes/ui.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAY3E,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CA8MjE"}
package/dist/routes/ui.js CHANGED
@@ -65,7 +65,8 @@ export function createUiRoutes(deps) {
65
65
  // GET /admin/ or /admin -- Dashboard overview
66
66
  admin.get("/", async (_c) => {
67
67
  const stats = statsService.getStats();
68
- return _c.html(_jsx(AdminDashboard, { stats: stats }));
68
+ const cumulative = statsService.getCumulativeStats();
69
+ return _c.html(_jsx(AdminDashboard, { stats: stats, cumulative: cumulative }));
69
70
  });
70
71
  // GET /admin/sessions -- Session list
71
72
  admin.get("/sessions", async (c) => {
@@ -82,6 +83,7 @@ export function createUiRoutes(deps) {
82
83
  peerCount: Object.keys(session.peers).length,
83
84
  messageCount: session.messages.length,
84
85
  connectedPeerIds: connectionManager.getConnectedPeerIds(id),
86
+ peers: session.peers,
85
87
  });
86
88
  }
87
89
  }