factory-factory 0.2.3 → 0.2.5
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 +2 -2
- package/dist/client/assets/{_basePickBy-ClLqD23W.js → _basePickBy-BXw54oMQ.js} +1 -1
- package/dist/client/assets/{_baseUniq-DVVSJ599.js → _baseUniq-_2-lN-JZ.js} +1 -1
- package/dist/client/assets/{arc-DCPJ-atk.js → arc-DaCKgXo4.js} +1 -1
- package/dist/client/assets/{architectureDiagram-VXUJARFQ-dvBXEdHJ.js → architectureDiagram-VXUJARFQ-D5dlDvyJ.js} +1 -1
- package/dist/client/assets/{blockDiagram-VD42YOAC-BnlsKN_S.js → blockDiagram-VD42YOAC-CEAiD2S_.js} +1 -1
- package/dist/client/assets/{c4Diagram-YG6GDRKO-AMG1QOcD.js → c4Diagram-YG6GDRKO-DTNRx2b5.js} +1 -1
- package/dist/client/assets/channel-BusoDFL5.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-CvbHsudf.js → chunk-4BX2VUAB-yvp0WNZ0.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CtFa9sig.js → chunk-55IACEB6-Cse3ExNd.js} +1 -1
- package/dist/client/assets/{chunk-B4BG7PRW-sjqCuFZK.js → chunk-B4BG7PRW-Bl2GpPLn.js} +1 -1
- package/dist/client/assets/{chunk-DI55MBZ5-vsqDRqHG.js → chunk-DI55MBZ5-CV5Cqkss.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-lEVbnFWf.js → chunk-FMBD7UC4-CP3yjlO6.js} +1 -1
- package/dist/client/assets/{chunk-QN33PNHL-laYvT_kS.js → chunk-QN33PNHL-DUdJaEPB.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-Cs-LwO3R.js → chunk-QZHKN3VN-DYTUnPIc.js} +1 -1
- package/dist/client/assets/{chunk-TZMSLE5B-GQQ1aq3v.js → chunk-TZMSLE5B-CtWiqR24.js} +1 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-C3RMRasv.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-C3RMRasv.js +1 -0
- package/dist/client/assets/clone-D6B-nWvg.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-Y_FrS_Az.js → cose-bilkent-S5V4N54A-B67RdhOB.js} +1 -1
- package/dist/client/assets/{dagre-6UL2VRFP-DQIwKP-6.js → dagre-6UL2VRFP-D9u_oxJL.js} +1 -1
- package/dist/client/assets/{diagram-PSM6KHXK-jFQ4tsW4.js → diagram-PSM6KHXK-DOWfPnpa.js} +1 -1
- package/dist/client/assets/{diagram-QEK2KX5R-0kFBcfBt.js → diagram-QEK2KX5R-CqJwZbAA.js} +1 -1
- package/dist/client/assets/{diagram-S2PKOQOG-Cx_fwFHF.js → diagram-S2PKOQOG-D0ri9ztm.js} +1 -1
- package/dist/client/assets/{erDiagram-Q2GNP2WA-CUgHzWnq.js → erDiagram-Q2GNP2WA-0cRKPUY7.js} +1 -1
- package/dist/client/assets/{flowDiagram-NV44I4VS-DBPSyGKN.js → flowDiagram-NV44I4VS-Cj_5-ww1.js} +1 -1
- package/dist/client/assets/{ganttDiagram-JELNMOA3-BPAxxsuh.js → ganttDiagram-JELNMOA3-Cwm2arni.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-NY62KEGX-BHLuayx7.js → gitGraphDiagram-NY62KEGX-DKyLuO26.js} +1 -1
- package/dist/client/assets/{graph-hSnQ7U0p.js → graph-BhRkLhV1.js} +1 -1
- package/dist/client/assets/{index-CwTQdVJd.js → index-1HR_eYGL.js} +220 -182
- package/dist/client/assets/index-DHENAn70.css +1 -0
- package/dist/client/assets/{infoDiagram-WHAUD3N6-DqA4KMDO.js → infoDiagram-WHAUD3N6-DuzPbELj.js} +1 -1
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-DlVpIfsm.js → journeyDiagram-XKPGCS4Q-BfearpNr.js} +1 -1
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-Bn7zJ_Qs.js → kanban-definition-3W4ZIXB7-R5KMtAj4.js} +1 -1
- package/dist/client/assets/{layout-BgfjjiLB.js → layout-B-tL36G2.js} +1 -1
- package/dist/client/assets/{linear-pgYyXM7v.js → linear-CvIBiHN-.js} +1 -1
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-CU2bFQ_O.js → mindmap-definition-VGOIOE7T-CHYN0wBz.js} +1 -1
- package/dist/client/assets/{pieDiagram-ADFJNKIX-CdkFaWPc.js → pieDiagram-ADFJNKIX-LkA8WwD-.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-gp1mJ5Yc.js → quadrantDiagram-AYHSOK5B-B5s8Qc9j.js} +1 -1
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-BO59auEv.js → requirementDiagram-UZGBJVZJ-BMLpjBJA.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-TZEHDZUN-BrZ8rlwL.js → sankeyDiagram-TZEHDZUN-BIj9RGlp.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WL72ISMW-LojphsDR.js → sequenceDiagram-WL72ISMW-uGM-Jh_O.js} +1 -1
- package/dist/client/assets/{stateDiagram-FKZM4ZOC-8bPGJ9iG.js → stateDiagram-FKZM4ZOC-CQQhnUok.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BUJPEM7D.js +1 -0
- package/dist/client/assets/{terminal-instance-YWv2YE4B.js → terminal-instance-DpK3PfW4.js} +1 -1
- package/dist/client/assets/{timeline-definition-IT6M3QCI-1mTwPI08.js → timeline-definition-IT6M3QCI-BusXMYfI.js} +1 -1
- package/dist/client/assets/{treemap-KMMF4GRG-VwmVQuy1.js → treemap-KMMF4GRG-XF3-w8dz.js} +1 -1
- package/dist/client/assets/{xychartDiagram-PRI3JC2R-zPQ-EL8y.js → xychartDiagram-PRI3JC2R-DhKTXxb3.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/prisma/generated/enums.d.ts +0 -1
- package/dist/prisma/generated/enums.d.ts.map +1 -1
- package/dist/prisma/generated/enums.js +0 -1
- package/dist/prisma/generated/enums.js.map +1 -1
- package/dist/prisma/generated/internal/class.js +2 -2
- package/dist/prisma/generated/internal/class.js.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespace.d.ts +0 -1
- package/dist/prisma/generated/internal/prismaNamespace.d.ts.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespace.js +0 -1
- package/dist/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts +0 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.js +0 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/prisma/generated/models/UserSettings.d.ts +1 -29
- package/dist/prisma/generated/models/UserSettings.d.ts.map +1 -1
- package/dist/prompts/ratchet/dispatch.md +31 -0
- package/dist/prompts/workflows/ratchet.md +22 -36
- package/dist/src/backend/app-context.d.ts +4 -0
- package/dist/src/backend/app-context.d.ts.map +1 -1
- package/dist/src/backend/app-context.js +4 -0
- package/dist/src/backend/app-context.js.map +1 -1
- package/dist/src/backend/claude/protocol.d.ts +3 -0
- package/dist/src/backend/claude/protocol.d.ts.map +1 -1
- package/dist/src/backend/claude/protocol.js +63 -10
- package/dist/src/backend/claude/protocol.js.map +1 -1
- package/dist/src/backend/claude/protocol.test.js +188 -0
- package/dist/src/backend/claude/protocol.test.js.map +1 -1
- package/dist/src/backend/claude/registry.d.ts.map +1 -1
- package/dist/src/backend/claude/registry.js +12 -1
- package/dist/src/backend/claude/registry.js.map +1 -1
- package/dist/src/backend/claude/session.d.ts.map +1 -1
- package/dist/src/backend/claude/session.js +40 -6
- package/dist/src/backend/claude/session.js.map +1 -1
- package/dist/src/backend/claude/session.test.js +46 -0
- package/dist/src/backend/claude/session.test.js.map +1 -1
- package/dist/src/backend/claude/types.d.ts +28 -3
- package/dist/src/backend/claude/types.d.ts.map +1 -1
- package/dist/src/backend/claude/types.js +28 -0
- package/dist/src/backend/claude/types.js.map +1 -1
- package/dist/src/backend/interceptors/pr-detection.interceptor.d.ts.map +1 -1
- package/dist/src/backend/interceptors/pr-detection.interceptor.js +19 -23
- package/dist/src/backend/interceptors/pr-detection.interceptor.js.map +1 -1
- package/dist/src/backend/prompts/markdown-loader.d.ts +22 -0
- package/dist/src/backend/prompts/markdown-loader.d.ts.map +1 -0
- package/dist/src/backend/prompts/markdown-loader.js +77 -0
- package/dist/src/backend/prompts/markdown-loader.js.map +1 -0
- package/dist/src/backend/prompts/markdown-loader.test.d.ts +2 -0
- package/dist/src/backend/prompts/markdown-loader.test.d.ts.map +1 -0
- package/dist/src/backend/prompts/markdown-loader.test.js +190 -0
- package/dist/src/backend/prompts/markdown-loader.test.js.map +1 -0
- package/dist/src/backend/prompts/quick-actions.d.ts.map +1 -1
- package/dist/src/backend/prompts/quick-actions.js +34 -92
- package/dist/src/backend/prompts/quick-actions.js.map +1 -1
- package/dist/src/backend/prompts/ratchet-dispatch.d.ts +3 -0
- package/dist/src/backend/prompts/ratchet-dispatch.d.ts.map +1 -0
- package/dist/src/backend/prompts/ratchet-dispatch.js +53 -0
- package/dist/src/backend/prompts/ratchet-dispatch.js.map +1 -0
- package/dist/src/backend/prompts/ratchet-dispatch.test.d.ts +2 -0
- package/dist/src/backend/prompts/ratchet-dispatch.test.d.ts.map +1 -0
- package/dist/src/backend/prompts/ratchet-dispatch.test.js +34 -0
- package/dist/src/backend/prompts/ratchet-dispatch.test.js.map +1 -0
- package/dist/src/backend/prompts/workflows.d.ts.map +1 -1
- package/dist/src/backend/prompts/workflows.js +23 -76
- package/dist/src/backend/prompts/workflows.js.map +1 -1
- package/dist/src/backend/resource_accessors/user-settings.accessor.d.ts +0 -1
- package/dist/src/backend/resource_accessors/user-settings.accessor.d.ts.map +1 -1
- package/dist/src/backend/resource_accessors/user-settings.accessor.js.map +1 -1
- package/dist/src/backend/resource_accessors/workspace.accessor.d.ts +4 -3
- package/dist/src/backend/resource_accessors/workspace.accessor.d.ts.map +1 -1
- package/dist/src/backend/resource_accessors/workspace.accessor.js +4 -2
- package/dist/src/backend/resource_accessors/workspace.accessor.js.map +1 -1
- package/dist/src/backend/routers/websocket/chat.handler.d.ts.map +1 -1
- package/dist/src/backend/routers/websocket/chat.handler.js +1 -30
- package/dist/src/backend/routers/websocket/chat.handler.js.map +1 -1
- package/dist/src/backend/services/chat-event-forwarder.service.d.ts.map +1 -1
- package/dist/src/backend/services/chat-event-forwarder.service.js +9 -13
- package/dist/src/backend/services/chat-event-forwarder.service.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.d.ts +14 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.js +81 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.test.d.ts +2 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.test.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.test.js +315 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.test.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.js +7 -3
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/handlers.test.js +156 -6
- package/dist/src/backend/services/chat-message-handlers/handlers/handlers.test.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/list-sessions.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/list-sessions.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/list-sessions.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.js +41 -31
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.js +1 -2
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.js +1 -2
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.js +6 -7
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.js +1 -2
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.js +8 -9
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.js +4 -5
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.js +4 -5
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.js +4 -2
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.js +7 -2
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.js +1 -2
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/registry.d.ts +5 -1
- package/dist/src/backend/services/chat-message-handlers/registry.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/registry.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers.service.d.ts +0 -2
- package/dist/src/backend/services/chat-message-handlers.service.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers.service.js +6 -68
- package/dist/src/backend/services/chat-message-handlers.service.js.map +1 -1
- package/dist/src/backend/services/chat-transport-adapter.service.d.ts +2 -0
- package/dist/src/backend/services/chat-transport-adapter.service.d.ts.map +1 -1
- package/dist/src/backend/services/chat-transport-adapter.service.js +32 -1
- package/dist/src/backend/services/chat-transport-adapter.service.js.map +1 -1
- package/dist/src/backend/services/chat-transport-adapter.service.test.js +14 -0
- package/dist/src/backend/services/chat-transport-adapter.service.test.js.map +1 -1
- package/dist/src/backend/services/data-backup.service.d.ts +3 -144
- package/dist/src/backend/services/data-backup.service.d.ts.map +1 -1
- package/dist/src/backend/services/data-backup.service.js +119 -115
- package/dist/src/backend/services/data-backup.service.js.map +1 -1
- package/dist/src/backend/services/data-backup.service.test.d.ts +2 -0
- package/dist/src/backend/services/data-backup.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/data-backup.service.test.js +602 -0
- package/dist/src/backend/services/data-backup.service.test.js.map +1 -0
- package/dist/src/backend/services/file-lock.service.d.ts.map +1 -1
- package/dist/src/backend/services/file-lock.service.js +3 -5
- package/dist/src/backend/services/file-lock.service.js.map +1 -1
- package/dist/src/backend/services/file-lock.service.test.js +55 -0
- package/dist/src/backend/services/file-lock.service.test.js.map +1 -1
- package/dist/src/backend/services/github-cli.service.d.ts.map +1 -1
- package/dist/src/backend/services/github-cli.service.js +118 -19
- package/dist/src/backend/services/github-cli.service.js.map +1 -1
- package/dist/src/backend/services/github-cli.service.test.js +126 -0
- package/dist/src/backend/services/github-cli.service.test.js.map +1 -1
- package/dist/src/backend/services/index.d.ts +1 -0
- package/dist/src/backend/services/index.d.ts.map +1 -1
- package/dist/src/backend/services/index.js +1 -0
- package/dist/src/backend/services/index.js.map +1 -1
- package/dist/src/backend/services/message-state-machine.d.ts.map +1 -1
- package/dist/src/backend/services/message-state-machine.js +11 -5
- package/dist/src/backend/services/message-state-machine.js.map +1 -1
- package/dist/src/backend/services/message-state.service.d.ts +16 -18
- package/dist/src/backend/services/message-state.service.d.ts.map +1 -1
- package/dist/src/backend/services/message-state.service.js +8 -14
- package/dist/src/backend/services/message-state.service.js.map +1 -1
- package/dist/src/backend/services/message-state.service.test.js +36 -45
- package/dist/src/backend/services/message-state.service.test.js.map +1 -1
- package/dist/src/backend/services/pr-snapshot.service.d.ts +9 -1
- package/dist/src/backend/services/pr-snapshot.service.d.ts.map +1 -1
- package/dist/src/backend/services/pr-snapshot.service.js +53 -3
- package/dist/src/backend/services/pr-snapshot.service.js.map +1 -1
- package/dist/src/backend/services/pr-snapshot.service.test.js +102 -47
- package/dist/src/backend/services/pr-snapshot.service.test.js.map +1 -1
- package/dist/src/backend/services/ratchet.service.d.ts +14 -71
- package/dist/src/backend/services/ratchet.service.d.ts.map +1 -1
- package/dist/src/backend/services/ratchet.service.js +198 -439
- package/dist/src/backend/services/ratchet.service.js.map +1 -1
- package/dist/src/backend/services/ratchet.service.test.js +210 -358
- package/dist/src/backend/services/ratchet.service.test.js.map +1 -1
- package/dist/src/backend/services/run-script-state-machine.service.d.ts +27 -0
- package/dist/src/backend/services/run-script-state-machine.service.d.ts.map +1 -0
- package/dist/src/backend/services/run-script-state-machine.service.js +149 -0
- package/dist/src/backend/services/run-script-state-machine.service.js.map +1 -0
- package/dist/src/backend/services/run-script-state-machine.service.test.d.ts +2 -0
- package/dist/src/backend/services/run-script-state-machine.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/run-script-state-machine.service.test.js +453 -0
- package/dist/src/backend/services/run-script-state-machine.service.test.js.map +1 -0
- package/dist/src/backend/services/run-script.service.d.ts +0 -7
- package/dist/src/backend/services/run-script.service.d.ts.map +1 -1
- package/dist/src/backend/services/run-script.service.js +145 -76
- package/dist/src/backend/services/run-script.service.js.map +1 -1
- package/dist/src/backend/services/scheduler.service.d.ts.map +1 -1
- package/dist/src/backend/services/scheduler.service.js +16 -7
- package/dist/src/backend/services/scheduler.service.js.map +1 -1
- package/dist/src/backend/services/scheduler.service.test.js +41 -5
- package/dist/src/backend/services/scheduler.service.test.js.map +1 -1
- package/dist/src/backend/services/session-runtime-store.service.d.ts +38 -0
- package/dist/src/backend/services/session-runtime-store.service.d.ts.map +1 -0
- package/dist/src/backend/services/session-runtime-store.service.js +111 -0
- package/dist/src/backend/services/session-runtime-store.service.js.map +1 -0
- package/dist/src/backend/services/session-runtime-store.service.test.d.ts +2 -0
- package/dist/src/backend/services/session-runtime-store.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/session-runtime-store.service.test.js +15 -0
- package/dist/src/backend/services/session-runtime-store.service.test.js.map +1 -0
- package/dist/src/backend/services/session.repository.d.ts +2 -0
- package/dist/src/backend/services/session.repository.d.ts.map +1 -1
- package/dist/src/backend/services/session.repository.js +3 -0
- package/dist/src/backend/services/session.repository.js.map +1 -1
- package/dist/src/backend/services/session.service.d.ts +0 -1
- package/dist/src/backend/services/session.service.d.ts.map +1 -1
- package/dist/src/backend/services/session.service.js +18 -23
- package/dist/src/backend/services/session.service.js.map +1 -1
- package/dist/src/backend/services/session.service.test.js +210 -12
- package/dist/src/backend/services/session.service.test.js.map +1 -1
- package/dist/src/backend/services/workspace-creation.service.test.js +0 -2
- package/dist/src/backend/services/workspace-creation.service.test.js.map +1 -1
- package/dist/src/backend/services/workspace-flow-state.service.d.ts.map +1 -1
- package/dist/src/backend/services/workspace-flow-state.service.js +0 -1
- package/dist/src/backend/services/workspace-flow-state.service.js.map +1 -1
- package/dist/src/backend/services/workspace-query.service.d.ts +1 -0
- package/dist/src/backend/services/workspace-query.service.d.ts.map +1 -1
- package/dist/src/backend/services/workspace-query.service.js +8 -0
- package/dist/src/backend/services/workspace-query.service.js.map +1 -1
- package/dist/src/backend/services/worktree-lifecycle.service.d.ts.map +1 -1
- package/dist/src/backend/services/worktree-lifecycle.service.js +139 -19
- package/dist/src/backend/services/worktree-lifecycle.service.js.map +1 -1
- package/dist/src/backend/services/worktree-lifecycle.service.test.js +48 -1
- package/dist/src/backend/services/worktree-lifecycle.service.test.js.map +1 -1
- package/dist/src/backend/trpc/admin.trpc.d.ts +130 -7
- package/dist/src/backend/trpc/admin.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/admin.trpc.js +2 -1
- package/dist/src/backend/trpc/admin.trpc.js.map +1 -1
- package/dist/src/backend/trpc/github.trpc.d.ts +14 -0
- package/dist/src/backend/trpc/github.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/github.trpc.js +28 -0
- package/dist/src/backend/trpc/github.trpc.js.map +1 -1
- package/dist/src/backend/trpc/index.d.ts +149 -20
- package/dist/src/backend/trpc/index.d.ts.map +1 -1
- package/dist/src/backend/trpc/session.trpc.d.ts +3 -3
- package/dist/src/backend/trpc/user-settings.trpc.d.ts +0 -3
- package/dist/src/backend/trpc/user-settings.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/user-settings.trpc.js +0 -1
- package/dist/src/backend/trpc/user-settings.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/run-script.trpc.d.ts +0 -7
- package/dist/src/backend/trpc/workspace/run-script.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace.trpc.d.ts +2 -7
- package/dist/src/backend/trpc/workspace.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace.trpc.js +13 -1
- package/dist/src/backend/trpc/workspace.trpc.js.map +1 -1
- package/dist/src/shared/ci-status.d.ts +9 -0
- package/dist/src/shared/ci-status.d.ts.map +1 -0
- package/dist/src/shared/ci-status.js +44 -0
- package/dist/src/shared/ci-status.js.map +1 -0
- package/dist/src/shared/claude/index.d.ts +1 -0
- package/dist/src/shared/claude/index.d.ts.map +1 -1
- package/dist/src/shared/claude/index.js +1 -0
- package/dist/src/shared/claude/index.js.map +1 -1
- package/dist/src/shared/claude/protocol.d.ts +6 -3
- package/dist/src/shared/claude/protocol.d.ts.map +1 -1
- package/dist/src/shared/claude/protocol.js.map +1 -1
- package/dist/src/shared/schemas/export-data.schema.d.ts +865 -0
- package/dist/src/shared/schemas/export-data.schema.d.ts.map +1 -0
- package/dist/src/shared/schemas/export-data.schema.js +167 -0
- package/dist/src/shared/schemas/export-data.schema.js.map +1 -0
- package/dist/src/shared/schemas/persisted-stores.schema.d.ts +19 -0
- package/dist/src/shared/schemas/persisted-stores.schema.d.ts.map +1 -0
- package/dist/src/shared/schemas/persisted-stores.schema.js +17 -0
- package/dist/src/shared/schemas/persisted-stores.schema.js.map +1 -0
- package/dist/src/shared/session-runtime.d.ts +17 -0
- package/dist/src/shared/session-runtime.d.ts.map +1 -0
- package/dist/src/shared/session-runtime.js +9 -0
- package/dist/src/shared/session-runtime.js.map +1 -0
- package/dist/src/shared/websocket/chat-message.schema.d.ts +24 -11
- package/dist/src/shared/websocket/chat-message.schema.d.ts.map +1 -1
- package/dist/src/shared/websocket/chat-message.schema.js +4 -1
- package/dist/src/shared/websocket/chat-message.schema.js.map +1 -1
- package/dist/src/shared/websocket/index.d.ts +1 -1
- package/dist/src/shared/websocket/index.d.ts.map +1 -1
- package/dist/src/shared/websocket/index.js.map +1 -1
- package/dist/src/shared/workspace-sidebar-status.d.ts +20 -0
- package/dist/src/shared/workspace-sidebar-status.d.ts.map +1 -0
- package/dist/src/shared/workspace-sidebar-status.js +73 -0
- package/dist/src/shared/workspace-sidebar-status.js.map +1 -0
- package/dist/tsconfig.backend.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/prisma/migrations/20260206170000_remove_merge_conflict_state/migration.sql +7 -0
- package/prisma/migrations/20260206174726_remove_ratchet_auto_fix_conflicts/migration.sql +33 -0
- package/prisma/schema.prisma +0 -2
- package/prompts/ratchet/dispatch.md +31 -0
- package/prompts/workflows/ratchet.md +22 -36
- package/dist/client/assets/channel-DWeb1p1N.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-DkYgN_SG.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-DkYgN_SG.js +0 -1
- package/dist/client/assets/clone-WKF0ejf5.js +0 -1
- package/dist/client/assets/index-DCpIgwSv.css +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BFf_HK07.js +0 -1
package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.js
CHANGED
|
@@ -4,27 +4,26 @@ import { DEBUG_CHAT_WS } from '../constants.js';
|
|
|
4
4
|
const logger = createLogger('chat-message-handlers');
|
|
5
5
|
export function createSetThinkingBudgetHandler() {
|
|
6
6
|
return async ({ ws, sessionId, message }) => {
|
|
7
|
-
const typedMessage = message;
|
|
8
7
|
const client = sessionService.getClient(sessionId);
|
|
9
8
|
if (!client) {
|
|
10
9
|
ws.send(JSON.stringify({ type: 'error', message: 'No active client for session' }));
|
|
11
10
|
return;
|
|
12
11
|
}
|
|
13
12
|
try {
|
|
14
|
-
await client.setMaxThinkingTokens(
|
|
13
|
+
await client.setMaxThinkingTokens(message.max_tokens);
|
|
15
14
|
if (DEBUG_CHAT_WS) {
|
|
16
15
|
logger.info('[Chat WS] Set thinking budget', {
|
|
17
16
|
sessionId,
|
|
18
|
-
maxTokens:
|
|
17
|
+
maxTokens: message.max_tokens,
|
|
19
18
|
});
|
|
20
19
|
}
|
|
21
|
-
ws.send(JSON.stringify({ type: 'thinking_budget_set', max_tokens:
|
|
20
|
+
ws.send(JSON.stringify({ type: 'thinking_budget_set', max_tokens: message.max_tokens }));
|
|
22
21
|
}
|
|
23
22
|
catch (error) {
|
|
24
23
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
25
24
|
logger.error('[Chat WS] Failed to set thinking budget', {
|
|
26
25
|
sessionId,
|
|
27
|
-
maxTokens:
|
|
26
|
+
maxTokens: message.max_tokens,
|
|
28
27
|
error: errorMessage,
|
|
29
28
|
});
|
|
30
29
|
ws.send(JSON.stringify({ type: 'error', message: `Failed to set thinking budget: ${errorMessage}` }));
|
package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-thinking-budget.handler.js","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,MAAM,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAErD,MAAM,UAAU,8BAA8B;IAC5C,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,MAAM,
|
|
1
|
+
{"version":3,"file":"set-thinking-budget.handler.js","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,MAAM,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAErD,MAAM,UAAU,8BAA8B;IAC5C,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;oBAC3C,SAAS;oBACT,SAAS,EAAE,OAAO,CAAC,UAAU;iBAC9B,CAAC,CAAC;YACL,CAAC;YACD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC3F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE;gBACtD,SAAS;gBACT,SAAS,EAAE,OAAO,CAAC,UAAU;gBAC7B,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;YACH,EAAE,CAAC,IAAI,CACL,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kCAAkC,YAAY,EAAE,EAAE,CAAC,CAC7F,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { StartMessageInput } from '../../../../shared/websocket/index.js';
|
|
1
2
|
import type { ChatMessageHandler, HandlerRegistryDependencies } from '../types.js';
|
|
2
|
-
export declare function createStartHandler(deps: HandlerRegistryDependencies): ChatMessageHandler
|
|
3
|
+
export declare function createStartHandler(deps: HandlerRegistryDependencies): ChatMessageHandler<StartMessageInput>;
|
|
3
4
|
//# sourceMappingURL=start.handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.handler.d.ts","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/start.handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.handler.d.ts","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/start.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAKhF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,2BAA2B,GAChC,kBAAkB,CAAC,iBAAiB,CAAC,CAwBvC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createLogger } from '../../logger.service.js';
|
|
2
2
|
import { sessionService } from '../../session.service.js';
|
|
3
|
+
import { sessionRuntimeStoreService } from '../../session-runtime-store.service.js';
|
|
3
4
|
import { getValidModel } from '../utils.js';
|
|
4
5
|
const logger = createLogger('chat-message-handlers');
|
|
5
6
|
export function createStartHandler(deps) {
|
|
@@ -9,10 +10,11 @@ export function createStartHandler(deps) {
|
|
|
9
10
|
ws.send(JSON.stringify({ type: 'error', message: 'Client creator not configured' }));
|
|
10
11
|
return;
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
+
sessionRuntimeStoreService.markStarting(sessionId);
|
|
13
14
|
const sessionOpts = await sessionService.getSessionOptions(sessionId);
|
|
14
15
|
if (!sessionOpts) {
|
|
15
16
|
logger.error('[Chat WS] Failed to get session options', { sessionId });
|
|
17
|
+
sessionRuntimeStoreService.markError(sessionId);
|
|
16
18
|
ws.send(JSON.stringify({ type: 'error', message: 'Session not found' }));
|
|
17
19
|
return;
|
|
18
20
|
}
|
|
@@ -21,7 +23,7 @@ export function createStartHandler(deps) {
|
|
|
21
23
|
planModeEnabled: message.planModeEnabled,
|
|
22
24
|
model: getValidModel(message),
|
|
23
25
|
});
|
|
24
|
-
|
|
26
|
+
sessionRuntimeStoreService.markIdle(sessionId, 'alive');
|
|
25
27
|
};
|
|
26
28
|
}
|
|
27
29
|
//# sourceMappingURL=start.handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.handler.js","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/start.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"start.handler.js","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/start.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,MAAM,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAErD,MAAM,UAAU,kBAAkB,CAChC,IAAiC;IAEjC,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QACD,0BAA0B,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEnD,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACvE,0BAA0B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAChD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE;YACzC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAC;QACH,0BAA0B,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { StopMessage } from '../../../../shared/websocket/index.js';
|
|
1
2
|
import type { ChatMessageHandler } from '../types.js';
|
|
2
|
-
export declare function createStopHandler(): ChatMessageHandler
|
|
3
|
+
export declare function createStopHandler(): ChatMessageHandler<StopMessage>;
|
|
3
4
|
//# sourceMappingURL=stop.handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.handler.d.ts","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/stop.handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stop.handler.d.ts","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/stop.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,wBAAgB,iBAAiB,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAYnE"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { chatEventForwarderService } from '../../chat-event-forwarder.service.js';
|
|
2
2
|
import { sessionService } from '../../session.service.js';
|
|
3
|
+
import { sessionRuntimeStoreService } from '../../session-runtime-store.service.js';
|
|
3
4
|
export function createStopHandler() {
|
|
4
|
-
return async ({
|
|
5
|
+
return async ({ sessionId }) => {
|
|
6
|
+
const existingClient = sessionService.getClient(sessionId);
|
|
7
|
+
sessionRuntimeStoreService.markStopping(sessionId);
|
|
5
8
|
await sessionService.stopClaudeSession(sessionId);
|
|
6
9
|
chatEventForwarderService.clearPendingRequest(sessionId);
|
|
7
|
-
|
|
10
|
+
if (!existingClient) {
|
|
11
|
+
sessionRuntimeStoreService.markIdle(sessionId, 'stopped');
|
|
12
|
+
}
|
|
8
13
|
};
|
|
9
14
|
}
|
|
10
15
|
//# sourceMappingURL=stop.handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.handler.js","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/stop.handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stop.handler.js","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/stop.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAGjF,MAAM,UAAU,iBAAiB;IAC/B,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC7B,MAAM,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3D,0BAA0B,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAGlD,yBAAyB,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,0BAA0B,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { UserInputMessage } from '../../../../shared/websocket/index.js';
|
|
1
2
|
import type { ChatMessageHandler } from '../types.js';
|
|
2
|
-
export declare function createUserInputHandler(): ChatMessageHandler
|
|
3
|
+
export declare function createUserInputHandler(): ChatMessageHandler<UserInputMessage>;
|
|
3
4
|
//# sourceMappingURL=user-input.handler.d.ts.map
|
package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-input.handler.d.ts","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/user-input.handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"user-input.handler.d.ts","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/user-input.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAI3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInD,wBAAgB,sBAAsB,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CA8B7E"}
|
|
@@ -3,8 +3,7 @@ import { sessionService } from '../../session.service.js';
|
|
|
3
3
|
const logger = createLogger('chat-message-handlers');
|
|
4
4
|
export function createUserInputHandler() {
|
|
5
5
|
return ({ ws, sessionId, message }) => {
|
|
6
|
-
const
|
|
7
|
-
const rawContent = typedMessage.content || typedMessage.text;
|
|
6
|
+
const rawContent = message.content || message.text;
|
|
8
7
|
if (!rawContent) {
|
|
9
8
|
return;
|
|
10
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-input.handler.js","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/user-input.handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,MAAM,MAAM,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAErD,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,MAAM,
|
|
1
|
+
{"version":3,"file":"user-input.handler.js","sourceRoot":"","sources":["../../../../../../src/backend/services/chat-message-handlers/handlers/user-input.handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,MAAM,MAAM,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAErD,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;QACnD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACzD,OAAO;QACT,CAAC;QAGD,MAAM,cAAc,GAClB,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,UAAkC,CAAC;QAEpF,MAAM,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,cAAc,EAAE,SAAS,EAAE,EAAE,CAAC;YAChC,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzD,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,EAAE,CAAC,IAAI,CACL,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,gEAAgE;SAC1E,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { ChatMessageInput } from '../../../shared/websocket/index.js';
|
|
2
2
|
import type { ChatMessageHandler, HandlerRegistryDependencies } from './types.js';
|
|
3
|
-
export type ChatMessageHandlerRegistry =
|
|
3
|
+
export type ChatMessageHandlerRegistry = {
|
|
4
|
+
[K in ChatMessageInput['type']]: ChatMessageHandler<Extract<ChatMessageInput, {
|
|
5
|
+
type: K;
|
|
6
|
+
}>>;
|
|
7
|
+
};
|
|
4
8
|
export declare function createChatMessageHandlerRegistry(deps: HandlerRegistryDependencies): ChatMessageHandlerRegistry;
|
|
5
9
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../src/backend/services/chat-message-handlers/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAe3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../src/backend/services/chat-message-handlers/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAe3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAM/E,MAAM,MAAM,0BAA0B,GAAG;KACtC,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CAC5F,CAAC;AAEF,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,2BAA2B,GAChC,0BAA0B,CAiB5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../src/backend/services/chat-message-handlers/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AACzF,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../src/backend/services/chat-message-handlers/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AACzF,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAWvE,MAAM,UAAU,gCAAgC,CAC9C,IAAiC;IAEjC,OAAO;QACL,aAAa,EAAE,yBAAyB,EAAE;QAC1C,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC;QAC/B,UAAU,EAAE,sBAAsB,EAAE;QACpC,aAAa,EAAE,yBAAyB,CAAC,IAAI,CAAC;QAC9C,qBAAqB,EAAE,gCAAgC,EAAE;QACzD,IAAI,EAAE,iBAAiB,EAAE;QACzB,WAAW,EAAE,uBAAuB,EAAE;QACtC,YAAY,EAAE,wBAAwB,EAAE;QACxC,SAAS,EAAE,qBAAqB,EAAE;QAClC,iBAAiB,EAAE,6BAA6B,EAAE;QAClD,mBAAmB,EAAE,+BAA+B,EAAE;QACtD,SAAS,EAAE,qBAAqB,EAAE;QAClC,mBAAmB,EAAE,8BAA8B,EAAE;QACrD,YAAY,EAAE,wBAAwB,EAAE;KACzC,CAAC;AACJ,CAAC"}
|
|
@@ -15,8 +15,6 @@ declare class ChatMessageHandlerService {
|
|
|
15
15
|
private getRequeueReason;
|
|
16
16
|
private requeueWithReason;
|
|
17
17
|
private isCompactCommand;
|
|
18
|
-
private validateAttachment;
|
|
19
|
-
private sanitizeAttachmentName;
|
|
20
18
|
private buildMessageContent;
|
|
21
19
|
}
|
|
22
20
|
export declare const chatMessageHandlerService: ChatMessageHandlerService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-message-handlers.service.d.ts","sourceRoot":"","sources":["../../../../src/backend/services/chat-message-handlers.service.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-message-handlers.service.d.ts","sourceRoot":"","sources":["../../../../src/backend/services/chat-message-handlers.service.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAcnE,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAMnE,cAAM,yBAAyB;IAE7B,OAAO,CAAC,kBAAkB,CAA8B;IAGxD,OAAO,CAAC,aAAa,CAA8B;IAEnD,OAAO,CAAC,eAAe,CAGpB;IAKH,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IASxC,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6D1D,aAAa,CACjB,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;YA0CF,uBAAuB;YA+BvB,eAAe;IA0C7B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,mBAAmB;CAO5B;AAED,eAAO,MAAM,yBAAyB,2BAAkC,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { DEFAULT_THINKING_BUDGET, MessageState } from '../../shared/claude/index.js';
|
|
2
|
-
import {
|
|
3
|
-
import { resolveAttachmentContentType } from './chat-message-handlers/attachment-utils.js';
|
|
2
|
+
import { processAttachmentsAndBuildContent } from './chat-message-handlers/attachment-processing.js';
|
|
4
3
|
import { DEBUG_CHAT_WS } from './chat-message-handlers/constants.js';
|
|
5
4
|
import { createChatMessageHandlerRegistry } from './chat-message-handlers/registry.js';
|
|
6
5
|
import { createLogger } from './logger.service.js';
|
|
7
6
|
import { messageQueueService } from './message-queue.service.js';
|
|
8
7
|
import { messageStateService } from './message-state.service.js';
|
|
9
8
|
import { sessionService } from './session.service.js';
|
|
9
|
+
import { sessionRuntimeStoreService } from './session-runtime-store.service.js';
|
|
10
10
|
const logger = createLogger('chat-message-handlers');
|
|
11
11
|
class ChatMessageHandlerService {
|
|
12
12
|
dispatchInProgress = new Map();
|
|
@@ -34,11 +34,11 @@ class ChatMessageHandlerService {
|
|
|
34
34
|
try {
|
|
35
35
|
let client = sessionService.getClient(dbSessionId);
|
|
36
36
|
if (!client) {
|
|
37
|
-
|
|
37
|
+
sessionRuntimeStoreService.markStarting(dbSessionId);
|
|
38
38
|
const newClient = await this.autoStartClientForQueue(dbSessionId, msg);
|
|
39
39
|
if (!newClient) {
|
|
40
40
|
messageQueueService.requeue(dbSessionId, msg);
|
|
41
|
-
|
|
41
|
+
sessionRuntimeStoreService.markError(dbSessionId);
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
44
|
client = newClient;
|
|
@@ -111,11 +111,7 @@ class ChatMessageHandlerService {
|
|
|
111
111
|
const thinkingTokens = msg.settings.thinkingEnabled ? DEFAULT_THINKING_BUDGET : null;
|
|
112
112
|
await client.setMaxThinkingTokens(thinkingTokens);
|
|
113
113
|
messageStateService.updateState(dbSessionId, msg.id, MessageState.DISPATCHED);
|
|
114
|
-
|
|
115
|
-
type: 'status',
|
|
116
|
-
running: true,
|
|
117
|
-
processAlive: client.isRunning(),
|
|
118
|
-
});
|
|
114
|
+
sessionRuntimeStoreService.markRunning(dbSessionId);
|
|
119
115
|
const content = this.buildMessageContent(msg);
|
|
120
116
|
if (isCompactCommand) {
|
|
121
117
|
client.startCompaction();
|
|
@@ -162,66 +158,8 @@ class ChatMessageHandlerService {
|
|
|
162
158
|
const trimmed = text.trim();
|
|
163
159
|
return trimmed === '/compact' || trimmed.startsWith('/compact ');
|
|
164
160
|
}
|
|
165
|
-
validateAttachment(attachment) {
|
|
166
|
-
if (!attachment.data) {
|
|
167
|
-
logger.error('[Chat WS] Attachment missing data', { attachmentId: attachment.id });
|
|
168
|
-
throw new Error(`Attachment "${attachment.name}" is missing data`);
|
|
169
|
-
}
|
|
170
|
-
const resolvedType = resolveAttachmentContentType(attachment);
|
|
171
|
-
if (resolvedType === 'image') {
|
|
172
|
-
if (!/^[A-Za-z0-9+/=]+$/.test(attachment.data)) {
|
|
173
|
-
logger.error('[Chat WS] Invalid base64 data in attachment', {
|
|
174
|
-
attachmentId: attachment.id,
|
|
175
|
-
name: attachment.name,
|
|
176
|
-
});
|
|
177
|
-
throw new Error(`Attachment "${attachment.name}" has invalid image data`);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
sanitizeAttachmentName(name) {
|
|
182
|
-
return name.replace(/[\x00-\x1F\x7F]/g, '').slice(0, 255);
|
|
183
|
-
}
|
|
184
161
|
buildMessageContent(msg) {
|
|
185
|
-
|
|
186
|
-
for (const attachment of msg.attachments) {
|
|
187
|
-
this.validateAttachment(attachment);
|
|
188
|
-
}
|
|
189
|
-
const resolvedAttachments = msg.attachments.map((attachment) => ({
|
|
190
|
-
attachment,
|
|
191
|
-
contentType: resolveAttachmentContentType(attachment),
|
|
192
|
-
}));
|
|
193
|
-
const textAttachments = resolvedAttachments
|
|
194
|
-
.filter((entry) => entry.contentType === 'text')
|
|
195
|
-
.map((entry) => entry.attachment);
|
|
196
|
-
const imageAttachments = resolvedAttachments
|
|
197
|
-
.filter((entry) => entry.contentType === 'image')
|
|
198
|
-
.map((entry) => entry.attachment);
|
|
199
|
-
let combinedText = msg.text || '';
|
|
200
|
-
for (const attachment of textAttachments) {
|
|
201
|
-
const prefix = combinedText ? '\n\n' : '';
|
|
202
|
-
const safeName = this.sanitizeAttachmentName(attachment.name);
|
|
203
|
-
combinedText += `${prefix}[Pasted content: ${safeName}]\n${attachment.data}`;
|
|
204
|
-
}
|
|
205
|
-
if (imageAttachments.length === 0) {
|
|
206
|
-
return combinedText;
|
|
207
|
-
}
|
|
208
|
-
const content = [];
|
|
209
|
-
if (combinedText) {
|
|
210
|
-
content.push({ type: 'text', text: combinedText });
|
|
211
|
-
}
|
|
212
|
-
for (const attachment of imageAttachments) {
|
|
213
|
-
content.push({
|
|
214
|
-
type: 'image',
|
|
215
|
-
source: {
|
|
216
|
-
type: 'base64',
|
|
217
|
-
media_type: attachment.type,
|
|
218
|
-
data: attachment.data,
|
|
219
|
-
},
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
return content;
|
|
223
|
-
}
|
|
224
|
-
return msg.text;
|
|
162
|
+
return processAttachmentsAndBuildContent(msg.text, msg.attachments);
|
|
225
163
|
}
|
|
226
164
|
}
|
|
227
165
|
export const chatMessageHandlerService = new ChatMessageHandlerService();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-message-handlers.service.js","sourceRoot":"","sources":["../../../../src/backend/services/chat-message-handlers.service.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAIxE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"chat-message-handlers.service.js","sourceRoot":"","sources":["../../../../src/backend/services/chat-message-handlers.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-transport-adapter.service.d.ts","sourceRoot":"","sources":["../../../../src/backend/services/chat-transport-adapter.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat-transport-adapter.service.d.ts","sourceRoot":"","sources":["../../../../src/backend/services/chat-transport-adapter.service.ts"],"names":[],"mappings":"AAgBA,cAAM,2BAA2B;IAC/B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAsBd;IACF,OAAO,CAAC,eAAe,CAsBrB;IAEF,KAAK,IAAI,IAAI;IAgBb,QAAQ,IAAI,IAAI;CAOjB;AAED,eAAO,MAAM,2BAA2B,6BAAoC,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { chatConnectionService } from './chat-connection.service.js';
|
|
2
2
|
import { createLogger } from './logger.service.js';
|
|
3
3
|
import { messageStateService } from './message-state.service.js';
|
|
4
|
+
import { sessionRuntimeStoreService, } from './session-runtime-store.service.js';
|
|
4
5
|
const logger = createLogger('chat-transport-adapter');
|
|
5
6
|
class ChatTransportAdapterService {
|
|
6
7
|
isSetup = false;
|
|
7
8
|
unsubscribe = null;
|
|
9
|
+
runtimeUnsubscribe = null;
|
|
8
10
|
listener = (event) => {
|
|
9
11
|
switch (event.type) {
|
|
10
12
|
case 'message_state_changed': {
|
|
@@ -28,17 +30,46 @@ class ChatTransportAdapterService {
|
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
32
|
};
|
|
33
|
+
runtimeListener = (event) => {
|
|
34
|
+
switch (event.type) {
|
|
35
|
+
case 'session_runtime_snapshot': {
|
|
36
|
+
chatConnectionService.forwardToSession(event.sessionId, {
|
|
37
|
+
type: 'session_runtime_snapshot',
|
|
38
|
+
...event.data,
|
|
39
|
+
});
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
case 'session_runtime_updated': {
|
|
43
|
+
chatConnectionService.forwardToSession(event.sessionId, {
|
|
44
|
+
type: 'session_runtime_updated',
|
|
45
|
+
...event.data,
|
|
46
|
+
});
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
default: {
|
|
50
|
+
logger.warn('Unhandled session runtime event', {
|
|
51
|
+
eventType: event.type,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
31
56
|
setup() {
|
|
32
|
-
if (this.isSetup &&
|
|
57
|
+
if (this.isSetup &&
|
|
58
|
+
messageStateService.hasEventListener(this.listener) &&
|
|
59
|
+
sessionRuntimeStoreService.hasEventListener(this.runtimeListener)) {
|
|
33
60
|
return;
|
|
34
61
|
}
|
|
35
62
|
this.unsubscribe?.();
|
|
63
|
+
this.runtimeUnsubscribe?.();
|
|
36
64
|
this.unsubscribe = messageStateService.onEvent(this.listener);
|
|
65
|
+
this.runtimeUnsubscribe = sessionRuntimeStoreService.onEvent(this.runtimeListener);
|
|
37
66
|
this.isSetup = true;
|
|
38
67
|
}
|
|
39
68
|
teardown() {
|
|
40
69
|
this.unsubscribe?.();
|
|
70
|
+
this.runtimeUnsubscribe?.();
|
|
41
71
|
this.unsubscribe = null;
|
|
72
|
+
this.runtimeUnsubscribe = null;
|
|
42
73
|
this.isSetup = false;
|
|
43
74
|
}
|
|
44
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-transport-adapter.service.js","sourceRoot":"","sources":["../../../../src/backend/services/chat-transport-adapter.service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAA0B,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-transport-adapter.service.js","sourceRoot":"","sources":["../../../../src/backend/services/chat-transport-adapter.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { MessageState } from '../../shared/claude/index.js';
|
|
|
3
3
|
import { chatConnectionService } from './chat-connection.service.js';
|
|
4
4
|
import { chatTransportAdapterService } from './chat-transport-adapter.service.js';
|
|
5
5
|
import { messageStateService } from './message-state.service.js';
|
|
6
|
+
import { sessionRuntimeStoreService } from './session-runtime-store.service.js';
|
|
6
7
|
vi.mock('./chat-connection.service', () => ({
|
|
7
8
|
chatConnectionService: {
|
|
8
9
|
forwardToSession: vi.fn(),
|
|
@@ -13,6 +14,7 @@ describe('ChatTransportAdapterService', () => {
|
|
|
13
14
|
beforeEach(() => {
|
|
14
15
|
mockedChatConnectionService.forwardToSession.mockClear();
|
|
15
16
|
messageStateService.clearAllSessions();
|
|
17
|
+
sessionRuntimeStoreService.clearAllSessions();
|
|
16
18
|
chatTransportAdapterService.teardown();
|
|
17
19
|
});
|
|
18
20
|
it('forwards message state changes to the websocket transport', () => {
|
|
@@ -63,5 +65,17 @@ describe('ChatTransportAdapterService', () => {
|
|
|
63
65
|
}),
|
|
64
66
|
});
|
|
65
67
|
});
|
|
68
|
+
it('forwards session runtime updates to the websocket transport', () => {
|
|
69
|
+
chatTransportAdapterService.setup();
|
|
70
|
+
sessionRuntimeStoreService.markRunning('session-1');
|
|
71
|
+
expect(mockedChatConnectionService.forwardToSession).toHaveBeenCalledWith('session-1', {
|
|
72
|
+
type: 'session_runtime_updated',
|
|
73
|
+
sessionRuntime: expect.objectContaining({
|
|
74
|
+
phase: 'running',
|
|
75
|
+
processState: 'alive',
|
|
76
|
+
activity: 'WORKING',
|
|
77
|
+
}),
|
|
78
|
+
});
|
|
79
|
+
});
|
|
66
80
|
});
|
|
67
81
|
//# sourceMappingURL=chat-transport-adapter.service.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-transport-adapter.service.test.js","sourceRoot":"","sources":["../../../../src/backend/services/chat-transport-adapter.service.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-transport-adapter.service.test.js","sourceRoot":"","sources":["../../../../src/backend/services/chat-transport-adapter.service.test.ts"],"names":[],"mappings":"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"}
|