@kortix/sdk 0.12.8 → 0.13.1

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 (274) hide show
  1. package/README.md +3 -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/session-sync/session-transcript-cache.d.ts +9 -2
  7. package/dist/browser/session-sync/session-transcript-cache.d.ts.map +1 -1
  8. package/dist/browser/session-sync/session-transcript-cache.js +15 -5
  9. package/dist/browser/session-sync/session-transcript-cache.js.map +1 -1
  10. package/dist/browser/stores/opencode-compaction-store.d.ts +9 -3
  11. package/dist/browser/stores/opencode-compaction-store.d.ts.map +1 -1
  12. package/dist/browser/stores/opencode-compaction-store.js +5 -12
  13. package/dist/browser/stores/opencode-compaction-store.js.map +1 -1
  14. package/dist/browser/stores/sandbox-connection-store.d.ts +28 -17
  15. package/dist/browser/stores/sandbox-connection-store.d.ts.map +1 -1
  16. package/dist/browser/stores/sandbox-connection-store.js +32 -84
  17. package/dist/browser/stores/sandbox-connection-store.js.map +1 -1
  18. package/dist/browser/stores/session-working-store.d.ts +73 -0
  19. package/dist/browser/stores/session-working-store.d.ts.map +1 -0
  20. package/dist/browser/stores/session-working-store.js +86 -0
  21. package/dist/browser/stores/session-working-store.js.map +1 -0
  22. package/dist/browser/stores/sync-store/types.d.ts +14 -4
  23. package/dist/browser/stores/sync-store/types.d.ts.map +1 -1
  24. package/dist/browser/stores/sync-store.d.ts +179 -4
  25. package/dist/browser/stores/sync-store.d.ts.map +1 -1
  26. package/dist/browser/stores/sync-store.js +777 -65
  27. package/dist/browser/stores/sync-store.js.map +1 -1
  28. package/dist/core/client/kortix.d.ts +95 -0
  29. package/dist/core/client/kortix.d.ts.map +1 -1
  30. package/dist/core/client/kortix.js +78 -0
  31. package/dist/core/client/kortix.js.map +1 -1
  32. package/dist/core/files/client.d.ts +50 -2
  33. package/dist/core/files/client.d.ts.map +1 -1
  34. package/dist/core/files/client.js +253 -44
  35. package/dist/core/files/client.js.map +1 -1
  36. package/dist/core/files/types.d.ts +11 -0
  37. package/dist/core/files/types.d.ts.map +1 -1
  38. package/dist/core/http/abort-error.d.ts +89 -0
  39. package/dist/core/http/abort-error.d.ts.map +1 -0
  40. package/dist/core/http/abort-error.js +190 -0
  41. package/dist/core/http/abort-error.js.map +1 -0
  42. package/dist/core/http/api-client.d.ts.map +1 -1
  43. package/dist/core/http/api-client.js +18 -4
  44. package/dist/core/http/api-client.js.map +1 -1
  45. package/dist/core/http/opencode-errors.d.ts +7 -0
  46. package/dist/core/http/opencode-errors.d.ts.map +1 -1
  47. package/dist/core/http/opencode-errors.js +45 -13
  48. package/dist/core/http/opencode-errors.js.map +1 -1
  49. package/dist/core/rest/platform-client/github-app.d.ts +13 -0
  50. package/dist/core/rest/platform-client/github-app.d.ts.map +1 -1
  51. package/dist/core/rest/platform-client/github-app.js +2 -0
  52. package/dist/core/rest/platform-client/github-app.js.map +1 -1
  53. package/dist/core/rest/platform-client/members.d.ts +10 -64
  54. package/dist/core/rest/platform-client/members.d.ts.map +1 -1
  55. package/dist/core/rest/platform-client/members.js +10 -28
  56. package/dist/core/rest/platform-client/members.js.map +1 -1
  57. package/dist/core/rest/projects-client/accounts.d.ts +30 -5
  58. package/dist/core/rest/projects-client/accounts.d.ts.map +1 -1
  59. package/dist/core/rest/projects-client/accounts.js +1 -1
  60. package/dist/core/rest/projects-client/accounts.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 +10 -1
  69. package/dist/core/rest/projects-client/billing.d.ts.map +1 -1
  70. package/dist/core/rest/projects-client/billing.js +11 -2
  71. package/dist/core/rest/projects-client/billing.js.map +1 -1
  72. package/dist/core/rest/projects-client/connectors.d.ts +69 -1
  73. package/dist/core/rest/projects-client/connectors.d.ts.map +1 -1
  74. package/dist/core/rest/projects-client/connectors.js +17 -0
  75. package/dist/core/rest/projects-client/connectors.js.map +1 -1
  76. package/dist/core/rest/projects-client/files.js +2 -2
  77. package/dist/core/rest/projects-client/files.js.map +1 -1
  78. package/dist/core/rest/projects-client/gateway.d.ts +51 -0
  79. package/dist/core/rest/projects-client/gateway.d.ts.map +1 -1
  80. package/dist/core/rest/projects-client/gateway.js.map +1 -1
  81. package/dist/core/rest/projects-client/iam.d.ts +51 -3
  82. package/dist/core/rest/projects-client/iam.d.ts.map +1 -1
  83. package/dist/core/rest/projects-client/iam.js +18 -1
  84. package/dist/core/rest/projects-client/iam.js.map +1 -1
  85. package/dist/core/rest/projects-client/index.d.ts +1 -0
  86. package/dist/core/rest/projects-client/index.d.ts.map +1 -1
  87. package/dist/core/rest/projects-client/index.js +1 -0
  88. package/dist/core/rest/projects-client/index.js.map +1 -1
  89. package/dist/core/rest/projects-client/projects.d.ts +1 -1
  90. package/dist/core/rest/projects-client/projects.d.ts.map +1 -1
  91. package/dist/core/rest/projects-client/projects.js +2 -0
  92. package/dist/core/rest/projects-client/projects.js.map +1 -1
  93. package/dist/core/rest/projects-client/secrets.d.ts +19 -1
  94. package/dist/core/rest/projects-client/secrets.d.ts.map +1 -1
  95. package/dist/core/rest/projects-client/secrets.js +1 -1
  96. package/dist/core/rest/projects-client/secrets.js.map +1 -1
  97. package/dist/core/rest/projects-client/session-costs.d.ts +33 -0
  98. package/dist/core/rest/projects-client/session-costs.d.ts.map +1 -1
  99. package/dist/core/rest/projects-client/session-costs.js.map +1 -1
  100. package/dist/core/rest/projects-client/sessions.d.ts +261 -2
  101. package/dist/core/rest/projects-client/sessions.d.ts.map +1 -1
  102. package/dist/core/rest/projects-client/sessions.js +106 -4
  103. package/dist/core/rest/projects-client/sessions.js.map +1 -1
  104. package/dist/core/rest/projects-client/shared.d.ts +10 -1
  105. package/dist/core/rest/projects-client/shared.d.ts.map +1 -1
  106. package/dist/core/rest/projects-client/shared.js.map +1 -1
  107. package/dist/core/rest/projects-client/tokens.d.ts +13 -1
  108. package/dist/core/rest/projects-client/tokens.d.ts.map +1 -1
  109. package/dist/core/rest/projects-client/tokens.js +7 -2
  110. package/dist/core/rest/projects-client/tokens.js.map +1 -1
  111. package/dist/core/rest/projects-client/triggers.d.ts +69 -2
  112. package/dist/core/rest/projects-client/triggers.d.ts.map +1 -1
  113. package/dist/core/rest/projects-client/triggers.js +1 -1
  114. package/dist/core/rest/projects-client/triggers.js.map +1 -1
  115. package/dist/core/session/compaction.d.ts +98 -0
  116. package/dist/core/session/compaction.d.ts.map +1 -0
  117. package/dist/core/session/compaction.js +108 -0
  118. package/dist/core/session/compaction.js.map +1 -0
  119. package/dist/core/session/health.d.ts +22 -0
  120. package/dist/core/session/health.d.ts.map +1 -1
  121. package/dist/core/session/health.js +31 -5
  122. package/dist/core/session/health.js.map +1 -1
  123. package/dist/core/session/index.d.ts +2 -0
  124. package/dist/core/session/index.d.ts.map +1 -1
  125. package/dist/core/session/index.js +2 -0
  126. package/dist/core/session/index.js.map +1 -1
  127. package/dist/core/session/message-queue.d.ts +79 -15
  128. package/dist/core/session/message-queue.d.ts.map +1 -1
  129. package/dist/core/session/message-queue.js +73 -27
  130. package/dist/core/session/message-queue.js.map +1 -1
  131. package/dist/core/session/rewind.d.ts +76 -10
  132. package/dist/core/session/rewind.d.ts.map +1 -1
  133. package/dist/core/session/rewind.js +68 -11
  134. package/dist/core/session/rewind.js.map +1 -1
  135. package/dist/core/session/working.d.ts +241 -0
  136. package/dist/core/session/working.d.ts.map +1 -0
  137. package/dist/core/session/working.js +261 -0
  138. package/dist/core/session/working.js.map +1 -0
  139. package/dist/core/session-sync/session-sync-controller.d.ts +35 -20
  140. package/dist/core/session-sync/session-sync-controller.d.ts.map +1 -1
  141. package/dist/core/session-sync/session-sync-controller.js +48 -115
  142. package/dist/core/session-sync/session-sync-controller.js.map +1 -1
  143. package/dist/core/stream/event-stream.d.ts +22 -0
  144. package/dist/core/stream/event-stream.d.ts.map +1 -1
  145. package/dist/core/stream/event-stream.js +132 -36
  146. package/dist/core/stream/event-stream.js.map +1 -1
  147. package/dist/core/turns/grouping.d.ts +18 -2
  148. package/dist/core/turns/grouping.d.ts.map +1 -1
  149. package/dist/core/turns/grouping.js +45 -2
  150. package/dist/core/turns/grouping.js.map +1 -1
  151. package/dist/core/turns/index.d.ts +1 -0
  152. package/dist/core/turns/index.d.ts.map +1 -1
  153. package/dist/core/turns/index.js +1 -0
  154. package/dist/core/turns/index.js.map +1 -1
  155. package/dist/core/turns/open-turn.d.ts +81 -0
  156. package/dist/core/turns/open-turn.d.ts.map +1 -0
  157. package/dist/core/turns/open-turn.js +77 -0
  158. package/dist/core/turns/open-turn.js.map +1 -0
  159. package/dist/core/turns/state.js +26 -26
  160. package/dist/core/turns/state.js.map +1 -1
  161. package/dist/core/turns/types.d.ts +5 -0
  162. package/dist/core/turns/types.d.ts.map +1 -1
  163. package/dist/index.d.ts +2 -1
  164. package/dist/index.d.ts.map +1 -1
  165. package/dist/index.js +2 -1
  166. package/dist/index.js.map +1 -1
  167. package/dist/kortix.esm.min.js +25 -25
  168. package/dist/kortix.global.js +25 -25
  169. package/dist/node/server.d.ts.map +1 -1
  170. package/dist/node/server.js +14 -2
  171. package/dist/node/server.js.map +1 -1
  172. package/dist/react/index.d.ts +2 -1
  173. package/dist/react/index.d.ts.map +1 -1
  174. package/dist/react/index.js +7 -1
  175. package/dist/react/index.js.map +1 -1
  176. package/dist/react/initial-session-pin.d.ts +17 -0
  177. package/dist/react/initial-session-pin.d.ts.map +1 -1
  178. package/dist/react/initial-session-pin.js +58 -0
  179. package/dist/react/initial-session-pin.js.map +1 -1
  180. package/dist/react/opencode.d.ts +6 -2
  181. package/dist/react/opencode.d.ts.map +1 -1
  182. package/dist/react/opencode.js +5 -1
  183. package/dist/react/opencode.js.map +1 -1
  184. package/dist/react/prefetch-session-start.d.ts +10 -4
  185. package/dist/react/prefetch-session-start.d.ts.map +1 -1
  186. package/dist/react/prefetch-session-start.js +10 -4
  187. package/dist/react/prefetch-session-start.js.map +1 -1
  188. package/dist/react/query-contracts.d.ts +2 -0
  189. package/dist/react/query-contracts.d.ts.map +1 -1
  190. package/dist/react/query-contracts.js +2 -0
  191. package/dist/react/query-contracts.js.map +1 -1
  192. package/dist/react/query-keys.d.ts +13 -2
  193. package/dist/react/query-keys.d.ts.map +1 -1
  194. package/dist/react/query-keys.js +13 -2
  195. package/dist/react/query-keys.js.map +1 -1
  196. package/dist/react/session-start-stash.d.ts +25 -0
  197. package/dist/react/session-start-stash.d.ts.map +1 -1
  198. package/dist/react/session-start-stash.js +34 -3
  199. package/dist/react/session-start-stash.js.map +1 -1
  200. package/dist/react/session-title-sync.d.ts +5 -1
  201. package/dist/react/session-title-sync.d.ts.map +1 -1
  202. package/dist/react/session-title-sync.js +16 -4
  203. package/dist/react/session-title-sync.js.map +1 -1
  204. package/dist/react/use-can.d.ts +105 -0
  205. package/dist/react/use-can.d.ts.map +1 -0
  206. package/dist/react/use-can.js +190 -0
  207. package/dist/react/use-can.js.map +1 -0
  208. package/dist/react/use-canonical-opencode-session.d.ts +6 -1
  209. package/dist/react/use-canonical-opencode-session.d.ts.map +1 -1
  210. package/dist/react/use-canonical-opencode-session.js +46 -3
  211. package/dist/react/use-canonical-opencode-session.js.map +1 -1
  212. package/dist/react/use-opencode-events/handle-event.d.ts +10 -0
  213. package/dist/react/use-opencode-events/handle-event.d.ts.map +1 -1
  214. package/dist/react/use-opencode-events/handle-event.js +76 -7
  215. package/dist/react/use-opencode-events/handle-event.js.map +1 -1
  216. package/dist/react/use-opencode-events/helpers.d.ts +21 -8
  217. package/dist/react/use-opencode-events/helpers.d.ts.map +1 -1
  218. package/dist/react/use-opencode-events/helpers.js +25 -26
  219. package/dist/react/use-opencode-events/helpers.js.map +1 -1
  220. package/dist/react/use-opencode-events/index.d.ts.map +1 -1
  221. package/dist/react/use-opencode-events/index.js +43 -26
  222. package/dist/react/use-opencode-events/index.js.map +1 -1
  223. package/dist/react/use-opencode-events/use-event-stream-refs.d.ts.map +1 -1
  224. package/dist/react/use-opencode-events/use-event-stream-refs.js +66 -3
  225. package/dist/react/use-opencode-events/use-event-stream-refs.js.map +1 -1
  226. package/dist/react/use-opencode-local.d.ts +17 -0
  227. package/dist/react/use-opencode-local.d.ts.map +1 -1
  228. package/dist/react/use-opencode-local.js +41 -7
  229. package/dist/react/use-opencode-local.js.map +1 -1
  230. package/dist/react/use-opencode-sessions/messages.d.ts +101 -1
  231. package/dist/react/use-opencode-sessions/messages.d.ts.map +1 -1
  232. package/dist/react/use-opencode-sessions/messages.js +481 -63
  233. package/dist/react/use-opencode-sessions/messages.js.map +1 -1
  234. package/dist/react/use-project-apps.d.ts +24 -1
  235. package/dist/react/use-project-apps.d.ts.map +1 -1
  236. package/dist/react/use-project-apps.js +5 -3
  237. package/dist/react/use-project-apps.js.map +1 -1
  238. package/dist/react/use-runtime-boot-stalled.d.ts +32 -0
  239. package/dist/react/use-runtime-boot-stalled.d.ts.map +1 -0
  240. package/dist/react/use-runtime-boot-stalled.js +48 -0
  241. package/dist/react/use-runtime-boot-stalled.js.map +1 -0
  242. package/dist/react/use-runtime-reconnect.d.ts +67 -1
  243. package/dist/react/use-runtime-reconnect.d.ts.map +1 -1
  244. package/dist/react/use-runtime-reconnect.js +116 -18
  245. package/dist/react/use-runtime-reconnect.js.map +1 -1
  246. package/dist/react/use-session-prompts.d.ts +113 -0
  247. package/dist/react/use-session-prompts.d.ts.map +1 -0
  248. package/dist/react/use-session-prompts.js +250 -0
  249. package/dist/react/use-session-prompts.js.map +1 -0
  250. package/dist/react/use-session-send.d.ts +169 -20
  251. package/dist/react/use-session-send.d.ts.map +1 -1
  252. package/dist/react/use-session-send.js +183 -30
  253. package/dist/react/use-session-send.js.map +1 -1
  254. package/dist/react/use-session-sync.d.ts +35 -2
  255. package/dist/react/use-session-sync.d.ts.map +1 -1
  256. package/dist/react/use-session-sync.js +49 -11
  257. package/dist/react/use-session-sync.js.map +1 -1
  258. package/dist/react/use-session-working.d.ts +57 -0
  259. package/dist/react/use-session-working.d.ts.map +1 -0
  260. package/dist/react/use-session-working.js +178 -0
  261. package/dist/react/use-session-working.js.map +1 -0
  262. package/dist/react/use-session.d.ts +131 -5
  263. package/dist/react/use-session.d.ts.map +1 -1
  264. package/dist/react/use-session.js +358 -69
  265. package/dist/react/use-session.js.map +1 -1
  266. package/package.json +2 -2
  267. package/dist/browser/stores/tab-store.d.ts +0 -91
  268. package/dist/browser/stores/tab-store.d.ts.map +0 -1
  269. package/dist/browser/stores/tab-store.js +0 -369
  270. package/dist/browser/stores/tab-store.js.map +0 -1
  271. package/dist/core/session/send-queue.d.ts +0 -70
  272. package/dist/core/session/send-queue.d.ts.map +0 -1
  273. package/dist/core/session/send-queue.js +0 -116
  274. package/dist/core/session/send-queue.js.map +0 -1
@@ -31,27 +31,12 @@ export function loadHttpSessionHistory(options) {
31
31
  return loadCompleteSessionHistory(createHttpSessionSyncPageLoader(options));
32
32
  }
33
33
  export function createHttpSessionSyncController(options) {
34
- const fetchImpl = options.fetch ?? globalThis.fetch;
35
- const baseUrl = options.baseUrl.replace(/\/$/, '');
36
- const loadPage = createHttpSessionSyncPageLoader(options);
37
- const request = async (path) => {
38
- const token = await options.getToken?.();
39
- const response = await fetchImpl(`${baseUrl}${path}`, {
40
- headers: token ? { Authorization: `Bearer ${token}` } : undefined,
41
- });
42
- if (!response.ok) {
43
- throw new Error(`Session synchronization failed: ${response.status}`);
44
- }
45
- return response;
46
- };
34
+ // No `loadStatus` any more: the controller never reads status, so the
35
+ // `/session/status` request this used to build was dead weight on every
36
+ // liveness tick. The transcript tail is the whole of this controller's job.
47
37
  return new SessionSyncController({
48
38
  ...options,
49
- loadPage,
50
- loadStatus: async () => {
51
- const response = await request('/session/status');
52
- const statuses = (await response.json());
53
- return statuses[options.sessionId] ?? { type: 'idle' };
54
- },
39
+ loadPage: createHttpSessionSyncPageLoader(options),
55
40
  });
56
41
  }
57
42
  export async function loadCompleteSessionHistory(loadPage) {
@@ -82,7 +67,6 @@ const defaultScheduler = {
82
67
  setTimeout: (handler, timeoutMs) => setTimeout(handler, timeoutMs),
83
68
  clearTimeout: (handle) => clearTimeout(handle),
84
69
  };
85
- const PROMPT_IDLE_SETTLEMENT_MS = 500;
86
70
  /**
87
71
  * Owns bounded session history synchronization without depending on React,
88
72
  * Zustand, IndexedDB, or a specific HTTP client.
@@ -95,7 +79,6 @@ export class SessionSyncController {
95
79
  freshness: 'idle',
96
80
  hasOlder: false,
97
81
  isLoadingOlder: false,
98
- isPromptObservedBusy: false,
99
82
  };
100
83
  nextCursor;
101
84
  knownUserMessageIds = new Set();
@@ -103,8 +86,6 @@ export class SessionSyncController {
103
86
  tailRequest;
104
87
  olderRequest;
105
88
  livenessTimer;
106
- promptSettlementTimer;
107
- promptObservationPhase = 'idle';
108
89
  lastActivityAt;
109
90
  listeners = new Set();
110
91
  destroyed = false;
@@ -166,43 +147,13 @@ export class SessionSyncController {
166
147
  }
167
148
  }
168
149
  /**
169
- * Start monotonic completion observation for an accepted REST prompt.
150
+ * Switch the liveness poll on or off.
170
151
  *
171
- * OpenCode can publish an idle snapshot from before the prompt and publish
172
- * the real busy event later. Keep the public projection busy until real work
173
- * starts and the following idle state remains quiet.
152
+ * NOT an opinion about whether the session is working that answer belongs
153
+ * to `projectWorking` alone. This only says whether anyone still needs the
154
+ * transcript refreshed behind the SSE stream: a caller passes the working
155
+ * state it already has, and the last consumer leaving passes `false`.
174
156
  */
175
- beginPromptObservation() {
176
- this.clearPromptSettlementTimer();
177
- this.promptObservationPhase = 'awaiting-work';
178
- this.update({ isPromptObservedBusy: true });
179
- this.setBusy(true);
180
- }
181
- /** Observe an authoritative runtime status from SSE or status reconciliation. */
182
- observePromptStatus(status) {
183
- if (this.promptObservationPhase === 'idle')
184
- return;
185
- if (status.type !== 'idle') {
186
- this.markPromptRunning();
187
- return;
188
- }
189
- if (this.promptObservationPhase === 'awaiting-work')
190
- return;
191
- this.schedulePromptSettlement();
192
- }
193
- /** Mark assistant output as proof that the accepted prompt started. */
194
- observePromptActivity() {
195
- if (this.promptObservationPhase === 'idle')
196
- return;
197
- this.markPromptRunning();
198
- }
199
- /** End observation after rejection, cancellation, or a terminal runtime error. */
200
- endPromptObservation() {
201
- this.clearPromptSettlementTimer();
202
- this.promptObservationPhase = 'idle';
203
- this.update({ isPromptObservedBusy: false });
204
- this.setBusy(false);
205
- }
206
157
  setBusy(isBusy) {
207
158
  if (!isBusy) {
208
159
  this.stopLivenessTimer();
@@ -216,7 +167,6 @@ export class SessionSyncController {
216
167
  destroy() {
217
168
  this.destroyed = true;
218
169
  this.stopLivenessTimer();
219
- this.clearPromptSettlementTimer();
220
170
  this.listeners.clear();
221
171
  }
222
172
  async loadTail(reason) {
@@ -225,9 +175,6 @@ export class SessionSyncController {
225
175
  const page = await this.loadCompleteTurn(firstPage, 'tail', reason);
226
176
  if (this.destroyed)
227
177
  return;
228
- if (this.containsNewPromptReply(page.messages)) {
229
- this.observePromptActivity();
230
- }
231
178
  this.rememberUserMessages(page.messages);
232
179
  this.options.hydrate(page.messages);
233
180
  if (!this.olderHistoryStarted) {
@@ -316,34 +263,38 @@ export class SessionSyncController {
316
263
  if (this.destroyed || this.scheduler.now() - this.lastActivityAt <= this.livenessIntervalMs) {
317
264
  return;
318
265
  }
319
- // Load the transcript before status. A completed async prompt can transition
320
- // back to idle before the first poll. The tail proves that work occurred;
321
- // the following idle status can then settle prompt observation correctly.
322
- await this.reconcile('poll');
323
- await this.reconcileStatus();
266
+ // Reconcile the TAIL, and nothing else. This is the repair for a dropped
267
+ // SSE stream: the transcript catches up on messages the stream never
268
+ // delivered.
269
+ //
270
+ // A status half used to follow it, reading the runtime over REST and
271
+ // writing the answer into the same slot SSE frames land in. It is gone:
272
+ // `GET .../turn` is the status authority now, and `setBusy` — the switch
273
+ // that decides whether this poll runs at all — is already driven FROM that
274
+ // projection, so a fourth stamped input here could only confirm or latch,
275
+ // never correct.
276
+ //
277
+ // The wait stays bounded: a read proxied to the sandbox can park
278
+ // indefinitely (a wedged opencode never answers and never errors), and the
279
+ // poll must keep its cadence rather than stall on one request.
280
+ await this.raceDeadline(this.reconcile('poll'), this.livenessIntervalMs);
324
281
  this.lastActivityAt = this.scheduler.now();
325
282
  }
326
- containsNewPromptReply(messages) {
327
- if (this.promptObservationPhase === 'idle')
328
- return false;
329
- const newUserMessageIds = new Set(messages
330
- .filter((message) => message.info.role === 'user' && !this.knownUserMessageIds.has(message.info.id))
331
- .map((message) => message.info.id));
332
- if (newUserMessageIds.size === 0)
333
- return false;
334
- return messages.some((message) => message.info.role === 'assistant' &&
335
- Boolean(message.info.parentID) &&
336
- newUserMessageIds.has(message.info.parentID));
337
- }
338
- async reconcileStatus() {
339
- if (!this.options.loadStatus || !this.options.setStatus)
340
- return;
341
- try {
342
- this.options.setStatus(await this.options.loadStatus());
343
- }
344
- catch {
345
- // The next liveness interval retries both bounded reads.
346
- }
283
+ /** Resolve when `work` settles, or when `timeoutMs` elapses — whichever first. */
284
+ raceDeadline(work, timeoutMs) {
285
+ return new Promise((resolve) => {
286
+ let handle;
287
+ let settled = false;
288
+ const finish = () => {
289
+ if (settled)
290
+ return;
291
+ settled = true;
292
+ this.cancelTimer(handle);
293
+ resolve();
294
+ };
295
+ handle = this.startTimer(finish, timeoutMs);
296
+ void work.then(finish, finish);
297
+ });
347
298
  }
348
299
  setCursor(cursor) {
349
300
  this.nextCursor = cursor;
@@ -355,44 +306,26 @@ export class SessionSyncController {
355
306
  this.scheduler.clearInterval(this.livenessTimer);
356
307
  this.livenessTimer = undefined;
357
308
  }
358
- markPromptRunning() {
359
- this.clearPromptSettlementTimer();
360
- this.promptObservationPhase = 'running';
361
- }
362
- schedulePromptSettlement() {
363
- if (this.promptObservationPhase === 'settling')
364
- return;
365
- this.clearPromptSettlementTimer();
366
- this.promptObservationPhase = 'settling';
367
- const settle = () => {
368
- this.promptSettlementTimer = undefined;
369
- if (this.destroyed || this.promptObservationPhase !== 'settling')
370
- return;
371
- this.promptObservationPhase = 'idle';
372
- this.update({ isPromptObservedBusy: false });
373
- this.stopLivenessTimer();
374
- };
375
- this.promptSettlementTimer = this.scheduler.setTimeout
376
- ? this.scheduler.setTimeout(settle, PROMPT_IDLE_SETTLEMENT_MS)
377
- : setTimeout(settle, PROMPT_IDLE_SETTLEMENT_MS);
309
+ startTimer(handler, delayMs) {
310
+ return this.scheduler.setTimeout
311
+ ? this.scheduler.setTimeout(handler, delayMs)
312
+ : setTimeout(handler, delayMs);
378
313
  }
379
- clearPromptSettlementTimer() {
380
- if (this.promptSettlementTimer === undefined)
314
+ cancelTimer(handle) {
315
+ if (handle === undefined)
381
316
  return;
382
317
  if (this.scheduler.clearTimeout) {
383
- this.scheduler.clearTimeout(this.promptSettlementTimer);
318
+ this.scheduler.clearTimeout(handle);
384
319
  }
385
320
  else {
386
- clearTimeout(this.promptSettlementTimer);
321
+ clearTimeout(handle);
387
322
  }
388
- this.promptSettlementTimer = undefined;
389
323
  }
390
324
  update(next) {
391
325
  const snapshot = { ...this.snapshot, ...next };
392
326
  if (snapshot.freshness === this.snapshot.freshness &&
393
327
  snapshot.hasOlder === this.snapshot.hasOlder &&
394
- snapshot.isLoadingOlder === this.snapshot.isLoadingOlder &&
395
- snapshot.isPromptObservedBusy === this.snapshot.isPromptObservedBusy) {
328
+ snapshot.isLoadingOlder === this.snapshot.isLoadingOlder) {
396
329
  return;
397
330
  }
398
331
  this.snapshot = snapshot;
@@ -1 +1 @@
1
- {"version":3,"file":"session-sync-controller.js","sourceRoot":"","sources":["../../../src/core/session-sync/session-sync-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-sync-controller.js","sourceRoot":"","sources":["../../../src/core/session-sync/session-sync-controller.ts"],"names":[],"mappings":"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"}
@@ -129,6 +129,28 @@ export interface EventStreamHandle {
129
129
  * and exponential-backoff reconnect. Framework-free — safe to call from any
130
130
  * host (the React wrapper calls this once per effect run; a non-React host can
131
131
  * call it directly).
132
+ *
133
+ * **Shared-stream fan-out.** A second concurrent open for a client that
134
+ * already has a live stream (see `liveStreamsByClient`) does NOT tear the
135
+ * first one down — it SHARES it. Realistic sources of a stacked open:
136
+ * a second mounted subscriber opening its own stream for the same runtime
137
+ * without closing an existing one (e.g. an out-of-order remount), or a
138
+ * programmatic consumer that opens more than one handle for the same
139
+ * runtime on purpose. Each `openEventStream()` call gets its own
140
+ * independent `EventStreamHandle`; `close()` decrements a refcount on the
141
+ * shared connection, and the underlying connection (and its timers) tears
142
+ * down only once the LAST subscriber closes. Every subscriber's
143
+ * `onEvent`/`onGapRehydrate`/`onParked` still fires for every event —
144
+ * exactly once each, off the single underlying wire connection, so no
145
+ * subscriber has to be idempotent against a duplicate delivery the way
146
+ * `sync-store.ts`'s `applyPartDelta` separately guards against.
147
+ *
148
+ * Only the FIRST caller's `connectTimeoutMs`/`heartbeatTimeoutMs`/
149
+ * `maxConsecutiveHardFailures`/`timers` govern the shared connection — a
150
+ * later joiner's values for those fields are not consulted (see
151
+ * `createLiveStream`'s doc comment). `signal` is per-subscriber: aborting a
152
+ * caller's own signal only closes THAT caller's handle, not the shared
153
+ * connection (unless it was the last one standing).
132
154
  */
133
155
  export declare function openEventStream(opts: OpenEventStreamOptions): EventStreamHandle;
134
156
  export { heartbeatGapEvent, narrowChatEvent, type KortixChatEvent, type KortixChatEventConnection, type KortixChatEventHeartbeatGap, type KortixChatEventMessageRemoved, type KortixChatEventMessageUpdated, type KortixChatEventPartRemoved, type KortixChatEventPartUpdated, type KortixChatEventPermissionAsked, type KortixChatEventPermissionReplied, type KortixChatEventQuestionAnswered, type KortixChatEventQuestionAsked, type KortixChatEventSessionError, type KortixChatEventSessionIdle, type KortixChatEventSessionStatus, type KortixChatEventTodoUpdated, type KortixChatQuestionInfo, type KortixChatQuestionOption, type KortixChatToolRef, } from './chat-events.js';
@@ -1 +1 @@
1
- {"version":3,"file":"event-stream.d.ts","sourceRoot":"","sources":["../../../src/core/stream/event-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAI5E;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB,gBAAgB,GAChB;IACE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,wBAAwB,CAAC;IAC/B,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD,CAAC;AAEN,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,IAAI,EAAE;YACZ,MAAM,EAAE,WAAW,CAAC;YACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;SAC9B,KAAK,OAAO,CAAC;YAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;SAAE,CAAC,CAAC;KACnD,CAAC;CACH;AAED,4FAA4F;AAC5F,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnE;;4EAE4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAChF,YAAY,EAAE,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,KAAK,IAAI,CAAC;CACpE;AAQD,MAAM,WAAW,sBAAsB;IACrC;0CACsC;IACtC,MAAM,EAAE,iBAAiB,CAAC;IAC1B;;oCAEgC;IAChC,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC;;;sBAGkB;IAClB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC;;qBAEiB;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;;;OASG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACnD,gFAAgF;IAChF,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,2DAA2D;AAC3D,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8EAA8E;IAC9E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC;;qEAEiE;IACjE,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAsED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,sBAAsB,GAAG,iBAAiB,CAqW/E;AAOD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"event-stream.d.ts","sourceRoot":"","sources":["../../../src/core/stream/event-stream.ts"],"names":[],"mappings":"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"}
@@ -91,25 +91,55 @@ function onceAborted(signal) {
91
91
  return { promise, cleanup: () => signal.removeEventListener('abort', handler) };
92
92
  }
93
93
  /**
94
- * Connects to the opencode SSE event stream and keeps it alive: heartbeat
95
- * watchdog, event coalescing + batched flush, gap-triggered rehydrate signal,
96
- * and exponential-backoff reconnect. Framework-free — safe to call from any
97
- * host (the React wrapper calls this once per effect run; a non-React host can
98
- * call it directly).
94
+ * Fans out ONE live SSE connection per client to every open subscriber — see
95
+ * the shared-stream fan-out invariant documented on `openEventStream` below.
96
+ *
97
+ * Keyed by `EventStreamClient` object identity. `getClientForUrl`
98
+ * (`core/runtime/client.ts`) caches exactly one client per resolved runtime
99
+ * URL, so every `openEventStream()` call targeting the SAME runtime (the
100
+ * same sandbox, the same OpenCode session) is handed the identical client
101
+ * reference, and every call for a DIFFERENT runtime gets a different one.
102
+ * That makes the client itself the natural "scope" key — no caller has to
103
+ * mint or thread an explicit session/scope id, and two genuinely unrelated
104
+ * streams (different sandboxes) never collide.
105
+ *
106
+ * `WeakMap` so a client that falls out of scope (its sandbox torn down, no
107
+ * live handle referencing it) is never pinned by this module.
99
108
  */
100
- export function openEventStream(opts) {
101
- const { client, onEvent, onGapRehydrate, onParked, signal: externalSignal } = opts;
109
+ const liveStreamsByClient = new WeakMap();
110
+ /**
111
+ * Opens (or joins) the underlying connect/reconnect loop for `client` and
112
+ * fans its events out to every subscriber in `subscribers`. Only ever called
113
+ * once per client, by whichever `openEventStream()` call finds no existing
114
+ * `LiveStream` — every later caller for the same client joins the SAME
115
+ * `LiveStream` instead (see `openEventStream`). The FIRST caller's `opts`
116
+ * (timers, connect/heartbeat timeouts, `maxConsecutiveHardFailures`) govern
117
+ * the shared connection for its whole lifetime; a later joiner's values for
118
+ * those fields are not consulted — there is only one wire connection to
119
+ * configure, and re-configuring it mid-flight for a joiner would be
120
+ * ambiguous. Every subscriber's `onEvent`/`onGapRehydrate`/`onParked` is
121
+ * still called independently, in full.
122
+ */
123
+ function createLiveStream(client, opts, subscribers) {
102
124
  const t = opts.timers ?? realTimers;
103
125
  const connectTimeoutMs = opts.connectTimeoutMs ?? CONNECT_TIMEOUT_MS;
104
126
  const heartbeatTimeoutMs = opts.heartbeatTimeoutMs ?? HEARTBEAT_MS;
105
127
  const maxConsecutiveHardFailures = opts.maxConsecutiveHardFailures ?? MAX_CONSECUTIVE_HARD_FAILURES;
106
128
  const abortController = new AbortController();
107
- const onExternalAbort = () => abortController.abort();
108
- if (externalSignal) {
109
- if (externalSignal.aborted)
110
- abortController.abort();
111
- else
112
- externalSignal.addEventListener('abort', onExternalAbort, { once: true });
129
+ /** Calls `fn` on every current subscriber. A throwing subscriber must
130
+ * never break dispatch to the others or crash the host. */
131
+ function dispatchToSubscribers(pick, ...args) {
132
+ for (const sub of subscribers) {
133
+ const fn = pick(sub);
134
+ if (!fn)
135
+ continue;
136
+ try {
137
+ fn(...args);
138
+ }
139
+ catch (e) {
140
+ console.warn('[opencode-events] subscriber handler threw, skipping', e);
141
+ }
142
+ }
113
143
  }
114
144
  // Track last stream activity (connect or event) to gate reconnect hydration.
115
145
  // Using only "last event" causes hydrate storms when the server rotates
@@ -135,17 +165,13 @@ export function openEventStream(opts) {
135
165
  for (const item of events) {
136
166
  if (!item)
137
167
  continue;
138
- try {
139
- onEvent(item.event);
140
- }
141
- catch (e) {
142
- // A single event handler must never break the stream OR crash the
143
- // host. e.g. a handler calls getClient() before the sandbox URL is
144
- // pinned (during a session switch) — that throw used to escape to the
145
- // route error boundary. Swallow + log; the next events + retries
146
- // recover.
147
- console.warn('[opencode-events] event handler threw, skipping', e);
148
- }
168
+ // A single subscriber's handler must never break the stream OR crash
169
+ // the host, and must never stop the OTHER subscribers from receiving
170
+ // this event — `dispatchToSubscribers` catches per-subscriber. e.g. a
171
+ // handler calls getClient() before the sandbox URL is pinned (during a
172
+ // session switch) that throw used to escape to the route error
173
+ // boundary. Swallow + log; the next events + retries recover.
174
+ dispatchToSubscribers((sub) => sub.onEvent, item.event);
149
175
  }
150
176
  };
151
177
  const schedule = () => {
@@ -391,14 +417,14 @@ export function openEventStream(opts) {
391
417
  consecutiveFailures: consecutiveHardFailures,
392
418
  lastError: String(attemptError),
393
419
  });
394
- try {
395
- onParked?.({ consecutiveFailures: consecutiveHardFailures, lastError: attemptError });
396
- }
397
- catch (parkedHandlerErr) {
398
- // A host's park handler must never crash the (already-terminal)
399
- // stream machine.
400
- console.warn('[opencode-events] onParked handler threw', parkedHandlerErr);
401
- }
420
+ // A subscriber's park handler must never crash the (already-
421
+ // terminal) stream machine, and must never stop another
422
+ // subscriber's from firing — `dispatchToSubscribers` catches per
423
+ // subscriber.
424
+ dispatchToSubscribers((sub) => sub.onParked, {
425
+ consecutiveFailures: consecutiveHardFailures,
426
+ lastError: attemptError,
427
+ });
402
428
  break;
403
429
  }
404
430
  // Re-hydrate messages for loaded sessions when the SSE gap was
@@ -407,7 +433,7 @@ export function openEventStream(opts) {
407
433
  // the user manually refreshes.
408
434
  const gap = t.now() - lastStreamActivityTime;
409
435
  if (gap > GAP_REHYDRATE_MS) {
410
- onGapRehydrate?.(gap);
436
+ dispatchToSubscribers((sub) => sub.onGapRehydrate, gap);
411
437
  }
412
438
  if (stableConnection) {
413
439
  // Fast reconnect after healthy streams so live streaming resumes
@@ -434,15 +460,85 @@ export function openEventStream(opts) {
434
460
  }
435
461
  })();
436
462
  return {
437
- close: () => {
463
+ subscribers,
464
+ teardown: () => {
438
465
  abortController.abort();
439
- if (externalSignal)
440
- externalSignal.removeEventListener('abort', onExternalAbort);
441
466
  if (flushTimer)
442
467
  t.clearTimeout(flushTimer);
443
468
  },
444
469
  };
445
470
  }
471
+ /**
472
+ * Connects to the opencode SSE event stream and keeps it alive: heartbeat
473
+ * watchdog, event coalescing + batched flush, gap-triggered rehydrate signal,
474
+ * and exponential-backoff reconnect. Framework-free — safe to call from any
475
+ * host (the React wrapper calls this once per effect run; a non-React host can
476
+ * call it directly).
477
+ *
478
+ * **Shared-stream fan-out.** A second concurrent open for a client that
479
+ * already has a live stream (see `liveStreamsByClient`) does NOT tear the
480
+ * first one down — it SHARES it. Realistic sources of a stacked open:
481
+ * a second mounted subscriber opening its own stream for the same runtime
482
+ * without closing an existing one (e.g. an out-of-order remount), or a
483
+ * programmatic consumer that opens more than one handle for the same
484
+ * runtime on purpose. Each `openEventStream()` call gets its own
485
+ * independent `EventStreamHandle`; `close()` decrements a refcount on the
486
+ * shared connection, and the underlying connection (and its timers) tears
487
+ * down only once the LAST subscriber closes. Every subscriber's
488
+ * `onEvent`/`onGapRehydrate`/`onParked` still fires for every event —
489
+ * exactly once each, off the single underlying wire connection, so no
490
+ * subscriber has to be idempotent against a duplicate delivery the way
491
+ * `sync-store.ts`'s `applyPartDelta` separately guards against.
492
+ *
493
+ * Only the FIRST caller's `connectTimeoutMs`/`heartbeatTimeoutMs`/
494
+ * `maxConsecutiveHardFailures`/`timers` govern the shared connection — a
495
+ * later joiner's values for those fields are not consulted (see
496
+ * `createLiveStream`'s doc comment). `signal` is per-subscriber: aborting a
497
+ * caller's own signal only closes THAT caller's handle, not the shared
498
+ * connection (unless it was the last one standing).
499
+ */
500
+ export function openEventStream(opts) {
501
+ const { client, onEvent, onGapRehydrate, onParked, signal: externalSignal } = opts;
502
+ const subscriber = { onEvent, onGapRehydrate, onParked };
503
+ let liveStream = liveStreamsByClient.get(client);
504
+ if (!liveStream) {
505
+ const subscribers = new Set([subscriber]);
506
+ liveStream = createLiveStream(client, opts, subscribers);
507
+ liveStreamsByClient.set(client, liveStream);
508
+ }
509
+ else {
510
+ liveStream.subscribers.add(subscriber);
511
+ }
512
+ const stream = liveStream;
513
+ let closed = false;
514
+ const leave = () => {
515
+ if (closed)
516
+ return;
517
+ closed = true;
518
+ if (externalSignal)
519
+ externalSignal.removeEventListener('abort', onExternalAbort);
520
+ stream.subscribers.delete(subscriber);
521
+ if (stream.subscribers.size === 0) {
522
+ stream.teardown();
523
+ // Only clear the registry if this stream is STILL the registered live
524
+ // stream for this client — defensive, though under refcounting a
525
+ // newer stream can never exist for a client while an older one still
526
+ // has this client mapped (a fresh `LiveStream` for the same client is
527
+ // only ever created after `liveStreamsByClient.get(client)` reports
528
+ // none live).
529
+ if (liveStreamsByClient.get(client) === stream)
530
+ liveStreamsByClient.delete(client);
531
+ }
532
+ };
533
+ const onExternalAbort = () => leave();
534
+ if (externalSignal) {
535
+ if (externalSignal.aborted)
536
+ leave();
537
+ else
538
+ externalSignal.addEventListener('abort', onExternalAbort, { once: true });
539
+ }
540
+ return { close: leave };
541
+ }
446
542
  // The curated chat-event union built on top of this stream's `OpenCodeEvent` —
447
543
  // re-exported here (additive only) so a host that imports the SSE primitive
448
544
  // from this subpath (`@kortix/sdk/event-stream`) can reach the chat-narrowing
@@ -1 +1 @@
1
- {"version":3,"file":"event-stream.js","sourceRoot":"","sources":["../../../src/core/stream/event-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-stream.js","sourceRoot":"","sources":["../../../src/core/stream/event-stream.ts"],"names":[],"mappings":"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"}