@kortix/sdk 0.12.7 → 0.13.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 (287) hide show
  1. package/README.md +13 -6
  2. package/dist/browser/session-sync/session-sync-registry.d.ts +7 -2
  3. package/dist/browser/session-sync/session-sync-registry.d.ts.map +1 -1
  4. package/dist/browser/session-sync/session-sync-registry.js +33 -44
  5. package/dist/browser/session-sync/session-sync-registry.js.map +1 -1
  6. package/dist/browser/stores/opencode-compaction-store.d.ts +9 -3
  7. package/dist/browser/stores/opencode-compaction-store.d.ts.map +1 -1
  8. package/dist/browser/stores/opencode-compaction-store.js +5 -12
  9. package/dist/browser/stores/opencode-compaction-store.js.map +1 -1
  10. package/dist/browser/stores/sandbox-connection-store.d.ts +28 -17
  11. package/dist/browser/stores/sandbox-connection-store.d.ts.map +1 -1
  12. package/dist/browser/stores/sandbox-connection-store.js +32 -84
  13. package/dist/browser/stores/sandbox-connection-store.js.map +1 -1
  14. package/dist/browser/stores/session-working-store.d.ts +73 -0
  15. package/dist/browser/stores/session-working-store.d.ts.map +1 -0
  16. package/dist/browser/stores/session-working-store.js +86 -0
  17. package/dist/browser/stores/session-working-store.js.map +1 -0
  18. package/dist/browser/stores/sync-store/types.d.ts +14 -4
  19. package/dist/browser/stores/sync-store/types.d.ts.map +1 -1
  20. package/dist/browser/stores/sync-store.d.ts +140 -3
  21. package/dist/browser/stores/sync-store.d.ts.map +1 -1
  22. package/dist/browser/stores/sync-store.js +425 -36
  23. package/dist/browser/stores/sync-store.js.map +1 -1
  24. package/dist/core/client/kortix.d.ts +102 -1
  25. package/dist/core/client/kortix.d.ts.map +1 -1
  26. package/dist/core/client/kortix.js +78 -0
  27. package/dist/core/client/kortix.js.map +1 -1
  28. package/dist/core/files/client.d.ts +50 -2
  29. package/dist/core/files/client.d.ts.map +1 -1
  30. package/dist/core/files/client.js +253 -44
  31. package/dist/core/files/client.js.map +1 -1
  32. package/dist/core/files/types.d.ts +11 -0
  33. package/dist/core/files/types.d.ts.map +1 -1
  34. package/dist/core/http/abort-error.d.ts +89 -0
  35. package/dist/core/http/abort-error.d.ts.map +1 -0
  36. package/dist/core/http/abort-error.js +190 -0
  37. package/dist/core/http/abort-error.js.map +1 -0
  38. package/dist/core/http/api-client.d.ts.map +1 -1
  39. package/dist/core/http/api-client.js +28 -4
  40. package/dist/core/http/api-client.js.map +1 -1
  41. package/dist/core/http/impersonation.d.ts +58 -0
  42. package/dist/core/http/impersonation.d.ts.map +1 -0
  43. package/dist/core/http/impersonation.js +174 -0
  44. package/dist/core/http/impersonation.js.map +1 -0
  45. package/dist/core/rest/platform-client/github-app.d.ts +13 -0
  46. package/dist/core/rest/platform-client/github-app.d.ts.map +1 -1
  47. package/dist/core/rest/platform-client/github-app.js +2 -0
  48. package/dist/core/rest/platform-client/github-app.js.map +1 -1
  49. package/dist/core/rest/platform-client/members.d.ts +10 -64
  50. package/dist/core/rest/platform-client/members.d.ts.map +1 -1
  51. package/dist/core/rest/platform-client/members.js +10 -28
  52. package/dist/core/rest/platform-client/members.js.map +1 -1
  53. package/dist/core/rest/projects-client/accounts.d.ts +30 -1
  54. package/dist/core/rest/projects-client/accounts.d.ts.map +1 -1
  55. package/dist/core/rest/projects-client/accounts.js +1 -1
  56. package/dist/core/rest/projects-client/accounts.js.map +1 -1
  57. package/dist/core/rest/projects-client/agent-config.d.ts +21 -0
  58. package/dist/core/rest/projects-client/agent-config.d.ts.map +1 -1
  59. package/dist/core/rest/projects-client/agent-config.js +14 -0
  60. package/dist/core/rest/projects-client/agent-config.js.map +1 -1
  61. package/dist/core/rest/projects-client/apps.d.ts +13 -0
  62. package/dist/core/rest/projects-client/apps.d.ts.map +1 -1
  63. package/dist/core/rest/projects-client/apps.js.map +1 -1
  64. package/dist/core/rest/projects-client/assignments.d.ts +114 -0
  65. package/dist/core/rest/projects-client/assignments.d.ts.map +1 -0
  66. package/dist/core/rest/projects-client/assignments.js +91 -0
  67. package/dist/core/rest/projects-client/assignments.js.map +1 -0
  68. package/dist/core/rest/projects-client/billing.d.ts +80 -1
  69. package/dist/core/rest/projects-client/billing.d.ts.map +1 -1
  70. package/dist/core/rest/projects-client/billing.js +61 -2
  71. package/dist/core/rest/projects-client/billing.js.map +1 -1
  72. package/dist/core/rest/projects-client/connectors.d.ts +2 -0
  73. package/dist/core/rest/projects-client/connectors.d.ts.map +1 -1
  74. package/dist/core/rest/projects-client/connectors.js.map +1 -1
  75. package/dist/core/rest/projects-client/files.js +2 -2
  76. package/dist/core/rest/projects-client/files.js.map +1 -1
  77. package/dist/core/rest/projects-client/gateway.d.ts +51 -0
  78. package/dist/core/rest/projects-client/gateway.d.ts.map +1 -1
  79. package/dist/core/rest/projects-client/gateway.js.map +1 -1
  80. package/dist/core/rest/projects-client/iam.d.ts +51 -3
  81. package/dist/core/rest/projects-client/iam.d.ts.map +1 -1
  82. package/dist/core/rest/projects-client/iam.js +18 -1
  83. package/dist/core/rest/projects-client/iam.js.map +1 -1
  84. package/dist/core/rest/projects-client/index.d.ts +1 -0
  85. package/dist/core/rest/projects-client/index.d.ts.map +1 -1
  86. package/dist/core/rest/projects-client/index.js +1 -0
  87. package/dist/core/rest/projects-client/index.js.map +1 -1
  88. package/dist/core/rest/projects-client/projects.d.ts +1 -1
  89. package/dist/core/rest/projects-client/projects.d.ts.map +1 -1
  90. package/dist/core/rest/projects-client/projects.js +3 -0
  91. package/dist/core/rest/projects-client/projects.js.map +1 -1
  92. package/dist/core/rest/projects-client/secrets.d.ts +11 -0
  93. package/dist/core/rest/projects-client/secrets.d.ts.map +1 -1
  94. package/dist/core/rest/projects-client/secrets.js +1 -1
  95. package/dist/core/rest/projects-client/secrets.js.map +1 -1
  96. package/dist/core/rest/projects-client/session-costs.d.ts +33 -0
  97. package/dist/core/rest/projects-client/session-costs.d.ts.map +1 -1
  98. package/dist/core/rest/projects-client/session-costs.js.map +1 -1
  99. package/dist/core/rest/projects-client/sessions.d.ts +253 -4
  100. package/dist/core/rest/projects-client/sessions.d.ts.map +1 -1
  101. package/dist/core/rest/projects-client/sessions.js +101 -4
  102. package/dist/core/rest/projects-client/sessions.js.map +1 -1
  103. package/dist/core/rest/projects-client/shared.d.ts +10 -1
  104. package/dist/core/rest/projects-client/shared.d.ts.map +1 -1
  105. package/dist/core/rest/projects-client/shared.js.map +1 -1
  106. package/dist/core/rest/projects-client/tokens.d.ts +13 -1
  107. package/dist/core/rest/projects-client/tokens.d.ts.map +1 -1
  108. package/dist/core/rest/projects-client/tokens.js +7 -2
  109. package/dist/core/rest/projects-client/tokens.js.map +1 -1
  110. package/dist/core/rest/projects-client/triggers.d.ts +69 -2
  111. package/dist/core/rest/projects-client/triggers.d.ts.map +1 -1
  112. package/dist/core/rest/projects-client/triggers.js +1 -1
  113. package/dist/core/rest/projects-client/triggers.js.map +1 -1
  114. package/dist/core/session/compaction.d.ts +98 -0
  115. package/dist/core/session/compaction.d.ts.map +1 -0
  116. package/dist/core/session/compaction.js +108 -0
  117. package/dist/core/session/compaction.js.map +1 -0
  118. package/dist/core/session/health.d.ts +22 -0
  119. package/dist/core/session/health.d.ts.map +1 -1
  120. package/dist/core/session/health.js +31 -5
  121. package/dist/core/session/health.js.map +1 -1
  122. package/dist/core/session/index.d.ts +2 -0
  123. package/dist/core/session/index.d.ts.map +1 -1
  124. package/dist/core/session/index.js +2 -0
  125. package/dist/core/session/index.js.map +1 -1
  126. package/dist/core/session/message-queue.d.ts +79 -15
  127. package/dist/core/session/message-queue.d.ts.map +1 -1
  128. package/dist/core/session/message-queue.js +73 -27
  129. package/dist/core/session/message-queue.js.map +1 -1
  130. package/dist/core/session/rewind.d.ts +76 -10
  131. package/dist/core/session/rewind.d.ts.map +1 -1
  132. package/dist/core/session/rewind.js +68 -11
  133. package/dist/core/session/rewind.js.map +1 -1
  134. package/dist/core/session/working.d.ts +241 -0
  135. package/dist/core/session/working.d.ts.map +1 -0
  136. package/dist/core/session/working.js +261 -0
  137. package/dist/core/session/working.js.map +1 -0
  138. package/dist/core/session-sync/session-sync-controller.d.ts +35 -20
  139. package/dist/core/session-sync/session-sync-controller.d.ts.map +1 -1
  140. package/dist/core/session-sync/session-sync-controller.js +48 -115
  141. package/dist/core/session-sync/session-sync-controller.js.map +1 -1
  142. package/dist/core/stream/event-stream.d.ts +22 -0
  143. package/dist/core/stream/event-stream.d.ts.map +1 -1
  144. package/dist/core/stream/event-stream.js +132 -36
  145. package/dist/core/stream/event-stream.js.map +1 -1
  146. package/dist/core/turns/classify.d.ts +5 -2
  147. package/dist/core/turns/classify.d.ts.map +1 -1
  148. package/dist/core/turns/classify.js +1 -0
  149. package/dist/core/turns/classify.js.map +1 -1
  150. package/dist/core/turns/errors.d.ts +11 -0
  151. package/dist/core/turns/errors.d.ts.map +1 -1
  152. package/dist/core/turns/errors.js +49 -2
  153. package/dist/core/turns/errors.js.map +1 -1
  154. package/dist/core/turns/grouping.d.ts +32 -2
  155. package/dist/core/turns/grouping.d.ts.map +1 -1
  156. package/dist/core/turns/grouping.js +31 -2
  157. package/dist/core/turns/grouping.js.map +1 -1
  158. package/dist/core/turns/index.d.ts +1 -0
  159. package/dist/core/turns/index.d.ts.map +1 -1
  160. package/dist/core/turns/index.js +1 -0
  161. package/dist/core/turns/index.js.map +1 -1
  162. package/dist/core/turns/open-turn.d.ts +81 -0
  163. package/dist/core/turns/open-turn.d.ts.map +1 -0
  164. package/dist/core/turns/open-turn.js +77 -0
  165. package/dist/core/turns/open-turn.js.map +1 -0
  166. package/dist/core/turns/state.d.ts +1 -1
  167. package/dist/core/turns/state.d.ts.map +1 -1
  168. package/dist/core/turns/state.js +29 -27
  169. package/dist/core/turns/state.js.map +1 -1
  170. package/dist/core/turns/types.d.ts +8 -0
  171. package/dist/core/turns/types.d.ts.map +1 -1
  172. package/dist/index.d.ts +3 -1
  173. package/dist/index.d.ts.map +1 -1
  174. package/dist/index.js +3 -1
  175. package/dist/index.js.map +1 -1
  176. package/dist/kortix.esm.min.js +25 -25
  177. package/dist/kortix.global.js +25 -25
  178. package/dist/node/server.d.ts.map +1 -1
  179. package/dist/node/server.js +14 -2
  180. package/dist/node/server.js.map +1 -1
  181. package/dist/react/index.d.ts +3 -1
  182. package/dist/react/index.d.ts.map +1 -1
  183. package/dist/react/index.js +8 -1
  184. package/dist/react/index.js.map +1 -1
  185. package/dist/react/initial-session-pin.d.ts +17 -0
  186. package/dist/react/initial-session-pin.d.ts.map +1 -1
  187. package/dist/react/initial-session-pin.js +58 -0
  188. package/dist/react/initial-session-pin.js.map +1 -1
  189. package/dist/react/opencode.d.ts +6 -2
  190. package/dist/react/opencode.d.ts.map +1 -1
  191. package/dist/react/opencode.js +5 -1
  192. package/dist/react/opencode.js.map +1 -1
  193. package/dist/react/prefetch-session-start.d.ts +10 -4
  194. package/dist/react/prefetch-session-start.d.ts.map +1 -1
  195. package/dist/react/prefetch-session-start.js +10 -4
  196. package/dist/react/prefetch-session-start.js.map +1 -1
  197. package/dist/react/query-keys.d.ts +8 -2
  198. package/dist/react/query-keys.d.ts.map +1 -1
  199. package/dist/react/query-keys.js +8 -2
  200. package/dist/react/query-keys.js.map +1 -1
  201. package/dist/react/session-start-stash.d.ts +25 -0
  202. package/dist/react/session-start-stash.d.ts.map +1 -1
  203. package/dist/react/session-start-stash.js +34 -3
  204. package/dist/react/session-start-stash.js.map +1 -1
  205. package/dist/react/session-title-sync.d.ts +5 -1
  206. package/dist/react/session-title-sync.d.ts.map +1 -1
  207. package/dist/react/session-title-sync.js +16 -4
  208. package/dist/react/session-title-sync.js.map +1 -1
  209. package/dist/react/use-admin-accounts.d.ts +121 -0
  210. package/dist/react/use-admin-accounts.d.ts.map +1 -1
  211. package/dist/react/use-admin-accounts.js +92 -0
  212. package/dist/react/use-admin-accounts.js.map +1 -1
  213. package/dist/react/use-can.d.ts +105 -0
  214. package/dist/react/use-can.d.ts.map +1 -0
  215. package/dist/react/use-can.js +190 -0
  216. package/dist/react/use-can.js.map +1 -0
  217. package/dist/react/use-canonical-opencode-session.d.ts +6 -1
  218. package/dist/react/use-canonical-opencode-session.d.ts.map +1 -1
  219. package/dist/react/use-canonical-opencode-session.js +46 -3
  220. package/dist/react/use-canonical-opencode-session.js.map +1 -1
  221. package/dist/react/use-impersonation.d.ts +54 -0
  222. package/dist/react/use-impersonation.d.ts.map +1 -0
  223. package/dist/react/use-impersonation.js +91 -0
  224. package/dist/react/use-impersonation.js.map +1 -0
  225. package/dist/react/use-opencode-events/handle-event.d.ts +10 -0
  226. package/dist/react/use-opencode-events/handle-event.d.ts.map +1 -1
  227. package/dist/react/use-opencode-events/handle-event.js +76 -7
  228. package/dist/react/use-opencode-events/handle-event.js.map +1 -1
  229. package/dist/react/use-opencode-events/helpers.d.ts +21 -8
  230. package/dist/react/use-opencode-events/helpers.d.ts.map +1 -1
  231. package/dist/react/use-opencode-events/helpers.js +25 -26
  232. package/dist/react/use-opencode-events/helpers.js.map +1 -1
  233. package/dist/react/use-opencode-events/index.d.ts.map +1 -1
  234. package/dist/react/use-opencode-events/index.js +43 -26
  235. package/dist/react/use-opencode-events/index.js.map +1 -1
  236. package/dist/react/use-opencode-events/use-event-stream-refs.d.ts.map +1 -1
  237. package/dist/react/use-opencode-events/use-event-stream-refs.js +66 -3
  238. package/dist/react/use-opencode-events/use-event-stream-refs.js.map +1 -1
  239. package/dist/react/use-opencode-local.d.ts +17 -0
  240. package/dist/react/use-opencode-local.d.ts.map +1 -1
  241. package/dist/react/use-opencode-local.js +41 -7
  242. package/dist/react/use-opencode-local.js.map +1 -1
  243. package/dist/react/use-opencode-sessions/messages.d.ts +101 -1
  244. package/dist/react/use-opencode-sessions/messages.d.ts.map +1 -1
  245. package/dist/react/use-opencode-sessions/messages.js +481 -63
  246. package/dist/react/use-opencode-sessions/messages.js.map +1 -1
  247. package/dist/react/use-project-apps.d.ts +24 -1
  248. package/dist/react/use-project-apps.d.ts.map +1 -1
  249. package/dist/react/use-project-apps.js +5 -3
  250. package/dist/react/use-project-apps.js.map +1 -1
  251. package/dist/react/use-runtime-boot-stalled.d.ts +32 -0
  252. package/dist/react/use-runtime-boot-stalled.d.ts.map +1 -0
  253. package/dist/react/use-runtime-boot-stalled.js +48 -0
  254. package/dist/react/use-runtime-boot-stalled.js.map +1 -0
  255. package/dist/react/use-runtime-reconnect.d.ts +67 -1
  256. package/dist/react/use-runtime-reconnect.d.ts.map +1 -1
  257. package/dist/react/use-runtime-reconnect.js +116 -18
  258. package/dist/react/use-runtime-reconnect.js.map +1 -1
  259. package/dist/react/use-session-prompts.d.ts +113 -0
  260. package/dist/react/use-session-prompts.d.ts.map +1 -0
  261. package/dist/react/use-session-prompts.js +242 -0
  262. package/dist/react/use-session-prompts.js.map +1 -0
  263. package/dist/react/use-session-send.d.ts +169 -20
  264. package/dist/react/use-session-send.d.ts.map +1 -1
  265. package/dist/react/use-session-send.js +178 -29
  266. package/dist/react/use-session-send.js.map +1 -1
  267. package/dist/react/use-session-sync.d.ts +35 -2
  268. package/dist/react/use-session-sync.d.ts.map +1 -1
  269. package/dist/react/use-session-sync.js +46 -9
  270. package/dist/react/use-session-sync.js.map +1 -1
  271. package/dist/react/use-session-working.d.ts +57 -0
  272. package/dist/react/use-session-working.d.ts.map +1 -0
  273. package/dist/react/use-session-working.js +178 -0
  274. package/dist/react/use-session-working.js.map +1 -0
  275. package/dist/react/use-session.d.ts +122 -5
  276. package/dist/react/use-session.d.ts.map +1 -1
  277. package/dist/react/use-session.js +343 -69
  278. package/dist/react/use-session.js.map +1 -1
  279. package/package.json +2 -2
  280. package/dist/browser/stores/tab-store.d.ts +0 -91
  281. package/dist/browser/stores/tab-store.d.ts.map +0 -1
  282. package/dist/browser/stores/tab-store.js +0 -369
  283. package/dist/browser/stores/tab-store.js.map +0 -1
  284. package/dist/core/session/send-queue.d.ts +0 -70
  285. package/dist/core/session/send-queue.d.ts.map +0 -1
  286. package/dist/core/session/send-queue.js +0 -116
  287. package/dist/core/session/send-queue.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-connection-store.js","sourceRoot":"","sources":["../../../src/browser/stores/sandbox-connection-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox-connection-store.js","sourceRoot":"","sources":["../../../src/browser/stores/sandbox-connection-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import type { AbortReceipt, SendReceipt, WorkingInboxInput } from '../../core/session/working.js';
2
+ /**
3
+ * The LOCAL-ISH inputs to `projectWorking`, one set per Kortix session.
4
+ *
5
+ * They live in a store rather than in each caller's `useState` because more
6
+ * than one place mounts `useSessionWorking` for the same session — `useSession`
7
+ * on the route, the composer, the session panel — and they all share one
8
+ * react-query cache entry for `GET .../turn`. When each held its own receipt,
9
+ * the observer WITHOUT one polled on its own timer, wrote an uninformed "no
10
+ * turns" read into that shared entry, and defeated the receipt the other one
11
+ * was standing on: the composer flipped Stop back to Send mid-send. One set of
12
+ * inputs per session is what makes "one answer" true for every mount point.
13
+ *
14
+ * Nothing here is authority. Every field is bounded by the projection
15
+ * (`OPTIMISTIC_RECEIPT_MAX_MS`, `OPTIMISTIC_ABORT_MAX_MS`,
16
+ * `INBOX_OBSERVATION_MAX_MS`), so a stale entry ages out rather than latching.
17
+ */
18
+ interface SessionWorkingState {
19
+ /** Keyed by KORTIX session id — the id `GET .../turn` is addressed by, not
20
+ * the OpenCode wire id the sync store uses. */
21
+ receipts: Record<string, SendReceipt | null>;
22
+ aborts: Record<string, AbortReceipt>;
23
+ inbox: Record<string, WorkingInboxInput>;
24
+ /** Record that a prompt just left this tab. Replaces any previous receipt:
25
+ * the newest send is the one the UI is standing on. Also releases any
26
+ * pending stop — sending is the user saying they are not stopping. */
27
+ noteSendReceipt: (sessionId: string, receipt: {
28
+ messageId: string;
29
+ atMs: number;
30
+ }) => void;
31
+ /** The server durably accepted `messageId`. Ignored when a NEWER send has
32
+ * already replaced the receipt — otherwise the old response would release a
33
+ * receipt for a send it knows nothing about. */
34
+ acceptSendReceipt: (sessionId: string, messageId: string, atMs: number) => void;
35
+ /**
36
+ * Nothing is coming: a refused send, Stop, or leaving the session.
37
+ *
38
+ * `messageId` names the send being dropped, and is required of every caller
39
+ * that HAS one, for the same reason `acceptSendReceipt` checks it: a
40
+ * `/compact` rejected at T+600ms used to delete the receipt of an ordinary
41
+ * prompt submitted at T+500ms whose POST was still on the wire, and an
42
+ * uninformed `/turn` read then flipped the composer back to Send mid-send.
43
+ * Omit it only where nothing is coming for ANY send — Stop, unmount.
44
+ */
45
+ clearSendReceipt: (sessionId: string, messageId?: string) => void;
46
+ /**
47
+ * Record that this tab asked the running turn to end. Keeps the FIRST
48
+ * instant while a stop is still unsettled: two paths issue the same cancel
49
+ * (the SDK's `cancel()` and the host's `issueSessionCancel`) and restamping
50
+ * would extend the bar every time either one fired again.
51
+ */
52
+ noteAbortReceipt: (sessionId: string, atMs: number) => void;
53
+ /** The server acknowledged the cancel. Stamped once — the first
54
+ * acknowledgement is the one a server read can be measured against. */
55
+ settleAbortReceipt: (sessionId: string, atMs: number) => void;
56
+ /** One reading of the durable prompt inbox, stamped at ISSUE time. */
57
+ noteInboxPending: (sessionId: string, pending: number, atMs: number) => void;
58
+ /** `POST .../prompts` returned: the row EXISTS, and the server said so. Raise
59
+ * the inbox floor to at least one pending row, covering the gap between that
60
+ * response and the list query refetching — a `/turn` poll landing in that gap
61
+ * answers "no turns" honestly and used to flip the composer back to Send with
62
+ * the user's prompt already queued. */
63
+ notePromptAccepted: (sessionId: string, atMs: number) => void;
64
+ /** Drop every input this session holds. Called by `useSessionWorking` when
65
+ * the LAST observer of the session unmounts — the maps otherwise accumulate
66
+ * one entry per session visited for the tab's lifetime. Correctness never
67
+ * depended on it (every field is bounded), this is leak hygiene. */
68
+ clearSession: (sessionId: string) => void;
69
+ reset: () => void;
70
+ }
71
+ export declare const useSessionWorkingStore: import("zustand").UseBoundStore<import("zustand").StoreApi<SessionWorkingState>>;
72
+ export {};
73
+ //# sourceMappingURL=session-working-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-working-store.d.ts","sourceRoot":"","sources":["../../../src/browser/stores/session-working-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/F;;;;;;;;;;;;;;;GAeG;AACH,UAAU,mBAAmB;IAC3B;oDACgD;IAChD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAEzC;;2EAEuE;IACvE,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3F;;qDAEiD;IACjD,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChF;;;;;;;;;OASG;IACH,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D;4EACwE;IACxE,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,sEAAsE;IACtE,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7E;;;;4CAIwC;IACxC,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D;;;yEAGqE;IACrE,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,sBAAsB,kFA0FhC,CAAC"}
@@ -0,0 +1,86 @@
1
+ 'use client';
2
+ import { create } from 'zustand';
3
+ export const useSessionWorkingStore = create()((set) => ({
4
+ receipts: {},
5
+ aborts: {},
6
+ inbox: {},
7
+ noteSendReceipt: (sessionId, receipt) => set((state) => {
8
+ if (!sessionId)
9
+ return state;
10
+ const { [sessionId]: _stopped, ...aborts } = state.aborts;
11
+ return {
12
+ receipts: {
13
+ ...state.receipts,
14
+ [sessionId]: { messageId: receipt.messageId, atMs: receipt.atMs, acceptedAtMs: null },
15
+ },
16
+ // A send releases the stop. Leaving it would bar `/turn` from reporting
17
+ // the turn this very send is about to start.
18
+ aborts,
19
+ };
20
+ }),
21
+ acceptSendReceipt: (sessionId, messageId, atMs) => set((state) => {
22
+ const current = state.receipts[sessionId];
23
+ if (!current || current.messageId !== messageId || current.acceptedAtMs != null) {
24
+ return state;
25
+ }
26
+ return { receipts: { ...state.receipts, [sessionId]: { ...current, acceptedAtMs: atMs } } };
27
+ }),
28
+ clearSendReceipt: (sessionId, messageId) => set((state) => {
29
+ const current = state.receipts[sessionId];
30
+ if (!(sessionId in state.receipts))
31
+ return state;
32
+ if (messageId !== undefined && current?.messageId !== messageId)
33
+ return state;
34
+ const { [sessionId]: _dropped, ...rest } = state.receipts;
35
+ return { receipts: rest };
36
+ }),
37
+ noteAbortReceipt: (sessionId, atMs) => set((state) => {
38
+ if (!sessionId)
39
+ return state;
40
+ const current = state.aborts[sessionId];
41
+ if (current && current.settledAtMs == null)
42
+ return state;
43
+ return { aborts: { ...state.aborts, [sessionId]: { atMs, settledAtMs: null } } };
44
+ }),
45
+ settleAbortReceipt: (sessionId, atMs) => set((state) => {
46
+ const current = state.aborts[sessionId];
47
+ if (!current || current.settledAtMs != null)
48
+ return state;
49
+ return { aborts: { ...state.aborts, [sessionId]: { ...current, settledAtMs: atMs } } };
50
+ }),
51
+ noteInboxPending: (sessionId, pending, atMs) => set((state) => {
52
+ if (!sessionId)
53
+ return state;
54
+ const current = state.inbox[sessionId];
55
+ // Readings settle in whatever order the network gives them; only the
56
+ // newest OBSERVATION may stand, or a late older one would walk the
57
+ // projection backwards.
58
+ if (current && current.atMs > atMs)
59
+ return state;
60
+ if (current && current.atMs === atMs && current.pending === pending)
61
+ return state;
62
+ return { inbox: { ...state.inbox, [sessionId]: { pending, atMs } } };
63
+ }),
64
+ notePromptAccepted: (sessionId, atMs) => set((state) => {
65
+ if (!sessionId)
66
+ return state;
67
+ const current = state.inbox[sessionId];
68
+ if (current && current.atMs > atMs)
69
+ return state;
70
+ const pending = Math.max(1, current?.pending ?? 0);
71
+ return { inbox: { ...state.inbox, [sessionId]: { pending, atMs } } };
72
+ }),
73
+ clearSession: (sessionId) => set((state) => {
74
+ if (!(sessionId in state.receipts) &&
75
+ !(sessionId in state.aborts) &&
76
+ !(sessionId in state.inbox)) {
77
+ return state;
78
+ }
79
+ const { [sessionId]: _r, ...receipts } = state.receipts;
80
+ const { [sessionId]: _a, ...aborts } = state.aborts;
81
+ const { [sessionId]: _i, ...inbox } = state.inbox;
82
+ return { receipts, aborts, inbox };
83
+ }),
84
+ reset: () => set({ receipts: {}, aborts: {}, inbox: {} }),
85
+ }));
86
+ //# sourceMappingURL=session-working-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-working-store.js","sourceRoot":"","sources":["../../../src/browser/stores/session-working-store.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAuEjC,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,EAAuB,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5E,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;IAET,eAAe,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAC7B,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1D,OAAO;YACL,QAAQ,EAAE;gBACR,GAAG,KAAK,CAAC,QAAQ;gBACjB,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;aACtF;YACD,wEAAwE;YACxE,6CAA6C;YAC7C,MAAM;SACP,CAAC;IACJ,CAAC,CAAC;IAEJ,iBAAiB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAChD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YAChF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC9F,CAAC,CAAC;IAEJ,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CACzC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QACjD,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC9E,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC1D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEJ,gBAAgB,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CACpC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QACzD,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACnF,CAAC,CAAC;IAEJ,kBAAkB,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QAC1D,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACzF,CAAC,CAAC;IAEJ,gBAAgB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAC7C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,qEAAqE;QACrE,mEAAmE;QACnE,wBAAwB;QACxB,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI;YAAE,OAAO,KAAK,CAAC;QACjD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAClF,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACvE,CAAC,CAAC;IAEJ,kBAAkB,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI;YAAE,OAAO,KAAK,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;QACnD,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACvE,CAAC,CAAC;IAEJ,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,IACE,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC;YAC9B,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;YAC5B,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,EAC3B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;QACxD,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACpD,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;QAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC,CAAC;IAEJ,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;CAC1D,CAAC,CAAC,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import type { AssistantMessage, Message, Part, SnapshotFileDiff } from "@opencode-ai/sdk/v2/client";
2
+ import type { AbortReason } from "../../../core/http/abort-error.js";
3
+ export type { SessionRewindState } from "../../../core/session/rewind.js";
2
4
  export type FileDiff = Omit<SnapshotFileDiff, "patch"> & {
3
5
  patch?: string;
4
6
  before?: string;
@@ -7,15 +9,23 @@ export type FileDiff = Omit<SnapshotFileDiff, "patch"> & {
7
9
  /**
8
10
  * A locally-synthesized "operation aborted" marker — distinct from (and not
9
11
  * present in) the opencode SDK's `AssistantMessage['error']` union. The React
10
- * layer fabricates this shape when a runtime disposes mid-stream (there's no
11
- * real SSE event for that case); consumers duck-type on `.name`/`.data.message`
12
- * exactly like the real wire errors, so it only needs to match that access
13
- * pattern, not the SDK's exact error union.
12
+ * layer fabricates this shape both for a real user Stop and when a runtime
13
+ * disposes mid-stream (there's no real SSE event for either case); consumers
14
+ * duck-type on `.name`/`.data.message` exactly like the real wire errors, so
15
+ * it only needs to match that access pattern, not the SDK's exact error
16
+ * union.
17
+ *
18
+ * `data.reason` is the machine-readable WHY — read via `abortErrorReason`
19
+ * (`core/http/abort-error.ts`), which is also where the closed `AbortReason`
20
+ * union and its "not yet emitted" members are documented. Optional because a
21
+ * real wire `MessageAbortedError` (which shares this duck-typed access
22
+ * pattern but is a different TS type) never carries one.
14
23
  */
15
24
  export interface SyntheticAbortError {
16
25
  name: "AbortError";
17
26
  data: {
18
27
  message: string;
28
+ reason?: AbortReason;
19
29
  };
20
30
  }
21
31
  /** Every shape `AssistantMessage.error` (and `session.error`'s `error`
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/browser/stores/sync-store/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAChB,OAAO,EACP,IAAI,EACJ,gBAAgB,EAChB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1B;AAED;;0BAE0B;AAC1B,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,mBAAmB,CAAC;AAMxF,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/browser/stores/sync-store/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAChB,OAAO,EACP,IAAI,EACJ,gBAAgB,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIvE,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC;CAChD;AAED;;0BAE0B;AAC1B,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,mBAAmB,CAAC;AAMxF,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;CACd"}
@@ -1,15 +1,58 @@
1
1
  import type { Message, Event as OpenCodeEvent, Part, SessionStatus, Todo } from "@opencode-ai/sdk/v2/client";
2
2
  import { ascendingId } from "./sync-store/ascending-id.js";
3
3
  import { Binary } from "./sync-store/binary.js";
4
- import type { FileDiff, MessageError, MessageWithParts } from "./sync-store/types.js";
4
+ import type { FileDiff, MessageError, MessageWithParts, SessionRewindState } from "./sync-store/types.js";
5
5
  export { ascendingId, Binary };
6
- export type { MessageError, MessageWithParts };
6
+ export type { MessageError, MessageWithParts, SessionRewindState };
7
+ /**
8
+ * Do two `SessionStatus` values say the same thing?
9
+ *
10
+ * NOT a deep equality: it compares `type` plus exactly the fields the retry
11
+ * readers actually read — `getRetryInfo` / `getRetryMessage` in
12
+ * `core/turns/state.ts` take `attempt`, `message` and `next`. A blanket
13
+ * deep-equal would also compare `action`, which nothing reads, and would then
14
+ * mint a new observation for a change no surface can render.
15
+ *
16
+ * The point of the comparison is object identity, not the boolean: a status
17
+ * frame is an OBSERVATION, and `useSessionWorking` dates it by the identity of
18
+ * the object in the store. Two equal values are one observation.
19
+ */
20
+ export declare function sameSessionStatus(a: SessionStatus | undefined, b: SessionStatus | undefined): boolean;
7
21
  interface SyncState {
8
22
  messages: Record<string, Message[]>;
9
23
  parts: Record<string, Part[]>;
10
24
  sessionStatus: Record<string, SessionStatus>;
11
25
  diffs: Record<string, FileDiff[]>;
12
26
  todos: Record<string, Todo[]>;
27
+ /**
28
+ * T22 — the client's mirror of the server's staged/committed session
29
+ * revert, per session. `null` means "no revert pointer" (either never
30
+ * staged, or observed cleared/committed-and-deleted). Absent from the
31
+ * record entirely (`undefined` via plain lookup) means the same thing as
32
+ * `null` — no session has ever had one tracked.
33
+ *
34
+ * Driven by three independent sources that must all converge on the same
35
+ * shape: a local `rewind()` REST call (`useSession`), the wire events
36
+ * `session.next.revert.staged/.cleared/.committed` (below, via
37
+ * `applyEvent`), and a `Session.revert` field read off `session.created`/
38
+ * `session.updated` (`syncSessionRevertFromInfo`, called from
39
+ * `use-opencode-events/handle-event.ts` — the reload/cross-tab recovery
40
+ * path, since a hard reload observes neither of the other two).
41
+ */
42
+ sessionRevert: Record<string, SessionRewindState | null>;
43
+ /**
44
+ * F2 — set when a `session.next.revert.committed` event arrives for a
45
+ * session with NO tracked local `sessionRevert` record (a fresh mount, or
46
+ * a second tab that never observed `.staged`). The store deliberately
47
+ * does not guess a watermark and delete a range in that case — see
48
+ * `markSessionRevertNeedsTailReconcile`'s doc comment for why — so this
49
+ * is the signal a consumer (the sync controller / `use-opencode-events`)
50
+ * reads to know it must fetch the session's real transcript instead of
51
+ * trusting local messages. `true` means "reconcile owed"; absent or
52
+ * `false` means nothing is owed. Cleared by
53
+ * `clearSessionRevertNeedsTailReconcile` once a consumer has acted on it.
54
+ */
55
+ sessionRevertNeedsTailReconcile: Record<string, boolean>;
13
56
  applyEvent: (event: OpenCodeEvent) => void;
14
57
  upsertMessage: (sessionID: string, message: Message) => void;
15
58
  removeMessage: (sessionID: string, messageID: string) => void;
@@ -45,11 +88,84 @@ interface SyncState {
45
88
  * it technically part of the published surface, so an out-of-repo consumer
46
89
  * calling it directly would fail to compile — that needs a semver-relevant
47
90
  * callout in the next release notes.
91
+ *
92
+ * `eventID` (T14): the wire's own `message.part.delta` event id
93
+ * (`event.id`, not `event.properties.id` — see `deltaEventTails` above for
94
+ * why this is the correct duplicate-delivery key). Optional and additive:
95
+ * omitting it reproduces this function's exact pre-existing behavior, so
96
+ * the one in-repo caller change (`applyEvent`) is the only place this
97
+ * matters, and appending a trailing optional param is not a breaking
98
+ * arity change.
48
99
  */
49
- applyPartDelta: (sessionID: string, messageID: string, partID: string, field: string, delta: string) => void;
100
+ applyPartDelta: (sessionID: string, messageID: string, partID: string, field: string, delta: string, eventID?: string) => void;
50
101
  setStatus: (sessionID: string, status: SessionStatus) => void;
51
102
  setDiff: (sessionID: string, diffs: FileDiff[]) => void;
52
103
  setTodo: (sessionID: string, todos: Todo[]) => void;
104
+ /**
105
+ * Stage a rewind's local hide window. Idempotent per boundary id: calling
106
+ * this again for the SAME `messageID` while already staged is a no-op —
107
+ * whichever caller stages first freezes the watermark, and a redundant
108
+ * echo (the local REST caller AND the wire's `.staged` confirmation both
109
+ * call this for the same action) must never widen it after messages have
110
+ * moved on. A DIFFERENT `messageID` replaces the record with a fresh
111
+ * watermark computed from the CURRENTLY known message list.
112
+ */
113
+ stageSessionRevert: (sessionId: string, messageId: string) => void;
114
+ /** Mark a staged rewind committed (Restore stops being offered) without
115
+ * dropping its hide window — see `commitSessionRewind`'s doc comment.
116
+ * No-op when nothing is tracked for this session. */
117
+ commitSessionRevert: (sessionId: string) => void;
118
+ /** Drop the local revert record entirely — `unrevert` succeeded, or a
119
+ * `session.next.revert.cleared` wire event says the server dropped it.
120
+ * The window was only ever HIDDEN while staged, never deleted, so
121
+ * clearing alone is enough to make every row visible again. */
122
+ clearSessionRevert: (sessionId: string) => void;
123
+ /**
124
+ * The `.committed` event's actual cleanup: delete every message (and its
125
+ * parts) inside `[boundaryId, watermark]` and drop the revert record. The
126
+ * first explicit deletion this store performs for rewind — `hydrate`
127
+ * never deletes (see its own doc comment), by design; this is a
128
+ * dedicated, separately tested action instead of a weakening of that
129
+ * invariant. A session with no local messages (or nothing in range)
130
+ * safely clears the record and does nothing else.
131
+ */
132
+ applyCommittedRevert: (sessionId: string, boundaryId: string, watermark: string) => void;
133
+ /**
134
+ * F2 — mark `sessionId` as owing a tail reconcile: a
135
+ * `session.next.revert.committed` event arrived with no tracked local
136
+ * `sessionRevert` record to source a trustworthy watermark from. The
137
+ * REMOVED fallback (`newestMessageId(local messages)`) could be the
138
+ * user's own REPLACEMENT prompt — if its `message.updated` happened to
139
+ * arrive before this `.committed` event, that fallback deleted the
140
+ * replacement and its answer along with the abandoned range. Deliberately
141
+ * does NOT touch `messages`/`parts`/`sessionRevert` — the server's own
142
+ * transcript (fetched by whatever the flagged consumer's reconcile reads)
143
+ * is the only trustworthy source of the real truncation here, not a
144
+ * local guess.
145
+ */
146
+ markSessionRevertNeedsTailReconcile: (sessionId: string) => void;
147
+ /** Consumer-side ack for {@link markSessionRevertNeedsTailReconcile} — call
148
+ * once the flagged session's tail has actually been reconciled against
149
+ * the server. */
150
+ clearSessionRevertNeedsTailReconcile: (sessionId: string) => void;
151
+ /**
152
+ * Reconcile the local revert record against a `Session.revert` field read
153
+ * off a `session.created`/`session.updated` event's `info` — the reload
154
+ * and cross-tab recovery path. A hard page reload observes neither a
155
+ * fresh `rewind()` call nor a `.staged` wire transition (that already
156
+ * happened, possibly in a different tab or before this tab existed), so
157
+ * this is the only way a reload can rediscover an already-staged revert.
158
+ *
159
+ * Deliberately asymmetric: a PRESENT `revert.messageID` seeds a fresh
160
+ * local record (via `stageSessionRevert`, so the same idempotency and
161
+ * watermark-freezing rules apply) — but an ABSENT one never clears an
162
+ * existing record. The three wire events are the sole authority for
163
+ * transitions; a stale or momentarily-absent `Session.revert` snapshot
164
+ * must never race ahead of (or override) them.
165
+ */
166
+ syncSessionRevertFromInfo: (sessionId: string, revert: {
167
+ messageID: string;
168
+ } | null | undefined) => void;
53
169
  optimisticAdd: (sessionID: string, message: Message, messageParts: Part[]) => void;
54
170
  optimisticRemove: (sessionID: string, messageID: string) => void;
55
171
  /**
@@ -64,7 +180,28 @@ interface SyncState {
64
180
  * part-id correlation still supersedes their messages normally.
65
181
  */
66
182
  markOptimisticDispatched: (sessionID: string, messageID: string) => void;
183
+ /**
184
+ * Mark an optimistic message as held DURABLY by the control plane — its
185
+ * prompt-inbox row landed (the POST returned). From here the message is not
186
+ * "unconfirmed": the server has it and will deliver it, so the local idle
187
+ * sweep ({@link SyncState.clearOptimisticMessages}) must not delete it. It
188
+ * leaves the transcript only by the runtime's echo (same id, or a re-minted
189
+ * one — see {@link SyncState.optimisticEchoOf}), by
190
+ * {@link SyncState.optimisticRemove}, or with the session.
191
+ */
192
+ markOptimisticInboxBacked: (sessionID: string, messageID: string) => void;
67
193
  clearOptimisticMessages: (sessionID: string) => void;
194
+ /**
195
+ * The runtime's id for an optimistic message that was superseded under a
196
+ * DIFFERENT id (the control plane re-mints a wire id that would sort below
197
+ * the transcript tip). Lets a host keep ONE identity for the prompt across
198
+ * the swap — a React key, an inbox row's `message_id` — instead of seeing
199
+ * two. Undefined for a message confirmed under its own id or never
200
+ * superseded.
201
+ */
202
+ optimisticEchoOf: (sessionID: string, optimisticID: string) => string | undefined;
203
+ /** The inverse of {@link SyncState.optimisticEchoOf}. */
204
+ optimisticOriginOf: (sessionID: string, echoID: string) => string | undefined;
68
205
  /** True when the session's message list still holds an unconfirmed optimistic
69
206
  * message — lets the SSE reconciler avoid idling+clearing a brand-new session
70
207
  * whose first prompt the server hasn't registered yet. */
@@ -1 +1 @@
1
- {"version":3,"file":"sync-store.d.ts","sourceRoot":"","sources":["../../../src/browser/stores/sync-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-store.d.ts","sourceRoot":"","sources":["../../../src/browser/stores/sync-store.ts"],"names":[],"mappings":"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"}