@edspencer/paddock 0.65.0 → 0.66.1

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 (100) hide show
  1. package/README.md +3 -3
  2. package/package.json +1 -1
  3. package/packages/server/dist/app.d.ts +8 -0
  4. package/packages/server/dist/app.js +4 -1
  5. package/packages/server/dist/cli/args.d.ts +4 -4
  6. package/packages/server/dist/cli/args.js +5 -5
  7. package/packages/server/dist/cli/paddock.js +1 -1
  8. package/packages/server/dist/config.d.ts +7 -0
  9. package/packages/server/dist/config.js +9 -1
  10. package/packages/server/dist/herdctl.d.ts +89 -0
  11. package/packages/server/dist/herdctl.js +169 -2
  12. package/packages/server/dist/instance-config.js +12 -1
  13. package/packages/server/dist/projects.d.ts +11 -0
  14. package/packages/server/dist/projects.js +40 -2
  15. package/packages/server/dist/queued-message.d.ts +57 -0
  16. package/packages/server/dist/queued-message.js +135 -1
  17. package/packages/server/dist/routes/chats.js +77 -6
  18. package/packages/server/dist/routes/projects.js +22 -2
  19. package/packages/server/dist/schema-version.d.ts +111 -0
  20. package/packages/server/dist/schema-version.js +142 -0
  21. package/packages/server/dist/session-hub.d.ts +69 -1
  22. package/packages/server/dist/session-hub.js +73 -1
  23. package/packages/server/dist/subagents.d.ts +65 -0
  24. package/packages/server/dist/subagents.js +159 -19
  25. package/packages/server/dist/tooldetails.d.ts +10 -4
  26. package/packages/server/dist/tooldetails.js +23 -6
  27. package/packages/server/dist/trusted-proxy.js +1 -1
  28. package/packages/server/dist/turn-interlock.d.ts +101 -0
  29. package/packages/server/dist/turn-interlock.js +84 -0
  30. package/packages/server/dist/ws-protocol.d.ts +76 -5
  31. package/packages/server/dist/ws-protocol.js +2 -0
  32. package/packages/server/dist/ws.d.ts +0 -52
  33. package/packages/server/dist/ws.js +472 -119
  34. package/packages/server/package.json +1 -1
  35. package/packages/web/dist/assets/InstanceConfigPage-1BzMnJPo.js +2 -0
  36. package/packages/web/dist/assets/{MarkdownRenderer-Ri1LwAUN.js → MarkdownRenderer-CRQP3Cfe.js} +1 -1
  37. package/packages/web/dist/assets/{ProjectRedirect-Dze5H8Xy.js → ProjectRedirect-Dd3h5V8h.js} +1 -1
  38. package/packages/web/dist/assets/ProjectView-BRk6l152.js +13 -0
  39. package/packages/web/dist/assets/{ProjectsGrid-BidsM7ah.js → ProjectsGrid-BaUE8zaF.js} +1 -1
  40. package/packages/web/dist/assets/{arc-eQ3ryE9c.js → arc-DqMSW0As.js} +1 -1
  41. package/packages/web/dist/assets/{architectureDiagram-3BPJPVTR-Dc6Tj2Ai.js → architectureDiagram-3BPJPVTR-CNkQD1jU.js} +1 -1
  42. package/packages/web/dist/assets/{blockDiagram-GPEHLZMM-DBX5pma_.js → blockDiagram-GPEHLZMM-BCMiOmt6.js} +1 -1
  43. package/packages/web/dist/assets/{c4Diagram-AAUBKEIU-CnWrtTpa.js → c4Diagram-AAUBKEIU-CU2soCji.js} +1 -1
  44. package/packages/web/dist/assets/channel-Ynyq4GPh.js +2 -0
  45. package/packages/web/dist/assets/{chunk-2J33WTMH-2qmLvtsr.js → chunk-2J33WTMH-nKhlJNTt.js} +1 -1
  46. package/packages/web/dist/assets/{chunk-4BX2VUAB-Dn-LUDMV.js → chunk-4BX2VUAB-YRTZj9zI.js} +1 -1
  47. package/packages/web/dist/assets/{chunk-55IACEB6-DB0augUY.js → chunk-55IACEB6-HO60VE45.js} +1 -1
  48. package/packages/web/dist/assets/{chunk-727SXJPM-BPQQM0i8.js → chunk-727SXJPM-WZJH-boe.js} +1 -1
  49. package/packages/web/dist/assets/{chunk-AQP2D5EJ-DOhfwA-x.js → chunk-AQP2D5EJ-PvDC7gYB.js} +1 -1
  50. package/packages/web/dist/assets/{chunk-FMBD7UC4-CatHHdFD.js → chunk-FMBD7UC4-BNRMTplH.js} +1 -1
  51. package/packages/web/dist/assets/{chunk-ND2GUHAM-B645aAlG.js → chunk-ND2GUHAM-2Q2ei8TR.js} +1 -1
  52. package/packages/web/dist/assets/{chunk-QZHKN3VN-D1fAaPSZ.js → chunk-QZHKN3VN-CG9VV7M6.js} +1 -1
  53. package/packages/web/dist/assets/classDiagram-4FO5ZUOK-1Pp25wwy.js +2 -0
  54. package/packages/web/dist/assets/classDiagram-v2-Q7XG4LA2-1Pp25wwy.js +2 -0
  55. package/packages/web/dist/assets/{core-B4t7D8Om.js → core-DwSEw_oE.js} +1 -1
  56. package/packages/web/dist/assets/{cose-bilkent-S5V4N54A-BLdKDAwa.js → cose-bilkent-S5V4N54A-BlMrBI7K.js} +1 -1
  57. package/packages/web/dist/assets/{dagre-BM42HDAG-CbTbTVKv.js → dagre-BM42HDAG-tNoaleNU.js} +1 -1
  58. package/packages/web/dist/assets/{diagram-2AECGRRQ-CorSS29_.js → diagram-2AECGRRQ-DRVCTpHL.js} +1 -1
  59. package/packages/web/dist/assets/{diagram-5GNKFQAL-PLKivts0.js → diagram-5GNKFQAL-BdS-96WV.js} +1 -1
  60. package/packages/web/dist/assets/{diagram-KO2AKTUF-CUSIBacZ.js → diagram-KO2AKTUF-Dv1yxz3s.js} +1 -1
  61. package/packages/web/dist/assets/{diagram-LMA3HP47-CZ69mAZs.js → diagram-LMA3HP47-BNXgifuS.js} +1 -1
  62. package/packages/web/dist/assets/{diagram-OG6HWLK6-Cmf042Rh.js → diagram-OG6HWLK6-wlO0bxwP.js} +1 -1
  63. package/packages/web/dist/assets/{erDiagram-TEJ5UH35-DyIKGj6e.js → erDiagram-TEJ5UH35-ChoppAEq.js} +1 -1
  64. package/packages/web/dist/assets/{flowDiagram-I6XJVG4X-B79pLdLD.js → flowDiagram-I6XJVG4X-C__aYyei.js} +1 -1
  65. package/packages/web/dist/assets/{format-C5nhFL8q.js → format-u-YtEZFd.js} +1 -1
  66. package/packages/web/dist/assets/{ganttDiagram-6RSMTGT7-BFTR_oNA.js → ganttDiagram-6RSMTGT7-CjRe8foW.js} +1 -1
  67. package/packages/web/dist/assets/{gitGraphDiagram-PVQCEYII-DdGUlJxS.js → gitGraphDiagram-PVQCEYII-BGDQjiWq.js} +1 -1
  68. package/packages/web/dist/assets/index-B3K5nsLe.css +1 -0
  69. package/packages/web/dist/assets/index-Cc5bQxZk.js +71 -0
  70. package/packages/web/dist/assets/{infoDiagram-5YYISTIA-B80FyUOy.js → infoDiagram-5YYISTIA-BP-JaX-8.js} +1 -1
  71. package/packages/web/dist/assets/{ishikawaDiagram-YF4QCWOH-_wRlphn9.js → ishikawaDiagram-YF4QCWOH-YnsAJBvC.js} +1 -1
  72. package/packages/web/dist/assets/{journeyDiagram-JHISSGLW-qu4yvjW8.js → journeyDiagram-JHISSGLW-BM6JWTV9.js} +1 -1
  73. package/packages/web/dist/assets/{kanban-definition-UN3LZRKU-D2DEUp2-.js → kanban-definition-UN3LZRKU-gR2O0IaL.js} +1 -1
  74. package/packages/web/dist/assets/{linear-D-CLRUEW.js → linear-Dolq_eLR.js} +1 -1
  75. package/packages/web/dist/assets/{mermaid.core-DdihBJl4.js → mermaid.core-D1T_GQW7.js} +4 -4
  76. package/packages/web/dist/assets/{mindmap-definition-RKZ34NQL-BEh_TDBf.js → mindmap-definition-RKZ34NQL-C3bzIyLZ.js} +1 -1
  77. package/packages/web/dist/assets/{pieDiagram-4H26LBE5-BbrmLVaZ.js → pieDiagram-4H26LBE5-BrZ3ANGf.js} +1 -1
  78. package/packages/web/dist/assets/{quadrantDiagram-W4KKPZXB-DfVuygAv.js → quadrantDiagram-W4KKPZXB-BvLCHAEi.js} +1 -1
  79. package/packages/web/dist/assets/queued-DGmoZW59.js +2 -0
  80. package/packages/web/dist/assets/{requirementDiagram-4Y6WPE33-BHp2QpZt.js → requirementDiagram-4Y6WPE33-CCzXAeaZ.js} +1 -1
  81. package/packages/web/dist/assets/{sankeyDiagram-5OEKKPKP-D2G6lRMY.js → sankeyDiagram-5OEKKPKP-2Gf-ERTg.js} +1 -1
  82. package/packages/web/dist/assets/{sequenceDiagram-3UESZ5HK-Dj-jzR-c.js → sequenceDiagram-3UESZ5HK-DMjDe28d.js} +1 -1
  83. package/packages/web/dist/assets/{stateDiagram-AJRCARHV-C5D6bT13.js → stateDiagram-AJRCARHV-CENtj5dw.js} +1 -1
  84. package/packages/web/dist/assets/stateDiagram-v2-BHNVJYJU-F7o6JfFe.js +2 -0
  85. package/packages/web/dist/assets/{timeline-definition-PNZ67QCA-DE4gGjhP.js → timeline-definition-PNZ67QCA-BW4gCpBB.js} +1 -1
  86. package/packages/web/dist/assets/{vennDiagram-CIIHVFJN-C9QNrl92.js → vennDiagram-CIIHVFJN-CiIuqcT9.js} +1 -1
  87. package/packages/web/dist/assets/{wardley-L42UT6IY-U2fSGy-d.js → wardley-L42UT6IY-BQ1BPr5R.js} +1 -1
  88. package/packages/web/dist/assets/{wardleyDiagram-YWT4CUSO-B9RhObdH.js → wardleyDiagram-YWT4CUSO-DBq9Ailv.js} +1 -1
  89. package/packages/web/dist/assets/{xychartDiagram-2RQKCTM6-BnlPrtQ9.js → xychartDiagram-2RQKCTM6-D24VDECy.js} +1 -1
  90. package/packages/web/dist/index.html +2 -2
  91. package/packages/web/dist/sw.js +1 -1
  92. package/packages/web/dist/assets/InstanceConfigPage-DcprTH2W.js +0 -2
  93. package/packages/web/dist/assets/ProjectView-PrA8purE.js +0 -13
  94. package/packages/web/dist/assets/channel-B4sED4OP.js +0 -2
  95. package/packages/web/dist/assets/classDiagram-4FO5ZUOK-BlVeHFir.js +0 -2
  96. package/packages/web/dist/assets/classDiagram-v2-Q7XG4LA2-BlVeHFir.js +0 -2
  97. package/packages/web/dist/assets/index-B6etJCHf.css +0 -1
  98. package/packages/web/dist/assets/index-DVSsta3B.js +0 -71
  99. package/packages/web/dist/assets/queued-LamEU0GH.js +0 -2
  100. package/packages/web/dist/assets/stateDiagram-v2-BHNVJYJU-C8NDOqTq.js +0 -2
@@ -1,55 +1,3 @@
1
- /**
2
- * WebSocket chat transport.
3
- *
4
- * Protocol (the contract the frontend agent matches):
5
- *
6
- * client -> server:
7
- * { type: "chat:send", payload: {
8
- * projectSlug: string, // workspace key: a project slug, or "" for the root
9
- * sessionId: string | null, // resume an existing chat, or null = new
10
- * message: string,
11
- * preloadContext?: boolean, // new chat: prepend the project OVERVIEW.md
12
- * model?: string, // per-chat model override (a known model id)
13
- * } }
14
- * { type: "chat:cancel", payload: { jobId } } // optional: stop a running turn
15
- * { type: "ping" }
16
- *
17
- * server -> client (all carry projectSlug + sessionId + jobId for routing):
18
- * { type: "chat:response", payload: { projectSlug, sessionId, jobId, chunk } }
19
- * { type: "chat:tool_call", payload: { projectSlug, sessionId, jobId,
20
- * toolName, inputSummary, output,
21
- * isError, durationMs } }
22
- * { type: "chat:message_boundary", payload: { projectSlug, sessionId, jobId } }
23
- * { type: "chat:complete", payload: { projectSlug, sessionId, jobId, success, error?,
24
- * model?, usage? } }
25
- * // model: the model the turn ran on (lastModel ?? effectiveModel).
26
- * // usage: { inputTokens, outputTokens, cacheReadTokens,
27
- * // cacheCreationTokens, contextTokens, contextLimit } — the
28
- * // LAST per-turn usage observed; omitted (with model) if none.
29
- * // contextTokens = input + cacheRead + cacheCreation;
30
- * // contextLimit = getContextLimit(model). Stale-by-one-turn
31
- * // by design (it reflects the just-completed turn's input).
32
- * { type: "chat:injected", payload: { projectSlug, sessionId, jobId,
33
- * sender, content, timestamp } }
34
- * // A machine-injected user turn (issue #290 Part 2): another chat
35
- * // send_message'd / a schedule fired into this session. Emitted so a
36
- * // client already viewing the recipient chat renders the injected user
37
- * // bubble LIVE (with its sender attribution) instead of only seeing the
38
- * // assistant reply and needing a refresh. `sender` is the MessageSender.
39
- * { type: "chat:error", payload: { projectSlug, error } }
40
- * { type: "pong" }
41
- *
42
- * Streaming is wired for real via HerdctlService.chat()'s onMessage callback
43
- * (the public trigger API supports it). The SDKMessage -> chat-event translation
44
- * (assistant text deltas, message boundaries, and paired tool_use -> tool_result
45
- * calls enriched with input summaries + wall-clock durations) is done by
46
- * @herdctl/chat's `createSDKMessageHandler` — the shared, transport-agnostic
47
- * translator every herdctl chat surface uses — so paddock no longer reimplements
48
- * it (and as of @herdctl/chat@0.4.1 it pairs CLI tool results correctly, so the
49
- * prior `normalizeForTranslator` shim is gone). We compose it with a tiny wrapper
50
- * that also captures, from each raw SDK message, the session id and the per-turn
51
- * usage + model (the translator only exposes text/boundary/tool events).
52
- */
53
1
  import type { WebSocket } from "@fastify/websocket";
54
2
  export * from "./ws-protocol.js";
55
3
  import type { ChatHandlerDeps } from "./ws-context.js";