ds-harness-remote 0.5.7 → 0.5.10

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 (234) hide show
  1. package/dist/acp/adapter.d.ts +1 -1
  2. package/dist/acp/adapter.d.ts.map +1 -1
  3. package/dist/acp/adapters/antigravity/transcript-loader.d.ts.map +1 -1
  4. package/dist/acp/adapters/antigravity/transcript-loader.js +4 -1
  5. package/dist/acp/adapters/antigravity/transcript-loader.js.map +1 -1
  6. package/dist/acp/adapters/claude-history.d.ts +3 -0
  7. package/dist/acp/adapters/claude-history.d.ts.map +1 -0
  8. package/dist/acp/adapters/claude-history.js +118 -0
  9. package/dist/acp/adapters/claude-history.js.map +1 -0
  10. package/dist/acp/adapters/claude-process.d.ts +21 -0
  11. package/dist/acp/adapters/claude-process.d.ts.map +1 -0
  12. package/dist/acp/adapters/claude-process.js +147 -0
  13. package/dist/acp/adapters/claude-process.js.map +1 -0
  14. package/dist/acp/adapters/cursor-process.d.ts +9 -4
  15. package/dist/acp/adapters/cursor-process.d.ts.map +1 -1
  16. package/dist/acp/adapters/cursor-process.js +31 -3
  17. package/dist/acp/adapters/cursor-process.js.map +1 -1
  18. package/dist/acp/adapters/opencode-process.d.ts +67 -0
  19. package/dist/acp/adapters/opencode-process.d.ts.map +1 -0
  20. package/dist/acp/adapters/opencode-process.js +272 -0
  21. package/dist/acp/adapters/opencode-process.js.map +1 -0
  22. package/dist/acp/adapters/opencode.d.ts +8 -0
  23. package/dist/acp/adapters/opencode.d.ts.map +1 -0
  24. package/dist/acp/adapters/opencode.js +8 -0
  25. package/dist/acp/adapters/opencode.js.map +1 -0
  26. package/dist/acp/adapters/pi-process.d.ts +42 -0
  27. package/dist/acp/adapters/pi-process.d.ts.map +1 -0
  28. package/dist/acp/adapters/pi-process.js +410 -0
  29. package/dist/acp/adapters/pi-process.js.map +1 -0
  30. package/dist/acp/gateway.d.ts +10 -0
  31. package/dist/acp/gateway.d.ts.map +1 -1
  32. package/dist/acp/gateway.js +344 -103
  33. package/dist/acp/gateway.js.map +1 -1
  34. package/dist/acp/method-policy.d.ts +19 -19
  35. package/dist/acp/method-policy.js +5 -5
  36. package/dist/acp/method-policy.js.map +1 -1
  37. package/dist/acp/pi-tool-result.d.ts +9 -0
  38. package/dist/acp/pi-tool-result.d.ts.map +1 -0
  39. package/dist/acp/pi-tool-result.js +22 -0
  40. package/dist/acp/pi-tool-result.js.map +1 -0
  41. package/dist/acp/virtual-catalog.d.ts +50 -0
  42. package/dist/acp/virtual-catalog.d.ts.map +1 -0
  43. package/dist/acp/virtual-catalog.js +103 -0
  44. package/dist/acp/virtual-catalog.js.map +1 -0
  45. package/dist/acp/virtual-contract.d.ts +165 -0
  46. package/dist/acp/virtual-contract.d.ts.map +1 -0
  47. package/dist/acp/virtual-contract.js +216 -0
  48. package/dist/acp/virtual-contract.js.map +1 -0
  49. package/dist/acp/virtual-event-carrier.d.ts +50 -0
  50. package/dist/acp/virtual-event-carrier.d.ts.map +1 -0
  51. package/dist/acp/virtual-event-carrier.js +222 -0
  52. package/dist/acp/virtual-event-carrier.js.map +1 -0
  53. package/dist/acp/virtual-harness.d.ts +13 -112
  54. package/dist/acp/virtual-harness.d.ts.map +1 -1
  55. package/dist/acp/virtual-harness.js +129 -911
  56. package/dist/acp/virtual-harness.js.map +1 -1
  57. package/dist/acp/virtual-live.d.ts +78 -0
  58. package/dist/acp/virtual-live.d.ts.map +1 -0
  59. package/dist/acp/virtual-live.js +513 -0
  60. package/dist/acp/virtual-live.js.map +1 -0
  61. package/dist/acp/workspace-tools.js +2 -2
  62. package/dist/acp/workspace-tools.js.map +1 -1
  63. package/dist/acp.d.ts.map +1 -1
  64. package/dist/acp.js +1 -0
  65. package/dist/acp.js.map +1 -1
  66. package/dist/client/header.d.ts +10 -0
  67. package/dist/client/header.d.ts.map +1 -0
  68. package/dist/client/header.js +169 -0
  69. package/dist/client/header.js.map +1 -0
  70. package/dist/client/icons.d.ts +3 -0
  71. package/dist/client/icons.d.ts.map +1 -0
  72. package/dist/client/icons.js +3 -0
  73. package/dist/client/icons.js.map +1 -0
  74. package/dist/client/navigation.d.ts +5 -0
  75. package/dist/client/navigation.d.ts.map +1 -0
  76. package/dist/client/navigation.js +30 -0
  77. package/dist/client/navigation.js.map +1 -0
  78. package/dist/client/presentation.d.ts +17 -0
  79. package/dist/client/presentation.d.ts.map +1 -0
  80. package/dist/client/presentation.js +208 -0
  81. package/dist/client/presentation.js.map +1 -0
  82. package/dist/client/progress.d.ts +10 -0
  83. package/dist/client/progress.d.ts.map +1 -0
  84. package/dist/client/progress.js +82 -0
  85. package/dist/client/progress.js.map +1 -0
  86. package/dist/client/settings.d.ts +10 -0
  87. package/dist/client/settings.d.ts.map +1 -0
  88. package/dist/client/settings.js +335 -0
  89. package/dist/client/settings.js.map +1 -0
  90. package/dist/client/shell.d.ts +6 -0
  91. package/dist/client/shell.d.ts.map +1 -0
  92. package/dist/client/shell.js +128 -0
  93. package/dist/client/shell.js.map +1 -0
  94. package/dist/client/types.d.ts +264 -0
  95. package/dist/client/types.d.ts.map +1 -0
  96. package/dist/client/types.js +2 -0
  97. package/dist/client/types.js.map +1 -0
  98. package/dist/client/workspaces.d.ts +11 -0
  99. package/dist/client/workspaces.d.ts.map +1 -0
  100. package/dist/client/workspaces.js +1179 -0
  101. package/dist/client/workspaces.js.map +1 -0
  102. package/dist/client-capabilities.d.ts +6 -0
  103. package/dist/client-capabilities.d.ts.map +1 -0
  104. package/dist/client-capabilities.js +88 -0
  105. package/dist/client-capabilities.js.map +1 -0
  106. package/dist/client-codex-streams.d.ts +23 -0
  107. package/dist/client-codex-streams.d.ts.map +1 -0
  108. package/dist/client-codex-streams.js +156 -0
  109. package/dist/client-codex-streams.js.map +1 -0
  110. package/dist/client-connection.d.ts +38 -0
  111. package/dist/client-connection.d.ts.map +1 -0
  112. package/dist/client-connection.js +210 -0
  113. package/dist/client-connection.js.map +1 -0
  114. package/dist/client-control.d.ts +48 -0
  115. package/dist/client-control.d.ts.map +1 -0
  116. package/dist/client-control.js +273 -0
  117. package/dist/client-control.js.map +1 -0
  118. package/dist/client-locale.d.ts +8 -0
  119. package/dist/client-locale.d.ts.map +1 -1
  120. package/dist/client-locale.js +16 -0
  121. package/dist/client-locale.js.map +1 -1
  122. package/dist/client-runtime-contract.d.ts +161 -0
  123. package/dist/client-runtime-contract.d.ts.map +1 -0
  124. package/dist/client-runtime-contract.js +127 -0
  125. package/dist/client-runtime-contract.js.map +1 -0
  126. package/dist/client-runtime.d.ts +24 -126
  127. package/dist/client-runtime.d.ts.map +1 -1
  128. package/dist/client-runtime.js +171 -867
  129. package/dist/client-runtime.js.map +1 -1
  130. package/dist/client-secure-transport.d.ts +1 -0
  131. package/dist/client-secure-transport.d.ts.map +1 -1
  132. package/dist/client-secure-transport.js +35 -16
  133. package/dist/client-secure-transport.js.map +1 -1
  134. package/dist/client-workspace-queries.d.ts +12 -0
  135. package/dist/client-workspace-queries.d.ts.map +1 -0
  136. package/dist/client-workspace-queries.js +66 -0
  137. package/dist/client-workspace-queries.js.map +1 -0
  138. package/dist/client.d.ts.map +1 -1
  139. package/dist/client.github.js +2091 -1896
  140. package/dist/client.js +2091 -1896
  141. package/dist/client.js.map +1 -1
  142. package/dist/codex/domain.d.ts.map +1 -1
  143. package/dist/codex/domain.js +67 -46
  144. package/dist/codex/domain.js.map +1 -1
  145. package/dist/codex/method-policy.d.ts +9 -9
  146. package/dist/codex/virtual-catalog.d.ts +90 -0
  147. package/dist/codex/virtual-catalog.d.ts.map +1 -0
  148. package/dist/codex/virtual-catalog.js +317 -0
  149. package/dist/codex/virtual-catalog.js.map +1 -0
  150. package/dist/codex/virtual-contract.d.ts +96 -0
  151. package/dist/codex/virtual-contract.d.ts.map +1 -0
  152. package/dist/codex/virtual-contract.js +192 -0
  153. package/dist/codex/virtual-contract.js.map +1 -0
  154. package/dist/codex/virtual-event-carrier.d.ts +52 -0
  155. package/dist/codex/virtual-event-carrier.d.ts.map +1 -0
  156. package/dist/codex/virtual-event-carrier.js +212 -0
  157. package/dist/codex/virtual-event-carrier.js.map +1 -0
  158. package/dist/codex/virtual-harness.d.ts +16 -117
  159. package/dist/codex/virtual-harness.d.ts.map +1 -1
  160. package/dist/codex/virtual-harness.js +123 -1909
  161. package/dist/codex/virtual-harness.js.map +1 -1
  162. package/dist/codex/virtual-history.d.ts +74 -0
  163. package/dist/codex/virtual-history.d.ts.map +1 -0
  164. package/dist/codex/virtual-history.js +546 -0
  165. package/dist/codex/virtual-history.js.map +1 -0
  166. package/dist/codex/virtual-live.d.ts +75 -0
  167. package/dist/codex/virtual-live.d.ts.map +1 -0
  168. package/dist/codex/virtual-live.js +563 -0
  169. package/dist/codex/virtual-live.js.map +1 -0
  170. package/dist/codex/virtual-values.d.ts +29 -0
  171. package/dist/codex/virtual-values.d.ts.map +1 -0
  172. package/dist/codex/virtual-values.js +75 -0
  173. package/dist/codex/virtual-values.js.map +1 -0
  174. package/dist/config.js +4 -4
  175. package/dist/config.js.map +1 -1
  176. package/dist/control-runtime.js +2 -2
  177. package/dist/control-runtime.js.map +1 -1
  178. package/dist/harness-remote-bridge.d.ts +2 -1
  179. package/dist/harness-remote-bridge.d.ts.map +1 -1
  180. package/dist/harness-remote-bridge.js +13 -5
  181. package/dist/harness-remote-bridge.js.map +1 -1
  182. package/dist/index.d.ts.map +1 -1
  183. package/dist/index.js +23304 -15332
  184. package/dist/index.js.map +4 -4
  185. package/dist/plugin-route-dispatcher.d.ts +2 -2
  186. package/dist/plugin-route-dispatcher.d.ts.map +1 -1
  187. package/dist/plugin-route-dispatcher.js +2 -2
  188. package/dist/plugin-route-dispatcher.js.map +1 -1
  189. package/dist/remote-terminal-controller.d.ts +90 -0
  190. package/dist/remote-terminal-controller.d.ts.map +1 -0
  191. package/dist/remote-terminal-controller.js +494 -0
  192. package/dist/remote-terminal-controller.js.map +1 -0
  193. package/dist/remote-terminal-provider.d.ts +46 -0
  194. package/dist/remote-terminal-provider.d.ts.map +1 -0
  195. package/dist/remote-terminal-provider.js +147 -0
  196. package/dist/remote-terminal-provider.js.map +1 -0
  197. package/dist/remote-typert-gateway.js +7 -1
  198. package/dist/remote-typert-gateway.js.map +1 -1
  199. package/dist/server-api.d.ts +3 -0
  200. package/dist/server-api.d.ts.map +1 -1
  201. package/dist/server-api.js +24 -9
  202. package/dist/server-api.js.map +1 -1
  203. package/dist/server-connection.d.ts +1 -0
  204. package/dist/server-connection.d.ts.map +1 -1
  205. package/dist/server-connection.js +8 -1
  206. package/dist/server-connection.js.map +1 -1
  207. package/dist/service.d.ts +1 -1
  208. package/dist/service.d.ts.map +1 -1
  209. package/dist/service.js +15 -8
  210. package/dist/service.js.map +1 -1
  211. package/dist/terminal-carrier-compat.d.ts +14 -0
  212. package/dist/terminal-carrier-compat.d.ts.map +1 -0
  213. package/dist/terminal-carrier-compat.js +259 -0
  214. package/dist/terminal-carrier-compat.js.map +1 -0
  215. package/dist/terminal-policy.d.ts +6 -0
  216. package/dist/terminal-policy.d.ts.map +1 -1
  217. package/dist/terminal-policy.js +24 -6
  218. package/dist/terminal-policy.js.map +1 -1
  219. package/dist/typert-gateway-contract.d.ts +6 -1
  220. package/dist/typert-gateway-contract.d.ts.map +1 -1
  221. package/dist/typert-gateway-switch.d.ts +2 -1
  222. package/dist/typert-gateway-switch.d.ts.map +1 -1
  223. package/dist/typert-gateway-switch.js +39 -18
  224. package/dist/typert-gateway-switch.js.map +1 -1
  225. package/dist/version.d.ts +1 -1
  226. package/dist/version.d.ts.map +1 -1
  227. package/dist/version.js +1 -1
  228. package/dist/version.js.map +1 -1
  229. package/dist/workspace-bridge.d.ts +6 -89
  230. package/dist/workspace-bridge.d.ts.map +1 -1
  231. package/dist/workspace-bridge.js +37 -294
  232. package/dist/workspace-bridge.js.map +1 -1
  233. package/dsh-plugin.json +1 -1
  234. package/package.json +24 -20
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-catalog.js","sourceRoot":"","sources":["../../src/acp/virtual-catalog.ts"],"names":[],"mappings":"AAEA,MAAM,uBAAuB,GAAG,aAAa,CAAA;AAE7C,MAAM,oBAAoB,GAAG,kBAAkB,CAAA;AAE/C,MAAM,yBAAyB,GAAG,eAAe,CAAA;AAEjD,MAAM,eAAe,GAAG,QAAQ,CAAA;AAEhC,MAAM,YAAY,GAAG,QAAQ,CAAA;AAE7B,MAAM,iBAAiB,GAAG,UAAU,CAAA;AAEpC,MAAM,cAAc,GAAG,UAAU,CAAA;AAYjC,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,OAAqD;IACnG,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACtK,MAAM,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,uBAAuB,CAAA;IAC7K,OAAO,GAAG,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,OAAqD,EAAE,KAAc;IACxH,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACpC,MAAM,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IACjF,OAAO;QACL,WAAW,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC;QAC7C,IAAI;QACJ,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAA;AACH,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAqB,EACrB,OAAqD,EACrD,MAAoB;IAEpB,IAAI,MAAM,EAAE,cAAc,KAAK,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,OAAO,KAAK;qBACT,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;qBACzE,GAAG,CAAC,IAAI,CAAC,EAAE;oBACV,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;oBACnE,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;wBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;oBAChF,OAAO,IAAI,CAAA;gBACb,CAAC,CAAC,CAAA;YACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,KAAK,IAAI;gBAAE,MAAM,KAAK,CAAA;YACjC,wFAAwF;QAC1F,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,WAAmB,EAAE,OAAqD;IAChH,MAAM,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,uBAAuB,CAAA;IAC7K,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAA;IACrD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QACjE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAA6B;IAC3D,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAA;AACH,CAAC;AAkBD,MAAM,aAAa,GAAmB;IACpC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5B,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB,EAAE;IACtD,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB,EAAE;IACtD,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE;CAC3C,CAAA;AAED,MAAM,eAAe,GAAmB;IACtC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;CACrC,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,UAAwD,QAAQ;IAM3F,MAAM,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAA;IACnJ,MAAM,IAAI,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAA;IACjI,MAAM,MAAM,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAA;IACnG,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,eAAe,CAAA;IACrD,OAAO;QACL,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE;QAC1C,iBAAiB,EAAE,CAAC,QAAQ,CAAC;QAC7B,MAAM,EAAE,CAAC;gBACP,EAAE,EAAE,QAAQ;gBACZ,IAAI;gBACJ,MAAM;aACP,CAAC;QACF,QAAQ,EAAE,EAAE;KACb,CAAA;AACH,CAAC"}
@@ -0,0 +1,165 @@
1
+ import type { AcpSessionModels, AgentAcpFrameData, AgentAcpStreamClosedData, AgentAcpStreamOpenParams } from '@dsh-remote/protocol';
2
+ import { ACP_TOOL_CALL_ENDPOINTS } from '@dsh-remote/protocol';
3
+ import type { TypertRpcResult } from '../typert-gateway-contract.js';
4
+ import type { AcpImage } from './image-content.js';
5
+ import type { AcpModelSelection } from './virtual-catalog.js';
6
+ export type JsonRecord = Record<string, unknown>;
7
+ export type PiTurnOutcome = {
8
+ kind: 'completed';
9
+ } | {
10
+ kind: 'max-tokens';
11
+ } | {
12
+ kind: 'aborted';
13
+ reason: {
14
+ kind: 'user' | 'disposed';
15
+ };
16
+ } | {
17
+ kind: 'error';
18
+ error: {
19
+ code: string;
20
+ message: string;
21
+ };
22
+ };
23
+ export declare function piStreamOutcome(reason: AgentAcpStreamClosedData['reason']): PiTurnOutcome;
24
+ export declare function piPromptOutcome(kind: string, update: JsonRecord): PiTurnOutcome;
25
+ export interface AcpSessionState {
26
+ sessionId: string;
27
+ acpSessionId: string;
28
+ cwd: string;
29
+ title?: string;
30
+ titleOverridden?: boolean;
31
+ blank: boolean;
32
+ running: boolean;
33
+ createdAt: number;
34
+ updatedAt: number;
35
+ events: Array<{
36
+ type: 'event';
37
+ event: NativeEvent;
38
+ }>;
39
+ }
40
+ export interface NativeEvent {
41
+ type: string;
42
+ seq: number;
43
+ time: number;
44
+ data: unknown;
45
+ surfaceOp?: 'append' | {
46
+ op: 'replace';
47
+ start: number;
48
+ end: number;
49
+ };
50
+ }
51
+ interface AssistantStreamAttempt {
52
+ attemptId: string;
53
+ startedAfterSeq: number;
54
+ nextIndex: number;
55
+ stream: Array<{
56
+ type: 'chunk';
57
+ time: number;
58
+ chunk: JsonRecord;
59
+ }>;
60
+ }
61
+ export interface FollowState {
62
+ sessionId: string;
63
+ acpSessionId: string;
64
+ queue: AsyncValueQueue;
65
+ nextSeq: number;
66
+ turn: number;
67
+ stepOpen: boolean;
68
+ streamActive: boolean;
69
+ blockIndex?: number;
70
+ reasoningBlockIndex?: number;
71
+ assistantStreamRevision: number;
72
+ assistantAttempt?: AssistantStreamAttempt;
73
+ accumulatedText: string;
74
+ activeToolCalls: Set<string>;
75
+ piToolOutputs: Map<string, {
76
+ text: string;
77
+ overflow: boolean;
78
+ }>;
79
+ piToolCalls: Map<string, {
80
+ name: string;
81
+ input?: unknown;
82
+ }>;
83
+ piStep?: number;
84
+ piAfterTools?: boolean;
85
+ piReasoning?: string;
86
+ close?: () => Promise<void>;
87
+ }
88
+ export interface PendingApproval {
89
+ requestHandle: string;
90
+ sessionId: string;
91
+ }
92
+ export interface AcpClientLike {
93
+ sessionModels?(sessionId: string, backend: "antigravity" | "pi", signal?: AbortSignal): Promise<AcpSessionModels>;
94
+ selectModel?(sessionId: string, backend: "antigravity" | "pi", selection: AcpModelSelection, signal?: AbortSignal): Promise<AcpModelSelection>;
95
+ workspaceToolCall?(sessionId: string, backend: "cursor" | "antigravity" | "pi" | "opencode", endpoint: typeof ACP_TOOL_CALL_ENDPOINTS[number], args: JsonRecord, signal?: AbortSignal): Promise<unknown>;
96
+ createSession(cwd: string, mode?: "agent" | "plan" | "ask", backend?: "cursor" | "antigravity" | "pi" | "opencode", signal?: AbortSignal): Promise<{
97
+ sessionId: string;
98
+ cwd?: string;
99
+ }>;
100
+ prompt(sessionId: string, text: string, signal?: AbortSignal, images?: AcpImage[], backend?: "cursor" | "antigravity" | "pi" | "opencode"): Promise<unknown>;
101
+ cancel(sessionId: string, signal?: AbortSignal): Promise<unknown>;
102
+ listDirectory(path: string, signal?: AbortSignal): Promise<unknown>;
103
+ listWorkspaces?(backend?: string, signal?: AbortSignal): Promise<Array<{
104
+ path: string;
105
+ title?: string;
106
+ sessionCount?: number;
107
+ }>>;
108
+ listSessions?(path: string, backend?: string, limit?: number, signal?: AbortSignal): Promise<Array<{
109
+ conversationId: string;
110
+ title: string;
111
+ createdAt: number;
112
+ updatedAt: number;
113
+ }>>;
114
+ loadSessionHistory?(sessionId: string, backend?: string, signal?: AbortSignal): Promise<unknown[]>;
115
+ openStream(sessionId: string, onFrame: (frame: AgentAcpFrameData) => void, onClosed?: (closed: AgentAcpStreamClosedData) => void, signal?: AbortSignal, tool?: AgentAcpStreamOpenParams['tool']): Promise<{
116
+ close(): Promise<void>;
117
+ }>;
118
+ respond(requestHandle: string, decision: 'allow-once' | 'reject-once' | 'cancel', result?: unknown, signal?: AbortSignal): Promise<unknown>;
119
+ }
120
+ export declare function extractPromptText(content: unknown[]): string | undefined;
121
+ export declare function extractText(update: JsonRecord): string | undefined;
122
+ export declare function summarizeQuestions(params: JsonRecord): string | undefined;
123
+ export declare function extractSessionId(request: JsonRecord): string;
124
+ export declare function sessionPrefix(backend: 'cursor' | 'antigravity' | 'pi' | 'opencode'): string;
125
+ export declare function nativeAcpId(sessionId: string, backend: 'cursor' | 'antigravity' | 'pi' | 'opencode'): string;
126
+ export declare function isSurfaceEvent(type: string): boolean;
127
+ export declare function carrierArgs(payload: unknown): JsonRecord;
128
+ export declare function requestArg(args: JsonRecord): JsonRecord;
129
+ export declare function rcEndpoint(endpoint: string): string;
130
+ export declare function success(value: unknown): {
131
+ ok: true;
132
+ value: unknown;
133
+ };
134
+ export declare function failure(code: string, message: string, details?: JsonRecord): {
135
+ ok: false;
136
+ error: {
137
+ code: string;
138
+ message: string;
139
+ details: JsonRecord;
140
+ };
141
+ };
142
+ export declare function business(value: unknown): TypertRpcResult;
143
+ export declare function fail(code: string, message: string, details?: JsonRecord): TypertRpcResult;
144
+ export declare function failFrom(error: unknown): TypertRpcResult;
145
+ export declare function record(value: unknown): JsonRecord;
146
+ export declare function isRecord(value: unknown): value is JsonRecord;
147
+ export declare function array(value: unknown): unknown[];
148
+ export declare function string(value: unknown): string | undefined;
149
+ export declare function optionalInteger(value: unknown): number | undefined;
150
+ export declare function optionalPositiveInteger(value: unknown): number | undefined;
151
+ export declare function requiredString(value: unknown, field: string): string;
152
+ export declare class AsyncValueQueue implements AsyncIterable<unknown> {
153
+ private readonly signal;
154
+ private readonly values;
155
+ private readonly waiters;
156
+ private closed;
157
+ private readonly onAbort;
158
+ constructor(signal: AbortSignal);
159
+ push(value: unknown): void;
160
+ close(): void;
161
+ iterate(dispose: () => void): AsyncIterable<unknown>;
162
+ [Symbol.asyncIterator](): AsyncIterator<unknown>;
163
+ }
164
+ export {};
165
+ //# sourceMappingURL=virtual-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-contract.d.ts","sourceRoot":"","sources":["../../src/acp/virtual-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,216 @@
1
+ const CURSOR_SESSION_PREFIX = 'cursor:';
2
+ const ACP_SESSION_PREFIX = 'acp:';
3
+ const OPENCODE_SESSION_PREFIX = 'opencode:';
4
+ export function piStreamOutcome(reason) {
5
+ if (reason === 'completed')
6
+ return { kind: 'completed' };
7
+ if (reason === 'cancelled' || reason === 'peer-disconnected')
8
+ return { kind: 'aborted', reason: { kind: reason === 'cancelled' ? 'user' : 'disposed' } };
9
+ return { kind: 'error', error: { code: 'ACP_STREAM_FAILED', message: 'PI reply stream failed.' } };
10
+ }
11
+ export function piPromptOutcome(kind, update) {
12
+ if (update.stopReason === 'cancelled')
13
+ return { kind: 'aborted', reason: { kind: 'user' } };
14
+ if (kind === 'prompt_failed' || update.stopReason === 'error')
15
+ return {
16
+ kind: 'error', error: { code: 'PI_PROMPT_FAILED', message: 'PI reply failed.' },
17
+ };
18
+ if (update.stopReason === 'max_tokens')
19
+ return { kind: 'max-tokens' };
20
+ return { kind: 'completed' };
21
+ }
22
+ export function extractPromptText(content) {
23
+ const parts = content.flatMap(part => {
24
+ const item = record(part);
25
+ if (item.type === 'text' && typeof item.text === 'string')
26
+ return [item.text];
27
+ return [];
28
+ });
29
+ const text = parts.join('');
30
+ return text.length === 0 ? undefined : text;
31
+ }
32
+ export function extractText(update) {
33
+ const content = update.content;
34
+ if (typeof content === 'string')
35
+ return content;
36
+ if (isRecord(content) && typeof content.text === 'string')
37
+ return content.text;
38
+ if (Array.isArray(content)) {
39
+ const parts = content
40
+ .map(part => (isRecord(part) && typeof part.text === 'string' ? part.text : undefined))
41
+ .filter((part) => part !== undefined);
42
+ return parts.length === 0 ? undefined : parts.join('');
43
+ }
44
+ return typeof update.text === 'string' ? update.text : undefined;
45
+ }
46
+ export function summarizeQuestions(params) {
47
+ if (!Array.isArray(params.questions))
48
+ return undefined;
49
+ const lines = params.questions
50
+ .map(question => (isRecord(question) ? string(question.prompt) : undefined))
51
+ .filter((line) => line !== undefined);
52
+ return lines.length === 0 ? undefined : lines.join('\n');
53
+ }
54
+ function sessionIdFromAddress(address) {
55
+ if (typeof address.sessionId === 'string' && address.sessionId.length > 0)
56
+ return address.sessionId;
57
+ if (typeof address.childSessionId === 'string' && address.childSessionId.length > 0)
58
+ return address.childSessionId;
59
+ if (address.kind === 'session' && typeof address.sessionId === 'string' && address.sessionId.length > 0) {
60
+ return address.sessionId;
61
+ }
62
+ throw new Error('The sessionId is required.');
63
+ }
64
+ export function extractSessionId(request) {
65
+ if (typeof request.sessionId === 'string' && request.sessionId.length > 0)
66
+ return request.sessionId;
67
+ if (isRecord(request.address))
68
+ return sessionIdFromAddress(request.address);
69
+ throw new Error('The sessionId is required.');
70
+ }
71
+ export function sessionPrefix(backend) {
72
+ return backend === 'pi' ? 'pi:' : backend === 'opencode' ? OPENCODE_SESSION_PREFIX : backend === 'antigravity' ? ACP_SESSION_PREFIX : CURSOR_SESSION_PREFIX;
73
+ }
74
+ export function nativeAcpId(sessionId, backend) {
75
+ const prefix = sessionPrefix(backend);
76
+ if (!sessionId.startsWith(prefix) || sessionId.length === prefix.length) {
77
+ throw new Error('The selected Session does not belong to the virtual harness.');
78
+ }
79
+ return sessionId.slice(prefix.length);
80
+ }
81
+ export function isSurfaceEvent(type) {
82
+ return type === 'user/message' || type === 'assistant/message' || type === 'tool/result';
83
+ }
84
+ export function carrierArgs(payload) {
85
+ return record(record(payload).args);
86
+ }
87
+ export function requestArg(args) {
88
+ return record(args.request ?? args._request ?? args);
89
+ }
90
+ export function rcEndpoint(endpoint) {
91
+ if (endpoint === 'workspace.list')
92
+ return 'workspace/list';
93
+ return endpoint.replace('.', '/');
94
+ }
95
+ export function success(value) {
96
+ return { ok: true, value };
97
+ }
98
+ export function failure(code, message, details = {}) {
99
+ return { ok: false, error: { code, message, details } };
100
+ }
101
+ export function business(value) {
102
+ if (isRecord(value) && value.ok === false && isRecord(value.error)) {
103
+ return {
104
+ ok: false, error: {
105
+ code: string(value.error.code) ?? 'internal',
106
+ message: string(value.error.message) ?? 'The virtual Harness request failed.',
107
+ details: isRecord(value.error.details) ? value.error.details : {},
108
+ }
109
+ };
110
+ }
111
+ if (isRecord(value) && value.ok === true)
112
+ return { ok: true, value: value.value };
113
+ return { ok: true, value };
114
+ }
115
+ export function fail(code, message, details = {}) {
116
+ return { ok: false, error: { code, message, details } };
117
+ }
118
+ export function failFrom(error) {
119
+ const source = error instanceof Error ? error : new Error(String(error));
120
+ const code = 'code' in source && typeof source.code === 'string' ? source.code : 'internal';
121
+ return fail(code, source.message);
122
+ }
123
+ export function record(value) {
124
+ return isRecord(value) ? value : {};
125
+ }
126
+ export function isRecord(value) {
127
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
128
+ }
129
+ export function array(value) {
130
+ return Array.isArray(value) ? value : [];
131
+ }
132
+ export function string(value) {
133
+ return typeof value === 'string' ? value : undefined;
134
+ }
135
+ function integer(value) {
136
+ return typeof value === 'number' && Number.isSafeInteger(value) ? value : undefined;
137
+ }
138
+ export function optionalInteger(value) {
139
+ if (value === undefined)
140
+ return undefined;
141
+ const parsed = integer(value);
142
+ if (parsed === undefined)
143
+ throw new Error('The History cursor is invalid.');
144
+ return parsed;
145
+ }
146
+ export function optionalPositiveInteger(value) {
147
+ const parsed = optionalInteger(value);
148
+ if (parsed !== undefined && parsed <= 0)
149
+ throw new Error('The History page size is invalid.');
150
+ return parsed;
151
+ }
152
+ export function requiredString(value, field) {
153
+ if (typeof value !== 'string' || value.length === 0)
154
+ throw new Error(`The ${field} is required.`);
155
+ return value;
156
+ }
157
+ export class AsyncValueQueue {
158
+ signal;
159
+ values = [];
160
+ waiters = [];
161
+ closed = false;
162
+ onAbort;
163
+ constructor(signal) {
164
+ this.signal = signal;
165
+ this.onAbort = () => this.close();
166
+ signal.addEventListener('abort', this.onAbort, { once: true });
167
+ if (signal.aborted)
168
+ this.close();
169
+ }
170
+ push(value) {
171
+ if (this.closed)
172
+ return;
173
+ const waiter = this.waiters.shift();
174
+ if (waiter === undefined)
175
+ this.values.push(value);
176
+ else
177
+ waiter({ done: false, value });
178
+ }
179
+ close() {
180
+ if (this.closed)
181
+ return;
182
+ this.closed = true;
183
+ this.signal.removeEventListener('abort', this.onAbort);
184
+ for (const waiter of this.waiters.splice(0))
185
+ waiter({ done: true, value: undefined });
186
+ }
187
+ iterate(dispose) {
188
+ const queue = this;
189
+ return {
190
+ async *[Symbol.asyncIterator]() {
191
+ try {
192
+ yield* queue;
193
+ }
194
+ finally {
195
+ dispose();
196
+ queue.close();
197
+ }
198
+ },
199
+ };
200
+ }
201
+ async *[Symbol.asyncIterator]() {
202
+ while (true) {
203
+ if (this.values.length > 0) {
204
+ yield this.values.shift();
205
+ continue;
206
+ }
207
+ if (this.closed)
208
+ return;
209
+ const next = await new Promise(resolve => this.waiters.push(resolve));
210
+ if (next.done)
211
+ return;
212
+ yield next.value;
213
+ }
214
+ }
215
+ }
216
+ //# sourceMappingURL=virtual-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-contract.js","sourceRoot":"","sources":["../../src/acp/virtual-contract.ts"],"names":[],"mappings":"AAWA,MAAM,qBAAqB,GAAG,SAAS,CAAA;AAEvC,MAAM,kBAAkB,GAAG,MAAM,CAAA;AAEjC,MAAM,uBAAuB,GAAG,WAAW,CAAA;AAQ3C,MAAM,UAAU,eAAe,CAAC,MAA0C;IACxE,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;IACxD,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,mBAAmB;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAA;IACxJ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,yBAAyB,EAAE,EAAE,CAAA;AACpG,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,MAAkB;IAC9D,IAAI,MAAM,CAAC,UAAU,KAAK,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAA;IAC3F,IAAI,IAAI,KAAK,eAAe,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO;QAAE,OAAO;YACpE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,EAAE;SAChF,CAAA;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;IACrE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;AAC9B,CAAC;AAwFD,MAAM,UAAU,iBAAiB,CAAC,OAAkB;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7E,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC3B,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAkB;IAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;IAC9B,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAA;IAC/C,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,IAAI,CAAA;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,OAAO;aAClB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACtF,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;QACvD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAkB;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS;SAC3B,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAC3E,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;IACvD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAmB;IAC/C,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,SAAS,CAAA;IACnG,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,cAAc,CAAA;IAClH,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxG,OAAO,OAAO,CAAC,SAAS,CAAA;IAC1B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAmB;IAClD,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,SAAS,CAAA;IACnG,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3E,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAqD;IACjF,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,qBAAqB,CAAA;AAC7J,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,OAAqD;IAClG,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IACrC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IACjF,CAAC;IACD,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,aAAa,CAAA;AAC1F,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAgB;IACzC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI,QAAQ,KAAK,gBAAgB;QAAE,OAAO,gBAAgB,CAAA;IAC1D,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,OAAe,EAAE,UAAsB,EAAE;IAC7E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO;YACL,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;gBAChB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU;gBAC5C,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,qCAAqC;gBAC7E,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;aAClE;SACF,CAAA;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAA;IACjF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,OAAe,EAAE,UAAsB,EAAE;IAC1E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACxE,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAA;IAC3F,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACrF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAC7B,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAC3E,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;IACrC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IAC7F,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,KAAa;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,eAAe,CAAC,CAAA;IACjG,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,OAAO,eAAe;IAMG;IALZ,MAAM,GAAc,EAAE,CAAA;IACtB,OAAO,GAAqD,EAAE,CAAA;IACvE,MAAM,GAAG,KAAK,CAAA;IACL,OAAO,CAAY;IAEpC,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;QAC9C,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;QACjC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9D,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,KAAK,EAAE,CAAA;IAClC,CAAC;IAED,IAAI,CAAC,KAAc;QACjB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACnC,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;YAC5C,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IACrC,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACtD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IACvF,CAAC;IAED,OAAO,CAAC,OAAmB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAA;QAClB,OAAO;YACL,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,IAAI,CAAC;oBACH,KAAK,CAAC,CAAC,KAAK,CAAA;gBACd,CAAC;wBAAS,CAAC;oBACT,OAAO,EAAE,CAAA;oBACT,KAAK,CAAC,KAAK,EAAE,CAAA;gBACf,CAAC;YACH,CAAC;SACF,CAAA;IACH,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;gBACzB,SAAQ;YACV,CAAC;YACD,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAM;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAA0B,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;YAC9F,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAM;YACrB,MAAM,IAAI,CAAC,KAAK,CAAA;QAClB,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,50 @@
1
+ import type { ApiProxy, RpcRequest } from '@deepseek-ai/dsh-host-apiproxy/api';
2
+ import type { TypertRpcResult } from '../typert-gateway-contract.js';
3
+ import type { AcpVirtualWorkspaceView } from './virtual-catalog.js';
4
+ import type { AcpClientLike, AcpSessionState, JsonRecord, PendingApproval } from './virtual-contract.js';
5
+ import { AsyncValueQueue } from './virtual-contract.js';
6
+ /** Collaborates with one AcpVirtualHarness; never creates a second session or connection state. */
7
+ export interface AcpEventCarrierContext {
8
+ readonly workspaceStreams: Set<AsyncValueQueue>;
9
+ readonly visibleWorkspaces: () => AcpVirtualWorkspaceView[];
10
+ readonly controlStreams: Set<AsyncValueQueue>;
11
+ readonly eventStreams: Map<string, AsyncValueQueue>;
12
+ readonly selectedWorkspaceId: string | undefined;
13
+ readonly workspaceById: Map<string, AcpVirtualWorkspaceView>;
14
+ readonly backendLabel: () => string;
15
+ readonly pendingApprovals: Map<string, PendingApproval>;
16
+ readonly client: AcpClientLike;
17
+ readonly dispatch: (endpoint: string, payload: unknown, signal: AbortSignal) => Promise<TypertRpcResult>;
18
+ readonly rcMuxStreams: Set<AsyncValueQueue>;
19
+ readonly sessions: Map<string, AcpSessionState>;
20
+ readonly rcHostStreams: Set<AsyncValueQueue>;
21
+ readonly nextProjectionSeq: () => number;
22
+ }
23
+ export declare class AcpEventCarrier {
24
+ private readonly context;
25
+ constructor(context: AcpEventCarrierContext);
26
+ workspaceFollow(signal: AbortSignal): Promise<AsyncIterable<unknown>>;
27
+ sessionControl(signal: AbortSignal): Promise<AsyncIterable<unknown>>;
28
+ /**
29
+ * Background jobs belong to the Host Harness session, not to a backend-scoped
30
+ * virtual Workspace. The native session header mounts a job roster stream as
31
+ * soon as a Session opens, so answer it with an authoritative empty roster
32
+ * instead of a terminal `method-not-found` failure that tears the page down.
33
+ */
34
+ emptyJobStream(endpoint: 'job/list' | 'job/follow', signal: AbortSignal): AsyncIterable<unknown>;
35
+ remoteEvents(signal: AbortSignal): Promise<AsyncIterable<unknown>>;
36
+ emitRemoteEvent(event: string, args: unknown[]): void;
37
+ emitApproval(input: {
38
+ eventId: string;
39
+ agentId: string;
40
+ request: JsonRecord;
41
+ }): void;
42
+ answerRemoteEvent(args: JsonRecord, signal: AbortSignal): Promise<undefined>;
43
+ createApiProxy(): ApiProxy;
44
+ rcMux(request: RpcRequest<unknown>, signal: AbortSignal): AsyncIterable<unknown>;
45
+ rcHost(_request: RpcRequest<unknown>, signal: AbortSignal): AsyncIterable<unknown>;
46
+ broadcastRcMux(payload: unknown, rpcId?: string): void;
47
+ broadcastRcHost(payload: unknown): void;
48
+ publishProjection(sessionId: string, key: string, value: unknown, seq?: number): void;
49
+ }
50
+ //# sourceMappingURL=virtual-event-carrier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-event-carrier.d.ts","sourceRoot":"","sources":["../../src/acp/virtual-event-carrier.ts"],"names":[],"mappings":"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"}