@noodleseed/one 0.129.2 → 0.131.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/dist/bin.js +0 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +3 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/intents-ops.d.ts +3 -0
  6. package/dist/commands/intents-ops.d.ts.map +1 -0
  7. package/dist/commands/intents-ops.js +147 -0
  8. package/dist/commands/intents-ops.js.map +1 -0
  9. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  10. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +4 -0
  11. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  12. package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js +1 -1
  13. package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js.map +1 -1
  14. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +1 -1
  15. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  16. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  17. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
  18. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  19. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.d.ts.map +1 -1
  20. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +1 -0
  21. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
  22. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +1 -1
  23. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
  24. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  25. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.d.ts +21 -0
  26. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.d.ts.map +1 -1
  27. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.js +10 -0
  28. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.js.map +1 -1
  29. package/node_modules/@noodle-borg/assistant-gateway/dist/elevation.d.ts +7 -1
  30. package/node_modules/@noodle-borg/assistant-gateway/dist/elevation.d.ts.map +1 -1
  31. package/node_modules/@noodle-borg/assistant-gateway/dist/elevation.js +5 -0
  32. package/node_modules/@noodle-borg/assistant-gateway/dist/elevation.js.map +1 -1
  33. package/node_modules/@noodle-borg/assistant-gateway/dist/embed-store.d.ts +5 -1
  34. package/node_modules/@noodle-borg/assistant-gateway/dist/embed-store.d.ts.map +1 -1
  35. package/node_modules/@noodle-borg/assistant-gateway/dist/embed-store.js.map +1 -1
  36. package/node_modules/@noodle-borg/assistant-gateway/dist/index.d.ts +1 -0
  37. package/node_modules/@noodle-borg/assistant-gateway/dist/index.d.ts.map +1 -1
  38. package/node_modules/@noodle-borg/assistant-gateway/dist/index.js +1 -0
  39. package/node_modules/@noodle-borg/assistant-gateway/dist/index.js.map +1 -1
  40. package/node_modules/@noodle-borg/assistant-gateway/dist/postgres-assistant.d.ts +8 -1
  41. package/node_modules/@noodle-borg/assistant-gateway/dist/postgres-assistant.d.ts.map +1 -1
  42. package/node_modules/@noodle-borg/assistant-gateway/dist/postgres-assistant.js +24 -1
  43. package/node_modules/@noodle-borg/assistant-gateway/dist/postgres-assistant.js.map +1 -1
  44. package/node_modules/@noodle-borg/assistant-gateway/dist/session-resume.d.ts +22 -0
  45. package/node_modules/@noodle-borg/assistant-gateway/dist/session-resume.d.ts.map +1 -0
  46. package/node_modules/@noodle-borg/assistant-gateway/dist/session-resume.js +28 -0
  47. package/node_modules/@noodle-borg/assistant-gateway/dist/session-resume.js.map +1 -0
  48. package/node_modules/@noodle-borg/assistant-gateway/package.json +1 -1
  49. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-observability.d.ts.map +1 -1
  50. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-observability.js +66 -1
  51. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-observability.js.map +1 -1
  52. package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
  53. package/node_modules/@noodle-borg/compiler/dist/compile.js +9 -0
  54. package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
  55. package/node_modules/@noodle-borg/knowledge/dist/fusion.d.ts +2 -1
  56. package/node_modules/@noodle-borg/knowledge/dist/fusion.d.ts.map +1 -1
  57. package/node_modules/@noodle-borg/knowledge/dist/fusion.js +3 -2
  58. package/node_modules/@noodle-borg/knowledge/dist/fusion.js.map +1 -1
  59. package/node_modules/@noodle-borg/knowledge-operations/dist/crawl-lifecycle.d.ts.map +1 -1
  60. package/node_modules/@noodle-borg/knowledge-operations/dist/crawl-lifecycle.js +7 -2
  61. package/node_modules/@noodle-borg/knowledge-operations/dist/crawl-lifecycle.js.map +1 -1
  62. package/node_modules/@noodle-borg/module/dist/index.d.ts +1 -0
  63. package/node_modules/@noodle-borg/module/dist/index.d.ts.map +1 -1
  64. package/node_modules/@noodle-borg/module/dist/index.js +1 -0
  65. package/node_modules/@noodle-borg/module/dist/index.js.map +1 -1
  66. package/node_modules/@noodle-borg/module/dist/intent.d.ts +54 -0
  67. package/node_modules/@noodle-borg/module/dist/intent.d.ts.map +1 -0
  68. package/node_modules/@noodle-borg/module/dist/intent.js +11 -0
  69. package/node_modules/@noodle-borg/module/dist/intent.js.map +1 -0
  70. package/node_modules/@noodle-borg/observability/dist/index.d.ts +6 -0
  71. package/node_modules/@noodle-borg/observability/dist/index.d.ts.map +1 -0
  72. package/node_modules/@noodle-borg/observability/dist/index.js +6 -0
  73. package/node_modules/@noodle-borg/observability/dist/index.js.map +1 -0
  74. package/node_modules/@noodle-borg/observability/dist/intent-capture.d.ts +65 -0
  75. package/node_modules/@noodle-borg/observability/dist/intent-capture.d.ts.map +1 -0
  76. package/node_modules/@noodle-borg/observability/dist/intent-capture.js +327 -0
  77. package/node_modules/@noodle-borg/observability/dist/intent-capture.js.map +1 -0
  78. package/node_modules/@noodle-borg/observability/dist/request-event-buffer.d.ts.map +1 -0
  79. package/node_modules/@noodle-borg/observability/dist/request-event-buffer.js.map +1 -0
  80. package/node_modules/@noodle-borg/observability/dist/request-events-postgres.d.ts.map +1 -0
  81. package/node_modules/@noodle-borg/observability/dist/request-events-postgres.js.map +1 -0
  82. package/node_modules/@noodle-borg/observability/dist/request-events.d.ts.map +1 -0
  83. package/node_modules/@noodle-borg/observability/dist/request-events.js.map +1 -0
  84. package/node_modules/@noodle-borg/observability/dist/runtime.d.ts +11 -0
  85. package/node_modules/@noodle-borg/observability/dist/runtime.d.ts.map +1 -0
  86. package/node_modules/@noodle-borg/observability/dist/runtime.js +29 -0
  87. package/node_modules/@noodle-borg/observability/dist/runtime.js.map +1 -0
  88. package/node_modules/@noodle-borg/observability/package.json +32 -0
  89. package/node_modules/@noodle-borg/protocol/dist/handlers/tools.d.ts.map +1 -1
  90. package/node_modules/@noodle-borg/protocol/dist/handlers/tools.js +22 -3
  91. package/node_modules/@noodle-borg/protocol/dist/handlers/tools.js.map +1 -1
  92. package/node_modules/@noodle-borg/protocol/dist/index.d.ts +1 -0
  93. package/node_modules/@noodle-borg/protocol/dist/index.d.ts.map +1 -1
  94. package/node_modules/@noodle-borg/protocol/dist/index.js +1 -0
  95. package/node_modules/@noodle-borg/protocol/dist/index.js.map +1 -1
  96. package/node_modules/@noodle-borg/protocol/dist/intent-capture.d.ts +47 -0
  97. package/node_modules/@noodle-borg/protocol/dist/intent-capture.d.ts.map +1 -0
  98. package/node_modules/@noodle-borg/protocol/dist/intent-capture.js +101 -0
  99. package/node_modules/@noodle-borg/protocol/dist/intent-capture.js.map +1 -0
  100. package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts +5 -2
  101. package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts.map +1 -1
  102. package/node_modules/@noodle-borg/protocol/dist/mapping.js +9 -7
  103. package/node_modules/@noodle-borg/protocol/dist/mapping.js.map +1 -1
  104. package/node_modules/@noodle-borg/protocol/dist/observation.d.ts +3 -0
  105. package/node_modules/@noodle-borg/protocol/dist/observation.d.ts.map +1 -1
  106. package/node_modules/@noodle-borg/protocol/dist/observation.js.map +1 -1
  107. package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts +4 -0
  108. package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts.map +1 -1
  109. package/node_modules/@noodle-borg/protocol/dist/sdk-server.js.map +1 -1
  110. package/node_modules/@noodle-borg/protocol/dist/v2/server.d.ts.map +1 -1
  111. package/node_modules/@noodle-borg/protocol/dist/v2/server.js +23 -4
  112. package/node_modules/@noodle-borg/protocol/dist/v2/server.js.map +1 -1
  113. package/node_modules/@noodle-borg/protocol/package.json +1 -0
  114. package/node_modules/@noodle-borg/service/dist/archive-preflight.d.ts +5 -0
  115. package/node_modules/@noodle-borg/service/dist/archive-preflight.d.ts.map +1 -0
  116. package/node_modules/@noodle-borg/service/dist/archive-preflight.js +19 -0
  117. package/node_modules/@noodle-borg/service/dist/archive-preflight.js.map +1 -0
  118. package/node_modules/@noodle-borg/service/dist/index.d.ts +1 -3
  119. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  120. package/node_modules/@noodle-borg/service/dist/index.js +1 -3
  121. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  122. package/node_modules/@noodle-borg/service/dist/main.js +2 -0
  123. package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
  124. package/node_modules/@noodle-borg/service/dist/observability-runtime.d.ts +25 -0
  125. package/node_modules/@noodle-borg/service/dist/observability-runtime.d.ts.map +1 -0
  126. package/node_modules/@noodle-borg/service/dist/observability-runtime.js +61 -0
  127. package/node_modules/@noodle-borg/service/dist/observability-runtime.js.map +1 -0
  128. package/node_modules/@noodle-borg/service/dist/options.d.ts +10 -1
  129. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  130. package/node_modules/@noodle-borg/service/dist/routes/assistant-elevation.d.ts +2 -0
  131. package/node_modules/@noodle-borg/service/dist/routes/assistant-elevation.d.ts.map +1 -1
  132. package/node_modules/@noodle-borg/service/dist/routes/assistant-elevation.js +3 -0
  133. package/node_modules/@noodle-borg/service/dist/routes/assistant-elevation.js.map +1 -1
  134. package/node_modules/@noodle-borg/service/dist/routes/assistant-embeds.d.ts.map +1 -1
  135. package/node_modules/@noodle-borg/service/dist/routes/assistant-embeds.js +1 -1
  136. package/node_modules/@noodle-borg/service/dist/routes/assistant-embeds.js.map +1 -1
  137. package/node_modules/@noodle-borg/service/dist/routes/assistant.d.ts.map +1 -1
  138. package/node_modules/@noodle-borg/service/dist/routes/assistant.js +70 -30
  139. package/node_modules/@noodle-borg/service/dist/routes/assistant.js.map +1 -1
  140. package/node_modules/@noodle-borg/service/dist/routes/intent-capture-dispatch.d.ts +11 -0
  141. package/node_modules/@noodle-borg/service/dist/routes/intent-capture-dispatch.d.ts.map +1 -0
  142. package/node_modules/@noodle-borg/service/dist/routes/intent-capture-dispatch.js +22 -0
  143. package/node_modules/@noodle-borg/service/dist/routes/intent-capture-dispatch.js.map +1 -0
  144. package/node_modules/@noodle-borg/service/dist/routes/intent-capture.d.ts +20 -0
  145. package/node_modules/@noodle-borg/service/dist/routes/intent-capture.d.ts.map +1 -0
  146. package/node_modules/@noodle-borg/service/dist/routes/intent-capture.js +158 -0
  147. package/node_modules/@noodle-borg/service/dist/routes/intent-capture.js.map +1 -0
  148. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +3 -1
  149. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
  150. package/node_modules/@noodle-borg/service/dist/routes/paths.js +6 -0
  151. package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
  152. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  153. package/node_modules/@noodle-borg/service/dist/serve.js +16 -16
  154. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  155. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts +2 -0
  156. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts.map +1 -1
  157. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js +3 -0
  158. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js.map +1 -1
  159. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  160. package/node_modules/@noodle-borg/service/dist/service.js +25 -32
  161. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  162. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  163. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +1 -1
  164. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  165. package/node_modules/@noodle-borg/service/package.json +2 -1
  166. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +6 -1
  167. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
  168. package/node_modules/@noodle-borg/transport-http/dist/handler.js +4 -0
  169. package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
  170. package/node_modules/@noodle-borg/transport-http/dist/request-capture.d.ts +15 -1
  171. package/node_modules/@noodle-borg/transport-http/dist/request-capture.d.ts.map +1 -1
  172. package/node_modules/@noodle-borg/transport-http/dist/request-capture.js +51 -3
  173. package/node_modules/@noodle-borg/transport-http/dist/request-capture.js.map +1 -1
  174. package/node_modules/@noodle-borg/transport-http/dist/serve-request.d.ts +3 -1
  175. package/node_modules/@noodle-borg/transport-http/dist/serve-request.d.ts.map +1 -1
  176. package/node_modules/@noodle-borg/transport-http/dist/serve-request.js +21 -5
  177. package/node_modules/@noodle-borg/transport-http/dist/serve-request.js.map +1 -1
  178. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts +40 -2
  179. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts.map +1 -1
  180. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js +26 -2
  181. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js.map +1 -1
  182. package/node_modules/@noodleseed/assistant/README.md +23 -1
  183. package/node_modules/@noodleseed/assistant/dist/{chunk-DLUINP4W.js → chunk-LEKEIHJV.js} +61 -33
  184. package/node_modules/@noodleseed/assistant/dist/{chunk-DLUINP4W.js.map → chunk-LEKEIHJV.js.map} +1 -1
  185. package/node_modules/@noodleseed/assistant/dist/{chunk-52XT7BLR.js → chunk-ZPZHPXIQ.js} +129 -82
  186. package/node_modules/@noodleseed/assistant/dist/chunk-ZPZHPXIQ.js.map +1 -0
  187. package/node_modules/@noodleseed/assistant/dist/{client-7o7n2nqw.d.cts → client-BZ7xPwfW.d.cts} +14 -5
  188. package/node_modules/@noodleseed/assistant/dist/{client-CysBQBdd.d.ts → client-BkJlpN5N.d.ts} +14 -5
  189. package/node_modules/@noodleseed/assistant/dist/client.cjs +127 -80
  190. package/node_modules/@noodleseed/assistant/dist/client.cjs.map +1 -1
  191. package/node_modules/@noodleseed/assistant/dist/client.d.cts +1 -1
  192. package/node_modules/@noodleseed/assistant/dist/client.d.ts +1 -1
  193. package/node_modules/@noodleseed/assistant/dist/client.js +1 -1
  194. package/node_modules/@noodleseed/assistant/dist/embed.global.js +65 -65
  195. package/node_modules/@noodleseed/assistant/dist/index.cjs +186 -111
  196. package/node_modules/@noodleseed/assistant/dist/index.cjs.map +1 -1
  197. package/node_modules/@noodleseed/assistant/dist/index.d.cts +2 -2
  198. package/node_modules/@noodleseed/assistant/dist/index.d.ts +2 -2
  199. package/node_modules/@noodleseed/assistant/dist/index.js +2 -2
  200. package/node_modules/@noodleseed/assistant/dist/react/client.cjs +127 -80
  201. package/node_modules/@noodleseed/assistant/dist/react/client.cjs.map +1 -1
  202. package/node_modules/@noodleseed/assistant/dist/react/client.d.cts +1 -1
  203. package/node_modules/@noodleseed/assistant/dist/react/client.d.ts +1 -1
  204. package/node_modules/@noodleseed/assistant/dist/react/client.js +1 -1
  205. package/node_modules/@noodleseed/assistant/dist/react.cjs +187 -111
  206. package/node_modules/@noodleseed/assistant/dist/react.cjs.map +1 -1
  207. package/node_modules/@noodleseed/assistant/dist/react.d.cts +8 -1
  208. package/node_modules/@noodleseed/assistant/dist/react.d.ts +8 -1
  209. package/node_modules/@noodleseed/assistant/dist/react.js +3 -2
  210. package/node_modules/@noodleseed/assistant/dist/react.js.map +1 -1
  211. package/node_modules/@noodleseed/assistant/dist/server.cjs +1 -0
  212. package/node_modules/@noodleseed/assistant/dist/server.cjs.map +1 -1
  213. package/node_modules/@noodleseed/assistant/dist/server.d.cts +15 -0
  214. package/node_modules/@noodleseed/assistant/dist/server.d.ts +15 -0
  215. package/node_modules/@noodleseed/assistant/dist/server.js +1 -0
  216. package/node_modules/@noodleseed/assistant/dist/server.js.map +1 -1
  217. package/node_modules/@noodleseed/assistant/package.json +1 -1
  218. package/package.json +3 -2
  219. package/node_modules/@noodle-borg/service/dist/store/request-event-buffer.d.ts.map +0 -1
  220. package/node_modules/@noodle-borg/service/dist/store/request-event-buffer.js.map +0 -1
  221. package/node_modules/@noodle-borg/service/dist/store/request-events-postgres.d.ts.map +0 -1
  222. package/node_modules/@noodle-borg/service/dist/store/request-events-postgres.js.map +0 -1
  223. package/node_modules/@noodle-borg/service/dist/store/request-events.d.ts.map +0 -1
  224. package/node_modules/@noodle-borg/service/dist/store/request-events.js.map +0 -1
  225. package/node_modules/@noodleseed/assistant/dist/chunk-52XT7BLR.js.map +0 -1
  226. /package/node_modules/@noodle-borg/{service/dist/store → observability/dist}/request-event-buffer.d.ts +0 -0
  227. /package/node_modules/@noodle-borg/{service/dist/store → observability/dist}/request-event-buffer.js +0 -0
  228. /package/node_modules/@noodle-borg/{service/dist/store → observability/dist}/request-events-postgres.d.ts +0 -0
  229. /package/node_modules/@noodle-borg/{service/dist/store → observability/dist}/request-events-postgres.js +0 -0
  230. /package/node_modules/@noodle-borg/{service/dist/store → observability/dist}/request-events.d.ts +0 -0
  231. /package/node_modules/@noodle-borg/{service/dist/store → observability/dist}/request-events.js +0 -0
@@ -8104,6 +8104,12 @@ var AssistantChatStateStore = class {
8104
8104
  case "interaction_started":
8105
8105
  this.#beginInteraction(event.data.id);
8106
8106
  return;
8107
+ case "resume_started":
8108
+ this.#status = "submitted";
8109
+ this.#error = void 0;
8110
+ this.#startOperation();
8111
+ this.#notify();
8112
+ return;
8107
8113
  case "content":
8108
8114
  this.#writeText(event.data.delta);
8109
8115
  return;
@@ -8359,6 +8365,78 @@ function isRecord(value) {
8359
8365
  return typeof value === "object" && value !== null && !Array.isArray(value);
8360
8366
  }
8361
8367
 
8368
+ // src/client-errors.ts
8369
+ async function refusalCode(response) {
8370
+ try {
8371
+ const body = await response.clone().json();
8372
+ const code = body.code;
8373
+ return typeof code === "string" ? code : void 0;
8374
+ } catch {
8375
+ return void 0;
8376
+ }
8377
+ }
8378
+ var UNRETRYABLE_SERVICE_CODES = /* @__PURE__ */ new Set([
8379
+ "daily_turn_budget_exhausted",
8380
+ "daily_session_budget_exhausted"
8381
+ ]);
8382
+ var AssistantClientError = class extends Error {
8383
+ detail;
8384
+ constructor(detail, message, options) {
8385
+ super(message, options);
8386
+ this.name = "AssistantClientError";
8387
+ this.detail = detail;
8388
+ }
8389
+ };
8390
+ function parseSession(value) {
8391
+ if (!isRecord2(value) || !isRecord2(value.endpoints)) {
8392
+ throw clientError("session_failed", "Assistant session response is invalid", true);
8393
+ }
8394
+ const interactions = value.endpoints.interactions;
8395
+ const apps = value.endpoints.apps;
8396
+ const sandbox = value.endpoints.sandbox;
8397
+ if (typeof value.token !== "string" || typeof value.expiresAt !== "string" || typeof value.endpoints.turns !== "string" || typeof value.endpoints.toolConfirmations !== "string" || interactions !== void 0 && typeof interactions !== "string" || apps !== void 0 && typeof apps !== "string" || sandbox !== void 0 && typeof sandbox !== "string") {
8398
+ throw clientError("session_failed", "Assistant session response is invalid", true);
8399
+ }
8400
+ return {
8401
+ token: value.token,
8402
+ expiresAt: value.expiresAt,
8403
+ endpoints: {
8404
+ turns: value.endpoints.turns,
8405
+ toolConfirmations: value.endpoints.toolConfirmations,
8406
+ ...typeof interactions === "string" ? { interactions } : {},
8407
+ ...typeof apps === "string" ? { apps } : {},
8408
+ ...typeof sandbox === "string" ? { sandbox } : {}
8409
+ },
8410
+ ...isRecord2(value.configuration) ? { configuration: value.configuration } : {},
8411
+ ...isRecord2(value.resume) && typeof value.resume.tool === "string" ? { resume: { tool: value.resume.tool } } : {}
8412
+ };
8413
+ }
8414
+ function isRecord2(value) {
8415
+ return typeof value === "object" && value !== null && !Array.isArray(value);
8416
+ }
8417
+ async function readStableErrorCode(response) {
8418
+ let value;
8419
+ try {
8420
+ value = await response.json();
8421
+ } catch {
8422
+ return void 0;
8423
+ }
8424
+ if (!isRecord2(value) || typeof value.code !== "string") return void 0;
8425
+ return /^[A-Za-z0-9_.-]{1,64}$/.test(value.code) ? value.code : void 0;
8426
+ }
8427
+ function clientError(code, message, retryable, status, options, serviceCode) {
8428
+ return new AssistantClientError(
8429
+ {
8430
+ code,
8431
+ ...status === void 0 ? {} : { status },
8432
+ retryable,
8433
+ ...serviceCode === void 0 ? {} : { serviceCode }
8434
+ },
8435
+ message,
8436
+ options
8437
+ );
8438
+ }
8439
+
8362
8440
  // src/events.ts
8363
8441
  function toAssistantClientEvent(event) {
8364
8442
  const value = event.data;
@@ -8374,12 +8452,12 @@ function toAssistantClientEvent(event) {
8374
8452
  }
8375
8453
  break;
8376
8454
  case "tool_proposed":
8377
- if (hasString(value, "id") && hasString(value, "tool") && hasOptionalString(value.title) && hasOptionalString(value.description) && hasOptionalJson(value.arguments) && (value.reviewSchema === void 0 || isRecord2(value.reviewSchema)) && hasOptionalString(value.expiresAt) && (value.requiresConfirmation === void 0 || value.requiresConfirmation === true) && hasOptionalTurnId(value)) {
8455
+ if (hasString(value, "id") && hasString(value, "tool") && hasOptionalString(value.title) && hasOptionalString(value.description) && hasOptionalJson(value.arguments) && (value.reviewSchema === void 0 || isRecord3(value.reviewSchema)) && hasOptionalString(value.expiresAt) && (value.requiresConfirmation === void 0 || value.requiresConfirmation === true) && hasOptionalTurnId(value)) {
8378
8456
  return event;
8379
8457
  }
8380
8458
  break;
8381
8459
  case "input_requested":
8382
- if (hasString(value, "id") && hasString(value, "message") && isRecord2(value.requestedSchema) && hasString(value, "expiresAt") && hasOptionalTurnId(value)) {
8460
+ if (hasString(value, "id") && hasString(value, "message") && isRecord3(value.requestedSchema) && hasString(value, "expiresAt") && hasOptionalTurnId(value)) {
8383
8461
  return event;
8384
8462
  }
8385
8463
  break;
@@ -8423,7 +8501,7 @@ function toAssistantClientEvent(event) {
8423
8501
  return { event: "unrecognized", data: { name: event.event, payload: value } };
8424
8502
  }
8425
8503
  function isViewAvailableDetail(value) {
8426
- return hasString(value, "id") && hasString(value, "tool") && typeof value.resourceUri === "string" && value.resourceUri.startsWith("ui://") && hasOptionalString(value.title) && (value.replayed === void 0 || value.replayed === true) && isJsonValue(value.result, 0) && hasOptionalJson(value.arguments) && hasOptionalString(value.html) && (value.resourceMeta === void 0 || isRecord2(value.resourceMeta)) && (value.allowedOpenDomains === void 0 || Array.isArray(value.allowedOpenDomains) && value.allowedOpenDomains.every(isHttpsUrl)) && hasOptionalTurnId(value);
8504
+ return hasString(value, "id") && hasString(value, "tool") && typeof value.resourceUri === "string" && value.resourceUri.startsWith("ui://") && hasOptionalString(value.title) && (value.replayed === void 0 || value.replayed === true) && isJsonValue(value.result, 0) && hasOptionalJson(value.arguments) && hasOptionalString(value.html) && (value.resourceMeta === void 0 || isRecord3(value.resourceMeta)) && (value.allowedOpenDomains === void 0 || Array.isArray(value.allowedOpenDomains) && value.allowedOpenDomains.every(isHttpsUrl)) && hasOptionalTurnId(value);
8427
8505
  }
8428
8506
  function isHttpsUrl(value) {
8429
8507
  if (typeof value !== "string") return false;
@@ -8456,11 +8534,11 @@ function isJsonValue(value, depth) {
8456
8534
  if (Array.isArray(value)) {
8457
8535
  return value.length <= 256 && value.every((entry) => isJsonValue(entry, depth + 1));
8458
8536
  }
8459
- if (!isRecord2(value)) return false;
8537
+ if (!isRecord3(value)) return false;
8460
8538
  const entries = Object.entries(value);
8461
8539
  return entries.length <= 256 && entries.every(([, entry]) => isJsonValue(entry, depth + 1));
8462
8540
  }
8463
- function isRecord2(value) {
8541
+ function isRecord3(value) {
8464
8542
  return typeof value === "object" && value !== null && !Array.isArray(value);
8465
8543
  }
8466
8544
 
@@ -8703,15 +8781,15 @@ function parseFrame(frame) {
8703
8781
  if (event === "done" && !isValidDonePayload(parsed)) {
8704
8782
  throw invalidStream("assistant event stream contained an invalid done event");
8705
8783
  }
8706
- return { event, data: isRecord3(parsed) ? parsed : { value: parsed } };
8784
+ return { event, data: isRecord4(parsed) ? parsed : { value: parsed } };
8707
8785
  }
8708
8786
  function normalizeLineEndings(input) {
8709
8787
  return input.replaceAll("\r\n", "\n").replaceAll("\r", "\n");
8710
8788
  }
8711
8789
  function isValidDonePayload(value) {
8712
- return isRecord3(value) && (value.turnId === void 0 || typeof value.turnId === "string" && value.turnId.length > 0);
8790
+ return isRecord4(value) && (value.turnId === void 0 || typeof value.turnId === "string" && value.turnId.length > 0);
8713
8791
  }
8714
- function isRecord3(value) {
8792
+ function isRecord4(value) {
8715
8793
  return typeof value === "object" && value !== null && !Array.isArray(value);
8716
8794
  }
8717
8795
  function invalidStream(message, cause) {
@@ -8722,27 +8800,6 @@ function isAbortError2(error) {
8722
8800
  }
8723
8801
 
8724
8802
  // src/client.ts
8725
- async function refusalCode(response) {
8726
- try {
8727
- const body = await response.clone().json();
8728
- const code = body.code;
8729
- return typeof code === "string" ? code : void 0;
8730
- } catch {
8731
- return void 0;
8732
- }
8733
- }
8734
- var UNRETRYABLE_SERVICE_CODES = /* @__PURE__ */ new Set([
8735
- "daily_turn_budget_exhausted",
8736
- "daily_session_budget_exhausted"
8737
- ]);
8738
- var AssistantClientError = class extends Error {
8739
- detail;
8740
- constructor(detail, message, options) {
8741
- super(message, options);
8742
- this.name = "AssistantClientError";
8743
- this.detail = detail;
8744
- }
8745
- };
8746
8803
  var DefaultAssistantClient = class {
8747
8804
  #source;
8748
8805
  #fetch;
@@ -8777,12 +8834,50 @@ var DefaultAssistantClient = class {
8777
8834
  hasSession() {
8778
8835
  return this.#session !== void 0;
8779
8836
  }
8837
+ /** Whether a request holds the single-flight slot, so callers can refuse before mutating UI. */
8838
+ isBusy() {
8839
+ return this.#active !== void 0;
8840
+ }
8780
8841
  async connect() {
8781
8842
  if (this.#session) return;
8782
8843
  await this.#singleFlight(async (signal) => {
8783
- if (!this.#session) await this.#createSession(signal);
8844
+ if (this.#session) return;
8845
+ const session = await this.#createSession(signal);
8846
+ if (session.resume) {
8847
+ try {
8848
+ await this.#runChatOperation(signal, () => this.#resumeTurn(session, signal));
8849
+ } catch {
8850
+ }
8851
+ }
8784
8852
  });
8785
8853
  }
8854
+ /** POST the one-shot resume trigger; a 409 means nothing was pending, which renders as silence. */
8855
+ async #resumeTurn(session, signal) {
8856
+ const response = await this.#request(
8857
+ session.endpoints.turns,
8858
+ {
8859
+ method: "POST",
8860
+ headers: authorizedHeaders(session.token, "text/event-stream"),
8861
+ body: JSON.stringify({ resume: true }),
8862
+ signal
8863
+ },
8864
+ "turn_failed"
8865
+ );
8866
+ if (response.status === 409) return;
8867
+ if (!response.ok) {
8868
+ throw clientError(
8869
+ "turn_failed",
8870
+ `Assistant turn failed (${response.status})`,
8871
+ false,
8872
+ response.status,
8873
+ void 0,
8874
+ await refusalCode(response)
8875
+ );
8876
+ }
8877
+ this.#emit({ event: "resume_started", data: { tool: session.resume?.tool ?? "" } });
8878
+ await this.#consume(response);
8879
+ this.#emit({ event: "message_completed", data: {} });
8880
+ }
8786
8881
  async sendMessage(text2) {
8787
8882
  const message = text2.trim();
8788
8883
  if (!message) return;
@@ -9187,10 +9282,10 @@ function authorizedHeaders(token, accept) {
9187
9282
  };
9188
9283
  }
9189
9284
  function parseAppInteraction(value) {
9190
- if (!isRecord4(value) || !isRecord4(value.interaction)) return void 0;
9285
+ if (!isRecord2(value) || !isRecord2(value.interaction)) return void 0;
9191
9286
  const event = value.interaction.event;
9192
9287
  const data = value.interaction.data;
9193
- if (event !== "tool_proposed" && event !== "input_requested" || !isRecord4(data)) {
9288
+ if (event !== "tool_proposed" && event !== "input_requested" || !isRecord2(data)) {
9194
9289
  return void 0;
9195
9290
  }
9196
9291
  const parsed = toAssistantClientEvent({ event, data });
@@ -9210,60 +9305,12 @@ function appInteractionStopped(action) {
9210
9305
  isError: true
9211
9306
  };
9212
9307
  }
9213
- function parseSession(value) {
9214
- if (!isRecord4(value) || !isRecord4(value.endpoints)) {
9215
- throw clientError("session_failed", "Assistant session response is invalid", true);
9216
- }
9217
- const interactions = value.endpoints.interactions;
9218
- const apps = value.endpoints.apps;
9219
- const sandbox = value.endpoints.sandbox;
9220
- if (typeof value.token !== "string" || typeof value.expiresAt !== "string" || typeof value.endpoints.turns !== "string" || typeof value.endpoints.toolConfirmations !== "string" || interactions !== void 0 && typeof interactions !== "string" || apps !== void 0 && typeof apps !== "string" || sandbox !== void 0 && typeof sandbox !== "string") {
9221
- throw clientError("session_failed", "Assistant session response is invalid", true);
9222
- }
9223
- return {
9224
- token: value.token,
9225
- expiresAt: value.expiresAt,
9226
- endpoints: {
9227
- turns: value.endpoints.turns,
9228
- toolConfirmations: value.endpoints.toolConfirmations,
9229
- ...typeof interactions === "string" ? { interactions } : {},
9230
- ...typeof apps === "string" ? { apps } : {},
9231
- ...typeof sandbox === "string" ? { sandbox } : {}
9232
- },
9233
- ...isRecord4(value.configuration) ? { configuration: value.configuration } : {}
9234
- };
9235
- }
9236
- function isRecord4(value) {
9237
- return typeof value === "object" && value !== null && !Array.isArray(value);
9238
- }
9239
- async function readStableErrorCode(response) {
9240
- let value;
9241
- try {
9242
- value = await response.json();
9243
- } catch {
9244
- return void 0;
9245
- }
9246
- if (!isRecord4(value) || typeof value.code !== "string") return void 0;
9247
- return /^[A-Za-z0-9_.-]{1,64}$/.test(value.code) ? value.code : void 0;
9248
- }
9249
- function clientError(code, message, retryable, status, options, serviceCode) {
9250
- return new AssistantClientError(
9251
- {
9252
- code,
9253
- ...status === void 0 ? {} : { status },
9254
- retryable,
9255
- ...serviceCode === void 0 ? {} : { serviceCode }
9256
- },
9257
- message,
9258
- options
9259
- );
9260
- }
9261
9308
 
9262
9309
  export {
9263
9310
  copyAssistantModelContext,
9264
9311
  copyAssistantPageContext,
9265
- sessionSourceKey,
9266
9312
  AssistantClientError,
9313
+ sessionSourceKey,
9267
9314
  createAssistantClient
9268
9315
  };
9269
- //# sourceMappingURL=chunk-52XT7BLR.js.map
9316
+ //# sourceMappingURL=chunk-ZPZHPXIQ.js.map