zcode-acp-server 0.1.0 → 0.3.0

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 (223) hide show
  1. package/README.md +192 -9
  2. package/README.zh-CN.md +143 -8
  3. package/dist/backend/client.d.ts +12 -4
  4. package/dist/backend/client.d.ts.map +1 -1
  5. package/dist/backend/client.js +72 -7
  6. package/dist/backend/client.js.map +1 -1
  7. package/dist/backend/credentials.d.ts.map +1 -1
  8. package/dist/backend/credentials.js +2 -1
  9. package/dist/backend/credentials.js.map +1 -1
  10. package/dist/backend/listener.d.ts +12 -4
  11. package/dist/backend/listener.d.ts.map +1 -1
  12. package/dist/backend/listener.js +68 -12
  13. package/dist/backend/listener.js.map +1 -1
  14. package/dist/backend/types.d.ts +1 -1
  15. package/dist/backend/types.d.ts.map +1 -1
  16. package/dist/bin/hub.d.ts +16 -0
  17. package/dist/bin/hub.d.ts.map +1 -0
  18. package/dist/bin/hub.js +41 -0
  19. package/dist/bin/hub.js.map +1 -0
  20. package/dist/bin/quota.d.ts +54 -0
  21. package/dist/bin/quota.d.ts.map +1 -0
  22. package/dist/bin/quota.js +333 -0
  23. package/dist/bin/quota.js.map +1 -0
  24. package/dist/config/auto-compact.d.ts +23 -0
  25. package/dist/config/auto-compact.d.ts.map +1 -0
  26. package/dist/config/auto-compact.js +67 -0
  27. package/dist/config/auto-compact.js.map +1 -0
  28. package/dist/config/mcp-discovery.d.ts +34 -0
  29. package/dist/config/mcp-discovery.d.ts.map +1 -0
  30. package/dist/config/mcp-discovery.js +153 -0
  31. package/dist/config/mcp-discovery.js.map +1 -0
  32. package/dist/config/model-cache.d.ts +12 -1
  33. package/dist/config/model-cache.d.ts.map +1 -1
  34. package/dist/config/model-cache.js +30 -8
  35. package/dist/config/model-cache.js.map +1 -1
  36. package/dist/config/options.d.ts +87 -9
  37. package/dist/config/options.d.ts.map +1 -1
  38. package/dist/config/options.js +248 -45
  39. package/dist/config/options.js.map +1 -1
  40. package/dist/config/plugin-commands.d.ts +24 -0
  41. package/dist/config/plugin-commands.d.ts.map +1 -0
  42. package/dist/config/plugin-commands.js +107 -0
  43. package/dist/config/plugin-commands.js.map +1 -0
  44. package/dist/config/provider-registry.d.ts +60 -0
  45. package/dist/config/provider-registry.d.ts.map +1 -0
  46. package/dist/config/provider-registry.js +128 -0
  47. package/dist/config/provider-registry.js.map +1 -0
  48. package/dist/config/runtime-model.d.ts +54 -18
  49. package/dist/config/runtime-model.d.ts.map +1 -1
  50. package/dist/config/runtime-model.js +105 -61
  51. package/dist/config/runtime-model.js.map +1 -1
  52. package/dist/config/skill-discovery.d.ts +35 -0
  53. package/dist/config/skill-discovery.d.ts.map +1 -0
  54. package/dist/config/skill-discovery.js +188 -0
  55. package/dist/config/skill-discovery.js.map +1 -0
  56. package/dist/handlers/account.d.ts +43 -0
  57. package/dist/handlers/account.d.ts.map +1 -0
  58. package/dist/handlers/account.js +59 -0
  59. package/dist/handlers/account.js.map +1 -0
  60. package/dist/handlers/background-tasks.d.ts +72 -0
  61. package/dist/handlers/background-tasks.d.ts.map +1 -0
  62. package/dist/handlers/background-tasks.js +330 -0
  63. package/dist/handlers/background-tasks.js.map +1 -0
  64. package/dist/handlers/dispatch.d.ts.map +1 -1
  65. package/dist/handlers/dispatch.js +134 -22
  66. package/dist/handlers/dispatch.js.map +1 -1
  67. package/dist/handlers/extensions.d.ts +15 -0
  68. package/dist/handlers/extensions.d.ts.map +1 -1
  69. package/dist/handlers/extensions.js +43 -27
  70. package/dist/handlers/extensions.js.map +1 -1
  71. package/dist/handlers/io.d.ts +31 -3
  72. package/dist/handlers/io.d.ts.map +1 -1
  73. package/dist/handlers/io.js +108 -9
  74. package/dist/handlers/io.js.map +1 -1
  75. package/dist/handlers/replay.d.ts +79 -0
  76. package/dist/handlers/replay.d.ts.map +1 -0
  77. package/dist/handlers/replay.js +252 -0
  78. package/dist/handlers/replay.js.map +1 -0
  79. package/dist/handlers/server-requests.d.ts +20 -4
  80. package/dist/handlers/server-requests.d.ts.map +1 -1
  81. package/dist/handlers/server-requests.js +293 -63
  82. package/dist/handlers/server-requests.js.map +1 -1
  83. package/dist/handlers/session.d.ts +113 -10
  84. package/dist/handlers/session.d.ts.map +1 -1
  85. package/dist/handlers/session.js +932 -277
  86. package/dist/handlers/session.js.map +1 -1
  87. package/dist/handlers/slash.d.ts +37 -1
  88. package/dist/handlers/slash.d.ts.map +1 -1
  89. package/dist/handlers/slash.js +143 -8
  90. package/dist/handlers/slash.js.map +1 -1
  91. package/dist/index.js +76 -12
  92. package/dist/index.js.map +1 -1
  93. package/dist/interaction/adapter.d.ts +19 -33
  94. package/dist/interaction/adapter.d.ts.map +1 -1
  95. package/dist/interaction/adapter.js +80 -79
  96. package/dist/interaction/adapter.js.map +1 -1
  97. package/dist/lazy-sessions.d.ts +35 -0
  98. package/dist/lazy-sessions.d.ts.map +1 -0
  99. package/dist/lazy-sessions.js +98 -0
  100. package/dist/lazy-sessions.js.map +1 -0
  101. package/dist/quota/cache.d.ts +18 -0
  102. package/dist/quota/cache.d.ts.map +1 -0
  103. package/dist/quota/cache.js +32 -0
  104. package/dist/quota/cache.js.map +1 -0
  105. package/dist/quota/client.d.ts +30 -0
  106. package/dist/quota/client.d.ts.map +1 -0
  107. package/dist/quota/client.js +57 -0
  108. package/dist/quota/client.js.map +1 -0
  109. package/dist/quota/color.d.ts +58 -0
  110. package/dist/quota/color.d.ts.map +1 -0
  111. package/dist/quota/color.js +95 -0
  112. package/dist/quota/color.js.map +1 -0
  113. package/dist/quota/combined.d.ts +66 -0
  114. package/dist/quota/combined.d.ts.map +1 -0
  115. package/dist/quota/combined.js +179 -0
  116. package/dist/quota/combined.js.map +1 -0
  117. package/dist/quota/format.d.ts +105 -0
  118. package/dist/quota/format.d.ts.map +1 -0
  119. package/dist/quota/format.js +219 -0
  120. package/dist/quota/format.js.map +1 -0
  121. package/dist/quota/index.d.ts +23 -0
  122. package/dist/quota/index.d.ts.map +1 -0
  123. package/dist/quota/index.js +42 -0
  124. package/dist/quota/index.js.map +1 -0
  125. package/dist/quota/opencode-go/cache.d.ts +17 -0
  126. package/dist/quota/opencode-go/cache.d.ts.map +1 -0
  127. package/dist/quota/opencode-go/cache.js +31 -0
  128. package/dist/quota/opencode-go/cache.js.map +1 -0
  129. package/dist/quota/opencode-go/client.d.ts +28 -0
  130. package/dist/quota/opencode-go/client.d.ts.map +1 -0
  131. package/dist/quota/opencode-go/client.js +48 -0
  132. package/dist/quota/opencode-go/client.js.map +1 -0
  133. package/dist/quota/opencode-go/config.d.ts +37 -0
  134. package/dist/quota/opencode-go/config.d.ts.map +1 -0
  135. package/dist/quota/opencode-go/config.js +58 -0
  136. package/dist/quota/opencode-go/config.js.map +1 -0
  137. package/dist/quota/opencode-go/format.d.ts +36 -0
  138. package/dist/quota/opencode-go/format.d.ts.map +1 -0
  139. package/dist/quota/opencode-go/format.js +87 -0
  140. package/dist/quota/opencode-go/format.js.map +1 -0
  141. package/dist/quota/opencode-go/index.d.ts +30 -0
  142. package/dist/quota/opencode-go/index.d.ts.map +1 -0
  143. package/dist/quota/opencode-go/index.js +108 -0
  144. package/dist/quota/opencode-go/index.js.map +1 -0
  145. package/dist/quota/opencode-go/parse.d.ts +41 -0
  146. package/dist/quota/opencode-go/parse.d.ts.map +1 -0
  147. package/dist/quota/opencode-go/parse.js +75 -0
  148. package/dist/quota/opencode-go/parse.js.map +1 -0
  149. package/dist/quota/opencode-go/types.d.ts +48 -0
  150. package/dist/quota/opencode-go/types.d.ts.map +1 -0
  151. package/dist/quota/opencode-go/types.js +11 -0
  152. package/dist/quota/opencode-go/types.js.map +1 -0
  153. package/dist/quota/parse.d.ts +33 -0
  154. package/dist/quota/parse.d.ts.map +1 -0
  155. package/dist/quota/parse.js +200 -0
  156. package/dist/quota/parse.js.map +1 -0
  157. package/dist/quota/types.d.ts +72 -0
  158. package/dist/quota/types.d.ts.map +1 -0
  159. package/dist/quota/types.js +10 -0
  160. package/dist/quota/types.js.map +1 -0
  161. package/dist/remote/broadcast.d.ts +47 -0
  162. package/dist/remote/broadcast.d.ts.map +1 -0
  163. package/dist/remote/broadcast.js +121 -0
  164. package/dist/remote/broadcast.js.map +1 -0
  165. package/dist/remote/config.d.ts +32 -0
  166. package/dist/remote/config.d.ts.map +1 -0
  167. package/dist/remote/config.js +65 -0
  168. package/dist/remote/config.js.map +1 -0
  169. package/dist/remote/endpoint.d.ts +30 -0
  170. package/dist/remote/endpoint.d.ts.map +1 -0
  171. package/dist/remote/endpoint.js +213 -0
  172. package/dist/remote/endpoint.js.map +1 -0
  173. package/dist/remote/hub-server.d.ts +41 -0
  174. package/dist/remote/hub-server.d.ts.map +1 -0
  175. package/dist/remote/hub-server.js +346 -0
  176. package/dist/remote/hub-server.js.map +1 -0
  177. package/dist/server.d.ts +139 -1
  178. package/dist/server.d.ts.map +1 -1
  179. package/dist/server.js +179 -4
  180. package/dist/server.js.map +1 -1
  181. package/dist/tasks-index.d.ts +14 -4
  182. package/dist/tasks-index.d.ts.map +1 -1
  183. package/dist/tasks-index.js +145 -46
  184. package/dist/tasks-index.js.map +1 -1
  185. package/dist/translators/event-translator.d.ts +33 -0
  186. package/dist/translators/event-translator.d.ts.map +1 -1
  187. package/dist/translators/event-translator.js +101 -0
  188. package/dist/translators/event-translator.js.map +1 -1
  189. package/dist/translators/index.d.ts +1 -1
  190. package/dist/translators/index.d.ts.map +1 -1
  191. package/dist/translators/index.js +1 -1
  192. package/dist/translators/index.js.map +1 -1
  193. package/dist/translators/projection-differ.d.ts +8 -0
  194. package/dist/translators/projection-differ.d.ts.map +1 -1
  195. package/dist/translators/projection-differ.js +19 -9
  196. package/dist/translators/projection-differ.js.map +1 -1
  197. package/dist/translators/tool-helpers.d.ts +28 -0
  198. package/dist/translators/tool-helpers.d.ts.map +1 -1
  199. package/dist/translators/tool-helpers.js +104 -0
  200. package/dist/translators/tool-helpers.js.map +1 -1
  201. package/dist/translators/types.d.ts +38 -1
  202. package/dist/translators/types.d.ts.map +1 -1
  203. package/dist/translators/types.js.map +1 -1
  204. package/dist/utils.d.ts +36 -7
  205. package/dist/utils.d.ts.map +1 -1
  206. package/dist/utils.js +69 -5
  207. package/dist/utils.js.map +1 -1
  208. package/docs/ARCHITECTURE.md +130 -40
  209. package/docs/BACKLOG.md +59 -0
  210. package/docs/DEVELOPMENT.md +31 -0
  211. package/docs/PROTOCOL.md +328 -23
  212. package/docs/REMOTE-CLIENTS.md +260 -0
  213. package/docs/REPLAY-GUIDE.md +131 -0
  214. package/docs/TROUBLESHOOTING.md +131 -14
  215. package/docs/adr/0001-bridge-lifetime-follows-primary-client.md +14 -0
  216. package/docs/adr/0002-stateless-hub-over-per-bridge-acp-endpoints.md +23 -0
  217. package/docs/adr/0003-tail-replay-meta-and-cursor-pagination.md +40 -0
  218. package/docs/agents/domain.md +51 -0
  219. package/docs/agents/issue-tracker.md +22 -0
  220. package/docs/agents/triage-labels.md +15 -0
  221. package/docs/proposals/0001-tail-session-replay.md +136 -0
  222. package/docs/proposals/0002-plan-quota-usage.md +81 -0
  223. package/package.json +10 -6
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/handlers/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAsB,EACtB,EAAoB,EACpB,MAAc,EACd,EAAiB,EACjB,UAAkB;IAElB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,aAAa;YAChB,MAAM,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,gBAAgB;YACnB,MAAM,sBAAsB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACrD,MAAM;QACR,KAAK,YAAY;YACf,MAAM,kBAAkB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACjD,MAAM;QACR,KAAK,WAAW;YACd,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE;gBAClC,aAAa,EAAE,qBAAqB;gBACpC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;gBACxC,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;YACH,MAAM;QACR,KAAK,gBAAgB;YACnB,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE;gBAClC,aAAa,EAAE,qBAAqB;gBACpC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;gBACxC,SAAS,EAAE,WAAW,UAAU,EAAE;aACnC,CAAC,CAAC;YACH,MAAM;QACR,KAAK,YAAY;YACf,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE;gBAClC,aAAa,EAAE,MAAM;gBACrB,OAAO,EAAE,EAAE,CAAC,OAAO;aACpB,CAAC,CAAC;YACH,MAAM;QACR,KAAK,cAAc;YACjB,MAAM,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC3C,MAAM;IACV,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAsB,EACtB,EAAoB,EACpB,MAAc,EACd,EAAmD;IAEnD,MAAM,aAAa,GACjB,MAAM,CAAC,sBAAsB,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAChF,MAAM,IAAI,GAA4B,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;IAC5E,IAAI,aAAa;QAAE,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;IAEtE,MAAM,MAAM,GAAsB;QAChC,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,EAAE,CAAC,MAAM;QACrB,KAAK,EAAE,EAAE,CAAC,KAAK;QACf,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,OAAO,CAAiB;QACzD,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,QAAQ,EAAE,EAAE,CAAC,KAAK;QAClB,KAAK,EAAE,IAAI;KACZ,CAAC;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IACjE,CAAC;SAAM,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC;IAClC,CAAC;SAAM,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;IAC9B,CAAC;IACD,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;IAC7E,OAAO,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAAsB,EACtB,EAAoB,EACpB,MAAc,EACd,EAAsD;IAEtD,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B,MAAM,aAAa,GACjB,MAAM,CAAC,sBAAsB,EAAE,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,CAAC,CAAC;IAElF,IAAI,aAAa,EAAE,CAAC;QAClB,0EAA0E;QAC1E,2EAA2E;QAC3E,OAAO,sBAAsB,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,MAAM,GAAsB;QAChC,aAAa,EAAE,kBAAkB;QACjC,UAAU,EAAE,EAAE,CAAC,MAAM;QACrB,MAAM,EAAE,EAAE,CAAC,MAAM;KAClB,CAAC;IACF,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,IAAI,QAAQ;QAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChD,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC;IAC1D,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC;IAClC,CAAC;SAAM,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IACtD,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;IAC7E,OAAO,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,sBAAsB,CACnC,OAAuB,EACvB,EAAoB,EACpB,MAAc,EACd,EAAsD,EACtD,QAAgB;IAEhB,oEAAoE;IACpE,IAAI,QAAQ,GAAY,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC;IACrD,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,QAAQ,GAAI,QAAoC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACpE,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE;YAClC,aAAa,EAAE,kBAAkB;YACjC,UAAU,EAAE,EAAE,CAAC,MAAM;YACrB,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IAC/D,IAAI,EAAE,CAAC,MAAM,KAAK,WAAW,IAAI,EAAE,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QACvE,MAAM,UAAU,GAAsB;YACpC,aAAa,EAAE,kBAAkB;YACjC,UAAU,EAAE,EAAE,CAAC,MAAM;YACrB,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;YACtD,KAAK,EAAE;gBACL,UAAU,EAAE,EAAE,QAAQ,EAAE;gBACxB,aAAa,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;aAC7E;SACF,CAAC;QACF,wEAAwE;QACxE,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS;YAAE,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC;QAC9D,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,MAAsB,EACtB,EAAoB,EACpB,MAAc,EACd,EAAkD;IAElD,mEAAmE;IACnE,sEAAsE;IACtE,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;IACnB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE;QAClC,aAAa,EAAE,cAAc;QAC7B,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAC3B,EAAoB,EACpB,MAAc,EACd,EAAoD;IAEpD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IACvB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,OAAO,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE;QACnC,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,SAAS,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC/C,KAAK,EAAE,kBAAkB,KAAK,CAAC,MAAM,MAAM,OAAO,GAAG,QAAQ,EAAE;QAC/D,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;SAC7F;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/handlers/dispatch.ts"],"names":[],"mappings":"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"}
@@ -39,5 +39,20 @@ export declare function updateRuntimeModelConfig(server: ZcodeAcpServer, params:
39
39
  export declare function setModel(server: ZcodeAcpServer, params: ExtensionParams): Promise<Result>;
40
40
  /** session/setMode → zcode session/setMode + emit config_option/current_mode updates. */
41
41
  export declare function setMode(server: ZcodeAcpServer, params: ExtensionParams, cx: acp.AgentContext): Promise<Result>;
42
+ /**
43
+ * Wait for a zcode session's internal AI turn to release its prompt lock.
44
+ *
45
+ * `session/goal(set)` and `session/compact` start an internal AI turn that
46
+ * keeps running after the request() response. projection.status=idle does NOT
47
+ * mean the lock is released (goal set often shows idle quickly while the lock
48
+ * persists 10-25s). The reliable check: retry a probe call (goal show) until it
49
+ * no longer reports "prompt is running".
50
+ *
51
+ * `expectLock` (compact): compact's turn has a startup delay — at this moment
52
+ * the lock isn't held yet, so a probe succeeds immediately (false "released").
53
+ * With expectLock=true, we first require observing "prompt is running" once
54
+ * (proving the turn truly started) before trusting a later success.
55
+ */
56
+ export declare function waitForTurnIdle(server: ZcodeAcpServer, zcodeSid: string, timeoutMs: number, probeMethod: string, expectLock: boolean): Promise<boolean>;
42
57
  export {};
43
58
  //# sourceMappingURL=extensions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/handlers/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAOrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAiBnD,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtC,iFAAiF;AACjF,wBAAsB,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAc3F;AAED,sFAAsF;AACtF,wBAAsB,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAa7F;AAED,2EAA2E;AAC3E,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED,uFAAuF;AACvF,wBAAsB,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB3F;AAED,+EAA+E;AAC/E,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,GAAG,CAAC,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAED,kFAAkF;AAClF,wBAAsB,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAW5F;AAED,yEAAyE;AACzE,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED,+DAA+D;AAC/D,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,wFAAwF;AACxF,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,8EAA8E;AAC9E,wBAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ/F;AAED,yFAAyF;AACzF,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,GAAG,CAAC,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/handlers/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAOrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAsBnD,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtC,iFAAiF;AACjF,wBAAsB,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB3F;AAED,sFAAsF;AACtF,wBAAsB,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAa7F;AAED,2EAA2E;AAC3E,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED,uFAAuF;AACvF,wBAAsB,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB3F;AAED,+EAA+E;AAC/E,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,GAAG,CAAC,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAED,kFAAkF;AAClF,wBAAsB,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAW5F;AAED,yEAAyE;AACzE,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,+DAA+D;AAC/D,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,wFAAwF;AACxF,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,8EAA8E;AAC9E,wBAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ/F;AAED,yFAAyF;AACzF,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,GAAG,CAAC,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CA8BjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAuDlB"}
@@ -16,6 +16,7 @@ import { buildConfigOptions, buildModes } from "../config/options.js";
16
16
  import { ProjectionDiffer } from "../translators/projection-differ.js";
17
17
  import { log, warn } from "../utils.js";
18
18
  import { sendSessionUpdate } from "./io.js";
19
+ import { ensureRealSession } from "./session.js";
19
20
  /** Build the zcode `target` object from ACP params (checkpoint or latest). */
20
21
  function buildCheckpointTarget(params) {
21
22
  if (params.checkpointId)
@@ -24,29 +25,33 @@ function buildCheckpointTarget(params) {
24
25
  return params.target;
25
26
  return { kind: "latestCheckpoint" };
26
27
  }
27
- /** Resolve zcode sid from ACP params; throw if unknown. */
28
- function resolveSidOrThrow(server, params) {
29
- const sid = server.resolveSid(params.sessionId);
30
- if (!sid)
31
- throw new Error(`session ${params.sessionId} not found`);
32
- return sid;
28
+ /**
29
+ * Resolve zcode sid from ACP params, materializing a lazy session/new
30
+ * placeholder on first use; throw if the session is unknown.
31
+ */
32
+ async function resolveSidOrThrow(server, params) {
33
+ return ensureRealSession(server, params.sessionId);
33
34
  }
34
35
  /** session/fork → zcode session/fork: branch a new session from a checkpoint. */
35
36
  export async function fork(server, params) {
36
- const zcodeSid = resolveSidOrThrow(server, params);
37
+ const zcodeSid = await resolveSidOrThrow(server, params);
37
38
  const backend = server.ensureBackend();
38
39
  const resp = await backend.request(server.nextId(), "session/fork", { sessionId: zcodeSid, target: buildCheckpointTarget(params) }, 15000);
39
40
  if (resp.error)
40
41
  throw new Error(`fork failed: ${resp.error.message}`);
42
+ // 3.3.0 returns `forkedSessionId` (not `sessionId`) for the new session id.
43
+ // Register it so subsequent ACP calls targeting the fork can resolve the sid.
41
44
  const result = (resp.result ?? {});
42
- if (result.sessionId)
43
- server.sessionMap.set(result.sessionId, result.sessionId);
44
- log(`session/fork → ${result.sessionId ?? "?"}`);
45
+ if (result.forkedSessionId) {
46
+ server.registerSession(result.forkedSessionId, result.forkedSessionId);
47
+ server.ensureBackgroundListener(result.forkedSessionId);
48
+ }
49
+ log(`session/fork → ${result.forkedSessionId ?? "?"}`);
45
50
  return result;
46
51
  }
47
52
  /** session/rewind → zcode session/rewind: restore workspace files to a checkpoint. */
48
53
  export async function rewind(server, params) {
49
- const zcodeSid = resolveSidOrThrow(server, params);
54
+ const zcodeSid = await resolveSidOrThrow(server, params);
50
55
  const zcParams = {
51
56
  sessionId: zcodeSid,
52
57
  target: buildCheckpointTarget(params),
@@ -63,7 +68,7 @@ export async function rewind(server, params) {
63
68
  }
64
69
  /** session/rewindCascade → zcode session/rewindCascade: cascade rewind. */
65
70
  export async function rewindCascade(server, params) {
66
- const zcodeSid = resolveSidOrThrow(server, params);
71
+ const zcodeSid = await resolveSidOrThrow(server, params);
67
72
  const zcParams = {
68
73
  sessionId: zcodeSid,
69
74
  target: buildCheckpointTarget(params),
@@ -82,7 +87,7 @@ export async function rewindCascade(server, params) {
82
87
  }
83
88
  /** session/goal → zcode session/goal: read/set/replace/clear/pause/resume the goal. */
84
89
  export async function goal(server, params) {
85
- const zcodeSid = resolveSidOrThrow(server, params);
90
+ const zcodeSid = await resolveSidOrThrow(server, params);
86
91
  const action = params.action ?? "show";
87
92
  const zcParams = { sessionId: zcodeSid, action };
88
93
  if ((action === "set" || action === "replace") && params.objective !== undefined) {
@@ -113,7 +118,7 @@ export async function goal(server, params) {
113
118
  /** session/compact → zcode session/compact + wait for the internal AI turn. */
114
119
  export async function compact(server, params, cx) {
115
120
  const acpSid = params.sessionId;
116
- const zcodeSid = resolveSidOrThrow(server, params);
121
+ const zcodeSid = await resolveSidOrThrow(server, params);
117
122
  const resp = await server
118
123
  .ensureBackend()
119
124
  .request(server.nextId(), "session/compact", { sessionId: zcodeSid }, 30000);
@@ -149,7 +154,7 @@ export async function compact(server, params, cx) {
149
154
  }
150
155
  /** session/steer → zcode session/steer: append instructions to a running turn. */
151
156
  export async function steer(server, params) {
152
- const zcodeSid = resolveSidOrThrow(server, params);
157
+ const zcodeSid = await resolveSidOrThrow(server, params);
153
158
  const content = String(params.content ?? "");
154
159
  if (!content.trim())
155
160
  throw new Error("steer requires content");
@@ -164,8 +169,8 @@ export async function steer(server, params) {
164
169
  }
165
170
  /** session/cancelBackgroundTask → zcode session/cancelBackgroundTask. */
166
171
  export async function cancelBackgroundTask(server, params) {
167
- const zcodeSid = resolveSidOrThrow(server, params);
168
- const taskId = params.taskId;
172
+ const zcodeSid = await resolveSidOrThrow(server, params);
173
+ const taskId = String(params.taskId ?? "");
169
174
  if (!taskId)
170
175
  throw new Error("cancelBackgroundTask requires taskId");
171
176
  const resp = await server
@@ -173,18 +178,25 @@ export async function cancelBackgroundTask(server, params) {
173
178
  .request(server.nextId(), "session/cancelBackgroundTask", { sessionId: zcodeSid, taskId }, 15000);
174
179
  if (resp.error)
175
180
  throw new Error(`cancelBackgroundTask failed: ${resp.error.message}`);
181
+ // Reflect the cancellation on the ACP tool card (status:failed + cancelled
182
+ // flag) and clear the background listener's local tracking. Best-effort.
183
+ const listener = server.backgroundListeners.get(zcodeSid);
184
+ if (listener)
185
+ void listener.markCancelled(taskId);
176
186
  log(`session/cancelBackgroundTask → cancelled=${resp.result?.cancelled}`);
177
187
  return (resp.result ?? {});
178
188
  }
179
189
  /** session/setThoughtLevel → zcode session/setThoughtLevel. */
180
190
  export async function setThoughtLevel(server, params) {
181
- const zcodeSid = resolveSidOrThrow(server, params);
182
- const thoughtLevel = params.thoughtLevel;
183
- if (!thoughtLevel)
184
- throw new Error("setThoughtLevel requires thoughtLevel");
191
+ const zcodeSid = await resolveSidOrThrow(server, params);
192
+ // 3.3.0 marks thoughtLevel optional (omitting it resets to the model's
193
+ // default). Forward it only when present so a reset call isn't rejected.
194
+ const zcParams = { sessionId: zcodeSid };
195
+ if (params.thoughtLevel !== undefined)
196
+ zcParams.thoughtLevel = params.thoughtLevel;
185
197
  const resp = await server
186
198
  .ensureBackend()
187
- .request(server.nextId(), "session/setThoughtLevel", { sessionId: zcodeSid, thoughtLevel }, 15000);
199
+ .request(server.nextId(), "session/setThoughtLevel", zcParams, 15000);
188
200
  if (resp.error)
189
201
  throw new Error(`setThoughtLevel failed: ${resp.error.message}`);
190
202
  log("session/setThoughtLevel → ok");
@@ -192,7 +204,7 @@ export async function setThoughtLevel(server, params) {
192
204
  }
193
205
  /** session/updateRuntimeModelConfig → same: runtime overlay of session model config. */
194
206
  export async function updateRuntimeModelConfig(server, params) {
195
- const zcodeSid = resolveSidOrThrow(server, params);
207
+ const zcodeSid = await resolveSidOrThrow(server, params);
196
208
  const runtimeModel = params.runtimeModel;
197
209
  if (!runtimeModel)
198
210
  throw new Error("updateRuntimeModelConfig requires runtimeModel");
@@ -209,7 +221,7 @@ export async function updateRuntimeModelConfig(server, params) {
209
221
  }
210
222
  /** session/setModel → applyModelSwitch (runtime overlay, not persistence). */
211
223
  export async function setModel(server, params) {
212
- const zcodeSid = resolveSidOrThrow(server, params);
224
+ const zcodeSid = await resolveSidOrThrow(server, params);
213
225
  const modelId = params.modelId;
214
226
  if (!modelId)
215
227
  throw new Error("setModel requires modelId");
@@ -222,8 +234,12 @@ export async function setModel(server, params) {
222
234
  /** session/setMode → zcode session/setMode + emit config_option/current_mode updates. */
223
235
  export async function setMode(server, params, cx) {
224
236
  const acpSid = params.sessionId;
225
- const zcodeSid = resolveSidOrThrow(server, params);
226
- const mode = params.mode;
237
+ const zcodeSid = await resolveSidOrThrow(server, params);
238
+ // Two spellings reach this handler: the bridge's camelCase extension
239
+ // (`session/setMode` with `mode`) and the spec's `session/set_mode` with
240
+ // `modeId`. Clients like Paseo only send the spec spelling and failed with
241
+ // -32601 when it wasn't routed, so both normalize here.
242
+ const mode = params.mode ?? params.modeId;
227
243
  if (!mode)
228
244
  throw new Error("setMode requires mode");
229
245
  const resp = await server
@@ -263,7 +279,7 @@ export async function setMode(server, params, cx) {
263
279
  * With expectLock=true, we first require observing "prompt is running" once
264
280
  * (proving the turn truly started) before trusting a later success.
265
281
  */
266
- async function waitForTurnIdle(server, zcodeSid, timeoutMs, probeMethod, expectLock) {
282
+ export async function waitForTurnIdle(server, zcodeSid, timeoutMs, probeMethod, expectLock) {
267
283
  const backend = server.ensureBackend();
268
284
  const t0 = Date.now();
269
285
  let lockSeen = !expectLock;
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/handlers/extensions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/handlers/extensions.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,27 @@
8
8
  */
9
9
  import type * as acp from "@agentclientprotocol/sdk";
10
10
  import type { ZcodeAcpServer } from "../server.js";
11
- /** Send a `session/update` notification to the client. */
11
+ /**
12
+ * Send a `session/update` notification to the client, serialized through the
13
+ * per-session replay guard (see `enqueueSessionSend`).
14
+ */
12
15
  export declare function sendSessionUpdate(cx: acp.AgentContext, sessionId: string, update: acp.SessionUpdate): Promise<void>;
16
+ /**
17
+ * Run one client-notification send through the per-session replay guard:
18
+ * while a replay batch (`withReplayBatch`) is in flight for this session, the
19
+ * send queues behind it so a batch is never interleaved with live updates —
20
+ * this applies to background-task emissions too, not just handler dispatch.
21
+ * Sessions that never replay take the lock-free fast path.
22
+ */
23
+ export declare function enqueueSessionSend(sessionId: string, send: () => Promise<void>): Promise<void>;
24
+ /**
25
+ * Run one replay batch for a session under exclusive use of its guard.
26
+ * While the batch runs, `sendSessionUpdate` calls for the SAME session (live
27
+ * turn dispatch) queue behind it; the batch's own sends go through
28
+ * `replayMessages`, which notifies directly — that bypass is what makes the
29
+ * batch atomic without a re-entrant lock. Concurrent batches serialize.
30
+ */
31
+ export declare function withReplayBatch<T>(sessionId: string, fn: () => Promise<T>): Promise<T>;
13
32
  /** Send an `agent_message_chunk` text notification. */
14
33
  export declare function sendTextChunk(cx: acp.AgentContext, sessionId: string, text: string, messageId: string): Promise<void>;
15
34
  /** Shape of a slash command entry (matches ACP's AvailableCommand). */
@@ -26,8 +45,17 @@ export declare function sendAvailableCommands(cx: acp.AgentContext, sessionId: s
26
45
  * Send `available_commands_update` after a short delay so it lands after the
27
46
  * session response. ACP clients initialize their session state machine on the
28
47
  * response; a notification arriving earlier can be dropped, leaving the `/`
29
- * completion menu empty. Mirrors the Python bridge's deferred-notification
30
- * queue + 50ms drain. Fire-and-forget (returns void).
48
+ * completion menu empty.
49
+ *
50
+ * The notification is fired three times (50ms / 300ms / 1000ms) to cover slow
51
+ * client warm-up: on a fresh Zed tab the session view may still be initialising
52
+ * at the 50ms mark, dropping the first notification. `available_commands_update`
53
+ * is overwrite-semantics (not additive), so repeats are harmless — the client
54
+ * keeps the latest snapshot. Fire-and-forget (returns void).
55
+ *
56
+ * Each call cancels any still-pending timers from a prior call for the same
57
+ * session, so a rapid sequence (e.g. load then resume) can't have an old
58
+ * timer overwrite the newest command list.
31
59
  */
32
60
  export declare function sendAvailableCommandsDeferred(cx: acp.AgentContext, sessionId: string, commands: ReadonlyArray<SlashCommandEntry>): void;
33
61
  /** Throw a JSON-RPC error from a handler (the SDK converts it to an error response). */
@@ -1 +1 @@
1
- {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,GAAG,CAAC,aAAa,GACxB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAC3B,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,uEAAuE;AACvE,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1B;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,GACzC,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,GACzC,IAAI,CAMN;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAE/D;AAED,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,cAAc,CAAC;CACxB"}
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,GAAG,CAAC,aAAa,GACxB,OAAO,CAAC,IAAI,CAAC,CAEf;AAkBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9F;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAuB5F;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAC3B,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,uEAAuE;AACvE,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1B;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,GACzC,OAAO,CAAC,IAAI,CAAC,CAYf;AAWD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,6BAA6B,CAC3C,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,GACzC,IAAI,CAkCN;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAE/D;AAED,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,cAAc,CAAC;CACxB"}
@@ -7,9 +7,65 @@
7
7
  * the JSON shape so handlers stay readable.
8
8
  */
9
9
  import { RequestError } from "@agentclientprotocol/sdk";
10
- /** Send a `session/update` notification to the client. */
10
+ import { warn } from "../utils.js";
11
+ /**
12
+ * Send a `session/update` notification to the client, serialized through the
13
+ * per-session replay guard (see `enqueueSessionSend`).
14
+ */
11
15
  export function sendSessionUpdate(cx, sessionId, update) {
12
- return cx.notify("session/update", { sessionId, update });
16
+ return enqueueSessionSend(sessionId, () => cx.notify("session/update", { sessionId, update }));
17
+ }
18
+ const replayGuards = new Map();
19
+ /** Append a job to a guard's chain; a rejected job never breaks later sends. */
20
+ function enqueue(guard, job) {
21
+ const run = guard.tail.then(job);
22
+ guard.tail = run.then(() => undefined, () => undefined);
23
+ return run;
24
+ }
25
+ /**
26
+ * Run one client-notification send through the per-session replay guard:
27
+ * while a replay batch (`withReplayBatch`) is in flight for this session, the
28
+ * send queues behind it so a batch is never interleaved with live updates —
29
+ * this applies to background-task emissions too, not just handler dispatch.
30
+ * Sessions that never replay take the lock-free fast path.
31
+ */
32
+ export function enqueueSessionSend(sessionId, send) {
33
+ const guard = replayGuards.get(sessionId);
34
+ if (!guard)
35
+ return send();
36
+ return enqueue(guard, send);
37
+ }
38
+ /**
39
+ * Run one replay batch for a session under exclusive use of its guard.
40
+ * While the batch runs, `sendSessionUpdate` calls for the SAME session (live
41
+ * turn dispatch) queue behind it; the batch's own sends go through
42
+ * `replayMessages`, which notifies directly — that bypass is what makes the
43
+ * batch atomic without a re-entrant lock. Concurrent batches serialize.
44
+ */
45
+ export async function withReplayBatch(sessionId, fn) {
46
+ let guard = replayGuards.get(sessionId);
47
+ if (!guard) {
48
+ guard = { tail: Promise.resolve() };
49
+ replayGuards.set(sessionId, guard);
50
+ }
51
+ // Take ownership: later senders (including other batches) chain behind us.
52
+ const prev = guard.tail;
53
+ let release;
54
+ const held = new Promise((resolve) => (release = resolve));
55
+ guard.tail = held;
56
+ await prev;
57
+ try {
58
+ return await fn();
59
+ }
60
+ finally {
61
+ release();
62
+ // Drop the entry when nobody chained behind us. enqueue and
63
+ // withReplayBatch are synchronous up to their first await, so a concurrent
64
+ // taker always swaps guard.tail before this check runs — no race window.
65
+ if (replayGuards.get(sessionId) === guard && guard.tail === held) {
66
+ replayGuards.delete(sessionId);
67
+ }
68
+ }
13
69
  }
14
70
  /** Send an `agent_message_chunk` text notification. */
15
71
  export function sendTextChunk(cx, sessionId, text, messageId) {
@@ -34,19 +90,62 @@ export function sendAvailableCommands(cx, sessionId, commands) {
34
90
  }),
35
91
  });
36
92
  }
93
+ /**
94
+ * Per-session pending deferred-notification timeouts. Tracks the timers from
95
+ * repeated `sendAvailableCommandsDeferred` calls so a newer call can cancel
96
+ * the older call's still-pending timers. Without this, a slow timer (e.g.
97
+ * the 1000ms fire from an earlier session/load) could fire AFTER a newer
98
+ * call's 50ms fire, overwriting the newer command list with the stale one.
99
+ */
100
+ const activeDeferredTimeouts = new Map();
37
101
  /**
38
102
  * Send `available_commands_update` after a short delay so it lands after the
39
103
  * session response. ACP clients initialize their session state machine on the
40
104
  * response; a notification arriving earlier can be dropped, leaving the `/`
41
- * completion menu empty. Mirrors the Python bridge's deferred-notification
42
- * queue + 50ms drain. Fire-and-forget (returns void).
105
+ * completion menu empty.
106
+ *
107
+ * The notification is fired three times (50ms / 300ms / 1000ms) to cover slow
108
+ * client warm-up: on a fresh Zed tab the session view may still be initialising
109
+ * at the 50ms mark, dropping the first notification. `available_commands_update`
110
+ * is overwrite-semantics (not additive), so repeats are harmless — the client
111
+ * keeps the latest snapshot. Fire-and-forget (returns void).
112
+ *
113
+ * Each call cancels any still-pending timers from a prior call for the same
114
+ * session, so a rapid sequence (e.g. load then resume) can't have an old
115
+ * timer overwrite the newest command list.
43
116
  */
44
117
  export function sendAvailableCommandsDeferred(cx, sessionId, commands) {
45
- const t = setTimeout(() => {
46
- void sendAvailableCommands(cx, sessionId, commands);
47
- }, 50);
48
- // unref so shutdown is not held up by this deferred notification.
49
- t.unref?.();
118
+ // Cancel any pending timers from a previous call so the stale command list
119
+ // can't overwrite the one we're about to schedule.
120
+ const prev = activeDeferredTimeouts.get(sessionId);
121
+ if (prev) {
122
+ for (const t of prev)
123
+ clearTimeout(t);
124
+ prev.clear();
125
+ }
126
+ const active = new Set();
127
+ activeDeferredTimeouts.set(sessionId, active);
128
+ for (const delay of [50, 300, 1000]) {
129
+ const t = setTimeout(() => {
130
+ sendAvailableCommands(cx, sessionId, commands)
131
+ .catch((e) => {
132
+ warn(`available_commands_update failed (sid=${sessionId}, delay=${delay}): ` +
133
+ `${e instanceof Error ? e.message : String(e)}`);
134
+ })
135
+ .finally(() => {
136
+ active.delete(t);
137
+ // Drop the session entry once all three fires have settled, so the
138
+ // map doesn't retain empty Sets. Only delete if still ours — a newer
139
+ // call may have replaced the entry.
140
+ if (active.size === 0 && activeDeferredTimeouts.get(sessionId) === active) {
141
+ activeDeferredTimeouts.delete(sessionId);
142
+ }
143
+ });
144
+ }, delay);
145
+ // unref so shutdown is not held up by this deferred notification.
146
+ t.unref?.();
147
+ active.add(t);
148
+ }
50
149
  }
51
150
  /** Throw a JSON-RPC error from a handler (the SDK converts it to an error response). */
52
151
  export function throwError(code, message) {
@@ -1 +1 @@
1
- {"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIxD,0DAA0D;AAC1D,MAAM,UAAU,iBAAiB,CAC/B,EAAoB,EACpB,SAAiB,EACjB,MAAyB;IAEzB,OAAO,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,aAAa,CAC3B,EAAoB,EACpB,SAAiB,EACjB,IAAY,EACZ,SAAiB;IAEjB,OAAO,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE;QACtC,aAAa,EAAE,qBAAqB;QACpC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAC/B,SAAS;KACV,CAAC,CAAC;AACL,CAAC;AASD,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CACnC,EAAoB,EACpB,SAAiB,EACjB,QAA0C;IAE1C,OAAO,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE;QACtC,aAAa,EAAE,2BAA2B;QAC1C,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACpC,MAAM,GAAG,GAAoE;gBAC3E,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC;YACF,IAAI,CAAC,CAAC,KAAK;gBAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YACjC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC3C,EAAoB,EACpB,SAAiB,EACjB,QAA0C;IAE1C,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;QACxB,KAAK,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,kEAAkE;IAClE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;AACd,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,OAAe;IACtD,MAAM,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAoB,EACpB,SAAiB,EACjB,MAAyB;IAEzB,OAAO,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACjG,CAAC;AAMD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEpD,gFAAgF;AAChF,SAAS,OAAO,CAAC,KAAkB,EAAE,GAAwB;IAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CACnB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB,EAAE,IAAyB;IAC7E,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,EAAE,CAAC;IAC1B,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,SAAiB,EAAE,EAAoB;IAC9E,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACpC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,2EAA2E;IAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,IAAI,OAAoB,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,MAAM,IAAI,CAAC;IACX,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,CAAC;QACV,4DAA4D;QAC5D,2EAA2E;QAC3E,yEAAyE;QACzE,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACjE,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,aAAa,CAC3B,EAAoB,EACpB,SAAiB,EACjB,IAAY,EACZ,SAAiB;IAEjB,OAAO,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE;QACtC,aAAa,EAAE,qBAAqB;QACpC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAC/B,SAAS;KACV,CAAC,CAAC;AACL,CAAC;AASD,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CACnC,EAAoB,EACpB,SAAiB,EACjB,QAA0C;IAE1C,OAAO,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE;QACtC,aAAa,EAAE,2BAA2B;QAC1C,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACpC,MAAM,GAAG,GAAoE;gBAC3E,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC;YACF,IAAI,CAAC,CAAC,KAAK;gBAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YACjC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAA8C,CAAC;AAErF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,6BAA6B,CAC3C,EAAoB,EACpB,SAAiB,EACjB,QAA0C;IAE1C,2EAA2E;IAC3E,mDAAmD;IACnD,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;IACxD,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAE9C,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;iBAC3C,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,CACF,yCAAyC,SAAS,WAAW,KAAK,KAAK;oBACrE,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAClD,CAAC;YACJ,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACjB,mEAAmE;gBACnE,qEAAqE;gBACrE,oCAAoC;gBACpC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;oBAC1E,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,kEAAkE;QAClE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACZ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,OAAe;IACtD,MAAM,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Tail replay kernel — slicing, cursor pagination, and the `session/load`
3
+ * replay/`session/load_earlier` handlers (Proposal 0001 / ADR-0003).
4
+ *
5
+ * session/load replays history as session/update notifications; for long
6
+ * sessions that cost is O(full history) on every attach and reconnect. The
7
+ * helpers here slice the fetched messages into turn-aligned batches and page
8
+ * backwards with an opaque cursor. Batches are sent under the per-session
9
+ * replay lock (`withReplayBatch` in io.ts) so a batch never interleaves with
10
+ * live-turn updates for the same session; `replayMessages` is the one sender
11
+ * that bypasses the per-message lock — it only runs inside a batch.
12
+ */
13
+ import type * as acp from "@agentclientprotocol/sdk";
14
+ import type { ZcodeMessage } from "../backend/types.js";
15
+ import type { ZcodeAcpServer } from "../server.js";
16
+ /** Upper bound for a requested tail/page size (values above clamp to this). */
17
+ export declare const MAX_REPLAY_LIMIT = 500;
18
+ /** Page size for `session/load_earlier` when the request omits `limit`. */
19
+ export declare const DEFAULT_EARLIER_LIMIT = 50;
20
+ /** Wire metadata describing one delivered batch (additive-only over time). */
21
+ export interface ReplayMeta {
22
+ cursor: string;
23
+ hasMore: boolean;
24
+ replayedMessages: number;
25
+ replayedTurns: number;
26
+ totalMessages: number;
27
+ totalTurns: number;
28
+ }
29
+ export interface ReplaySlice {
30
+ batch: ZcodeMessage[];
31
+ meta: ReplayMeta;
32
+ }
33
+ /** `session/load_earlier` params (top-level — our parser, not an ACP spec method). */
34
+ export interface LoadEarlierParams {
35
+ sessionId: string;
36
+ before?: string;
37
+ limit?: number;
38
+ }
39
+ /**
40
+ * Slice the last `limit` messages, aligned back to the start of the turn
41
+ * containing the oldest one — never a mid-turn cut. `limit: 0` attaches with
42
+ * metadata only (cursor anchors at the end of history).
43
+ */
44
+ export declare function sliceTail(messages: ZcodeMessage[], limit: number): ReplaySlice;
45
+ /** Full-history slice (no `_meta.zcode.limit` on session/load). */
46
+ export declare function fullSlice(messages: ZcodeMessage[]): ReplaySlice;
47
+ /**
48
+ * Slice up to `limit` messages strictly older than the `before` cursor.
49
+ * The cursor points into a prefix of history, so turns appended after it was
50
+ * minted keep it valid; only a history that shrank (compaction/truncation)
51
+ * throws `cursor expired` — clients map that to a full re-`session/load`.
52
+ */
53
+ export declare function sliceBefore(messages: ZcodeMessage[], before: string, limit: number): ReplaySlice;
54
+ /**
55
+ * Read the tail limit from `session/load`'s `_meta.zcode.limit`. The SDK's
56
+ * zod params schema strips unknown top-level keys, so bridge extensions ride
57
+ * in `_meta` (ADR-0003). Returns null when absent/non-finite = full replay.
58
+ */
59
+ export declare function readTailLimit(params: acp.LoadSessionRequest): number | null;
60
+ /** Fetch session/messages from zcode (the bridge's only history source). */
61
+ export declare function fetchMessages(server: ZcodeAcpServer, zcodeSid: string): Promise<ZcodeMessage[]>;
62
+ /**
63
+ * Replay messages as session/update notifications, oldest → newest.
64
+ *
65
+ * MUST run inside `withReplayBatch` for the session: this is the one sender
66
+ * that bypasses the per-message lock in sendSessionUpdate (the batch already
67
+ * holds it), which is what makes the batch atomic against live dispatch.
68
+ */
69
+ export declare function replayMessages(cx: acp.AgentContext, acpSid: string, messages: ZcodeMessage[]): Promise<number>;
70
+ /**
71
+ * `session/load_earlier` — deliver one page of history strictly older than
72
+ * the `before` cursor, oldest → newest (clients prepend). Requires the
73
+ * session to already be attached in this bridge; pagination never triggers
74
+ * an implicit backend resume.
75
+ */
76
+ export declare function loadEarlier(server: ZcodeAcpServer, params: LoadEarlierParams, cx: acp.AgentContext): Promise<{
77
+ replayMeta: ReplayMeta;
78
+ }>;
79
+ //# sourceMappingURL=replay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/handlers/replay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,sFAAsF;AACtF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqFD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAW9E;AAED,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,WAAW,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAchG;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAK3E;AAED,4EAA4E;AAC5E,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,EAAE,CAAC,CAWzB;AAYD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,MAAM,CAAC,CA+DjB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,iBAAiB,EACzB,EAAE,EAAE,GAAG,CAAC,YAAY,GACnB,OAAO,CAAC;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,CAAC,CAarC"}