@cloudcli-ai/cloudcli 1.37.2 → 1.37.4
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 +269 -0
- package/dist/assets/{abnfDiagram-N423BO3Z-C4UAoHJb.js → abnfDiagram-N423BO3Z-Dmkwx38H.js} +1 -1
- package/dist/assets/{arc-B8jF-ja9.js → arc-DLe9AYuO.js} +1 -1
- package/dist/assets/{architectureDiagram-T3A2C74G-C_Wur_CU.js → architectureDiagram-T3A2C74G-CBbbbNUW.js} +1 -1
- package/dist/assets/{blockDiagram-VBNYF7ZC-Cq4P1i8t.js → blockDiagram-VBNYF7ZC-CaMEaWu4.js} +1 -1
- package/dist/assets/{c4Diagram-5PPSVZJV-C1wG4eUj.js → c4Diagram-5PPSVZJV-DhjMgNnR.js} +1 -1
- package/dist/assets/channel-CWrmwsir.js +1 -0
- package/dist/assets/{chunk-2GRJ4B5K-B8fnBG6E.js → chunk-2GRJ4B5K-yjl3-F-i.js} +1 -1
- package/dist/assets/{chunk-2Q5K7J3B-WdfPooPJ.js → chunk-2Q5K7J3B-DsAYaWEP.js} +1 -1
- package/dist/assets/{chunk-5RXB4S5H-DhZJuG2E.js → chunk-5RXB4S5H-Bt5qmqOX.js} +1 -1
- package/dist/assets/{chunk-5VM5RSS4-B0rjslal.js → chunk-5VM5RSS4-yWrWVvUt.js} +1 -1
- package/dist/assets/{chunk-6Q2QTUOP-CG2Oj4jL.js → chunk-6Q2QTUOP-Dt66K5xb.js} +1 -1
- package/dist/assets/{chunk-GF5L2VYU-rrl2lRxY.js → chunk-GF5L2VYU-DA0vzaj4.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-CjVbrVMA.js → chunk-JWPE2WC7-CUkbx96V.js} +1 -1
- package/dist/assets/{chunk-KBJHAD2P-CRzKgU8S.js → chunk-KBJHAD2P-DWKxx1WH.js} +1 -1
- package/dist/assets/{chunk-RYQCIY6F-DBz4GTZF.js → chunk-RYQCIY6F-BqluplN0.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-wHxalsXk.js → chunk-XXDRQBXY-DelKg3Xf.js} +1 -1
- package/dist/assets/classDiagram-JCYQIIEL-COAGCC6w.js +1 -0
- package/dist/assets/classDiagram-v2-OCEON4UE-COAGCC6w.js +1 -0
- package/dist/assets/{cose-bilkent-JH36ORCC-s1hygY8e.js → cose-bilkent-JH36ORCC-DHV93-Em.js} +1 -1
- package/dist/assets/{cynefin-VYW2F7L2-C4LGV15i.js → cynefin-VYW2F7L2-B9HZgoGX.js} +1 -1
- package/dist/assets/{cynefinDiagram-MW4NZA55-C5uhu7B3.js → cynefinDiagram-MW4NZA55-hFjjEQg8.js} +1 -1
- package/dist/assets/{dagre-VZM6K2ZE-B-OBTewm.js → dagre-VZM6K2ZE-CpeVOC7V.js} +1 -1
- package/dist/assets/{diagram-7IWD3JNH-BjGKQxih.js → diagram-7IWD3JNH-D0H1UoRA.js} +1 -1
- package/dist/assets/{diagram-B4RE2ZJO-BMKz1X2L.js → diagram-B4RE2ZJO-6Y7BQUup.js} +1 -1
- package/dist/assets/{diagram-LBJQPF4R-DNh-GhKC.js → diagram-LBJQPF4R-C0nNOwht.js} +1 -1
- package/dist/assets/{diagram-Q27KOJAE-BaTG9jPT.js → diagram-Q27KOJAE-En6QlOVX.js} +1 -1
- package/dist/assets/{diagram-UB23O5K3-BUwo2OvJ.js → diagram-UB23O5K3-CmPiNeGD.js} +1 -1
- package/dist/assets/{ebnfDiagram-BXEA7PRR-DAZgfzX2.js → ebnfDiagram-BXEA7PRR-Bygzp1Qt.js} +1 -1
- package/dist/assets/{erDiagram-JOGREHBK-1w1CcGEb.js → erDiagram-JOGREHBK-CwScRfzl.js} +1 -1
- package/dist/assets/{flowDiagram-UKHOOZJN-D4EII8Jj.js → flowDiagram-UKHOOZJN-bKX-0xP6.js} +1 -1
- package/dist/assets/{ganttDiagram-PKOTCBZU-ChvJZAgB.js → ganttDiagram-PKOTCBZU-DtZPKXGd.js} +1 -1
- package/dist/assets/{gitGraphDiagram-DS77QQ5N-DtOn41S8.js → gitGraphDiagram-DS77QQ5N-CUOtdL1o.js} +1 -1
- package/dist/assets/index-CdjIFxM2.js +5004 -0
- package/dist/assets/index-DgafhGTF.css +32 -0
- package/dist/assets/{infoDiagram-6WML65LV-DN_PVEJZ.js → infoDiagram-6WML65LV-ciRQTS0h.js} +1 -1
- package/dist/assets/{ishikawaDiagram-WSZJBQD7-DbkF1kXb.js → ishikawaDiagram-WSZJBQD7-CgjhQZ84.js} +1 -1
- package/dist/assets/{journeyDiagram-NVQOT4AX-pJwmhddE.js → journeyDiagram-NVQOT4AX-BsbQSeIW.js} +1 -1
- package/dist/assets/{kanban-definition-27J2QSJJ-PPAPgNp5.js → kanban-definition-27J2QSJJ-CrwzY9Jw.js} +1 -1
- package/dist/assets/{linear-iPR-J9f7.js → linear-BUaCDr6l.js} +1 -1
- package/dist/assets/{mermaid.core-BEUL86Z6.js → mermaid.core-ClgdUU0j.js} +5 -5
- package/dist/assets/{mindmap-definition-FAOFIHXS-BvZoBib7.js → mindmap-definition-FAOFIHXS-BictljY1.js} +1 -1
- package/dist/assets/{pegDiagram-VL7TDLO6-DhYreaUd.js → pegDiagram-VL7TDLO6-BXdByy_U.js} +1 -1
- package/dist/assets/{pieDiagram-7S7Q4E2Y-CrOHlyD0.js → pieDiagram-7S7Q4E2Y-uZsMfkRX.js} +1 -1
- package/dist/assets/{quadrantDiagram-CIZ2JOQS-D4g5yH3t.js → quadrantDiagram-CIZ2JOQS-7lCv4QIj.js} +1 -1
- package/dist/assets/{railroadDiagram-AXF67PYL-Dj39lHlf.js → railroadDiagram-AXF67PYL-07dxIWbi.js} +1 -1
- package/dist/assets/{requirementDiagram-LRYGKXZP-1AS4Zgm_.js → requirementDiagram-LRYGKXZP-Cb31Yv1_.js} +1 -1
- package/dist/assets/{sankeyDiagram-W5VNT64P-CKlMn19P.js → sankeyDiagram-W5VNT64P-X0YPSyF9.js} +1 -1
- package/dist/assets/{sequenceDiagram-SI44F4Z6-B_j3qyvo.js → sequenceDiagram-SI44F4Z6-BdBxSIlP.js} +1 -1
- package/dist/assets/server.browser-CtX3Hdl5.js +27 -0
- package/dist/assets/{sizeCapture-X5ZJPWSS-Bp2Op16v.js → sizeCapture-X5ZJPWSS-DQM5xAyD.js} +1 -1
- package/dist/assets/{stateDiagram-OKZ733FA-C0cN6DoY.js → stateDiagram-OKZ733FA-DJ3xkLUF.js} +1 -1
- package/dist/assets/stateDiagram-v2-UEYNNEHI-vAaE4zNo.js +1 -0
- package/dist/assets/{swimlanes-SLNWSIFB-BEvXOV9b.js → swimlanes-SLNWSIFB-rjfYdW0w.js} +2 -2
- package/dist/assets/swimlanesDiagram-ULZ7WXOC-TV2IF4Nq.js +8 -0
- package/dist/assets/{timeline-definition-Z64GVDOM-zdJQinvZ.js → timeline-definition-Z64GVDOM-DZMra5do.js} +1 -1
- package/dist/assets/{vendor-codemirror-OwyKSvPE.js → vendor-codemirror-CYrSt7-U.js} +18 -18
- package/dist/assets/{vennDiagram-T6HMQDX7-DuF1uZMY.js → vennDiagram-T6HMQDX7-BevD8uu0.js} +1 -1
- package/dist/assets/{wardleyDiagram-T6FBY63Y-B9AlLQup.js → wardleyDiagram-T6FBY63Y-DsIyXB7z.js} +1 -1
- package/dist/assets/{xychartDiagram-ELKLHX3M-DTJX48Qg.js → xychartDiagram-ELKLHX3M-G3PlF3ko.js} +1 -1
- package/dist/index.html +3 -3
- package/dist-server/server/index.js +11 -4
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/modules/agent/agent.module.js +9 -2
- package/dist-server/server/modules/agent/agent.module.js.map +1 -1
- package/dist-server/server/modules/agent/agent.routes.js +177 -130
- package/dist-server/server/modules/agent/agent.routes.js.map +1 -1
- package/dist-server/server/modules/agent/tests/agent-run-registration.test.js +306 -0
- package/dist-server/server/modules/agent/tests/agent-run-registration.test.js.map +1 -0
- package/dist-server/server/modules/agent/tests/agent.routes.test.js +48 -2
- package/dist-server/server/modules/agent/tests/agent.routes.test.js.map +1 -1
- package/dist-server/server/modules/browser-use/browser-use.routes.js +39 -33
- package/dist-server/server/modules/browser-use/browser-use.routes.js.map +1 -1
- package/dist-server/server/modules/database/connection.js +1 -1
- package/dist-server/server/modules/database/connection.js.map +1 -1
- package/dist-server/server/modules/database/index.js +5 -0
- package/dist-server/server/modules/database/index.js.map +1 -1
- package/dist-server/server/modules/database/migrations.js +45 -1
- package/dist-server/server/modules/database/migrations.js.map +1 -1
- package/dist-server/server/modules/database/repositories/provider-models.js +60 -6
- package/dist-server/server/modules/database/repositories/provider-models.js.map +1 -1
- package/dist-server/server/modules/database/repositories/scheduled-messages.db.js +71 -0
- package/dist-server/server/modules/database/repositories/scheduled-messages.db.js.map +1 -0
- package/dist-server/server/modules/database/repositories/session-drafts.db.js +105 -0
- package/dist-server/server/modules/database/repositories/session-drafts.db.js.map +1 -0
- package/dist-server/server/modules/database/repositories/sessions.db.js +144 -5
- package/dist-server/server/modules/database/repositories/sessions.db.js.map +1 -1
- package/dist-server/server/modules/database/repositories/user-preferences.db.js +65 -0
- package/dist-server/server/modules/database/repositories/user-preferences.db.js.map +1 -0
- package/dist-server/server/modules/database/schema.js +99 -0
- package/dist-server/server/modules/database/schema.js.map +1 -1
- package/dist-server/server/modules/database/tests/provider-models.db.integration.test.js +99 -0
- package/dist-server/server/modules/database/tests/provider-models.db.integration.test.js.map +1 -1
- package/dist-server/server/modules/database/tests/sessions.db.integration.test.js +39 -0
- package/dist-server/server/modules/database/tests/sessions.db.integration.test.js.map +1 -1
- package/dist-server/server/modules/database/tests/user-preferences.db.integration.test.js +105 -0
- package/dist-server/server/modules/database/tests/user-preferences.db.integration.test.js.map +1 -0
- package/dist-server/server/modules/file-tree/file-tree.module.js +2 -1
- package/dist-server/server/modules/file-tree/file-tree.module.js.map +1 -1
- package/dist-server/server/modules/file-tree/file-tree.service.js +44 -7
- package/dist-server/server/modules/file-tree/file-tree.service.js.map +1 -1
- package/dist-server/server/modules/file-tree/tests/file-tree.service.test.js +126 -1
- package/dist-server/server/modules/file-tree/tests/file-tree.service.test.js.map +1 -1
- package/dist-server/server/modules/git/git-branch-diff.service.js +142 -0
- package/dist-server/server/modules/git/git-branch-diff.service.js.map +1 -0
- package/dist-server/server/modules/git/git-branch.service.js.map +1 -1
- package/dist-server/server/modules/git/git.routes.js +92 -5
- package/dist-server/server/modules/git/git.routes.js.map +1 -1
- package/dist-server/server/modules/git/tests/git-branch-diff.service.test.js +160 -0
- package/dist-server/server/modules/git/tests/git-branch-diff.service.test.js.map +1 -0
- package/dist-server/server/modules/projects/project-clone.routes.js +108 -0
- package/dist-server/server/modules/projects/project-clone.routes.js.map +1 -0
- package/dist-server/server/modules/projects/projects.routes.js +13 -66
- package/dist-server/server/modules/projects/projects.routes.js.map +1 -1
- package/dist-server/server/modules/projects/services/project-clone-request.service.js +36 -0
- package/dist-server/server/modules/projects/services/project-clone-request.service.js.map +1 -0
- package/dist-server/server/modules/projects/services/project-clone.service.js +86 -32
- package/dist-server/server/modules/projects/services/project-clone.service.js.map +1 -1
- package/dist-server/server/modules/projects/services/project-delete.service.js +12 -1
- package/dist-server/server/modules/projects/services/project-delete.service.js.map +1 -1
- package/dist-server/server/modules/projects/services/project-star.service.js +2 -2
- package/dist-server/server/modules/projects/services/project-star.service.js.map +1 -1
- package/dist-server/server/modules/projects/tests/project-clone.routes.test.js +191 -0
- package/dist-server/server/modules/projects/tests/project-clone.routes.test.js.map +1 -0
- package/dist-server/server/modules/projects/tests/project-clone.service.test.js +275 -0
- package/dist-server/server/modules/projects/tests/project-clone.service.test.js.map +1 -1
- package/dist-server/server/modules/providers/index.js +3 -0
- package/dist-server/server/modules/providers/index.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js +62 -9
- package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-fork.provider.js +46 -0
- package/dist-server/server/modules/providers/list/claude/claude-fork.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-models.provider.js +31 -12
- package/dist-server/server/modules/providers/list/claude/claude-models.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-runtime.provider.js +472 -53
- package/dist-server/server/modules/providers/list/claude/claude-runtime.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js +38 -11
- package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js +1007 -60
- package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-skills.provider.js +4 -1
- package/dist-server/server/modules/providers/list/claude/claude-skills.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude.provider.js +2 -0
- package/dist-server/server/modules/providers/list/claude/claude.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-app-server.client.js +204 -0
- package/dist-server/server/modules/providers/list/codex/codex-app-server.client.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-fork.provider.js +32 -0
- package/dist-server/server/modules/providers/list/codex/codex-fork.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-models.provider.js +47 -0
- package/dist-server/server/modules/providers/list/codex/codex-models.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-runtime.provider.js +71 -53
- package/dist-server/server/modules/providers/list/codex/codex-runtime.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js +8 -0
- package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js +1621 -431
- package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex.provider.js +2 -0
- package/dist-server/server/modules/providers/list/codex/codex.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor-auth.provider.js +9 -2
- package/dist-server/server/modules/providers/list/cursor/cursor-auth.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor-runtime.provider.js +16 -8
- package/dist-server/server/modules/providers/list/cursor/cursor-runtime.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js +274 -9
- package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-runtime.provider.js +5 -2
- package/dist-server/server/modules/providers/list/opencode/opencode-runtime.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js +19 -2
- package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js.map +1 -1
- package/dist-server/server/modules/providers/provider.routes.js +134 -2
- package/dist-server/server/modules/providers/provider.routes.js.map +1 -1
- package/dist-server/server/modules/providers/services/claude-cli-liveness.service.js +100 -0
- package/dist-server/server/modules/providers/services/claude-cli-liveness.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/claude-settings-permissions.service.js +97 -0
- package/dist-server/server/modules/providers/services/claude-settings-permissions.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/provider-capabilities.service.js +23 -1
- package/dist-server/server/modules/providers/services/provider-capabilities.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/provider-models.service.js +59 -5
- package/dist-server/server/modules/providers/services/provider-models.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/provider-runtime.service.js +8 -0
- package/dist-server/server/modules/providers/services/provider-runtime.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/provider-token-usage.service.js +139 -35
- package/dist-server/server/modules/providers/services/provider-token-usage.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/session-conversations-search.service.js +2 -4
- package/dist-server/server/modules/providers/services/session-conversations-search.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/session-history-cache.service.js +91 -0
- package/dist-server/server/modules/providers/services/session-history-cache.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/session-synchronizer.service.js +105 -32
- package/dist-server/server/modules/providers/services/session-synchronizer.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/sessions-watcher.service.js +3 -60
- package/dist-server/server/modules/providers/services/sessions-watcher.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/sessions.service.js +252 -12
- package/dist-server/server/modules/providers/services/sessions.service.js.map +1 -1
- package/dist-server/server/modules/providers/tests/claude-auth.test.js +183 -0
- package/dist-server/server/modules/providers/tests/claude-auth.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/claude-background-work.test.js +172 -0
- package/dist-server/server/modules/providers/tests/claude-background-work.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-compaction.test.js +84 -0
- package/dist-server/server/modules/providers/tests/claude-compaction.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-message-model.test.js +123 -0
- package/dist-server/server/modules/providers/tests/claude-message-model.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-models.test.js +39 -0
- package/dist-server/server/modules/providers/tests/claude-models.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-runtime-hold.test.js +265 -0
- package/dist-server/server/modules/providers/tests/claude-runtime-hold.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-sessions.test.js +1815 -33
- package/dist-server/server/modules/providers/tests/claude-sessions.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/claude-settings-permissions.test.js +228 -0
- package/dist-server/server/modules/providers/tests/claude-settings-permissions.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-subagent-echo.test.js +16 -0
- package/dist-server/server/modules/providers/tests/claude-subagent-echo.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-token-budget.test.js +85 -0
- package/dist-server/server/modules/providers/tests/claude-token-budget.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-message-editing.test.js +338 -0
- package/dist-server/server/modules/providers/tests/codex-message-editing.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-models.test.js +25 -0
- package/dist-server/server/modules/providers/tests/codex-models.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-runtime.test.js +83 -0
- package/dist-server/server/modules/providers/tests/codex-runtime.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-session-fork.test.js +54 -0
- package/dist-server/server/modules/providers/tests/codex-session-fork.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-sessions.test.js +354 -15
- package/dist-server/server/modules/providers/tests/codex-sessions.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/cursor-auth.test.js +167 -0
- package/dist-server/server/modules/providers/tests/cursor-auth.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/opencode-models.test.js +196 -4
- package/dist-server/server/modules/providers/tests/opencode-models.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/opencode-sessions.test.js +19 -1
- package/dist-server/server/modules/providers/tests/opencode-sessions.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/provider-capabilities.service.test.js +30 -0
- package/dist-server/server/modules/providers/tests/provider-capabilities.service.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/provider-models.service.test.js +79 -1
- package/dist-server/server/modules/providers/tests/provider-models.service.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/provider-token-usage.service.test.js +164 -1
- package/dist-server/server/modules/providers/tests/provider-token-usage.service.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/provider.routes.test.js +190 -1
- package/dist-server/server/modules/providers/tests/provider.routes.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/session-fork.test.js +113 -0
- package/dist-server/server/modules/providers/tests/session-fork.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/session-history-cache.service.test.js +139 -0
- package/dist-server/server/modules/providers/tests/session-history-cache.service.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/session-orphan-prune.test.js +90 -0
- package/dist-server/server/modules/providers/tests/session-orphan-prune.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/session-synchronizer-coalescing.test.js +122 -0
- package/dist-server/server/modules/providers/tests/session-synchronizer-coalescing.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/sessions.service.test.js +219 -1
- package/dist-server/server/modules/providers/tests/sessions.service.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/skills.test.js +15 -3
- package/dist-server/server/modules/providers/tests/skills.test.js.map +1 -1
- package/dist-server/server/modules/scheduled-messages/index.js +5 -0
- package/dist-server/server/modules/scheduled-messages/index.js.map +1 -0
- package/dist-server/server/modules/scheduled-messages/scheduled-messages.routes.js +47 -0
- package/dist-server/server/modules/scheduled-messages/scheduled-messages.routes.js.map +1 -0
- package/dist-server/server/modules/scheduled-messages/services/scheduled-message-dispatcher.service.js +175 -0
- package/dist-server/server/modules/scheduled-messages/services/scheduled-message-dispatcher.service.js.map +1 -0
- package/dist-server/server/modules/scheduled-messages/services/scheduled-messages.service.js +95 -0
- package/dist-server/server/modules/scheduled-messages/services/scheduled-messages.service.js.map +1 -0
- package/dist-server/server/modules/scheduled-messages/tests/scheduled-messages.test.js +290 -0
- package/dist-server/server/modules/scheduled-messages/tests/scheduled-messages.test.js.map +1 -0
- package/dist-server/server/modules/taskmaster/taskmaster.routes.js +23 -23
- package/dist-server/server/modules/taskmaster/taskmaster.routes.js.map +1 -1
- package/dist-server/server/modules/taskmaster/tests/taskmaster.routes.test.js +48 -0
- package/dist-server/server/modules/taskmaster/tests/taskmaster.routes.test.js.map +1 -1
- package/dist-server/server/modules/user/tests/user.service.test.js +70 -0
- package/dist-server/server/modules/user/tests/user.service.test.js.map +1 -1
- package/dist-server/server/modules/user/user.module.js +10 -1
- package/dist-server/server/modules/user/user.module.js.map +1 -1
- package/dist-server/server/modules/user/user.routes.js +44 -0
- package/dist-server/server/modules/user/user.routes.js.map +1 -1
- package/dist-server/server/modules/user/user.service.js +75 -0
- package/dist-server/server/modules/user/user.service.js.map +1 -1
- package/dist-server/server/modules/voice/tests/voice.service.test.js +3 -2
- package/dist-server/server/modules/voice/tests/voice.service.test.js.map +1 -1
- package/dist-server/server/modules/websocket/index.js +7 -0
- package/dist-server/server/modules/websocket/index.js.map +1 -1
- package/dist-server/server/modules/websocket/services/chat-run-registry.service.js +37 -49
- package/dist-server/server/modules/websocket/services/chat-run-registry.service.js.map +1 -1
- package/dist-server/server/modules/websocket/services/chat-session-writer.service.js +35 -5
- package/dist-server/server/modules/websocket/services/chat-session-writer.service.js.map +1 -1
- package/dist-server/server/modules/websocket/services/chat-websocket.service.js +204 -10
- package/dist-server/server/modules/websocket/services/chat-websocket.service.js.map +1 -1
- package/dist-server/server/modules/websocket/services/session-upsert-broadcast.service.js +94 -0
- package/dist-server/server/modules/websocket/services/session-upsert-broadcast.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/shell-websocket.service.js +236 -20
- package/dist-server/server/modules/websocket/services/shell-websocket.service.js.map +1 -1
- package/dist-server/server/modules/websocket/tests/chat-background-subscribe.test.js +137 -0
- package/dist-server/server/modules/websocket/tests/chat-background-subscribe.test.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/chat-edit-send.test.js +263 -0
- package/dist-server/server/modules/websocket/tests/chat-edit-send.test.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/chat-run-registry.test.js +29 -3
- package/dist-server/server/modules/websocket/tests/chat-run-registry.test.js.map +1 -1
- package/dist-server/server/modules/websocket/tests/chat-stop-task.test.js +96 -0
- package/dist-server/server/modules/websocket/tests/chat-stop-task.test.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/session-upsert-broadcast.test.js +106 -0
- package/dist-server/server/modules/websocket/tests/session-upsert-broadcast.test.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/shell-websocket.service.test.js +500 -0
- package/dist-server/server/modules/websocket/tests/shell-websocket.service.test.js.map +1 -1
- package/dist-server/server/shared/claude-cli-path.js +22 -5
- package/dist-server/server/shared/claude-cli-path.js.map +1 -1
- package/dist-server/server/shared/index.js +3 -0
- package/dist-server/server/shared/index.js.map +1 -0
- package/dist-server/server/shared/message-unification.js +376 -0
- package/dist-server/server/shared/message-unification.js.map +1 -0
- package/dist-server/server/shared/tests/claude-cli-path.test.js +45 -1
- package/dist-server/server/shared/tests/claude-cli-path.test.js.map +1 -1
- package/dist-server/server/shared/tests/message-unification.test.js +174 -0
- package/dist-server/server/shared/tests/message-unification.test.js.map +1 -0
- package/dist-server/server/shared/tests/read-only-roots.test.js +124 -0
- package/dist-server/server/shared/tests/read-only-roots.test.js.map +1 -0
- package/dist-server/server/shared/tests/strip-ansi-sequences.test.js +31 -0
- package/dist-server/server/shared/tests/strip-ansi-sequences.test.js.map +1 -0
- package/dist-server/server/shared/utils.js +160 -0
- package/dist-server/server/shared/utils.js.map +1 -1
- package/electron/desktopWindow.js +6 -0
- package/electron/viewHost.js +25 -2
- package/package.json +20 -17
- package/server/index.ts +16 -5
- package/server/modules/agent/agent.module.ts +11 -1
- package/server/modules/agent/agent.routes.ts +200 -142
- package/server/modules/agent/tests/agent-run-registration.test.ts +348 -0
- package/server/modules/agent/tests/agent.routes.test.ts +51 -2
- package/server/modules/browser-use/browser-use.routes.ts +96 -33
- package/server/modules/database/connection.ts +2 -1
- package/server/modules/database/index.ts +10 -0
- package/server/modules/database/migrations.ts +51 -0
- package/server/modules/database/repositories/provider-models.ts +79 -6
- package/server/modules/database/repositories/scheduled-messages.db.ts +127 -0
- package/server/modules/database/repositories/session-drafts.db.ts +171 -0
- package/server/modules/database/repositories/sessions.db.ts +204 -3
- package/server/modules/database/repositories/user-preferences.db.ts +80 -0
- package/server/modules/database/schema.ts +103 -0
- package/server/modules/database/tests/provider-models.db.integration.test.ts +113 -0
- package/server/modules/database/tests/sessions.db.integration.test.ts +52 -0
- package/server/modules/database/tests/user-preferences.db.integration.test.ts +135 -0
- package/server/modules/file-tree/file-tree.module.ts +2 -1
- package/server/modules/file-tree/file-tree.service.ts +49 -7
- package/server/modules/file-tree/tests/file-tree.service.test.ts +163 -1
- package/server/modules/git/git-branch-diff.service.ts +204 -0
- package/server/modules/git/git-branch.service.ts +2 -12
- package/server/modules/git/git.routes.ts +100 -6
- package/server/modules/git/tests/git-branch-diff.service.test.ts +210 -0
- package/server/modules/projects/project-clone.routes.ts +142 -0
- package/server/modules/projects/projects.routes.ts +16 -81
- package/server/modules/projects/services/project-clone-request.service.ts +56 -0
- package/server/modules/projects/services/project-clone.service.ts +102 -34
- package/server/modules/projects/services/project-delete.service.ts +13 -1
- package/server/modules/projects/services/project-star.service.ts +2 -2
- package/server/modules/projects/tests/project-clone.routes.test.ts +246 -0
- package/server/modules/projects/tests/project-clone.service.test.ts +376 -0
- package/server/modules/providers/index.ts +4 -0
- package/server/modules/providers/list/claude/claude-auth.provider.ts +81 -11
- package/server/modules/providers/list/claude/claude-fork.provider.ts +57 -0
- package/server/modules/providers/list/claude/claude-models.provider.ts +37 -17
- package/server/modules/providers/list/claude/claude-runtime.provider.js +510 -54
- package/server/modules/providers/list/claude/claude-session-synchronizer.provider.ts +40 -14
- package/server/modules/providers/list/claude/claude-sessions.provider.ts +1195 -63
- package/server/modules/providers/list/claude/claude-skills.provider.ts +4 -1
- package/server/modules/providers/list/claude/claude.provider.ts +3 -0
- package/server/modules/providers/list/codex/codex-app-server.client.ts +243 -0
- package/server/modules/providers/list/codex/codex-fork.provider.ts +40 -0
- package/server/modules/providers/list/codex/codex-models.provider.ts +47 -0
- package/server/modules/providers/list/codex/{codex-runtime.provider.js → codex-runtime.provider.ts} +105 -70
- package/server/modules/providers/list/codex/codex-session-synchronizer.provider.ts +9 -0
- package/server/modules/providers/list/codex/codex-sessions.provider.ts +1847 -455
- package/server/modules/providers/list/codex/codex.provider.ts +3 -0
- package/server/modules/providers/list/cursor/cursor-auth.provider.ts +10 -2
- package/server/modules/providers/list/cursor/cursor-runtime.provider.js +17 -8
- package/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.ts +0 -1
- package/server/modules/providers/list/opencode/opencode-models.provider.ts +297 -9
- package/server/modules/providers/list/opencode/opencode-runtime.provider.js +5 -2
- package/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.ts +30 -2
- package/server/modules/providers/provider.routes.ts +162 -2
- package/server/modules/providers/services/claude-cli-liveness.service.ts +121 -0
- package/server/modules/providers/services/claude-settings-permissions.service.ts +127 -0
- package/server/modules/providers/services/provider-capabilities.service.ts +40 -1
- package/server/modules/providers/services/provider-models.service.ts +71 -4
- package/server/modules/providers/services/provider-runtime.service.ts +11 -0
- package/server/modules/providers/services/provider-token-usage.service.ts +166 -39
- package/server/modules/providers/services/session-conversations-search.service.ts +2 -5
- package/server/modules/providers/services/session-history-cache.service.ts +150 -0
- package/server/modules/providers/services/session-synchronizer.service.ts +125 -38
- package/server/modules/providers/services/sessions-watcher.service.ts +3 -64
- package/server/modules/providers/services/sessions.service.ts +309 -17
- package/server/modules/providers/tests/claude-auth.test.ts +208 -0
- package/server/modules/providers/tests/claude-background-work.test.ts +213 -0
- package/server/modules/providers/tests/claude-compaction.test.ts +101 -0
- package/server/modules/providers/tests/claude-message-model.test.ts +160 -0
- package/server/modules/providers/tests/claude-models.test.ts +87 -0
- package/server/modules/providers/tests/claude-runtime-hold.test.ts +309 -0
- package/server/modules/providers/tests/claude-sessions.test.ts +2167 -37
- package/server/modules/providers/tests/claude-settings-permissions.test.ts +271 -0
- package/server/modules/providers/tests/claude-subagent-echo.test.ts +25 -0
- package/server/modules/providers/tests/claude-token-budget.test.ts +104 -0
- package/server/modules/providers/tests/codex-message-editing.test.ts +419 -0
- package/server/modules/providers/tests/codex-models.test.ts +37 -0
- package/server/modules/providers/tests/codex-runtime.test.ts +94 -0
- package/server/modules/providers/tests/codex-session-fork.test.ts +59 -0
- package/server/modules/providers/tests/codex-sessions.test.ts +396 -15
- package/server/modules/providers/tests/cursor-auth.test.ts +187 -0
- package/server/modules/providers/tests/opencode-models.test.ts +266 -8
- package/server/modules/providers/tests/opencode-sessions.test.ts +40 -1
- package/server/modules/providers/tests/provider-capabilities.service.test.ts +37 -0
- package/server/modules/providers/tests/provider-models.service.test.ts +99 -1
- package/server/modules/providers/tests/provider-token-usage.service.test.ts +188 -1
- package/server/modules/providers/tests/provider.routes.test.ts +230 -1
- package/server/modules/providers/tests/session-fork.test.ts +173 -0
- package/server/modules/providers/tests/session-history-cache.service.test.ts +165 -0
- package/server/modules/providers/tests/session-orphan-prune.test.ts +107 -0
- package/server/modules/providers/tests/session-synchronizer-coalescing.test.ts +136 -0
- package/server/modules/providers/tests/sessions.service.test.ts +303 -1
- package/server/modules/providers/tests/skills.test.ts +21 -5
- package/server/modules/scheduled-messages/index.ts +8 -0
- package/server/modules/scheduled-messages/scheduled-messages.routes.ts +68 -0
- package/server/modules/scheduled-messages/services/scheduled-message-dispatcher.service.ts +216 -0
- package/server/modules/scheduled-messages/services/scheduled-messages.service.ts +121 -0
- package/server/modules/scheduled-messages/tests/scheduled-messages.test.ts +354 -0
- package/server/modules/taskmaster/taskmaster.routes.ts +23 -33
- package/server/modules/taskmaster/tests/taskmaster.routes.test.ts +57 -0
- package/server/modules/user/tests/user.service.test.ts +90 -0
- package/server/modules/user/user.module.ts +10 -1
- package/server/modules/user/user.routes.ts +44 -0
- package/server/modules/user/user.service.ts +105 -0
- package/server/modules/voice/tests/voice.service.test.ts +3 -2
- package/server/modules/websocket/README.md +4 -2
- package/server/modules/websocket/index.ts +8 -0
- package/server/modules/websocket/services/chat-run-registry.service.ts +45 -54
- package/server/modules/websocket/services/chat-session-writer.service.ts +36 -6
- package/server/modules/websocket/services/chat-websocket.service.ts +302 -16
- package/server/modules/websocket/services/session-upsert-broadcast.service.ts +108 -0
- package/server/modules/websocket/services/shell-websocket.service.ts +276 -22
- package/server/modules/websocket/tests/chat-background-subscribe.test.ts +167 -0
- package/server/modules/websocket/tests/chat-edit-send.test.ts +309 -0
- package/server/modules/websocket/tests/chat-run-registry.test.ts +34 -3
- package/server/modules/websocket/tests/chat-stop-task.test.ts +127 -0
- package/server/modules/websocket/tests/session-upsert-broadcast.test.ts +138 -0
- package/server/modules/websocket/tests/shell-websocket.service.test.ts +629 -0
- package/server/shared/claude-cli-path.ts +24 -6
- package/server/shared/index.ts +3 -0
- package/server/shared/interfaces.ts +91 -0
- package/server/shared/message-unification.ts +449 -0
- package/server/shared/tests/claude-cli-path.test.ts +58 -1
- package/server/shared/tests/message-unification.test.ts +218 -0
- package/server/shared/tests/read-only-roots.test.ts +139 -0
- package/server/shared/tests/strip-ansi-sequences.test.ts +42 -0
- package/server/shared/types.ts +382 -7
- package/server/shared/utils.ts +176 -0
- package/dist/assets/channel-_falYbU1.js +0 -1
- package/dist/assets/classDiagram-JCYQIIEL-Dn-3CfpR.js +0 -1
- package/dist/assets/classDiagram-v2-OCEON4UE-Dn-3CfpR.js +0 -1
- package/dist/assets/index-CzPLBvXT.css +0 -32
- package/dist/assets/index-DFkBBuSA.js +0 -1549
- package/dist/assets/stateDiagram-v2-UEYNNEHI-BvBxUUrZ.js +0 -1
- package/dist/assets/swimlanesDiagram-ULZ7WXOC-CsE-x4YK.js +0 -8
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { sessionsDb } from '../../../modules/database/index.js';
|
|
3
|
-
import { providerModelsService } from '../../../modules/providers/index.js';
|
|
3
|
+
import { providerModelsService, sessionsService } from '../../../modules/providers/index.js';
|
|
4
4
|
import { chatRunRegistry } from '../../../modules/websocket/services/chat-run-registry.service.js';
|
|
5
5
|
import { connectedClients, WS_OPEN_STATE } from '../../../modules/websocket/services/websocket-state.service.js';
|
|
6
6
|
import { getGlobalImageAssetsDir, isImageAttachmentDescriptor, normalizeAttachmentDescriptors, } from '../../../shared/image-attachments.js';
|
|
@@ -84,21 +84,42 @@ function readRequiredSessionId(data) {
|
|
|
84
84
|
* registers the run, and dispatches to the provider runtime.
|
|
85
85
|
*/
|
|
86
86
|
async function handleChatSend(ws, userId, data, dependencies) {
|
|
87
|
+
const resolved = resolveSendTarget(ws, data, dependencies, 'chat.send');
|
|
88
|
+
if (!resolved) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
await dispatchRun(ws, userId, resolved.sessionId, resolved.session, data, dependencies);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Shared front half of `chat.send` and `chat.edit-send`: the session row and
|
|
95
|
+
* provider come from the database, never from the client.
|
|
96
|
+
*/
|
|
97
|
+
function resolveSendTarget(ws, data, dependencies, frameName) {
|
|
87
98
|
const sessionId = readRequiredSessionId(data);
|
|
88
99
|
if (!sessionId) {
|
|
89
|
-
sendProtocolError(ws, 'SESSION_ID_REQUIRED',
|
|
90
|
-
return;
|
|
100
|
+
sendProtocolError(ws, 'SESSION_ID_REQUIRED', `${frameName} requires a sessionId.`);
|
|
101
|
+
return null;
|
|
91
102
|
}
|
|
92
103
|
const session = sessionsDb.getSessionById(sessionId);
|
|
93
104
|
if (!session) {
|
|
94
105
|
sendProtocolError(ws, 'SESSION_NOT_FOUND', `Session "${sessionId}" was not found. Create it via POST /api/providers/sessions first.`, sessionId);
|
|
95
|
-
return;
|
|
106
|
+
return null;
|
|
96
107
|
}
|
|
97
108
|
const provider = session.provider;
|
|
98
109
|
if (!dependencies.runtime.hasRuntime(provider)) {
|
|
99
110
|
sendProtocolError(ws, 'UNSUPPORTED_PROVIDER', `Provider "${provider}" is not available.`, sessionId);
|
|
100
|
-
return;
|
|
111
|
+
return null;
|
|
101
112
|
}
|
|
113
|
+
return { sessionId, session, provider };
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Registers the run and hands the turn to the provider runtime.
|
|
117
|
+
*
|
|
118
|
+
* `extraRuntimeOptions` is how an edited message asks the provider to resume
|
|
119
|
+
* partway instead of continuing from the tip; a normal send passes nothing.
|
|
120
|
+
*/
|
|
121
|
+
async function dispatchRun(ws, userId, sessionId, session, data, dependencies, extraRuntimeOptions = {}, beforeRun) {
|
|
122
|
+
const provider = session.provider;
|
|
102
123
|
const run = chatRunRegistry.startRun({
|
|
103
124
|
appSessionId: sessionId,
|
|
104
125
|
provider,
|
|
@@ -107,8 +128,10 @@ async function handleChatSend(ws, userId, data, dependencies) {
|
|
|
107
128
|
userId,
|
|
108
129
|
});
|
|
109
130
|
if (!run) {
|
|
110
|
-
|
|
111
|
-
|
|
131
|
+
if (ws) {
|
|
132
|
+
sendProtocolError(ws, 'RUN_IN_PROGRESS', `Session "${sessionId}" already has a run in progress.`, sessionId);
|
|
133
|
+
}
|
|
134
|
+
return { started: false, error: 'A run is already in progress for this session.' };
|
|
112
135
|
}
|
|
113
136
|
const clientOptions = (data.options ?? {});
|
|
114
137
|
const command = typeof data.content === 'string' ? data.content : '';
|
|
@@ -136,6 +159,7 @@ async function handleChatSend(ws, userId, data, dependencies) {
|
|
|
136
159
|
// app session id.
|
|
137
160
|
const runtimeOptions = {
|
|
138
161
|
...clientOptions,
|
|
162
|
+
...extraRuntimeOptions,
|
|
139
163
|
// Attachments are re-validated server-side: only direct children of the
|
|
140
164
|
// global upload store may reach provider runtimes or their file tools.
|
|
141
165
|
attachments: uniqueAttachments,
|
|
@@ -145,12 +169,18 @@ async function handleChatSend(ws, userId, data, dependencies) {
|
|
|
145
169
|
cwd: clientOptions.cwd ?? session.project_path ?? undefined,
|
|
146
170
|
projectPath: session.project_path ?? clientOptions.projectPath,
|
|
147
171
|
};
|
|
172
|
+
let failure = null;
|
|
148
173
|
try {
|
|
174
|
+
// Runs only now that the session is reserved, because an edit rewinds the
|
|
175
|
+
// conversation here and a rewind for a run that was never admitted cannot
|
|
176
|
+
// be taken back. Inside the try so a rewind that throws still releases the
|
|
177
|
+
// run instead of leaving the session processing forever.
|
|
178
|
+
await beforeRun?.(run);
|
|
149
179
|
await dependencies.runtime.run(provider, command, runtimeOptions, run.writer);
|
|
150
180
|
}
|
|
151
181
|
catch (error) {
|
|
152
|
-
|
|
153
|
-
console.error(`[Chat] Provider runtime "${provider}" failed`, { sessionId, error:
|
|
182
|
+
failure = error instanceof Error ? error.message : String(error);
|
|
183
|
+
console.error(`[Chat] Provider runtime "${provider}" failed`, { sessionId, error: failure });
|
|
154
184
|
}
|
|
155
185
|
finally {
|
|
156
186
|
// Safety net: a runtime that crashed (or resolved) without emitting its
|
|
@@ -160,6 +190,90 @@ async function handleChatSend(ws, userId, data, dependencies) {
|
|
|
160
190
|
// settles, and the session-keyed completeRun would kill that new run.
|
|
161
191
|
chatRunRegistry.completeRunIfCurrent(run, { exitCode: 1 });
|
|
162
192
|
}
|
|
193
|
+
return { started: true, error: failure };
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Handles `chat.edit-send`: replaces an already-sent message and everything
|
|
197
|
+
* after it with a new turn.
|
|
198
|
+
*
|
|
199
|
+
* Nothing is deleted. The provider resumes the conversation partway and
|
|
200
|
+
* appends the replacement, so the abandoned attempt stays in the transcript
|
|
201
|
+
* file and is simply no longer part of the live conversation — the same shape
|
|
202
|
+
* Claude Code's rewind and Codex's fork-with-cut-point produce.
|
|
203
|
+
*/
|
|
204
|
+
async function handleChatEditSend(ws, userId, data, dependencies) {
|
|
205
|
+
const resolved = resolveSendTarget(ws, data, dependencies, 'chat.edit-send');
|
|
206
|
+
if (!resolved) {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
const { sessionId, session, provider } = resolved;
|
|
210
|
+
const anchorId = typeof data.anchorId === 'string' ? data.anchorId.trim() : '';
|
|
211
|
+
if (!anchorId) {
|
|
212
|
+
sendProtocolError(ws, 'ANCHOR_REQUIRED', 'chat.edit-send requires the anchorId of the message being replaced.', sessionId);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
let resumeThroughId;
|
|
216
|
+
try {
|
|
217
|
+
const anchor = await sessionsService.resolveEditAnchor(sessionId, anchorId);
|
|
218
|
+
if (!anchor) {
|
|
219
|
+
sendProtocolError(ws, 'EDIT_NOT_SUPPORTED', `Provider "${provider}" cannot replace an already-sent message.`, sessionId);
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
if (!anchor.found) {
|
|
223
|
+
sendProtocolError(ws, 'ANCHOR_NOT_FOUND', 'That message is no longer in the transcript.', sessionId);
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
resumeThroughId = anchor.resumeThroughId;
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
230
|
+
sendProtocolError(ws, 'ANCHOR_LOOKUP_FAILED', `Could not read the transcript: ${message}`, sessionId);
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
// Providers split here on what their runtime can do. Claude resumes its
|
|
234
|
+
// transcript partway, so the anchor rides along as a run option. Codex
|
|
235
|
+
// cannot — a thread only grows — so the conversation is rewound on disk and
|
|
236
|
+
// the run that follows is an ordinary resume of whatever the session then
|
|
237
|
+
// points at. Which of the two applies is decided here; the rewind itself
|
|
238
|
+
// waits until the run has actually been admitted.
|
|
239
|
+
const rewinds = sessionsService.providerRewindsForEdit(sessionId);
|
|
240
|
+
await dispatchRun(ws, userId, sessionId, session, data, dependencies,
|
|
241
|
+
// `null` is meaningful: the edited turn was the first prompt, so the
|
|
242
|
+
// conversation starts over instead of resuming.
|
|
243
|
+
rewinds
|
|
244
|
+
? {}
|
|
245
|
+
: { resumeAnchorId: resumeThroughId ?? undefined, resumeFromScratch: resumeThroughId === null }, async (run) => {
|
|
246
|
+
// Emitted through the run's writer so it is sequenced and replayed like
|
|
247
|
+
// any other event — a second tab watching this session has to truncate
|
|
248
|
+
// too.
|
|
249
|
+
//
|
|
250
|
+
// Before the rewind, not after it. A rewind that has to branch spawns a
|
|
251
|
+
// process and waits on a JSON-RPC round trip, and holding the frame
|
|
252
|
+
// until that came back left the message the user had just edited away
|
|
253
|
+
// sitting on screen for about a second — the very flicker this feature
|
|
254
|
+
// exists to avoid. Announcing first is safe because a rewind that fails
|
|
255
|
+
// still ends the run, and the terminal `complete` makes every client
|
|
256
|
+
// re-read the transcript, which puts back anything that turned out not
|
|
257
|
+
// to have been replaced after all.
|
|
258
|
+
run.writer.send({
|
|
259
|
+
kind: 'history_truncated',
|
|
260
|
+
provider,
|
|
261
|
+
sessionId,
|
|
262
|
+
anchorId,
|
|
263
|
+
});
|
|
264
|
+
if (rewinds) {
|
|
265
|
+
try {
|
|
266
|
+
await sessionsService.rewindSessionForEdit(sessionId, resumeThroughId);
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
270
|
+
sendProtocolError(ws, 'EDIT_REWIND_FAILED', `Could not rewind the conversation: ${message}`, sessionId);
|
|
271
|
+
// Ends the run before the provider is asked to continue a
|
|
272
|
+
// conversation that was not rewound after all.
|
|
273
|
+
throw error;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
});
|
|
163
277
|
}
|
|
164
278
|
/**
|
|
165
279
|
* Handles `chat.abort`: cancels the run for one app session and emits the
|
|
@@ -183,6 +297,35 @@ async function handleChatAbort(ws, data, dependencies) {
|
|
|
183
297
|
aborted: true,
|
|
184
298
|
});
|
|
185
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* Handles `chat.stop-task`: stops one background task of a session — an
|
|
302
|
+
* agent, a workflow or a backgrounded command that is still going after its
|
|
303
|
+
* turn ended. Unlike `chat.abort` there is no run to consult: the task lives
|
|
304
|
+
* in the provider's held process, which is the only thing that can stop it.
|
|
305
|
+
* The provider then reports the task as stopped on the session's stream, so
|
|
306
|
+
* nothing is echoed back here on success.
|
|
307
|
+
*/
|
|
308
|
+
async function handleChatStopTask(ws, data, dependencies) {
|
|
309
|
+
const sessionId = readRequiredSessionId(data);
|
|
310
|
+
if (!sessionId) {
|
|
311
|
+
sendProtocolError(ws, 'SESSION_ID_REQUIRED', 'chat.stop-task requires a sessionId.');
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
const taskId = typeof data.taskId === 'string' ? data.taskId.trim() : '';
|
|
315
|
+
if (!taskId) {
|
|
316
|
+
sendProtocolError(ws, 'TASK_ID_REQUIRED', 'chat.stop-task requires a taskId.', sessionId);
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
const session = sessionsDb.getSessionById(sessionId);
|
|
320
|
+
if (!session) {
|
|
321
|
+
sendProtocolError(ws, 'SESSION_NOT_FOUND', `Session "${sessionId}" was not found.`, sessionId);
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
const stopped = await dependencies.runtime.stopBackgroundTask(session.provider, sessionId, taskId);
|
|
325
|
+
if (!stopped) {
|
|
326
|
+
sendProtocolError(ws, 'NO_SUCH_TASK', `Session "${sessionId}" has no running background task "${taskId}".`, sessionId);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
186
329
|
/**
|
|
187
330
|
* Handles `chat.subscribe`: for each requested session, reports whether a run
|
|
188
331
|
* is processing, re-attaches the live stream to this socket, replays missed
|
|
@@ -211,7 +354,11 @@ function handleChatSubscribe(ws, data, dependencies) {
|
|
|
211
354
|
const isProcessing = chatRunRegistry.isProcessing(sessionId);
|
|
212
355
|
// Future live events for this run should land on the socket that asked —
|
|
213
356
|
// this is what makes mid-stream page refreshes work for all providers.
|
|
214
|
-
|
|
357
|
+
// A session whose turn ended but whose background work is still going
|
|
358
|
+
// keeps producing events through the same writer (task progress, the
|
|
359
|
+
// turn the CLI pushes when a task reports), so a tab opened during that
|
|
360
|
+
// work attaches too; the registry keeps the run while the work lasts.
|
|
361
|
+
if (isProcessing || dependencies.runtime.hasBackgroundWork(sessionId)) {
|
|
215
362
|
chatRunRegistry.attachConnection(sessionId, ws);
|
|
216
363
|
}
|
|
217
364
|
// Pending approvals are tracked under the app session id inside the
|
|
@@ -258,6 +405,7 @@ function handlePermissionResponse(data, dependencies) {
|
|
|
258
405
|
* Inbound protocol (client to server):
|
|
259
406
|
* - `chat.send` { sessionId, content, options? }
|
|
260
407
|
* - `chat.abort` { sessionId }
|
|
408
|
+
* - `chat.stop-task` { sessionId, taskId }
|
|
261
409
|
* - `chat.subscribe` { sessions: [{ sessionId, lastSeq? }] }
|
|
262
410
|
* - `chat.permission-response` { requestId, allow, updatedInput?, message?, rememberEntry? }
|
|
263
411
|
*
|
|
@@ -266,6 +414,46 @@ function handlePermissionResponse(data, dependencies) {
|
|
|
266
414
|
* (`chat_subscribed`, `session_upserted`, `loading_progress`,
|
|
267
415
|
* `protocol_error`).
|
|
268
416
|
*/
|
|
417
|
+
/**
|
|
418
|
+
* Runs a turn for a session with no client attached.
|
|
419
|
+
*
|
|
420
|
+
* Used by scheduled messages, which fire from a timer: there is no socket to
|
|
421
|
+
* report errors to and no audience to stream to. The run is registered exactly
|
|
422
|
+
* like an interactive one, so anyone who opens the session while it is going
|
|
423
|
+
* subscribes and replays it from the start, and the session shows as busy
|
|
424
|
+
* everywhere in the meantime.
|
|
425
|
+
*
|
|
426
|
+
* Resolves when the provider run settles. Returns false when the session has
|
|
427
|
+
* gone away or is busy without `interruptActiveRun`, which the caller reports
|
|
428
|
+
* on the schedule.
|
|
429
|
+
*/
|
|
430
|
+
export async function runDetachedChatTurn(input, dependencies) {
|
|
431
|
+
const session = sessionsDb.getSessionById(input.sessionId);
|
|
432
|
+
if (!session) {
|
|
433
|
+
return { started: false, error: 'The session no longer exists.' };
|
|
434
|
+
}
|
|
435
|
+
const provider = session.provider;
|
|
436
|
+
if (!dependencies.runtime.hasRuntime(provider)) {
|
|
437
|
+
return { started: false, error: `Provider "${provider}" is not available.` };
|
|
438
|
+
}
|
|
439
|
+
const activeRun = chatRunRegistry.getRun(input.sessionId);
|
|
440
|
+
if (activeRun && activeRun.status === 'running') {
|
|
441
|
+
if (!input.interruptActiveRun) {
|
|
442
|
+
return { started: false, error: 'A run was already in progress for this session.' };
|
|
443
|
+
}
|
|
444
|
+
// Same shape as `chat.abort`: cancel the provider run and emit the
|
|
445
|
+
// terminal `complete` on its behalf, so every watching client sees the
|
|
446
|
+
// interrupted run end before this turn's stream begins. The interrupted
|
|
447
|
+
// run's own dispatch settles later through completeRunIfCurrent, which is
|
|
448
|
+
// scoped to that run and cannot touch the one started here.
|
|
449
|
+
const aborted = await dependencies.runtime.abort(activeRun.provider, input.sessionId);
|
|
450
|
+
chatRunRegistry.completeRun(input.sessionId, {
|
|
451
|
+
exitCode: aborted ? 0 : 1,
|
|
452
|
+
aborted: true,
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
return dispatchRun(null, input.userId, input.sessionId, session, { sessionId: input.sessionId, content: input.content, options: input.options ?? {} }, dependencies);
|
|
456
|
+
}
|
|
269
457
|
export function handleChatConnection(ws, request, dependencies) {
|
|
270
458
|
console.log('[INFO] Chat WebSocket connected');
|
|
271
459
|
connectedClients.add(ws);
|
|
@@ -279,12 +467,18 @@ export function handleChatConnection(ws, request, dependencies) {
|
|
|
279
467
|
const data = parsed;
|
|
280
468
|
const messageType = typeof data.type === 'string' ? data.type : '';
|
|
281
469
|
switch (messageType) {
|
|
470
|
+
case 'chat.edit-send':
|
|
471
|
+
await handleChatEditSend(ws, userId, data, dependencies);
|
|
472
|
+
return;
|
|
282
473
|
case 'chat.send':
|
|
283
474
|
await handleChatSend(ws, userId, data, dependencies);
|
|
284
475
|
return;
|
|
285
476
|
case 'chat.abort':
|
|
286
477
|
await handleChatAbort(ws, data, dependencies);
|
|
287
478
|
return;
|
|
479
|
+
case 'chat.stop-task':
|
|
480
|
+
await handleChatStopTask(ws, data, dependencies);
|
|
481
|
+
return;
|
|
288
482
|
case 'chat.subscribe':
|
|
289
483
|
handleChatSubscribe(ws, data, dependencies);
|
|
290
484
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-websocket.service.js","sourceRoot":"","sources":["../../../../../server/modules/websocket/services/chat-websocket.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat-websocket.service.js","sourceRoot":"","sources":["../../../../../server/modules/websocket/services/chat-websocket.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { projectsDb, sessionsDb } from '../../../modules/database/index.js';
|
|
3
|
+
import { generateDisplayName } from '../../../modules/projects/index.js';
|
|
4
|
+
import { connectedClients, WS_OPEN_STATE } from '../../../modules/websocket/services/websocket-state.service.js';
|
|
5
|
+
/**
|
|
6
|
+
* The single producer of the `session_upserted` delta.
|
|
7
|
+
*
|
|
8
|
+
* The event carries everything a sidebar needs to upsert a session in place
|
|
9
|
+
* (its summary plus the owning project's metadata), so clients never refetch
|
|
10
|
+
* the whole project list because one transcript changed on disk.
|
|
11
|
+
*
|
|
12
|
+
* It used to be built in two places — the on-disk sessions watcher and the
|
|
13
|
+
* chat run registry — and only the registry's copy set `providerSessionId`.
|
|
14
|
+
* That field is how the client notices a row it is showing has been merged
|
|
15
|
+
* into its canonical app-session row, so a merge announced by any other path
|
|
16
|
+
* left a stale duplicate in the sidebar. One builder, one shape.
|
|
17
|
+
*/
|
|
18
|
+
async function buildSessionUpsertedEvent(sessionIdOrProviderSessionId) {
|
|
19
|
+
// Resolving by provider id first covers the watcher, which only ever sees
|
|
20
|
+
// the id written in the transcript. For a row where the two ids are equal
|
|
21
|
+
// — legacy rows, and any session indexed from disk before its mapping
|
|
22
|
+
// existed — both lookups land on the same row anyway.
|
|
23
|
+
const row = sessionsDb.getSessionByProviderSessionId(sessionIdOrProviderSessionId)
|
|
24
|
+
?? sessionsDb.getSessionById(sessionIdOrProviderSessionId);
|
|
25
|
+
if (!row || row.isArchived) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
const projectPath = row.project_path;
|
|
29
|
+
const project = projectPath ? projectsDb.getProjectPath(projectPath) : null;
|
|
30
|
+
const displayName = project?.custom_project_name?.trim()
|
|
31
|
+
? project.custom_project_name
|
|
32
|
+
: await generateDisplayName(path.basename(projectPath ?? '') || (projectPath ?? ''), projectPath);
|
|
33
|
+
return {
|
|
34
|
+
kind: 'session_upserted',
|
|
35
|
+
sessionId: row.session_id,
|
|
36
|
+
providerSessionId: row.provider_session_id ?? null,
|
|
37
|
+
// The column is a plain TEXT and typed as `string` on the row, but only
|
|
38
|
+
// provider adapters ever write it.
|
|
39
|
+
provider: row.provider,
|
|
40
|
+
session: {
|
|
41
|
+
id: row.session_id,
|
|
42
|
+
summary: row.custom_name || '',
|
|
43
|
+
messageCount: 0,
|
|
44
|
+
lastActivity: row.updated_at ?? row.created_at ?? new Date().toISOString(),
|
|
45
|
+
},
|
|
46
|
+
project: project
|
|
47
|
+
? {
|
|
48
|
+
projectId: project.project_id,
|
|
49
|
+
path: project.project_path,
|
|
50
|
+
fullPath: project.project_path,
|
|
51
|
+
displayName,
|
|
52
|
+
isStarred: Boolean(project.isStarred),
|
|
53
|
+
}
|
|
54
|
+
: null,
|
|
55
|
+
timestamp: new Date().toISOString(),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function sendToConnectedClients(payloads) {
|
|
59
|
+
if (payloads.length === 0) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
connectedClients.forEach((client) => {
|
|
63
|
+
if (client.readyState === WS_OPEN_STATE) {
|
|
64
|
+
for (const payload of payloads) {
|
|
65
|
+
client.send(payload);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/** Announces one session. Used by the chat run registry when a run reports its provider-native id. */
|
|
71
|
+
export async function broadcastSessionUpserted(sessionIdOrProviderSessionId) {
|
|
72
|
+
const event = await buildSessionUpsertedEvent(sessionIdOrProviderSessionId);
|
|
73
|
+
if (event) {
|
|
74
|
+
sendToConnectedClients([JSON.stringify(event)]);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Announces a batch of sessions. Used by the providers module's sessions
|
|
79
|
+
* watcher, whose debounced flush can carry dozens of ids at once — the client
|
|
80
|
+
* set is walked once for the whole batch rather than once per session.
|
|
81
|
+
*/
|
|
82
|
+
export async function broadcastSessionUpsertedBatch(sessionIds) {
|
|
83
|
+
const payloads = [];
|
|
84
|
+
for (const sessionId of sessionIds) {
|
|
85
|
+
const event = await buildSessionUpsertedEvent(sessionId);
|
|
86
|
+
if (event) {
|
|
87
|
+
payloads.push(JSON.stringify(event));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
sendToConnectedClients(payloads);
|
|
91
|
+
}
|
|
92
|
+
/** @internal Exported for the broadcast tests, which assert the payload shape directly. */
|
|
93
|
+
export { buildSessionUpsertedEvent };
|
|
94
|
+
//# sourceMappingURL=session-upsert-broadcast.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-upsert-broadcast.service.js","sourceRoot":"","sources":["../../../../../server/modules/websocket/services/session-upsert-broadcast.service.ts"],"names":[],"mappings":"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"}
|