@mutagent/sdk 0.3.40 → 0.3.42

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 (244) hide show
  1. package/README.md +14 -8
  2. package/dist/commonjs/funcs/sandbox-get-api-sandbox-by-id-checkpoints.d.ts +18 -0
  3. package/dist/commonjs/funcs/sandbox-get-api-sandbox-by-id-checkpoints.d.ts.map +1 -0
  4. package/dist/commonjs/funcs/sandbox-get-api-sandbox-by-id-checkpoints.js +124 -0
  5. package/dist/commonjs/funcs/sandbox-get-api-sandbox-by-id-checkpoints.js.map +1 -0
  6. package/dist/commonjs/funcs/sandbox-get-api-sandbox-by-id-stream.d.ts +1 -1
  7. package/dist/commonjs/funcs/sandbox-get-api-sandbox-by-id-stream.js +1 -1
  8. package/dist/commonjs/funcs/sandbox-post-api-sandbox-by-id-checkpoint.d.ts +18 -0
  9. package/dist/commonjs/funcs/sandbox-post-api-sandbox-by-id-checkpoint.d.ts.map +1 -0
  10. package/dist/commonjs/funcs/sandbox-post-api-sandbox-by-id-checkpoint.js +125 -0
  11. package/dist/commonjs/funcs/sandbox-post-api-sandbox-by-id-checkpoint.js.map +1 -0
  12. package/dist/commonjs/funcs/sandbox-post-api-sandbox-by-id-restore.d.ts +18 -0
  13. package/dist/commonjs/funcs/sandbox-post-api-sandbox-by-id-restore.d.ts.map +1 -0
  14. package/dist/commonjs/funcs/sandbox-post-api-sandbox-by-id-restore.js +125 -0
  15. package/dist/commonjs/funcs/sandbox-post-api-sandbox-by-id-restore.js.map +1 -0
  16. package/dist/commonjs/lib/config.d.ts +2 -2
  17. package/dist/commonjs/lib/config.js +2 -2
  18. package/dist/commonjs/models/definition-provider.d.ts +35 -0
  19. package/dist/commonjs/models/definition-provider.d.ts.map +1 -1
  20. package/dist/commonjs/models/definition-provider.js +21 -1
  21. package/dist/commonjs/models/definition-provider.js.map +1 -1
  22. package/dist/commonjs/models/index.d.ts +5 -3
  23. package/dist/commonjs/models/index.d.ts.map +1 -1
  24. package/dist/commonjs/models/index.js +5 -3
  25. package/dist/commonjs/models/index.js.map +1 -1
  26. package/dist/commonjs/models/mode-arm-args.d.ts +62 -0
  27. package/dist/commonjs/models/mode-arm-args.d.ts.map +1 -0
  28. package/dist/commonjs/models/mode-arm-args.js +64 -0
  29. package/dist/commonjs/models/mode-arm-args.js.map +1 -0
  30. package/dist/commonjs/models/name-image-arch.d.ts +35 -0
  31. package/dist/commonjs/models/name-image-arch.d.ts.map +1 -1
  32. package/dist/commonjs/models/name-image-arch.js +21 -1
  33. package/dist/commonjs/models/name-image-arch.js.map +1 -1
  34. package/dist/commonjs/models/operations/get-api-sandbox-by-id-checkpoints.d.ts +38 -0
  35. package/dist/commonjs/models/operations/get-api-sandbox-by-id-checkpoints.d.ts.map +1 -0
  36. package/dist/commonjs/models/operations/get-api-sandbox-by-id-checkpoints.js +74 -0
  37. package/dist/commonjs/models/operations/get-api-sandbox-by-id-checkpoints.js.map +1 -0
  38. package/dist/commonjs/models/operations/get-api-sandbox-by-id.d.ts +1 -1
  39. package/dist/commonjs/models/operations/get-api-sandbox-by-id.js +1 -1
  40. package/dist/commonjs/models/operations/get-api-sandbox.d.ts +1 -1
  41. package/dist/commonjs/models/operations/get-api-sandbox.js +1 -1
  42. package/dist/commonjs/models/operations/index.d.ts +3 -0
  43. package/dist/commonjs/models/operations/index.d.ts.map +1 -1
  44. package/dist/commonjs/models/operations/index.js +3 -0
  45. package/dist/commonjs/models/operations/index.js.map +1 -1
  46. package/dist/commonjs/models/operations/post-api-sandbox-by-id-checkpoint.d.ts +83 -0
  47. package/dist/commonjs/models/operations/post-api-sandbox-by-id-checkpoint.d.ts.map +1 -0
  48. package/dist/commonjs/models/operations/post-api-sandbox-by-id-checkpoint.js +77 -0
  49. package/dist/commonjs/models/operations/post-api-sandbox-by-id-checkpoint.js.map +1 -0
  50. package/dist/commonjs/models/operations/post-api-sandbox-by-id-restore.d.ts +151 -0
  51. package/dist/commonjs/models/operations/post-api-sandbox-by-id-restore.d.ts.map +1 -0
  52. package/dist/commonjs/models/operations/post-api-sandbox-by-id-restore.js +121 -0
  53. package/dist/commonjs/models/operations/post-api-sandbox-by-id-restore.js.map +1 -0
  54. package/dist/commonjs/models/operations/post-api-sandbox-by-id-session.d.ts +7 -3
  55. package/dist/commonjs/models/operations/post-api-sandbox-by-id-session.d.ts.map +1 -1
  56. package/dist/commonjs/models/operations/post-api-sandbox-by-id-session.js +3 -2
  57. package/dist/commonjs/models/operations/post-api-sandbox-by-id-session.js.map +1 -1
  58. package/dist/commonjs/models/operations/post-api-sandbox.d.ts +1 -1
  59. package/dist/commonjs/models/operations/post-api-sandbox.js +1 -1
  60. package/dist/commonjs/models/operations/update-organization-member.d.ts +1 -1
  61. package/dist/commonjs/models/operations/update-organization-member.js +1 -1
  62. package/dist/commonjs/models/operations/update-workspace-member.d.ts +1 -1
  63. package/dist/commonjs/models/operations/update-workspace-member.d.ts.map +1 -1
  64. package/dist/commonjs/models/operations/update-workspace-member.js +1 -1
  65. package/dist/commonjs/models/operations/update-workspace-member.js.map +1 -1
  66. package/dist/commonjs/models/preset-timeout-ms-keep2.d.ts +10 -0
  67. package/dist/commonjs/models/preset-timeout-ms-keep2.d.ts.map +1 -1
  68. package/dist/commonjs/models/preset-timeout-ms-keep2.js +2 -0
  69. package/dist/commonjs/models/preset-timeout-ms-keep2.js.map +1 -1
  70. package/dist/commonjs/models/schemadefaul11.d.ts +9 -0
  71. package/dist/commonjs/models/schemadefaul11.d.ts.map +1 -0
  72. package/dist/commonjs/models/{schemadefaul8.js → schemadefaul11.js} +9 -9
  73. package/dist/commonjs/models/schemadefaul11.js.map +1 -0
  74. package/dist/commonjs/models/schemadefaul5.d.ts +7 -4
  75. package/dist/commonjs/models/schemadefaul5.d.ts.map +1 -1
  76. package/dist/commonjs/models/schemadefaul5.js +8 -5
  77. package/dist/commonjs/models/schemadefaul5.js.map +1 -1
  78. package/dist/commonjs/models/schemadefaul6.d.ts +7 -5
  79. package/dist/commonjs/models/schemadefaul6.d.ts.map +1 -1
  80. package/dist/commonjs/models/schemadefaul6.js +7 -7
  81. package/dist/commonjs/models/schemadefaul6.js.map +1 -1
  82. package/dist/commonjs/models/schemadefaul7.d.ts +13 -0
  83. package/dist/commonjs/models/schemadefaul7.d.ts.map +1 -0
  84. package/dist/commonjs/models/{schemadefaul4.js → schemadefaul7.js} +11 -13
  85. package/dist/commonjs/models/schemadefaul7.js.map +1 -0
  86. package/dist/commonjs/models/schemadefaul9.d.ts +10 -0
  87. package/dist/commonjs/models/schemadefaul9.d.ts.map +1 -0
  88. package/dist/commonjs/models/{mode-args-env.js → schemadefaul9.js} +10 -13
  89. package/dist/commonjs/models/schemadefaul9.js.map +1 -0
  90. package/dist/commonjs/models/snapshot-id-definition-partial.d.ts +40 -0
  91. package/dist/commonjs/models/snapshot-id-definition-partial.d.ts.map +1 -0
  92. package/dist/commonjs/models/snapshot-id-definition-partial.js +63 -0
  93. package/dist/commonjs/models/snapshot-id-definition-partial.js.map +1 -0
  94. package/dist/commonjs/sdk/sandbox.d.ts +34 -13
  95. package/dist/commonjs/sdk/sandbox.d.ts.map +1 -1
  96. package/dist/commonjs/sdk/sandbox.js +47 -17
  97. package/dist/commonjs/sdk/sandbox.js.map +1 -1
  98. package/dist/esm/funcs/sandbox-get-api-sandbox-by-id-checkpoints.d.ts +18 -0
  99. package/dist/esm/funcs/sandbox-get-api-sandbox-by-id-checkpoints.d.ts.map +1 -0
  100. package/dist/esm/funcs/sandbox-get-api-sandbox-by-id-checkpoints.js +88 -0
  101. package/dist/esm/funcs/sandbox-get-api-sandbox-by-id-checkpoints.js.map +1 -0
  102. package/dist/esm/funcs/sandbox-get-api-sandbox-by-id-stream.d.ts +1 -1
  103. package/dist/esm/funcs/sandbox-get-api-sandbox-by-id-stream.js +1 -1
  104. package/dist/esm/funcs/sandbox-post-api-sandbox-by-id-checkpoint.d.ts +18 -0
  105. package/dist/esm/funcs/sandbox-post-api-sandbox-by-id-checkpoint.d.ts.map +1 -0
  106. package/dist/esm/funcs/sandbox-post-api-sandbox-by-id-checkpoint.js +89 -0
  107. package/dist/esm/funcs/sandbox-post-api-sandbox-by-id-checkpoint.js.map +1 -0
  108. package/dist/esm/funcs/sandbox-post-api-sandbox-by-id-restore.d.ts +18 -0
  109. package/dist/esm/funcs/sandbox-post-api-sandbox-by-id-restore.d.ts.map +1 -0
  110. package/dist/esm/funcs/sandbox-post-api-sandbox-by-id-restore.js +89 -0
  111. package/dist/esm/funcs/sandbox-post-api-sandbox-by-id-restore.js.map +1 -0
  112. package/dist/esm/lib/config.d.ts +2 -2
  113. package/dist/esm/lib/config.js +2 -2
  114. package/dist/esm/models/definition-provider.d.ts +35 -0
  115. package/dist/esm/models/definition-provider.d.ts.map +1 -1
  116. package/dist/esm/models/definition-provider.js +19 -0
  117. package/dist/esm/models/definition-provider.js.map +1 -1
  118. package/dist/esm/models/index.d.ts +5 -3
  119. package/dist/esm/models/index.d.ts.map +1 -1
  120. package/dist/esm/models/index.js +5 -3
  121. package/dist/esm/models/index.js.map +1 -1
  122. package/dist/esm/models/mode-arm-args.d.ts +62 -0
  123. package/dist/esm/models/mode-arm-args.d.ts.map +1 -0
  124. package/dist/esm/models/mode-arm-args.js +26 -0
  125. package/dist/esm/models/mode-arm-args.js.map +1 -0
  126. package/dist/esm/models/name-image-arch.d.ts +35 -0
  127. package/dist/esm/models/name-image-arch.d.ts.map +1 -1
  128. package/dist/esm/models/name-image-arch.js +19 -0
  129. package/dist/esm/models/name-image-arch.js.map +1 -1
  130. package/dist/esm/models/operations/get-api-sandbox-by-id-checkpoints.d.ts +38 -0
  131. package/dist/esm/models/operations/get-api-sandbox-by-id-checkpoints.d.ts.map +1 -0
  132. package/dist/esm/models/operations/get-api-sandbox-by-id-checkpoints.js +35 -0
  133. package/dist/esm/models/operations/get-api-sandbox-by-id-checkpoints.js.map +1 -0
  134. package/dist/esm/models/operations/get-api-sandbox-by-id.d.ts +1 -1
  135. package/dist/esm/models/operations/get-api-sandbox-by-id.js +1 -1
  136. package/dist/esm/models/operations/get-api-sandbox.d.ts +1 -1
  137. package/dist/esm/models/operations/get-api-sandbox.js +1 -1
  138. package/dist/esm/models/operations/index.d.ts +3 -0
  139. package/dist/esm/models/operations/index.d.ts.map +1 -1
  140. package/dist/esm/models/operations/index.js +3 -0
  141. package/dist/esm/models/operations/index.js.map +1 -1
  142. package/dist/esm/models/operations/post-api-sandbox-by-id-checkpoint.d.ts +83 -0
  143. package/dist/esm/models/operations/post-api-sandbox-by-id-checkpoint.d.ts.map +1 -0
  144. package/dist/esm/models/operations/post-api-sandbox-by-id-checkpoint.js +38 -0
  145. package/dist/esm/models/operations/post-api-sandbox-by-id-checkpoint.js.map +1 -0
  146. package/dist/esm/models/operations/post-api-sandbox-by-id-restore.d.ts +151 -0
  147. package/dist/esm/models/operations/post-api-sandbox-by-id-restore.d.ts.map +1 -0
  148. package/dist/esm/models/operations/post-api-sandbox-by-id-restore.js +80 -0
  149. package/dist/esm/models/operations/post-api-sandbox-by-id-restore.js.map +1 -0
  150. package/dist/esm/models/operations/post-api-sandbox-by-id-session.d.ts +7 -3
  151. package/dist/esm/models/operations/post-api-sandbox-by-id-session.d.ts.map +1 -1
  152. package/dist/esm/models/operations/post-api-sandbox-by-id-session.js +3 -2
  153. package/dist/esm/models/operations/post-api-sandbox-by-id-session.js.map +1 -1
  154. package/dist/esm/models/operations/post-api-sandbox.d.ts +1 -1
  155. package/dist/esm/models/operations/post-api-sandbox.js +1 -1
  156. package/dist/esm/models/operations/update-organization-member.d.ts +1 -1
  157. package/dist/esm/models/operations/update-organization-member.js +1 -1
  158. package/dist/esm/models/operations/update-workspace-member.d.ts +1 -1
  159. package/dist/esm/models/operations/update-workspace-member.d.ts.map +1 -1
  160. package/dist/esm/models/operations/update-workspace-member.js +1 -1
  161. package/dist/esm/models/operations/update-workspace-member.js.map +1 -1
  162. package/dist/esm/models/preset-timeout-ms-keep2.d.ts +10 -0
  163. package/dist/esm/models/preset-timeout-ms-keep2.d.ts.map +1 -1
  164. package/dist/esm/models/preset-timeout-ms-keep2.js +2 -0
  165. package/dist/esm/models/preset-timeout-ms-keep2.js.map +1 -1
  166. package/dist/esm/models/schemadefaul11.d.ts +9 -0
  167. package/dist/esm/models/schemadefaul11.d.ts.map +1 -0
  168. package/dist/esm/models/schemadefaul11.js +13 -0
  169. package/dist/esm/models/schemadefaul11.js.map +1 -0
  170. package/dist/esm/models/schemadefaul5.d.ts +7 -4
  171. package/dist/esm/models/schemadefaul5.d.ts.map +1 -1
  172. package/dist/esm/models/schemadefaul5.js +7 -4
  173. package/dist/esm/models/schemadefaul5.js.map +1 -1
  174. package/dist/esm/models/schemadefaul6.d.ts +7 -5
  175. package/dist/esm/models/schemadefaul6.d.ts.map +1 -1
  176. package/dist/esm/models/schemadefaul6.js +6 -6
  177. package/dist/esm/models/schemadefaul6.js.map +1 -1
  178. package/dist/esm/models/schemadefaul7.d.ts +13 -0
  179. package/dist/esm/models/schemadefaul7.d.ts.map +1 -0
  180. package/dist/esm/models/schemadefaul7.js +15 -0
  181. package/dist/esm/models/schemadefaul7.js.map +1 -0
  182. package/dist/esm/models/schemadefaul9.d.ts +10 -0
  183. package/dist/esm/models/schemadefaul9.d.ts.map +1 -0
  184. package/dist/esm/models/schemadefaul9.js +14 -0
  185. package/dist/esm/models/schemadefaul9.js.map +1 -0
  186. package/dist/esm/models/snapshot-id-definition-partial.d.ts +40 -0
  187. package/dist/esm/models/snapshot-id-definition-partial.d.ts.map +1 -0
  188. package/dist/esm/models/snapshot-id-definition-partial.js +26 -0
  189. package/dist/esm/models/snapshot-id-definition-partial.js.map +1 -0
  190. package/dist/esm/sdk/sandbox.d.ts +34 -13
  191. package/dist/esm/sdk/sandbox.d.ts.map +1 -1
  192. package/dist/esm/sdk/sandbox.js +47 -17
  193. package/dist/esm/sdk/sandbox.js.map +1 -1
  194. package/package.json +1 -1
  195. package/src/funcs/sandbox-get-api-sandbox-by-id-checkpoints.ts +184 -0
  196. package/src/funcs/sandbox-get-api-sandbox-by-id-stream.ts +1 -1
  197. package/src/funcs/sandbox-post-api-sandbox-by-id-checkpoint.ts +186 -0
  198. package/src/funcs/sandbox-post-api-sandbox-by-id-restore.ts +186 -0
  199. package/src/lib/config.ts +2 -2
  200. package/src/models/definition-provider.ts +59 -0
  201. package/src/models/index.ts +5 -3
  202. package/src/models/mode-arm-args.ts +100 -0
  203. package/src/models/name-image-arch.ts +59 -0
  204. package/src/models/operations/get-api-sandbox-by-id-checkpoints.ts +97 -0
  205. package/src/models/operations/get-api-sandbox-by-id.ts +3 -3
  206. package/src/models/operations/get-api-sandbox.ts +3 -3
  207. package/src/models/operations/index.ts +3 -0
  208. package/src/models/operations/post-api-sandbox-by-id-checkpoint.ts +151 -0
  209. package/src/models/operations/post-api-sandbox-by-id-restore.ts +263 -0
  210. package/src/models/operations/post-api-sandbox-by-id-session.ts +14 -6
  211. package/src/models/operations/post-api-sandbox.ts +3 -3
  212. package/src/models/operations/update-organization-member.ts +3 -3
  213. package/src/models/operations/update-workspace-member.ts +3 -3
  214. package/src/models/preset-timeout-ms-keep2.ts +12 -0
  215. package/src/models/{schemadefaul8.ts → schemadefaul11.ts} +4 -3
  216. package/src/models/schemadefaul5.ts +7 -7
  217. package/src/models/schemadefaul6.ts +14 -6
  218. package/src/models/schemadefaul7.ts +25 -0
  219. package/src/models/schemadefaul9.ts +16 -0
  220. package/src/models/snapshot-id-definition-partial.ts +70 -0
  221. package/src/sdk/sandbox.ts +82 -28
  222. package/dist/commonjs/models/mode-args-env.d.ts +0 -35
  223. package/dist/commonjs/models/mode-args-env.d.ts.map +0 -1
  224. package/dist/commonjs/models/mode-args-env.js.map +0 -1
  225. package/dist/commonjs/models/schemadefaul4.d.ts +0 -15
  226. package/dist/commonjs/models/schemadefaul4.d.ts.map +0 -1
  227. package/dist/commonjs/models/schemadefaul4.js.map +0 -1
  228. package/dist/commonjs/models/schemadefaul8.d.ts +0 -9
  229. package/dist/commonjs/models/schemadefaul8.d.ts.map +0 -1
  230. package/dist/commonjs/models/schemadefaul8.js.map +0 -1
  231. package/dist/esm/models/mode-args-env.d.ts +0 -35
  232. package/dist/esm/models/mode-args-env.d.ts.map +0 -1
  233. package/dist/esm/models/mode-args-env.js +0 -16
  234. package/dist/esm/models/mode-args-env.js.map +0 -1
  235. package/dist/esm/models/schemadefaul4.d.ts +0 -15
  236. package/dist/esm/models/schemadefaul4.d.ts.map +0 -1
  237. package/dist/esm/models/schemadefaul4.js +0 -17
  238. package/dist/esm/models/schemadefaul4.js.map +0 -1
  239. package/dist/esm/models/schemadefaul8.d.ts +0 -9
  240. package/dist/esm/models/schemadefaul8.d.ts.map +0 -1
  241. package/dist/esm/models/schemadefaul8.js +0 -13
  242. package/dist/esm/models/schemadefaul8.js.map +0 -1
  243. package/src/models/mode-args-env.ts +0 -52
  244. package/src/models/schemadefaul4.ts +0 -24
@@ -2,6 +2,7 @@
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
3
  */
4
4
  import { sandboxDeleteApiSandboxById } from "../funcs/sandbox-delete-api-sandbox-by-id.js";
5
+ import { sandboxGetApiSandboxByIdCheckpoints } from "../funcs/sandbox-get-api-sandbox-by-id-checkpoints.js";
5
6
  import { sandboxGetApiSandboxByIdSessions } from "../funcs/sandbox-get-api-sandbox-by-id-sessions.js";
6
7
  import { sandboxGetApiSandboxByIdStream } from "../funcs/sandbox-get-api-sandbox-by-id-stream.js";
7
8
  import { sandboxGetApiSandboxByIdTraces } from "../funcs/sandbox-get-api-sandbox-by-id-traces.js";
@@ -10,8 +11,10 @@ import { sandboxGetApiSandboxPresets } from "../funcs/sandbox-get-api-sandbox-pr
10
11
  import { sandboxGetApiSandboxProviders } from "../funcs/sandbox-get-api-sandbox-providers.js";
11
12
  import { sandboxGetApiSandbox } from "../funcs/sandbox-get-api-sandbox.js";
12
13
  import { sandboxPostApiSandboxAgentRun } from "../funcs/sandbox-post-api-sandbox-agent-run.js";
14
+ import { sandboxPostApiSandboxByIdCheckpoint } from "../funcs/sandbox-post-api-sandbox-by-id-checkpoint.js";
13
15
  import { sandboxPostApiSandboxByIdExec } from "../funcs/sandbox-post-api-sandbox-by-id-exec.js";
14
16
  import { sandboxPostApiSandboxByIdInput } from "../funcs/sandbox-post-api-sandbox-by-id-input.js";
17
+ import { sandboxPostApiSandboxByIdRestore } from "../funcs/sandbox-post-api-sandbox-by-id-restore.js";
15
18
  import { sandboxPostApiSandboxByIdSession } from "../funcs/sandbox-post-api-sandbox-by-id-session.js";
16
19
  import { sandboxPostApiSandboxByIdSignal } from "../funcs/sandbox-post-api-sandbox-by-id-signal.js";
17
20
  import { sandboxPostApiSandboxPreflight } from "../funcs/sandbox-post-api-sandbox-preflight.js";
@@ -58,15 +61,6 @@ export class Sandbox extends ClientSDK {
58
61
  async postApiSandboxRun(request, options) {
59
62
  return unwrapAsync(sandboxPostApiSandboxRun(this, request, options));
60
63
  }
61
- /**
62
- * Run one agent turn in a fresh sandbox
63
- *
64
- * @remarks
65
- * `prompt` is WHO the agent is (the agent definition) and `task` is WHAT to do this turn. They are two different prompts and are never concatenated. The turn's output comes back on stdout with the agent's real exit code. With `?stream=1` the same turn is delivered as it happens, in the event framing of `GET /:id/stream`: a `sandbox` event naming the box, then `stdout`/`stderr` as the agent produces them, then a `result` event carrying the exit code and whether the sandbox was torn down, then the terminal `status`. Disconnecting mid-stream releases the sandbox.
66
- */
67
- async postApiSandboxAgentRun(request, options) {
68
- return unwrapAsync(sandboxPostApiSandboxAgentRun(this, request, options));
69
- }
70
64
  /**
71
65
  * Spawn a sandbox
72
66
  *
@@ -104,7 +98,7 @@ export class Sandbox extends ClientSDK {
104
98
  * Watch a sandbox's output live
105
99
  *
106
100
  * @remarks
107
- * Server-sent events: `stdout`, `stderr`, `rpc`, `unrecognised`, `status`, `ping` (every 15s), `error`. `rpc` carries one complete NDJSON frame from a Helix session running in RPC mode, verbatim — parse it client-side. `unrecognised` carries a line the backend could not classify; receiving one means this server and the sandbox image disagree about the protocol, and it is forwarded rather than dropped so that drift is visible instead of silent. All four output events share the `{seq, ts, text}` shape and one sequence counter, so their interleaving is the order the box produced them. `seq` is monotonic per sandbox and starts at 1; pass the last one seen as `?since=` to resume. If the buffer has already rolled past `since`, an `error` event names the lost range rather than skipping it silently. Disconnecting tears down the upstream.
101
+ * Server-sent events: `stdout`, `stderr`, `rpc`, `unrecognised`, `session`, `live`, `status`, `ping` (every 15s), `error`. `rpc` carries one complete NDJSON frame from a Helix session running in RPC mode, verbatim — parse it client-side. `unrecognised` carries a line the backend could not classify; receiving one means this server and the sandbox image disagree about the protocol, and it is forwarded rather than dropped so that drift is visible instead of silent. Those four output events share the `{seq, ts, text}` shape and one sequence counter, so their interleaving is the order the box produced them. `session` shares that counter too but carries flat fields instead of `text` — `{sessionId, status: "started"|"exited", exitCode, lastSeq, generation}` — and is how a client learns a Helix session began or ended; it is persisted and replayed like any output event, and `exitCode` is the session's real code (the terminal `status` event describes the SANDBOX and reports null by contract). `live` is emitted at most once, before the opening `status`, and only when this instance cannot follow the sandbox: it replays the log and ends rather than tailing. `seq` is monotonic per sandbox and starts at 1, and every seq-bearing event also carries it as the SSE `id:` field; pass the last one seen as `?since=` to resume. A resume is served from the persisted event log first and the live buffer only for the tail, so it survives a restart and can be answered by an instance that never spawned the box. If the requested range has been TRIMMED from that log, an `error` event names the lost range rather than skipping it silently — it carries `code: 'gap'` with the inclusive `from`/`to` wire seqs, and the stream continues past the gap; a source failure instead carries `code: 'upstream'` and is the end of the stream. Branch on `code`, never on `message`. Disconnecting tears down the upstream.
108
102
  */
109
103
  async getApiSandboxByIdStream(request, options) {
110
104
  return unwrapAsync(sandboxGetApiSandboxByIdStream(this, request, options));
@@ -118,6 +112,21 @@ export class Sandbox extends ClientSDK {
118
112
  async postApiSandboxByIdExec(request, options) {
119
113
  return unwrapAsync(sandboxPostApiSandboxByIdExec(this, request, options));
120
114
  }
115
+ /**
116
+ * Ingest OTLP spans from inside a sandbox
117
+ *
118
+ * @remarks
119
+ * OTLP/HTTP JSON. Requires a task token; spans are attributed to the sandbox the token is bound to, never to the sandbox named in the payload.
120
+ */
121
+ async postApiSandboxTelemetryV1Traces(options) {
122
+ return unwrapAsync(sandboxPostApiSandboxTelemetryV1Traces(this, options));
123
+ }
124
+ /**
125
+ * Read a sandbox's captured spans
126
+ */
127
+ async getApiSandboxByIdTraces(request, options) {
128
+ return unwrapAsync(sandboxGetApiSandboxByIdTraces(this, request, options));
129
+ }
121
130
  /**
122
131
  * Start a Helix session in a sandbox
123
132
  *
@@ -155,19 +164,40 @@ export class Sandbox extends ClientSDK {
155
164
  return unwrapAsync(sandboxPostApiSandboxByIdSignal(this, request, options));
156
165
  }
157
166
  /**
158
- * Ingest OTLP spans from inside a sandbox
167
+ * Capture a Helix session's own transcript
159
168
  *
160
169
  * @remarks
161
- * OTLP/HTTP JSON. Requires a task token; spans are attributed to the sandbox the token is bound to, never to the sandbox named in the payload.
170
+ * Copies the HARNESS's session file off the box, verbatim, and stores it. This is what a NEW box needs to CONTINUE the conversation — distinct from `GET /:id/stream?since=`, which replays what the client observed and restores no agent state at all. 409 when the session has not completed a turn: the harness writes its file lazily, so there is genuinely nothing to capture yet, and storing an empty snapshot would produce a restore that succeeds and restores nothing. 503 when the deployment has no snapshot store.
162
171
  */
163
- async postApiSandboxTelemetryV1Traces(options) {
164
- return unwrapAsync(sandboxPostApiSandboxTelemetryV1Traces(this, options));
172
+ async postApiSandboxByIdCheckpoint(request, options) {
173
+ return unwrapAsync(sandboxPostApiSandboxByIdCheckpoint(this, request, options));
165
174
  }
166
175
  /**
167
- * Read a sandbox's captured spans
176
+ * List checkpoints captured from this sandbox
177
+ *
178
+ * @remarks
179
+ * Newest first, tenant-scoped, WITHOUT the stored bytes. `messageCount` is how much conversation each one holds.
168
180
  */
169
- async getApiSandboxByIdTraces(request, options) {
170
- return unwrapAsync(sandboxGetApiSandboxByIdTraces(this, request, options));
181
+ async getApiSandboxByIdCheckpoints(request, options) {
182
+ return unwrapAsync(sandboxGetApiSandboxByIdCheckpoints(this, request, options));
183
+ }
184
+ /**
185
+ * Rebuild this sandbox from a checkpoint, with full state
186
+ *
187
+ * @remarks
188
+ * A cloud equivalent of a local `/resume`, and it does NOT require the old box to still exist — a reaped or torn-down sandbox is the ordinary input. In order: a fresh box is spawned for the SAME sandbox id at generation+1 with the same secret NAMES (values are re-minted, never stored); the relay's seq counter is seeded from the persisted high-water mark so a client's `?since=` cursor stays valid; the workspace and `$HOME/.mutagent` are extracted BEFORE Helix starts; a session is started in the checkpoint's cwd; the conversation is written in, its sha256 compared against the box's own, and only then switched onto; the runtime settings and pending queue are replayed; and a `session {status:"restored"}` frame is appended to the stream with a real seq. A digest mismatch is a 422 and the session is NOT switched. 404 if the snapshot is not in this workspace. Read `notRestored` — a restore that carried only the conversation is legitimate and says so there. A DEFAULTED restore uses the newest checkpoint that has a manifest and lists newer rows it passed over in `skippedSnapshots`. `partial: true` restores the incremental transcript prefix beyond the checkpoint when one exists (the frame then carries `partial: true`); its tail may end on a tool call with no result, which the harness answers with a synthetic error on the next turn — the accepted risk of asking for it.
189
+ */
190
+ async postApiSandboxByIdRestore(request, options) {
191
+ return unwrapAsync(sandboxPostApiSandboxByIdRestore(this, request, options));
192
+ }
193
+ /**
194
+ * Run one agent turn in a fresh sandbox
195
+ *
196
+ * @remarks
197
+ * `prompt` is WHO the agent is (the agent definition) and `task` is WHAT to do this turn. They are two different prompts and are never concatenated. The turn's output comes back on stdout with the agent's real exit code. With `?stream=1` the same turn is delivered as it happens, in the event framing of `GET /:id/stream`: a `sandbox` event naming the box, then `stdout`/`stderr` as the agent produces them, then a `result` event carrying the exit code and whether the sandbox was torn down, then the terminal `status`. Disconnecting mid-stream releases the sandbox.
198
+ */
199
+ async postApiSandboxAgentRun(request, options) {
200
+ return unwrapAsync(sandboxPostApiSandboxAgentRun(this, request, options));
171
201
  }
172
202
  /**
173
203
  * Exchange a platform API key for a sandbox operator token
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../../src/sdk/sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../../src/sdk/sandbox.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutagent/sdk",
3
- "version": "0.3.40",
3
+ "version": "0.3.42",
4
4
  "author": "Speakeasy",
5
5
  "tshy": {
6
6
  "sourceDialects": [
@@ -0,0 +1,184 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { MutagentCore } from "../core.js";
7
+ import { encodeSimple } from "../lib/encodings.js";
8
+ import { matchStatusCode } from "../lib/http.js";
9
+ import * as M from "../lib/matchers.js";
10
+ import { compactMap } from "../lib/primitives.js";
11
+ import { safeParse } from "../lib/schemas.js";
12
+ import { RequestOptions } from "../lib/sdks.js";
13
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
14
+ import { pathToFunc } from "../lib/url.js";
15
+ import {
16
+ ConnectionError,
17
+ InvalidRequestError,
18
+ RequestAbortedError,
19
+ RequestTimeoutError,
20
+ UnexpectedClientError,
21
+ } from "../models/errors/http-client-errors.js";
22
+ import * as errors from "../models/errors/index.js";
23
+ import { MutagentError } from "../models/errors/mutagent-error.js";
24
+ import { ResponseValidationError } from "../models/errors/response-validation-error.js";
25
+ import { SDKValidationError } from "../models/errors/sdk-validation-error.js";
26
+ import * as operations from "../models/operations/index.js";
27
+ import { APICall, APIPromise } from "../types/async.js";
28
+ import { Result } from "../types/fp.js";
29
+
30
+ /**
31
+ * List checkpoints captured from this sandbox
32
+ *
33
+ * @remarks
34
+ * Newest first, tenant-scoped, WITHOUT the stored bytes. `messageCount` is how much conversation each one holds.
35
+ */
36
+ export function sandboxGetApiSandboxByIdCheckpoints(
37
+ client: MutagentCore,
38
+ request: operations.GetApiSandboxByIdCheckpointsRequest,
39
+ options?: RequestOptions,
40
+ ): APIPromise<
41
+ Result<
42
+ operations.GetApiSandboxByIdCheckpointsResponse,
43
+ | errors.ErrorMessage
44
+ | errors.ErrorMessageStatusCode
45
+ | MutagentError
46
+ | ResponseValidationError
47
+ | ConnectionError
48
+ | RequestAbortedError
49
+ | RequestTimeoutError
50
+ | InvalidRequestError
51
+ | UnexpectedClientError
52
+ | SDKValidationError
53
+ >
54
+ > {
55
+ return new APIPromise($do(
56
+ client,
57
+ request,
58
+ options,
59
+ ));
60
+ }
61
+
62
+ async function $do(
63
+ client: MutagentCore,
64
+ request: operations.GetApiSandboxByIdCheckpointsRequest,
65
+ options?: RequestOptions,
66
+ ): Promise<
67
+ [
68
+ Result<
69
+ operations.GetApiSandboxByIdCheckpointsResponse,
70
+ | errors.ErrorMessage
71
+ | errors.ErrorMessageStatusCode
72
+ | MutagentError
73
+ | ResponseValidationError
74
+ | ConnectionError
75
+ | RequestAbortedError
76
+ | RequestTimeoutError
77
+ | InvalidRequestError
78
+ | UnexpectedClientError
79
+ | SDKValidationError
80
+ >,
81
+ APICall,
82
+ ]
83
+ > {
84
+ const parsed = safeParse(
85
+ request,
86
+ (value) =>
87
+ z.parse(
88
+ operations.GetApiSandboxByIdCheckpointsRequest$outboundSchema,
89
+ value,
90
+ ),
91
+ "Input validation failed",
92
+ );
93
+ if (!parsed.ok) {
94
+ return [parsed, { status: "invalid" }];
95
+ }
96
+ const payload = parsed.value;
97
+ const body = null;
98
+
99
+ const pathParams = {
100
+ id: encodeSimple("id", payload.id, {
101
+ explode: false,
102
+ charEncoding: "percent",
103
+ }),
104
+ };
105
+ const path = pathToFunc("/api/sandbox/{id}/checkpoints")(pathParams);
106
+
107
+ const headers = new Headers(compactMap({
108
+ Accept: "application/json",
109
+ }));
110
+
111
+ const securityInput = await extractSecurity(client._options.security);
112
+ const requestSecurity = resolveGlobalSecurity(securityInput);
113
+
114
+ const context = {
115
+ options: client._options,
116
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
117
+ operationID: "getApiSandboxByIdCheckpoints",
118
+ oAuth2Scopes: null,
119
+
120
+ resolvedSecurity: requestSecurity,
121
+
122
+ securitySource: client._options.security,
123
+ retryConfig: options?.retries
124
+ || client._options.retryConfig
125
+ || { strategy: "none" },
126
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
127
+ };
128
+
129
+ const requestRes = client._createRequest(context, {
130
+ security: requestSecurity,
131
+ method: "GET",
132
+ baseURL: options?.serverURL,
133
+ path: path,
134
+ headers: headers,
135
+ body: body,
136
+ userAgent: client._options.userAgent,
137
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
138
+ }, options);
139
+ if (!requestRes.ok) {
140
+ return [requestRes, { status: "invalid" }];
141
+ }
142
+ const req = requestRes.value;
143
+
144
+ const doResult = await client._do(req, {
145
+ context,
146
+ isErrorStatusCode: (statusCode: number) =>
147
+ matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]),
148
+ retryConfig: context.retryConfig,
149
+ retryCodes: context.retryCodes,
150
+ });
151
+ if (!doResult.ok) {
152
+ return [doResult, { status: "request-error", request: req }];
153
+ }
154
+ const response = doResult.value;
155
+
156
+ const responseFields = {
157
+ HttpMeta: { Response: response, Request: req },
158
+ };
159
+
160
+ const [result] = await M.match<
161
+ operations.GetApiSandboxByIdCheckpointsResponse,
162
+ | errors.ErrorMessage
163
+ | errors.ErrorMessageStatusCode
164
+ | MutagentError
165
+ | ResponseValidationError
166
+ | ConnectionError
167
+ | RequestAbortedError
168
+ | RequestTimeoutError
169
+ | InvalidRequestError
170
+ | UnexpectedClientError
171
+ | SDKValidationError
172
+ >(
173
+ M.json(200, operations.GetApiSandboxByIdCheckpointsResponse$inboundSchema),
174
+ M.jsonErr([400, 401, 403, 404], errors.ErrorMessage$inboundSchema),
175
+ M.jsonErr(500, errors.ErrorMessageStatusCode$inboundSchema),
176
+ M.fail("4XX"),
177
+ M.fail("5XX"),
178
+ )(response, req, { extraFields: responseFields });
179
+ if (!result.ok) {
180
+ return [result, { status: "complete", request: req, response }];
181
+ }
182
+
183
+ return [result, { status: "complete", request: req, response }];
184
+ }
@@ -31,7 +31,7 @@ import { Result } from "../types/fp.js";
31
31
  * Watch a sandbox's output live
32
32
  *
33
33
  * @remarks
34
- * Server-sent events: `stdout`, `stderr`, `rpc`, `unrecognised`, `status`, `ping` (every 15s), `error`. `rpc` carries one complete NDJSON frame from a Helix session running in RPC mode, verbatim — parse it client-side. `unrecognised` carries a line the backend could not classify; receiving one means this server and the sandbox image disagree about the protocol, and it is forwarded rather than dropped so that drift is visible instead of silent. All four output events share the `{seq, ts, text}` shape and one sequence counter, so their interleaving is the order the box produced them. `seq` is monotonic per sandbox and starts at 1; pass the last one seen as `?since=` to resume. If the buffer has already rolled past `since`, an `error` event names the lost range rather than skipping it silently. Disconnecting tears down the upstream.
34
+ * Server-sent events: `stdout`, `stderr`, `rpc`, `unrecognised`, `session`, `live`, `status`, `ping` (every 15s), `error`. `rpc` carries one complete NDJSON frame from a Helix session running in RPC mode, verbatim — parse it client-side. `unrecognised` carries a line the backend could not classify; receiving one means this server and the sandbox image disagree about the protocol, and it is forwarded rather than dropped so that drift is visible instead of silent. Those four output events share the `{seq, ts, text}` shape and one sequence counter, so their interleaving is the order the box produced them. `session` shares that counter too but carries flat fields instead of `text` — `{sessionId, status: "started"|"exited", exitCode, lastSeq, generation}` — and is how a client learns a Helix session began or ended; it is persisted and replayed like any output event, and `exitCode` is the session's real code (the terminal `status` event describes the SANDBOX and reports null by contract). `live` is emitted at most once, before the opening `status`, and only when this instance cannot follow the sandbox: it replays the log and ends rather than tailing. `seq` is monotonic per sandbox and starts at 1, and every seq-bearing event also carries it as the SSE `id:` field; pass the last one seen as `?since=` to resume. A resume is served from the persisted event log first and the live buffer only for the tail, so it survives a restart and can be answered by an instance that never spawned the box. If the requested range has been TRIMMED from that log, an `error` event names the lost range rather than skipping it silently — it carries `code: 'gap'` with the inclusive `from`/`to` wire seqs, and the stream continues past the gap; a source failure instead carries `code: 'upstream'` and is the end of the stream. Branch on `code`, never on `message`. Disconnecting tears down the upstream.
35
35
  */
36
36
  export function sandboxGetApiSandboxByIdStream(
37
37
  client: MutagentCore,
@@ -0,0 +1,186 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { MutagentCore } from "../core.js";
7
+ import { encodeJSON, encodeSimple } from "../lib/encodings.js";
8
+ import { matchStatusCode } from "../lib/http.js";
9
+ import * as M from "../lib/matchers.js";
10
+ import { compactMap } from "../lib/primitives.js";
11
+ import { safeParse } from "../lib/schemas.js";
12
+ import { RequestOptions } from "../lib/sdks.js";
13
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
14
+ import { pathToFunc } from "../lib/url.js";
15
+ import {
16
+ ConnectionError,
17
+ InvalidRequestError,
18
+ RequestAbortedError,
19
+ RequestTimeoutError,
20
+ UnexpectedClientError,
21
+ } from "../models/errors/http-client-errors.js";
22
+ import * as errors from "../models/errors/index.js";
23
+ import { MutagentError } from "../models/errors/mutagent-error.js";
24
+ import { ResponseValidationError } from "../models/errors/response-validation-error.js";
25
+ import { SDKValidationError } from "../models/errors/sdk-validation-error.js";
26
+ import * as operations from "../models/operations/index.js";
27
+ import { APICall, APIPromise } from "../types/async.js";
28
+ import { Result } from "../types/fp.js";
29
+
30
+ /**
31
+ * Capture a Helix session's own transcript
32
+ *
33
+ * @remarks
34
+ * Copies the HARNESS's session file off the box, verbatim, and stores it. This is what a NEW box needs to CONTINUE the conversation — distinct from `GET /:id/stream?since=`, which replays what the client observed and restores no agent state at all. 409 when the session has not completed a turn: the harness writes its file lazily, so there is genuinely nothing to capture yet, and storing an empty snapshot would produce a restore that succeeds and restores nothing. 503 when the deployment has no snapshot store.
35
+ */
36
+ export function sandboxPostApiSandboxByIdCheckpoint(
37
+ client: MutagentCore,
38
+ request: operations.PostApiSandboxByIdCheckpointRequest,
39
+ options?: RequestOptions,
40
+ ): APIPromise<
41
+ Result<
42
+ operations.PostApiSandboxByIdCheckpointResponse,
43
+ | errors.ErrorMessage
44
+ | errors.ErrorMessageStatusCode
45
+ | MutagentError
46
+ | ResponseValidationError
47
+ | ConnectionError
48
+ | RequestAbortedError
49
+ | RequestTimeoutError
50
+ | InvalidRequestError
51
+ | UnexpectedClientError
52
+ | SDKValidationError
53
+ >
54
+ > {
55
+ return new APIPromise($do(
56
+ client,
57
+ request,
58
+ options,
59
+ ));
60
+ }
61
+
62
+ async function $do(
63
+ client: MutagentCore,
64
+ request: operations.PostApiSandboxByIdCheckpointRequest,
65
+ options?: RequestOptions,
66
+ ): Promise<
67
+ [
68
+ Result<
69
+ operations.PostApiSandboxByIdCheckpointResponse,
70
+ | errors.ErrorMessage
71
+ | errors.ErrorMessageStatusCode
72
+ | MutagentError
73
+ | ResponseValidationError
74
+ | ConnectionError
75
+ | RequestAbortedError
76
+ | RequestTimeoutError
77
+ | InvalidRequestError
78
+ | UnexpectedClientError
79
+ | SDKValidationError
80
+ >,
81
+ APICall,
82
+ ]
83
+ > {
84
+ const parsed = safeParse(
85
+ request,
86
+ (value) =>
87
+ z.parse(
88
+ operations.PostApiSandboxByIdCheckpointRequest$outboundSchema,
89
+ value,
90
+ ),
91
+ "Input validation failed",
92
+ );
93
+ if (!parsed.ok) {
94
+ return [parsed, { status: "invalid" }];
95
+ }
96
+ const payload = parsed.value;
97
+ const body = encodeJSON("body", payload.body, { explode: true });
98
+
99
+ const pathParams = {
100
+ id: encodeSimple("id", payload.id, {
101
+ explode: false,
102
+ charEncoding: "percent",
103
+ }),
104
+ };
105
+ const path = pathToFunc("/api/sandbox/{id}/checkpoint")(pathParams);
106
+
107
+ const headers = new Headers(compactMap({
108
+ "Content-Type": "application/json",
109
+ Accept: "application/json",
110
+ }));
111
+
112
+ const securityInput = await extractSecurity(client._options.security);
113
+ const requestSecurity = resolveGlobalSecurity(securityInput);
114
+
115
+ const context = {
116
+ options: client._options,
117
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
118
+ operationID: "postApiSandboxByIdCheckpoint",
119
+ oAuth2Scopes: null,
120
+
121
+ resolvedSecurity: requestSecurity,
122
+
123
+ securitySource: client._options.security,
124
+ retryConfig: options?.retries
125
+ || client._options.retryConfig
126
+ || { strategy: "none" },
127
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
128
+ };
129
+
130
+ const requestRes = client._createRequest(context, {
131
+ security: requestSecurity,
132
+ method: "POST",
133
+ baseURL: options?.serverURL,
134
+ path: path,
135
+ headers: headers,
136
+ body: body,
137
+ userAgent: client._options.userAgent,
138
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
139
+ }, options);
140
+ if (!requestRes.ok) {
141
+ return [requestRes, { status: "invalid" }];
142
+ }
143
+ const req = requestRes.value;
144
+
145
+ const doResult = await client._do(req, {
146
+ context,
147
+ isErrorStatusCode: (statusCode: number) =>
148
+ matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]),
149
+ retryConfig: context.retryConfig,
150
+ retryCodes: context.retryCodes,
151
+ });
152
+ if (!doResult.ok) {
153
+ return [doResult, { status: "request-error", request: req }];
154
+ }
155
+ const response = doResult.value;
156
+
157
+ const responseFields = {
158
+ HttpMeta: { Response: response, Request: req },
159
+ };
160
+
161
+ const [result] = await M.match<
162
+ operations.PostApiSandboxByIdCheckpointResponse,
163
+ | errors.ErrorMessage
164
+ | errors.ErrorMessageStatusCode
165
+ | MutagentError
166
+ | ResponseValidationError
167
+ | ConnectionError
168
+ | RequestAbortedError
169
+ | RequestTimeoutError
170
+ | InvalidRequestError
171
+ | UnexpectedClientError
172
+ | SDKValidationError
173
+ >(
174
+ M.json(200, operations.PostApiSandboxByIdCheckpointResponse$inboundSchema),
175
+ M.jsonErr([400, 401, 403, 404], errors.ErrorMessage$inboundSchema),
176
+ M.jsonErr(409, errors.ErrorMessageStatusCode$inboundSchema),
177
+ M.jsonErr(500, errors.ErrorMessageStatusCode$inboundSchema),
178
+ M.fail("4XX"),
179
+ M.fail("5XX"),
180
+ )(response, req, { extraFields: responseFields });
181
+ if (!result.ok) {
182
+ return [result, { status: "complete", request: req, response }];
183
+ }
184
+
185
+ return [result, { status: "complete", request: req, response }];
186
+ }