factory-factory 0.3.7 → 0.3.9
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-BsuMuaCZ.js → _basePickBy-CoLLbaiQ.js} +1 -1
- package/dist/client/assets/{_baseUniq-BDd8f52s.js → _baseUniq-xRgxfXUW.js} +1 -1
- package/dist/client/assets/{arc-BWbaJQoA.js → arc-De4Ny3V9.js} +1 -1
- package/dist/client/assets/{architectureDiagram-VXUJARFQ-C_FQG3JS.js → architectureDiagram-VXUJARFQ-DM0j158z.js} +1 -1
- package/dist/client/assets/{blockDiagram-VD42YOAC-CLwvH-wA.js → blockDiagram-VD42YOAC-DKBZN-sz.js} +1 -1
- package/dist/client/assets/{c4Diagram-YG6GDRKO-Ba80_haP.js → c4Diagram-YG6GDRKO-CIA6AVRp.js} +1 -1
- package/dist/client/assets/channel-DW2o9xrZ.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-CSlDSMiy.js → chunk-4BX2VUAB-BrHsCtgI.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-Dm3keBAf.js → chunk-55IACEB6-DLwlJB2L.js} +1 -1
- package/dist/client/assets/{chunk-B4BG7PRW-BSrvNYuP.js → chunk-B4BG7PRW-cqTY9ldj.js} +1 -1
- package/dist/client/assets/{chunk-DI55MBZ5-DFQPoLQZ.js → chunk-DI55MBZ5-PAp7fYLU.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-C1KS438H.js → chunk-FMBD7UC4-CsvpScij.js} +1 -1
- package/dist/client/assets/{chunk-QN33PNHL-4rPPxHo4.js → chunk-QN33PNHL-DmkkCoc-.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-B_sF5IzV.js → chunk-QZHKN3VN-Ds5Tjlpo.js} +1 -1
- package/dist/client/assets/{chunk-TZMSLE5B-L-qbjoBp.js → chunk-TZMSLE5B-4Gu0uKkR.js} +1 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-CUeZuC6S.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-CUeZuC6S.js +1 -0
- package/dist/client/assets/clone-Df9JDgIw.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-DB7lwAnl.js → cose-bilkent-S5V4N54A-CQJ_MgcD.js} +1 -1
- package/dist/client/assets/{dagre-6UL2VRFP-z2fl_1iD.js → dagre-6UL2VRFP-CfyncTju.js} +1 -1
- package/dist/client/assets/{diagram-PSM6KHXK-BL2iv8II.js → diagram-PSM6KHXK-BL2QA0bQ.js} +1 -1
- package/dist/client/assets/{diagram-QEK2KX5R-DgMZW0D1.js → diagram-QEK2KX5R-BDcBrJO4.js} +1 -1
- package/dist/client/assets/{diagram-S2PKOQOG-Ct2QBl2c.js → diagram-S2PKOQOG-BxofoMik.js} +1 -1
- package/dist/client/assets/{erDiagram-Q2GNP2WA-DII-pqkb.js → erDiagram-Q2GNP2WA-CDGe-bUA.js} +1 -1
- package/dist/client/assets/{flowDiagram-NV44I4VS-BV4CMZAZ.js → flowDiagram-NV44I4VS-CodDw20I.js} +1 -1
- package/dist/client/assets/{ganttDiagram-JELNMOA3-Dfj064tE.js → ganttDiagram-JELNMOA3-BHJlNcF5.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-Cg2b-j3t.js → gitGraphDiagram-V2S2FVAM-DsFPFnxn.js} +1 -1
- package/dist/client/assets/{graph-wzICjOO_.js → graph-DtyTGYVa.js} +1 -1
- package/dist/client/assets/index-BkwQogmx.css +1 -0
- package/dist/client/assets/index-CSanKe06.js +436 -0
- package/dist/client/assets/{infoDiagram-HS3SLOUP-D09mbfgG.js → infoDiagram-HS3SLOUP-CczckdeY.js} +1 -1
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-BebsQbuf.js → journeyDiagram-XKPGCS4Q-CIDlGmYi.js} +1 -1
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-DOuawTNU.js → kanban-definition-3W4ZIXB7-Dvuu9eqr.js} +1 -1
- package/dist/client/assets/{layout-Bj6cMfF5.js → layout-Cth5sJm6.js} +1 -1
- package/dist/client/assets/{linear-B58HS9F4.js → linear-DRv-Y17x.js} +1 -1
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-hSFgcTL2.js → mindmap-definition-VGOIOE7T-AXsc24V4.js} +1 -1
- package/dist/client/assets/{mobile-baseline-CmdjqYSm.js → mobile-baseline-DXBPdrir.js} +1 -1
- package/dist/client/assets/{pieDiagram-ADFJNKIX-D1vkoKs3.js → pieDiagram-ADFJNKIX-oIn8Bgi4.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-pMQj9xcS.js → quadrantDiagram-AYHSOK5B-rGTqNh3q.js} +1 -1
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-DvRtxnIi.js → requirementDiagram-UZGBJVZJ-DgE2dYES.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-TZEHDZUN-BWoDxXkR.js → sankeyDiagram-TZEHDZUN-BWRLa217.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WL72ISMW-Dz5i1ly3.js → sequenceDiagram-WL72ISMW-lYEkh9VX.js} +1 -1
- package/dist/client/assets/{stateDiagram-FKZM4ZOC-BFd_gXUo.js → stateDiagram-FKZM4ZOC-CV9VCuVK.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-DQ10FejB.js +1 -0
- package/dist/client/assets/{terminal-instance-BTIzq32H.js → terminal-instance-C3nwiweh.js} +1 -1
- package/dist/client/assets/{timeline-definition-IT6M3QCI-BFEIWW6m.js → timeline-definition-IT6M3QCI-Bzm_qoWF.js} +1 -1
- package/dist/client/assets/{treemap-GDKQZRPO-CC2Fh6RQ.js → treemap-GDKQZRPO-gouxKMUq.js} +1 -1
- package/dist/client/assets/{xychartDiagram-PRI3JC2R-DFygXQrm.js → xychartDiagram-PRI3JC2R-DqSTMw-l.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/prisma/generated/enums.d.ts +1 -0
- package/dist/prisma/generated/enums.d.ts.map +1 -1
- package/dist/prisma/generated/enums.js +1 -0
- package/dist/prisma/generated/enums.js.map +1 -1
- package/dist/prisma/generated/internal/class.js +4 -4
- package/dist/prisma/generated/internal/class.js.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespace.d.ts +1 -0
- package/dist/prisma/generated/internal/prismaNamespace.d.ts.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespace.js +1 -0
- package/dist/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts +1 -0
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.js +1 -0
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/prisma/generated/models/Workspace.d.ts +44 -1
- package/dist/prisma/generated/models/Workspace.d.ts.map +1 -1
- package/dist/src/backend/app-context.d.ts +2 -1
- package/dist/src/backend/app-context.d.ts.map +1 -1
- package/dist/src/backend/app-context.js +22 -5
- package/dist/src/backend/app-context.js.map +1 -1
- package/dist/src/backend/domains/github/github-cli/mappers.d.ts +1 -1
- package/dist/src/backend/domains/github/github-cli/mappers.d.ts.map +1 -1
- package/dist/src/backend/domains/github/github-cli/mappers.js +2 -37
- package/dist/src/backend/domains/github/github-cli/mappers.js.map +1 -1
- package/dist/src/backend/domains/github/github-cli.service.test.js +20 -0
- package/dist/src/backend/domains/github/github-cli.service.test.js.map +1 -1
- package/dist/src/backend/domains/linear/linear-state-sync.service.d.ts.map +1 -1
- package/dist/src/backend/domains/linear/linear-state-sync.service.js.map +1 -1
- package/dist/src/backend/domains/ratchet/bridges.d.ts +4 -0
- package/dist/src/backend/domains/ratchet/bridges.d.ts.map +1 -1
- package/dist/src/backend/domains/ratchet/ratchet-active-session.helpers.d.ts +15 -0
- package/dist/src/backend/domains/ratchet/ratchet-active-session.helpers.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet-active-session.helpers.js +126 -0
- package/dist/src/backend/domains/ratchet/ratchet-active-session.helpers.js.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet-fixer-dispatch.helpers.d.ts +14 -0
- package/dist/src/backend/domains/ratchet/ratchet-fixer-dispatch.helpers.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet-fixer-dispatch.helpers.js +55 -0
- package/dist/src/backend/domains/ratchet/ratchet-fixer-dispatch.helpers.js.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet-pr-state.helpers.d.ts +107 -0
- package/dist/src/backend/domains/ratchet/ratchet-pr-state.helpers.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet-pr-state.helpers.js +246 -0
- package/dist/src/backend/domains/ratchet/ratchet-pr-state.helpers.js.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet-review-poll.helpers.d.ts +16 -0
- package/dist/src/backend/domains/ratchet/ratchet-review-poll.helpers.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet-review-poll.helpers.js +52 -0
- package/dist/src/backend/domains/ratchet/ratchet-review-poll.helpers.js.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet.service.d.ts +6 -40
- package/dist/src/backend/domains/ratchet/ratchet.service.d.ts.map +1 -1
- package/dist/src/backend/domains/ratchet/ratchet.service.js +99 -426
- package/dist/src/backend/domains/ratchet/ratchet.service.js.map +1 -1
- package/dist/src/backend/domains/ratchet/ratchet.types.d.ts +86 -0
- package/dist/src/backend/domains/ratchet/ratchet.types.d.ts.map +1 -0
- package/dist/src/backend/domains/ratchet/ratchet.types.js +2 -0
- package/dist/src/backend/domains/ratchet/ratchet.types.js.map +1 -0
- package/dist/src/backend/domains/ratchet/reconciliation.service.d.ts.map +1 -1
- package/dist/src/backend/domains/ratchet/reconciliation.service.js +1 -2
- package/dist/src/backend/domains/ratchet/reconciliation.service.js.map +1 -1
- package/dist/src/backend/domains/ratchet/reconciliation.service.test.js +8 -10
- package/dist/src/backend/domains/ratchet/reconciliation.service.test.js.map +1 -1
- package/dist/src/backend/domains/run-script/index.d.ts +1 -1
- package/dist/src/backend/domains/run-script/index.d.ts.map +1 -1
- package/dist/src/backend/domains/run-script/index.js +1 -1
- package/dist/src/backend/domains/run-script/index.js.map +1 -1
- package/dist/src/backend/domains/run-script/run-script-domain-exports.test.js +5 -4
- package/dist/src/backend/domains/run-script/run-script-domain-exports.test.js.map +1 -1
- package/dist/src/backend/domains/run-script/run-script.service.d.ts +13 -1
- package/dist/src/backend/domains/run-script/run-script.service.d.ts.map +1 -1
- package/dist/src/backend/domains/run-script/run-script.service.js +175 -10
- package/dist/src/backend/domains/run-script/run-script.service.js.map +1 -1
- package/dist/src/backend/domains/run-script/run-script.service.test.js +204 -0
- package/dist/src/backend/domains/run-script/run-script.service.test.js.map +1 -1
- package/dist/src/backend/domains/session/acp/acp-event-translator.d.ts +13 -1
- package/dist/src/backend/domains/session/acp/acp-event-translator.d.ts.map +1 -1
- package/dist/src/backend/domains/session/acp/acp-event-translator.js +86 -1
- package/dist/src/backend/domains/session/acp/acp-event-translator.js.map +1 -1
- package/dist/src/backend/domains/session/acp/acp-event-translator.test.js +39 -0
- package/dist/src/backend/domains/session/acp/acp-event-translator.test.js.map +1 -1
- package/dist/src/backend/domains/session/acp/acp-runtime-manager.d.ts +5 -0
- package/dist/src/backend/domains/session/acp/acp-runtime-manager.d.ts.map +1 -1
- package/dist/src/backend/domains/session/acp/acp-runtime-manager.js +16 -13
- package/dist/src/backend/domains/session/acp/acp-runtime-manager.js.map +1 -1
- package/dist/src/backend/domains/session/acp/acp-runtime-manager.test.js +3 -12
- package/dist/src/backend/domains/session/acp/acp-runtime-manager.test.js.map +1 -1
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/acp-adapter-utils.d.ts +24 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/acp-adapter-utils.d.ts.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/acp-adapter-utils.js +79 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/acp-adapter-utils.js.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/adapter-state.d.ts +97 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/adapter-state.d.ts.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/adapter-state.js +2 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/adapter-state.js.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/codex-app-server-acp-adapter.d.ts +17 -39
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/codex-app-server-acp-adapter.d.ts.map +1 -1
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/codex-app-server-acp-adapter.js +109 -1694
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/codex-app-server-acp-adapter.js.map +1 -1
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/codex-app-server-acp-adapter.test.js +0 -191
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/codex-app-server-acp-adapter.test.js.map +1 -1
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/codex-zod.d.ts +3 -3
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/command-metadata.d.ts +16 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/command-metadata.d.ts.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/command-metadata.js +292 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/command-metadata.js.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/command-metadata.test.d.ts +2 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/command-metadata.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/command-metadata.test.js +56 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/command-metadata.test.js.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/protocol-permission-handler.d.ts +19 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/protocol-permission-handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/protocol-permission-handler.js +369 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/protocol-permission-handler.js.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/protocol-permission-handler.test.d.ts +2 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/protocol-permission-handler.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/protocol-permission-handler.test.js +91 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/protocol-permission-handler.test.js.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/retry-logic.d.ts +16 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/retry-logic.d.ts.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/retry-logic.js +53 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/retry-logic.js.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/session-config-resolver.d.ts +20 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/session-config-resolver.d.ts.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/session-config-resolver.js +341 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/session-config-resolver.js.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/session-negotiation.d.ts +41 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/session-negotiation.d.ts.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/session-negotiation.js +137 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/session-negotiation.js.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/session-state-container.d.ts +25 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/session-state-container.d.ts.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/session-state-container.js +47 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/session-state-container.js.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/shape-drift-reporter.d.ts +8 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/shape-drift-reporter.d.ts.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/shape-drift-reporter.js +37 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/shape-drift-reporter.js.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/stream-event-handler.d.ts +53 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/stream-event-handler.d.ts.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/stream-event-handler.js +419 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/stream-event-handler.js.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/stream-event-handler.test.d.ts +2 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/stream-event-handler.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/stream-event-handler.test.js +95 -0
- package/dist/src/backend/domains/session/acp/codex-app-server-adapter/stream-event-handler.test.js.map +1 -0
- package/dist/src/backend/domains/session/acp/index.d.ts +1 -1
- package/dist/src/backend/domains/session/acp/index.d.ts.map +1 -1
- package/dist/src/backend/domains/session/acp/index.js +1 -1
- package/dist/src/backend/domains/session/acp/index.js.map +1 -1
- package/dist/src/backend/domains/session/bridges.d.ts +5 -0
- package/dist/src/backend/domains/session/bridges.d.ts.map +1 -1
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/load-session.handler.d.ts.map +1 -1
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/load-session.handler.js +2 -2
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/load-session.handler.js.map +1 -1
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/load-session.handler.test.js +1 -1
- package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/load-session.handler.test.js.map +1 -1
- package/dist/src/backend/domains/session/chat/chat-message-handlers.service.js +2 -2
- package/dist/src/backend/domains/session/chat/chat-message-handlers.service.js.map +1 -1
- package/dist/src/backend/domains/session/data/codex-session-history-loader.service.d.ts.map +1 -1
- package/dist/src/backend/domains/session/data/codex-session-history-loader.service.js +77 -24
- package/dist/src/backend/domains/session/data/codex-session-history-loader.service.js.map +1 -1
- package/dist/src/backend/domains/session/data/session-data.service.d.ts +2 -0
- package/dist/src/backend/domains/session/data/session-data.service.d.ts.map +1 -1
- package/dist/src/backend/domains/session/data/{claude-session-history-loader.service.d.ts → session-history-loader.service.d.ts} +1 -1
- package/dist/src/backend/domains/session/data/session-history-loader.service.d.ts.map +1 -0
- package/dist/src/backend/domains/session/data/{claude-session-history-loader.service.js → session-history-loader.service.js} +23 -9
- package/dist/src/backend/domains/session/data/session-history-loader.service.js.map +1 -0
- package/dist/src/backend/domains/session/data/session-history-loader.service.test.d.ts +2 -0
- package/dist/src/backend/domains/session/data/session-history-loader.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/data/{claude-session-history-loader.service.test.js → session-history-loader.service.test.js} +6 -3
- package/dist/src/backend/domains/session/data/session-history-loader.service.test.js.map +1 -0
- package/dist/src/backend/domains/session/index.d.ts +3 -1
- package/dist/src/backend/domains/session/index.d.ts.map +1 -1
- package/dist/src/backend/domains/session/index.js +2 -1
- package/dist/src/backend/domains/session/index.js.map +1 -1
- package/dist/src/backend/domains/session/interceptor.bridge.d.ts +8 -0
- package/dist/src/backend/domains/session/interceptor.bridge.d.ts.map +1 -0
- package/dist/src/backend/domains/session/interceptor.bridge.js +7 -0
- package/dist/src/backend/domains/session/interceptor.bridge.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/acp-event-processor.d.ts +71 -0
- package/dist/src/backend/domains/session/lifecycle/acp-event-processor.d.ts.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/acp-event-processor.js +404 -0
- package/dist/src/backend/domains/session/lifecycle/acp-event-processor.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.config.service.d.ts +59 -0
- package/dist/src/backend/domains/session/lifecycle/session.config.service.d.ts.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.config.service.js +635 -0
- package/dist/src/backend/domains/session/lifecycle/session.config.service.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.config.service.test.d.ts +2 -0
- package/dist/src/backend/domains/session/lifecycle/session.config.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.config.service.test.js +552 -0
- package/dist/src/backend/domains/session/lifecycle/session.config.service.test.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.permission.service.d.ts +17 -0
- package/dist/src/backend/domains/session/lifecycle/session.permission.service.d.ts.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.permission.service.js +86 -0
- package/dist/src/backend/domains/session/lifecycle/session.permission.service.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.permission.service.test.d.ts +2 -0
- package/dist/src/backend/domains/session/lifecycle/session.permission.service.test.d.ts.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.permission.service.test.js +137 -0
- package/dist/src/backend/domains/session/lifecycle/session.permission.service.test.js.map +1 -0
- package/dist/src/backend/domains/session/lifecycle/session.repository.d.ts +0 -2
- package/dist/src/backend/domains/session/lifecycle/session.repository.d.ts.map +1 -1
- package/dist/src/backend/domains/session/lifecycle/session.repository.js +0 -3
- package/dist/src/backend/domains/session/lifecycle/session.repository.js.map +1 -1
- package/dist/src/backend/domains/session/lifecycle/session.repository.test.js +0 -1
- package/dist/src/backend/domains/session/lifecycle/session.repository.test.js.map +1 -1
- package/dist/src/backend/domains/session/lifecycle/session.service.d.ts +24 -56
- package/dist/src/backend/domains/session/lifecycle/session.service.d.ts.map +1 -1
- package/dist/src/backend/domains/session/lifecycle/session.service.js +140 -1083
- package/dist/src/backend/domains/session/lifecycle/session.service.js.map +1 -1
- package/dist/src/backend/domains/session/lifecycle/session.service.test.js +62 -689
- package/dist/src/backend/domains/session/lifecycle/session.service.test.js.map +1 -1
- package/dist/src/backend/domains/session/logging/acp-trace-logger.service.d.ts.map +1 -1
- package/dist/src/backend/domains/session/logging/acp-trace-logger.service.js +2 -13
- package/dist/src/backend/domains/session/logging/acp-trace-logger.service.js.map +1 -1
- package/dist/src/backend/domains/session/logging/acp-trace-logger.service.test.js +15 -3
- package/dist/src/backend/domains/session/logging/acp-trace-logger.service.test.js.map +1 -1
- package/dist/src/backend/domains/session/logging/session-file-logger.service.js +1 -1
- package/dist/src/backend/domains/session/logging/session-file-logger.service.js.map +1 -1
- package/dist/src/backend/domains/session/logging/session-file-logger.service.test.js +3 -0
- package/dist/src/backend/domains/session/logging/session-file-logger.service.test.js.map +1 -1
- package/dist/src/backend/domains/session/session-domain.service.d.ts +1 -2
- package/dist/src/backend/domains/session/session-domain.service.d.ts.map +1 -1
- package/dist/src/backend/domains/session/session-domain.service.js +21 -2
- package/dist/src/backend/domains/session/session-domain.service.js.map +1 -1
- package/dist/src/backend/domains/session/session-domain.service.test.js +34 -0
- package/dist/src/backend/domains/session/session-domain.service.test.js.map +1 -1
- package/dist/src/backend/domains/session/store/file-lock.service.d.ts.map +1 -1
- package/dist/src/backend/domains/session/store/file-lock.service.js +25 -6
- package/dist/src/backend/domains/session/store/file-lock.service.js.map +1 -1
- package/dist/src/backend/domains/session/store/file-lock.service.test.js +3 -0
- package/dist/src/backend/domains/session/store/file-lock.service.test.js.map +1 -1
- package/dist/src/backend/domains/session/zod-issue-summary.d.ts +3 -0
- package/dist/src/backend/domains/session/zod-issue-summary.d.ts.map +1 -0
- package/dist/src/backend/domains/session/zod-issue-summary.js +7 -0
- package/dist/src/backend/domains/session/zod-issue-summary.js.map +1 -0
- package/dist/src/backend/domains/workspace/index.d.ts +0 -1
- package/dist/src/backend/domains/workspace/index.d.ts.map +1 -1
- package/dist/src/backend/domains/workspace/index.js +0 -1
- package/dist/src/backend/domains/workspace/index.js.map +1 -1
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.d.ts +7 -0
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.d.ts.map +1 -1
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.js +98 -85
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.js.map +1 -1
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.test.js +41 -1
- package/dist/src/backend/domains/workspace/lifecycle/creation.service.test.js.map +1 -1
- package/dist/src/backend/domains/workspace/lifecycle/data.service.d.ts +9 -1
- package/dist/src/backend/domains/workspace/lifecycle/data.service.d.ts.map +1 -1
- package/dist/src/backend/domains/workspace/lifecycle/data.service.js +2 -1
- package/dist/src/backend/domains/workspace/lifecycle/data.service.js.map +1 -1
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.d.ts +8 -0
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.d.ts.map +1 -1
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.js +47 -5
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.js.map +1 -1
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.test.js +117 -22
- package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.test.js.map +1 -1
- package/dist/src/backend/domains/workspace/query/project-management.service.d.ts +2 -0
- package/dist/src/backend/domains/workspace/query/project-management.service.d.ts.map +1 -1
- package/dist/src/backend/domains/workspace/query/workspace-query.service.d.ts +4 -1
- package/dist/src/backend/domains/workspace/query/workspace-query.service.d.ts.map +1 -1
- package/dist/src/backend/domains/workspace/query/workspace-query.service.js +51 -36
- package/dist/src/backend/domains/workspace/query/workspace-query.service.js.map +1 -1
- package/dist/src/backend/domains/workspace/query/workspace-query.service.test.js +141 -44
- package/dist/src/backend/domains/workspace/query/workspace-query.service.test.js.map +1 -1
- package/dist/src/backend/domains/workspace/state/flow-state.d.ts +2 -2
- package/dist/src/backend/domains/workspace/state/flow-state.d.ts.map +1 -1
- package/dist/src/backend/domains/workspace/state/flow-state.js.map +1 -1
- package/dist/src/backend/domains/workspace/state/init-policy.js +1 -1
- package/dist/src/backend/domains/workspace/state/init-policy.js.map +1 -1
- package/dist/src/backend/domains/workspace/state/kanban-state.d.ts +2 -1
- package/dist/src/backend/domains/workspace/state/kanban-state.d.ts.map +1 -1
- package/dist/src/backend/domains/workspace/state/kanban-state.js +9 -5
- package/dist/src/backend/domains/workspace/state/kanban-state.js.map +1 -1
- package/dist/src/backend/domains/workspace/state/kanban-state.test.js +23 -0
- package/dist/src/backend/domains/workspace/state/kanban-state.test.js.map +1 -1
- package/dist/src/backend/domains/workspace/worktree/worktree-lifecycle.service.d.ts +3 -6
- package/dist/src/backend/domains/workspace/worktree/worktree-lifecycle.service.d.ts.map +1 -1
- package/dist/src/backend/domains/workspace/worktree/worktree-lifecycle.service.js +7 -116
- package/dist/src/backend/domains/workspace/worktree/worktree-lifecycle.service.js.map +1 -1
- package/dist/src/backend/domains/workspace/worktree/worktree-lifecycle.service.test.js +38 -65
- package/dist/src/backend/domains/workspace/worktree/worktree-lifecycle.service.test.js.map +1 -1
- package/dist/src/backend/interceptors/conversation-rename.interceptor.d.ts.map +1 -1
- package/dist/src/backend/interceptors/conversation-rename.interceptor.js +22 -6
- package/dist/src/backend/interceptors/conversation-rename.interceptor.js.map +1 -1
- package/dist/src/backend/interceptors/conversation-rename.interceptor.test.js +25 -13
- package/dist/src/backend/interceptors/conversation-rename.interceptor.test.js.map +1 -1
- package/dist/src/backend/interceptors/index.d.ts +2 -0
- package/dist/src/backend/interceptors/index.d.ts.map +1 -1
- package/dist/src/backend/interceptors/index.js +6 -0
- package/dist/src/backend/interceptors/index.js.map +1 -1
- package/dist/src/backend/interceptors/pre-pr-rename.interceptor.d.ts.map +1 -1
- package/dist/src/backend/interceptors/pre-pr-rename.interceptor.js +8 -0
- package/dist/src/backend/interceptors/pre-pr-rename.interceptor.js.map +1 -1
- package/dist/src/backend/interceptors/pre-pr-rename.interceptor.test.js +5 -1
- package/dist/src/backend/interceptors/pre-pr-rename.interceptor.test.js.map +1 -1
- package/dist/src/backend/interceptors/pre-push-rename.interceptor.d.ts.map +1 -1
- package/dist/src/backend/interceptors/pre-push-rename.interceptor.js +3 -0
- package/dist/src/backend/interceptors/pre-push-rename.interceptor.js.map +1 -1
- package/dist/src/backend/interceptors/registry.d.ts +5 -0
- package/dist/src/backend/interceptors/registry.d.ts.map +1 -1
- package/dist/src/backend/interceptors/registry.js +51 -0
- package/dist/src/backend/interceptors/registry.js.map +1 -1
- package/dist/src/backend/interceptors/types.d.ts +2 -0
- package/dist/src/backend/interceptors/types.d.ts.map +1 -1
- package/dist/src/backend/lib/file-helpers.d.ts +2 -0
- package/dist/src/backend/lib/file-helpers.d.ts.map +1 -1
- package/dist/src/backend/lib/file-helpers.js +64 -1
- package/dist/src/backend/lib/file-helpers.js.map +1 -1
- package/dist/src/backend/lib/workspace-derived-state.d.ts +47 -0
- package/dist/src/backend/lib/workspace-derived-state.d.ts.map +1 -0
- package/dist/src/backend/lib/workspace-derived-state.js +31 -0
- package/dist/src/backend/lib/workspace-derived-state.js.map +1 -0
- package/dist/src/backend/lib/workspace-derived-state.test.d.ts +2 -0
- package/dist/src/backend/lib/workspace-derived-state.test.d.ts.map +1 -0
- package/dist/src/backend/lib/workspace-derived-state.test.js +66 -0
- package/dist/src/backend/lib/workspace-derived-state.test.js.map +1 -0
- package/dist/src/backend/middleware/cors.middleware.d.ts +1 -2
- package/dist/src/backend/middleware/cors.middleware.d.ts.map +1 -1
- package/dist/src/backend/middleware/cors.middleware.js +0 -2
- package/dist/src/backend/middleware/cors.middleware.js.map +1 -1
- package/dist/src/backend/middleware/index.d.ts +1 -1
- package/dist/src/backend/middleware/index.d.ts.map +1 -1
- package/dist/src/backend/middleware/index.js +1 -1
- package/dist/src/backend/middleware/index.js.map +1 -1
- package/dist/src/backend/orchestration/data-backup.service.test.js +1 -0
- package/dist/src/backend/orchestration/data-backup.service.test.js.map +1 -1
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.d.ts +26 -1
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.d.ts.map +1 -1
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.js +24 -1
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.js.map +1 -1
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.test.js +19 -1
- package/dist/src/backend/orchestration/domain-bridges.orchestrator.test.js.map +1 -1
- package/dist/src/backend/orchestration/event-collector.orchestrator.d.ts +8 -1
- package/dist/src/backend/orchestration/event-collector.orchestrator.d.ts.map +1 -1
- package/dist/src/backend/orchestration/event-collector.orchestrator.js +41 -21
- package/dist/src/backend/orchestration/event-collector.orchestrator.js.map +1 -1
- package/dist/src/backend/orchestration/event-collector.orchestrator.test.js +19 -4
- package/dist/src/backend/orchestration/event-collector.orchestrator.test.js.map +1 -1
- package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.d.ts +6 -2
- package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.d.ts.map +1 -1
- package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.js +8 -3
- package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts +19 -1
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts.map +1 -1
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.js +21 -13
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js +103 -77
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-init-script-pipeline.d.ts +18 -0
- package/dist/src/backend/orchestration/workspace-init-script-pipeline.d.ts.map +1 -0
- package/dist/src/backend/orchestration/workspace-init-script-pipeline.js +75 -0
- package/dist/src/backend/orchestration/workspace-init-script-pipeline.js.map +1 -0
- package/dist/src/backend/orchestration/workspace-init.orchestrator.d.ts.map +1 -1
- package/dist/src/backend/orchestration/workspace-init.orchestrator.js +105 -106
- package/dist/src/backend/orchestration/workspace-init.orchestrator.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-init.orchestrator.test.js +137 -18
- package/dist/src/backend/orchestration/workspace-init.orchestrator.test.js.map +1 -1
- package/dist/src/backend/resource_accessors/project.accessor.js +1 -1
- package/dist/src/backend/resource_accessors/project.accessor.js.map +1 -1
- package/dist/src/backend/resource_accessors/workspace.accessor.d.ts +1 -0
- package/dist/src/backend/resource_accessors/workspace.accessor.d.ts.map +1 -1
- package/dist/src/backend/resource_accessors/workspace.accessor.js.map +1 -1
- package/dist/src/backend/routers/websocket/index.d.ts +1 -0
- package/dist/src/backend/routers/websocket/index.d.ts.map +1 -1
- package/dist/src/backend/routers/websocket/index.js +1 -0
- package/dist/src/backend/routers/websocket/index.js.map +1 -1
- package/dist/src/backend/routers/websocket/post-run-logs.handler.d.ts +9 -0
- package/dist/src/backend/routers/websocket/post-run-logs.handler.d.ts.map +1 -0
- package/dist/src/backend/routers/websocket/post-run-logs.handler.js +52 -0
- package/dist/src/backend/routers/websocket/post-run-logs.handler.js.map +1 -0
- package/dist/src/backend/routers/websocket/snapshots.handler.d.ts.map +1 -1
- package/dist/src/backend/routers/websocket/snapshots.handler.js +17 -6
- package/dist/src/backend/routers/websocket/snapshots.handler.js.map +1 -1
- package/dist/src/backend/routers/websocket/snapshots.handler.test.js +40 -5
- package/dist/src/backend/routers/websocket/snapshots.handler.test.js.map +1 -1
- package/dist/src/backend/routers/websocket/websocket.integration.test.js +1 -0
- package/dist/src/backend/routers/websocket/websocket.integration.test.js.map +1 -1
- package/dist/src/backend/server.d.ts.map +1 -1
- package/dist/src/backend/server.js +16 -6
- package/dist/src/backend/server.js.map +1 -1
- package/dist/src/backend/server.upgrade.test.js +4 -0
- package/dist/src/backend/server.upgrade.test.js.map +1 -1
- package/dist/src/backend/services/check-single-writer.test.d.ts +2 -0
- package/dist/src/backend/services/check-single-writer.test.d.ts.map +1 -0
- package/dist/src/backend/services/check-single-writer.test.js +132 -0
- package/dist/src/backend/services/check-single-writer.test.js.map +1 -0
- package/dist/src/backend/services/config.service.d.ts +14 -6
- package/dist/src/backend/services/config.service.d.ts.map +1 -1
- package/dist/src/backend/services/config.service.js +31 -9
- package/dist/src/backend/services/config.service.js.map +1 -1
- package/dist/src/backend/services/env-schemas.d.ts +7 -3
- package/dist/src/backend/services/env-schemas.d.ts.map +1 -1
- package/dist/src/backend/services/env-schemas.js +19 -3
- package/dist/src/backend/services/env-schemas.js.map +1 -1
- package/dist/src/backend/services/run-script-config-persistence.service.d.ts +37 -0
- package/dist/src/backend/services/run-script-config-persistence.service.d.ts.map +1 -0
- package/dist/src/backend/services/run-script-config-persistence.service.js +73 -0
- package/dist/src/backend/services/run-script-config-persistence.service.js.map +1 -0
- package/dist/src/backend/services/run-script-config-persistence.service.test.d.ts +2 -0
- package/dist/src/backend/services/run-script-config-persistence.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/run-script-config-persistence.service.test.js +111 -0
- package/dist/src/backend/services/run-script-config-persistence.service.test.js.map +1 -0
- package/dist/src/backend/services/run-script-proxy.service.d.ts.map +1 -1
- package/dist/src/backend/services/run-script-proxy.service.js +2 -1
- package/dist/src/backend/services/run-script-proxy.service.js.map +1 -1
- package/dist/src/backend/services/run-script-proxy.service.test.js +4 -0
- package/dist/src/backend/services/run-script-proxy.service.test.js.map +1 -1
- package/dist/src/backend/services/workspace-snapshot-store.service.d.ts +5 -3
- package/dist/src/backend/services/workspace-snapshot-store.service.d.ts.map +1 -1
- package/dist/src/backend/services/workspace-snapshot-store.service.js +20 -15
- package/dist/src/backend/services/workspace-snapshot-store.service.js.map +1 -1
- package/dist/src/backend/services/workspace-snapshot-store.service.test.js +3 -0
- package/dist/src/backend/services/workspace-snapshot-store.service.test.js.map +1 -1
- package/dist/src/backend/trpc/admin.router.test.js +0 -2
- package/dist/src/backend/trpc/admin.router.test.js.map +1 -1
- package/dist/src/backend/trpc/admin.trpc.d.ts +2 -7
- package/dist/src/backend/trpc/admin.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/admin.trpc.js +2 -3
- package/dist/src/backend/trpc/admin.trpc.js.map +1 -1
- package/dist/src/backend/trpc/index.d.ts +49 -14
- package/dist/src/backend/trpc/index.d.ts.map +1 -1
- package/dist/src/backend/trpc/project.trpc.d.ts +17 -3
- package/dist/src/backend/trpc/project.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/project.trpc.js +22 -0
- package/dist/src/backend/trpc/project.trpc.js.map +1 -1
- package/dist/src/backend/trpc/session.router.test.js +1 -0
- package/dist/src/backend/trpc/session.router.test.js.map +1 -1
- package/dist/src/backend/trpc/session.trpc.d.ts +4 -0
- package/dist/src/backend/trpc/session.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/session.trpc.js +2 -2
- package/dist/src/backend/trpc/session.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/files.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace/files.trpc.js +1 -64
- package/dist/src/backend/trpc/workspace/files.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/init.router.test.js +1 -1
- package/dist/src/backend/trpc/workspace/init.router.test.js.map +1 -1
- package/dist/src/backend/trpc/workspace/init.trpc.d.ts +1 -0
- package/dist/src/backend/trpc/workspace/init.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace/init.trpc.js +2 -3
- package/dist/src/backend/trpc/workspace/init.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/run-script.router.test.js +31 -4
- package/dist/src/backend/trpc/workspace/run-script.router.test.js.map +1 -1
- package/dist/src/backend/trpc/workspace/run-script.trpc.d.ts +2 -0
- package/dist/src/backend/trpc/workspace/run-script.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace/run-script.trpc.js +8 -8
- package/dist/src/backend/trpc/workspace/run-script.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/workspace-helpers.d.ts +2 -0
- package/dist/src/backend/trpc/workspace/workspace-helpers.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace.router.test.js +45 -1
- package/dist/src/backend/trpc/workspace.router.test.js.map +1 -1
- package/dist/src/backend/trpc/workspace.trpc.d.ts +26 -4
- package/dist/src/backend/trpc/workspace.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace.trpc.js +25 -16
- package/dist/src/backend/trpc/workspace.trpc.js.map +1 -1
- package/dist/src/cli/index.js +17 -5
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/shared/core/ci-status.d.ts +6 -4
- package/dist/src/shared/core/ci-status.d.ts.map +1 -1
- package/dist/src/shared/core/ci-status.js +47 -13
- package/dist/src/shared/core/ci-status.js.map +1 -1
- package/dist/src/shared/core/enums.d.ts +1 -0
- package/dist/src/shared/core/enums.d.ts.map +1 -1
- package/dist/src/shared/core/enums.js +1 -0
- package/dist/src/shared/core/enums.js.map +1 -1
- package/dist/src/shared/core/index.d.ts +1 -1
- package/dist/src/shared/core/index.d.ts.map +1 -1
- package/dist/src/shared/core/index.js +1 -1
- package/dist/src/shared/core/index.js.map +1 -1
- package/dist/src/shared/schemas/export-data.schema.d.ts +2 -0
- package/dist/src/shared/schemas/export-data.schema.d.ts.map +1 -1
- package/dist/src/shared/schemas/factory-config.schema.d.ts +1 -0
- package/dist/src/shared/schemas/factory-config.schema.d.ts.map +1 -1
- package/dist/src/shared/schemas/factory-config.schema.js +1 -0
- package/dist/src/shared/schemas/factory-config.schema.js.map +1 -1
- package/dist/src/shared/schemas/issue-tracker-config.schema.d.ts +2 -2
- package/dist/src/shared/schemas/persisted-stores.schema.d.ts +0 -2
- package/dist/src/shared/schemas/persisted-stores.schema.d.ts.map +1 -1
- package/dist/src/shared/schemas/persisted-stores.schema.js +0 -1
- package/dist/src/shared/schemas/persisted-stores.schema.js.map +1 -1
- package/dist/src/shared/workspace-flow-state.d.ts +3 -0
- package/dist/src/shared/workspace-flow-state.d.ts.map +1 -0
- package/dist/src/shared/workspace-flow-state.js +2 -0
- package/dist/src/shared/workspace-flow-state.js.map +1 -0
- package/dist/tsconfig.backend.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/prisma/migrations/20260222120000_add_post_run_command/migration.sql +1 -0
- package/prisma/migrations/20260224150000_add_workspace_archiving_state/migration.sql +4 -0
- package/prisma/schema.prisma +2 -0
- package/dist/client/assets/channel-B2z94T-9.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-B2LoFG_o.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-B2LoFG_o.js +0 -1
- package/dist/client/assets/clone-C8LA0zQQ.js +0 -1
- package/dist/client/assets/index-DvtmO7DV.css +0 -1
- package/dist/client/assets/index-EVrp_NXm.js +0 -429
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-CO6XGRkL.js +0 -1
- package/dist/src/backend/domains/session/data/claude-session-history-loader.service.d.ts.map +0 -1
- package/dist/src/backend/domains/session/data/claude-session-history-loader.service.js.map +0 -1
- package/dist/src/backend/domains/session/data/claude-session-history-loader.service.test.d.ts +0 -2
- package/dist/src/backend/domains/session/data/claude-session-history-loader.service.test.d.ts.map +0 -1
- package/dist/src/backend/domains/session/data/claude-session-history-loader.service.test.js.map +0 -1
- package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.d.ts +0 -10
- package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.d.ts.map +0 -1
- package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.js +0 -24
- package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.js.map +0 -1
- package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.test.d.ts +0 -2
- package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.test.d.ts.map +0 -1
- package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.test.js +0 -17
- package/dist/src/backend/domains/workspace/lifecycle/archive-tracker.service.test.js.map +0 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { githubCLIService } from '../../backend/domains/github/index.js';
|
|
2
2
|
import { linearClientService, linearStateSyncService } from '../../backend/domains/linear/index.js';
|
|
3
|
-
import { startupScriptService } from '../../backend/domains/run-script/index.js';
|
|
4
3
|
import { chatMessageHandlerService, sessionDomainService, sessionService, } from '../../backend/domains/session/index.js';
|
|
5
4
|
import { workspaceStateMachine, worktreeLifecycleService } from '../../backend/domains/workspace/index.js';
|
|
6
5
|
import { FACTORY_SIGNATURE } from '../../backend/lib/constants.js';
|
|
@@ -10,10 +9,14 @@ import { SERVICE_CACHE_TTL_MS } from '../../backend/services/constants.js';
|
|
|
10
9
|
import { FactoryConfigService } from '../../backend/services/factory-config.service.js';
|
|
11
10
|
import { gitOpsService } from '../../backend/services/git-ops.service.js';
|
|
12
11
|
import { createLogger } from '../../backend/services/logger.service.js';
|
|
12
|
+
import { runScriptConfigPersistenceService } from '../../backend/services/run-script-config-persistence.service.js';
|
|
13
13
|
import { MessageState, resolveSelectedModel } from '../../shared/acp-protocol/index.js';
|
|
14
14
|
import { SessionStatus } from '../../shared/core/index.js';
|
|
15
|
+
import { AttachmentSchema } from '../../shared/websocket/index.js';
|
|
15
16
|
import { getDecryptedLinearConfig, getWorkspaceLinearContext } from './linear-config.helper.js';
|
|
17
|
+
import { executeStartupScriptPipeline } from './workspace-init-script-pipeline.js';
|
|
16
18
|
const logger = createLogger('workspace-init-orchestrator');
|
|
19
|
+
const initialAttachmentsSchema = AttachmentSchema.array();
|
|
17
20
|
let cachedGitHubUsername = null;
|
|
18
21
|
async function getCachedGitHubUsername() {
|
|
19
22
|
const nowMs = Date.now();
|
|
@@ -71,63 +74,6 @@ async function readFactoryConfigSafe(worktreePath, workspaceId) {
|
|
|
71
74
|
return null;
|
|
72
75
|
}
|
|
73
76
|
}
|
|
74
|
-
async function runFactorySetupScriptIfConfigured(workspaceId, workspaceWithProject, worktreePath, factoryConfig) {
|
|
75
|
-
if (!factoryConfig?.scripts.setup) {
|
|
76
|
-
return { ran: false, success: true };
|
|
77
|
-
}
|
|
78
|
-
logger.info('Running setup script from factory-factory.json', { workspaceId });
|
|
79
|
-
const scriptResult = await startupScriptService.runStartupScript({ ...workspaceWithProject, worktreePath }, {
|
|
80
|
-
...workspaceWithProject.project,
|
|
81
|
-
startupScriptCommand: factoryConfig.scripts.setup,
|
|
82
|
-
startupScriptPath: null,
|
|
83
|
-
});
|
|
84
|
-
if (!scriptResult.success) {
|
|
85
|
-
const finalWorkspace = await workspaceAccessor.findById(workspaceId);
|
|
86
|
-
logger.warn('Setup script from factory-factory.json failed but workspace created', {
|
|
87
|
-
workspaceId,
|
|
88
|
-
error: finalWorkspace?.initErrorMessage,
|
|
89
|
-
});
|
|
90
|
-
try {
|
|
91
|
-
await sessionService.stopWorkspaceSessions(workspaceId);
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
logger.warn('Failed to stop Claude sessions after setup script failure', {
|
|
95
|
-
workspaceId,
|
|
96
|
-
error: error instanceof Error ? error.message : String(error),
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return { ran: true, success: scriptResult.success };
|
|
101
|
-
}
|
|
102
|
-
async function runProjectStartupScriptIfConfigured(workspaceId, workspaceWithProject, worktreePath) {
|
|
103
|
-
const project = workspaceWithProject.project;
|
|
104
|
-
if (!startupScriptService.hasStartupScript(project)) {
|
|
105
|
-
return { ran: false, success: true };
|
|
106
|
-
}
|
|
107
|
-
logger.info('Running startup script for workspace', {
|
|
108
|
-
workspaceId,
|
|
109
|
-
hasCommand: !!project.startupScriptCommand,
|
|
110
|
-
hasScriptPath: !!project.startupScriptPath,
|
|
111
|
-
});
|
|
112
|
-
const scriptResult = await startupScriptService.runStartupScript({ ...workspaceWithProject, worktreePath }, project);
|
|
113
|
-
if (!scriptResult.success) {
|
|
114
|
-
const finalWorkspace = await workspaceAccessor.findById(workspaceId);
|
|
115
|
-
logger.warn('Startup script failed but workspace created', {
|
|
116
|
-
workspaceId,
|
|
117
|
-
error: finalWorkspace?.initErrorMessage,
|
|
118
|
-
});
|
|
119
|
-
try {
|
|
120
|
-
await sessionService.stopWorkspaceSessions(workspaceId);
|
|
121
|
-
}
|
|
122
|
-
catch (error) {
|
|
123
|
-
logger.warn('Failed to stop Claude sessions after startup script failure', {
|
|
124
|
-
workspaceId,
|
|
125
|
-
error: error instanceof Error ? error.message : String(error),
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return { ran: true, success: scriptResult.success };
|
|
130
|
-
}
|
|
131
77
|
async function handleWorkspaceInitFailure(workspaceId, error) {
|
|
132
78
|
logger.error('Failed to initialize workspace worktree', error, { workspaceId });
|
|
133
79
|
await workspaceStateMachine.markFailed(workspaceId, error.message);
|
|
@@ -563,11 +509,12 @@ async function markLinearIssueStartedIfApplicable(workspaceId) {
|
|
|
563
509
|
});
|
|
564
510
|
}
|
|
565
511
|
}
|
|
566
|
-
function enqueueAutoMessage(sessionId, workspaceId, text, model) {
|
|
512
|
+
function enqueueAutoMessage(sessionId, workspaceId, text, model, attachments) {
|
|
567
513
|
const messageId = `auto-init-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
|
|
568
514
|
const queued = {
|
|
569
515
|
id: messageId,
|
|
570
516
|
text,
|
|
517
|
+
...(attachments && attachments.length > 0 ? { attachments } : {}),
|
|
571
518
|
timestamp: new Date().toISOString(),
|
|
572
519
|
settings: {
|
|
573
520
|
selectedModel: model,
|
|
@@ -593,6 +540,7 @@ function enqueueAutoMessage(sessionId, workspaceId, text, model) {
|
|
|
593
540
|
userMessage: {
|
|
594
541
|
text: queued.text,
|
|
595
542
|
timestamp: queued.timestamp,
|
|
543
|
+
attachments: queued.attachments,
|
|
596
544
|
settings: {
|
|
597
545
|
...queued.settings,
|
|
598
546
|
selectedModel: resolveSelectedModel(queued.settings.selectedModel),
|
|
@@ -602,6 +550,52 @@ function enqueueAutoMessage(sessionId, workspaceId, text, model) {
|
|
|
602
550
|
});
|
|
603
551
|
}
|
|
604
552
|
}
|
|
553
|
+
function readInitialAttachmentsFromMetadata(metadata, workspaceId) {
|
|
554
|
+
if (!(metadata && 'initialAttachments' in metadata)) {
|
|
555
|
+
return undefined;
|
|
556
|
+
}
|
|
557
|
+
const parsedAttachments = initialAttachmentsSchema.safeParse(metadata.initialAttachments);
|
|
558
|
+
if (parsedAttachments.success) {
|
|
559
|
+
return parsedAttachments.data;
|
|
560
|
+
}
|
|
561
|
+
logger.warn('Invalid initial attachments in workspace creation metadata', {
|
|
562
|
+
workspaceId,
|
|
563
|
+
});
|
|
564
|
+
return undefined;
|
|
565
|
+
}
|
|
566
|
+
function readStartupModePresetFromMetadata(metadata, workspaceId) {
|
|
567
|
+
if (!(metadata && 'startupModePreset' in metadata)) {
|
|
568
|
+
return 'non_interactive';
|
|
569
|
+
}
|
|
570
|
+
const startupModePreset = metadata.startupModePreset;
|
|
571
|
+
if (startupModePreset === 'non_interactive' || startupModePreset === 'plan') {
|
|
572
|
+
return startupModePreset;
|
|
573
|
+
}
|
|
574
|
+
logger.warn('Invalid startup mode preset in workspace creation metadata', {
|
|
575
|
+
workspaceId,
|
|
576
|
+
});
|
|
577
|
+
return 'non_interactive';
|
|
578
|
+
}
|
|
579
|
+
async function resolveInitialAutoMessageContent(workspaceId, creationMetadata) {
|
|
580
|
+
const issuePromptText = (await buildInitialPromptFromGitHubIssue(workspaceId)) ||
|
|
581
|
+
(await buildInitialPromptFromLinearIssue(workspaceId));
|
|
582
|
+
if (issuePromptText) {
|
|
583
|
+
return { text: issuePromptText };
|
|
584
|
+
}
|
|
585
|
+
const metadataPromptText = creationMetadata?.initialPrompt && typeof creationMetadata.initialPrompt === 'string'
|
|
586
|
+
? creationMetadata.initialPrompt
|
|
587
|
+
: '';
|
|
588
|
+
const metadataAttachments = readInitialAttachmentsFromMetadata(creationMetadata, workspaceId);
|
|
589
|
+
if (!metadataPromptText && (!metadataAttachments || metadataAttachments.length === 0)) {
|
|
590
|
+
return null;
|
|
591
|
+
}
|
|
592
|
+
return {
|
|
593
|
+
text: metadataPromptText,
|
|
594
|
+
...(metadataAttachments && metadataAttachments.length > 0
|
|
595
|
+
? { attachments: metadataAttachments }
|
|
596
|
+
: {}),
|
|
597
|
+
};
|
|
598
|
+
}
|
|
605
599
|
async function startDefaultAgentSession(workspaceId) {
|
|
606
600
|
try {
|
|
607
601
|
const sessions = await agentSessionAccessor.findByWorkspaceId(workspaceId, {
|
|
@@ -612,27 +606,23 @@ async function startDefaultAgentSession(workspaceId) {
|
|
|
612
606
|
if (!session) {
|
|
613
607
|
return null;
|
|
614
608
|
}
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
const metadata = workspace?.creationMetadata;
|
|
620
|
-
if (metadata?.initialPrompt && typeof metadata.initialPrompt === 'string') {
|
|
621
|
-
initialPromptText = metadata.initialPrompt;
|
|
622
|
-
}
|
|
623
|
-
}
|
|
609
|
+
const workspace = await workspaceAccessor.findById(workspaceId);
|
|
610
|
+
const metadata = workspace?.creationMetadata;
|
|
611
|
+
const startupModePreset = readStartupModePresetFromMetadata(metadata, workspaceId);
|
|
612
|
+
const initialMessage = await resolveInitialAutoMessageContent(workspaceId, metadata);
|
|
624
613
|
await sessionService.startSession(session.id, {
|
|
625
614
|
initialPrompt: '',
|
|
626
|
-
startupModePreset
|
|
615
|
+
startupModePreset,
|
|
627
616
|
});
|
|
628
|
-
if (
|
|
629
|
-
enqueueAutoMessage(session.id, workspaceId,
|
|
617
|
+
if (initialMessage) {
|
|
618
|
+
enqueueAutoMessage(session.id, workspaceId, initialMessage.text, session.model, initialMessage.attachments);
|
|
630
619
|
}
|
|
631
620
|
await chatMessageHandlerService.tryDispatchNextMessage(session.id);
|
|
632
621
|
logger.debug('Auto-started default Claude session for workspace', {
|
|
633
622
|
workspaceId,
|
|
634
623
|
sessionId: session.id,
|
|
635
|
-
hasInitialPrompt: !!
|
|
624
|
+
hasInitialPrompt: !!initialMessage?.text,
|
|
625
|
+
hasInitialAttachments: (initialMessage?.attachments?.length ?? 0) > 0,
|
|
636
626
|
});
|
|
637
627
|
return session.id;
|
|
638
628
|
}
|
|
@@ -676,6 +666,22 @@ async function retryQueuedDispatchAfterWorkspaceReady(workspaceId, startedSessio
|
|
|
676
666
|
});
|
|
677
667
|
}
|
|
678
668
|
}
|
|
669
|
+
async function createWorktreeForWorkspace(project, worktreeName, baseBranch, useExistingBranch, workspaceName) {
|
|
670
|
+
if (useExistingBranch) {
|
|
671
|
+
return gitOpsService.createWorktreeFromExistingBranch(project, worktreeName, baseBranch);
|
|
672
|
+
}
|
|
673
|
+
const gitHubUsername = await getCachedGitHubUsername();
|
|
674
|
+
return gitOpsService.createWorktree(project, worktreeName, baseBranch, {
|
|
675
|
+
branchPrefix: gitHubUsername ?? undefined,
|
|
676
|
+
workspaceName,
|
|
677
|
+
});
|
|
678
|
+
}
|
|
679
|
+
async function awaitSessionAndDispatchIfSuccess(workspaceId, agentSessionPromise, success) {
|
|
680
|
+
const startedSessionId = await agentSessionPromise;
|
|
681
|
+
if (success) {
|
|
682
|
+
await retryQueuedDispatchAfterWorkspaceReady(workspaceId, startedSessionId);
|
|
683
|
+
}
|
|
684
|
+
}
|
|
679
685
|
export async function initializeWorkspaceWorktree(workspaceId, options) {
|
|
680
686
|
const startedProvisioning = await startProvisioningOrLog(workspaceId);
|
|
681
687
|
if (!startedProvisioning) {
|
|
@@ -683,67 +689,60 @@ export async function initializeWorkspaceWorktree(workspaceId, options) {
|
|
|
683
689
|
}
|
|
684
690
|
let project;
|
|
685
691
|
let worktreeCreated = false;
|
|
692
|
+
let agentSessionPromise = Promise.resolve(null);
|
|
686
693
|
try {
|
|
687
694
|
const workspaceWithProject = await getWorkspaceWithProjectOrThrow(workspaceId);
|
|
688
695
|
project = workspaceWithProject.project;
|
|
689
696
|
const worktreeName = `workspace-${workspaceId}`;
|
|
690
697
|
const baseBranch = options?.branchName ?? project.defaultBranch;
|
|
691
698
|
const useExistingBranch = options?.useExistingBranch ??
|
|
692
|
-
(await worktreeLifecycleService.getInitMode(workspaceId
|
|
699
|
+
(await worktreeLifecycleService.getInitMode(workspaceId)) ??
|
|
693
700
|
false;
|
|
694
701
|
await gitOpsService.ensureBaseBranchExists(project, baseBranch, project.defaultBranch);
|
|
695
|
-
const worktreeInfo = useExistingBranch
|
|
696
|
-
? await gitOpsService.createWorktreeFromExistingBranch(project, worktreeName, baseBranch)
|
|
697
|
-
: await (async () => {
|
|
698
|
-
const gitHubUsername = await getCachedGitHubUsername();
|
|
699
|
-
return gitOpsService.createWorktree(project, worktreeName, baseBranch, {
|
|
700
|
-
branchPrefix: gitHubUsername ?? undefined,
|
|
701
|
-
workspaceName: workspaceWithProject.name,
|
|
702
|
-
});
|
|
703
|
-
})();
|
|
702
|
+
const worktreeInfo = await createWorktreeForWorkspace(project, worktreeName, baseBranch, useExistingBranch, workspaceWithProject.name);
|
|
704
703
|
worktreeCreated = true;
|
|
705
704
|
const factoryConfig = await readFactoryConfigSafe(worktreeInfo.worktreePath, workspaceId);
|
|
706
|
-
await
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
705
|
+
await runScriptConfigPersistenceService.syncWorkspaceCommandsFromFactoryConfig({
|
|
706
|
+
workspaceId,
|
|
707
|
+
factoryConfig,
|
|
708
|
+
persistWorkspaceCommands: (id, commands) => workspaceAccessor.update(id, {
|
|
709
|
+
worktreePath: worktreeInfo.worktreePath,
|
|
710
|
+
branchName: worktreeInfo.branchName,
|
|
711
|
+
isAutoGeneratedBranch: !useExistingBranch,
|
|
712
|
+
runScriptCommand: commands.runScriptCommand,
|
|
713
|
+
runScriptPostRunCommand: commands.runScriptPostRunCommand,
|
|
714
|
+
runScriptCleanupCommand: commands.runScriptCleanupCommand,
|
|
715
|
+
}),
|
|
712
716
|
});
|
|
713
717
|
void markLinearIssueStartedIfApplicable(workspaceId);
|
|
714
|
-
|
|
718
|
+
agentSessionPromise = startDefaultAgentSession(workspaceId).catch((error) => {
|
|
715
719
|
logger.error('Failed to start default Claude session', {
|
|
716
720
|
workspaceId,
|
|
717
721
|
error: error instanceof Error ? error.message : String(error),
|
|
718
722
|
});
|
|
719
723
|
return null;
|
|
720
724
|
});
|
|
721
|
-
const
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
if (projectSetupResult.ran) {
|
|
731
|
-
const startedSessionId = await agentSessionPromise;
|
|
732
|
-
if (projectSetupResult.success) {
|
|
733
|
-
await retryQueuedDispatchAfterWorkspaceReady(workspaceId, startedSessionId);
|
|
734
|
-
}
|
|
725
|
+
const startupScriptPipelineResult = await executeStartupScriptPipeline({
|
|
726
|
+
workspaceId,
|
|
727
|
+
workspaceWithProject,
|
|
728
|
+
worktreePath: worktreeInfo.worktreePath,
|
|
729
|
+
factoryConfig,
|
|
730
|
+
getWorkspaceInitErrorMessage: async () => (await workspaceAccessor.findById(workspaceId))?.initErrorMessage,
|
|
731
|
+
});
|
|
732
|
+
if (startupScriptPipelineResult.handled) {
|
|
733
|
+
await awaitSessionAndDispatchIfSuccess(workspaceId, agentSessionPromise, startupScriptPipelineResult.success);
|
|
735
734
|
return;
|
|
736
735
|
}
|
|
737
736
|
await workspaceStateMachine.markReady(workspaceId);
|
|
738
|
-
|
|
739
|
-
await retryQueuedDispatchAfterWorkspaceReady(workspaceId, startedSessionId);
|
|
737
|
+
await awaitSessionAndDispatchIfSuccess(workspaceId, agentSessionPromise, true);
|
|
740
738
|
}
|
|
741
739
|
catch (error) {
|
|
740
|
+
await agentSessionPromise;
|
|
742
741
|
await handleWorkspaceInitFailure(workspaceId, error);
|
|
743
742
|
}
|
|
744
743
|
finally {
|
|
745
744
|
if (worktreeCreated) {
|
|
746
|
-
await worktreeLifecycleService.clearInitMode(workspaceId
|
|
745
|
+
await worktreeLifecycleService.clearInitMode(workspaceId);
|
|
747
746
|
}
|
|
748
747
|
}
|
|
749
748
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-init.orchestrator.js","sourceRoot":"","sources":["../../../../src/backend/orchestration/workspace-init.orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-init.orchestrator.js","sourceRoot":"","sources":["../../../../src/backend/orchestration/workspace-init.orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,11 @@ vi.mock('@/backend/services/git-ops.service', () => ({
|
|
|
63
63
|
createWorktreeFromExistingBranch: vi.fn(),
|
|
64
64
|
},
|
|
65
65
|
}));
|
|
66
|
+
vi.mock('@/backend/services/run-script-config-persistence.service', () => ({
|
|
67
|
+
runScriptConfigPersistenceService: {
|
|
68
|
+
syncWorkspaceCommandsFromFactoryConfig: vi.fn(),
|
|
69
|
+
},
|
|
70
|
+
}));
|
|
66
71
|
vi.mock('@/backend/services/logger.service', () => ({
|
|
67
72
|
createLogger: () => ({
|
|
68
73
|
debug: vi.fn(),
|
|
@@ -83,8 +88,18 @@ import { agentSessionAccessor } from '../../backend/resource_accessors/agent-ses
|
|
|
83
88
|
import { workspaceAccessor } from '../../backend/resource_accessors/workspace.accessor.js';
|
|
84
89
|
import { FactoryConfigService } from '../../backend/services/factory-config.service.js';
|
|
85
90
|
import { gitOpsService } from '../../backend/services/git-ops.service.js';
|
|
91
|
+
import { runScriptConfigPersistenceService } from '../../backend/services/run-script-config-persistence.service.js';
|
|
86
92
|
import { initializeWorkspaceWorktree } from './workspace-init.orchestrator.js';
|
|
87
93
|
const WORKSPACE_ID = 'ws-1';
|
|
94
|
+
function createDeferredPromise() {
|
|
95
|
+
let resolve;
|
|
96
|
+
let reject;
|
|
97
|
+
const promise = new Promise((resolvePromise, rejectPromise) => {
|
|
98
|
+
resolve = resolvePromise;
|
|
99
|
+
reject = rejectPromise;
|
|
100
|
+
});
|
|
101
|
+
return { promise, resolve, reject };
|
|
102
|
+
}
|
|
88
103
|
function makeWorkspaceWithProject(overrides = {}) {
|
|
89
104
|
return unsafeCoerce({
|
|
90
105
|
id: WORKSPACE_ID,
|
|
@@ -123,6 +138,15 @@ function setupHappyPath() {
|
|
|
123
138
|
vi.mocked(startupScriptService.hasStartupScript).mockReturnValue(false);
|
|
124
139
|
vi.mocked(worktreeLifecycleService.getInitMode).mockResolvedValue(undefined);
|
|
125
140
|
vi.mocked(worktreeLifecycleService.clearInitMode).mockResolvedValue(undefined);
|
|
141
|
+
vi.mocked(runScriptConfigPersistenceService.syncWorkspaceCommandsFromFactoryConfig).mockImplementation(async (input) => {
|
|
142
|
+
const commands = {
|
|
143
|
+
runScriptCommand: input.factoryConfig?.scripts.run ?? null,
|
|
144
|
+
runScriptPostRunCommand: input.factoryConfig?.scripts.postRun ?? null,
|
|
145
|
+
runScriptCleanupCommand: input.factoryConfig?.scripts.cleanup ?? null,
|
|
146
|
+
};
|
|
147
|
+
await input.persistWorkspaceCommands(input.workspaceId, commands);
|
|
148
|
+
return commands;
|
|
149
|
+
});
|
|
126
150
|
vi.mocked(workspaceStateMachine.markReady).mockResolvedValue(unsafeCoerce(workspace));
|
|
127
151
|
vi.mocked(workspaceStateMachine.markFailed).mockResolvedValue(unsafeCoerce(workspace));
|
|
128
152
|
vi.mocked(githubCLIService.getAuthenticatedUsername).mockResolvedValue('testuser');
|
|
@@ -180,10 +204,23 @@ describe('initializeWorkspaceWorktree', () => {
|
|
|
180
204
|
isAutoGeneratedBranch: true,
|
|
181
205
|
}));
|
|
182
206
|
});
|
|
207
|
+
it('persists worktree and run-script fields in a single update call', async () => {
|
|
208
|
+
setupHappyPath();
|
|
209
|
+
await initializeWorkspaceWorktree(WORKSPACE_ID);
|
|
210
|
+
expect(workspaceAccessor.update).toHaveBeenCalledTimes(1);
|
|
211
|
+
expect(workspaceAccessor.update).toHaveBeenCalledWith(WORKSPACE_ID, expect.objectContaining({
|
|
212
|
+
worktreePath: '/worktrees/workspace-ws-1',
|
|
213
|
+
branchName: 'user/test-workspace',
|
|
214
|
+
isAutoGeneratedBranch: true,
|
|
215
|
+
runScriptCommand: null,
|
|
216
|
+
runScriptPostRunCommand: null,
|
|
217
|
+
runScriptCleanupCommand: null,
|
|
218
|
+
}));
|
|
219
|
+
});
|
|
183
220
|
it('clears init mode in finally block', async () => {
|
|
184
221
|
setupHappyPath();
|
|
185
222
|
await initializeWorkspaceWorktree(WORKSPACE_ID);
|
|
186
|
-
expect(worktreeLifecycleService.clearInitMode).toHaveBeenCalledWith(WORKSPACE_ID
|
|
223
|
+
expect(worktreeLifecycleService.clearInitMode).toHaveBeenCalledWith(WORKSPACE_ID);
|
|
187
224
|
});
|
|
188
225
|
});
|
|
189
226
|
describe('branch options', () => {
|
|
@@ -253,40 +290,44 @@ describe('initializeWorkspaceWorktree', () => {
|
|
|
253
290
|
});
|
|
254
291
|
});
|
|
255
292
|
describe('factory config', () => {
|
|
256
|
-
it('
|
|
293
|
+
it('syncs run and cleanup scripts from factory config', async () => {
|
|
257
294
|
setupHappyPath();
|
|
258
|
-
|
|
295
|
+
const parsedConfig = {
|
|
259
296
|
scripts: {
|
|
260
297
|
setup: 'npm install',
|
|
261
298
|
run: 'npm start',
|
|
262
299
|
cleanup: 'npm run clean',
|
|
263
300
|
},
|
|
264
|
-
}
|
|
301
|
+
};
|
|
302
|
+
vi.mocked(FactoryConfigService.readConfig).mockResolvedValue(parsedConfig);
|
|
265
303
|
vi.mocked(startupScriptService.runStartupScript).mockResolvedValue({
|
|
266
304
|
success: true,
|
|
267
305
|
});
|
|
268
306
|
await initializeWorkspaceWorktree(WORKSPACE_ID);
|
|
269
|
-
expect(
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
307
|
+
expect(runScriptConfigPersistenceService.syncWorkspaceCommandsFromFactoryConfig).toHaveBeenCalledWith({
|
|
308
|
+
workspaceId: WORKSPACE_ID,
|
|
309
|
+
factoryConfig: parsedConfig,
|
|
310
|
+
persistWorkspaceCommands: expect.any(Function),
|
|
311
|
+
});
|
|
273
312
|
});
|
|
274
|
-
it('
|
|
313
|
+
it('syncs null run scripts when no factory config exists', async () => {
|
|
275
314
|
setupHappyPath();
|
|
276
315
|
await initializeWorkspaceWorktree(WORKSPACE_ID);
|
|
277
|
-
expect(
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
316
|
+
expect(runScriptConfigPersistenceService.syncWorkspaceCommandsFromFactoryConfig).toHaveBeenCalledWith({
|
|
317
|
+
workspaceId: WORKSPACE_ID,
|
|
318
|
+
factoryConfig: null,
|
|
319
|
+
persistWorkspaceCommands: expect.any(Function),
|
|
320
|
+
});
|
|
281
321
|
});
|
|
282
322
|
it('treats config parse error as no config (returns null safely)', async () => {
|
|
283
323
|
setupHappyPath();
|
|
284
324
|
vi.mocked(FactoryConfigService.readConfig).mockRejectedValue(new Error('invalid JSON'));
|
|
285
325
|
await initializeWorkspaceWorktree(WORKSPACE_ID);
|
|
286
|
-
expect(
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
326
|
+
expect(runScriptConfigPersistenceService.syncWorkspaceCommandsFromFactoryConfig).toHaveBeenCalledWith({
|
|
327
|
+
workspaceId: WORKSPACE_ID,
|
|
328
|
+
factoryConfig: null,
|
|
329
|
+
persistWorkspaceCommands: expect.any(Function),
|
|
330
|
+
});
|
|
290
331
|
});
|
|
291
332
|
});
|
|
292
333
|
describe('factory setup script', () => {
|
|
@@ -386,6 +427,23 @@ describe('initializeWorkspaceWorktree', () => {
|
|
|
386
427
|
startupModePreset: 'non_interactive',
|
|
387
428
|
});
|
|
388
429
|
});
|
|
430
|
+
it('starts default session in plan mode when requested in creation metadata', async () => {
|
|
431
|
+
setupHappyPath();
|
|
432
|
+
vi.mocked(agentSessionAccessor.findByWorkspaceId).mockResolvedValue([
|
|
433
|
+
unsafeCoerce({ id: 'session-1', status: SessionStatus.IDLE, model: 'claude-sonnet' }),
|
|
434
|
+
]);
|
|
435
|
+
vi.mocked(workspaceAccessor.findById).mockResolvedValue(unsafeCoerce({
|
|
436
|
+
id: WORKSPACE_ID,
|
|
437
|
+
creationMetadata: {
|
|
438
|
+
startupModePreset: 'plan',
|
|
439
|
+
},
|
|
440
|
+
}));
|
|
441
|
+
await initializeWorkspaceWorktree(WORKSPACE_ID);
|
|
442
|
+
expect(sessionService.startSession).toHaveBeenCalledWith('session-1', {
|
|
443
|
+
initialPrompt: '',
|
|
444
|
+
startupModePreset: 'plan',
|
|
445
|
+
});
|
|
446
|
+
});
|
|
389
447
|
it('does not start session when no idle session exists', async () => {
|
|
390
448
|
setupHappyPath();
|
|
391
449
|
vi.mocked(agentSessionAccessor.findByWorkspaceId).mockResolvedValue([]);
|
|
@@ -407,6 +465,49 @@ describe('initializeWorkspaceWorktree', () => {
|
|
|
407
465
|
await initializeWorkspaceWorktree(WORKSPACE_ID);
|
|
408
466
|
expect(workspaceStateMachine.markReady).toHaveBeenCalled();
|
|
409
467
|
});
|
|
468
|
+
it('enqueues initial attachments from workspace creation metadata', async () => {
|
|
469
|
+
setupHappyPath();
|
|
470
|
+
vi.mocked(agentSessionAccessor.findByWorkspaceId).mockResolvedValue([
|
|
471
|
+
unsafeCoerce({ id: 'session-1', status: SessionStatus.IDLE, model: 'claude-sonnet' }),
|
|
472
|
+
]);
|
|
473
|
+
vi.mocked(workspaceAccessor.findById).mockResolvedValue(unsafeCoerce({
|
|
474
|
+
id: WORKSPACE_ID,
|
|
475
|
+
creationMetadata: {
|
|
476
|
+
initialAttachments: [
|
|
477
|
+
{
|
|
478
|
+
id: 'att-1',
|
|
479
|
+
name: 'evidence.png',
|
|
480
|
+
type: 'image/png',
|
|
481
|
+
size: 120,
|
|
482
|
+
data: 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB',
|
|
483
|
+
contentType: 'image',
|
|
484
|
+
},
|
|
485
|
+
],
|
|
486
|
+
},
|
|
487
|
+
}));
|
|
488
|
+
vi.mocked(sessionDomainService.enqueue).mockReturnValue({ position: 0 });
|
|
489
|
+
await initializeWorkspaceWorktree(WORKSPACE_ID);
|
|
490
|
+
expect(sessionDomainService.enqueue).toHaveBeenCalledWith('session-1', expect.objectContaining({
|
|
491
|
+
text: '',
|
|
492
|
+
attachments: [
|
|
493
|
+
expect.objectContaining({
|
|
494
|
+
id: 'att-1',
|
|
495
|
+
name: 'evidence.png',
|
|
496
|
+
}),
|
|
497
|
+
],
|
|
498
|
+
}));
|
|
499
|
+
expect(sessionDomainService.emitDelta).toHaveBeenCalledWith('session-1', expect.objectContaining({
|
|
500
|
+
type: 'message_state_changed',
|
|
501
|
+
userMessage: expect.objectContaining({
|
|
502
|
+
attachments: [
|
|
503
|
+
expect.objectContaining({
|
|
504
|
+
id: 'att-1',
|
|
505
|
+
}),
|
|
506
|
+
],
|
|
507
|
+
}),
|
|
508
|
+
}));
|
|
509
|
+
expect(workspaceAccessor.findById).toHaveBeenCalledTimes(1);
|
|
510
|
+
});
|
|
410
511
|
});
|
|
411
512
|
describe('GitHub issue prompt', () => {
|
|
412
513
|
it('enqueues GitHub issue prompt when workspace has linked issue', async () => {
|
|
@@ -565,7 +666,7 @@ describe('initializeWorkspaceWorktree', () => {
|
|
|
565
666
|
setupHappyPath();
|
|
566
667
|
vi.mocked(workspaceAccessor.update).mockRejectedValue(new Error('db error'));
|
|
567
668
|
await initializeWorkspaceWorktree(WORKSPACE_ID);
|
|
568
|
-
expect(worktreeLifecycleService.clearInitMode).toHaveBeenCalledWith(WORKSPACE_ID
|
|
669
|
+
expect(worktreeLifecycleService.clearInitMode).toHaveBeenCalledWith(WORKSPACE_ID);
|
|
569
670
|
});
|
|
570
671
|
it('marks workspace failed when workspace update throws', async () => {
|
|
571
672
|
setupHappyPath();
|
|
@@ -573,6 +674,24 @@ describe('initializeWorkspaceWorktree', () => {
|
|
|
573
674
|
await initializeWorkspaceWorktree(WORKSPACE_ID);
|
|
574
675
|
expect(workspaceStateMachine.markFailed).toHaveBeenCalledWith(WORKSPACE_ID, 'db update error');
|
|
575
676
|
});
|
|
677
|
+
it('waits for eager session start to settle before failure cleanup', async () => {
|
|
678
|
+
setupHappyPath();
|
|
679
|
+
vi.mocked(FactoryConfigService.readConfig).mockResolvedValue(unsafeCoerce({ scripts: { setup: './setup.sh', run: null, cleanup: null } }));
|
|
680
|
+
const startSessionDeferred = createDeferredPromise();
|
|
681
|
+
vi.mocked(sessionService.startSession).mockReturnValue(startSessionDeferred.promise);
|
|
682
|
+
vi.mocked(agentSessionAccessor.findByWorkspaceId).mockResolvedValue([
|
|
683
|
+
unsafeCoerce({ id: 'session-1', status: SessionStatus.IDLE, model: 'claude-sonnet' }),
|
|
684
|
+
]);
|
|
685
|
+
vi.mocked(startupScriptService.runStartupScript).mockRejectedValue(new Error('script boom'));
|
|
686
|
+
const initializationPromise = initializeWorkspaceWorktree(WORKSPACE_ID);
|
|
687
|
+
await Promise.resolve();
|
|
688
|
+
await Promise.resolve();
|
|
689
|
+
expect(sessionService.stopWorkspaceSessions).not.toHaveBeenCalled();
|
|
690
|
+
startSessionDeferred.resolve(undefined);
|
|
691
|
+
await initializationPromise;
|
|
692
|
+
expect(sessionService.stopWorkspaceSessions).toHaveBeenCalledWith(WORKSPACE_ID);
|
|
693
|
+
expect(workspaceStateMachine.markFailed).toHaveBeenCalledWith(WORKSPACE_ID, 'script boom');
|
|
694
|
+
});
|
|
576
695
|
});
|
|
577
696
|
describe('script priority', () => {
|
|
578
697
|
it('prefers factory setup script over project startup script', async () => {
|