factory-factory 0.4.4 → 0.4.6
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/dist/client/assets/{abnfDiagram-VRR7QNED-CtUj9J56.js → abnfDiagram-N423BO3Z-BcUuFtOj.js} +1 -1
- package/dist/client/assets/{arc-2QeawLbF.js → arc-Cp8_E6ha.js} +1 -1
- package/dist/client/assets/architectureDiagram-T3A2C74G-C3_2J0tC.js +36 -0
- package/dist/client/assets/{blockDiagram-677ZJIJ3-BN6MDejN.js → blockDiagram-VBNYF7ZC-Dy0jc6lP.js} +1 -1
- package/dist/client/assets/{c4Diagram-LMCZKHZV-ZxcmUt9u.js → c4Diagram-5PPSVZJV-97TkD6w-.js} +1 -1
- package/dist/client/assets/channel-DLBBfejH.js +1 -0
- package/dist/client/assets/{chunk-32BRIVSS-BXA35oY0.js → chunk-2GRJ4B5K-Dc0I7ume.js} +1 -1
- package/dist/client/assets/{chunk-2Q5K7J3B-CyvdNBvs.js → chunk-2Q5K7J3B-DbFPWZwu.js} +1 -1
- package/dist/client/assets/{chunk-EX3LRPZG-BRYEhwoK.js → chunk-5RXB4S5H-Dci_7ZDD.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-6lY9D3Us.js → chunk-5VM5RSS4-Ca82Rzl0.js} +1 -1
- package/dist/client/assets/{chunk-MOJQB5TN-MIX8YUEz.js → chunk-6Q2QTUOP-Be2f5Q2t.js} +1 -1
- package/dist/client/assets/{chunk-V7JOEXUC-DpMacC1A.js → chunk-GF5L2VYU-C4VRs6xS.js} +1 -1
- package/dist/client/assets/{chunk-JWPE2WC7-DBeDDTf3.js → chunk-JWPE2WC7-DVlW0c7f.js} +1 -1
- package/dist/client/assets/{chunk-VR4S4FIN-Bd6MGh78.js → chunk-KBJHAD2P-BKRpW89b.js} +1 -1
- package/dist/client/assets/{chunk-RYQCIY6F-CT_f1sbt.js → chunk-RYQCIY6F-BwMw9oh9.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-BYg-oILv.js → chunk-XXDRQBXY-py-FQquv.js} +1 -1
- package/dist/client/assets/classDiagram-JCYQIIEL-Ds5wVQR3.js +1 -0
- package/dist/client/assets/classDiagram-v2-OCEON4UE-Ds5wVQR3.js +1 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-BGhjYi6z.js → cose-bilkent-JH36ORCC-BMCtQCZ8.js} +1 -1
- package/dist/client/assets/{cynefin-VYW2F7L2-BouObN4T.js → cynefin-VYW2F7L2-BTHAy6wD.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-TSTJHNR4-DrbscNyk.js → cynefinDiagram-MW4NZA55-pQCQD0Ih.js} +1 -1
- package/dist/client/assets/{dagre-VKFMJZFB-CpHBhtab.js → dagre-VZM6K2ZE-CZcoEFVf.js} +1 -1
- package/dist/client/assets/{diagram-OA4YK3LP-C6Jnb8nm.js → diagram-7IWD3JNH-DgQv_208.js} +1 -1
- package/dist/client/assets/{diagram-FQU43EPY-C_pXymmj.js → diagram-B4RE2ZJO-DoFotcsB.js} +1 -1
- package/dist/client/assets/{diagram-NH7WQ7WH-DWHcerSm.js → diagram-LBJQPF4R-C5zkL1ml.js} +1 -1
- package/dist/client/assets/{diagram-G47NLZAW-DNPz9Qrh.js → diagram-Q27KOJAE-ERKqnoHP.js} +1 -1
- package/dist/client/assets/diagram-UB23O5K3-Dyt6sy3Z.js +41 -0
- package/dist/client/assets/{ebnfDiagram-CCIWWBDH-_Wt4C-Lm.js → ebnfDiagram-BXEA7PRR-DqsFEAw2.js} +1 -1
- package/dist/client/assets/{erDiagram-Q63AITRT-D9F9IIZ7.js → erDiagram-JOGREHBK-Dn8Aqkgn.js} +1 -1
- package/dist/client/assets/{flowDiagram-23GEKE2U-BzTUtnLY.js → flowDiagram-UKHOOZJN-DcArGyH-.js} +6 -6
- package/dist/client/assets/{ganttDiagram-NO4QXBWP-lmFnKYE5.js → ganttDiagram-PKOTCBZU-BuHaeolc.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-IHSO6WYX-DiIQa_m6.js → gitGraphDiagram-DS77QQ5N-iKWWNsQK.js} +1 -1
- package/dist/client/assets/index-CVVo6xHd.css +1 -0
- package/dist/client/assets/index-DY0TryY7.js +695 -0
- package/dist/client/assets/{infoDiagram-FWYZ7A6U-BXtmiN5g.js → infoDiagram-6WML65LV-C7IulVvo.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-FXEZZL3T-Ce8fzasD.js → ishikawaDiagram-WSZJBQD7-DW4cB_Nk.js} +1 -1
- package/dist/client/assets/{journeyDiagram-5HDEW3XC-CAhJE-OU.js → journeyDiagram-NVQOT4AX-Nzsiy4H7.js} +1 -1
- package/dist/client/assets/{kanban-definition-HUTT4EX6-B8br5xew.js → kanban-definition-27J2QSJJ-BUsK9dj9.js} +1 -1
- package/dist/client/assets/{linear-BPVVEns_.js → linear-CyoW-usj.js} +1 -1
- package/dist/client/assets/{mindmap-definition-LN4V7U3C-lX6h9H-N.js → mindmap-definition-FAOFIHXS-Bd9cSJjQ.js} +1 -1
- package/dist/client/assets/{mobile-baseline-C45NSkzw.js → mobile-baseline-K78aE4nt.js} +1 -1
- package/dist/client/assets/{pegDiagram-2B236MQR-CiFWwnk4.js → pegDiagram-VL7TDLO6-BrmAKdiE.js} +1 -1
- package/dist/client/assets/{pieDiagram-ENE6RG2P-CvkwWtzQ.js → pieDiagram-7S7Q4E2Y-Ce0k6LI1.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-ABIIQ3AL-B40anMyK.js → quadrantDiagram-CIZ2JOQS-_9HxOOGa.js} +1 -1
- package/dist/client/assets/{railroadDiagram-RFXS5EU6-WVYsdkDC.js → railroadDiagram-AXF67PYL-ChdF1CBw.js} +1 -1
- package/dist/client/assets/{requirementDiagram-TGXJPOKE-DBTIsXpA.js → requirementDiagram-LRYGKXZP-Bm2gdYTE.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-HTMAVEWB-Dx8y47pZ.js → sankeyDiagram-W5VNT64P-Kf7zUiC-.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-DBY2YBRQ-C6ZZMZJm.js → sequenceDiagram-SI44F4Z6-DyPqsgh1.js} +1 -1
- package/dist/client/assets/{sizeCapture-X5ZJPWSS-DLy8loNR.js → sizeCapture-X5ZJPWSS-Cgn8Hxr2.js} +1 -1
- package/dist/client/assets/{stateDiagram-2N3HPSRC-RoTcqZkX.js → stateDiagram-OKZ733FA-CJxSzxmg.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-UEYNNEHI-BwUaUW2J.js +1 -0
- package/dist/client/assets/{swimlanes-5IMT3BWC-CFmoSHiT.js → swimlanes-SLNWSIFB-Ckb_izEZ.js} +2 -2
- package/dist/client/assets/swimlanesDiagram-ULZ7WXOC-D87lLmuW.js +8 -0
- package/dist/client/assets/{terminal-instance-Br0jXsXE.js → terminal-instance-DWySt2_t.js} +1 -1
- package/dist/client/assets/{timeline-definition-FHXFAJF6-Bh5XA09y.js → timeline-definition-Z64GVDOM-BWx_NLrK.js} +1 -1
- package/dist/client/assets/{vennDiagram-L72KCM5P-BC754zGO.js → vennDiagram-T6HMQDX7-BgN2-lO-.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-EHGQE667-xJdUzWCg.js → wardleyDiagram-T6FBY63Y-C9iwoeki.js} +1 -1
- package/dist/client/assets/{xychartDiagram-FW5EYKEG-wxQH1S7i.js → xychartDiagram-ELKLHX3M-B3AYy5ZN.js} +4 -4
- package/dist/client/audio-worklets/pcm-capture-processor.js +67 -0
- package/dist/client/index.html +2 -2
- package/dist/client/sounds/voice-thinking-start.mp3 +0 -0
- package/dist/prisma/generated/browser.d.ts +1 -0
- package/dist/prisma/generated/browser.d.ts.map +1 -1
- package/dist/prisma/generated/client.d.ts +1 -0
- package/dist/prisma/generated/client.d.ts.map +1 -1
- package/dist/prisma/generated/commonInputTypes.d.ts +100 -0
- package/dist/prisma/generated/commonInputTypes.d.ts.map +1 -1
- package/dist/prisma/generated/enums.d.ts +16 -0
- package/dist/prisma/generated/enums.d.ts.map +1 -1
- package/dist/prisma/generated/enums.js +14 -0
- package/dist/prisma/generated/enums.js.map +1 -1
- package/dist/prisma/generated/internal/class.d.ts +3 -0
- package/dist/prisma/generated/internal/class.d.ts.map +1 -1
- package/dist/prisma/generated/internal/class.js +4 -4
- package/dist/prisma/generated/internal/class.js.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespace.d.ts +97 -2
- package/dist/prisma/generated/internal/prismaNamespace.d.ts.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespace.js +17 -0
- package/dist/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts +18 -0
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.js +17 -0
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/prisma/generated/models/SessionLifecycleEvent.d.ts +657 -0
- package/dist/prisma/generated/models/SessionLifecycleEvent.d.ts.map +1 -0
- package/dist/prisma/generated/models/SessionLifecycleEvent.js +2 -0
- package/dist/prisma/generated/models/SessionLifecycleEvent.js.map +1 -0
- package/dist/prisma/generated/models/UserSettings.d.ts +216 -1
- package/dist/prisma/generated/models/UserSettings.d.ts.map +1 -1
- package/dist/prisma/generated/models/Workspace.d.ts +264 -0
- package/dist/prisma/generated/models/Workspace.d.ts.map +1 -1
- package/dist/prisma/generated/models.d.ts +1 -0
- package/dist/prisma/generated/models.d.ts.map +1 -1
- package/dist/src/backend/app-context.d.ts +4 -1
- package/dist/src/backend/app-context.d.ts.map +1 -1
- package/dist/src/backend/app-context.js +6 -2
- package/dist/src/backend/app-context.js.map +1 -1
- package/dist/src/backend/interceptors/branch-naming.interceptor.d.ts.map +1 -1
- package/dist/src/backend/interceptors/branch-naming.interceptor.js +0 -4
- package/dist/src/backend/interceptors/branch-naming.interceptor.js.map +1 -1
- package/dist/src/backend/interceptors/branch-naming.interceptor.test.js +26 -0
- package/dist/src/backend/interceptors/branch-naming.interceptor.test.js.map +1 -1
- package/dist/src/backend/orchestration/data-backup.service.d.ts.map +1 -1
- package/dist/src/backend/orchestration/data-backup.service.js +10 -0
- package/dist/src/backend/orchestration/data-backup.service.js.map +1 -1
- package/dist/src/backend/orchestration/data-backup.service.test.js +23 -0
- package/dist/src/backend/orchestration/data-backup.service.test.js.map +1 -1
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.d.ts +2 -1
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.d.ts.map +1 -1
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.js +6 -6
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.js.map +1 -1
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.test.js +18 -8
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.test.js.map +1 -1
- package/dist/src/backend/orchestration/event-collector.orchestrator.d.ts.map +1 -1
- package/dist/src/backend/orchestration/event-collector.orchestrator.js +3 -1
- package/dist/src/backend/orchestration/event-collector.orchestrator.js.map +1 -1
- package/dist/src/backend/orchestration/event-collector.orchestrator.test.js +3 -1
- package/dist/src/backend/orchestration/event-collector.orchestrator.test.js.map +1 -1
- package/dist/src/backend/orchestration/reconciliation.service.d.ts +11 -8
- package/dist/src/backend/orchestration/reconciliation.service.d.ts.map +1 -1
- package/dist/src/backend/orchestration/reconciliation.service.js +45 -33
- package/dist/src/backend/orchestration/reconciliation.service.js.map +1 -1
- package/dist/src/backend/orchestration/reconciliation.service.test.js +48 -42
- package/dist/src/backend/orchestration/reconciliation.service.test.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts +4 -1
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts.map +1 -1
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.js +4 -1
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js +15 -2
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-init-issue-prompts.d.ts.map +1 -1
- package/dist/src/backend/orchestration/workspace-init-issue-prompts.js +3 -1
- package/dist/src/backend/orchestration/workspace-init-issue-prompts.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-init-issue-prompts.test.d.ts +2 -0
- package/dist/src/backend/orchestration/workspace-init-issue-prompts.test.d.ts.map +1 -0
- package/dist/src/backend/orchestration/workspace-init-issue-prompts.test.js +75 -0
- package/dist/src/backend/orchestration/workspace-init-issue-prompts.test.js.map +1 -0
- package/dist/src/backend/orchestration/workspace-init.orchestrator.d.ts +7 -4
- package/dist/src/backend/orchestration/workspace-init.orchestrator.d.ts.map +1 -1
- package/dist/src/backend/orchestration/workspace-init.orchestrator.js +36 -1
- package/dist/src/backend/orchestration/workspace-init.orchestrator.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-init.orchestrator.test.js +117 -8
- package/dist/src/backend/orchestration/workspace-init.orchestrator.test.js.map +1 -1
- package/dist/src/backend/routers/websocket/index.d.ts +1 -0
- package/dist/src/backend/routers/websocket/index.d.ts.map +1 -1
- package/dist/src/backend/routers/websocket/index.js +1 -0
- package/dist/src/backend/routers/websocket/index.js.map +1 -1
- package/dist/src/backend/routers/websocket/voice-soft-stop.handler.d.ts +11 -0
- package/dist/src/backend/routers/websocket/voice-soft-stop.handler.d.ts.map +1 -0
- package/dist/src/backend/routers/websocket/voice-soft-stop.handler.js +28 -0
- package/dist/src/backend/routers/websocket/voice-soft-stop.handler.js.map +1 -0
- package/dist/src/backend/routers/websocket/voice-soft-stop.handler.test.d.ts +2 -0
- package/dist/src/backend/routers/websocket/voice-soft-stop.handler.test.d.ts.map +1 -0
- package/dist/src/backend/routers/websocket/voice-soft-stop.handler.test.js +84 -0
- package/dist/src/backend/routers/websocket/voice-soft-stop.handler.test.js.map +1 -0
- package/dist/src/backend/routers/websocket/voice.handler.d.ts +3 -0
- package/dist/src/backend/routers/websocket/voice.handler.d.ts.map +1 -0
- package/dist/src/backend/routers/websocket/voice.handler.js +46 -0
- package/dist/src/backend/routers/websocket/voice.handler.js.map +1 -0
- package/dist/src/backend/server.d.ts.map +1 -1
- package/dist/src/backend/server.js +3 -1
- package/dist/src/backend/server.js.map +1 -1
- package/dist/src/backend/server.upgrade.test.js +16 -0
- package/dist/src/backend/server.upgrade.test.js.map +1 -1
- package/dist/src/backend/services/periodic-task/resources/periodic-task.accessor.d.ts.map +1 -1
- package/dist/src/backend/services/periodic-task/resources/periodic-task.accessor.js +27 -6
- package/dist/src/backend/services/periodic-task/resources/periodic-task.accessor.js.map +1 -1
- package/dist/src/backend/services/periodic-task/resources/periodic-task.accessor.test.js +7 -0
- package/dist/src/backend/services/periodic-task/resources/periodic-task.accessor.test.js.map +1 -1
- package/dist/src/backend/services/port.service.d.ts.map +1 -1
- package/dist/src/backend/services/port.service.js +4 -0
- package/dist/src/backend/services/port.service.js.map +1 -1
- package/dist/src/backend/services/port.service.test.js +8 -0
- package/dist/src/backend/services/port.service.test.js.map +1 -1
- package/dist/src/backend/services/ratchet/service/ratchet.service.test.js +6 -0
- package/dist/src/backend/services/ratchet/service/ratchet.service.test.js.map +1 -1
- package/dist/src/backend/services/registry.d.ts +2 -2
- package/dist/src/backend/services/registry.d.ts.map +1 -1
- package/dist/src/backend/services/registry.js +2 -1
- package/dist/src/backend/services/registry.js.map +1 -1
- package/dist/src/backend/services/session/resources/session-lifecycle-event.accessor.d.ts +23 -0
- package/dist/src/backend/services/session/resources/session-lifecycle-event.accessor.d.ts.map +1 -0
- package/dist/src/backend/services/session/resources/session-lifecycle-event.accessor.js +23 -0
- package/dist/src/backend/services/session/resources/session-lifecycle-event.accessor.js.map +1 -0
- package/dist/src/backend/services/session/resources/session-lifecycle-event.accessor.test.d.ts +2 -0
- package/dist/src/backend/services/session/resources/session-lifecycle-event.accessor.test.d.ts.map +1 -0
- package/dist/src/backend/services/session/resources/session-lifecycle-event.accessor.test.js +62 -0
- package/dist/src/backend/services/session/resources/session-lifecycle-event.accessor.test.js.map +1 -0
- package/dist/src/backend/services/session/service/acp/acp-client-handler.d.ts +1 -0
- package/dist/src/backend/services/session/service/acp/acp-client-handler.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-client-handler.js +30 -0
- package/dist/src/backend/services/session/service/acp/acp-client-handler.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-client-handler.test.js +57 -0
- package/dist/src/backend/services/session/service/acp/acp-client-handler.test.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-event-translator.d.ts +1 -37
- package/dist/src/backend/services/session/service/acp/acp-event-translator.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-event-translator.js +1 -334
- package/dist/src/backend/services/session/service/acp/acp-event-translator.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-event-translator.test.js +5 -484
- package/dist/src/backend/services/session/service/acp/acp-event-translator.test.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-process-handle.d.ts +2 -0
- package/dist/src/backend/services/session/service/acp/acp-process-handle.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-process-handle.js +12 -0
- package/dist/src/backend/services/session/service/acp/acp-process-handle.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-process-handle.test.d.ts +2 -0
- package/dist/src/backend/services/session/service/acp/acp-process-handle.test.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/acp/acp-process-handle.test.js +66 -0
- package/dist/src/backend/services/session/service/acp/acp-process-handle.test.js.map +1 -0
- package/dist/src/backend/services/session/service/acp/acp-runtime-events.d.ts +7 -1
- package/dist/src/backend/services/session/service/acp/acp-runtime-events.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-runtime-manager.d.ts +21 -2
- package/dist/src/backend/services/session/service/acp/acp-runtime-manager.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-runtime-manager.js +254 -61
- package/dist/src/backend/services/session/service/acp/acp-runtime-manager.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-runtime-manager.test.js +353 -22
- package/dist/src/backend/services/session/service/acp/acp-runtime-manager.test.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-session-config-options.d.ts +1 -0
- package/dist/src/backend/services/session/service/acp/acp-session-config-options.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-session-config-options.js +4 -17
- package/dist/src/backend/services/session/service/acp/acp-session-config-options.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-session-config-options.test.d.ts +2 -0
- package/dist/src/backend/services/session/service/acp/acp-session-config-options.test.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/acp/acp-session-config-options.test.js +121 -0
- package/dist/src/backend/services/session/service/acp/acp-session-config-options.test.js.map +1 -0
- package/dist/src/backend/services/session/service/acp/acp-session-negotiation.integration.test.js +1 -1
- package/dist/src/backend/services/session/service/acp/acp-session-negotiation.integration.test.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/claude-model-catalog-loader.d.ts +7 -0
- package/dist/src/backend/services/session/service/acp/claude-model-catalog-loader.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/acp/claude-model-catalog-loader.js +160 -0
- package/dist/src/backend/services/session/service/acp/claude-model-catalog-loader.js.map +1 -0
- package/dist/src/backend/services/session/service/acp/claude-model-catalog-loader.test.d.ts +2 -0
- package/dist/src/backend/services/session/service/acp/claude-model-catalog-loader.test.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/acp/claude-model-catalog-loader.test.js +260 -0
- package/dist/src/backend/services/session/service/acp/claude-model-catalog-loader.test.js.map +1 -0
- package/dist/src/backend/services/session/service/acp/claude-model-options.d.ts +5 -0
- package/dist/src/backend/services/session/service/acp/claude-model-options.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/acp/claude-model-options.js +25 -0
- package/dist/src/backend/services/session/service/acp/claude-model-options.js.map +1 -0
- package/dist/src/backend/services/session/service/acp/claude-model-options.test.d.ts +2 -0
- package/dist/src/backend/services/session/service/acp/claude-model-options.test.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/acp/claude-model-options.test.js +49 -0
- package/dist/src/backend/services/session/service/acp/claude-model-options.test.js.map +1 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/adapter-state.d.ts +2 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/adapter-state.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-app-server-acp-adapter.d.ts +2 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-app-server-acp-adapter.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-app-server-acp-adapter.js +64 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-app-server-acp-adapter.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-app-server-acp-adapter.manual.integration.test.js +169 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-app-server-acp-adapter.manual.integration.test.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-app-server-acp-adapter.test.js +251 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-app-server-acp-adapter.test.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-controller.d.ts +38 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-controller.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-controller.js +287 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-controller.js.map +1 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-controller.test.d.ts +2 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-controller.test.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-controller.test.js +648 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-controller.test.js.map +1 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-mapper.d.ts +12 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-mapper.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-mapper.js +51 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-mapper.js.map +1 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-mapper.test.d.ts +2 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-mapper.test.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-mapper.test.js +85 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-subagent-mapper.test.js.map +1 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-zod.d.ts +154 -19
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-zod.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-zod.js +73 -4
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-zod.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-zod.test.js +86 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-zod.test.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/stream-event-handler.d.ts +7 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/stream-event-handler.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/stream-event-handler.js +85 -16
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/stream-event-handler.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/stream-event-handler.test.js +356 -0
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/stream-event-handler.test.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/index.d.ts +2 -1
- package/dist/src/backend/services/session/service/acp/index.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/acp/index.js +1 -0
- package/dist/src/backend/services/session/service/acp/index.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/types.d.ts +1 -0
- package/dist/src/backend/services/session/service/acp/types.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-event-forwarder.service.d.ts +3 -0
- package/dist/src/backend/services/session/service/chat/chat-event-forwarder.service.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-event-forwarder.service.js +44 -2
- package/dist/src/backend/services/session/service/chat/chat-event-forwarder.service.js.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-event-forwarder.service.test.d.ts +2 -0
- package/dist/src/backend/services/session/service/chat/chat-event-forwarder.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/chat/chat-event-forwarder.service.test.js +108 -0
- package/dist/src/backend/services/session/service/chat/chat-event-forwarder.service.test.js.map +1 -0
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/attachment-processing.test.js +21 -0
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/attachment-processing.test.js.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.js +3 -279
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.js.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.test.js +154 -7
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.test.js.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/queue-message.handler.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/queue-message.handler.js +4 -0
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/queue-message.handler.js.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/queue-message.handler.test.js +24 -0
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/queue-message.handler.test.js.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/stop.handler.js +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/stop.handler.js.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/stop.handler.test.js +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/stop.handler.test.js.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/image-format-validation.js +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/image-format-validation.js.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/utils.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/utils.js +1 -0
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/utils.js.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/utils.test.js +17 -0
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/utils.test.js.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.d.ts +2 -0
- package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.js +41 -9
- package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.js.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.test.js +180 -2
- package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.test.js.map +1 -1
- package/dist/src/backend/services/session/service/data/session-provider-resolver.service.test.js +6 -0
- package/dist/src/backend/services/session/service/data/session-provider-resolver.service.test.js.map +1 -1
- package/dist/src/backend/services/session/service/index.d.ts +5 -4
- package/dist/src/backend/services/session/service/index.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/index.js +4 -3
- package/dist/src/backend/services/session/service/index.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.d.ts +6 -1
- package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.js +59 -30
- package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.subagents.test.d.ts +2 -0
- package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.subagents.test.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.subagents.test.js +70 -0
- package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.subagents.test.js.map +1 -0
- package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.text-streaming.test.js +28 -0
- package/dist/src/backend/services/session/service/lifecycle/acp-event-processor.text-streaming.test.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-event.service.d.ts +26 -0
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-event.service.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-event.service.js +84 -0
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-event.service.js.map +1 -0
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-event.service.test.d.ts +2 -0
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-event.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-event.service.test.js +283 -0
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-event.service.test.js.map +1 -0
- package/dist/src/backend/services/session/service/lifecycle/session-provider-history-hydrator.d.ts +10 -0
- package/dist/src/backend/services/session/service/lifecycle/session-provider-history-hydrator.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/lifecycle/session-provider-history-hydrator.js +299 -0
- package/dist/src/backend/services/session/service/lifecycle/session-provider-history-hydrator.js.map +1 -0
- package/dist/src/backend/services/session/service/lifecycle/session-services.d.ts +2 -0
- package/dist/src/backend/services/session/service/lifecycle/session-services.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-services.js +11 -0
- package/dist/src/backend/services/session/service/lifecycle/session-services.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.config.service.d.ts +1 -0
- package/dist/src/backend/services/session/service/lifecycle/session.config.service.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.config.service.js +25 -4
- package/dist/src/backend/services/session/service/lifecycle/session.config.service.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.config.service.test.js +100 -5
- package/dist/src/backend/services/session/service/lifecycle/session.config.service.test.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.error-message.d.ts +2 -0
- package/dist/src/backend/services/session/service/lifecycle/session.error-message.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.error-message.js +21 -0
- package/dist/src/backend/services/session/service/lifecycle/session.error-message.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.error-message.test.js +26 -1
- package/dist/src/backend/services/session/service/lifecycle/session.error-message.test.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.d.ts +35 -2
- package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.js +427 -156
- package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.test.js +684 -15
- package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.test.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.prompt.service.test.js +206 -5
- package/dist/src/backend/services/session/service/lifecycle/session.prompt.service.test.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.service.d.ts +15 -2
- package/dist/src/backend/services/session/service/lifecycle/session.service.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.service.js +87 -14
- package/dist/src/backend/services/session/service/lifecycle/session.service.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.service.test.js +46 -7
- package/dist/src/backend/services/session/service/lifecycle/session.service.test.js.map +1 -1
- package/dist/src/backend/services/session/service/session-domain.service.d.ts +1 -0
- package/dist/src/backend/services/session/service/session-domain.service.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/session-domain.service.js +10 -0
- package/dist/src/backend/services/session/service/session-domain.service.js.map +1 -1
- package/dist/src/backend/services/session/service/session-domain.service.test.js +58 -0
- package/dist/src/backend/services/session/service/session-domain.service.test.js.map +1 -1
- package/dist/src/backend/services/session/service/store/session-lifecycle-transcript.d.ts +6 -0
- package/dist/src/backend/services/session/service/store/session-lifecycle-transcript.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/store/session-lifecycle-transcript.js +114 -0
- package/dist/src/backend/services/session/service/store/session-lifecycle-transcript.js.map +1 -0
- package/dist/src/backend/services/session/service/store/session-lifecycle-transcript.test.d.ts +2 -0
- package/dist/src/backend/services/session/service/store/session-lifecycle-transcript.test.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/store/session-lifecycle-transcript.test.js +129 -0
- package/dist/src/backend/services/session/service/store/session-lifecycle-transcript.test.js.map +1 -0
- package/dist/src/backend/services/session/service/store/session-store.types.d.ts +1 -1
- package/dist/src/backend/services/session/service/store/session-store.types.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/store/session-transcript.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/store/session-transcript.js +7 -4
- package/dist/src/backend/services/session/service/store/session-transcript.js.map +1 -1
- package/dist/src/backend/services/session/service/voice/voice-mode-instructions.d.ts +2 -0
- package/dist/src/backend/services/session/service/voice/voice-mode-instructions.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/voice/voice-mode-instructions.js +5 -0
- package/dist/src/backend/services/session/service/voice/voice-mode-instructions.js.map +1 -0
- package/dist/src/backend/services/session/service/voice/voice-narration.service.d.ts +28 -0
- package/dist/src/backend/services/session/service/voice/voice-narration.service.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/voice/voice-narration.service.js +431 -0
- package/dist/src/backend/services/session/service/voice/voice-narration.service.js.map +1 -0
- package/dist/src/backend/services/session/service/voice/voice-narration.service.test.d.ts +2 -0
- package/dist/src/backend/services/session/service/voice/voice-narration.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/voice/voice-narration.service.test.js +536 -0
- package/dist/src/backend/services/session/service/voice/voice-narration.service.test.js.map +1 -0
- package/dist/src/backend/services/settings/resources/user-settings.accessor.d.ts +6 -0
- package/dist/src/backend/services/settings/resources/user-settings.accessor.d.ts.map +1 -1
- package/dist/src/backend/services/settings/resources/user-settings.accessor.js +46 -17
- package/dist/src/backend/services/settings/resources/user-settings.accessor.js.map +1 -1
- package/dist/src/backend/services/settings/service/user-settings.service.d.ts +6 -0
- package/dist/src/backend/services/settings/service/user-settings.service.d.ts.map +1 -1
- package/dist/src/backend/services/settings/service/user-settings.service.js.map +1 -1
- package/dist/src/backend/services/workspace/service/lifecycle/creation.service.d.ts.map +1 -1
- package/dist/src/backend/services/workspace/service/lifecycle/creation.service.js +1 -0
- package/dist/src/backend/services/workspace/service/lifecycle/creation.service.js.map +1 -1
- package/dist/src/backend/services/workspace/service/lifecycle/creation.service.test.js +24 -0
- package/dist/src/backend/services/workspace/service/lifecycle/creation.service.test.js.map +1 -1
- package/dist/src/backend/services/workspace/service/worktree/worktree-lifecycle.service.d.ts +1 -0
- package/dist/src/backend/services/workspace/service/worktree/worktree-lifecycle.service.d.ts.map +1 -1
- package/dist/src/backend/services/workspace/service/worktree/worktree-lifecycle.service.js +23 -12
- package/dist/src/backend/services/workspace/service/worktree/worktree-lifecycle.service.js.map +1 -1
- package/dist/src/backend/services/workspace/service/worktree/worktree-lifecycle.service.test.js +59 -4
- package/dist/src/backend/services/workspace/service/worktree/worktree-lifecycle.service.test.js.map +1 -1
- package/dist/src/backend/trpc/admin.trpc.d.ts +10 -0
- package/dist/src/backend/trpc/admin.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/index.d.ts +631 -4
- package/dist/src/backend/trpc/index.d.ts.map +1 -1
- package/dist/src/backend/trpc/index.js +2 -0
- package/dist/src/backend/trpc/index.js.map +1 -1
- package/dist/src/backend/trpc/project.router.test.js +19 -0
- package/dist/src/backend/trpc/project.router.test.js.map +1 -1
- package/dist/src/backend/trpc/project.trpc.js +1 -1
- package/dist/src/backend/trpc/project.trpc.js.map +1 -1
- package/dist/src/backend/trpc/session.router.test.js +204 -2
- package/dist/src/backend/trpc/session.router.test.js.map +1 -1
- package/dist/src/backend/trpc/session.trpc.d.ts +539 -0
- package/dist/src/backend/trpc/session.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/session.trpc.js +57 -0
- package/dist/src/backend/trpc/session.trpc.js.map +1 -1
- package/dist/src/backend/trpc/user-settings.router.test.js +117 -6
- package/dist/src/backend/trpc/user-settings.router.test.js.map +1 -1
- package/dist/src/backend/trpc/user-settings.trpc.d.ts +16 -4
- package/dist/src/backend/trpc/user-settings.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/user-settings.trpc.js +25 -2
- package/dist/src/backend/trpc/user-settings.trpc.js.map +1 -1
- package/dist/src/backend/trpc/voice.trpc.d.ts +67 -0
- package/dist/src/backend/trpc/voice.trpc.d.ts.map +1 -0
- package/dist/src/backend/trpc/voice.trpc.js +156 -0
- package/dist/src/backend/trpc/voice.trpc.js.map +1 -0
- package/dist/src/backend/trpc/voice.trpc.test.d.ts +2 -0
- package/dist/src/backend/trpc/voice.trpc.test.d.ts.map +1 -0
- package/dist/src/backend/trpc/voice.trpc.test.js +259 -0
- package/dist/src/backend/trpc/voice.trpc.test.js.map +1 -0
- package/dist/src/cli/runtime-utils.d.ts.map +1 -1
- package/dist/src/cli/runtime-utils.js +4 -0
- package/dist/src/cli/runtime-utils.js.map +1 -1
- package/dist/src/cli/runtime-utils.test.js +7 -0
- package/dist/src/cli/runtime-utils.test.js.map +1 -1
- package/dist/src/shared/acp-protocol/index.d.ts +2 -0
- package/dist/src/shared/acp-protocol/index.d.ts.map +1 -1
- package/dist/src/shared/acp-protocol/index.js +2 -0
- package/dist/src/shared/acp-protocol/index.js.map +1 -1
- package/dist/src/shared/acp-protocol/protocol/messages.d.ts +18 -2
- package/dist/src/shared/acp-protocol/protocol/messages.d.ts.map +1 -1
- package/dist/src/shared/acp-protocol/protocol/messages.js +1 -0
- package/dist/src/shared/acp-protocol/protocol/messages.js.map +1 -1
- package/dist/src/shared/acp-protocol/protocol/queued.d.ts +1 -0
- package/dist/src/shared/acp-protocol/protocol/queued.d.ts.map +1 -1
- package/dist/src/shared/acp-protocol/protocol/renderer-window.d.ts.map +1 -1
- package/dist/src/shared/acp-protocol/protocol/renderer-window.js +3 -0
- package/dist/src/shared/acp-protocol/protocol/renderer-window.js.map +1 -1
- package/dist/src/shared/acp-protocol/protocol/websocket.d.ts +7 -0
- package/dist/src/shared/acp-protocol/protocol/websocket.d.ts.map +1 -1
- package/dist/src/shared/acp-protocol/protocol/websocket.js +1 -0
- package/dist/src/shared/acp-protocol/protocol/websocket.js.map +1 -1
- package/dist/src/shared/acp-protocol/session-update-translator.d.ts +39 -0
- package/dist/src/shared/acp-protocol/session-update-translator.d.ts.map +1 -0
- package/dist/src/shared/acp-protocol/session-update-translator.js +356 -0
- package/dist/src/shared/acp-protocol/session-update-translator.js.map +1 -0
- package/dist/src/shared/acp-protocol/subagents.d.ts +1175 -0
- package/dist/src/shared/acp-protocol/subagents.d.ts.map +1 -0
- package/dist/src/shared/acp-protocol/subagents.js +259 -0
- package/dist/src/shared/acp-protocol/subagents.js.map +1 -0
- package/dist/src/shared/core/enums.d.ts +16 -0
- package/dist/src/shared/core/enums.d.ts.map +1 -1
- package/dist/src/shared/core/enums.js +14 -0
- package/dist/src/shared/core/enums.js.map +1 -1
- package/dist/src/shared/core/index.d.ts +1 -1
- package/dist/src/shared/core/index.d.ts.map +1 -1
- package/dist/src/shared/core/index.js +1 -1
- package/dist/src/shared/core/index.js.map +1 -1
- package/dist/src/shared/deepgram-voices.d.ts +12 -0
- package/dist/src/shared/deepgram-voices.d.ts.map +1 -0
- package/dist/src/shared/deepgram-voices.js +51 -0
- package/dist/src/shared/deepgram-voices.js.map +1 -0
- package/dist/src/shared/issue-start-prompt.d.ts.map +1 -1
- package/dist/src/shared/issue-start-prompt.js +8 -3
- package/dist/src/shared/issue-start-prompt.js.map +1 -1
- package/dist/src/shared/schemas/export-data.schema.d.ts +10 -0
- package/dist/src/shared/schemas/export-data.schema.d.ts.map +1 -1
- package/dist/src/shared/schemas/export-data.schema.js +19 -0
- package/dist/src/shared/schemas/export-data.schema.js.map +1 -1
- package/dist/src/shared/voice-vad.d.ts +11 -0
- package/dist/src/shared/voice-vad.d.ts.map +1 -0
- package/dist/src/shared/voice-vad.js +19 -0
- package/dist/src/shared/voice-vad.js.map +1 -0
- package/dist/src/shared/websocket/chat-message.schema.d.ts +1 -0
- package/dist/src/shared/websocket/chat-message.schema.d.ts.map +1 -1
- package/dist/src/shared/websocket/chat-message.schema.js +1 -0
- package/dist/src/shared/websocket/chat-message.schema.js.map +1 -1
- package/dist/src/shared/websocket/voice-message.schema.d.ts +25 -0
- package/dist/src/shared/websocket/voice-message.schema.d.ts.map +1 -0
- package/dist/src/shared/websocket/voice-message.schema.js +14 -0
- package/dist/src/shared/websocket/voice-message.schema.js.map +1 -0
- package/dist/src/shared/workspace-snapshot.d.ts +5 -5
- package/dist/src/test-utils/application-graph.d.ts.map +1 -1
- package/dist/src/test-utils/application-graph.js +10 -2
- package/dist/src/test-utils/application-graph.js.map +1 -1
- package/dist/tsconfig.backend.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/prisma/migrations/20260730140000_add_session_lifecycle_events/migration.sql +20 -0
- package/prisma/migrations/20260802152257_add_voice_mode_settings/migration.sql +34 -0
- package/prisma/migrations/20260802200414_add_voice_tts_model_and_speed/migration.sql +36 -0
- package/prisma/migrations/20260807222320_voice_vad_aggressiveness_settings/migration.sql +38 -0
- package/prisma/schema.prisma +41 -0
- package/dist/client/assets/architectureDiagram-ZJ3FMSHR-Cz-V9xRh.js +0 -36
- package/dist/client/assets/channel-DVMObwOq.js +0 -1
- package/dist/client/assets/classDiagram-OUVF2IWQ-wHGXcbfd.js +0 -1
- package/dist/client/assets/classDiagram-v2-EOCWNBFH-wHGXcbfd.js +0 -1
- package/dist/client/assets/diagram-WEI45ONY-DF667tXW.js +0 -41
- package/dist/client/assets/index-CpvT2M5m.js +0 -689
- package/dist/client/assets/index-CwfNzqG5.css +0 -1
- package/dist/client/assets/stateDiagram-v2-6OUMAXLB-CGxDgHho.js +0 -1
- package/dist/client/assets/swimlanesDiagram-G3AALYLV-1u_1g3u4.js +0 -8
|
@@ -1,15 +1,39 @@
|
|
|
1
1
|
import pLimit from 'p-limit';
|
|
2
2
|
import { createLogger } from '../../../../../backend/services/logger.service.js';
|
|
3
|
-
import {
|
|
3
|
+
import { PromptTimeoutError } from '../../../../../backend/services/session/service/acp/index.js';
|
|
4
|
+
import { SessionLifecycleEventKind, SessionLifecycleEventReason } from '../../../../../shared/core/index.js';
|
|
5
|
+
import { toErrorMessage, toProviderFailureChatMessage } from './session.error-message.js';
|
|
4
6
|
const logger = createLogger('session');
|
|
5
|
-
const DEFAULT_USER_PROMPT_TIMEOUT_MS = 60 * 60 * 1000;
|
|
7
|
+
const DEFAULT_USER_PROMPT_TIMEOUT_MS = 4 * 60 * 60 * 1000;
|
|
6
8
|
const TURN_ALREADY_IN_PROGRESS_REASON = 'A turn is already in progress for this session';
|
|
9
|
+
function formatTimeoutDuration(timeoutMs) {
|
|
10
|
+
const units = [
|
|
11
|
+
{ milliseconds: 60 * 60 * 1000, label: 'hour' },
|
|
12
|
+
{ milliseconds: 60 * 1000, label: 'minute' },
|
|
13
|
+
{ milliseconds: 1000, label: 'second' },
|
|
14
|
+
];
|
|
15
|
+
for (const unit of units) {
|
|
16
|
+
if (timeoutMs >= unit.milliseconds && timeoutMs % unit.milliseconds === 0) {
|
|
17
|
+
const value = timeoutMs / unit.milliseconds;
|
|
18
|
+
return `${value}-${unit.label}`;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return `${timeoutMs}-millisecond`;
|
|
22
|
+
}
|
|
23
|
+
function timeoutMessage(timeoutMs, timeoutKind) {
|
|
24
|
+
if (timeoutKind === 'standard_user_turn' && timeoutMs === DEFAULT_USER_PROMPT_TIMEOUT_MS) {
|
|
25
|
+
return 'Turn stopped: reached the 4-hour limit.';
|
|
26
|
+
}
|
|
27
|
+
return `Turn stopped: reached the configured ${formatTimeoutDuration(timeoutMs)} limit.`;
|
|
28
|
+
}
|
|
7
29
|
export class SessionService {
|
|
8
30
|
runtimeManager;
|
|
9
31
|
sessionDomainService;
|
|
10
32
|
acpEventProcessor;
|
|
11
33
|
promptTurnCompletionService;
|
|
34
|
+
lifecycleEventService;
|
|
12
35
|
getStopGeneration;
|
|
36
|
+
isStopGenerationCurrent;
|
|
13
37
|
isSessionStopping;
|
|
14
38
|
acpPromptLimiters = new Map();
|
|
15
39
|
workspaceBridge = null;
|
|
@@ -18,7 +42,9 @@ export class SessionService {
|
|
|
18
42
|
this.sessionDomainService = options.sessionDomainService;
|
|
19
43
|
this.acpEventProcessor = options.acpEventProcessor;
|
|
20
44
|
this.promptTurnCompletionService = options.promptTurnCompletionService;
|
|
45
|
+
this.lifecycleEventService = options.lifecycleEventService;
|
|
21
46
|
this.getStopGeneration = options.getStopGeneration;
|
|
47
|
+
this.isStopGenerationCurrent = options.isStopGenerationCurrent;
|
|
22
48
|
this.isSessionStopping = options.isSessionStopping;
|
|
23
49
|
}
|
|
24
50
|
configure(bridges) {
|
|
@@ -30,7 +56,9 @@ export class SessionService {
|
|
|
30
56
|
const prompt = typeof content === 'string'
|
|
31
57
|
? [{ type: 'text', text: content }]
|
|
32
58
|
: this.toContentBlocks(content, acpClient.supportsImages());
|
|
33
|
-
return this.sendAcpMessage(sessionId, prompt, DEFAULT_USER_PROMPT_TIMEOUT_MS
|
|
59
|
+
return this.sendAcpMessage(sessionId, prompt, DEFAULT_USER_PROMPT_TIMEOUT_MS, {
|
|
60
|
+
timeoutKind: 'standard_user_turn',
|
|
61
|
+
})
|
|
34
62
|
.then(() => undefined)
|
|
35
63
|
.catch((error) => {
|
|
36
64
|
const errorMessage = toErrorMessage(error);
|
|
@@ -89,8 +117,8 @@ export class SessionService {
|
|
|
89
117
|
}
|
|
90
118
|
return blocks;
|
|
91
119
|
}
|
|
92
|
-
sendAcpMessage(sessionId, prompt, timeoutMs) {
|
|
93
|
-
return this.withSerializedAcpPrompt(sessionId, () => this.executeAcpMessage(sessionId, prompt, timeoutMs));
|
|
120
|
+
sendAcpMessage(sessionId, prompt, timeoutMs, options) {
|
|
121
|
+
return this.withSerializedAcpPrompt(sessionId, () => this.executeAcpMessage(sessionId, prompt, timeoutMs, options?.timeoutKind ?? 'configured'));
|
|
94
122
|
}
|
|
95
123
|
withSerializedAcpPrompt(sessionId, task) {
|
|
96
124
|
const limiter = this.getAcpPromptLimiter(sessionId);
|
|
@@ -123,14 +151,14 @@ export class SessionService {
|
|
|
123
151
|
this.acpPromptLimiters.set(sessionId, limiter);
|
|
124
152
|
return limiter;
|
|
125
153
|
}
|
|
126
|
-
async executeAcpMessage(sessionId, prompt, timeoutMs) {
|
|
154
|
+
async executeAcpMessage(sessionId, prompt, timeoutMs, timeoutKind) {
|
|
127
155
|
const stopGeneration = this.getStopGeneration(sessionId);
|
|
128
156
|
const workspaceId = this.acpEventProcessor.getWorkspaceId(sessionId);
|
|
129
157
|
let workspaceActivityGeneration;
|
|
130
158
|
let promptCompleted = false;
|
|
131
159
|
let promptError;
|
|
132
160
|
let promptErrorSet = false;
|
|
133
|
-
this.acpEventProcessor.beginPromptTurn(sessionId);
|
|
161
|
+
const attemptKey = this.acpEventProcessor.beginPromptTurn(sessionId);
|
|
134
162
|
this.sessionDomainService.setRuntimeSnapshot(sessionId, {
|
|
135
163
|
phase: 'running',
|
|
136
164
|
processState: 'alive',
|
|
@@ -143,17 +171,25 @@ export class SessionService {
|
|
|
143
171
|
try {
|
|
144
172
|
const result = await this.runtimeManager.sendPrompt(sessionId, prompt, timeoutMs);
|
|
145
173
|
promptCompleted = true;
|
|
146
|
-
this.
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
updatedAt: new Date().toISOString(),
|
|
174
|
+
this.completeSuccessfulPromptTurn({
|
|
175
|
+
sessionId,
|
|
176
|
+
stopGeneration,
|
|
177
|
+
stopReason: result.stopReason,
|
|
151
178
|
});
|
|
152
179
|
return result.stopReason;
|
|
153
180
|
}
|
|
154
181
|
catch (error) {
|
|
155
182
|
promptError = error;
|
|
156
183
|
promptErrorSet = true;
|
|
184
|
+
if (this.shouldRecordPromptFailure(sessionId, stopGeneration, error)) {
|
|
185
|
+
await this.recordPromptFailure({
|
|
186
|
+
sessionId,
|
|
187
|
+
workspaceId,
|
|
188
|
+
attemptKey,
|
|
189
|
+
error,
|
|
190
|
+
timeoutKind,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
157
193
|
this.completePromptTurnIfCurrent(sessionId, stopGeneration, 'prompt_error', {
|
|
158
194
|
phase: 'error',
|
|
159
195
|
processState: 'alive',
|
|
@@ -174,13 +210,50 @@ export class SessionService {
|
|
|
174
210
|
}
|
|
175
211
|
if ((promptCompleted || (promptErrorSet && !this.isTurnAlreadyInProgressError(promptError))) &&
|
|
176
212
|
!this.isSessionStopping(sessionId) &&
|
|
177
|
-
this.
|
|
213
|
+
this.isStopGenerationCurrent(sessionId, stopGeneration)) {
|
|
178
214
|
this.promptTurnCompletionService.schedule(sessionId);
|
|
179
215
|
}
|
|
180
216
|
}
|
|
181
217
|
}
|
|
218
|
+
completeSuccessfulPromptTurn({ sessionId, stopGeneration, stopReason, }) {
|
|
219
|
+
this.completePromptTurnIfCurrent(sessionId, stopGeneration, `stop_reason:${stopReason}`, {
|
|
220
|
+
phase: 'idle',
|
|
221
|
+
processState: 'alive',
|
|
222
|
+
activity: 'IDLE',
|
|
223
|
+
updatedAt: new Date().toISOString(),
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
async recordPromptFailure({ sessionId, workspaceId, attemptKey, error, timeoutKind, }) {
|
|
227
|
+
const reason = error instanceof PromptTimeoutError
|
|
228
|
+
? SessionLifecycleEventReason.PROMPT_TIMEOUT
|
|
229
|
+
: SessionLifecycleEventReason.PROVIDER_ERROR;
|
|
230
|
+
if (!workspaceId) {
|
|
231
|
+
logger.warn('Skipped prompt failure lifecycle event without workspace owner', {
|
|
232
|
+
sessionId,
|
|
233
|
+
attemptKey,
|
|
234
|
+
reason,
|
|
235
|
+
});
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
await this.lifecycleEventService.record({
|
|
239
|
+
workspaceId,
|
|
240
|
+
sessionId,
|
|
241
|
+
kind: SessionLifecycleEventKind.TURN_INTERRUPTED,
|
|
242
|
+
reason,
|
|
243
|
+
message: error instanceof PromptTimeoutError
|
|
244
|
+
? timeoutMessage(error.timeoutMs, timeoutKind)
|
|
245
|
+
: toProviderFailureChatMessage(this.acpEventProcessor.getProvider(sessionId), error),
|
|
246
|
+
dedupeKey: `turn:${attemptKey}:stop`,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
shouldRecordPromptFailure(sessionId, stopGeneration, error) {
|
|
250
|
+
if (this.isTurnAlreadyInProgressError(error) || this.isSessionStopping(sessionId)) {
|
|
251
|
+
return false;
|
|
252
|
+
}
|
|
253
|
+
return this.getStopGeneration(sessionId) === stopGeneration;
|
|
254
|
+
}
|
|
182
255
|
completePromptTurnIfCurrent(sessionId, stopGeneration, orphanedToolCallReason, runtime) {
|
|
183
|
-
if (this.
|
|
256
|
+
if (!this.isStopGenerationCurrent(sessionId, stopGeneration)) {
|
|
184
257
|
return;
|
|
185
258
|
}
|
|
186
259
|
this.acpEventProcessor.finishPromptTurn(sessionId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.service.js","sourceRoot":"","sources":["../../../../../../../src/backend/services/session/service/lifecycle/session.service.ts"],"names":[],"mappings":"AACA,OAAO,MAA8B,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"session.service.js","sourceRoot":"","sources":["../../../../../../../src/backend/services/session/service/lifecycle/session.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,12 +33,14 @@ vi.mock('@/backend/services/session/service/acp', async (importOriginal) => {
|
|
|
33
33
|
getClient: vi.fn().mockReturnValue(undefined),
|
|
34
34
|
getOrCreateClient: vi.fn(),
|
|
35
35
|
stopClient: vi.fn(),
|
|
36
|
+
beginShutdown: vi.fn().mockReturnValue([]),
|
|
36
37
|
stopAllClients: vi.fn(),
|
|
37
38
|
sendPrompt: vi.fn(),
|
|
38
39
|
cancelPrompt: vi.fn(),
|
|
39
40
|
isSessionRunning: vi.fn().mockReturnValue(false),
|
|
40
41
|
isSessionWorking: vi.fn().mockReturnValue(false),
|
|
41
42
|
isAnySessionWorking: vi.fn().mockReturnValue(false),
|
|
43
|
+
isBrowseOnlySession: vi.fn().mockReturnValue(false),
|
|
42
44
|
isStopInProgress: vi.fn().mockReturnValue(false),
|
|
43
45
|
setConfigOption: vi.fn(),
|
|
44
46
|
setSessionMode: vi.fn(),
|
|
@@ -133,6 +135,7 @@ describe('SessionService', () => {
|
|
|
133
135
|
vi.mocked(acpRuntimeManager.isSessionRunning).mockReturnValue(false);
|
|
134
136
|
vi.mocked(acpRuntimeManager.isSessionWorking).mockReturnValue(false);
|
|
135
137
|
vi.mocked(acpRuntimeManager.isAnySessionWorking).mockReturnValue(false);
|
|
138
|
+
vi.mocked(acpRuntimeManager.isBrowseOnlySession).mockReturnValue(false);
|
|
136
139
|
vi.mocked(acpRuntimeManager.isStopInProgress).mockReturnValue(false);
|
|
137
140
|
vi.mocked(workspaceDataService.findById).mockResolvedValue(unsafeCoerce({
|
|
138
141
|
id: 'workspace-1',
|
|
@@ -674,13 +677,25 @@ describe('SessionService', () => {
|
|
|
674
677
|
status: SessionStatus.IDLE,
|
|
675
678
|
}, [SessionStatus.RUNNING]);
|
|
676
679
|
});
|
|
677
|
-
it('
|
|
680
|
+
it('waits for an existing runtime stop before clearing lifecycle state', async () => {
|
|
681
|
+
const runtimeStop = createDeferred();
|
|
682
|
+
const acpProcessor = getAcpProcessorState();
|
|
678
683
|
vi.mocked(acpRuntimeManager.isStopInProgress).mockReturnValue(true);
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
+
vi.mocked(acpRuntimeManager.stopClient).mockReturnValue(runtimeStop.promise);
|
|
685
|
+
acpProcessor.beginPromptTurn('session-1');
|
|
686
|
+
try {
|
|
687
|
+
const stopPromise = sessionLifecycleService.stopSession('session-1');
|
|
688
|
+
await vi.waitFor(() => {
|
|
689
|
+
expect(acpRuntimeManager.stopClient).toHaveBeenCalledWith('session-1');
|
|
690
|
+
});
|
|
691
|
+
expect(acpProcessor.getActivePromptAttemptKey('session-1')).toBeDefined();
|
|
692
|
+
runtimeStop.resolve();
|
|
693
|
+
await stopPromise;
|
|
694
|
+
expect(acpProcessor.getActivePromptAttemptKey('session-1')).toBeUndefined();
|
|
695
|
+
}
|
|
696
|
+
finally {
|
|
697
|
+
acpProcessor.clearSessionState('session-1');
|
|
698
|
+
}
|
|
684
699
|
});
|
|
685
700
|
it('rejects startup and client acquisition after lifecycle stop is reserved', async () => {
|
|
686
701
|
const session = unsafeCoerce({
|
|
@@ -1023,6 +1038,29 @@ describe('SessionService', () => {
|
|
|
1023
1038
|
}
|
|
1024
1039
|
expect(clearSessionSpy).not.toHaveBeenCalled();
|
|
1025
1040
|
});
|
|
1041
|
+
it('clears the active prompt attempt after managed stop with a connected viewer', async () => {
|
|
1042
|
+
const sessionId = 'session-stopped-with-active-prompt';
|
|
1043
|
+
const prompt = createDeferred();
|
|
1044
|
+
vi.mocked(acpRuntimeManager.sendPrompt).mockReturnValue(prompt.promise);
|
|
1045
|
+
vi.mocked(acpRuntimeManager.stopClient).mockResolvedValue();
|
|
1046
|
+
sessionEventBus.registerViewerCountProvider((viewedSessionId) => viewedSessionId === sessionId ? 1 : 0);
|
|
1047
|
+
try {
|
|
1048
|
+
const sendPromise = sessionService.sendAcpMessage(sessionId, [
|
|
1049
|
+
{ type: 'text', text: 'hello' },
|
|
1050
|
+
]);
|
|
1051
|
+
await vi.waitFor(() => {
|
|
1052
|
+
expect(getAcpProcessorState().getActivePromptAttemptKey(sessionId)).toBeDefined();
|
|
1053
|
+
});
|
|
1054
|
+
await sessionLifecycleService.stopSession(sessionId);
|
|
1055
|
+
prompt.reject(new Error('Prompt timed out'));
|
|
1056
|
+
await expect(sendPromise).rejects.toThrow('Prompt timed out');
|
|
1057
|
+
expect(getAcpProcessorState().getActivePromptAttemptKey(sessionId)).toBeUndefined();
|
|
1058
|
+
}
|
|
1059
|
+
finally {
|
|
1060
|
+
getAcpProcessorState().clearSessionState(sessionId);
|
|
1061
|
+
sessionEventBus.registerViewerCountProvider(null);
|
|
1062
|
+
}
|
|
1063
|
+
});
|
|
1026
1064
|
it('marks workspace session idle during manual stop', async () => {
|
|
1027
1065
|
const markSessionIdle = vi.fn();
|
|
1028
1066
|
sessionLifecycleService.configure({
|
|
@@ -1542,6 +1580,7 @@ describe('SessionService', () => {
|
|
|
1542
1580
|
text: 'recover after crash',
|
|
1543
1581
|
timestamp: '2026-07-29T12:00:00.000Z',
|
|
1544
1582
|
attachments: undefined,
|
|
1583
|
+
voiceMode: undefined,
|
|
1545
1584
|
sessionId,
|
|
1546
1585
|
},
|
|
1547
1586
|
},
|
|
@@ -1758,7 +1797,7 @@ describe('SessionService', () => {
|
|
|
1758
1797
|
const acpProcessor = getAcpProcessorState();
|
|
1759
1798
|
vi.mocked(acpRuntimeManager.isSessionRunning).mockReturnValue(true);
|
|
1760
1799
|
vi.mocked(acpRuntimeManager.isSessionWorking).mockReturnValue(true);
|
|
1761
|
-
vi.mocked(acpRuntimeManager.cancelPrompt).mockResolvedValue(
|
|
1800
|
+
vi.mocked(acpRuntimeManager.cancelPrompt).mockResolvedValue(true);
|
|
1762
1801
|
acpProcessor.registerSessionContext('session-1', {
|
|
1763
1802
|
workspaceId: 'workspace-1',
|
|
1764
1803
|
workingDir: '/tmp/work',
|