@kortix/sdk 0.13.4 → 0.13.7

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 (380) hide show
  1. package/README.md +63 -6
  2. package/dist/browser/cache/idb-sync-cache.d.ts +19 -1
  3. package/dist/browser/cache/idb-sync-cache.d.ts.map +1 -1
  4. package/dist/browser/cache/idb-sync-cache.js +39 -4
  5. package/dist/browser/cache/idb-sync-cache.js.map +1 -1
  6. package/dist/browser/session-sync/server-transcript-mirror.d.ts +82 -0
  7. package/dist/browser/session-sync/server-transcript-mirror.d.ts.map +1 -0
  8. package/dist/browser/session-sync/server-transcript-mirror.js +143 -0
  9. package/dist/browser/session-sync/server-transcript-mirror.js.map +1 -0
  10. package/dist/browser/session-sync/session-sync-registry.d.ts +11 -1
  11. package/dist/browser/session-sync/session-sync-registry.d.ts.map +1 -1
  12. package/dist/browser/session-sync/session-sync-registry.js +117 -9
  13. package/dist/browser/session-sync/session-sync-registry.js.map +1 -1
  14. package/dist/browser/session-sync/visibility.d.ts +19 -0
  15. package/dist/browser/session-sync/visibility.d.ts.map +1 -0
  16. package/dist/browser/session-sync/visibility.js +16 -0
  17. package/dist/browser/session-sync/visibility.js.map +1 -0
  18. package/dist/browser/stores/sandbox-connection-store.d.ts +13 -1
  19. package/dist/browser/stores/sandbox-connection-store.d.ts.map +1 -1
  20. package/dist/browser/stores/sandbox-connection-store.js +6 -3
  21. package/dist/browser/stores/sandbox-connection-store.js.map +1 -1
  22. package/dist/browser/stores/session-working-store.d.ts +10 -5
  23. package/dist/browser/stores/session-working-store.d.ts.map +1 -1
  24. package/dist/browser/stores/session-working-store.js +32 -8
  25. package/dist/browser/stores/session-working-store.js.map +1 -1
  26. package/dist/browser/stores/sync-store.d.ts +56 -2
  27. package/dist/browser/stores/sync-store.d.ts.map +1 -1
  28. package/dist/browser/stores/sync-store.js +682 -402
  29. package/dist/browser/stores/sync-store.js.map +1 -1
  30. package/dist/core/auth/app-viewer.d.ts +57 -0
  31. package/dist/core/auth/app-viewer.d.ts.map +1 -0
  32. package/dist/core/auth/app-viewer.js +82 -0
  33. package/dist/core/auth/app-viewer.js.map +1 -0
  34. package/dist/core/auth/session.d.ts +45 -0
  35. package/dist/core/auth/session.d.ts.map +1 -0
  36. package/dist/core/auth/session.js +113 -0
  37. package/dist/core/auth/session.js.map +1 -0
  38. package/dist/core/client/kortix.d.ts +37 -29
  39. package/dist/core/client/kortix.d.ts.map +1 -1
  40. package/dist/core/client/kortix.js +61 -8
  41. package/dist/core/client/kortix.js.map +1 -1
  42. package/dist/core/http/config.d.ts +4 -2
  43. package/dist/core/http/config.d.ts.map +1 -1
  44. package/dist/core/http/config.js.map +1 -1
  45. package/dist/core/http/opencode-errors.d.ts +17 -0
  46. package/dist/core/http/opencode-errors.d.ts.map +1 -1
  47. package/dist/core/http/opencode-errors.js +25 -0
  48. package/dist/core/http/opencode-errors.js.map +1 -1
  49. package/dist/core/rest/platform-client/auth.d.ts +120 -0
  50. package/dist/core/rest/platform-client/auth.d.ts.map +1 -0
  51. package/dist/core/rest/platform-client/auth.js +98 -0
  52. package/dist/core/rest/platform-client/auth.js.map +1 -0
  53. package/dist/core/rest/platform-client/host-boundary.d.ts +5 -0
  54. package/dist/core/rest/platform-client/host-boundary.d.ts.map +1 -1
  55. package/dist/core/rest/platform-client/host-boundary.js.map +1 -1
  56. package/dist/core/rest/projects-client/accounts.d.ts +57 -0
  57. package/dist/core/rest/projects-client/accounts.d.ts.map +1 -1
  58. package/dist/core/rest/projects-client/accounts.js +31 -0
  59. package/dist/core/rest/projects-client/accounts.js.map +1 -1
  60. package/dist/core/rest/projects-client/apps.d.ts +9 -0
  61. package/dist/core/rest/projects-client/apps.d.ts.map +1 -1
  62. package/dist/core/rest/projects-client/apps.js.map +1 -1
  63. package/dist/core/rest/projects-client/billing.d.ts +2 -0
  64. package/dist/core/rest/projects-client/billing.d.ts.map +1 -1
  65. package/dist/core/rest/projects-client/billing.js.map +1 -1
  66. package/dist/core/rest/projects-client/channels.d.ts +0 -3
  67. package/dist/core/rest/projects-client/channels.d.ts.map +1 -1
  68. package/dist/core/rest/projects-client/channels.js +0 -6
  69. package/dist/core/rest/projects-client/channels.js.map +1 -1
  70. package/dist/core/rest/projects-client/connectors.d.ts +104 -19
  71. package/dist/core/rest/projects-client/connectors.d.ts.map +1 -1
  72. package/dist/core/rest/projects-client/connectors.js +56 -2
  73. package/dist/core/rest/projects-client/connectors.js.map +1 -1
  74. package/dist/core/rest/projects-client/index.d.ts +1 -2
  75. package/dist/core/rest/projects-client/index.d.ts.map +1 -1
  76. package/dist/core/rest/projects-client/index.js +1 -2
  77. package/dist/core/rest/projects-client/index.js.map +1 -1
  78. package/dist/core/rest/projects-client/oauth-clients.d.ts +47 -0
  79. package/dist/core/rest/projects-client/oauth-clients.d.ts.map +1 -0
  80. package/dist/core/rest/projects-client/oauth-clients.js +33 -0
  81. package/dist/core/rest/projects-client/oauth-clients.js.map +1 -0
  82. package/dist/core/rest/projects-client/projects.d.ts +23 -6
  83. package/dist/core/rest/projects-client/projects.d.ts.map +1 -1
  84. package/dist/core/rest/projects-client/projects.js +6 -3
  85. package/dist/core/rest/projects-client/projects.js.map +1 -1
  86. package/dist/core/rest/projects-client/session-sandbox.d.ts +52 -0
  87. package/dist/core/rest/projects-client/session-sandbox.d.ts.map +1 -1
  88. package/dist/core/rest/projects-client/session-sandbox.js.map +1 -1
  89. package/dist/core/rest/projects-client/sessions.d.ts +142 -34
  90. package/dist/core/rest/projects-client/sessions.d.ts.map +1 -1
  91. package/dist/core/rest/projects-client/sessions.js +48 -19
  92. package/dist/core/rest/projects-client/sessions.js.map +1 -1
  93. package/dist/core/runtime/attachment-part.d.ts +26 -0
  94. package/dist/core/runtime/attachment-part.d.ts.map +1 -0
  95. package/dist/core/runtime/attachment-part.js +41 -0
  96. package/dist/core/runtime/attachment-part.js.map +1 -0
  97. package/dist/core/runtime/client.d.ts +4 -2
  98. package/dist/core/runtime/client.d.ts.map +1 -1
  99. package/dist/core/runtime/client.js +3 -2
  100. package/dist/core/runtime/client.js.map +1 -1
  101. package/dist/core/runtime/opencode-v2-event-aliases.d.ts +184 -0
  102. package/dist/core/runtime/opencode-v2-event-aliases.d.ts.map +1 -0
  103. package/dist/core/runtime/opencode-v2-event-aliases.js +2 -0
  104. package/dist/core/runtime/opencode-v2-event-aliases.js.map +1 -0
  105. package/dist/core/runtime/pty.d.ts +11 -1
  106. package/dist/core/runtime/pty.d.ts.map +1 -1
  107. package/dist/core/runtime/pty.js +19 -6
  108. package/dist/core/runtime/pty.js.map +1 -1
  109. package/dist/core/session/connection.d.ts +64 -0
  110. package/dist/core/session/connection.d.ts.map +1 -0
  111. package/dist/core/session/connection.js +36 -0
  112. package/dist/core/session/connection.js.map +1 -0
  113. package/dist/core/session/index.d.ts +2 -0
  114. package/dist/core/session/index.d.ts.map +1 -1
  115. package/dist/core/session/index.js +2 -0
  116. package/dist/core/session/index.js.map +1 -1
  117. package/dist/core/session/open-bundle.d.ts +110 -0
  118. package/dist/core/session/open-bundle.d.ts.map +1 -0
  119. package/dist/core/session/open-bundle.js +183 -0
  120. package/dist/core/session/open-bundle.js.map +1 -0
  121. package/dist/core/session/poll-owner.d.ts +35 -0
  122. package/dist/core/session/poll-owner.d.ts.map +1 -0
  123. package/dist/core/session/poll-owner.js +90 -0
  124. package/dist/core/session/poll-owner.js.map +1 -0
  125. package/dist/core/session/preview-auth.d.ts +25 -0
  126. package/dist/core/session/preview-auth.d.ts.map +1 -1
  127. package/dist/core/session/preview-auth.js +31 -1
  128. package/dist/core/session/preview-auth.js.map +1 -1
  129. package/dist/core/session/preview-config.d.ts +26 -0
  130. package/dist/core/session/preview-config.d.ts.map +1 -0
  131. package/dist/core/session/preview-config.js +95 -0
  132. package/dist/core/session/preview-config.js.map +1 -0
  133. package/dist/core/session/preview-options.d.ts +25 -0
  134. package/dist/core/session/preview-options.d.ts.map +1 -0
  135. package/dist/core/session/preview-options.js +45 -0
  136. package/dist/core/session/preview-options.js.map +1 -0
  137. package/dist/core/session/preview.d.ts +8 -3
  138. package/dist/core/session/preview.d.ts.map +1 -1
  139. package/dist/core/session/preview.js +11 -4
  140. package/dist/core/session/preview.js.map +1 -1
  141. package/dist/core/session/rewind.d.ts +67 -24
  142. package/dist/core/session/rewind.d.ts.map +1 -1
  143. package/dist/core/session/rewind.js +74 -26
  144. package/dist/core/session/rewind.js.map +1 -1
  145. package/dist/core/session/server-store/active.d.ts +10 -12
  146. package/dist/core/session/server-store/active.d.ts.map +1 -1
  147. package/dist/core/session/server-store/active.js +11 -9
  148. package/dist/core/session/server-store/active.js.map +1 -1
  149. package/dist/core/session/server-store/url-helpers.d.ts +11 -2
  150. package/dist/core/session/server-store/url-helpers.d.ts.map +1 -1
  151. package/dist/core/session/server-store/url-helpers.js +11 -2
  152. package/dist/core/session/server-store/url-helpers.js.map +1 -1
  153. package/dist/core/session/static-file-preview.d.ts +50 -0
  154. package/dist/core/session/static-file-preview.d.ts.map +1 -0
  155. package/dist/core/session/static-file-preview.js +91 -0
  156. package/dist/core/session/static-file-preview.js.map +1 -0
  157. package/dist/core/session/url.d.ts +25 -2
  158. package/dist/core/session/url.d.ts.map +1 -1
  159. package/dist/core/session/url.js +87 -11
  160. package/dist/core/session/url.js.map +1 -1
  161. package/dist/core/session/wake-escalation.d.ts +188 -0
  162. package/dist/core/session/wake-escalation.d.ts.map +1 -0
  163. package/dist/core/session/wake-escalation.js +241 -0
  164. package/dist/core/session/wake-escalation.js.map +1 -0
  165. package/dist/core/session/working.d.ts +107 -2
  166. package/dist/core/session/working.d.ts.map +1 -1
  167. package/dist/core/session/working.js +206 -7
  168. package/dist/core/session/working.js.map +1 -1
  169. package/dist/core/session-sync/durable-log.d.ts +96 -0
  170. package/dist/core/session-sync/durable-log.d.ts.map +1 -0
  171. package/dist/core/session-sync/durable-log.js +94 -0
  172. package/dist/core/session-sync/durable-log.js.map +1 -0
  173. package/dist/core/session-sync/fragment.d.ts +27 -0
  174. package/dist/core/session-sync/fragment.d.ts.map +1 -0
  175. package/dist/core/session-sync/fragment.js +24 -0
  176. package/dist/core/session-sync/fragment.js.map +1 -0
  177. package/dist/core/session-sync/session-sync-controller.d.ts +117 -11
  178. package/dist/core/session-sync/session-sync-controller.d.ts.map +1 -1
  179. package/dist/core/session-sync/session-sync-controller.js +278 -26
  180. package/dist/core/session-sync/session-sync-controller.js.map +1 -1
  181. package/dist/core/stream/keepalive.d.ts +17 -0
  182. package/dist/core/stream/keepalive.d.ts.map +1 -0
  183. package/dist/core/stream/keepalive.js +19 -0
  184. package/dist/core/stream/keepalive.js.map +1 -0
  185. package/dist/core/turns/grouping.d.ts.map +1 -1
  186. package/dist/core/turns/grouping.js +73 -23
  187. package/dist/core/turns/grouping.js.map +1 -1
  188. package/dist/core/turns/types.d.ts +5 -0
  189. package/dist/core/turns/types.d.ts.map +1 -1
  190. package/dist/index.d.ts +16 -1
  191. package/dist/index.d.ts.map +1 -1
  192. package/dist/index.js +19 -0
  193. package/dist/index.js.map +1 -1
  194. package/dist/kortix.esm.min.js +25 -25
  195. package/dist/kortix.global.js +25 -25
  196. package/dist/node/app-viewer.d.ts +41 -0
  197. package/dist/node/app-viewer.d.ts.map +1 -0
  198. package/dist/node/app-viewer.js +150 -0
  199. package/dist/node/app-viewer.js.map +1 -0
  200. package/dist/node/auth.d.ts +84 -0
  201. package/dist/node/auth.d.ts.map +1 -0
  202. package/dist/node/auth.js +414 -0
  203. package/dist/node/auth.js.map +1 -0
  204. package/dist/node/server.d.ts +19 -0
  205. package/dist/node/server.d.ts.map +1 -1
  206. package/dist/node/server.js +13 -1
  207. package/dist/node/server.js.map +1 -1
  208. package/dist/platform/auth-core.d.ts +13 -1
  209. package/dist/platform/auth-core.d.ts.map +1 -1
  210. package/dist/platform/auth-core.js +13 -1
  211. package/dist/platform/auth-core.js.map +1 -1
  212. package/dist/react/bedrock-invokable.d.ts +58 -0
  213. package/dist/react/bedrock-invokable.d.ts.map +1 -0
  214. package/dist/react/bedrock-invokable.js +83 -0
  215. package/dist/react/bedrock-invokable.js.map +1 -0
  216. package/dist/react/index.d.ts +3 -0
  217. package/dist/react/index.d.ts.map +1 -1
  218. package/dist/react/index.js +7 -0
  219. package/dist/react/index.js.map +1 -1
  220. package/dist/react/model-flatten.d.ts +14 -1
  221. package/dist/react/model-flatten.d.ts.map +1 -1
  222. package/dist/react/model-flatten.js +3 -4
  223. package/dist/react/model-flatten.js.map +1 -1
  224. package/dist/react/opencode.d.ts +3 -1
  225. package/dist/react/opencode.d.ts.map +1 -1
  226. package/dist/react/opencode.js +5 -1
  227. package/dist/react/opencode.js.map +1 -1
  228. package/dist/react/provider-selection.d.ts +58 -0
  229. package/dist/react/provider-selection.d.ts.map +1 -1
  230. package/dist/react/provider-selection.js +253 -2
  231. package/dist/react/provider-selection.js.map +1 -1
  232. package/dist/react/session-start-giveup.d.ts +12 -0
  233. package/dist/react/session-start-giveup.d.ts.map +1 -0
  234. package/dist/react/session-start-giveup.js +13 -0
  235. package/dist/react/session-start-giveup.js.map +1 -0
  236. package/dist/react/session-title-sync.d.ts.map +1 -1
  237. package/dist/react/session-title-sync.js +15 -5
  238. package/dist/react/session-title-sync.js.map +1 -1
  239. package/dist/react/sign-in-with-kortix.d.ts +346 -0
  240. package/dist/react/sign-in-with-kortix.d.ts.map +1 -0
  241. package/dist/react/sign-in-with-kortix.js +65 -0
  242. package/dist/react/sign-in-with-kortix.js.map +1 -0
  243. package/dist/react/use-admin-accounts.d.ts +36 -1
  244. package/dist/react/use-admin-accounts.d.ts.map +1 -1
  245. package/dist/react/use-admin-accounts.js +19 -0
  246. package/dist/react/use-admin-accounts.js.map +1 -1
  247. package/dist/react/use-gateway-routing-policy.d.ts +1 -0
  248. package/dist/react/use-gateway-routing-policy.d.ts.map +1 -1
  249. package/dist/react/use-gateway-routing-policy.js +12 -1
  250. package/dist/react/use-gateway-routing-policy.js.map +1 -1
  251. package/dist/react/use-kortix-app-viewer.d.ts +13 -0
  252. package/dist/react/use-kortix-app-viewer.d.ts.map +1 -0
  253. package/dist/react/use-kortix-app-viewer.js +29 -0
  254. package/dist/react/use-kortix-app-viewer.js.map +1 -0
  255. package/dist/react/use-model-defaults.d.ts +7 -0
  256. package/dist/react/use-model-defaults.d.ts.map +1 -1
  257. package/dist/react/use-model-defaults.js +7 -1
  258. package/dist/react/use-model-defaults.js.map +1 -1
  259. package/dist/react/use-model-enablement.d.ts.map +1 -1
  260. package/dist/react/use-model-enablement.js +5 -1
  261. package/dist/react/use-model-enablement.js.map +1 -1
  262. package/dist/react/use-model-store.d.ts +31 -0
  263. package/dist/react/use-model-store.d.ts.map +1 -1
  264. package/dist/react/use-model-store.js +31 -2
  265. package/dist/react/use-model-store.js.map +1 -1
  266. package/dist/react/use-opencode-events/handle-event.d.ts.map +1 -1
  267. package/dist/react/use-opencode-events/handle-event.js +26 -0
  268. package/dist/react/use-opencode-events/handle-event.js.map +1 -1
  269. package/dist/react/use-opencode-events/helpers.d.ts +49 -5
  270. package/dist/react/use-opencode-events/helpers.d.ts.map +1 -1
  271. package/dist/react/use-opencode-events/helpers.js +54 -6
  272. package/dist/react/use-opencode-events/helpers.js.map +1 -1
  273. package/dist/react/use-opencode-events/index.d.ts.map +1 -1
  274. package/dist/react/use-opencode-events/index.js +80 -8
  275. package/dist/react/use-opencode-events/index.js.map +1 -1
  276. package/dist/react/use-opencode-events/rehydrate-targets.d.ts +18 -0
  277. package/dist/react/use-opencode-events/rehydrate-targets.d.ts.map +1 -0
  278. package/dist/react/use-opencode-events/rehydrate-targets.js +20 -0
  279. package/dist/react/use-opencode-events/rehydrate-targets.js.map +1 -0
  280. package/dist/react/use-opencode-events/stream-revival.d.ts +37 -0
  281. package/dist/react/use-opencode-events/stream-revival.d.ts.map +1 -0
  282. package/dist/react/use-opencode-events/stream-revival.js +53 -0
  283. package/dist/react/use-opencode-events/stream-revival.js.map +1 -0
  284. package/dist/react/use-opencode-events/use-event-stream-refs.d.ts.map +1 -1
  285. package/dist/react/use-opencode-events/use-event-stream-refs.js +14 -2
  286. package/dist/react/use-opencode-events/use-event-stream-refs.js.map +1 -1
  287. package/dist/react/use-opencode-local.d.ts.map +1 -1
  288. package/dist/react/use-opencode-local.js +27 -8
  289. package/dist/react/use-opencode-local.js.map +1 -1
  290. package/dist/react/use-opencode-pty.d.ts +7 -1
  291. package/dist/react/use-opencode-pty.d.ts.map +1 -1
  292. package/dist/react/use-opencode-pty.js +6 -2
  293. package/dist/react/use-opencode-pty.js.map +1 -1
  294. package/dist/react/use-opencode-sessions/agents.d.ts.map +1 -1
  295. package/dist/react/use-opencode-sessions/agents.js +13 -2
  296. package/dist/react/use-opencode-sessions/agents.js.map +1 -1
  297. package/dist/react/use-opencode-sessions/commands.d.ts +12 -0
  298. package/dist/react/use-opencode-sessions/commands.d.ts.map +1 -1
  299. package/dist/react/use-opencode-sessions/commands.js +15 -3
  300. package/dist/react/use-opencode-sessions/commands.js.map +1 -1
  301. package/dist/react/use-opencode-sessions/index.d.ts +1 -0
  302. package/dist/react/use-opencode-sessions/index.d.ts.map +1 -1
  303. package/dist/react/use-opencode-sessions/index.js +1 -0
  304. package/dist/react/use-opencode-sessions/index.js.map +1 -1
  305. package/dist/react/use-opencode-sessions/keys.d.ts +8 -0
  306. package/dist/react/use-opencode-sessions/keys.d.ts.map +1 -1
  307. package/dist/react/use-opencode-sessions/keys.js +8 -0
  308. package/dist/react/use-opencode-sessions/keys.js.map +1 -1
  309. package/dist/react/use-opencode-sessions/providers.d.ts.map +1 -1
  310. package/dist/react/use-opencode-sessions/providers.js +56 -5
  311. package/dist/react/use-opencode-sessions/providers.js.map +1 -1
  312. package/dist/react/use-opencode-sessions/shared.d.ts +23 -0
  313. package/dist/react/use-opencode-sessions/shared.d.ts.map +1 -1
  314. package/dist/react/use-opencode-sessions/shared.js +31 -0
  315. package/dist/react/use-opencode-sessions/shared.js.map +1 -1
  316. package/dist/react/use-opencode-sessions/vcs.d.ts +28 -0
  317. package/dist/react/use-opencode-sessions/vcs.d.ts.map +1 -0
  318. package/dist/react/use-opencode-sessions/vcs.js +42 -0
  319. package/dist/react/use-opencode-sessions/vcs.js.map +1 -0
  320. package/dist/react/use-poll-owner.d.ts +14 -0
  321. package/dist/react/use-poll-owner.d.ts.map +1 -0
  322. package/dist/react/use-poll-owner.js +32 -0
  323. package/dist/react/use-poll-owner.js.map +1 -0
  324. package/dist/react/use-project-llm-gateway.d.ts +27 -0
  325. package/dist/react/use-project-llm-gateway.d.ts.map +1 -0
  326. package/dist/react/use-project-llm-gateway.js +41 -0
  327. package/dist/react/use-project-llm-gateway.js.map +1 -0
  328. package/dist/react/use-project-models.d.ts +9 -0
  329. package/dist/react/use-project-models.d.ts.map +1 -1
  330. package/dist/react/use-project-models.js +24 -1
  331. package/dist/react/use-project-models.js.map +1 -1
  332. package/dist/react/use-runtime-reconnect.d.ts +11 -0
  333. package/dist/react/use-runtime-reconnect.d.ts.map +1 -1
  334. package/dist/react/use-runtime-reconnect.js +34 -3
  335. package/dist/react/use-runtime-reconnect.js.map +1 -1
  336. package/dist/react/use-session-prompts.d.ts +53 -3
  337. package/dist/react/use-session-prompts.d.ts.map +1 -1
  338. package/dist/react/use-session-prompts.js +133 -21
  339. package/dist/react/use-session-prompts.js.map +1 -1
  340. package/dist/react/use-session-send.d.ts +17 -0
  341. package/dist/react/use-session-send.d.ts.map +1 -1
  342. package/dist/react/use-session-send.js +54 -5
  343. package/dist/react/use-session-send.js.map +1 -1
  344. package/dist/react/use-session-start-give-up.d.ts +20 -0
  345. package/dist/react/use-session-start-give-up.d.ts.map +1 -0
  346. package/dist/react/use-session-start-give-up.js +60 -0
  347. package/dist/react/use-session-start-give-up.js.map +1 -0
  348. package/dist/react/use-session-sync.d.ts +35 -1
  349. package/dist/react/use-session-sync.d.ts.map +1 -1
  350. package/dist/react/use-session-sync.js +135 -53
  351. package/dist/react/use-session-sync.js.map +1 -1
  352. package/dist/react/use-session-working.d.ts +55 -0
  353. package/dist/react/use-session-working.d.ts.map +1 -1
  354. package/dist/react/use-session-working.js +114 -13
  355. package/dist/react/use-session-working.js.map +1 -1
  356. package/dist/react/use-session.d.ts +13 -13
  357. package/dist/react/use-session.d.ts.map +1 -1
  358. package/dist/react/use-session.js +74 -53
  359. package/dist/react/use-session.js.map +1 -1
  360. package/dist/react/use-static-file-preview.d.ts +12 -0
  361. package/dist/react/use-static-file-preview.d.ts.map +1 -0
  362. package/dist/react/use-static-file-preview.js +119 -0
  363. package/dist/react/use-static-file-preview.js.map +1 -0
  364. package/dist/react/use-wake-escalation.d.ts +51 -0
  365. package/dist/react/use-wake-escalation.d.ts.map +1 -0
  366. package/dist/react/use-wake-escalation.js +62 -0
  367. package/dist/react/use-wake-escalation.js.map +1 -0
  368. package/package.json +6 -4
  369. package/dist/browser/session-sync/session-transcript-cache.d.ts +0 -79
  370. package/dist/browser/session-sync/session-transcript-cache.d.ts.map +0 -1
  371. package/dist/browser/session-sync/session-transcript-cache.js +0 -91
  372. package/dist/browser/session-sync/session-transcript-cache.js.map +0 -1
  373. package/dist/core/rest/projects-client/public-voice-join.d.ts +0 -59
  374. package/dist/core/rest/projects-client/public-voice-join.d.ts.map +0 -1
  375. package/dist/core/rest/projects-client/public-voice-join.js +0 -64
  376. package/dist/core/rest/projects-client/public-voice-join.js.map +0 -1
  377. package/dist/core/rest/projects-client/transcription.d.ts +0 -5
  378. package/dist/core/rest/projects-client/transcription.d.ts.map +0 -1
  379. package/dist/core/rest/projects-client/transcription.js +0 -14
  380. package/dist/core/rest/projects-client/transcription.js.map +0 -1
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Back-compat aliases for the `V2Event*` type names @opencode-ai/sdk exported
3
+ * up to 1.17.x. The 1.18.x generator dropped the `V2` prefix and exports the
4
+ * same event types as `Event*`. These names are part of @kortix/sdk's public
5
+ * type surface (public-type-surface.snapshot.json), so removing them is a
6
+ * breaking change — keep them until the next major.
7
+ */
8
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventCatalogUpdated`. */
9
+ export type { EventCatalogUpdated as V2EventCatalogUpdated } from '@opencode-ai/sdk/v2/client';
10
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventCommandExecuted`. */
11
+ export type { EventCommandExecuted as V2EventCommandExecuted } from '@opencode-ai/sdk/v2/client';
12
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventFileEdited`. */
13
+ export type { EventFileEdited as V2EventFileEdited } from '@opencode-ai/sdk/v2/client';
14
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventFileWatcherUpdated`. */
15
+ export type { EventFileWatcherUpdated as V2EventFileWatcherUpdated } from '@opencode-ai/sdk/v2/client';
16
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventGlobalDisposed`. */
17
+ export type { EventGlobalDisposed as V2EventGlobalDisposed } from '@opencode-ai/sdk/v2/client';
18
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventInstallationUpdateAvailable`. */
19
+ export type { EventInstallationUpdateAvailable as V2EventInstallationUpdateAvailable } from '@opencode-ai/sdk/v2/client';
20
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventInstallationUpdated`. */
21
+ export type { EventInstallationUpdated as V2EventInstallationUpdated } from '@opencode-ai/sdk/v2/client';
22
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventIntegrationConnectionUpdated`. */
23
+ export type { EventIntegrationConnectionUpdated as V2EventIntegrationConnectionUpdated } from '@opencode-ai/sdk/v2/client';
24
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventIntegrationUpdated`. */
25
+ export type { EventIntegrationUpdated as V2EventIntegrationUpdated } from '@opencode-ai/sdk/v2/client';
26
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventLspUpdated`. */
27
+ export type { EventLspUpdated as V2EventLspUpdated } from '@opencode-ai/sdk/v2/client';
28
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventMcpBrowserOpenFailed`. */
29
+ export type { EventMcpBrowserOpenFailed as V2EventMcpBrowserOpenFailed } from '@opencode-ai/sdk/v2/client';
30
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventMcpToolsChanged`. */
31
+ export type { EventMcpToolsChanged as V2EventMcpToolsChanged } from '@opencode-ai/sdk/v2/client';
32
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventMessagePartDelta`. */
33
+ export type { EventMessagePartDelta as V2EventMessagePartDelta } from '@opencode-ai/sdk/v2/client';
34
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventMessagePartRemoved`. */
35
+ export type { EventMessagePartRemoved as V2EventMessagePartRemoved } from '@opencode-ai/sdk/v2/client';
36
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventMessagePartUpdated`. */
37
+ export type { EventMessagePartUpdated as V2EventMessagePartUpdated } from '@opencode-ai/sdk/v2/client';
38
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventMessageRemoved`. */
39
+ export type { EventMessageRemoved as V2EventMessageRemoved } from '@opencode-ai/sdk/v2/client';
40
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventMessageUpdated`. */
41
+ export type { EventMessageUpdated as V2EventMessageUpdated } from '@opencode-ai/sdk/v2/client';
42
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventModelsDevRefreshed`. */
43
+ export type { EventModelsDevRefreshed as V2EventModelsDevRefreshed } from '@opencode-ai/sdk/v2/client';
44
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventPermissionAsked`. */
45
+ export type { EventPermissionAsked as V2EventPermissionAsked } from '@opencode-ai/sdk/v2/client';
46
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventPermissionReplied`. */
47
+ export type { EventPermissionReplied as V2EventPermissionReplied } from '@opencode-ai/sdk/v2/client';
48
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventPermissionV2Asked`. */
49
+ export type { EventPermissionV2Asked as V2EventPermissionV2Asked } from '@opencode-ai/sdk/v2/client';
50
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventPermissionV2Replied`. */
51
+ export type { EventPermissionV2Replied as V2EventPermissionV2Replied } from '@opencode-ai/sdk/v2/client';
52
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventPluginAdded`. */
53
+ export type { EventPluginAdded as V2EventPluginAdded } from '@opencode-ai/sdk/v2/client';
54
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventProjectDirectoriesUpdated`. */
55
+ export type { EventProjectDirectoriesUpdated as V2EventProjectDirectoriesUpdated } from '@opencode-ai/sdk/v2/client';
56
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventProjectUpdated`. */
57
+ export type { EventProjectUpdated as V2EventProjectUpdated } from '@opencode-ai/sdk/v2/client';
58
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventPtyCreated`. */
59
+ export type { EventPtyCreated as V2EventPtyCreated } from '@opencode-ai/sdk/v2/client';
60
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventPtyDeleted`. */
61
+ export type { EventPtyDeleted as V2EventPtyDeleted } from '@opencode-ai/sdk/v2/client';
62
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventPtyExited`. */
63
+ export type { EventPtyExited as V2EventPtyExited } from '@opencode-ai/sdk/v2/client';
64
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventPtyUpdated`. */
65
+ export type { EventPtyUpdated as V2EventPtyUpdated } from '@opencode-ai/sdk/v2/client';
66
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventQuestionAsked`. */
67
+ export type { EventQuestionAsked as V2EventQuestionAsked } from '@opencode-ai/sdk/v2/client';
68
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventQuestionRejected`. */
69
+ export type { EventQuestionRejected as V2EventQuestionRejected } from '@opencode-ai/sdk/v2/client';
70
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventQuestionReplied`. */
71
+ export type { EventQuestionReplied as V2EventQuestionReplied } from '@opencode-ai/sdk/v2/client';
72
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventQuestionV2Asked`. */
73
+ export type { EventQuestionV2Asked as V2EventQuestionV2Asked } from '@opencode-ai/sdk/v2/client';
74
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventQuestionV2Rejected`. */
75
+ export type { EventQuestionV2Rejected as V2EventQuestionV2Rejected } from '@opencode-ai/sdk/v2/client';
76
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventQuestionV2Replied`. */
77
+ export type { EventQuestionV2Replied as V2EventQuestionV2Replied } from '@opencode-ai/sdk/v2/client';
78
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventReferenceUpdated`. */
79
+ export type { EventReferenceUpdated as V2EventReferenceUpdated } from '@opencode-ai/sdk/v2/client';
80
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventServerConnected`. */
81
+ export type { EventServerConnected as V2EventServerConnected } from '@opencode-ai/sdk/v2/client';
82
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionCompacted`. */
83
+ export type { EventSessionCompacted as V2EventSessionCompacted } from '@opencode-ai/sdk/v2/client';
84
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionCreated`. */
85
+ export type { EventSessionCreated as V2EventSessionCreated } from '@opencode-ai/sdk/v2/client';
86
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionDeleted`. */
87
+ export type { EventSessionDeleted as V2EventSessionDeleted } from '@opencode-ai/sdk/v2/client';
88
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionDiff`. */
89
+ export type { EventSessionDiff as V2EventSessionDiff } from '@opencode-ai/sdk/v2/client';
90
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionError`. */
91
+ export type { EventSessionError as V2EventSessionError } from '@opencode-ai/sdk/v2/client';
92
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionIdle`. */
93
+ export type { EventSessionIdle as V2EventSessionIdle } from '@opencode-ai/sdk/v2/client';
94
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextAgentSwitched`. */
95
+ export type { EventSessionNextAgentSwitched as V2EventSessionNextAgentSwitched } from '@opencode-ai/sdk/v2/client';
96
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextCompactionDelta`. */
97
+ export type { EventSessionNextCompactionDelta as V2EventSessionNextCompactionDelta } from '@opencode-ai/sdk/v2/client';
98
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextCompactionEnded`. */
99
+ export type { EventSessionNextCompactionEnded as V2EventSessionNextCompactionEnded } from '@opencode-ai/sdk/v2/client';
100
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextCompactionStarted`. */
101
+ export type { EventSessionNextCompactionStarted as V2EventSessionNextCompactionStarted } from '@opencode-ai/sdk/v2/client';
102
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextContextUpdated`. */
103
+ export type { EventSessionNextContextUpdated as V2EventSessionNextContextUpdated } from '@opencode-ai/sdk/v2/client';
104
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextModelSwitched`. */
105
+ export type { EventSessionNextModelSwitched as V2EventSessionNextModelSwitched } from '@opencode-ai/sdk/v2/client';
106
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextMoved`. */
107
+ export type { EventSessionNextMoved as V2EventSessionNextMoved } from '@opencode-ai/sdk/v2/client';
108
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextPromptAdmitted`. */
109
+ export type { EventSessionNextPromptAdmitted as V2EventSessionNextPromptAdmitted } from '@opencode-ai/sdk/v2/client';
110
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextPrompted`. */
111
+ export type { EventSessionNextPrompted as V2EventSessionNextPrompted } from '@opencode-ai/sdk/v2/client';
112
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextReasoningDelta`. */
113
+ export type { EventSessionNextReasoningDelta as V2EventSessionNextReasoningDelta } from '@opencode-ai/sdk/v2/client';
114
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextReasoningEnded`. */
115
+ export type { EventSessionNextReasoningEnded as V2EventSessionNextReasoningEnded } from '@opencode-ai/sdk/v2/client';
116
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextReasoningStarted`. */
117
+ export type { EventSessionNextReasoningStarted as V2EventSessionNextReasoningStarted } from '@opencode-ai/sdk/v2/client';
118
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextRetried`. */
119
+ export type { EventSessionNextRetried as V2EventSessionNextRetried } from '@opencode-ai/sdk/v2/client';
120
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextRevertCleared`. */
121
+ export type { EventSessionNextRevertCleared as V2EventSessionNextRevertCleared } from '@opencode-ai/sdk/v2/client';
122
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextRevertCommitted`. */
123
+ export type { EventSessionNextRevertCommitted as V2EventSessionNextRevertCommitted } from '@opencode-ai/sdk/v2/client';
124
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextRevertStaged`. */
125
+ export type { EventSessionNextRevertStaged as V2EventSessionNextRevertStaged } from '@opencode-ai/sdk/v2/client';
126
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextShellEnded`. */
127
+ export type { EventSessionNextShellEnded as V2EventSessionNextShellEnded } from '@opencode-ai/sdk/v2/client';
128
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextShellStarted`. */
129
+ export type { EventSessionNextShellStarted as V2EventSessionNextShellStarted } from '@opencode-ai/sdk/v2/client';
130
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextStepEnded`. */
131
+ export type { EventSessionNextStepEnded as V2EventSessionNextStepEnded } from '@opencode-ai/sdk/v2/client';
132
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextStepFailed`. */
133
+ export type { EventSessionNextStepFailed as V2EventSessionNextStepFailed } from '@opencode-ai/sdk/v2/client';
134
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextStepStarted`. */
135
+ export type { EventSessionNextStepStarted as V2EventSessionNextStepStarted } from '@opencode-ai/sdk/v2/client';
136
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextSynthetic`. */
137
+ export type { EventSessionNextSynthetic as V2EventSessionNextSynthetic } from '@opencode-ai/sdk/v2/client';
138
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextTextDelta`. */
139
+ export type { EventSessionNextTextDelta as V2EventSessionNextTextDelta } from '@opencode-ai/sdk/v2/client';
140
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextTextEnded`. */
141
+ export type { EventSessionNextTextEnded as V2EventSessionNextTextEnded } from '@opencode-ai/sdk/v2/client';
142
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextTextStarted`. */
143
+ export type { EventSessionNextTextStarted as V2EventSessionNextTextStarted } from '@opencode-ai/sdk/v2/client';
144
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextToolCalled`. */
145
+ export type { EventSessionNextToolCalled as V2EventSessionNextToolCalled } from '@opencode-ai/sdk/v2/client';
146
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextToolFailed`. */
147
+ export type { EventSessionNextToolFailed as V2EventSessionNextToolFailed } from '@opencode-ai/sdk/v2/client';
148
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextToolInputDelta`. */
149
+ export type { EventSessionNextToolInputDelta as V2EventSessionNextToolInputDelta } from '@opencode-ai/sdk/v2/client';
150
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextToolInputEnded`. */
151
+ export type { EventSessionNextToolInputEnded as V2EventSessionNextToolInputEnded } from '@opencode-ai/sdk/v2/client';
152
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextToolInputStarted`. */
153
+ export type { EventSessionNextToolInputStarted as V2EventSessionNextToolInputStarted } from '@opencode-ai/sdk/v2/client';
154
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextToolProgress`. */
155
+ export type { EventSessionNextToolProgress as V2EventSessionNextToolProgress } from '@opencode-ai/sdk/v2/client';
156
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionNextToolSuccess`. */
157
+ export type { EventSessionNextToolSuccess as V2EventSessionNextToolSuccess } from '@opencode-ai/sdk/v2/client';
158
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionStatus`. */
159
+ export type { EventSessionStatus as V2EventSessionStatus } from '@opencode-ai/sdk/v2/client';
160
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventSessionUpdated`. */
161
+ export type { EventSessionUpdated as V2EventSessionUpdated } from '@opencode-ai/sdk/v2/client';
162
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventTodoUpdated`. */
163
+ export type { EventTodoUpdated as V2EventTodoUpdated } from '@opencode-ai/sdk/v2/client';
164
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventTuiCommandExecute`. */
165
+ export type { EventTuiCommandExecute as V2EventTuiCommandExecute } from '@opencode-ai/sdk/v2/client';
166
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventTuiPromptAppend`. */
167
+ export type { EventTuiPromptAppend as V2EventTuiPromptAppend } from '@opencode-ai/sdk/v2/client';
168
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventTuiSessionSelect`. */
169
+ export type { EventTuiSessionSelect as V2EventTuiSessionSelect } from '@opencode-ai/sdk/v2/client';
170
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventTuiToastShow`. */
171
+ export type { EventTuiToastShow as V2EventTuiToastShow } from '@opencode-ai/sdk/v2/client';
172
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventVcsBranchUpdated`. */
173
+ export type { EventVcsBranchUpdated as V2EventVcsBranchUpdated } from '@opencode-ai/sdk/v2/client';
174
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventWorkspaceFailed`. */
175
+ export type { EventWorkspaceFailed as V2EventWorkspaceFailed } from '@opencode-ai/sdk/v2/client';
176
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventWorkspaceReady`. */
177
+ export type { EventWorkspaceReady as V2EventWorkspaceReady } from '@opencode-ai/sdk/v2/client';
178
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventWorkspaceStatus`. */
179
+ export type { EventWorkspaceStatus as V2EventWorkspaceStatus } from '@opencode-ai/sdk/v2/client';
180
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventWorktreeFailed`. */
181
+ export type { EventWorktreeFailed as V2EventWorktreeFailed } from '@opencode-ai/sdk/v2/client';
182
+ /** @deprecated Renamed upstream in @opencode-ai/sdk 1.18 — use `EventWorktreeReady`. */
183
+ export type { EventWorktreeReady as V2EventWorktreeReady } from '@opencode-ai/sdk/v2/client';
184
+ //# sourceMappingURL=opencode-v2-event-aliases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-v2-event-aliases.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/opencode-v2-event-aliases.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=opencode-v2-event-aliases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-v2-event-aliases.js","sourceRoot":"","sources":["../../../src/core/runtime/opencode-v2-event-aliases.ts"],"names":[],"mappings":""}
@@ -33,8 +33,18 @@ export declare function removeKortixPty(baseUrl: string, ptyId: string): Promise
33
33
  * mixed-content upgrade, and `?token=` query auth (WebSocket can't set
34
34
  * custom headers) the OpenCode-backed terminal used, just pointed at
35
35
  * `/kortix/pty` instead of OpenCode's `/pty`.
36
+ *
37
+ * `opts.wake` marks the attach as USER-INITIATED (the panel's first connect, or
38
+ * "Reconnect now"). A parked sandbox refuses the upgrade with 503, which the
39
+ * browser can only surface as close code 1006 — so without this marker the
40
+ * terminal reconnects forever against a box that nothing in the loop will ever
41
+ * wake. The API resumes a stopped box only for a marked attach
42
+ * (`shouldWakeStoppedSandboxForWsAttach`), so automatic backoff retries — which
43
+ * must never resurrect a box — leave it off.
36
44
  */
37
- export declare function getKortixPtyWebSocketUrl(ptyId: string, baseUrl: string): Promise<string>;
45
+ export declare function getKortixPtyWebSocketUrl(ptyId: string, baseUrl: string, opts?: {
46
+ wake?: boolean;
47
+ }): Promise<string>;
38
48
  /** Grouped namespace for ergonomic use (also available as named exports). */
39
49
  export declare const kortixPty: {
40
50
  list: typeof listKortixPty;
@@ -1 +1 @@
1
- {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/pty.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAcD,+DAA+D;AAC/D,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAKzE;AAED,uDAAuD;AACvD,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACvG,OAAO,CAAC,SAAS,CAAC,CASpB;AAED,gEAAgE;AAChE,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC9D,OAAO,CAAC,SAAS,CAAC,CASpB;AAED,iEAAiE;AACjE,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAInF;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwB9F;AAED,6EAA6E;AAC7E,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC"}
1
+ {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/pty.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAcD,+DAA+D;AAC/D,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAKzE;AAED,uDAAuD;AACvD,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACvG,OAAO,CAAC,SAAS,CAAC,CASpB;AAED,gEAAgE;AAChE,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC9D,OAAO,CAAC,SAAS,CAAC,CASpB;AAED,iEAAiE;AACjE,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAInF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACxB,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAED,6EAA6E;AAC7E,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC"}
@@ -68,8 +68,16 @@ export async function removeKortixPty(baseUrl, ptyId) {
68
68
  * mixed-content upgrade, and `?token=` query auth (WebSocket can't set
69
69
  * custom headers) the OpenCode-backed terminal used, just pointed at
70
70
  * `/kortix/pty` instead of OpenCode's `/pty`.
71
+ *
72
+ * `opts.wake` marks the attach as USER-INITIATED (the panel's first connect, or
73
+ * "Reconnect now"). A parked sandbox refuses the upgrade with 503, which the
74
+ * browser can only surface as close code 1006 — so without this marker the
75
+ * terminal reconnects forever against a box that nothing in the loop will ever
76
+ * wake. The API resumes a stopped box only for a marked attach
77
+ * (`shouldWakeStoppedSandboxForWsAttach`), so automatic backoff retries — which
78
+ * must never resurrect a box — leave it off.
71
79
  */
72
- export async function getKortixPtyWebSocketUrl(ptyId, baseUrl) {
80
+ export async function getKortixPtyWebSocketUrl(ptyId, baseUrl, opts) {
73
81
  const base = requireBaseUrl(baseUrl);
74
82
  const wsBase = (() => {
75
83
  try {
@@ -89,14 +97,19 @@ export async function getKortixPtyWebSocketUrl(ptyId, baseUrl) {
89
97
  return base.replace('https://', 'wss://').replace('http://', 'ws://');
90
98
  }
91
99
  })();
92
- const url = `${wsBase}/kortix/pty/${encodeURIComponent(ptyId)}/connect`;
100
+ const connectUrl = `${wsBase}/kortix/pty/${encodeURIComponent(ptyId)}/connect`;
101
+ const params = new URLSearchParams();
93
102
  // Browser WebSocket API doesn't support custom headers, so inject the auth
94
103
  // token as a query param for the daemon (via the backend proxy) to check.
95
104
  const token = await getAuthToken();
96
- if (!token)
97
- return url;
98
- const sep = url.includes('?') ? '&' : '?';
99
- return `${url}${sep}token=${encodeURIComponent(token)}`;
105
+ if (token)
106
+ params.set('token', token);
107
+ if (opts?.wake)
108
+ params.set('wake', '1');
109
+ const query = params.toString();
110
+ if (!query)
111
+ return connectUrl;
112
+ return `${connectUrl}${connectUrl.includes('?') ? '&' : '?'}${query}`;
100
113
  }
101
114
  /** Grouped namespace for ergonomic use (also available as named exports). */
102
115
  export const kortixPty = {
@@ -1 +1 @@
1
- {"version":3,"file":"pty.js","sourceRoot":"","sources":["../../../src/core/runtime/pty.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pty.js","sourceRoot":"","sources":["../../../src/core/runtime/pty.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * ONE answer to "what is this session's runtime doing", for every surface that
3
+ * draws it.
4
+ *
5
+ * ## Why this exists
6
+ *
7
+ * The frontend had four independent sources for that question — the control
8
+ * plane's session row, a health probe, the runtime's SSE frames, and the
9
+ * control plane's turn ledger — and every surface picked its own subset. The
10
+ * composer's notice read the probe, the sidebar dot read the row, the Stop
11
+ * button read the ledger and the stream. Each source has its own latency and
12
+ * its own failure mode, so on a cold load they answer in an arbitrary order and
13
+ * the surfaces disagree with each other and with the screen.
14
+ *
15
+ * Worse, the composer's notice treated the ABSENCE of an answer as an answer.
16
+ * A page reload of a session whose sandbox is up and mid-turn showed "Waking
17
+ * this session up…" for seconds before the runtime replied (screen recording,
18
+ * essentia 2026-08-24) — a negative claim asserted from having asked nobody.
19
+ *
20
+ * ## The rule
21
+ *
22
+ * A negative claim needs positive evidence. `unknown` is a real state and it is
23
+ * the honest one until something answers; nothing may render an alarm from it.
24
+ *
25
+ * Pure, so each rule below is a test rather than a habit.
26
+ */
27
+ export type SessionConnection =
28
+ /** Nothing has answered yet. Say nothing; this is a cold load, not a fault. */
29
+ 'unknown'
30
+ /** The control plane says the sandbox is not up. THIS is when "waking" is true. */
31
+ | 'waking'
32
+ /** The sandbox is up and the runtime has not answered this tab yet. */
33
+ | 'connecting'
34
+ /** The runtime is answering — a health pass, or its own output arriving. */
35
+ | 'live'
36
+ /** Probed and failed past the threshold, or reachable-but-never-healthy. */
37
+ | 'unreachable';
38
+ /** The control plane's statement about the sandbox behind this session. `null`
39
+ * when the session row has not loaded — which is NOT the same as "stopped". */
40
+ export type SandboxLifecycle =
41
+ /** Every value `ProjectSessionStatus` can take, plus `null` for "the row has
42
+ * not loaded" — which is NOT the same as "stopped" and must never be read as
43
+ * one. `archived` is accepted for a caller reading a sandbox row rather than
44
+ * a session row. */
45
+ 'queued' | 'branching' | 'provisioning' | 'running' | 'stopped' | 'archived' | 'failed' | 'completed' | null;
46
+ export interface SessionConnectionInputs {
47
+ /** `project_sessions.status` — the control plane's view of the box. */
48
+ sandbox: SandboxLifecycle;
49
+ /** The health probe passed (`useRuntimeReady`). */
50
+ runtimeReady: boolean;
51
+ /** The probe has given up (`useRuntimePhase() === 'unreachable'`). */
52
+ unreachable?: boolean;
53
+ /** Reachable, but never healthy for longer than the boot-stall grace period. */
54
+ stalled?: boolean;
55
+ /** The runtime's OWN OUTPUT is arriving right now — see `WorkingActivityInput`.
56
+ * The strongest evidence there is: not a report about the runtime, the
57
+ * runtime itself. */
58
+ activityFresh?: boolean;
59
+ }
60
+ export declare function projectSessionConnection(input: SessionConnectionInputs): SessionConnection;
61
+ /** Whether a surface may draw an alarm (a notice, a warning colour) from this
62
+ * state. `unknown` and `connecting` are waits, not faults. */
63
+ export declare function connectionIsFaulted(connection: SessionConnection): boolean;
64
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/core/session/connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,iBAAiB;AAC3B,+EAA+E;AAC7E,SAAS;AACX,mFAAmF;GACjF,QAAQ;AACV,uEAAuE;GACrE,YAAY;AACd,4EAA4E;GAC1E,MAAM;AACR,4EAA4E;GAC1E,aAAa,CAAC;AAElB;gFACgF;AAChF,MAAM,MAAM,gBAAgB;AAC1B;;;qBAGqB;AACnB,QAAQ,GACR,WAAW,GACX,cAAc,GACd,SAAS,GACT,SAAS,GACT,UAAU,GACV,QAAQ,GACR,WAAW,GACX,IAAI,CAAC;AAET,MAAM,WAAW,uBAAuB;IACtC,uEAAuE;IACvE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,mDAAmD;IACnD,YAAY,EAAE,OAAO,CAAC;IACtB,sEAAsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;0BAEsB;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,uBAAuB,GAAG,iBAAiB,CAwB1F;AAED;+DAC+D;AAC/D,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAE1E"}
@@ -0,0 +1,36 @@
1
+ export function projectSessionConnection(input) {
2
+ // Content outranks every probe, including one that has given up: a runtime
3
+ // that is emitting parts is reachable by definition, whatever a health check
4
+ // on a different path concluded.
5
+ if (input.activityFresh)
6
+ return 'live';
7
+ if (input.runtimeReady)
8
+ return 'live';
9
+ if (input.unreachable || input.stalled)
10
+ return 'unreachable';
11
+ // Positive evidence, and the ONLY thing that earns the word "waking".
12
+ if (input.sandbox === 'stopped' || input.sandbox === 'archived')
13
+ return 'waking';
14
+ if (input.sandbox === 'provisioning' ||
15
+ input.sandbox === 'queued' ||
16
+ input.sandbox === 'branching') {
17
+ return 'waking';
18
+ }
19
+ // A finished session has no runtime to reach and nothing to wake. Nothing is
20
+ // wrong with it, so nothing is announced.
21
+ if (input.sandbox === 'completed')
22
+ return 'unknown';
23
+ if (input.sandbox === 'failed')
24
+ return 'unreachable';
25
+ // The box is up; we simply have not reached it yet. Not an alarm.
26
+ if (input.sandbox === 'running')
27
+ return 'connecting';
28
+ // The row has not loaded. We know nothing, and we say nothing.
29
+ return 'unknown';
30
+ }
31
+ /** Whether a surface may draw an alarm (a notice, a warning colour) from this
32
+ * state. `unknown` and `connecting` are waits, not faults. */
33
+ export function connectionIsFaulted(connection) {
34
+ return connection === 'unreachable';
35
+ }
36
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/core/session/connection.ts"],"names":[],"mappings":"AAsEA,MAAM,UAAU,wBAAwB,CAAC,KAA8B;IACrE,2EAA2E;IAC3E,6EAA6E;IAC7E,iCAAiC;IACjC,IAAI,KAAK,CAAC,aAAa;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,KAAK,CAAC,YAAY;QAAE,OAAO,MAAM,CAAC;IACtC,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,aAAa,CAAC;IAC7D,sEAAsE;IACtE,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC;IACjF,IACE,KAAK,CAAC,OAAO,KAAK,cAAc;QAChC,KAAK,CAAC,OAAO,KAAK,QAAQ;QAC1B,KAAK,CAAC,OAAO,KAAK,WAAW,EAC7B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,6EAA6E;IAC7E,0CAA0C;IAC1C,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,aAAa,CAAC;IACrD,kEAAkE;IAClE,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IACrD,+DAA+D;IAC/D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;+DAC+D;AAC/D,MAAM,UAAU,mBAAmB,CAAC,UAA6B;IAC/D,OAAO,UAAU,KAAK,aAAa,CAAC;AACtC,CAAC"}
@@ -19,6 +19,8 @@ export * from './preview.js';
19
19
  export * from './preview-auth.js';
20
20
  export * from './preview-probe.js';
21
21
  export * from './presentation.js';
22
+ export * from './connection.js';
22
23
  export * from './working.js';
23
24
  export * from './compaction.js';
25
+ export * from './wake-escalation.js';
24
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
@@ -19,6 +19,8 @@ export * from './preview.js';
19
19
  export * from './preview-auth.js';
20
20
  export * from './preview-probe.js';
21
21
  export * from './presentation.js';
22
+ export * from './connection.js';
22
23
  export * from './working.js';
23
24
  export * from './compaction.js';
25
+ export * from './wake-escalation.js';
24
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * ONE session-open read, shared by every consumer that would otherwise issue
3
+ * its own.
4
+ *
5
+ * THE PROBLEM. Opening a session made 6 serial control-plane round trips before
6
+ * the first honest frame — the session row, `/turn`, `/prompts`,
7
+ * `/transcript?shape=sync`, `/detail`, `/model-defaults` — and then kept making
8
+ * them, because the hooks that need those facts each own their own query. On a
9
+ * real deployment that is 0.3-2.3 s per read at the median (measured over 20
10
+ * session opens, 2026-08-26), and the last one cannot start until the first
11
+ * lands.
12
+ *
13
+ * THE SHAPE. `GET .../open-bundle` answers all of it at once, and this module
14
+ * is the seam that lets the EXISTING consumers use it without knowing it exists:
15
+ *
16
+ * 1. The open path calls `openSessionBundle()` ONCE, in a LAYOUT effect. React
17
+ * runs every layout effect, tree-wide, before any passive effect, and
18
+ * TanStack starts a query's fetch from a passive effect — so the bundle is
19
+ * always in flight before the first `/turn` or `/prompts` fetch begins.
20
+ * 2. Each consumer's own `queryFn` calls `claimOpenBundle()` FIRST. A claim
21
+ * returns the shared promise while the bundle is in flight, or the resolved
22
+ * bundle inside a short share window, and `null` otherwise.
23
+ * 3. `null` means "answer the way you always did". Every consumer keeps its
24
+ * own endpoint, so an old server, a failed bundle and a steady-state poll
25
+ * all still work. The bundle is an ACCELERATOR, never a dependency.
26
+ *
27
+ * WHY A CLAIM CANNOT START ONE. A `/turn` poll that could start a bundle would
28
+ * re-read the transcript and the model catalogue every 15 s for the life of the
29
+ * tab. Starting is the open path's decision; claiming is everyone else's.
30
+ *
31
+ * WHY THE TRANSCRIPT IS A SEPARATE, ONE-SHOT STASH. The mirror is hydrated once
32
+ * the session's OpenCode root is known, which on a cold box is 18.9-24.5 s after
33
+ * the open (measured) — long past the share window the turn and queue legs want.
34
+ * It is also the one leg that must never be served twice: a second hydrate over
35
+ * a store the runtime has already filled is how a transcript grows ghosts.
36
+ *
37
+ * EVERY LEG IS TRI-STATE. `known: false` projects to `null`, which sends the
38
+ * consumer to its endpoint. It must never project to the NEGATIVE answer — an
39
+ * empty queue, an idle turn, an empty thread — because a default rendered as an
40
+ * answer is the defect the bundle exists to remove.
41
+ */
42
+ import { type SessionOpenBundle, type SessionPrompt, type SessionTranscriptSyncEnvelope, type SessionTurn, type SessionTurnEnded } from '../rest/projects-client/sessions.js';
43
+ /**
44
+ * How long a resolved bundle keeps answering claims.
45
+ *
46
+ * It only has to outlast ONE session open's burst of first reads, not the
47
+ * session. Long enough and the steady-state `/turn` poll (5 s working / 15 s
48
+ * idle) would be answered from a snapshot instead of from the server; this
49
+ * window sits just under the fastest of those cadences on purpose.
50
+ */
51
+ export declare const OPEN_BUNDLE_SHARE_MS = 5000;
52
+ /** How long the one-shot transcript stash survives. Sized for the slowest
53
+ * measured cold box (24.5 s Platinum) with headroom, because the hydrate that
54
+ * consumes it cannot run until the runtime identity resolves. */
55
+ export declare const OPEN_BUNDLE_TRANSCRIPT_TTL_MS = 60000;
56
+ /** The mirrored-message window an open asks for — the same span the sync
57
+ * controller's own first read covers. */
58
+ export declare const OPEN_BUNDLE_TRANSCRIPT_LIMIT = 40;
59
+ /** Drop everything. Tests only — a module singleton with no reset is a test
60
+ * that passes because of the one before it. */
61
+ export declare function resetSessionOpenBundles(): void;
62
+ export interface OpenSessionBundleOptions {
63
+ /** Mirrored messages to ask for. `0` requests the POINTER only — what a
64
+ * client whose store is already warm wants. */
65
+ transcript?: number;
66
+ /** Injected clock, for tests. */
67
+ now?: () => number;
68
+ }
69
+ /**
70
+ * Start the session-open read for `(projectId, sessionId)`.
71
+ *
72
+ * Fire-and-forget and idempotent within the share window: calling it twice for
73
+ * one open (two hooks, StrictMode's double mount) issues one request. Never
74
+ * throws and never rejects — a failed bundle simply resolves `null` and every
75
+ * consumer falls back to its own endpoint.
76
+ */
77
+ export declare function openSessionBundle(projectId: string, sessionId: string, options?: OpenSessionBundleOptions): void;
78
+ /**
79
+ * Claim the in-flight or freshly-resolved bundle for this session.
80
+ *
81
+ * Returns the shared promise, or `null` when there is nothing to share — which
82
+ * is the signal to read the endpoint the normal way. Synchronous in the `null`
83
+ * case on purpose: a consumer must be able to decide without awaiting.
84
+ */
85
+ export declare function claimOpenBundle(projectId: string, sessionId: string, nowMs?: number): Promise<SessionOpenBundle | null> | null;
86
+ /** One `GET .../turn` answer plus the instant the SERVER took it. Structurally
87
+ * the observation `useSessionWorking` stamps for itself — the ranking rule it
88
+ * feeds only works if the stamp is the read's own instant, never arrival. */
89
+ export interface OpenBundleTurnObservation {
90
+ turns: SessionTurn[];
91
+ last_ended: SessionTurnEnded | undefined;
92
+ atMs: number;
93
+ }
94
+ /**
95
+ * Project the turn leg. `null` for an unknown leg — never `{ turns: [] }`,
96
+ * which would be an idle claim made by something that did not know.
97
+ */
98
+ export declare function openBundleTurn(bundle: SessionOpenBundle): OpenBundleTurnObservation | null;
99
+ /** Project the queue leg. `null` for an unknown leg — never `[]`, which would
100
+ * render as "nothing queued" for a queue nobody could read. */
101
+ export declare function openBundleQueue(bundle: SessionOpenBundle): SessionPrompt[] | null;
102
+ /**
103
+ * Take the mirrored transcript this open fetched, ONCE.
104
+ *
105
+ * One-shot by design: the hydrate that consumes it is the only reader that may
106
+ * paint a snapshot, and a second paint over a store the runtime has already
107
+ * filled is how a transcript grows ghosts.
108
+ */
109
+ export declare function takeOpenBundleTranscript(projectId: string, sessionId: string, nowMs?: number): SessionTranscriptSyncEnvelope | null;
110
+ //# sourceMappingURL=open-bundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-bundle.d.ts","sourceRoot":"","sources":["../../../src/core/session/open-bundle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,6BAA6B,EAClC,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAEtB,MAAM,kCAAkC,CAAC;AAE1C;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,OAAQ,CAAC;AAE1C;;kEAEkE;AAClE,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAEpD;0CAC0C;AAC1C,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAyB/C;gDACgD;AAChD,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C;AAED,MAAM,WAAW,wBAAwB;IACvC;oDACgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,wBAA6B,GACrC,IAAI,CAyBN;AASD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAmB,GACzB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,IAAI,CAU1C;AAED;;8EAE8E;AAC9E,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,yBAAyB,GAAG,IAAI,CAS1F;AAED;gEACgE;AAChE,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,aAAa,EAAE,GAAG,IAAI,CAIjF;AAYD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAmB,GACzB,6BAA6B,GAAG,IAAI,CAOtC"}