@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.
- package/README.md +3 -3
- package/package.json +1 -1
- package/packages/server/dist/app.d.ts +8 -0
- package/packages/server/dist/app.js +4 -1
- package/packages/server/dist/cli/args.d.ts +4 -4
- package/packages/server/dist/cli/args.js +5 -5
- package/packages/server/dist/cli/paddock.js +1 -1
- package/packages/server/dist/config.d.ts +7 -0
- package/packages/server/dist/config.js +9 -1
- package/packages/server/dist/herdctl.d.ts +89 -0
- package/packages/server/dist/herdctl.js +169 -2
- package/packages/server/dist/instance-config.js +12 -1
- package/packages/server/dist/projects.d.ts +11 -0
- package/packages/server/dist/projects.js +40 -2
- package/packages/server/dist/queued-message.d.ts +57 -0
- package/packages/server/dist/queued-message.js +135 -1
- package/packages/server/dist/routes/chats.js +77 -6
- package/packages/server/dist/routes/projects.js +22 -2
- package/packages/server/dist/schema-version.d.ts +111 -0
- package/packages/server/dist/schema-version.js +142 -0
- package/packages/server/dist/session-hub.d.ts +69 -1
- package/packages/server/dist/session-hub.js +73 -1
- package/packages/server/dist/subagents.d.ts +65 -0
- package/packages/server/dist/subagents.js +159 -19
- package/packages/server/dist/tooldetails.d.ts +10 -4
- package/packages/server/dist/tooldetails.js +23 -6
- package/packages/server/dist/trusted-proxy.js +1 -1
- package/packages/server/dist/turn-interlock.d.ts +101 -0
- package/packages/server/dist/turn-interlock.js +84 -0
- package/packages/server/dist/ws-protocol.d.ts +76 -5
- package/packages/server/dist/ws-protocol.js +2 -0
- package/packages/server/dist/ws.d.ts +0 -52
- package/packages/server/dist/ws.js +472 -119
- package/packages/server/package.json +1 -1
- package/packages/web/dist/assets/InstanceConfigPage-1BzMnJPo.js +2 -0
- package/packages/web/dist/assets/{MarkdownRenderer-Ri1LwAUN.js → MarkdownRenderer-CRQP3Cfe.js} +1 -1
- package/packages/web/dist/assets/{ProjectRedirect-Dze5H8Xy.js → ProjectRedirect-Dd3h5V8h.js} +1 -1
- package/packages/web/dist/assets/ProjectView-BRk6l152.js +13 -0
- package/packages/web/dist/assets/{ProjectsGrid-BidsM7ah.js → ProjectsGrid-BaUE8zaF.js} +1 -1
- package/packages/web/dist/assets/{arc-eQ3ryE9c.js → arc-DqMSW0As.js} +1 -1
- package/packages/web/dist/assets/{architectureDiagram-3BPJPVTR-Dc6Tj2Ai.js → architectureDiagram-3BPJPVTR-CNkQD1jU.js} +1 -1
- package/packages/web/dist/assets/{blockDiagram-GPEHLZMM-DBX5pma_.js → blockDiagram-GPEHLZMM-BCMiOmt6.js} +1 -1
- package/packages/web/dist/assets/{c4Diagram-AAUBKEIU-CnWrtTpa.js → c4Diagram-AAUBKEIU-CU2soCji.js} +1 -1
- package/packages/web/dist/assets/channel-Ynyq4GPh.js +2 -0
- package/packages/web/dist/assets/{chunk-2J33WTMH-2qmLvtsr.js → chunk-2J33WTMH-nKhlJNTt.js} +1 -1
- package/packages/web/dist/assets/{chunk-4BX2VUAB-Dn-LUDMV.js → chunk-4BX2VUAB-YRTZj9zI.js} +1 -1
- package/packages/web/dist/assets/{chunk-55IACEB6-DB0augUY.js → chunk-55IACEB6-HO60VE45.js} +1 -1
- package/packages/web/dist/assets/{chunk-727SXJPM-BPQQM0i8.js → chunk-727SXJPM-WZJH-boe.js} +1 -1
- package/packages/web/dist/assets/{chunk-AQP2D5EJ-DOhfwA-x.js → chunk-AQP2D5EJ-PvDC7gYB.js} +1 -1
- package/packages/web/dist/assets/{chunk-FMBD7UC4-CatHHdFD.js → chunk-FMBD7UC4-BNRMTplH.js} +1 -1
- package/packages/web/dist/assets/{chunk-ND2GUHAM-B645aAlG.js → chunk-ND2GUHAM-2Q2ei8TR.js} +1 -1
- package/packages/web/dist/assets/{chunk-QZHKN3VN-D1fAaPSZ.js → chunk-QZHKN3VN-CG9VV7M6.js} +1 -1
- package/packages/web/dist/assets/classDiagram-4FO5ZUOK-1Pp25wwy.js +2 -0
- package/packages/web/dist/assets/classDiagram-v2-Q7XG4LA2-1Pp25wwy.js +2 -0
- package/packages/web/dist/assets/{core-B4t7D8Om.js → core-DwSEw_oE.js} +1 -1
- package/packages/web/dist/assets/{cose-bilkent-S5V4N54A-BLdKDAwa.js → cose-bilkent-S5V4N54A-BlMrBI7K.js} +1 -1
- package/packages/web/dist/assets/{dagre-BM42HDAG-CbTbTVKv.js → dagre-BM42HDAG-tNoaleNU.js} +1 -1
- package/packages/web/dist/assets/{diagram-2AECGRRQ-CorSS29_.js → diagram-2AECGRRQ-DRVCTpHL.js} +1 -1
- package/packages/web/dist/assets/{diagram-5GNKFQAL-PLKivts0.js → diagram-5GNKFQAL-BdS-96WV.js} +1 -1
- package/packages/web/dist/assets/{diagram-KO2AKTUF-CUSIBacZ.js → diagram-KO2AKTUF-Dv1yxz3s.js} +1 -1
- package/packages/web/dist/assets/{diagram-LMA3HP47-CZ69mAZs.js → diagram-LMA3HP47-BNXgifuS.js} +1 -1
- package/packages/web/dist/assets/{diagram-OG6HWLK6-Cmf042Rh.js → diagram-OG6HWLK6-wlO0bxwP.js} +1 -1
- package/packages/web/dist/assets/{erDiagram-TEJ5UH35-DyIKGj6e.js → erDiagram-TEJ5UH35-ChoppAEq.js} +1 -1
- package/packages/web/dist/assets/{flowDiagram-I6XJVG4X-B79pLdLD.js → flowDiagram-I6XJVG4X-C__aYyei.js} +1 -1
- package/packages/web/dist/assets/{format-C5nhFL8q.js → format-u-YtEZFd.js} +1 -1
- package/packages/web/dist/assets/{ganttDiagram-6RSMTGT7-BFTR_oNA.js → ganttDiagram-6RSMTGT7-CjRe8foW.js} +1 -1
- package/packages/web/dist/assets/{gitGraphDiagram-PVQCEYII-DdGUlJxS.js → gitGraphDiagram-PVQCEYII-BGDQjiWq.js} +1 -1
- package/packages/web/dist/assets/index-B3K5nsLe.css +1 -0
- package/packages/web/dist/assets/index-Cc5bQxZk.js +71 -0
- package/packages/web/dist/assets/{infoDiagram-5YYISTIA-B80FyUOy.js → infoDiagram-5YYISTIA-BP-JaX-8.js} +1 -1
- package/packages/web/dist/assets/{ishikawaDiagram-YF4QCWOH-_wRlphn9.js → ishikawaDiagram-YF4QCWOH-YnsAJBvC.js} +1 -1
- package/packages/web/dist/assets/{journeyDiagram-JHISSGLW-qu4yvjW8.js → journeyDiagram-JHISSGLW-BM6JWTV9.js} +1 -1
- package/packages/web/dist/assets/{kanban-definition-UN3LZRKU-D2DEUp2-.js → kanban-definition-UN3LZRKU-gR2O0IaL.js} +1 -1
- package/packages/web/dist/assets/{linear-D-CLRUEW.js → linear-Dolq_eLR.js} +1 -1
- package/packages/web/dist/assets/{mermaid.core-DdihBJl4.js → mermaid.core-D1T_GQW7.js} +4 -4
- package/packages/web/dist/assets/{mindmap-definition-RKZ34NQL-BEh_TDBf.js → mindmap-definition-RKZ34NQL-C3bzIyLZ.js} +1 -1
- package/packages/web/dist/assets/{pieDiagram-4H26LBE5-BbrmLVaZ.js → pieDiagram-4H26LBE5-BrZ3ANGf.js} +1 -1
- package/packages/web/dist/assets/{quadrantDiagram-W4KKPZXB-DfVuygAv.js → quadrantDiagram-W4KKPZXB-BvLCHAEi.js} +1 -1
- package/packages/web/dist/assets/queued-DGmoZW59.js +2 -0
- package/packages/web/dist/assets/{requirementDiagram-4Y6WPE33-BHp2QpZt.js → requirementDiagram-4Y6WPE33-CCzXAeaZ.js} +1 -1
- package/packages/web/dist/assets/{sankeyDiagram-5OEKKPKP-D2G6lRMY.js → sankeyDiagram-5OEKKPKP-2Gf-ERTg.js} +1 -1
- package/packages/web/dist/assets/{sequenceDiagram-3UESZ5HK-Dj-jzR-c.js → sequenceDiagram-3UESZ5HK-DMjDe28d.js} +1 -1
- package/packages/web/dist/assets/{stateDiagram-AJRCARHV-C5D6bT13.js → stateDiagram-AJRCARHV-CENtj5dw.js} +1 -1
- package/packages/web/dist/assets/stateDiagram-v2-BHNVJYJU-F7o6JfFe.js +2 -0
- package/packages/web/dist/assets/{timeline-definition-PNZ67QCA-DE4gGjhP.js → timeline-definition-PNZ67QCA-BW4gCpBB.js} +1 -1
- package/packages/web/dist/assets/{vennDiagram-CIIHVFJN-C9QNrl92.js → vennDiagram-CIIHVFJN-CiIuqcT9.js} +1 -1
- package/packages/web/dist/assets/{wardley-L42UT6IY-U2fSGy-d.js → wardley-L42UT6IY-BQ1BPr5R.js} +1 -1
- package/packages/web/dist/assets/{wardleyDiagram-YWT4CUSO-B9RhObdH.js → wardleyDiagram-YWT4CUSO-DBq9Ailv.js} +1 -1
- package/packages/web/dist/assets/{xychartDiagram-2RQKCTM6-BnlPrtQ9.js → xychartDiagram-2RQKCTM6-D24VDECy.js} +1 -1
- package/packages/web/dist/index.html +2 -2
- package/packages/web/dist/sw.js +1 -1
- package/packages/web/dist/assets/InstanceConfigPage-DcprTH2W.js +0 -2
- package/packages/web/dist/assets/ProjectView-PrA8purE.js +0 -13
- package/packages/web/dist/assets/channel-B4sED4OP.js +0 -2
- package/packages/web/dist/assets/classDiagram-4FO5ZUOK-BlVeHFir.js +0 -2
- package/packages/web/dist/assets/classDiagram-v2-Q7XG4LA2-BlVeHFir.js +0 -2
- package/packages/web/dist/assets/index-B6etJCHf.css +0 -1
- package/packages/web/dist/assets/index-DVSsta3B.js +0 -71
- package/packages/web/dist/assets/queued-LamEU0GH.js +0 -2
- 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";
|