factory-factory 0.3.2 → 0.3.3

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.
Files changed (219) hide show
  1. package/dist/client/assets/{_basePickBy-DXuH24ai.js → _basePickBy-0_GqMukI.js} +1 -1
  2. package/dist/client/assets/{_baseUniq-CslDyWeR.js → _baseUniq-BkDCIs_N.js} +1 -1
  3. package/dist/client/assets/{arc-2gvAyDbt.js → arc-BYBi6T58.js} +1 -1
  4. package/dist/client/assets/{architectureDiagram-VXUJARFQ-DgcFaiEM.js → architectureDiagram-VXUJARFQ-utRnH0EI.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-VD42YOAC-x5GBnWvh.js → blockDiagram-VD42YOAC-ke2uPDpN.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-YG6GDRKO-BH1ALhYh.js → c4Diagram-YG6GDRKO-DAt0t6eK.js} +1 -1
  7. package/dist/client/assets/channel-BA4I5_zc.js +1 -0
  8. package/dist/client/assets/{chunk-4BX2VUAB-BrzGnqT-.js → chunk-4BX2VUAB-D1vNGBo6.js} +1 -1
  9. package/dist/client/assets/{chunk-55IACEB6-l8A9_mQA.js → chunk-55IACEB6-BDwpH7UI.js} +1 -1
  10. package/dist/client/assets/{chunk-B4BG7PRW-BsAqXKe3.js → chunk-B4BG7PRW-DAM5zmSO.js} +1 -1
  11. package/dist/client/assets/{chunk-DI55MBZ5-IIbvvT0k.js → chunk-DI55MBZ5-CgmMeVp9.js} +1 -1
  12. package/dist/client/assets/{chunk-FMBD7UC4-DLu7thHk.js → chunk-FMBD7UC4-nijXNm9V.js} +1 -1
  13. package/dist/client/assets/{chunk-QN33PNHL-WRLtM-7j.js → chunk-QN33PNHL-GM5iQLPS.js} +1 -1
  14. package/dist/client/assets/{chunk-QZHKN3VN-Dsklvm2v.js → chunk-QZHKN3VN-CbOwrlLz.js} +1 -1
  15. package/dist/client/assets/{chunk-TZMSLE5B-D06U47VI.js → chunk-TZMSLE5B-D0eFaU6T.js} +1 -1
  16. package/dist/client/assets/classDiagram-2ON5EDUG-DHiY0J8v.js +1 -0
  17. package/dist/client/assets/classDiagram-v2-WZHVMYZB-DHiY0J8v.js +1 -0
  18. package/dist/client/assets/clone-C7QOkM1k.js +1 -0
  19. package/dist/client/assets/{cose-bilkent-S5V4N54A-BYd0MvfE.js → cose-bilkent-S5V4N54A-BAHIgVQk.js} +1 -1
  20. package/dist/client/assets/{dagre-6UL2VRFP-D-kPXmRT.js → dagre-6UL2VRFP-CNvHuwOI.js} +1 -1
  21. package/dist/client/assets/{diagram-PSM6KHXK-QIglBDlg.js → diagram-PSM6KHXK-726LBpxe.js} +1 -1
  22. package/dist/client/assets/{diagram-QEK2KX5R-CMd7cwDZ.js → diagram-QEK2KX5R-DQsnVN2A.js} +1 -1
  23. package/dist/client/assets/{diagram-S2PKOQOG-TfTgUpyH.js → diagram-S2PKOQOG-D_T0ifdw.js} +1 -1
  24. package/dist/client/assets/{erDiagram-Q2GNP2WA-DtuLC2xg.js → erDiagram-Q2GNP2WA-BmVDGu8M.js} +1 -1
  25. package/dist/client/assets/{flowDiagram-NV44I4VS-DfgrrhwS.js → flowDiagram-NV44I4VS-Z65JFfSc.js} +1 -1
  26. package/dist/client/assets/{ganttDiagram-JELNMOA3-D_dPspnH.js → ganttDiagram-JELNMOA3-BZ3yfDKP.js} +1 -1
  27. package/dist/client/assets/{gitGraphDiagram-NY62KEGX-DJsigQIR.js → gitGraphDiagram-NY62KEGX-faBi9oTt.js} +1 -1
  28. package/dist/client/assets/{graph-B9NXnAuJ.js → graph-DMDSMqaB.js} +1 -1
  29. package/dist/client/assets/{index-DY2IN4MN.js → index-D9ddlgEa.js} +6 -6
  30. package/dist/client/assets/{infoDiagram-WHAUD3N6-D5yAAuIK.js → infoDiagram-WHAUD3N6-CJU-Jxtx.js} +1 -1
  31. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-DMeR4Vy_.js → journeyDiagram-XKPGCS4Q-CIFki-iq.js} +1 -1
  32. package/dist/client/assets/{kanban-definition-3W4ZIXB7-xNNLjBQO.js → kanban-definition-3W4ZIXB7-DDuM9VeF.js} +1 -1
  33. package/dist/client/assets/{layout-Bv4qdz5g.js → layout-CnYzyA25.js} +1 -1
  34. package/dist/client/assets/{linear-DOse4wNy.js → linear-BoRrKhGP.js} +1 -1
  35. package/dist/client/assets/{mindmap-definition-VGOIOE7T-BjuQGPGv.js → mindmap-definition-VGOIOE7T-QhVqNLyz.js} +1 -1
  36. package/dist/client/assets/{pieDiagram-ADFJNKIX-VvsVA8GJ.js → pieDiagram-ADFJNKIX-BkK0cKA8.js} +1 -1
  37. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-oRc7Vk8X.js → quadrantDiagram-AYHSOK5B-CeFigc3p.js} +1 -1
  38. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-Dq3exCr2.js → requirementDiagram-UZGBJVZJ-KowHp3BW.js} +1 -1
  39. package/dist/client/assets/{sankeyDiagram-TZEHDZUN-Dzab26G_.js → sankeyDiagram-TZEHDZUN-D7CevVS2.js} +1 -1
  40. package/dist/client/assets/{sequenceDiagram-WL72ISMW-C0gbEvnf.js → sequenceDiagram-WL72ISMW-3mHDMyaP.js} +1 -1
  41. package/dist/client/assets/{stateDiagram-FKZM4ZOC-lFd4FBIQ.js → stateDiagram-FKZM4ZOC-h-G1xS2P.js} +1 -1
  42. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BGGNxhyR.js +1 -0
  43. package/dist/client/assets/{terminal-instance-BI_R5Gu9.js → terminal-instance-BbEVZkgm.js} +1 -1
  44. package/dist/client/assets/{timeline-definition-IT6M3QCI-DEWrwvzp.js → timeline-definition-IT6M3QCI-Cc2H2fvU.js} +1 -1
  45. package/dist/client/assets/{treemap-KMMF4GRG-5d3j9VOH.js → treemap-KMMF4GRG-BAjv-2_R.js} +1 -1
  46. package/dist/client/assets/{xychartDiagram-PRI3JC2R-uBZMdNdc.js → xychartDiagram-PRI3JC2R-CqgFJhi0.js} +1 -1
  47. package/dist/client/index.html +1 -1
  48. package/dist/src/backend/app-context.d.ts +3 -2
  49. package/dist/src/backend/app-context.d.ts.map +1 -1
  50. package/dist/src/backend/app-context.js +2 -1
  51. package/dist/src/backend/app-context.js.map +1 -1
  52. package/dist/src/backend/domains/github/github-cli/mappers.d.ts +1 -1
  53. package/dist/src/backend/domains/github/github-cli/mappers.d.ts.map +1 -1
  54. package/dist/src/backend/domains/github/github-cli/mappers.js +1 -1
  55. package/dist/src/backend/domains/github/github-cli/mappers.js.map +1 -1
  56. package/dist/src/backend/domains/github/github-cli/schemas.d.ts +6 -6
  57. package/dist/src/backend/domains/github/github-cli.service.d.ts +1 -1
  58. package/dist/src/backend/domains/github/github-cli.service.d.ts.map +1 -1
  59. package/dist/src/backend/domains/github/github-cli.service.js.map +1 -1
  60. package/dist/src/backend/domains/ratchet/bridges.d.ts +1 -1
  61. package/dist/src/backend/domains/ratchet/bridges.d.ts.map +1 -1
  62. package/dist/src/backend/domains/ratchet/ci-fixer.service.d.ts +1 -1
  63. package/dist/src/backend/domains/ratchet/ci-fixer.service.d.ts.map +1 -1
  64. package/dist/src/backend/domains/ratchet/ci-fixer.service.js.map +1 -1
  65. package/dist/src/backend/domains/ratchet/ci-fixer.service.test.js +1 -1
  66. package/dist/src/backend/domains/ratchet/ci-fixer.service.test.js.map +1 -1
  67. package/dist/src/backend/domains/ratchet/ci-monitor.service.js +1 -1
  68. package/dist/src/backend/domains/ratchet/ci-monitor.service.js.map +1 -1
  69. package/dist/src/backend/domains/ratchet/fixer-session.service.d.ts +1 -1
  70. package/dist/src/backend/domains/ratchet/fixer-session.service.d.ts.map +1 -1
  71. package/dist/src/backend/domains/ratchet/fixer-session.service.js +1 -1
  72. package/dist/src/backend/domains/ratchet/fixer-session.service.js.map +1 -1
  73. package/dist/src/backend/domains/ratchet/fixer-session.service.test.js +1 -1
  74. package/dist/src/backend/domains/ratchet/fixer-session.service.test.js.map +1 -1
  75. package/dist/src/backend/domains/ratchet/ratchet.service.d.ts +1 -1
  76. package/dist/src/backend/domains/ratchet/ratchet.service.d.ts.map +1 -1
  77. package/dist/src/backend/domains/ratchet/ratchet.service.js +1 -1
  78. package/dist/src/backend/domains/ratchet/ratchet.service.js.map +1 -1
  79. package/dist/src/backend/domains/ratchet/ratchet.service.test.js +1 -1
  80. package/dist/src/backend/domains/ratchet/ratchet.service.test.js.map +1 -1
  81. package/dist/src/backend/domains/ratchet/reconciliation.service.js +1 -1
  82. package/dist/src/backend/domains/ratchet/reconciliation.service.js.map +1 -1
  83. package/dist/src/backend/domains/run-script/run-script-state-machine.service.d.ts +1 -1
  84. package/dist/src/backend/domains/run-script/run-script-state-machine.service.d.ts.map +1 -1
  85. package/dist/src/backend/domains/run-script/run-script-state-machine.service.js.map +1 -1
  86. package/dist/src/backend/domains/run-script/run-script.service.d.ts +1 -1
  87. package/dist/src/backend/domains/session/data/session-data.service.d.ts +1 -1
  88. package/dist/src/backend/domains/session/data/session-data.service.d.ts.map +1 -1
  89. package/dist/src/backend/domains/session/data/session-data.service.js.map +1 -1
  90. package/dist/src/backend/domains/session/index.d.ts +1 -0
  91. package/dist/src/backend/domains/session/index.d.ts.map +1 -1
  92. package/dist/src/backend/domains/session/index.js +1 -0
  93. package/dist/src/backend/domains/session/index.js.map +1 -1
  94. package/dist/src/backend/domains/session/lifecycle/session.service.d.ts +9 -0
  95. package/dist/src/backend/domains/session/lifecycle/session.service.d.ts.map +1 -1
  96. package/dist/src/backend/domains/session/lifecycle/session.service.js +170 -2
  97. package/dist/src/backend/domains/session/lifecycle/session.service.js.map +1 -1
  98. package/dist/src/backend/domains/session/lifecycle/session.service.test.js +47 -1
  99. package/dist/src/backend/domains/session/lifecycle/session.service.test.js.map +1 -1
  100. package/dist/src/backend/domains/session/logging/acp-trace-logger.service.d.ts +15 -0
  101. package/dist/src/backend/domains/session/logging/acp-trace-logger.service.d.ts.map +1 -0
  102. package/dist/src/backend/domains/session/logging/acp-trace-logger.service.js +135 -0
  103. package/dist/src/backend/domains/session/logging/acp-trace-logger.service.js.map +1 -0
  104. package/dist/src/backend/domains/session/logging/acp-trace-logger.service.test.d.ts +2 -0
  105. package/dist/src/backend/domains/session/logging/acp-trace-logger.service.test.d.ts.map +1 -0
  106. package/dist/src/backend/domains/session/logging/acp-trace-logger.service.test.js +93 -0
  107. package/dist/src/backend/domains/session/logging/acp-trace-logger.service.test.js.map +1 -0
  108. package/dist/src/backend/domains/workspace/lifecycle/data.service.d.ts +1 -1
  109. package/dist/src/backend/domains/workspace/lifecycle/data.service.d.ts.map +1 -1
  110. package/dist/src/backend/domains/workspace/lifecycle/data.service.js.map +1 -1
  111. package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.d.ts +1 -1
  112. package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.d.ts.map +1 -1
  113. package/dist/src/backend/domains/workspace/lifecycle/state-machine.service.js.map +1 -1
  114. package/dist/src/backend/domains/workspace/query/workspace-query.service.d.ts +2 -2
  115. package/dist/src/backend/domains/workspace/query/workspace-query.service.d.ts.map +1 -1
  116. package/dist/src/backend/domains/workspace/query/workspace-query.service.js +1 -1
  117. package/dist/src/backend/domains/workspace/query/workspace-query.service.js.map +1 -1
  118. package/dist/src/backend/domains/workspace/state/flow-state.d.ts +1 -1
  119. package/dist/src/backend/domains/workspace/state/flow-state.d.ts.map +1 -1
  120. package/dist/src/backend/domains/workspace/state/flow-state.js +1 -1
  121. package/dist/src/backend/domains/workspace/state/flow-state.js.map +1 -1
  122. package/dist/src/backend/domains/workspace/state/flow-state.test.js +1 -1
  123. package/dist/src/backend/domains/workspace/state/flow-state.test.js.map +1 -1
  124. package/dist/src/backend/domains/workspace/state/init-policy.d.ts +1 -1
  125. package/dist/src/backend/domains/workspace/state/init-policy.d.ts.map +1 -1
  126. package/dist/src/backend/domains/workspace/state/kanban-state.d.ts +1 -1
  127. package/dist/src/backend/domains/workspace/state/kanban-state.d.ts.map +1 -1
  128. package/dist/src/backend/domains/workspace/state/kanban-state.js +1 -1
  129. package/dist/src/backend/domains/workspace/state/kanban-state.js.map +1 -1
  130. package/dist/src/backend/domains/workspace/worktree/worktree-init.test.js +1 -1
  131. package/dist/src/backend/domains/workspace/worktree/worktree-init.test.js.map +1 -1
  132. package/dist/src/backend/lib/session-summaries.d.ts +1 -1
  133. package/dist/src/backend/lib/session-summaries.d.ts.map +1 -1
  134. package/dist/src/backend/orchestration/data-backup.service.test.js +1 -1
  135. package/dist/src/backend/orchestration/data-backup.service.test.js.map +1 -1
  136. package/dist/src/backend/orchestration/event-collector.orchestrator.d.ts.map +1 -1
  137. package/dist/src/backend/orchestration/event-collector.orchestrator.js.map +1 -1
  138. package/dist/src/backend/orchestration/workspace-init.orchestrator.js +1 -1
  139. package/dist/src/backend/orchestration/workspace-init.orchestrator.js.map +1 -1
  140. package/dist/src/backend/orchestration/workspace-init.orchestrator.test.js +1 -1
  141. package/dist/src/backend/orchestration/workspace-init.orchestrator.test.js.map +1 -1
  142. package/dist/src/backend/resource_accessors/agent-session.accessor.d.ts +1 -1
  143. package/dist/src/backend/resource_accessors/agent-session.accessor.d.ts.map +1 -1
  144. package/dist/src/backend/resource_accessors/agent-session.accessor.js +1 -1
  145. package/dist/src/backend/resource_accessors/agent-session.accessor.js.map +1 -1
  146. package/dist/src/backend/resource_accessors/terminal-session.accessor.d.ts +1 -1
  147. package/dist/src/backend/resource_accessors/terminal-session.accessor.d.ts.map +1 -1
  148. package/dist/src/backend/resource_accessors/terminal-session.accessor.js.map +1 -1
  149. package/dist/src/backend/resource_accessors/workspace.accessor.d.ts +1 -1
  150. package/dist/src/backend/resource_accessors/workspace.accessor.d.ts.map +1 -1
  151. package/dist/src/backend/resource_accessors/workspace.accessor.js.map +1 -1
  152. package/dist/src/backend/server.d.ts.map +1 -1
  153. package/dist/src/backend/server.js +3 -1
  154. package/dist/src/backend/server.js.map +1 -1
  155. package/dist/src/backend/server.upgrade.test.js +4 -0
  156. package/dist/src/backend/server.upgrade.test.js.map +1 -1
  157. package/dist/src/backend/services/workspace-snapshot-store.service.d.ts +1 -1
  158. package/dist/src/backend/services/workspace-snapshot-store.service.d.ts.map +1 -1
  159. package/dist/src/backend/services/workspace-snapshot-store.service.test.js +1 -1
  160. package/dist/src/backend/services/workspace-snapshot-store.service.test.js.map +1 -1
  161. package/dist/src/backend/trpc/admin.trpc.d.ts +16 -16
  162. package/dist/src/backend/trpc/admin.trpc.js +1 -1
  163. package/dist/src/backend/trpc/admin.trpc.js.map +1 -1
  164. package/dist/src/backend/trpc/index.d.ts +24 -24
  165. package/dist/src/backend/trpc/session.trpc.d.ts +2 -2
  166. package/dist/src/backend/trpc/session.trpc.d.ts.map +1 -1
  167. package/dist/src/backend/trpc/session.trpc.js +1 -1
  168. package/dist/src/backend/trpc/session.trpc.js.map +1 -1
  169. package/dist/src/backend/trpc/workspace/run-script.trpc.d.ts +1 -1
  170. package/dist/src/backend/trpc/workspace.trpc.d.ts +6 -6
  171. package/dist/src/backend/trpc/workspace.trpc.d.ts.map +1 -1
  172. package/dist/src/backend/trpc/workspace.trpc.js +1 -1
  173. package/dist/src/backend/trpc/workspace.trpc.js.map +1 -1
  174. package/{packages/core/dist/shared → dist/src/shared/core}/ci-status.d.ts +1 -1
  175. package/dist/src/shared/core/ci-status.d.ts.map +1 -0
  176. package/dist/src/shared/core/ci-status.js.map +1 -0
  177. package/dist/src/shared/core/enums.d.ts.map +1 -0
  178. package/dist/src/shared/core/enums.js.map +1 -0
  179. package/{packages/core/dist → dist/src/shared/core}/index.d.ts +3 -3
  180. package/dist/src/shared/core/index.d.ts.map +1 -0
  181. package/{packages/core/dist → dist/src/shared/core}/index.js +3 -7
  182. package/dist/src/shared/core/index.js.map +1 -0
  183. package/{packages/core/dist/shared → dist/src/shared/core}/workspace-sidebar-status.d.ts +1 -1
  184. package/dist/src/shared/core/workspace-sidebar-status.d.ts.map +1 -0
  185. package/dist/src/shared/core/workspace-sidebar-status.js.map +1 -0
  186. package/dist/src/shared/schemas/export-data.schema.d.ts +38 -38
  187. package/dist/src/shared/schemas/export-data.schema.d.ts.map +1 -1
  188. package/dist/src/shared/schemas/export-data.schema.js +1 -1
  189. package/dist/src/shared/schemas/export-data.schema.js.map +1 -1
  190. package/dist/src/shared/session-runtime.d.ts +1 -1
  191. package/dist/src/shared/session-runtime.d.ts.map +1 -1
  192. package/dist/src/shared/workspace-sidebar-status.d.ts +1 -1
  193. package/dist/src/shared/workspace-sidebar-status.d.ts.map +1 -1
  194. package/dist/src/shared/workspace-sidebar-status.js +1 -1
  195. package/dist/src/shared/workspace-sidebar-status.js.map +1 -1
  196. package/dist/tsconfig.backend.tsbuildinfo +1 -1
  197. package/package.json +1 -4
  198. package/dist/client/assets/channel-C_n33uex.js +0 -1
  199. package/dist/client/assets/classDiagram-2ON5EDUG-ByvTr4wu.js +0 -1
  200. package/dist/client/assets/classDiagram-v2-WZHVMYZB-ByvTr4wu.js +0 -1
  201. package/dist/client/assets/clone-CVeCVXXl.js +0 -1
  202. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-C7liWkST.js +0 -1
  203. package/packages/core/dist/index.d.ts.map +0 -1
  204. package/packages/core/dist/index.js.map +0 -1
  205. package/packages/core/dist/shared/ci-status.d.ts.map +0 -1
  206. package/packages/core/dist/shared/ci-status.js.map +0 -1
  207. package/packages/core/dist/shared/workspace-sidebar-status.d.ts.map +0 -1
  208. package/packages/core/dist/shared/workspace-sidebar-status.js.map +0 -1
  209. package/packages/core/dist/types/enums.d.ts.map +0 -1
  210. package/packages/core/dist/types/enums.js.map +0 -1
  211. package/packages/core/dist/types/index.d.ts +0 -2
  212. package/packages/core/dist/types/index.d.ts.map +0 -1
  213. package/packages/core/dist/types/index.js +0 -2
  214. package/packages/core/dist/types/index.js.map +0 -1
  215. package/packages/core/package.json +0 -25
  216. /package/{packages/core/dist/shared → dist/src/shared/core}/ci-status.js +0 -0
  217. /package/{packages/core/dist/types → dist/src/shared/core}/enums.d.ts +0 -0
  218. /package/{packages/core/dist/types → dist/src/shared/core}/enums.js +0 -0
  219. /package/{packages/core/dist/shared → dist/src/shared/core}/workspace-sidebar-status.js +0 -0
@@ -1,21 +1,24 @@
1
- import { SessionStatus } from '@factory-factory/core';
2
1
  import { AcpEventTranslator, AcpPermissionBridge, acpRuntimeManager, } from '../../../../backend/domains/session/acp/index.js';
2
+ import { acpTraceLogger } from '../../../../backend/domains/session/logging/acp-trace-logger.service.js';
3
3
  import { sessionFileLogger } from '../../../../backend/domains/session/logging/session-file-logger.service.js';
4
4
  import { sessionDomainService } from '../../../../backend/domains/session/session-domain.service.js';
5
5
  import { createLogger } from '../../../../backend/services/logger.service.js';
6
6
  import { extractPlanText } from '../../../../shared/acp-protocol/plan-content.js';
7
7
  import { EMPTY_CHAT_BAR_CAPABILITIES } from '../../../../shared/chat-capabilities.js';
8
+ import { SessionStatus } from '../../../../shared/core/index.js';
8
9
  import { createInitialSessionRuntimeState, } from '../../../../shared/session-runtime.js';
9
10
  import { sessionPromptBuilder } from './session.prompt-builder.js';
10
11
  import { sessionRepository } from './session.repository.js';
11
12
  const logger = createLogger('session');
12
13
  const STALE_LOADING_RUNTIME_MAX_AGE_MS = 30_000;
14
+ const TERMINAL_TOOL_STATUSES = new Set(['completed', 'failed', 'cancelled']);
13
15
  class SessionService {
14
16
  repository;
15
17
  promptBuilder;
16
18
  acpEventTranslator = new AcpEventTranslator(logger);
17
19
  acpPermissionBridges = new Map();
18
20
  acpStreamState = new Map();
21
+ pendingAcpToolCalls = new Map();
19
22
  suppressAcpReplayForSession = new Set();
20
23
  workspaceBridge = null;
21
24
  sessionToWorkspace = new Map();
@@ -46,7 +49,18 @@ class SessionService {
46
49
  return;
47
50
  }
48
51
  const deltas = this.acpEventTranslator.translateSessionUpdate(update);
49
- for (const delta of deltas) {
52
+ if (deltas.length === 0) {
53
+ acpTraceLogger.log(sid, 'translated_delta', {
54
+ sessionUpdate: update.sessionUpdate,
55
+ deltaCount: 0,
56
+ });
57
+ }
58
+ for (const [index, delta] of deltas.entries()) {
59
+ acpTraceLogger.log(sid, 'translated_delta', {
60
+ sessionUpdate: update.sessionUpdate,
61
+ deltaIndex: index,
62
+ delta,
63
+ });
50
64
  this.handleAcpDelta(sid, delta);
51
65
  }
52
66
  return;
@@ -59,6 +73,10 @@ class SessionService {
59
73
  onSessionId: async (sid, providerSessionId) => {
60
74
  try {
61
75
  await this.repository.updateSession(sid, { providerSessionId });
76
+ acpTraceLogger.log(sid, 'runtime_metadata', {
77
+ type: 'provider_session_id',
78
+ providerSessionId,
79
+ });
62
80
  logger.debug('Updated session with ACP providerSessionId', {
63
81
  sessionId: sid,
64
82
  providerSessionId,
@@ -74,6 +92,7 @@ class SessionService {
74
92
  },
75
93
  onExit: async (sid, exitCode) => {
76
94
  this.acpStreamState.delete(sid);
95
+ this.pendingAcpToolCalls.delete(sid);
77
96
  this.suppressAcpReplayForSession.delete(sid);
78
97
  this.sessionToWorkspace.delete(sid);
79
98
  const b = this.acpPermissionBridges.get(sid);
@@ -81,6 +100,7 @@ class SessionService {
81
100
  b.cancelAll();
82
101
  this.acpPermissionBridges.delete(sid);
83
102
  }
103
+ acpTraceLogger.log(sid, 'runtime_exit', { exitCode });
84
104
  try {
85
105
  sessionDomainService.markProcessExit(sid, exitCode);
86
106
  const session = await this.repository.updateSession(sid, {
@@ -99,8 +119,15 @@ class SessionService {
99
119
  error: error instanceof Error ? error.message : String(error),
100
120
  });
101
121
  }
122
+ finally {
123
+ acpTraceLogger.closeSession(sid);
124
+ }
102
125
  },
103
126
  onError: (sid, error) => {
127
+ acpTraceLogger.log(sid, 'runtime_error', {
128
+ message: error.message,
129
+ stack: error.stack,
130
+ });
104
131
  logger.error('ACP client error', {
105
132
  sessionId: sid,
106
133
  error: error.message,
@@ -108,6 +135,7 @@ class SessionService {
108
135
  });
109
136
  },
110
137
  onAcpLog: (sid, payload) => {
138
+ acpTraceLogger.log(sid, 'raw_acp_event', payload);
111
139
  sessionFileLogger.log(sid, 'FROM_CLAUDE_CLI', payload);
112
140
  },
113
141
  };
@@ -119,6 +147,7 @@ class SessionService {
119
147
  delta.type !== 'slash_commands') {
120
148
  return;
121
149
  }
150
+ this.trackPendingAcpToolCalls(sid, delta);
122
151
  if (delta.type === 'config_options_update') {
123
152
  const acpHandle = acpRuntimeManager.getClient(sid);
124
153
  if (acpHandle) {
@@ -150,6 +179,140 @@ class SessionService {
150
179
  const order = sessionDomainService.appendClaudeEvent(sid, data);
151
180
  sessionDomainService.emitDelta(sid, { ...delta, order });
152
181
  }
182
+ trackPendingAcpToolCalls(sid, delta) {
183
+ if (delta.type === 'agent_message') {
184
+ this.trackPendingFromAgentMessage(sid, delta.data);
185
+ return;
186
+ }
187
+ if (delta.type === 'tool_progress') {
188
+ this.trackPendingFromToolProgress(sid, delta);
189
+ }
190
+ }
191
+ trackPendingFromAgentMessage(sid, data) {
192
+ if (data.type === 'stream_event') {
193
+ this.trackPendingFromToolUseStreamEvent(sid, data);
194
+ }
195
+ if (data.type !== 'user') {
196
+ return;
197
+ }
198
+ this.clearPendingFromToolResultMessage(sid, data);
199
+ }
200
+ trackPendingFromToolUseStreamEvent(sid, data) {
201
+ const streamEvent = data.event;
202
+ const contentBlock = streamEvent?.content_block;
203
+ const isToolUse = streamEvent?.type === 'content_block_start' && contentBlock?.type === 'tool_use';
204
+ if (!isToolUse) {
205
+ return;
206
+ }
207
+ const toolUseId = typeof contentBlock?.id === 'string' ? contentBlock.id : null;
208
+ if (!toolUseId) {
209
+ return;
210
+ }
211
+ const toolName = typeof contentBlock?.name === 'string' ? contentBlock.name : 'ACP Tool';
212
+ this.upsertPendingToolCall(sid, toolUseId, { toolName });
213
+ }
214
+ clearPendingFromToolResultMessage(sid, data) {
215
+ if (data.type !== 'user') {
216
+ return;
217
+ }
218
+ const content = data.message?.content;
219
+ if (!Array.isArray(content)) {
220
+ return;
221
+ }
222
+ for (const item of content) {
223
+ if (item.type === 'tool_result') {
224
+ this.removePendingToolCall(sid, item.tool_use_id);
225
+ }
226
+ }
227
+ }
228
+ trackPendingFromToolProgress(sid, progress) {
229
+ if (!progress.tool_use_id) {
230
+ return;
231
+ }
232
+ if (progress.acpStatus && TERMINAL_TOOL_STATUSES.has(progress.acpStatus)) {
233
+ this.removePendingToolCall(sid, progress.tool_use_id);
234
+ return;
235
+ }
236
+ this.upsertPendingToolCall(sid, progress.tool_use_id, {
237
+ toolName: progress.tool_name ?? 'ACP Tool',
238
+ acpKind: progress.acpKind,
239
+ acpLocations: progress.acpLocations,
240
+ });
241
+ }
242
+ upsertPendingToolCall(sid, toolUseId, update) {
243
+ const pendingById = this.pendingAcpToolCalls.get(sid) ?? new Map();
244
+ const existing = pendingById.get(toolUseId);
245
+ pendingById.set(toolUseId, {
246
+ toolUseId,
247
+ toolName: update.toolName || existing?.toolName || 'ACP Tool',
248
+ acpKind: update.acpKind ?? existing?.acpKind,
249
+ acpLocations: update.acpLocations ?? existing?.acpLocations,
250
+ });
251
+ this.pendingAcpToolCalls.set(sid, pendingById);
252
+ }
253
+ removePendingToolCall(sid, toolUseId) {
254
+ const pendingById = this.pendingAcpToolCalls.get(sid);
255
+ if (!pendingById) {
256
+ return;
257
+ }
258
+ pendingById.delete(toolUseId);
259
+ if (pendingById.size === 0) {
260
+ this.pendingAcpToolCalls.delete(sid);
261
+ }
262
+ }
263
+ finalizeOrphanedToolCalls(sid, reason) {
264
+ const pendingById = this.pendingAcpToolCalls.get(sid);
265
+ if (!pendingById || pendingById.size === 0) {
266
+ this.pendingAcpToolCalls.delete(sid);
267
+ return;
268
+ }
269
+ const toolUseIds = [...pendingById.keys()];
270
+ logger.warn('Finalizing orphaned ACP tool calls without terminal status', {
271
+ sessionId: sid,
272
+ reason,
273
+ count: toolUseIds.length,
274
+ toolUseIds,
275
+ });
276
+ for (const pending of pendingById.values()) {
277
+ const syntheticProgress = {
278
+ type: 'tool_progress',
279
+ tool_use_id: pending.toolUseId,
280
+ tool_name: pending.toolName,
281
+ acpStatus: 'failed',
282
+ elapsed_time_seconds: 0,
283
+ ...(pending.acpKind ? { acpKind: pending.acpKind } : {}),
284
+ ...(pending.acpLocations ? { acpLocations: pending.acpLocations } : {}),
285
+ };
286
+ this.handleAcpDelta(sid, syntheticProgress);
287
+ const syntheticResult = {
288
+ type: 'agent_message',
289
+ data: {
290
+ type: 'user',
291
+ message: {
292
+ role: 'user',
293
+ content: [
294
+ {
295
+ type: 'tool_result',
296
+ tool_use_id: pending.toolUseId,
297
+ content: `Tool call did not receive a terminal ACP update (${reason}). Marked as failed locally.`,
298
+ is_error: true,
299
+ },
300
+ ],
301
+ },
302
+ },
303
+ };
304
+ this.handleAcpDelta(sid, syntheticResult);
305
+ acpTraceLogger.log(sid, 'translated_delta', {
306
+ sessionUpdate: 'synthetic_orphan_tool_call',
307
+ delta: syntheticProgress,
308
+ });
309
+ acpTraceLogger.log(sid, 'translated_delta', {
310
+ sessionUpdate: 'synthetic_orphan_tool_call',
311
+ delta: syntheticResult,
312
+ });
313
+ }
314
+ this.pendingAcpToolCalls.delete(sid);
315
+ }
153
316
  handleAcpUserMessageChunk(sid, text) {
154
317
  this.maybeLiftReplaySuppression(sid);
155
318
  if (this.suppressAcpReplayForSession.has(sid)) {
@@ -347,6 +510,7 @@ class SessionService {
347
510
  updatedAt: new Date().toISOString(),
348
511
  });
349
512
  this.acpStreamState.delete(sessionId);
513
+ this.pendingAcpToolCalls.delete(sessionId);
350
514
  this.suppressAcpReplayForSession.delete(sessionId);
351
515
  const acpBridge = this.acpPermissionBridges.get(sessionId);
352
516
  if (acpBridge) {
@@ -383,6 +547,7 @@ class SessionService {
383
547
  sessionId,
384
548
  ...(stopClientFailed ? { runtimeStopFailed: true } : {}),
385
549
  });
550
+ acpTraceLogger.closeSession(sessionId);
386
551
  }
387
552
  }
388
553
  async loadSessionForStop(sessionId) {
@@ -595,6 +760,7 @@ class SessionService {
595
760
  }
596
761
  async sendAcpMessage(sessionId, content) {
597
762
  const workspaceId = this.sessionToWorkspace.get(sessionId);
763
+ this.pendingAcpToolCalls.set(sessionId, new Map());
598
764
  sessionDomainService.setRuntimeSnapshot(sessionId, {
599
765
  phase: 'running',
600
766
  processState: 'alive',
@@ -606,6 +772,7 @@ class SessionService {
606
772
  }
607
773
  try {
608
774
  const result = await acpRuntimeManager.sendPrompt(sessionId, content);
775
+ this.finalizeOrphanedToolCalls(sessionId, `stop_reason:${result.stopReason}`);
609
776
  sessionDomainService.setRuntimeSnapshot(sessionId, {
610
777
  phase: 'idle',
611
778
  processState: 'alive',
@@ -615,6 +782,7 @@ class SessionService {
615
782
  return result.stopReason;
616
783
  }
617
784
  catch (error) {
785
+ this.finalizeOrphanedToolCalls(sessionId, 'prompt_error');
618
786
  sessionDomainService.setRuntimeSnapshot(sessionId, {
619
787
  phase: 'error',
620
788
  processState: 'alive',
@@ -1 +1 @@
1
- {"version":3,"file":"session.service.js","sourceRoot":"","sources":["../../../../../../src/backend/domains/session/lifecycle/session.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.service.js","sourceRoot":"","sources":["../../../../../../src/backend/domains/session/lifecycle/session.service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { SessionStatus } from '@factory-factory/core';
2
1
  import { beforeEach, describe, expect, it, vi } from 'vitest';
3
2
  import { sessionDomainService } from '../../../../backend/domains/session/session-domain.service.js';
3
+ import { SessionStatus } from '../../../../shared/core/index.js';
4
4
  import { unsafeCoerce } from '../../../../test-utils/unsafe-coerce.js';
5
5
  vi.mock('@/backend/services/logger.service', () => ({
6
6
  createLogger: () => ({
@@ -887,6 +887,52 @@ describe('SessionService', () => {
887
887
  expect(acpRuntimeManager.setSessionModel).toHaveBeenCalledWith('session-1', 'claude-sonnet-4-5');
888
888
  expect(acpRuntimeManager.setConfigOption).not.toHaveBeenCalled();
889
889
  });
890
+ it('finalizes orphaned ACP tool calls when prompt ends without terminal updates', async () => {
891
+ const pendingToolCalls = sessionService.pendingAcpToolCalls;
892
+ vi.mocked(acpRuntimeManager.sendPrompt).mockImplementation(() => {
893
+ pendingToolCalls.set('session-1', new Map([
894
+ [
895
+ 'call-1',
896
+ {
897
+ toolUseId: 'call-1',
898
+ toolName: 'Run pwd',
899
+ acpKind: 'execute',
900
+ },
901
+ ],
902
+ ]));
903
+ return Promise.resolve({ stopReason: 'end_turn' });
904
+ });
905
+ const emitDeltaSpy = vi.spyOn(sessionDomainService, 'emitDelta');
906
+ const appendClaudeEventSpy = vi
907
+ .spyOn(sessionDomainService, 'appendClaudeEvent')
908
+ .mockReturnValue(77);
909
+ await sessionService.sendAcpMessage('session-1', 'hello');
910
+ expect(emitDeltaSpy).toHaveBeenCalledWith('session-1', expect.objectContaining({
911
+ type: 'tool_progress',
912
+ tool_use_id: 'call-1',
913
+ tool_name: 'Run pwd',
914
+ elapsed_time_seconds: 0,
915
+ }));
916
+ expect(appendClaudeEventSpy).toHaveBeenCalledWith('session-1', expect.objectContaining({
917
+ type: 'user',
918
+ message: expect.objectContaining({
919
+ content: [
920
+ expect.objectContaining({
921
+ type: 'tool_result',
922
+ tool_use_id: 'call-1',
923
+ is_error: true,
924
+ }),
925
+ ],
926
+ }),
927
+ }));
928
+ expect(pendingToolCalls.has('session-1')).toBe(false);
929
+ });
930
+ it('does not synthesize tool call completion when no ACP tool calls are pending', async () => {
931
+ vi.mocked(acpRuntimeManager.sendPrompt).mockResolvedValue({ stopReason: 'end_turn' });
932
+ const appendClaudeEventSpy = vi.spyOn(sessionDomainService, 'appendClaudeEvent');
933
+ await sessionService.sendAcpMessage('session-1', 'hello');
934
+ expect(appendClaudeEventSpy).not.toHaveBeenCalled();
935
+ });
890
936
  it('avoids redundant session DB lookups during startSession', async () => {
891
937
  const session = unsafeCoerce({
892
938
  id: 'session-1',