factory-factory 0.2.5 → 0.2.7
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/_basePickBy-BZHMXNSx.js +1 -0
- package/dist/client/assets/_baseUniq-BN3di1uG.js +1 -0
- package/dist/client/assets/arc-DTz7ujzB.js +1 -0
- package/dist/client/assets/architectureDiagram-VXUJARFQ-BF0tgsxU.js +36 -0
- package/dist/client/assets/blockDiagram-VD42YOAC-DMmGkDXi.js +122 -0
- package/dist/client/assets/c4Diagram-YG6GDRKO-S4AaVo8k.js +10 -0
- package/dist/client/assets/channel-0Y-kzpxb.js +1 -0
- package/dist/client/assets/chunk-4BX2VUAB-scTb9znU.js +1 -0
- package/dist/client/assets/chunk-55IACEB6-vBLzgGqE.js +1 -0
- package/dist/client/assets/chunk-B4BG7PRW-D-cPkPte.js +165 -0
- package/dist/client/assets/chunk-DI55MBZ5-DOh8b0Kb.js +220 -0
- package/dist/client/assets/chunk-FMBD7UC4-B6lujkqO.js +15 -0
- package/dist/client/assets/chunk-QN33PNHL-spdwi0WY.js +1 -0
- package/dist/client/assets/chunk-QZHKN3VN-CFHWNeCi.js +1 -0
- package/dist/client/assets/chunk-TZMSLE5B-BW6u8yiG.js +1 -0
- package/dist/client/assets/classDiagram-2ON5EDUG-BuPSxmb5.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-BuPSxmb5.js +1 -0
- package/dist/client/assets/clone-BcRl-M7n.js +1 -0
- package/dist/client/assets/cose-bilkent-S5V4N54A-CPnnXLX6.js +1 -0
- package/dist/client/assets/dagre-6UL2VRFP-DES6A9x6.js +4 -0
- package/dist/client/assets/diagram-PSM6KHXK-VwBLGizc.js +24 -0
- package/dist/client/assets/diagram-QEK2KX5R-etHARSDz.js +43 -0
- package/dist/client/assets/diagram-S2PKOQOG-BI7PXPis.js +24 -0
- package/dist/client/assets/erDiagram-Q2GNP2WA-Cl5v3htL.js +60 -0
- package/dist/client/assets/flowDiagram-NV44I4VS-Ojv0q4uM.js +162 -0
- package/dist/client/assets/ganttDiagram-JELNMOA3-CfjA0UJD.js +267 -0
- package/dist/client/assets/gitGraphDiagram-NY62KEGX-Ch7jeuA8.js +65 -0
- package/dist/client/assets/graph-Dox0mu8B.js +1 -0
- package/dist/client/assets/index-B3WM_4ut.css +1 -0
- package/dist/client/assets/index-BcV5Mqxt.js +437 -0
- package/dist/client/assets/infoDiagram-WHAUD3N6-CPQAoZm7.js +2 -0
- package/dist/client/assets/journeyDiagram-XKPGCS4Q-Vwt680EE.js +139 -0
- package/dist/client/assets/kanban-definition-3W4ZIXB7-C--4JrCO.js +89 -0
- package/dist/client/assets/layout-i4JGghUI.js +1 -0
- package/dist/client/assets/linear-Ck02tugp.js +1 -0
- package/dist/client/assets/mindmap-definition-VGOIOE7T-DhPbco6X.js +68 -0
- package/dist/client/assets/pieDiagram-ADFJNKIX-BIsu48lT.js +30 -0
- package/dist/client/assets/quadrantDiagram-AYHSOK5B-D7Ynqe8A.js +7 -0
- package/dist/client/assets/requirementDiagram-UZGBJVZJ-C6ev56dv.js +64 -0
- package/dist/client/assets/sankeyDiagram-TZEHDZUN-DbpYAdQ2.js +10 -0
- package/dist/client/assets/sequenceDiagram-WL72ISMW-mCJUmoPE.js +145 -0
- package/dist/client/assets/stateDiagram-FKZM4ZOC-Bc83uOQH.js +1 -0
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-CsG3SZq0.js +1 -0
- package/dist/client/assets/terminal-instance-BRX09yrN.js +1 -0
- package/dist/client/assets/timeline-definition-IT6M3QCI-TG8ZfQJt.js +61 -0
- package/dist/client/assets/treemap-KMMF4GRG-mbULMdr8.js +128 -0
- package/dist/client/assets/xychartDiagram-PRI3JC2R-3URCSGAN.js +7 -0
- package/dist/client/index.html +2 -2
- package/dist/prisma/generated/internal/class.js +2 -2
- package/dist/prisma/generated/internal/class.js.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespace.d.ts +1 -4
- package/dist/prisma/generated/internal/prismaNamespace.d.ts.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespace.js +1 -4
- package/dist/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts +1 -4
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.js +1 -4
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/prisma/generated/models/ClaudeSession.d.ts +36 -1
- package/dist/prisma/generated/models/ClaudeSession.d.ts.map +1 -1
- package/dist/prisma/generated/models/UserSettings.d.ts +1 -107
- package/dist/prisma/generated/models/UserSettings.d.ts.map +1 -1
- package/dist/prompts/ratchet/dispatch.md +3 -1
- package/dist/src/backend/agents/process-adapter.d.ts +1 -1
- package/dist/src/backend/agents/process-adapter.d.ts.map +1 -1
- package/dist/src/backend/agents/process-adapter.js +1 -1
- package/dist/src/backend/agents/process-adapter.js.map +1 -1
- package/dist/src/backend/app-context.d.ts +8 -20
- package/dist/src/backend/app-context.d.ts.map +1 -1
- package/dist/src/backend/app-context.js +8 -20
- package/dist/src/backend/app-context.js.map +1 -1
- package/dist/src/backend/clients/git.client.test.js.map +1 -1
- package/dist/src/backend/db.d.ts +3 -0
- package/dist/src/backend/db.d.ts.map +1 -1
- package/dist/src/backend/db.js +2 -2
- package/dist/src/backend/db.js.map +1 -1
- package/dist/src/backend/domains/github/bridges.d.ts +40 -0
- package/dist/src/backend/domains/github/bridges.d.ts.map +1 -0
- package/dist/src/backend/domains/github/bridges.js +2 -0
- package/dist/src/backend/domains/github/bridges.js.map +1 -0
- package/dist/src/backend/domains/github/github-cli.service.d.ts +113 -0
- package/dist/src/backend/domains/github/github-cli.service.d.ts.map +1 -0
- package/dist/src/backend/domains/github/github-cli.service.js +860 -0
- package/dist/src/backend/domains/github/github-cli.service.js.map +1 -0
- package/dist/src/backend/domains/github/github-cli.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/github/github-cli.service.test.js +709 -0
- package/dist/src/backend/domains/github/github-cli.service.test.js.map +1 -0
- package/dist/src/backend/domains/github/github-domain-exports.test.d.ts +2 -0
- package/dist/src/backend/domains/github/github-domain-exports.test.d.ts.map +1 -0
- package/dist/src/backend/domains/github/github-domain-exports.test.js +17 -0
- package/dist/src/backend/domains/github/github-domain-exports.test.js.map +1 -0
- package/dist/src/backend/domains/github/index.d.ts +6 -0
- package/dist/src/backend/domains/github/index.d.ts.map +1 -0
- package/dist/src/backend/domains/github/index.js +5 -0
- package/dist/src/backend/domains/github/index.js.map +1 -0
- package/dist/src/backend/domains/github/pr-review-fixer.service.d.ts +64 -0
- package/dist/src/backend/domains/github/pr-review-fixer.service.d.ts.map +1 -0
- package/dist/src/backend/domains/github/pr-review-fixer.service.js +172 -0
- package/dist/src/backend/domains/github/pr-review-fixer.service.js.map +1 -0
- package/dist/src/backend/domains/github/pr-review-monitor.service.d.ts +19 -0
- package/dist/src/backend/domains/github/pr-review-monitor.service.d.ts.map +1 -0
- package/dist/src/backend/domains/github/pr-review-monitor.service.js +217 -0
- package/dist/src/backend/domains/github/pr-review-monitor.service.js.map +1 -0
- package/dist/src/backend/domains/github/pr-snapshot.service.d.ts +39 -0
- package/dist/src/backend/domains/github/pr-snapshot.service.d.ts.map +1 -0
- package/dist/src/backend/domains/github/pr-snapshot.service.js +116 -0
- package/dist/src/backend/domains/github/pr-snapshot.service.js.map +1 -0
- package/dist/src/backend/domains/github/pr-snapshot.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/github/pr-snapshot.service.test.js +149 -0
- package/dist/src/backend/domains/github/pr-snapshot.service.test.js.map +1 -0
- package/dist/src/backend/domains/ratchet/bridges.d.ts +71 -0
- package/dist/src/backend/domains/ratchet/bridges.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/bridges.js +2 -0
- package/dist/src/backend/domains/ratchet/bridges.js.map +1 -0
- package/dist/src/backend/domains/ratchet/ci-fixer.service.d.ts +48 -0
- package/dist/src/backend/domains/ratchet/ci-fixer.service.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/ci-fixer.service.js +126 -0
- package/dist/src/backend/domains/ratchet/ci-fixer.service.js.map +1 -0
- package/dist/src/backend/domains/ratchet/ci-fixer.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/ci-fixer.service.test.js +103 -0
- package/dist/src/backend/domains/ratchet/ci-fixer.service.test.js.map +1 -0
- package/dist/src/backend/domains/ratchet/ci-monitor.service.d.ts +33 -0
- package/dist/src/backend/domains/ratchet/ci-monitor.service.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/ci-monitor.service.js +270 -0
- package/dist/src/backend/domains/ratchet/ci-monitor.service.js.map +1 -0
- package/dist/src/backend/domains/ratchet/fixer-session.service.d.ts +55 -0
- package/dist/src/backend/domains/ratchet/fixer-session.service.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/fixer-session.service.js +178 -0
- package/dist/src/backend/domains/ratchet/fixer-session.service.js.map +1 -0
- package/dist/src/backend/domains/ratchet/fixer-session.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/fixer-session.service.test.js +165 -0
- package/dist/src/backend/domains/ratchet/fixer-session.service.test.js.map +1 -0
- package/dist/src/backend/domains/ratchet/index.d.ts +10 -0
- package/dist/src/backend/domains/ratchet/index.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/index.js +6 -0
- package/dist/src/backend/domains/ratchet/index.js.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet-domain-exports.test.d.ts +2 -0
- package/dist/src/backend/domains/ratchet/ratchet-domain-exports.test.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet-domain-exports.test.js +20 -0
- package/dist/src/backend/domains/ratchet/ratchet-domain-exports.test.js.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet.service.d.ts +83 -0
- package/dist/src/backend/domains/ratchet/ratchet.service.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet.service.js +669 -0
- package/dist/src/backend/domains/ratchet/ratchet.service.js.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet.service.test.js +873 -0
- package/dist/src/backend/domains/ratchet/ratchet.service.test.js.map +1 -0
- package/dist/src/backend/domains/ratchet/reconciliation.service.d.ts +20 -0
- package/dist/src/backend/domains/ratchet/reconciliation.service.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/reconciliation.service.js +138 -0
- package/dist/src/backend/domains/ratchet/reconciliation.service.js.map +1 -0
- package/dist/src/backend/domains/ratchet/reconciliation.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/reconciliation.service.test.js +249 -0
- package/dist/src/backend/domains/ratchet/reconciliation.service.test.js.map +1 -0
- package/dist/src/backend/domains/run-script/bridges.d.ts +5 -0
- package/dist/src/backend/domains/run-script/bridges.d.ts.map +1 -0
- package/dist/src/backend/domains/run-script/bridges.js +2 -0
- package/dist/src/backend/domains/run-script/bridges.js.map +1 -0
- package/dist/src/backend/domains/run-script/index.d.ts +5 -0
- package/dist/src/backend/domains/run-script/index.d.ts.map +1 -0
- package/dist/src/backend/domains/run-script/index.js +4 -0
- package/dist/src/backend/domains/run-script/index.js.map +1 -0
- package/dist/src/backend/domains/run-script/run-script-domain-exports.test.d.ts +2 -0
- package/dist/src/backend/domains/run-script/run-script-domain-exports.test.d.ts.map +1 -0
- package/dist/src/backend/domains/run-script/run-script-domain-exports.test.js +23 -0
- package/dist/src/backend/domains/run-script/run-script-domain-exports.test.js.map +1 -0
- package/dist/src/backend/domains/run-script/run-script-state-machine.service.d.ts +27 -0
- package/dist/src/backend/domains/run-script/run-script-state-machine.service.d.ts.map +1 -0
- package/dist/src/backend/domains/run-script/run-script-state-machine.service.js +140 -0
- package/dist/src/backend/domains/run-script/run-script-state-machine.service.js.map +1 -0
- package/dist/src/backend/domains/run-script/run-script-state-machine.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/run-script/run-script-state-machine.service.test.js +526 -0
- package/dist/src/backend/domains/run-script/run-script-state-machine.service.test.js.map +1 -0
- package/dist/src/backend/domains/run-script/run-script.service.d.ts +43 -0
- package/dist/src/backend/domains/run-script/run-script.service.d.ts.map +1 -0
- package/dist/src/backend/domains/run-script/run-script.service.js +471 -0
- package/dist/src/backend/domains/run-script/run-script.service.js.map +1 -0
- package/dist/src/backend/domains/run-script/run-script.service.test.d.ts +2 -0
- package/dist/src/backend/domains/run-script/run-script.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/run-script/run-script.service.test.js +285 -0
- package/dist/src/backend/domains/run-script/run-script.service.test.js.map +1 -0
- package/dist/src/backend/domains/run-script/startup-script.service.d.ts +33 -0
- package/dist/src/backend/domains/run-script/startup-script.service.d.ts.map +1 -0
- package/dist/src/backend/domains/run-script/startup-script.service.js +237 -0
- package/dist/src/backend/domains/run-script/startup-script.service.js.map +1 -0
- package/dist/src/backend/domains/session/bridges.d.ts +22 -0
- package/dist/src/backend/domains/session/bridges.d.ts.map +1 -0
- package/dist/src/backend/domains/session/bridges.js +2 -0
- package/dist/src/backend/domains/session/bridges.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-connection.service.d.ts +19 -0
- package/dist/src/backend/domains/session/chat/chat-connection.service.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-connection.service.js +66 -0
- package/dist/src/backend/domains/session/chat/chat-connection.service.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-event-forwarder.service.d.ts +42 -0
- package/dist/src/backend/domains/session/chat/chat-event-forwarder.service.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-event-forwarder.service.js +665 -0
- package/dist/src/backend/domains/session/chat/chat-event-forwarder.service.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-event-forwarder.service.test.d.ts +2 -0
- package/dist/src/backend/domains/session/chat/chat-event-forwarder.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-event-forwarder.service.test.js +133 -0
- package/dist/src/backend/domains/session/chat/chat-event-forwarder.service.test.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/attachment-processing.d.ts +14 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/attachment-processing.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/attachment-processing.js +88 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/attachment-processing.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/attachment-processing.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/attachment-processing.test.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/attachment-utils.d.ts +5 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/attachment-utils.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/attachment-utils.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/attachment-utils.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/attachment-utils.test.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/constants.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/constants.js +7 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/constants.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/list-sessions.handler.d.ts +4 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/list-sessions.handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/list-sessions.handler.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/load-session.handler.d.ts +4 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/load-session.handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/load-session.handler.js +47 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/load-session.handler.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/permission-response.handler.d.ts +4 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/permission-response.handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/permission-response.handler.js +42 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/permission-response.handler.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/question-response.handler.d.ts +4 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/question-response.handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/question-response.handler.js +34 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/question-response.handler.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/queue-message.handler.d.ts +4 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/queue-message.handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/queue-message.handler.js +64 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/queue-message.handler.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/remove-queued-message.handler.d.ts +4 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/remove-queued-message.handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/remove-queued-message.handler.js +25 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/remove-queued-message.handler.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/resume-queued-messages.handler.d.ts +4 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/resume-queued-messages.handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/resume-queued-messages.handler.js +7 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/resume-queued-messages.handler.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/rewind-files.handler.d.ts +4 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/rewind-files.handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/rewind-files.handler.js +48 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/rewind-files.handler.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/set-model.handler.d.ts +4 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/set-model.handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/set-model.handler.js +29 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/set-model.handler.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/set-thinking-budget.handler.d.ts +4 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/set-thinking-budget.handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/set-thinking-budget.handler.js +32 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/set-thinking-budget.handler.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/start.handler.d.ts +4 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/start.handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/start.handler.js +27 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/start.handler.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/start.handler.test.d.ts +2 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/start.handler.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/start.handler.test.js +43 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/start.handler.test.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/stop.handler.d.ts +4 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/stop.handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/stop.handler.js +9 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/stop.handler.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/user-input.handler.d.ts +4 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/user-input.handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/user-input.handler.js +27 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/user-input.handler.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/interactive-response.d.ts +2 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/interactive-response.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/interactive-response.js +91 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/interactive-response.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/interactive-response.test.d.ts +2 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/interactive-response.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/interactive-response.test.js +83 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/interactive-response.test.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/registry.d.ts +9 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/registry.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/registry.js +31 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/registry.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/types.d.ts +23 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/types.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/types.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/utils.d.ts +5 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/utils.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/utils.js +19 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers/utils.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers.service.d.ts +32 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers.service.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers.service.js +247 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers.service.js.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers.service.test.d.ts +2 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers.service.test.js +117 -0
- package/dist/src/backend/domains/session/chat/chat-message-handlers.service.test.js.map +1 -0
- package/dist/src/backend/domains/session/claude/client.d.ts +96 -0
- package/dist/src/backend/domains/session/claude/client.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/client.js +258 -0
- package/dist/src/backend/domains/session/claude/client.js.map +1 -0
- package/dist/src/backend/domains/session/claude/constants.d.ts +8 -0
- package/dist/src/backend/domains/session/claude/constants.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/constants.js +8 -0
- package/dist/src/backend/domains/session/claude/constants.js.map +1 -0
- package/dist/src/backend/domains/session/claude/index.d.ts +22 -0
- package/dist/src/backend/domains/session/claude/index.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/index.js +11 -0
- package/dist/src/backend/domains/session/claude/index.js.map +1 -0
- package/dist/src/backend/domains/session/claude/monitoring.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/monitoring.js +139 -0
- package/dist/src/backend/domains/session/claude/monitoring.js.map +1 -0
- package/dist/src/backend/domains/session/claude/permission-coordinator.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/permission-coordinator.js +170 -0
- package/dist/src/backend/domains/session/claude/permission-coordinator.js.map +1 -0
- package/dist/src/backend/domains/session/claude/permission-coordinator.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/permission-coordinator.test.js.map +1 -0
- package/dist/src/backend/domains/session/claude/permissions.d.ts +69 -0
- package/dist/src/backend/domains/session/claude/permissions.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/permissions.js.map +1 -0
- package/dist/src/backend/domains/session/claude/permissions.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/permissions.test.js.map +1 -0
- package/dist/src/backend/domains/session/claude/process.d.ts +100 -0
- package/dist/src/backend/domains/session/claude/process.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/process.js +345 -0
- package/dist/src/backend/domains/session/claude/process.js.map +1 -0
- package/dist/src/backend/domains/session/claude/process.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/process.test.js +23 -0
- package/dist/src/backend/domains/session/claude/process.test.js.map +1 -0
- package/dist/src/backend/domains/session/claude/protocol-io.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/protocol-io.js.map +1 -0
- package/dist/src/backend/domains/session/claude/protocol.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/protocol.js +388 -0
- package/dist/src/backend/domains/session/claude/protocol.js.map +1 -0
- package/dist/src/backend/domains/session/claude/protocol.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/protocol.test.js.map +1 -0
- package/dist/src/backend/domains/session/claude/registry.d.ts +20 -0
- package/dist/src/backend/domains/session/claude/registry.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/registry.js +35 -0
- package/dist/src/backend/domains/session/claude/registry.js.map +1 -0
- package/dist/src/backend/domains/session/claude/session.d.ts +24 -0
- package/dist/src/backend/domains/session/claude/session.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/session.js +365 -0
- package/dist/src/backend/domains/session/claude/session.js.map +1 -0
- package/dist/src/backend/domains/session/claude/session.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/session.test.js +679 -0
- package/dist/src/backend/domains/session/claude/session.test.js.map +1 -0
- package/dist/src/backend/domains/session/claude/types/process-types.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/types/process-types.js.map +1 -0
- package/dist/src/backend/domains/session/claude/types.d.ts +371 -0
- package/dist/src/backend/domains/session/claude/types.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/types.js.map +1 -0
- package/dist/src/backend/domains/session/claude/types.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/claude/types.test.js.map +1 -0
- package/dist/src/backend/domains/session/data/session-data.service.d.ts +163 -0
- package/dist/src/backend/domains/session/data/session-data.service.d.ts.map +1 -0
- package/dist/src/backend/domains/session/data/session-data.service.js +45 -0
- package/dist/src/backend/domains/session/data/session-data.service.js.map +1 -0
- package/dist/src/backend/domains/session/index.d.ts +19 -0
- package/dist/src/backend/domains/session/index.d.ts.map +1 -0
- package/dist/src/backend/domains/session/index.js +12 -0
- package/dist/src/backend/domains/session/index.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.process-manager.d.ts +50 -0
- package/dist/src/backend/domains/session/lifecycle/session.process-manager.d.ts.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.process-manager.js +237 -0
- package/dist/src/backend/domains/session/lifecycle/session.process-manager.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.process-manager.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.process-manager.test.js +127 -0
- package/dist/src/backend/domains/session/lifecycle/session.process-manager.test.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.prompt-builder.d.ts +29 -0
- package/dist/src/backend/domains/session/lifecycle/session.prompt-builder.d.ts.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.prompt-builder.js +29 -0
- package/dist/src/backend/domains/session/lifecycle/session.prompt-builder.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.prompt-builder.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.prompt-builder.test.js +171 -0
- package/dist/src/backend/domains/session/lifecycle/session.prompt-builder.test.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.repository.d.ts +33 -0
- package/dist/src/backend/domains/session/lifecycle/session.repository.d.ts.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.repository.js +51 -0
- package/dist/src/backend/domains/session/lifecycle/session.repository.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.repository.test.d.ts +2 -0
- package/dist/src/backend/domains/session/lifecycle/session.repository.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.repository.test.js +61 -0
- package/dist/src/backend/domains/session/lifecycle/session.repository.test.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.service.d.ts +67 -0
- package/dist/src/backend/domains/session/lifecycle/session.service.d.ts.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.service.js +439 -0
- package/dist/src/backend/domains/session/lifecycle/session.service.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.service.test.js +573 -0
- package/dist/src/backend/domains/session/lifecycle/session.service.test.js.map +1 -0
- package/dist/src/backend/domains/session/logging/session-file-logger.service.d.ts.map +1 -0
- package/dist/src/backend/domains/session/logging/session-file-logger.service.js +238 -0
- package/dist/src/backend/domains/session/logging/session-file-logger.service.js.map +1 -0
- package/dist/src/backend/domains/session/logging/session-file-logger.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/logging/session-file-logger.service.test.js +476 -0
- package/dist/src/backend/domains/session/logging/session-file-logger.service.test.js.map +1 -0
- package/dist/src/backend/domains/session/session-domain-exports.test.d.ts +2 -0
- package/dist/src/backend/domains/session/session-domain-exports.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/session-domain-exports.test.js +54 -0
- package/dist/src/backend/domains/session/session-domain-exports.test.js.map +1 -0
- package/dist/src/backend/domains/session/session-domain.service.d.ts +65 -0
- package/dist/src/backend/domains/session/session-domain.service.d.ts.map +1 -0
- package/dist/src/backend/domains/session/session-domain.service.js +262 -0
- package/dist/src/backend/domains/session/session-domain.service.js.map +1 -0
- package/dist/src/backend/domains/session/session-domain.service.test.d.ts +2 -0
- package/dist/src/backend/domains/session/session-domain.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/session-domain.service.test.js +825 -0
- package/dist/src/backend/domains/session/session-domain.service.test.js.map +1 -0
- package/dist/src/backend/domains/session/store/session-hydrator.d.ts +11 -0
- package/dist/src/backend/domains/session/store/session-hydrator.d.ts.map +1 -0
- package/dist/src/backend/domains/session/store/session-hydrator.js +55 -0
- package/dist/src/backend/domains/session/store/session-hydrator.js.map +1 -0
- package/dist/src/backend/domains/session/store/session-process-exit.d.ts +26 -0
- package/dist/src/backend/domains/session/store/session-process-exit.d.ts.map +1 -0
- package/dist/src/backend/domains/session/store/session-process-exit.js +43 -0
- package/dist/src/backend/domains/session/store/session-process-exit.js.map +1 -0
- package/dist/src/backend/domains/session/store/session-publisher.d.ts +18 -0
- package/dist/src/backend/domains/session/store/session-publisher.d.ts.map +1 -0
- package/dist/src/backend/domains/session/store/session-publisher.js +63 -0
- package/dist/src/backend/domains/session/store/session-publisher.js.map +1 -0
- package/dist/src/backend/domains/session/store/session-queue.d.ts +16 -0
- package/dist/src/backend/domains/session/store/session-queue.d.ts.map +1 -0
- package/dist/src/backend/domains/session/store/session-queue.js +46 -0
- package/dist/src/backend/domains/session/store/session-queue.js.map +1 -0
- package/dist/src/backend/domains/session/store/session-queue.test.d.ts +2 -0
- package/dist/src/backend/domains/session/store/session-queue.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/store/session-queue.test.js +109 -0
- package/dist/src/backend/domains/session/store/session-queue.test.js.map +1 -0
- package/dist/src/backend/domains/session/store/session-replay-builder.d.ts +5 -0
- package/dist/src/backend/domains/session/store/session-replay-builder.d.ts.map +1 -0
- package/dist/src/backend/domains/session/store/session-replay-builder.js +98 -0
- package/dist/src/backend/domains/session/store/session-replay-builder.js.map +1 -0
- package/dist/src/backend/domains/session/store/session-replay-builder.test.d.ts +2 -0
- package/dist/src/backend/domains/session/store/session-replay-builder.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/store/session-replay-builder.test.js +100 -0
- package/dist/src/backend/domains/session/store/session-replay-builder.test.js.map +1 -0
- package/dist/src/backend/domains/session/store/session-runtime-machine.d.ts +15 -0
- package/dist/src/backend/domains/session/store/session-runtime-machine.d.ts.map +1 -0
- package/dist/src/backend/domains/session/store/session-runtime-machine.js +37 -0
- package/dist/src/backend/domains/session/store/session-runtime-machine.js.map +1 -0
- package/dist/src/backend/domains/session/store/session-runtime-machine.test.d.ts +2 -0
- package/dist/src/backend/domains/session/store/session-runtime-machine.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/store/session-runtime-machine.test.js +65 -0
- package/dist/src/backend/domains/session/store/session-runtime-machine.test.js.map +1 -0
- package/dist/src/backend/domains/session/store/session-store-registry.d.ts +13 -0
- package/dist/src/backend/domains/session/store/session-store-registry.d.ts.map +1 -0
- package/dist/src/backend/domains/session/store/session-store-registry.js +49 -0
- package/dist/src/backend/domains/session/store/session-store-registry.js.map +1 -0
- package/dist/src/backend/domains/session/store/session-store.types.d.ts +21 -0
- package/dist/src/backend/domains/session/store/session-store.types.d.ts.map +1 -0
- package/dist/src/backend/domains/session/store/session-store.types.js +2 -0
- package/dist/src/backend/domains/session/store/session-store.types.js.map +1 -0
- package/dist/src/backend/domains/session/store/session-transcript.d.ts +19 -0
- package/dist/src/backend/domains/session/store/session-transcript.d.ts.map +1 -0
- package/dist/src/backend/domains/session/store/session-transcript.js +256 -0
- package/dist/src/backend/domains/session/store/session-transcript.js.map +1 -0
- package/dist/src/backend/domains/session/store/session-transcript.test.d.ts +2 -0
- package/dist/src/backend/domains/session/store/session-transcript.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/store/session-transcript.test.js +96 -0
- package/dist/src/backend/domains/session/store/session-transcript.test.js.map +1 -0
- package/dist/src/backend/domains/terminal/index.d.ts +2 -0
- package/dist/src/backend/domains/terminal/index.d.ts.map +1 -0
- package/dist/src/backend/domains/terminal/index.js +2 -0
- package/dist/src/backend/domains/terminal/index.js.map +1 -0
- package/dist/src/backend/domains/terminal/terminal-domain-exports.test.d.ts +2 -0
- package/dist/src/backend/domains/terminal/terminal-domain-exports.test.d.ts.map +1 -0
- package/dist/src/backend/domains/terminal/terminal-domain-exports.test.js +8 -0
- package/dist/src/backend/domains/terminal/terminal-domain-exports.test.js.map +1 -0
- package/dist/src/backend/domains/terminal/terminal.service.d.ts +72 -0
- package/dist/src/backend/domains/terminal/terminal.service.d.ts.map +1 -0
- package/dist/src/backend/domains/terminal/terminal.service.js +310 -0
- package/dist/src/backend/domains/terminal/terminal.service.js.map +1 -0
- package/dist/src/backend/domains/terminal/terminal.service.test.d.ts +2 -0
- package/dist/src/backend/domains/terminal/terminal.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/terminal/terminal.service.test.js +375 -0
- package/dist/src/backend/domains/terminal/terminal.service.test.js.map +1 -0
- package/dist/src/backend/domains/workspace/bridges.d.ts +25 -0
- package/dist/src/backend/domains/workspace/bridges.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/bridges.js +2 -0
- package/dist/src/backend/domains/workspace/bridges.js.map +1 -0
- package/dist/src/backend/domains/workspace/index.d.ts +11 -0
- package/dist/src/backend/domains/workspace/index.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/index.js +10 -0
- package/dist/src/backend/domains/workspace/index.js.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/activity.service.d.ts +13 -0
- package/dist/src/backend/domains/workspace/lifecycle/activity.service.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/activity.service.js +75 -0
- package/dist/src/backend/domains/workspace/lifecycle/activity.service.js.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/activity.service.test.d.ts +2 -0
- package/dist/src/backend/domains/workspace/lifecycle/activity.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/activity.service.test.js +32 -0
- package/dist/src/backend/domains/workspace/lifecycle/activity.service.test.js.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.d.ts +47 -0
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.js +150 -0
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.js.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.test.d.ts +2 -0
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.test.js +321 -0
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.test.js.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/data.service.d.ts +258 -0
- package/dist/src/backend/domains/workspace/lifecycle/data.service.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/data.service.js +23 -0
- package/dist/src/backend/domains/workspace/lifecycle/data.service.js.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.d.ts +27 -0
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.js +134 -0
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.js.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.test.d.ts +2 -0
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.test.js +376 -0
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.test.js.map +1 -0
- package/dist/src/backend/domains/workspace/query/workspace-query.service.d.ts +165 -0
- package/dist/src/backend/domains/workspace/query/workspace-query.service.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/query/workspace-query.service.js +300 -0
- package/dist/src/backend/domains/workspace/query/workspace-query.service.js.map +1 -0
- package/dist/src/backend/domains/workspace/state/flow-state.d.ts +22 -0
- package/dist/src/backend/domains/workspace/state/flow-state.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/state/flow-state.js +108 -0
- package/dist/src/backend/domains/workspace/state/flow-state.js.map +1 -0
- package/dist/src/backend/domains/workspace/state/flow-state.test.d.ts +2 -0
- package/dist/src/backend/domains/workspace/state/flow-state.test.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/state/flow-state.test.js +120 -0
- package/dist/src/backend/domains/workspace/state/flow-state.test.js.map +1 -0
- package/dist/src/backend/domains/workspace/state/init-policy.d.ts +14 -0
- package/dist/src/backend/domains/workspace/state/init-policy.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/state/init-policy.js +84 -0
- package/dist/src/backend/domains/workspace/state/init-policy.js.map +1 -0
- package/dist/src/backend/domains/workspace/state/init-policy.test.d.ts +2 -0
- package/dist/src/backend/domains/workspace/state/init-policy.test.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/state/init-policy.test.js +35 -0
- package/dist/src/backend/domains/workspace/state/init-policy.test.js.map +1 -0
- package/dist/src/backend/domains/workspace/state/kanban-state.d.ts +28 -0
- package/dist/src/backend/domains/workspace/state/kanban-state.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/state/kanban-state.js +104 -0
- package/dist/src/backend/domains/workspace/state/kanban-state.js.map +1 -0
- package/dist/src/backend/domains/workspace/state/kanban-state.test.d.ts +2 -0
- package/dist/src/backend/domains/workspace/state/kanban-state.test.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/state/kanban-state.test.js +217 -0
- package/dist/src/backend/domains/workspace/state/kanban-state.test.js.map +1 -0
- package/dist/src/backend/domains/workspace/workspace-domain-exports.test.d.ts +2 -0
- package/dist/src/backend/domains/workspace/workspace-domain-exports.test.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/workspace-domain-exports.test.js +47 -0
- package/dist/src/backend/domains/workspace/workspace-domain-exports.test.js.map +1 -0
- package/dist/src/backend/domains/workspace/worktree/worktree-init.test.d.ts +2 -0
- package/dist/src/backend/domains/workspace/worktree/worktree-init.test.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/worktree/worktree-init.test.js +262 -0
- package/dist/src/backend/domains/workspace/worktree/worktree-init.test.js.map +1 -0
- package/dist/src/backend/domains/workspace/worktree/worktree-lifecycle.service.d.ts +22 -0
- package/dist/src/backend/domains/workspace/worktree/worktree-lifecycle.service.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/worktree/worktree-lifecycle.service.js +174 -0
- package/dist/src/backend/domains/workspace/worktree/worktree-lifecycle.service.js.map +1 -0
- package/dist/src/backend/domains/workspace/worktree/worktree-lifecycle.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/workspace/worktree/worktree-lifecycle.service.test.js +83 -0
- package/dist/src/backend/domains/workspace/worktree/worktree-lifecycle.service.test.js.map +1 -0
- package/dist/src/backend/interceptors/conversation-rename.interceptor.js +2 -2
- package/dist/src/backend/interceptors/conversation-rename.interceptor.js.map +1 -1
- package/dist/src/backend/interceptors/pr-detection.interceptor.js +1 -1
- package/dist/src/backend/interceptors/pr-detection.interceptor.js.map +1 -1
- package/dist/src/backend/lib/atomic-file.d.ts +6 -0
- package/dist/src/backend/lib/atomic-file.d.ts.map +1 -0
- package/dist/src/backend/lib/atomic-file.js +28 -0
- package/dist/src/backend/lib/atomic-file.js.map +1 -0
- package/dist/src/backend/lib/atomic-file.test.d.ts +2 -0
- package/dist/src/backend/lib/atomic-file.test.d.ts.map +1 -0
- package/dist/src/backend/lib/atomic-file.test.js +62 -0
- package/dist/src/backend/lib/atomic-file.test.js.map +1 -0
- package/dist/src/backend/lib/claude-paths.d.ts +2 -0
- package/dist/src/backend/lib/claude-paths.d.ts.map +1 -0
- package/dist/src/backend/lib/claude-paths.js +7 -0
- package/dist/src/backend/lib/claude-paths.js.map +1 -0
- package/dist/src/backend/lib/constants.d.ts +6 -0
- package/dist/src/backend/lib/constants.d.ts.map +1 -0
- package/dist/src/backend/lib/constants.js +6 -0
- package/dist/src/backend/lib/constants.js.map +1 -0
- package/dist/src/backend/lib/event-emitter-types.d.ts +4 -0
- package/dist/src/backend/lib/event-emitter-types.d.ts.map +1 -0
- package/dist/src/backend/lib/event-emitter-types.js +2 -0
- package/dist/src/backend/lib/event-emitter-types.js.map +1 -0
- package/dist/src/backend/lib/file-helpers.d.ts.map +1 -1
- package/dist/src/backend/lib/file-helpers.js +2 -1
- package/dist/src/backend/lib/file-helpers.js.map +1 -1
- package/dist/src/backend/lib/file-lock-mutex.d.ts +26 -0
- package/dist/src/backend/lib/file-lock-mutex.d.ts.map +1 -0
- package/dist/src/backend/lib/file-lock-mutex.js +224 -0
- package/dist/src/backend/lib/file-lock-mutex.js.map +1 -0
- package/dist/src/backend/lib/file-lock-mutex.test.d.ts +2 -0
- package/dist/src/backend/lib/file-lock-mutex.test.d.ts.map +1 -0
- package/dist/src/backend/lib/file-lock-mutex.test.js +143 -0
- package/dist/src/backend/lib/file-lock-mutex.test.js.map +1 -0
- package/dist/src/backend/lib/shell.d.ts.map +1 -1
- package/dist/src/backend/lib/shell.js +3 -2
- package/dist/src/backend/lib/shell.js.map +1 -1
- package/dist/src/backend/middleware/middleware.test.js +41 -37
- package/dist/src/backend/middleware/middleware.test.js.map +1 -1
- package/dist/src/backend/migrate.d.ts.map +1 -1
- package/dist/src/backend/migrate.js +11 -4
- package/dist/src/backend/migrate.js.map +1 -1
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.d.ts +2 -0
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.d.ts.map +1 -0
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.js +87 -0
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.js.map +1 -0
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.test.d.ts +2 -0
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.test.d.ts.map +1 -0
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.test.js +263 -0
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.test.js.map +1 -0
- package/dist/src/backend/orchestration/index.d.ts +3 -0
- package/dist/src/backend/orchestration/index.d.ts.map +1 -0
- package/dist/src/backend/orchestration/index.js +3 -0
- package/dist/src/backend/orchestration/index.js.map +1 -0
- package/dist/src/backend/orchestration/types.d.ts +3 -0
- package/dist/src/backend/orchestration/types.d.ts.map +1 -0
- package/dist/src/backend/orchestration/types.js +2 -0
- package/dist/src/backend/orchestration/types.js.map +1 -0
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts +53 -0
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts.map +1 -0
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.js +66 -0
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.js.map +1 -0
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.d.ts +2 -0
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.d.ts.map +1 -0
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js +288 -0
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js.map +1 -0
- package/dist/src/backend/orchestration/workspace-init.orchestrator.d.ts +5 -0
- package/dist/src/backend/orchestration/workspace-init.orchestrator.d.ts.map +1 -0
- package/dist/src/backend/orchestration/workspace-init.orchestrator.js +432 -0
- package/dist/src/backend/orchestration/workspace-init.orchestrator.js.map +1 -0
- package/dist/src/backend/orchestration/workspace-init.orchestrator.test.d.ts +2 -0
- package/dist/src/backend/orchestration/workspace-init.orchestrator.test.d.ts.map +1 -0
- package/dist/src/backend/orchestration/workspace-init.orchestrator.test.js +589 -0
- package/dist/src/backend/orchestration/workspace-init.orchestrator.test.js.map +1 -0
- package/dist/src/backend/prompts/ratchet-dispatch.d.ts.map +1 -1
- package/dist/src/backend/prompts/ratchet-dispatch.js +1 -0
- package/dist/src/backend/prompts/ratchet-dispatch.js.map +1 -1
- package/dist/src/backend/resource_accessors/claude-session.accessor.d.ts +21 -1
- package/dist/src/backend/resource_accessors/claude-session.accessor.d.ts.map +1 -1
- package/dist/src/backend/resource_accessors/claude-session.accessor.js +48 -0
- package/dist/src/backend/resource_accessors/claude-session.accessor.js.map +1 -1
- package/dist/src/backend/resource_accessors/data-backup.accessor.d.ts +16 -0
- package/dist/src/backend/resource_accessors/data-backup.accessor.d.ts.map +1 -0
- package/dist/src/backend/resource_accessors/data-backup.accessor.js +23 -0
- package/dist/src/backend/resource_accessors/data-backup.accessor.js.map +1 -0
- package/dist/src/backend/resource_accessors/health.accessor.d.ts +6 -0
- package/dist/src/backend/resource_accessors/health.accessor.d.ts.map +1 -0
- package/dist/src/backend/resource_accessors/health.accessor.js +8 -0
- package/dist/src/backend/resource_accessors/health.accessor.js.map +1 -0
- package/dist/src/backend/resource_accessors/index.d.ts +2 -0
- package/dist/src/backend/resource_accessors/index.d.ts.map +1 -1
- package/dist/src/backend/resource_accessors/index.js +2 -0
- package/dist/src/backend/resource_accessors/index.js.map +1 -1
- package/dist/src/backend/resource_accessors/project.accessor.d.ts +5 -2
- package/dist/src/backend/resource_accessors/project.accessor.d.ts.map +1 -1
- package/dist/src/backend/resource_accessors/project.accessor.js +3 -0
- package/dist/src/backend/resource_accessors/project.accessor.js.map +1 -1
- package/dist/src/backend/resource_accessors/user-settings.accessor.d.ts +0 -4
- package/dist/src/backend/resource_accessors/user-settings.accessor.d.ts.map +1 -1
- package/dist/src/backend/resource_accessors/user-settings.accessor.js.map +1 -1
- package/dist/src/backend/resource_accessors/workspace.accessor.d.ts +12 -0
- package/dist/src/backend/resource_accessors/workspace.accessor.d.ts.map +1 -1
- package/dist/src/backend/resource_accessors/workspace.accessor.js +55 -0
- package/dist/src/backend/resource_accessors/workspace.accessor.js.map +1 -1
- package/dist/src/backend/routers/api/health.router.js +3 -3
- package/dist/src/backend/routers/api/health.router.js.map +1 -1
- package/dist/src/backend/routers/api/health.router.test.js +6 -5
- package/dist/src/backend/routers/api/health.router.test.js.map +1 -1
- package/dist/src/backend/routers/api/mcp.router.test.js +5 -4
- package/dist/src/backend/routers/api/mcp.router.test.js.map +1 -1
- package/dist/src/backend/routers/api/project.router.d.ts.map +1 -1
- package/dist/src/backend/routers/api/project.router.js +12 -12
- package/dist/src/backend/routers/api/project.router.js.map +1 -1
- package/dist/src/backend/routers/mcp/server.js +2 -2
- package/dist/src/backend/routers/mcp/server.js.map +1 -1
- package/dist/src/backend/routers/mcp/system.mcp.js +2 -2
- package/dist/src/backend/routers/mcp/system.mcp.js.map +1 -1
- package/dist/src/backend/routers/mcp/terminal.mcp.d.ts.map +1 -1
- package/dist/src/backend/routers/mcp/terminal.mcp.js +3 -3
- package/dist/src/backend/routers/mcp/terminal.mcp.js.map +1 -1
- package/dist/src/backend/routers/mcp/terminal.mcp.test.js +4 -4
- package/dist/src/backend/routers/mcp/terminal.mcp.test.js.map +1 -1
- package/dist/src/backend/routers/websocket/chat.handler.d.ts +1 -1
- package/dist/src/backend/routers/websocket/chat.handler.d.ts.map +1 -1
- package/dist/src/backend/routers/websocket/chat.handler.js +5 -12
- package/dist/src/backend/routers/websocket/chat.handler.js.map +1 -1
- package/dist/src/backend/routers/websocket/dev-logs.handler.d.ts.map +1 -1
- package/dist/src/backend/routers/websocket/dev-logs.handler.js +1 -2
- package/dist/src/backend/routers/websocket/dev-logs.handler.js.map +1 -1
- package/dist/src/backend/routers/websocket/terminal.handler.d.ts.map +1 -1
- package/dist/src/backend/routers/websocket/terminal.handler.js +9 -10
- package/dist/src/backend/routers/websocket/terminal.handler.js.map +1 -1
- package/dist/src/backend/server.d.ts.map +1 -1
- package/dist/src/backend/server.js +4 -2
- package/dist/src/backend/server.js.map +1 -1
- package/dist/src/backend/services/cli-health.service.d.ts +1 -2
- package/dist/src/backend/services/cli-health.service.d.ts.map +1 -1
- package/dist/src/backend/services/cli-health.service.js +8 -4
- package/dist/src/backend/services/cli-health.service.js.map +1 -1
- package/dist/src/backend/services/config.service.d.ts.map +1 -1
- package/dist/src/backend/services/config.service.js +3 -3
- package/dist/src/backend/services/config.service.js.map +1 -1
- package/dist/src/backend/services/constants.d.ts +37 -0
- package/dist/src/backend/services/constants.d.ts.map +1 -0
- package/dist/src/backend/services/constants.js +37 -0
- package/dist/src/backend/services/constants.js.map +1 -0
- package/dist/src/backend/services/data-backup.service.d.ts.map +1 -1
- package/dist/src/backend/services/data-backup.service.js +6 -28
- package/dist/src/backend/services/data-backup.service.js.map +1 -1
- package/dist/src/backend/services/data-backup.service.test.js +0 -18
- package/dist/src/backend/services/data-backup.service.test.js.map +1 -1
- package/dist/src/backend/services/decision-log-query.service.d.ts +15 -0
- package/dist/src/backend/services/decision-log-query.service.d.ts.map +1 -0
- package/dist/src/backend/services/decision-log-query.service.js +23 -0
- package/dist/src/backend/services/decision-log-query.service.js.map +1 -0
- package/dist/src/backend/services/factory-config.service.d.ts +1 -10
- package/dist/src/backend/services/factory-config.service.d.ts.map +1 -1
- package/dist/src/backend/services/factory-config.service.js +1 -7
- package/dist/src/backend/services/factory-config.service.js.map +1 -1
- package/dist/src/backend/services/file-lock.service.d.ts +5 -2
- package/dist/src/backend/services/file-lock.service.d.ts.map +1 -1
- package/dist/src/backend/services/file-lock.service.js +48 -6
- package/dist/src/backend/services/file-lock.service.js.map +1 -1
- package/dist/src/backend/services/file-lock.service.test.js +63 -6
- package/dist/src/backend/services/file-lock.service.test.js.map +1 -1
- package/dist/src/backend/services/git-ops.service.d.ts.map +1 -1
- package/dist/src/backend/services/git-ops.service.js +1 -1
- package/dist/src/backend/services/git-ops.service.js.map +1 -1
- package/dist/src/backend/services/health.service.d.ts +6 -0
- package/dist/src/backend/services/health.service.d.ts.map +1 -0
- package/dist/src/backend/services/health.service.js +8 -0
- package/dist/src/backend/services/health.service.js.map +1 -0
- package/dist/src/backend/services/index.d.ts +0 -17
- package/dist/src/backend/services/index.d.ts.map +1 -1
- package/dist/src/backend/services/index.js +0 -17
- package/dist/src/backend/services/index.js.map +1 -1
- package/dist/src/backend/services/logger.service.d.ts +2 -0
- package/dist/src/backend/services/logger.service.d.ts.map +1 -1
- package/dist/src/backend/services/logger.service.js +45 -8
- package/dist/src/backend/services/logger.service.js.map +1 -1
- package/dist/src/backend/services/port.service.d.ts.map +1 -1
- package/dist/src/backend/services/port.service.js +2 -1
- package/dist/src/backend/services/port.service.js.map +1 -1
- package/dist/src/backend/services/project-management.service.d.ts +181 -0
- package/dist/src/backend/services/project-management.service.d.ts.map +1 -0
- package/dist/src/backend/services/project-management.service.js +26 -0
- package/dist/src/backend/services/project-management.service.js.map +1 -0
- package/dist/src/backend/services/rate-limit-backoff.d.ts +19 -0
- package/dist/src/backend/services/rate-limit-backoff.d.ts.map +1 -0
- package/dist/src/backend/services/rate-limit-backoff.js +55 -0
- package/dist/src/backend/services/rate-limit-backoff.js.map +1 -0
- package/dist/src/backend/services/rate-limit-backoff.test.d.ts +2 -0
- package/dist/src/backend/services/rate-limit-backoff.test.d.ts.map +1 -0
- package/dist/src/backend/services/rate-limit-backoff.test.js +138 -0
- package/dist/src/backend/services/rate-limit-backoff.test.js.map +1 -0
- package/dist/src/backend/services/scheduler.service.d.ts.map +1 -1
- package/dist/src/backend/services/scheduler.service.js +6 -9
- package/dist/src/backend/services/scheduler.service.js.map +1 -1
- package/dist/src/backend/services/scheduler.service.test.js +2 -4
- package/dist/src/backend/services/scheduler.service.test.js.map +1 -1
- package/dist/src/backend/services/slash-command-cache.service.d.ts.map +1 -1
- package/dist/src/backend/services/slash-command-cache.service.js +1 -1
- package/dist/src/backend/services/slash-command-cache.service.js.map +1 -1
- package/dist/src/backend/services/user-settings-query.service.d.ts +16 -0
- package/dist/src/backend/services/user-settings-query.service.d.ts.map +1 -0
- package/dist/src/backend/services/user-settings-query.service.js +17 -0
- package/dist/src/backend/services/user-settings-query.service.js.map +1 -0
- package/dist/src/backend/trpc/admin.trpc.d.ts +68 -28
- package/dist/src/backend/trpc/admin.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/admin.trpc.js +130 -5
- package/dist/src/backend/trpc/admin.trpc.js.map +1 -1
- package/dist/src/backend/trpc/decision-log.trpc.d.ts +3 -3
- package/dist/src/backend/trpc/decision-log.trpc.js +4 -4
- package/dist/src/backend/trpc/decision-log.trpc.js.map +1 -1
- package/dist/src/backend/trpc/github.trpc.d.ts +8 -8
- package/dist/src/backend/trpc/github.trpc.js +7 -7
- package/dist/src/backend/trpc/github.trpc.js.map +1 -1
- package/dist/src/backend/trpc/index.d.ts +338 -292
- package/dist/src/backend/trpc/index.d.ts.map +1 -1
- package/dist/src/backend/trpc/pr-review.trpc.d.ts +4 -4
- package/dist/src/backend/trpc/project.trpc.d.ts +39 -30
- package/dist/src/backend/trpc/project.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/project.trpc.js +31 -31
- package/dist/src/backend/trpc/project.trpc.js.map +1 -1
- package/dist/src/backend/trpc/project.trpc.test.d.ts +2 -0
- package/dist/src/backend/trpc/project.trpc.test.d.ts.map +1 -0
- package/dist/src/backend/trpc/project.trpc.test.js +73 -0
- package/dist/src/backend/trpc/project.trpc.test.js.map +1 -0
- package/dist/src/backend/trpc/session.trpc.d.ts +96 -89
- package/dist/src/backend/trpc/session.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/session.trpc.js +30 -19
- package/dist/src/backend/trpc/session.trpc.js.map +1 -1
- package/dist/src/backend/trpc/user-settings.trpc.d.ts +4 -16
- package/dist/src/backend/trpc/user-settings.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/user-settings.trpc.js +5 -17
- package/dist/src/backend/trpc/user-settings.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/git.trpc.js +2 -2
- package/dist/src/backend/trpc/workspace/git.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/ide.trpc.js +5 -5
- package/dist/src/backend/trpc/workspace/ide.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/init.trpc.d.ts +21 -21
- package/dist/src/backend/trpc/workspace/init.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace/init.trpc.js +13 -13
- package/dist/src/backend/trpc/workspace/init.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/workspace-helpers.d.ts +32 -31
- package/dist/src/backend/trpc/workspace/workspace-helpers.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace/workspace-helpers.js +4 -4
- package/dist/src/backend/trpc/workspace/workspace-helpers.js.map +1 -1
- package/dist/src/backend/trpc/workspace.trpc.d.ts +123 -114
- package/dist/src/backend/trpc/workspace.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace.trpc.js +10 -13
- package/dist/src/backend/trpc/workspace.trpc.js.map +1 -1
- package/dist/src/backend/utils/conversation-analyzer.d.ts +1 -1
- package/dist/src/backend/utils/conversation-analyzer.d.ts.map +1 -1
- package/dist/src/cli/index.js +86 -30
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/shared/claude/protocol.d.ts +198 -7
- package/dist/src/shared/claude/protocol.d.ts.map +1 -1
- package/dist/src/shared/claude/protocol.js +185 -0
- package/dist/src/shared/claude/protocol.js.map +1 -1
- package/dist/src/shared/pending-request-types.d.ts +1 -0
- package/dist/src/shared/pending-request-types.d.ts.map +1 -1
- package/dist/src/shared/pending-request-types.js +3 -0
- package/dist/src/shared/pending-request-types.js.map +1 -1
- package/dist/src/shared/schemas/export-data.schema.d.ts +82 -77
- package/dist/src/shared/schemas/export-data.schema.d.ts.map +1 -1
- package/dist/src/shared/schemas/export-data.schema.js +4 -3
- package/dist/src/shared/schemas/export-data.schema.js.map +1 -1
- package/dist/src/shared/schemas/factory-config.schema.d.ts +10 -0
- package/dist/src/shared/schemas/factory-config.schema.d.ts.map +1 -0
- package/dist/src/shared/schemas/factory-config.schema.js +9 -0
- package/dist/src/shared/schemas/factory-config.schema.js.map +1 -0
- package/dist/src/shared/session-runtime.js +2 -2
- package/dist/src/shared/session-runtime.js.map +1 -1
- package/dist/src/shared/websocket/chat-message.schema.d.ts +5 -10
- package/dist/src/shared/websocket/chat-message.schema.d.ts.map +1 -1
- package/dist/src/shared/websocket/chat-message.schema.js +3 -2
- package/dist/src/shared/websocket/chat-message.schema.js.map +1 -1
- package/dist/src/shared/websocket/index.d.ts +1 -1
- package/dist/src/shared/websocket/index.d.ts.map +1 -1
- package/dist/src/shared/websocket/index.js.map +1 -1
- package/dist/src/shared/workspace-init.d.ts +8 -0
- package/dist/src/shared/workspace-init.d.ts.map +1 -0
- package/dist/src/shared/workspace-init.js +2 -0
- package/dist/src/shared/workspace-init.js.map +1 -0
- package/dist/src/shared/workspace-words.js +2 -1
- package/dist/src/shared/workspace-words.js.map +1 -1
- package/dist/src/test-utils/unsafe-coerce.d.ts +2 -0
- package/dist/src/test-utils/unsafe-coerce.d.ts.map +1 -0
- package/dist/src/test-utils/unsafe-coerce.js +4 -0
- package/dist/src/test-utils/unsafe-coerce.js.map +1 -0
- package/dist/tsconfig.backend.tsbuildinfo +1 -1
- package/package.json +4 -1
- package/prisma/migrations/20260208000000_remove_unused_ratchet_settings/migration.sql +12 -0
- package/prisma/migrations/20260208153000_add_claude_project_path/migration.sql +2 -0
- package/prisma/schema.prisma +1 -4
- package/prompts/ratchet/dispatch.md +3 -1
- package/dist/client/assets/_basePickBy-BXw54oMQ.js +0 -1
- package/dist/client/assets/_baseUniq-_2-lN-JZ.js +0 -1
- package/dist/client/assets/arc-DaCKgXo4.js +0 -1
- package/dist/client/assets/architectureDiagram-VXUJARFQ-D5dlDvyJ.js +0 -36
- package/dist/client/assets/blockDiagram-VD42YOAC-CEAiD2S_.js +0 -122
- package/dist/client/assets/c4Diagram-YG6GDRKO-DTNRx2b5.js +0 -10
- package/dist/client/assets/channel-BusoDFL5.js +0 -1
- package/dist/client/assets/chunk-4BX2VUAB-yvp0WNZ0.js +0 -1
- package/dist/client/assets/chunk-55IACEB6-Cse3ExNd.js +0 -1
- package/dist/client/assets/chunk-B4BG7PRW-Bl2GpPLn.js +0 -165
- package/dist/client/assets/chunk-DI55MBZ5-CV5Cqkss.js +0 -220
- package/dist/client/assets/chunk-FMBD7UC4-CP3yjlO6.js +0 -15
- package/dist/client/assets/chunk-QN33PNHL-DUdJaEPB.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-DYTUnPIc.js +0 -1
- package/dist/client/assets/chunk-TZMSLE5B-CtWiqR24.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-C3RMRasv.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-C3RMRasv.js +0 -1
- package/dist/client/assets/clone-D6B-nWvg.js +0 -1
- package/dist/client/assets/cose-bilkent-S5V4N54A-B67RdhOB.js +0 -1
- package/dist/client/assets/dagre-6UL2VRFP-D9u_oxJL.js +0 -4
- package/dist/client/assets/diagram-PSM6KHXK-DOWfPnpa.js +0 -24
- package/dist/client/assets/diagram-QEK2KX5R-CqJwZbAA.js +0 -43
- package/dist/client/assets/diagram-S2PKOQOG-D0ri9ztm.js +0 -24
- package/dist/client/assets/erDiagram-Q2GNP2WA-0cRKPUY7.js +0 -60
- package/dist/client/assets/flowDiagram-NV44I4VS-Cj_5-ww1.js +0 -162
- package/dist/client/assets/ganttDiagram-JELNMOA3-Cwm2arni.js +0 -267
- package/dist/client/assets/gitGraphDiagram-NY62KEGX-DKyLuO26.js +0 -65
- package/dist/client/assets/graph-BhRkLhV1.js +0 -1
- package/dist/client/assets/index-1HR_eYGL.js +0 -437
- package/dist/client/assets/index-DHENAn70.css +0 -1
- package/dist/client/assets/infoDiagram-WHAUD3N6-DuzPbELj.js +0 -2
- package/dist/client/assets/journeyDiagram-XKPGCS4Q-BfearpNr.js +0 -139
- package/dist/client/assets/kanban-definition-3W4ZIXB7-R5KMtAj4.js +0 -89
- package/dist/client/assets/layout-B-tL36G2.js +0 -1
- package/dist/client/assets/linear-CvIBiHN-.js +0 -1
- package/dist/client/assets/mindmap-definition-VGOIOE7T-CHYN0wBz.js +0 -68
- package/dist/client/assets/pieDiagram-ADFJNKIX-LkA8WwD-.js +0 -30
- package/dist/client/assets/quadrantDiagram-AYHSOK5B-B5s8Qc9j.js +0 -7
- package/dist/client/assets/requirementDiagram-UZGBJVZJ-BMLpjBJA.js +0 -64
- package/dist/client/assets/sankeyDiagram-TZEHDZUN-BIj9RGlp.js +0 -10
- package/dist/client/assets/sequenceDiagram-WL72ISMW-uGM-Jh_O.js +0 -145
- package/dist/client/assets/stateDiagram-FKZM4ZOC-CQQhnUok.js +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BUJPEM7D.js +0 -1
- package/dist/client/assets/terminal-instance-DpK3PfW4.js +0 -1
- package/dist/client/assets/timeline-definition-IT6M3QCI-BusXMYfI.js +0 -61
- package/dist/client/assets/treemap-KMMF4GRG-XF3-w8dz.js +0 -128
- package/dist/client/assets/xychartDiagram-PRI3JC2R-DhKTXxb3.js +0 -7
- package/dist/prompts/workflows/ratchet.md +0 -73
- package/dist/src/backend/claude/index.d.ts +0 -104
- package/dist/src/backend/claude/index.d.ts.map +0 -1
- package/dist/src/backend/claude/index.js +0 -266
- package/dist/src/backend/claude/index.js.map +0 -1
- package/dist/src/backend/claude/monitoring.d.ts.map +0 -1
- package/dist/src/backend/claude/monitoring.js +0 -139
- package/dist/src/backend/claude/monitoring.js.map +0 -1
- package/dist/src/backend/claude/permission-coordinator.d.ts.map +0 -1
- package/dist/src/backend/claude/permission-coordinator.js +0 -170
- package/dist/src/backend/claude/permission-coordinator.js.map +0 -1
- package/dist/src/backend/claude/permission-coordinator.test.d.ts.map +0 -1
- package/dist/src/backend/claude/permission-coordinator.test.js.map +0 -1
- package/dist/src/backend/claude/permissions.d.ts +0 -68
- package/dist/src/backend/claude/permissions.d.ts.map +0 -1
- package/dist/src/backend/claude/permissions.js.map +0 -1
- package/dist/src/backend/claude/permissions.test.d.ts.map +0 -1
- package/dist/src/backend/claude/permissions.test.js.map +0 -1
- package/dist/src/backend/claude/process.d.ts +0 -101
- package/dist/src/backend/claude/process.d.ts.map +0 -1
- package/dist/src/backend/claude/process.js +0 -345
- package/dist/src/backend/claude/process.js.map +0 -1
- package/dist/src/backend/claude/process.test.d.ts.map +0 -1
- package/dist/src/backend/claude/process.test.js +0 -22
- package/dist/src/backend/claude/process.test.js.map +0 -1
- package/dist/src/backend/claude/protocol-io.d.ts.map +0 -1
- package/dist/src/backend/claude/protocol-io.js.map +0 -1
- package/dist/src/backend/claude/protocol.d.ts.map +0 -1
- package/dist/src/backend/claude/protocol.js +0 -387
- package/dist/src/backend/claude/protocol.js.map +0 -1
- package/dist/src/backend/claude/protocol.test.d.ts.map +0 -1
- package/dist/src/backend/claude/protocol.test.js.map +0 -1
- package/dist/src/backend/claude/registry.d.ts +0 -16
- package/dist/src/backend/claude/registry.d.ts.map +0 -1
- package/dist/src/backend/claude/registry.js +0 -32
- package/dist/src/backend/claude/registry.js.map +0 -1
- package/dist/src/backend/claude/session.d.ts +0 -28
- package/dist/src/backend/claude/session.d.ts.map +0 -1
- package/dist/src/backend/claude/session.js +0 -269
- package/dist/src/backend/claude/session.js.map +0 -1
- package/dist/src/backend/claude/session.test.d.ts.map +0 -1
- package/dist/src/backend/claude/session.test.js +0 -486
- package/dist/src/backend/claude/session.test.js.map +0 -1
- package/dist/src/backend/claude/types/process-types.d.ts.map +0 -1
- package/dist/src/backend/claude/types/process-types.js.map +0 -1
- package/dist/src/backend/claude/types.d.ts +0 -371
- package/dist/src/backend/claude/types.d.ts.map +0 -1
- package/dist/src/backend/claude/types.js.map +0 -1
- package/dist/src/backend/claude/types.test.d.ts.map +0 -1
- package/dist/src/backend/claude/types.test.js.map +0 -1
- package/dist/src/backend/services/chat-connection.service.d.ts +0 -18
- package/dist/src/backend/services/chat-connection.service.d.ts.map +0 -1
- package/dist/src/backend/services/chat-connection.service.js +0 -66
- package/dist/src/backend/services/chat-connection.service.js.map +0 -1
- package/dist/src/backend/services/chat-event-forwarder.service.d.ts +0 -27
- package/dist/src/backend/services/chat-event-forwarder.service.d.ts.map +0 -1
- package/dist/src/backend/services/chat-event-forwarder.service.js +0 -537
- package/dist/src/backend/services/chat-event-forwarder.service.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.d.ts +0 -14
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.js +0 -81
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.test.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.test.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/attachment-utils.d.ts +0 -5
- package/dist/src/backend/services/chat-message-handlers/attachment-utils.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/attachment-utils.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/attachment-utils.test.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/attachment-utils.test.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/constants.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/constants.js +0 -7
- package/dist/src/backend/services/chat-message-handlers/constants.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.js +0 -16
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.js +0 -17
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/handlers.test.d.ts +0 -2
- package/dist/src/backend/services/chat-message-handlers/handlers/handlers.test.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/handlers.test.js +0 -628
- package/dist/src/backend/services/chat-message-handlers/handlers/handlers.test.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/list-sessions.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/list-sessions.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/list-sessions.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.js +0 -123
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.js +0 -42
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.js +0 -34
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.js +0 -45
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.js +0 -22
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.js +0 -48
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.js +0 -30
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.js +0 -33
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.js +0 -29
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.js +0 -15
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.d.ts +0 -4
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.js +0 -27
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/interactive-response.d.ts +0 -3
- package/dist/src/backend/services/chat-message-handlers/interactive-response.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/interactive-response.js +0 -83
- package/dist/src/backend/services/chat-message-handlers/interactive-response.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/registry.d.ts +0 -9
- package/dist/src/backend/services/chat-message-handlers/registry.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/registry.js +0 -33
- package/dist/src/backend/services/chat-message-handlers/registry.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/types.d.ts +0 -22
- package/dist/src/backend/services/chat-message-handlers/types.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/types.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/utils.d.ts +0 -6
- package/dist/src/backend/services/chat-message-handlers/utils.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers/utils.js +0 -28
- package/dist/src/backend/services/chat-message-handlers/utils.js.map +0 -1
- package/dist/src/backend/services/chat-message-handlers.service.d.ts +0 -21
- package/dist/src/backend/services/chat-message-handlers.service.d.ts.map +0 -1
- package/dist/src/backend/services/chat-message-handlers.service.js +0 -166
- package/dist/src/backend/services/chat-message-handlers.service.js.map +0 -1
- package/dist/src/backend/services/chat-transport-adapter.service.d.ts +0 -12
- package/dist/src/backend/services/chat-transport-adapter.service.d.ts.map +0 -1
- package/dist/src/backend/services/chat-transport-adapter.service.js +0 -77
- package/dist/src/backend/services/chat-transport-adapter.service.js.map +0 -1
- package/dist/src/backend/services/chat-transport-adapter.service.test.d.ts +0 -2
- package/dist/src/backend/services/chat-transport-adapter.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/chat-transport-adapter.service.test.js +0 -81
- package/dist/src/backend/services/chat-transport-adapter.service.test.js.map +0 -1
- package/dist/src/backend/services/ci-fixer.service.d.ts +0 -42
- package/dist/src/backend/services/ci-fixer.service.d.ts.map +0 -1
- package/dist/src/backend/services/ci-fixer.service.js +0 -117
- package/dist/src/backend/services/ci-fixer.service.js.map +0 -1
- package/dist/src/backend/services/ci-fixer.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/ci-fixer.service.test.js +0 -101
- package/dist/src/backend/services/ci-fixer.service.test.js.map +0 -1
- package/dist/src/backend/services/ci-monitor.service.d.ts +0 -23
- package/dist/src/backend/services/ci-monitor.service.d.ts.map +0 -1
- package/dist/src/backend/services/ci-monitor.service.js +0 -247
- package/dist/src/backend/services/ci-monitor.service.js.map +0 -1
- package/dist/src/backend/services/event-compression.service.d.ts +0 -37
- package/dist/src/backend/services/event-compression.service.d.ts.map +0 -1
- package/dist/src/backend/services/event-compression.service.js +0 -235
- package/dist/src/backend/services/event-compression.service.js.map +0 -1
- package/dist/src/backend/services/event-compression.service.test.d.ts +0 -2
- package/dist/src/backend/services/event-compression.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/event-compression.service.test.js +0 -336
- package/dist/src/backend/services/event-compression.service.test.js.map +0 -1
- package/dist/src/backend/services/fixer-session.service.d.ts +0 -49
- package/dist/src/backend/services/fixer-session.service.d.ts.map +0 -1
- package/dist/src/backend/services/fixer-session.service.js +0 -191
- package/dist/src/backend/services/fixer-session.service.js.map +0 -1
- package/dist/src/backend/services/fixer-session.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/fixer-session.service.test.js +0 -188
- package/dist/src/backend/services/fixer-session.service.test.js.map +0 -1
- package/dist/src/backend/services/github-cli.service.d.ts +0 -112
- package/dist/src/backend/services/github-cli.service.d.ts.map +0 -1
- package/dist/src/backend/services/github-cli.service.js +0 -681
- package/dist/src/backend/services/github-cli.service.js.map +0 -1
- package/dist/src/backend/services/github-cli.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/github-cli.service.test.js +0 -428
- package/dist/src/backend/services/github-cli.service.test.js.map +0 -1
- package/dist/src/backend/services/kanban-state.service.d.ts +0 -22
- package/dist/src/backend/services/kanban-state.service.d.ts.map +0 -1
- package/dist/src/backend/services/kanban-state.service.js +0 -95
- package/dist/src/backend/services/kanban-state.service.js.map +0 -1
- package/dist/src/backend/services/kanban-state.service.test.d.ts +0 -2
- package/dist/src/backend/services/kanban-state.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/kanban-state.service.test.js +0 -217
- package/dist/src/backend/services/kanban-state.service.test.js.map +0 -1
- package/dist/src/backend/services/message-event-store.d.ts +0 -12
- package/dist/src/backend/services/message-event-store.d.ts.map +0 -1
- package/dist/src/backend/services/message-event-store.js +0 -21
- package/dist/src/backend/services/message-event-store.js.map +0 -1
- package/dist/src/backend/services/message-event-store.test.d.ts +0 -2
- package/dist/src/backend/services/message-event-store.test.d.ts.map +0 -1
- package/dist/src/backend/services/message-event-store.test.js +0 -32
- package/dist/src/backend/services/message-event-store.test.js.map +0 -1
- package/dist/src/backend/services/message-queue.service.d.ts +0 -21
- package/dist/src/backend/services/message-queue.service.d.ts.map +0 -1
- package/dist/src/backend/services/message-queue.service.js +0 -105
- package/dist/src/backend/services/message-queue.service.js.map +0 -1
- package/dist/src/backend/services/message-queue.service.test.d.ts +0 -2
- package/dist/src/backend/services/message-queue.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/message-queue.service.test.js +0 -278
- package/dist/src/backend/services/message-queue.service.test.js.map +0 -1
- package/dist/src/backend/services/message-state-machine.d.ts +0 -37
- package/dist/src/backend/services/message-state-machine.d.ts.map +0 -1
- package/dist/src/backend/services/message-state-machine.js +0 -268
- package/dist/src/backend/services/message-state-machine.js.map +0 -1
- package/dist/src/backend/services/message-state-machine.test.d.ts +0 -2
- package/dist/src/backend/services/message-state-machine.test.d.ts.map +0 -1
- package/dist/src/backend/services/message-state-machine.test.js +0 -67
- package/dist/src/backend/services/message-state-machine.test.js.map +0 -1
- package/dist/src/backend/services/message-state.service.d.ts +0 -77
- package/dist/src/backend/services/message-state.service.d.ts.map +0 -1
- package/dist/src/backend/services/message-state.service.js +0 -279
- package/dist/src/backend/services/message-state.service.js.map +0 -1
- package/dist/src/backend/services/message-state.service.test.d.ts +0 -2
- package/dist/src/backend/services/message-state.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/message-state.service.test.js +0 -541
- package/dist/src/backend/services/message-state.service.test.js.map +0 -1
- package/dist/src/backend/services/pr-review-fixer.service.d.ts +0 -56
- package/dist/src/backend/services/pr-review-fixer.service.d.ts.map +0 -1
- package/dist/src/backend/services/pr-review-fixer.service.js +0 -156
- package/dist/src/backend/services/pr-review-fixer.service.js.map +0 -1
- package/dist/src/backend/services/pr-review-monitor.service.d.ts +0 -18
- package/dist/src/backend/services/pr-review-monitor.service.d.ts.map +0 -1
- package/dist/src/backend/services/pr-review-monitor.service.js +0 -207
- package/dist/src/backend/services/pr-review-monitor.service.js.map +0 -1
- package/dist/src/backend/services/pr-snapshot.service.d.ts +0 -33
- package/dist/src/backend/services/pr-snapshot.service.d.ts.map +0 -1
- package/dist/src/backend/services/pr-snapshot.service.js +0 -107
- package/dist/src/backend/services/pr-snapshot.service.js.map +0 -1
- package/dist/src/backend/services/pr-snapshot.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/pr-snapshot.service.test.js +0 -149
- package/dist/src/backend/services/pr-snapshot.service.test.js.map +0 -1
- package/dist/src/backend/services/ratchet.service.d.ts +0 -64
- package/dist/src/backend/services/ratchet.service.d.ts.map +0 -1
- package/dist/src/backend/services/ratchet.service.js +0 -414
- package/dist/src/backend/services/ratchet.service.js.map +0 -1
- package/dist/src/backend/services/ratchet.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/ratchet.service.test.js +0 -359
- package/dist/src/backend/services/ratchet.service.test.js.map +0 -1
- package/dist/src/backend/services/reconciliation.service.d.ts +0 -14
- package/dist/src/backend/services/reconciliation.service.d.ts.map +0 -1
- package/dist/src/backend/services/reconciliation.service.js +0 -127
- package/dist/src/backend/services/reconciliation.service.js.map +0 -1
- package/dist/src/backend/services/reconciliation.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/reconciliation.service.test.js +0 -235
- package/dist/src/backend/services/reconciliation.service.test.js.map +0 -1
- package/dist/src/backend/services/run-script-state-machine.service.d.ts +0 -27
- package/dist/src/backend/services/run-script-state-machine.service.d.ts.map +0 -1
- package/dist/src/backend/services/run-script-state-machine.service.js +0 -149
- package/dist/src/backend/services/run-script-state-machine.service.js.map +0 -1
- package/dist/src/backend/services/run-script-state-machine.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/run-script-state-machine.service.test.js +0 -453
- package/dist/src/backend/services/run-script-state-machine.service.test.js.map +0 -1
- package/dist/src/backend/services/run-script.service.d.ts +0 -28
- package/dist/src/backend/services/run-script.service.d.ts.map +0 -1
- package/dist/src/backend/services/run-script.service.js +0 -430
- package/dist/src/backend/services/run-script.service.js.map +0 -1
- package/dist/src/backend/services/session-file-logger.service.d.ts.map +0 -1
- package/dist/src/backend/services/session-file-logger.service.js +0 -238
- package/dist/src/backend/services/session-file-logger.service.js.map +0 -1
- package/dist/src/backend/services/session-file-logger.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/session-file-logger.service.test.js +0 -476
- package/dist/src/backend/services/session-file-logger.service.test.js.map +0 -1
- package/dist/src/backend/services/session-runtime-store.service.d.ts +0 -38
- package/dist/src/backend/services/session-runtime-store.service.d.ts.map +0 -1
- package/dist/src/backend/services/session-runtime-store.service.js +0 -111
- package/dist/src/backend/services/session-runtime-store.service.js.map +0 -1
- package/dist/src/backend/services/session-runtime-store.service.test.d.ts +0 -2
- package/dist/src/backend/services/session-runtime-store.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/session-runtime-store.service.test.js +0 -15
- package/dist/src/backend/services/session-runtime-store.service.test.js.map +0 -1
- package/dist/src/backend/services/session.process-manager.d.ts +0 -48
- package/dist/src/backend/services/session.process-manager.d.ts.map +0 -1
- package/dist/src/backend/services/session.process-manager.js +0 -208
- package/dist/src/backend/services/session.process-manager.js.map +0 -1
- package/dist/src/backend/services/session.process-manager.test.d.ts.map +0 -1
- package/dist/src/backend/services/session.process-manager.test.js +0 -55
- package/dist/src/backend/services/session.process-manager.test.js.map +0 -1
- package/dist/src/backend/services/session.prompt-builder.d.ts +0 -27
- package/dist/src/backend/services/session.prompt-builder.d.ts.map +0 -1
- package/dist/src/backend/services/session.prompt-builder.js +0 -27
- package/dist/src/backend/services/session.prompt-builder.js.map +0 -1
- package/dist/src/backend/services/session.prompt-builder.test.d.ts.map +0 -1
- package/dist/src/backend/services/session.prompt-builder.test.js +0 -106
- package/dist/src/backend/services/session.prompt-builder.test.js.map +0 -1
- package/dist/src/backend/services/session.repository.d.ts +0 -32
- package/dist/src/backend/services/session.repository.d.ts.map +0 -1
- package/dist/src/backend/services/session.repository.js +0 -37
- package/dist/src/backend/services/session.repository.js.map +0 -1
- package/dist/src/backend/services/session.service.d.ts +0 -58
- package/dist/src/backend/services/session.service.d.ts.map +0 -1
- package/dist/src/backend/services/session.service.js +0 -278
- package/dist/src/backend/services/session.service.js.map +0 -1
- package/dist/src/backend/services/session.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/session.service.test.js +0 -425
- package/dist/src/backend/services/session.service.test.js.map +0 -1
- package/dist/src/backend/services/startup-script.service.d.ts +0 -27
- package/dist/src/backend/services/startup-script.service.d.ts.map +0 -1
- package/dist/src/backend/services/startup-script.service.js +0 -227
- package/dist/src/backend/services/startup-script.service.js.map +0 -1
- package/dist/src/backend/services/terminal.service.d.ts +0 -73
- package/dist/src/backend/services/terminal.service.d.ts.map +0 -1
- package/dist/src/backend/services/terminal.service.js +0 -303
- package/dist/src/backend/services/terminal.service.js.map +0 -1
- package/dist/src/backend/services/workspace-activity.service.d.ts +0 -13
- package/dist/src/backend/services/workspace-activity.service.d.ts.map +0 -1
- package/dist/src/backend/services/workspace-activity.service.js +0 -74
- package/dist/src/backend/services/workspace-activity.service.js.map +0 -1
- package/dist/src/backend/services/workspace-creation.service.d.ts +0 -47
- package/dist/src/backend/services/workspace-creation.service.d.ts.map +0 -1
- package/dist/src/backend/services/workspace-creation.service.js +0 -144
- package/dist/src/backend/services/workspace-creation.service.js.map +0 -1
- package/dist/src/backend/services/workspace-creation.service.test.d.ts +0 -2
- package/dist/src/backend/services/workspace-creation.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/workspace-creation.service.test.js +0 -326
- package/dist/src/backend/services/workspace-creation.service.test.js.map +0 -1
- package/dist/src/backend/services/workspace-flow-state.service.d.ts +0 -22
- package/dist/src/backend/services/workspace-flow-state.service.d.ts.map +0 -1
- package/dist/src/backend/services/workspace-flow-state.service.js +0 -108
- package/dist/src/backend/services/workspace-flow-state.service.js.map +0 -1
- package/dist/src/backend/services/workspace-flow-state.service.test.d.ts +0 -2
- package/dist/src/backend/services/workspace-flow-state.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/workspace-flow-state.service.test.js +0 -120
- package/dist/src/backend/services/workspace-flow-state.service.test.js.map +0 -1
- package/dist/src/backend/services/workspace-query.service.d.ts +0 -148
- package/dist/src/backend/services/workspace-query.service.d.ts.map +0 -1
- package/dist/src/backend/services/workspace-query.service.js +0 -253
- package/dist/src/backend/services/workspace-query.service.js.map +0 -1
- package/dist/src/backend/services/workspace-state-machine.service.d.ts +0 -27
- package/dist/src/backend/services/workspace-state-machine.service.d.ts.map +0 -1
- package/dist/src/backend/services/workspace-state-machine.service.js +0 -168
- package/dist/src/backend/services/workspace-state-machine.service.js.map +0 -1
- package/dist/src/backend/services/workspace-state-machine.service.test.d.ts +0 -2
- package/dist/src/backend/services/workspace-state-machine.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/workspace-state-machine.service.test.js +0 -376
- package/dist/src/backend/services/workspace-state-machine.service.test.js.map +0 -1
- package/dist/src/backend/services/worktree-lifecycle-init.test.d.ts +0 -2
- package/dist/src/backend/services/worktree-lifecycle-init.test.d.ts.map +0 -1
- package/dist/src/backend/services/worktree-lifecycle-init.test.js +0 -184
- package/dist/src/backend/services/worktree-lifecycle-init.test.js.map +0 -1
- package/dist/src/backend/services/worktree-lifecycle.service.d.ts +0 -69
- package/dist/src/backend/services/worktree-lifecycle.service.d.ts.map +0 -1
- package/dist/src/backend/services/worktree-lifecycle.service.js +0 -635
- package/dist/src/backend/services/worktree-lifecycle.service.js.map +0 -1
- package/dist/src/backend/services/worktree-lifecycle.service.test.d.ts.map +0 -1
- package/dist/src/backend/services/worktree-lifecycle.service.test.js +0 -83
- package/dist/src/backend/services/worktree-lifecycle.service.test.js.map +0 -1
- package/prompts/workflows/ratchet.md +0 -73
- /package/dist/src/backend/{services → domains/github}/github-cli.service.test.d.ts +0 -0
- /package/dist/src/backend/{services → domains/github}/pr-snapshot.service.test.d.ts +0 -0
- /package/dist/src/backend/{services → domains/ratchet}/ci-fixer.service.test.d.ts +0 -0
- /package/dist/src/backend/{services → domains/ratchet}/fixer-session.service.test.d.ts +0 -0
- /package/dist/src/backend/{services → domains/ratchet}/ratchet.service.test.d.ts +0 -0
- /package/dist/src/backend/{services → domains/ratchet}/reconciliation.service.test.d.ts +0 -0
- /package/dist/src/backend/{services → domains/run-script}/run-script-state-machine.service.test.d.ts +0 -0
- /package/dist/src/backend/{services → domains/session/chat}/chat-message-handlers/attachment-processing.test.d.ts +0 -0
- /package/dist/src/backend/{services → domains/session/chat}/chat-message-handlers/attachment-processing.test.js +0 -0
- /package/dist/src/backend/{services → domains/session/chat}/chat-message-handlers/attachment-utils.js +0 -0
- /package/dist/src/backend/{services → domains/session/chat}/chat-message-handlers/attachment-utils.test.d.ts +0 -0
- /package/dist/src/backend/{services → domains/session/chat}/chat-message-handlers/attachment-utils.test.js +0 -0
- /package/dist/src/backend/{services → domains/session/chat}/chat-message-handlers/constants.d.ts +0 -0
- /package/dist/src/backend/{services → domains/session/chat}/chat-message-handlers/handlers/list-sessions.handler.js +0 -0
- /package/dist/src/backend/{services → domains/session/chat}/chat-message-handlers/types.js +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/monitoring.d.ts +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/permission-coordinator.d.ts +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/permission-coordinator.test.d.ts +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/permission-coordinator.test.js +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/permissions.js +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/permissions.test.d.ts +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/permissions.test.js +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/process.test.d.ts +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/protocol-io.d.ts +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/protocol-io.js +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/protocol.d.ts +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/protocol.test.d.ts +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/protocol.test.js +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/session.test.d.ts +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/types/process-types.d.ts +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/types/process-types.js +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/types.js +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/types.test.d.ts +0 -0
- /package/dist/src/backend/{claude → domains/session/claude}/types.test.js +0 -0
- /package/dist/src/backend/{services → domains/session/lifecycle}/session.process-manager.test.d.ts +0 -0
- /package/dist/src/backend/{services → domains/session/lifecycle}/session.prompt-builder.test.d.ts +0 -0
- /package/dist/src/backend/{services → domains/session/lifecycle}/session.service.test.d.ts +0 -0
- /package/dist/src/backend/{services → domains/session/logging}/session-file-logger.service.d.ts +0 -0
- /package/dist/src/backend/{services → domains/session/logging}/session-file-logger.service.test.d.ts +0 -0
- /package/dist/src/backend/{services → domains/workspace/worktree}/worktree-lifecycle.service.test.d.ts +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface WriteFileAtomicOptions {
|
|
2
|
+
encoding?: BufferEncoding;
|
|
3
|
+
mode?: number;
|
|
4
|
+
}
|
|
5
|
+
export declare function writeFileAtomic(targetPath: string, content: string | Buffer, options?: WriteFileAtomicOptions): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=atomic-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomic-file.d.ts","sourceRoot":"","sources":["../../../../src/backend/lib/atomic-file.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAMD,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import * as fs from 'node:fs/promises';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
export async function writeFileAtomic(targetPath, content, options = {}) {
|
|
5
|
+
const directory = path.dirname(targetPath);
|
|
6
|
+
await fs.mkdir(directory, { recursive: true });
|
|
7
|
+
const tmpPath = path.join(directory, `.tmp-${randomUUID()}`);
|
|
8
|
+
if (typeof content === 'string') {
|
|
9
|
+
await fs.writeFile(tmpPath, content, {
|
|
10
|
+
encoding: options.encoding ?? 'utf-8',
|
|
11
|
+
mode: options.mode,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
await fs.writeFile(tmpPath, content, {
|
|
16
|
+
mode: options.mode,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
await fs.rename(tmpPath, targetPath);
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
await fs.unlink(tmpPath).catch(() => {
|
|
24
|
+
});
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=atomic-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomic-file.js","sourceRoot":"","sources":["../../../../src/backend/lib/atomic-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAWlC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,OAAwB,EACxB,UAAkC,EAAE;IAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,UAAU,EAAE,EAAE,CAAC,CAAC;IAE7D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE;YACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO;YACrC,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAEpC,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomic-file.test.d.ts","sourceRoot":"","sources":["../../../../src/backend/lib/atomic-file.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { vi } from 'vitest';
|
|
2
|
+
const renameControl = vi.hoisted(() => ({
|
|
3
|
+
fn: vi.fn(),
|
|
4
|
+
}));
|
|
5
|
+
vi.mock('node:fs/promises', async (importOriginal) => {
|
|
6
|
+
const actual = await importOriginal();
|
|
7
|
+
renameControl.fn.mockImplementation(actual.rename);
|
|
8
|
+
return {
|
|
9
|
+
...actual,
|
|
10
|
+
rename: (...args) => renameControl.fn(...args),
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
import * as fs from 'node:fs/promises';
|
|
14
|
+
import * as os from 'node:os';
|
|
15
|
+
import * as path from 'node:path';
|
|
16
|
+
import { afterEach, describe, expect, it } from 'vitest';
|
|
17
|
+
import { writeFileAtomic } from './atomic-file.js';
|
|
18
|
+
describe('writeFileAtomic', () => {
|
|
19
|
+
afterEach(() => {
|
|
20
|
+
renameControl.fn.mockClear();
|
|
21
|
+
});
|
|
22
|
+
it('writes and replaces atomically', async () => {
|
|
23
|
+
const baseDir = await fs.mkdtemp(path.join(os.tmpdir(), 'ff-atomic-file-'));
|
|
24
|
+
const targetPath = path.join(baseDir, 'state.json');
|
|
25
|
+
try {
|
|
26
|
+
await fs.writeFile(targetPath, 'old', 'utf-8');
|
|
27
|
+
await writeFileAtomic(targetPath, 'new', { encoding: 'utf-8' });
|
|
28
|
+
const content = await fs.readFile(targetPath, 'utf-8');
|
|
29
|
+
expect(content).toBe('new');
|
|
30
|
+
}
|
|
31
|
+
finally {
|
|
32
|
+
await fs.rm(baseDir, { recursive: true, force: true });
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
it('creates parent directories as needed', async () => {
|
|
36
|
+
const baseDir = await fs.mkdtemp(path.join(os.tmpdir(), 'ff-atomic-file-'));
|
|
37
|
+
const targetPath = path.join(baseDir, 'nested', 'dir', 'config.json');
|
|
38
|
+
try {
|
|
39
|
+
await writeFileAtomic(targetPath, '{"ok":true}', { encoding: 'utf-8' });
|
|
40
|
+
const content = await fs.readFile(targetPath, 'utf-8');
|
|
41
|
+
expect(content).toBe('{"ok":true}');
|
|
42
|
+
}
|
|
43
|
+
finally {
|
|
44
|
+
await fs.rm(baseDir, { recursive: true, force: true });
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
it('cleans up temp file if rename fails', async () => {
|
|
48
|
+
const baseDir = await fs.mkdtemp(path.join(os.tmpdir(), 'ff-atomic-file-'));
|
|
49
|
+
const targetPath = path.join(baseDir, 'failing.json');
|
|
50
|
+
renameControl.fn.mockRejectedValueOnce(new Error('rename failed for test'));
|
|
51
|
+
try {
|
|
52
|
+
await expect(writeFileAtomic(targetPath, 'x', { encoding: 'utf-8' })).rejects.toThrow('rename failed for test');
|
|
53
|
+
const files = await fs.readdir(baseDir);
|
|
54
|
+
const leftoverTmpFiles = files.filter((file) => file.includes('.tmp'));
|
|
55
|
+
expect(leftoverTmpFiles).toHaveLength(0);
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
await fs.rm(baseDir, { recursive: true, force: true });
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=atomic-file.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomic-file.test.js","sourceRoot":"","sources":["../../../../src/backend/lib/atomic-file.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-paths.d.ts","sourceRoot":"","sources":["../../../../src/backend/lib/claude-paths.ts"],"names":[],"mappings":"AAeA,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAG/D"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { homedir } from 'node:os';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
export function getClaudeProjectPath(workingDir) {
|
|
4
|
+
const escapedPath = workingDir.replace(/\//g, '-');
|
|
5
|
+
return join(homedir(), '.claude', 'projects', escapedPath);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=claude-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-paths.js","sourceRoot":"","sources":["../../../../src/backend/lib/claude-paths.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAMjC,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/backend/lib/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU;;;;EAIZ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/backend/lib/constants.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,gBAAgB,EAAE,IAAI,GAAG,IAAI;IAC7B,0BAA0B,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAC5C,wBAAwB,EAAE,GAAG;CACrB,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { EventEmitter } from 'node:events';
|
|
2
|
+
export type EventEmitterListener = Parameters<EventEmitter['on']>[1];
|
|
3
|
+
export type EventEmitterEmitArgs = Parameters<EventEmitter['emit']> extends [unknown, ...infer Args] ? Args : never;
|
|
4
|
+
//# sourceMappingURL=event-emitter-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-emitter-types.d.ts","sourceRoot":"","sources":["../../../../src/backend/lib/event-emitter-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,MAAM,MAAM,oBAAoB,GAC9B,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-emitter-types.js","sourceRoot":"","sources":["../../../../src/backend/lib/event-emitter-types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-helpers.d.ts","sourceRoot":"","sources":["../../../../src/backend/lib/file-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-helpers.d.ts","sourceRoot":"","sources":["../../../../src/backend/lib/file-helpers.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE;AAKD,eAAO,MAAM,aAAa,QAA8B,CAAC;AAOzD,wBAAsB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgCzF;AAKD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA8B5D;AAKD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CASvD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { realpath, stat } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
+
import { LIB_LIMITS } from './constants.js';
|
|
3
4
|
export async function pathExists(targetPath) {
|
|
4
5
|
try {
|
|
5
6
|
await stat(targetPath);
|
|
@@ -9,7 +10,7 @@ export async function pathExists(targetPath) {
|
|
|
9
10
|
return false;
|
|
10
11
|
}
|
|
11
12
|
}
|
|
12
|
-
export const MAX_FILE_SIZE =
|
|
13
|
+
export const MAX_FILE_SIZE = LIB_LIMITS.maxFileReadBytes;
|
|
13
14
|
export async function isPathSafe(worktreePath, filePath) {
|
|
14
15
|
const normalizedPath = path.normalize(filePath);
|
|
15
16
|
if (normalizedPath.startsWith('..') ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-helpers.js","sourceRoot":"","sources":["../../../../src/backend/lib/file-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"file-helpers.js","sourceRoot":"","sources":["../../../../src/backend/lib/file-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface FileLockMutexOptions {
|
|
2
|
+
acquireTimeoutMs: number;
|
|
3
|
+
postTimeoutWaitMs: number;
|
|
4
|
+
initialRetryDelayMs: number;
|
|
5
|
+
maxRetryDelayMs: number;
|
|
6
|
+
maxStaleRetries: number;
|
|
7
|
+
staleThresholdMs: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class FileLockTimeoutError extends Error {
|
|
10
|
+
constructor(message: string);
|
|
11
|
+
}
|
|
12
|
+
export declare class FileLockMutex {
|
|
13
|
+
private options;
|
|
14
|
+
constructor(options?: Partial<FileLockMutexOptions>);
|
|
15
|
+
acquire(lockPath: string): Promise<() => Promise<void>>;
|
|
16
|
+
private resolveAcquireContention;
|
|
17
|
+
private createLockCleanup;
|
|
18
|
+
private getInodeAndClose;
|
|
19
|
+
private unlinkIfOwned;
|
|
20
|
+
private tryHandleStaleLockAfterTimeout;
|
|
21
|
+
private tryRemoveStaleLock;
|
|
22
|
+
private verifyAndUnlinkStaleLock;
|
|
23
|
+
private unlinkStaleLock;
|
|
24
|
+
private sleep;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=file-lock-mutex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-lock-mutex.d.ts","sourceRoot":"","sources":["../../../../src/backend/lib/file-lock-mutex.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAuB;gBAE1B,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM;IAajD,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YA4B/C,wBAAwB;IA4CtC,OAAO,CAAC,iBAAiB;YAkBX,gBAAgB;YA0BhB,aAAa;YA2Bb,8BAA8B;YAiB9B,kBAAkB;YA8BlB,wBAAwB;YA2BxB,eAAe;IAmB7B,OAAO,CAAC,KAAK;CAGd"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
2
|
+
import { createLogger } from '../services/logger.service.js';
|
|
3
|
+
const logger = createLogger('file-lock-mutex');
|
|
4
|
+
const DEFAULT_LOCK_ACQUIRE_TIMEOUT_MS = 5000;
|
|
5
|
+
const DEFAULT_LOCK_RETRY_DELAY_MS = 50;
|
|
6
|
+
const DEFAULT_LOCK_MAX_RETRY_DELAY_MS = 500;
|
|
7
|
+
const DEFAULT_LOCK_MAX_STALE_RETRIES = 3;
|
|
8
|
+
export class FileLockTimeoutError extends Error {
|
|
9
|
+
constructor(message) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.name = 'FileLockTimeoutError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export class FileLockMutex {
|
|
15
|
+
options;
|
|
16
|
+
constructor(options = {}) {
|
|
17
|
+
const acquireTimeoutMs = options.acquireTimeoutMs ?? DEFAULT_LOCK_ACQUIRE_TIMEOUT_MS;
|
|
18
|
+
this.options = {
|
|
19
|
+
acquireTimeoutMs,
|
|
20
|
+
postTimeoutWaitMs: options.postTimeoutWaitMs ?? 0,
|
|
21
|
+
initialRetryDelayMs: options.initialRetryDelayMs ?? DEFAULT_LOCK_RETRY_DELAY_MS,
|
|
22
|
+
maxRetryDelayMs: options.maxRetryDelayMs ?? DEFAULT_LOCK_MAX_RETRY_DELAY_MS,
|
|
23
|
+
maxStaleRetries: options.maxStaleRetries ?? DEFAULT_LOCK_MAX_STALE_RETRIES,
|
|
24
|
+
staleThresholdMs: options.staleThresholdMs ?? acquireTimeoutMs * 5,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
async acquire(lockPath) {
|
|
28
|
+
const startTime = Date.now();
|
|
29
|
+
let retryDelay = this.options.initialRetryDelayMs;
|
|
30
|
+
let staleRetryCount = 0;
|
|
31
|
+
while (true) {
|
|
32
|
+
try {
|
|
33
|
+
const fileHandle = await fs.open(lockPath, 'wx');
|
|
34
|
+
return this.createLockCleanup(fileHandle, lockPath);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
const resolution = await this.resolveAcquireContention({
|
|
38
|
+
error,
|
|
39
|
+
lockPath,
|
|
40
|
+
startTime,
|
|
41
|
+
staleRetryCount,
|
|
42
|
+
});
|
|
43
|
+
staleRetryCount = resolution.staleRetryCount;
|
|
44
|
+
if (resolution.continueImmediately) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
await this.sleep(retryDelay);
|
|
48
|
+
retryDelay = Math.min(retryDelay * 2, this.options.maxRetryDelayMs);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async resolveAcquireContention({ error, lockPath, startTime, staleRetryCount, }) {
|
|
53
|
+
const code = error?.code;
|
|
54
|
+
if (code !== 'EEXIST') {
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
const elapsed = Date.now() - startTime;
|
|
58
|
+
const hardTimeoutMs = this.options.acquireTimeoutMs + this.options.postTimeoutWaitMs;
|
|
59
|
+
if (elapsed < this.options.acquireTimeoutMs) {
|
|
60
|
+
return { staleRetryCount, continueImmediately: false };
|
|
61
|
+
}
|
|
62
|
+
const staleResolution = await this.tryHandleStaleLockAfterTimeout(lockPath, staleRetryCount);
|
|
63
|
+
if (staleResolution.staleRemoved) {
|
|
64
|
+
return {
|
|
65
|
+
staleRetryCount: staleResolution.newCount,
|
|
66
|
+
continueImmediately: true,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
const elapsedAfterStaleCheck = Date.now() - startTime;
|
|
70
|
+
if (elapsedAfterStaleCheck >= hardTimeoutMs) {
|
|
71
|
+
throw new FileLockTimeoutError(`Failed to acquire lock after ${hardTimeoutMs}ms and ${staleResolution.newCount} stale removal attempts: ${lockPath}`);
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
staleRetryCount: staleResolution.newCount,
|
|
75
|
+
continueImmediately: false,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
createLockCleanup(fileHandle, lockPath) {
|
|
79
|
+
let released = false;
|
|
80
|
+
return async () => {
|
|
81
|
+
if (released) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
released = true;
|
|
85
|
+
const handleIno = await this.getInodeAndClose(fileHandle, lockPath);
|
|
86
|
+
if (handleIno === undefined) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
await this.unlinkIfOwned(lockPath, handleIno);
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
async getInodeAndClose(fileHandle, lockPath) {
|
|
93
|
+
let handleIno;
|
|
94
|
+
try {
|
|
95
|
+
const handleStat = await fileHandle.stat();
|
|
96
|
+
handleIno = handleStat.ino;
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
logger.warn('Failed to stat file handle during cleanup', {
|
|
100
|
+
lockPath,
|
|
101
|
+
error: error instanceof Error ? error.message : String(error),
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
await fileHandle.close().catch((closeError) => {
|
|
106
|
+
logger.warn('Failed to close file handle during cleanup', {
|
|
107
|
+
lockPath,
|
|
108
|
+
error: closeError instanceof Error ? closeError.message : String(closeError),
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
return handleIno;
|
|
113
|
+
}
|
|
114
|
+
async unlinkIfOwned(lockPath, expectedIno) {
|
|
115
|
+
try {
|
|
116
|
+
const pathStat = await fs.stat(lockPath);
|
|
117
|
+
if (pathStat.ino === expectedIno) {
|
|
118
|
+
await fs.unlink(lockPath).catch(() => {
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
logger.debug('Lock file inode changed, not unlinking (owned by another process)', {
|
|
123
|
+
lockPath,
|
|
124
|
+
ourIno: expectedIno,
|
|
125
|
+
currentIno: pathStat.ino,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
const code = error?.code;
|
|
131
|
+
if (code === 'ENOENT') {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
logger.warn('Failed to stat lock file during cleanup', {
|
|
135
|
+
lockPath,
|
|
136
|
+
error: error instanceof Error ? error.message : String(error),
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async tryHandleStaleLockAfterTimeout(lockPath, staleRetryCount) {
|
|
141
|
+
if (staleRetryCount >= this.options.maxStaleRetries) {
|
|
142
|
+
return { staleRemoved: false, newCount: staleRetryCount };
|
|
143
|
+
}
|
|
144
|
+
const removed = await this.tryRemoveStaleLock(lockPath);
|
|
145
|
+
if (!removed) {
|
|
146
|
+
return { staleRemoved: false, newCount: staleRetryCount };
|
|
147
|
+
}
|
|
148
|
+
await this.sleep(this.options.initialRetryDelayMs);
|
|
149
|
+
return { staleRemoved: true, newCount: staleRetryCount + 1 };
|
|
150
|
+
}
|
|
151
|
+
async tryRemoveStaleLock(lockPath) {
|
|
152
|
+
try {
|
|
153
|
+
const stats = await fs.stat(lockPath);
|
|
154
|
+
const lockAge = Date.now() - stats.mtimeMs;
|
|
155
|
+
if (lockAge < this.options.staleThresholdMs) {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
logger.warn('Attempting to remove stale lock file', {
|
|
159
|
+
lockPath,
|
|
160
|
+
lockAgeMs: lockAge,
|
|
161
|
+
inode: stats.ino,
|
|
162
|
+
});
|
|
163
|
+
return await this.verifyAndUnlinkStaleLock(lockPath, stats.ino);
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
const code = error?.code;
|
|
167
|
+
if (code === 'ENOENT') {
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
logger.warn('Failed to check stale lock file', {
|
|
171
|
+
lockPath,
|
|
172
|
+
error: error instanceof Error ? error.message : String(error),
|
|
173
|
+
});
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
async verifyAndUnlinkStaleLock(lockPath, expectedIno) {
|
|
178
|
+
try {
|
|
179
|
+
const verifyStats = await fs.stat(lockPath);
|
|
180
|
+
if (verifyStats.ino !== expectedIno) {
|
|
181
|
+
logger.debug('Lock file inode changed, not removing (new lock created)', {
|
|
182
|
+
lockPath,
|
|
183
|
+
originalIno: expectedIno,
|
|
184
|
+
currentIno: verifyStats.ino,
|
|
185
|
+
});
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
return await this.unlinkStaleLock(lockPath);
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
const code = error?.code;
|
|
192
|
+
if (code === 'ENOENT') {
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
logger.warn('Failed to verify lock file before removal', {
|
|
196
|
+
lockPath,
|
|
197
|
+
error: error instanceof Error ? error.message : String(error),
|
|
198
|
+
});
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
async unlinkStaleLock(lockPath) {
|
|
203
|
+
try {
|
|
204
|
+
await fs.unlink(lockPath);
|
|
205
|
+
return true;
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
const code = error?.code;
|
|
209
|
+
if (code === 'ENOENT') {
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
logger.warn('Failed to unlink stale lock file', {
|
|
213
|
+
lockPath,
|
|
214
|
+
error: error instanceof Error ? error.message : String(error),
|
|
215
|
+
code,
|
|
216
|
+
});
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
sleep(ms) {
|
|
221
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=file-lock-mutex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-lock-mutex.js","sourceRoot":"","sources":["../../../../src/backend/lib/file-lock-mutex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,+BAA+B,GAAG,IAAI,CAAC;AAC7C,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAC5C,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAWzC,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,aAAa;IAChB,OAAO,CAAuB;IAEtC,YAAY,UAAyC,EAAE;QACrD,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,+BAA+B,CAAC;QAErF,IAAI,CAAC,OAAO,GAAG;YACb,gBAAgB;YAChB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,CAAC;YACjD,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,2BAA2B;YAC/E,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,+BAA+B;YAC3E,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,8BAA8B;YAC1E,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,gBAAgB,GAAG,CAAC;SACnE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAClD,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACjD,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC;oBACrD,KAAK;oBACL,QAAQ;oBACR,SAAS;oBACT,eAAe;iBAChB,CAAC,CAAC;gBACH,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;gBAE7C,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;oBACnC,SAAS;gBACX,CAAC;gBAED,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC7B,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,EACrC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,eAAe,GAMhB;QACC,MAAM,IAAI,GAAI,KAA2C,EAAE,IAAI,CAAC;QAChE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAErF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC5C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC7F,IAAI,eAAe,CAAC,YAAY,EAAE,CAAC;YACjC,OAAO;gBACL,eAAe,EAAE,eAAe,CAAC,QAAQ;gBACzC,mBAAmB,EAAE,IAAI;aAC1B,CAAC;QACJ,CAAC;QAED,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACtD,IAAI,sBAAsB,IAAI,aAAa,EAAE,CAAC;YAC5C,MAAM,IAAI,oBAAoB,CAC5B,gCAAgC,aAAa,UAAU,eAAe,CAAC,QAAQ,4BAA4B,QAAQ,EAAE,CACtH,CAAC;QACJ,CAAC;QAED,OAAO;YACL,eAAe,EAAE,eAAe,CAAC,QAAQ;YACzC,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,UAAyB,EAAE,QAAgB;QACnE,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,OAAO,KAAK,IAAI,EAAE;YAChB,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;YAEhB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACpE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YAED,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,UAAyB,EACzB,QAAgB;QAEhB,IAAI,SAA6B,CAAC;QAElC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;YAC3C,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE;gBACvD,QAAQ;gBACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC5C,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;oBACxD,QAAQ;oBACR,KAAK,EAAE,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;iBAC7E,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,WAAmB;QAC/D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,QAAQ,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;gBACjC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAErC,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,mEAAmE,EAAE;oBAChF,QAAQ;oBACR,MAAM,EAAE,WAAW;oBACnB,UAAU,EAAE,QAAQ,CAAC,GAAG;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA2C,EAAE,IAAI,CAAC;YAChE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE;gBACrD,QAAQ;gBACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,8BAA8B,CAC1C,QAAgB,EAChB,eAAuB;QAEvB,IAAI,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YACpD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;QAC5D,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACnD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,GAAG,CAAC,EAAE,CAAC;IAC/D,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QAC/C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;YAE3C,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE;gBAClD,QAAQ;gBACR,SAAS,EAAE,OAAO;gBAClB,KAAK,EAAE,KAAK,CAAC,GAAG;aACjB,CAAC,CAAC;YAEH,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA2C,EAAE,IAAI,CAAC;YAChE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;gBAC7C,QAAQ;gBACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,QAAgB,EAAE,WAAmB;QAC1E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,WAAW,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,0DAA0D,EAAE;oBACvE,QAAQ;oBACR,WAAW,EAAE,WAAW;oBACxB,UAAU,EAAE,WAAW,CAAC,GAAG;iBAC5B,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA2C,EAAE,IAAI,CAAC;YAChE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE;gBACvD,QAAQ;gBACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAAgB;QAC5C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA2C,EAAE,IAAI,CAAC;YAChE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;gBAC9C,QAAQ;gBACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7D,IAAI;aACL,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-lock-mutex.test.d.ts","sourceRoot":"","sources":["../../../../src/backend/lib/file-lock-mutex.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
2
|
+
import * as os from 'node:os';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import { describe, expect, it } from 'vitest';
|
|
5
|
+
import { FileLockMutex, FileLockTimeoutError } from './file-lock-mutex.js';
|
|
6
|
+
async function exists(targetPath) {
|
|
7
|
+
try {
|
|
8
|
+
await fs.stat(targetPath);
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
describe('FileLockMutex', () => {
|
|
16
|
+
it('acquires and releases a lock file', async () => {
|
|
17
|
+
const baseDir = await fs.mkdtemp(path.join(os.tmpdir(), 'ff-lock-mutex-'));
|
|
18
|
+
const lockPath = path.join(baseDir, 'test.lock');
|
|
19
|
+
const mutex = new FileLockMutex();
|
|
20
|
+
try {
|
|
21
|
+
const release = await mutex.acquire(lockPath);
|
|
22
|
+
expect(await exists(lockPath)).toBe(true);
|
|
23
|
+
await release();
|
|
24
|
+
expect(await exists(lockPath)).toBe(false);
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
await fs.rm(baseDir, { recursive: true, force: true });
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
it('times out when lock is held and stale retries are disabled', async () => {
|
|
31
|
+
const baseDir = await fs.mkdtemp(path.join(os.tmpdir(), 'ff-lock-mutex-'));
|
|
32
|
+
const lockPath = path.join(baseDir, 'held.lock');
|
|
33
|
+
await fs.writeFile(lockPath, 'held', 'utf-8');
|
|
34
|
+
const mutex = new FileLockMutex({
|
|
35
|
+
acquireTimeoutMs: 40,
|
|
36
|
+
initialRetryDelayMs: 5,
|
|
37
|
+
maxRetryDelayMs: 10,
|
|
38
|
+
maxStaleRetries: 0,
|
|
39
|
+
staleThresholdMs: 10_000,
|
|
40
|
+
});
|
|
41
|
+
try {
|
|
42
|
+
await expect(mutex.acquire(lockPath)).rejects.toBeInstanceOf(FileLockTimeoutError);
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
await fs.rm(baseDir, { recursive: true, force: true });
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
it('keeps waiting during post-timeout window and acquires once lock is released', async () => {
|
|
49
|
+
const baseDir = await fs.mkdtemp(path.join(os.tmpdir(), 'ff-lock-mutex-'));
|
|
50
|
+
const lockPath = path.join(baseDir, 'contention.lock');
|
|
51
|
+
const holder = new FileLockMutex({
|
|
52
|
+
acquireTimeoutMs: 20,
|
|
53
|
+
postTimeoutWaitMs: 120,
|
|
54
|
+
initialRetryDelayMs: 5,
|
|
55
|
+
maxRetryDelayMs: 10,
|
|
56
|
+
maxStaleRetries: 0,
|
|
57
|
+
staleThresholdMs: 10_000,
|
|
58
|
+
});
|
|
59
|
+
const contender = new FileLockMutex({
|
|
60
|
+
acquireTimeoutMs: 20,
|
|
61
|
+
postTimeoutWaitMs: 120,
|
|
62
|
+
initialRetryDelayMs: 5,
|
|
63
|
+
maxRetryDelayMs: 10,
|
|
64
|
+
maxStaleRetries: 0,
|
|
65
|
+
staleThresholdMs: 10_000,
|
|
66
|
+
});
|
|
67
|
+
try {
|
|
68
|
+
const releaseHolder = await holder.acquire(lockPath);
|
|
69
|
+
setTimeout(() => {
|
|
70
|
+
void releaseHolder();
|
|
71
|
+
}, 40);
|
|
72
|
+
const releaseContender = await contender.acquire(lockPath);
|
|
73
|
+
await releaseContender();
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
await fs.rm(baseDir, { recursive: true, force: true });
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
it('removes stale lock and acquires it', async () => {
|
|
80
|
+
const baseDir = await fs.mkdtemp(path.join(os.tmpdir(), 'ff-lock-mutex-'));
|
|
81
|
+
const lockPath = path.join(baseDir, 'stale.lock');
|
|
82
|
+
await fs.writeFile(lockPath, 'stale', 'utf-8');
|
|
83
|
+
const staleTime = new Date(Date.now() - 60_000);
|
|
84
|
+
await fs.utimes(lockPath, staleTime, staleTime);
|
|
85
|
+
const mutex = new FileLockMutex({
|
|
86
|
+
acquireTimeoutMs: 30,
|
|
87
|
+
postTimeoutWaitMs: 50,
|
|
88
|
+
initialRetryDelayMs: 5,
|
|
89
|
+
maxRetryDelayMs: 10,
|
|
90
|
+
maxStaleRetries: 2,
|
|
91
|
+
staleThresholdMs: 20,
|
|
92
|
+
});
|
|
93
|
+
try {
|
|
94
|
+
const release = await mutex.acquire(lockPath);
|
|
95
|
+
expect(await exists(lockPath)).toBe(true);
|
|
96
|
+
await release();
|
|
97
|
+
expect(await exists(lockPath)).toBe(false);
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
await fs.rm(baseDir, { recursive: true, force: true });
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
it('removes stale lock with zero post-timeout window', async () => {
|
|
104
|
+
const baseDir = await fs.mkdtemp(path.join(os.tmpdir(), 'ff-lock-mutex-'));
|
|
105
|
+
const lockPath = path.join(baseDir, 'stale-zero-post.lock');
|
|
106
|
+
await fs.writeFile(lockPath, 'stale', 'utf-8');
|
|
107
|
+
const staleTime = new Date(Date.now() - 60_000);
|
|
108
|
+
await fs.utimes(lockPath, staleTime, staleTime);
|
|
109
|
+
const mutex = new FileLockMutex({
|
|
110
|
+
acquireTimeoutMs: 30,
|
|
111
|
+
postTimeoutWaitMs: 0,
|
|
112
|
+
initialRetryDelayMs: 5,
|
|
113
|
+
maxRetryDelayMs: 10,
|
|
114
|
+
maxStaleRetries: 2,
|
|
115
|
+
staleThresholdMs: 20,
|
|
116
|
+
});
|
|
117
|
+
try {
|
|
118
|
+
const release = await mutex.acquire(lockPath);
|
|
119
|
+
expect(await exists(lockPath)).toBe(true);
|
|
120
|
+
await release();
|
|
121
|
+
expect(await exists(lockPath)).toBe(false);
|
|
122
|
+
}
|
|
123
|
+
finally {
|
|
124
|
+
await fs.rm(baseDir, { recursive: true, force: true });
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
it('does not unlink a replaced lock file on release', async () => {
|
|
128
|
+
const baseDir = await fs.mkdtemp(path.join(os.tmpdir(), 'ff-lock-mutex-'));
|
|
129
|
+
const lockPath = path.join(baseDir, 'replaced.lock');
|
|
130
|
+
const mutex = new FileLockMutex();
|
|
131
|
+
try {
|
|
132
|
+
const release = await mutex.acquire(lockPath);
|
|
133
|
+
await fs.unlink(lockPath);
|
|
134
|
+
await fs.writeFile(lockPath, 'replacement', 'utf-8');
|
|
135
|
+
await release();
|
|
136
|
+
expect(await exists(lockPath)).toBe(true);
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
await fs.rm(baseDir, { recursive: true, force: true });
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
//# sourceMappingURL=file-lock-mutex.test.js.map
|