@effect-uai/core 0.18.0 → 0.19.0-dev-20261110065930

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 (162) hide show
  1. package/README.md +4 -4
  2. package/dist/Content-D_Qfn8Ja.d.mts +48 -0
  3. package/dist/Content-D_Qfn8Ja.d.mts.map +1 -0
  4. package/dist/File-B923KvZ9.d.mts +46 -0
  5. package/dist/File-B923KvZ9.d.mts.map +1 -0
  6. package/dist/{Image-Cv6iBLTy.d.mts → Image-Bzc1H_UK.d.mts} +19 -8
  7. package/dist/Image-Bzc1H_UK.d.mts.map +1 -0
  8. package/dist/{Items-C7MyrYPX.d.mts → Items-Bvx8s9QH.d.mts} +109 -16
  9. package/dist/Items-Bvx8s9QH.d.mts.map +1 -0
  10. package/dist/{Loop-ChpaO-ya.d.mts → Loop-CeA0AelN.d.mts} +7 -6
  11. package/dist/Loop-CeA0AelN.d.mts.map +1 -0
  12. package/dist/Tool-Bkryw6-h.d.mts +206 -0
  13. package/dist/Tool-Bkryw6-h.d.mts.map +1 -0
  14. package/dist/ToolEvent-9inLx5cI.d.mts +22 -0
  15. package/dist/ToolEvent-9inLx5cI.d.mts.map +1 -0
  16. package/dist/ToolOutput-BNTIQgGB.d.mts +151 -0
  17. package/dist/ToolOutput-BNTIQgGB.d.mts.map +1 -0
  18. package/dist/Toolkit-D2VGeD5R.d.mts +212 -0
  19. package/dist/Toolkit-D2VGeD5R.d.mts.map +1 -0
  20. package/dist/browser/BrowserTool.d.mts +84 -22
  21. package/dist/browser/BrowserTool.d.mts.map +1 -1
  22. package/dist/browser/BrowserTool.mjs +5 -0
  23. package/dist/browser/BrowserTool.mjs.map +1 -1
  24. package/dist/capabilities/Capabilities.d.mts +1 -1
  25. package/dist/decision-model/Decision.test.mjs +1 -1
  26. package/dist/{dist-C8RmtoR8.mjs → dist-B5K-y4Be.mjs} +51 -32
  27. package/dist/dist-B5K-y4Be.mjs.map +1 -0
  28. package/dist/domain/File.d.mts +2 -0
  29. package/dist/domain/File.mjs +51 -0
  30. package/dist/domain/File.mjs.map +1 -0
  31. package/dist/domain/Image.d.mts +2 -2
  32. package/dist/domain/Image.mjs +12 -2
  33. package/dist/domain/Image.mjs.map +1 -1
  34. package/dist/domain/Items.d.mts +2 -2
  35. package/dist/domain/Items.mjs +65 -4
  36. package/dist/domain/Items.mjs.map +1 -1
  37. package/dist/domain/Realtime.d.mts +72 -490
  38. package/dist/domain/Realtime.d.mts.map +1 -1
  39. package/dist/domain/Research.d.mts +1 -1
  40. package/dist/domain/Transcript.test.mjs +1 -1
  41. package/dist/domain/Turn.d.mts +57 -262
  42. package/dist/domain/Turn.d.mts.map +1 -1
  43. package/dist/domain/Turn.mjs +1 -1
  44. package/dist/embedding-model/Embedding.d.mts +1 -1
  45. package/dist/image-generator/ImageGenerator.d.mts +10 -66
  46. package/dist/image-generator/ImageGenerator.d.mts.map +1 -1
  47. package/dist/index.d.mts +10 -9
  48. package/dist/index.mjs +7 -6
  49. package/dist/language-model/LanguageModel.d.mts +2 -2
  50. package/dist/loop/Loop.d.mts +1 -1
  51. package/dist/loop/Loop.mjs.map +1 -1
  52. package/dist/messenger/Messenger.d.mts +43 -289
  53. package/dist/messenger/Messenger.d.mts.map +1 -1
  54. package/dist/messenger/MessengerAdapter.test.mjs +1 -1
  55. package/dist/observability/Metrics.d.mts +1 -1
  56. package/dist/observability/Metrics.test.mjs +1 -1
  57. package/dist/observability/Telemetry.test.mjs +1 -1
  58. package/dist/realtime/RealtimeSession.d.mts +1 -1
  59. package/dist/realtime/RealtimeSession.test.mjs +1 -1
  60. package/dist/sandbox/Sandbox.d.mts +32 -237
  61. package/dist/sandbox/Sandbox.d.mts.map +1 -1
  62. package/dist/streaming/Multipart.mjs +2 -1
  63. package/dist/streaming/Multipart.mjs.map +1 -1
  64. package/dist/streaming/Multipart.test.mjs +28 -0
  65. package/dist/streaming/Multipart.test.mjs.map +1 -0
  66. package/dist/streaming/Settle.test.mjs +1 -1
  67. package/dist/streaming/WebSocketSession.test.mjs +1 -1
  68. package/dist/testing/MockMessenger.d.mts +19 -134
  69. package/dist/testing/MockMessenger.d.mts.map +1 -1
  70. package/dist/testing/MockProvider.d.mts +1 -1
  71. package/dist/testing/MockSandbox.d.mts +65 -446
  72. package/dist/testing/MockSandbox.d.mts.map +1 -1
  73. package/dist/tool/Content.d.mts +2 -0
  74. package/dist/tool/Content.mjs +46 -0
  75. package/dist/tool/Content.mjs.map +1 -0
  76. package/dist/tool/Content.test.d.mts +1 -0
  77. package/dist/tool/Content.test.mjs +48 -0
  78. package/dist/tool/Content.test.mjs.map +1 -0
  79. package/dist/tool/HistoryCheck.d.mts +6 -15
  80. package/dist/tool/HistoryCheck.d.mts.map +1 -1
  81. package/dist/tool/HistoryCheck.mjs +10 -24
  82. package/dist/tool/HistoryCheck.mjs.map +1 -1
  83. package/dist/tool/Tool.d.mts +2 -2
  84. package/dist/tool/Tool.mjs +55 -130
  85. package/dist/tool/Tool.mjs.map +1 -1
  86. package/dist/tool/Tool.test.mjs +220 -176
  87. package/dist/tool/Tool.test.mjs.map +1 -1
  88. package/dist/tool/ToolDecision.d.mts +164 -0
  89. package/dist/tool/ToolDecision.d.mts.map +1 -0
  90. package/dist/tool/ToolDecision.mjs +146 -0
  91. package/dist/tool/ToolDecision.mjs.map +1 -0
  92. package/dist/tool/ToolDecision.test.d.mts +1 -0
  93. package/dist/tool/ToolDecision.test.mjs +330 -0
  94. package/dist/tool/ToolDecision.test.mjs.map +1 -0
  95. package/dist/tool/ToolEvent.d.mts +2 -2
  96. package/dist/tool/ToolEvent.mjs +2 -34
  97. package/dist/tool/ToolEvent.mjs.map +1 -1
  98. package/dist/tool/ToolOutput.d.mts +2 -0
  99. package/dist/tool/ToolOutput.mjs +128 -0
  100. package/dist/tool/ToolOutput.mjs.map +1 -0
  101. package/dist/tool/ToolOutput.test.d.mts +1 -0
  102. package/dist/tool/ToolOutput.test.mjs +153 -0
  103. package/dist/tool/ToolOutput.test.mjs.map +1 -0
  104. package/dist/tool/Toolkit.d.mts +2 -2
  105. package/dist/tool/Toolkit.mjs +230 -165
  106. package/dist/tool/Toolkit.mjs.map +1 -1
  107. package/dist/tool/Toolkit.test.mjs +431 -389
  108. package/dist/tool/Toolkit.test.mjs.map +1 -1
  109. package/dist/web-read/WebReadTool.d.mts +2 -2
  110. package/dist/web-read/WebReadTool.mjs +1 -0
  111. package/dist/web-read/WebReadTool.mjs.map +1 -1
  112. package/dist/web-search/WebSearchTool.d.mts +2 -2
  113. package/dist/web-search/WebSearchTool.mjs +1 -0
  114. package/dist/web-search/WebSearchTool.mjs.map +1 -1
  115. package/package.json +17 -9
  116. package/src/browser/BrowserTool.ts +5 -0
  117. package/src/domain/File.ts +79 -0
  118. package/src/domain/Image.ts +14 -4
  119. package/src/domain/Items.ts +39 -3
  120. package/src/index.ts +3 -2
  121. package/src/loop/Loop.ts +24 -13
  122. package/src/streaming/Multipart.test.ts +26 -0
  123. package/src/streaming/Multipart.ts +5 -4
  124. package/src/tool/Content.test.ts +40 -0
  125. package/src/tool/Content.ts +38 -0
  126. package/src/tool/HistoryCheck.ts +21 -26
  127. package/src/tool/Tool.test.ts +240 -241
  128. package/src/tool/Tool.ts +203 -308
  129. package/src/tool/ToolDecision.test.ts +301 -0
  130. package/src/tool/ToolDecision.ts +360 -0
  131. package/src/tool/ToolEvent.ts +21 -41
  132. package/src/tool/ToolOutput.test.ts +132 -0
  133. package/src/tool/ToolOutput.ts +198 -0
  134. package/src/tool/Toolkit.test.ts +594 -454
  135. package/src/tool/Toolkit.ts +631 -356
  136. package/src/web-read/WebReadTool.ts +2 -1
  137. package/src/web-search/WebSearchTool.ts +2 -1
  138. package/dist/Image-Cv6iBLTy.d.mts.map +0 -1
  139. package/dist/Items-C7MyrYPX.d.mts.map +0 -1
  140. package/dist/Loop-ChpaO-ya.d.mts.map +0 -1
  141. package/dist/Tool-BF78QWtn.d.mts +0 -314
  142. package/dist/Tool-BF78QWtn.d.mts.map +0 -1
  143. package/dist/ToolEvent-Di4a723B.d.mts +0 -144
  144. package/dist/ToolEvent-Di4a723B.d.mts.map +0 -1
  145. package/dist/ToolResult-BsYQRjmW.d.mts +0 -152
  146. package/dist/ToolResult-BsYQRjmW.d.mts.map +0 -1
  147. package/dist/Toolkit-tlL0F2YR.d.mts +0 -193
  148. package/dist/Toolkit-tlL0F2YR.d.mts.map +0 -1
  149. package/dist/dist-C8RmtoR8.mjs.map +0 -1
  150. package/dist/tool/Approval.d.mts +0 -113
  151. package/dist/tool/Approval.d.mts.map +0 -1
  152. package/dist/tool/Approval.mjs +0 -80
  153. package/dist/tool/Approval.mjs.map +0 -1
  154. package/dist/tool/Approval.test.mjs +0 -371
  155. package/dist/tool/Approval.test.mjs.map +0 -1
  156. package/dist/tool/ToolResult.d.mts +0 -2
  157. package/dist/tool/ToolResult.mjs +0 -85
  158. package/dist/tool/ToolResult.mjs.map +0 -1
  159. package/src/tool/Approval.test.ts +0 -400
  160. package/src/tool/Approval.ts +0 -181
  161. package/src/tool/ToolResult.ts +0 -114
  162. /package/dist/{tool/Approval.test.d.mts → streaming/Multipart.test.d.mts} +0 -0
@@ -54,95 +54,18 @@ type ImageRef = Data.TaggedEnum<{
54
54
  readonly contents: string;
55
55
  };
56
56
  }>;
57
- declare const ImageRef: {
58
- readonly $is: <Tag extends "Default" | "Dockerfile" | "Registry" | "Snapshot">(tag: Tag) => (u: unknown) => u is Extract<{
59
- readonly _tag: "Default";
60
- }, {
61
- readonly _tag: Tag;
62
- }> | Extract<{
63
- readonly _tag: "Dockerfile";
64
- readonly contents: string;
65
- }, {
66
- readonly _tag: Tag;
67
- }> | Extract<{
68
- readonly _tag: "Registry";
69
- readonly ref: string;
70
- }, {
71
- readonly _tag: Tag;
72
- }> | Extract<{
73
- readonly _tag: "Snapshot";
74
- readonly id: SnapshotId;
75
- }, {
76
- readonly _tag: Tag;
77
- }>;
78
- readonly $match: {
79
- <Cases extends { readonly [Tag in "Default" | "Dockerfile" | "Registry" | "Snapshot"]: (args: Extract<{
80
- readonly _tag: "Default";
81
- } | {
82
- readonly _tag: "Dockerfile";
83
- readonly contents: string;
84
- } | {
85
- readonly _tag: "Registry";
86
- readonly ref: string;
87
- } | {
88
- readonly _tag: "Snapshot";
89
- readonly id: SnapshotId;
90
- }, {
91
- readonly _tag: Tag;
92
- }>) => any; }>(cases: Cases): (value: {
93
- readonly _tag: "Default";
94
- } | {
95
- readonly _tag: "Dockerfile";
96
- readonly contents: string;
97
- } | {
98
- readonly _tag: "Registry";
99
- readonly ref: string;
100
- } | {
101
- readonly _tag: "Snapshot";
102
- readonly id: SnapshotId;
103
- }) => import("effect/Unify").Unify<ReturnType<Cases["Default" | "Dockerfile" | "Registry" | "Snapshot"]>>;
104
- <Cases extends { readonly [Tag in "Default" | "Dockerfile" | "Registry" | "Snapshot"]: (args: Extract<{
105
- readonly _tag: "Default";
106
- } | {
107
- readonly _tag: "Dockerfile";
108
- readonly contents: string;
109
- } | {
110
- readonly _tag: "Registry";
111
- readonly ref: string;
112
- } | {
113
- readonly _tag: "Snapshot";
114
- readonly id: SnapshotId;
115
- }, {
116
- readonly _tag: Tag;
117
- }>) => any; }>(value: {
118
- readonly _tag: "Default";
119
- } | {
120
- readonly _tag: "Dockerfile";
121
- readonly contents: string;
122
- } | {
123
- readonly _tag: "Registry";
124
- readonly ref: string;
125
- } | {
126
- readonly _tag: "Snapshot";
127
- readonly id: SnapshotId;
128
- }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Default" | "Dockerfile" | "Registry" | "Snapshot"]>>;
129
- };
130
- readonly Default: Data.TaggedEnum.ConstructorFrom<{
131
- readonly _tag: "Default";
132
- }, "_tag">;
133
- readonly Dockerfile: Data.TaggedEnum.ConstructorFrom<{
134
- readonly _tag: "Dockerfile";
135
- readonly contents: string;
136
- }, "_tag">;
137
- readonly Registry: Data.TaggedEnum.ConstructorFrom<{
138
- readonly _tag: "Registry";
139
- readonly ref: string;
140
- }, "_tag">;
141
- readonly Snapshot: Data.TaggedEnum.ConstructorFrom<{
142
- readonly _tag: "Snapshot";
143
- readonly id: SnapshotId;
144
- }, "_tag">;
145
- };
57
+ declare const ImageRef: Data.TaggedEnum.Constructor<{
58
+ readonly _tag: "Default";
59
+ } | {
60
+ readonly _tag: "Dockerfile";
61
+ readonly contents: string;
62
+ } | {
63
+ readonly _tag: "Registry";
64
+ readonly ref: string;
65
+ } | {
66
+ readonly _tag: "Snapshot";
67
+ readonly id: SnapshotId;
68
+ }>;
146
69
  /**
147
70
  * Outbound network policy for a sandbox.
148
71
  *
@@ -163,74 +86,15 @@ type NetworkPolicy = Data.TaggedEnum<{
163
86
  readonly cidrs?: ReadonlyArray<string>;
164
87
  };
165
88
  }>;
166
- declare const NetworkPolicy: {
167
- readonly $is: <Tag extends "Allowlist" | "Blocked" | "Open">(tag: Tag) => (u: unknown) => u is Extract<{
168
- readonly _tag: "Allowlist";
169
- readonly hosts?: ReadonlyArray<string>;
170
- readonly cidrs?: ReadonlyArray<string>;
171
- }, {
172
- readonly _tag: Tag;
173
- }> | Extract<{
174
- readonly _tag: "Blocked";
175
- }, {
176
- readonly _tag: Tag;
177
- }> | Extract<{
178
- readonly _tag: "Open";
179
- }, {
180
- readonly _tag: Tag;
181
- }>;
182
- readonly $match: {
183
- <Cases extends { readonly [Tag in "Allowlist" | "Blocked" | "Open"]: (args: Extract<{
184
- readonly _tag: "Allowlist";
185
- readonly hosts?: ReadonlyArray<string>;
186
- readonly cidrs?: ReadonlyArray<string>;
187
- } | {
188
- readonly _tag: "Blocked";
189
- } | {
190
- readonly _tag: "Open";
191
- }, {
192
- readonly _tag: Tag;
193
- }>) => any; }>(cases: Cases): (value: {
194
- readonly _tag: "Allowlist";
195
- readonly hosts?: ReadonlyArray<string>;
196
- readonly cidrs?: ReadonlyArray<string>;
197
- } | {
198
- readonly _tag: "Blocked";
199
- } | {
200
- readonly _tag: "Open";
201
- }) => import("effect/Unify").Unify<ReturnType<Cases["Allowlist" | "Blocked" | "Open"]>>;
202
- <Cases extends { readonly [Tag in "Allowlist" | "Blocked" | "Open"]: (args: Extract<{
203
- readonly _tag: "Allowlist";
204
- readonly hosts?: ReadonlyArray<string>;
205
- readonly cidrs?: ReadonlyArray<string>;
206
- } | {
207
- readonly _tag: "Blocked";
208
- } | {
209
- readonly _tag: "Open";
210
- }, {
211
- readonly _tag: Tag;
212
- }>) => any; }>(value: {
213
- readonly _tag: "Allowlist";
214
- readonly hosts?: ReadonlyArray<string>;
215
- readonly cidrs?: ReadonlyArray<string>;
216
- } | {
217
- readonly _tag: "Blocked";
218
- } | {
219
- readonly _tag: "Open";
220
- }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Allowlist" | "Blocked" | "Open"]>>;
221
- };
222
- readonly Allowlist: Data.TaggedEnum.ConstructorFrom<{
223
- readonly _tag: "Allowlist";
224
- readonly hosts?: ReadonlyArray<string>;
225
- readonly cidrs?: ReadonlyArray<string>;
226
- }, "_tag">;
227
- readonly Blocked: Data.TaggedEnum.ConstructorFrom<{
228
- readonly _tag: "Blocked";
229
- }, "_tag">;
230
- readonly Open: Data.TaggedEnum.ConstructorFrom<{
231
- readonly _tag: "Open";
232
- }, "_tag">;
233
- };
89
+ declare const NetworkPolicy: Data.TaggedEnum.Constructor<{
90
+ readonly _tag: "Allowlist";
91
+ readonly hosts?: ReadonlyArray<string>;
92
+ readonly cidrs?: ReadonlyArray<string>;
93
+ } | {
94
+ readonly _tag: "Blocked";
95
+ } | {
96
+ readonly _tag: "Open";
97
+ }>;
234
98
  /**
235
99
  * A secret bound to a sandbox at create time. The code inside the
236
100
  * sandbox sees only a placeholder (`$MSB_<NAME>` for Microsandbox,
@@ -352,86 +216,17 @@ type ExecEvent = Data.TaggedEnum<{
352
216
  readonly durationMs: number;
353
217
  };
354
218
  }>;
355
- declare const ExecEvent: {
356
- readonly $is: <Tag extends "Complete" | "Stderr" | "Stdout">(tag: Tag) => (u: unknown) => u is Extract<{
357
- readonly _tag: "Complete";
358
- readonly exitCode: number;
359
- readonly durationMs: number;
360
- }, {
361
- readonly _tag: Tag;
362
- }> | Extract<{
363
- readonly _tag: "Stderr";
364
- readonly chunk: Uint8Array;
365
- }, {
366
- readonly _tag: Tag;
367
- }> | Extract<{
368
- readonly _tag: "Stdout";
369
- readonly chunk: Uint8Array;
370
- }, {
371
- readonly _tag: Tag;
372
- }>;
373
- readonly $match: {
374
- <Cases extends { readonly [Tag in "Complete" | "Stderr" | "Stdout"]: (args: Extract<{
375
- readonly _tag: "Complete";
376
- readonly exitCode: number;
377
- readonly durationMs: number;
378
- } | {
379
- readonly _tag: "Stderr";
380
- readonly chunk: Uint8Array;
381
- } | {
382
- readonly _tag: "Stdout";
383
- readonly chunk: Uint8Array;
384
- }, {
385
- readonly _tag: Tag;
386
- }>) => any; }>(cases: Cases): (value: {
387
- readonly _tag: "Complete";
388
- readonly exitCode: number;
389
- readonly durationMs: number;
390
- } | {
391
- readonly _tag: "Stderr";
392
- readonly chunk: Uint8Array;
393
- } | {
394
- readonly _tag: "Stdout";
395
- readonly chunk: Uint8Array;
396
- }) => import("effect/Unify").Unify<ReturnType<Cases["Complete" | "Stderr" | "Stdout"]>>;
397
- <Cases extends { readonly [Tag in "Complete" | "Stderr" | "Stdout"]: (args: Extract<{
398
- readonly _tag: "Complete";
399
- readonly exitCode: number;
400
- readonly durationMs: number;
401
- } | {
402
- readonly _tag: "Stderr";
403
- readonly chunk: Uint8Array;
404
- } | {
405
- readonly _tag: "Stdout";
406
- readonly chunk: Uint8Array;
407
- }, {
408
- readonly _tag: Tag;
409
- }>) => any; }>(value: {
410
- readonly _tag: "Complete";
411
- readonly exitCode: number;
412
- readonly durationMs: number;
413
- } | {
414
- readonly _tag: "Stderr";
415
- readonly chunk: Uint8Array;
416
- } | {
417
- readonly _tag: "Stdout";
418
- readonly chunk: Uint8Array;
419
- }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Complete" | "Stderr" | "Stdout"]>>;
420
- };
421
- readonly Complete: Data.TaggedEnum.ConstructorFrom<{
422
- readonly _tag: "Complete";
423
- readonly exitCode: number;
424
- readonly durationMs: number;
425
- }, "_tag">;
426
- readonly Stderr: Data.TaggedEnum.ConstructorFrom<{
427
- readonly _tag: "Stderr";
428
- readonly chunk: Uint8Array;
429
- }, "_tag">;
430
- readonly Stdout: Data.TaggedEnum.ConstructorFrom<{
431
- readonly _tag: "Stdout";
432
- readonly chunk: Uint8Array;
433
- }, "_tag">;
434
- };
219
+ declare const ExecEvent: Data.TaggedEnum.Constructor<{
220
+ readonly _tag: "Complete";
221
+ readonly exitCode: number;
222
+ readonly durationMs: number;
223
+ } | {
224
+ readonly _tag: "Stderr";
225
+ readonly chunk: Uint8Array;
226
+ } | {
227
+ readonly _tag: "Stdout";
228
+ readonly chunk: Uint8Array;
229
+ }>;
435
230
  type FileEntryKind = "file" | "directory" | "symlink" | "other";
436
231
  type FileEntry = {
437
232
  readonly path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Sandbox.d.mts","names":[],"sources":["../../src/sandbox/Sandbox.ts"],"mappings":"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"}
1
+ {"version":3,"file":"Sandbox.d.mts","names":[],"sources":["../../src/sandbox/Sandbox.ts"],"mappings":"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"}
@@ -17,8 +17,9 @@ var Multipart_exports = /* @__PURE__ */ __exportAll({ bodyMultipart: () => bodyM
17
17
  */
18
18
  const bodyMultipart = (form) => Effect.gen(function* () {
19
19
  const encoded = new Response(form);
20
+ const contentType = encoded.headers.get("content-type") ?? "multipart/form-data";
20
21
  const buffer = yield* Effect.tryPromise(() => encoded.arrayBuffer());
21
- return HttpClientRequest.bodyUint8Array(new Uint8Array(buffer), encoded.headers.get("content-type") ?? "multipart/form-data");
22
+ return HttpClientRequest.bodyUint8Array(new Uint8Array(buffer), contentType);
22
23
  });
23
24
  //#endregion
24
25
  export { bodyMultipart, Multipart_exports as t };
@@ -1 +1 @@
1
- {"version":3,"file":"Multipart.mjs","names":[],"sources":["../../src/streaming/Multipart.ts"],"sourcesContent":["import { Effect } from \"effect\"\nimport { HttpClientRequest } from \"effect/http\"\n\n/**\n * Multipart body for an `HttpClientRequest`, encoded to bytes.\n *\n * Use this over `HttpClientRequest.bodyFormData`: the Undici client\n * passes the `FormData` object straight to `dispatcher.request`, which\n * cannot serialise it, so the request is never sent and the effect\n * hangs with no error. Encoding here produces the same bytes every\n * other client derives internally, so it works on all of them.\n *\n * The failure is whatever `Response.arrayBuffer` rejects with; map it\n * to your provider's transport error at the call site.\n */\nexport const bodyMultipart = (\n form: FormData,\n): Effect.Effect<\n (request: HttpClientRequest.HttpClientRequest) => HttpClientRequest.HttpClientRequest,\n unknown\n> =>\n Effect.gen(function* () {\n const encoded = new Response(form)\n const buffer = yield* Effect.tryPromise(() => encoded.arrayBuffer())\n return HttpClientRequest.bodyUint8Array(\n new Uint8Array(buffer),\n encoded.headers.get(\"content-type\") ?? \"multipart/form-data\",\n )\n })\n"],"mappings":";;;;;;;;;;;;;;;;;AAeA,MAAa,iBACX,SAKA,OAAO,IAAI,aAAa;CACtB,MAAM,UAAU,IAAI,SAAS,IAAI;CACjC,MAAM,SAAS,OAAO,OAAO,iBAAiB,QAAQ,YAAY,CAAC;CACnE,OAAO,kBAAkB,eACvB,IAAI,WAAW,MAAM,GACrB,QAAQ,QAAQ,IAAI,cAAc,KAAK,qBACzC;AACF,CAAC"}
1
+ {"version":3,"file":"Multipart.mjs","names":[],"sources":["../../src/streaming/Multipart.ts"],"sourcesContent":["import { Effect } from \"effect\"\nimport { HttpClientRequest } from \"effect/http\"\n\n/**\n * Multipart body for an `HttpClientRequest`, encoded to bytes.\n *\n * Use this over `HttpClientRequest.bodyFormData`: the Undici client\n * passes the `FormData` object straight to `dispatcher.request`, which\n * cannot serialise it, so the request is never sent and the effect\n * hangs with no error. Encoding here produces the same bytes every\n * other client derives internally, so it works on all of them.\n *\n * The failure is whatever `Response.arrayBuffer` rejects with; map it\n * to your provider's transport error at the call site.\n */\nexport const bodyMultipart = (\n form: FormData,\n): Effect.Effect<\n (request: HttpClientRequest.HttpClientRequest) => HttpClientRequest.HttpClientRequest,\n unknown\n> =>\n Effect.gen(function* () {\n const encoded = new Response(form)\n // Read before the body: once it is consumed, Bun answers `null` for this\n // header (Node keeps it), which would drop the boundary and leave the\n // server unable to parse the parts.\n const contentType = encoded.headers.get(\"content-type\") ?? \"multipart/form-data\"\n const buffer = yield* Effect.tryPromise(() => encoded.arrayBuffer())\n return HttpClientRequest.bodyUint8Array(new Uint8Array(buffer), contentType)\n })\n"],"mappings":";;;;;;;;;;;;;;;;;AAeA,MAAa,iBACX,SAKA,OAAO,IAAI,aAAa;CACtB,MAAM,UAAU,IAAI,SAAS,IAAI;CAIjC,MAAM,cAAc,QAAQ,QAAQ,IAAI,cAAc,KAAK;CAC3D,MAAM,SAAS,OAAO,OAAO,iBAAiB,QAAQ,YAAY,CAAC;CACnE,OAAO,kBAAkB,eAAe,IAAI,WAAW,MAAM,GAAG,WAAW;AAC7E,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { bodyMultipart } from "./Multipart.mjs";
2
+ import { m as describe } from "../dist-DzeSyeYF.mjs";
3
+ import { n as globalExpect } from "../index.C4tKZ0yW-LuFnBtmu.mjs";
4
+ import { t as it } from "../dist-B5K-y4Be.mjs";
5
+ import { Effect } from "effect";
6
+ import { HttpClientRequest } from "effect/http";
7
+ //#region src/streaming/Multipart.test.ts
8
+ describe("bodyMultipart", () => {
9
+ it.effect("sends the boundary the encoded parts are delimited by", () => Effect.gen(function* () {
10
+ const form = new FormData();
11
+ form.set("file", new Blob([new Uint8Array([
12
+ 1,
13
+ 2,
14
+ 3
15
+ ])], { type: "audio/ogg" }), "audio.ogg");
16
+ form.set("model", "whisper-1");
17
+ const request = HttpClientRequest.post("https://example.test/upload").pipe(yield* bodyMultipart(form));
18
+ const contentType = request.headers["content-type"] ?? "";
19
+ const boundary = /boundary=(.+)$/.exec(contentType)?.[1];
20
+ globalExpect(boundary).toBeDefined();
21
+ const body = request.body._tag === "Uint8Array" ? new TextDecoder().decode(request.body.body) : "";
22
+ globalExpect(body.startsWith(`--${boundary}\r\n`)).toBe(true);
23
+ }));
24
+ });
25
+ //#endregion
26
+ export {};
27
+
28
+ //# sourceMappingURL=Multipart.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Multipart.test.mjs","names":[],"sources":["../../src/streaming/Multipart.test.ts"],"sourcesContent":["import { describe, it } from \"@effect/vitest\"\nimport { Effect } from \"effect\"\nimport { HttpClientRequest } from \"effect/http\"\nimport { expect } from \"vitest\"\nimport { bodyMultipart } from \"./Multipart.js\"\n\ndescribe(\"bodyMultipart\", () => {\n it.effect(\"sends the boundary the encoded parts are delimited by\", () =>\n Effect.gen(function* () {\n const form = new FormData()\n form.set(\"file\", new Blob([new Uint8Array([1, 2, 3])], { type: \"audio/ogg\" }), \"audio.ogg\")\n form.set(\"model\", \"whisper-1\")\n\n const request = HttpClientRequest.post(\"https://example.test/upload\").pipe(\n yield* bodyMultipart(form),\n )\n const contentType = request.headers[\"content-type\"] ?? \"\"\n const boundary = /boundary=(.+)$/.exec(contentType)?.[1]\n\n expect(boundary).toBeDefined()\n const body =\n request.body._tag === \"Uint8Array\" ? new TextDecoder().decode(request.body.body) : \"\"\n expect(body.startsWith(`--${boundary}\\r\\n`)).toBe(true)\n }),\n )\n})\n"],"mappings":";;;;;;;AAMA,SAAS,uBAAuB;CAC9B,GAAG,OAAO,+DACR,OAAO,IAAI,aAAa;EACtB,MAAM,OAAO,IAAI,SAAS;EAC1B,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,WAAW;GAAC;GAAG;GAAG;EAAC,CAAC,CAAC,GAAG,EAAE,MAAM,YAAY,CAAC,GAAG,WAAW;EAC1F,KAAK,IAAI,SAAS,WAAW;EAE7B,MAAM,UAAU,kBAAkB,KAAK,6BAA6B,CAAC,CAAC,KACpE,OAAO,cAAc,IAAI,CAC3B;EACA,MAAM,cAAc,QAAQ,QAAQ,mBAAmB;EACvD,MAAM,WAAW,iBAAiB,KAAK,WAAW,CAAC,GAAG;EAEtD,aAAO,QAAQ,CAAC,CAAC,YAAY;EAC7B,MAAM,OACJ,QAAQ,KAAK,SAAS,eAAe,IAAI,YAAY,CAAC,CAAC,OAAO,QAAQ,KAAK,IAAI,IAAI;EACrF,aAAO,KAAK,WAAW,KAAK,SAAS,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;CACxD,CAAC,CACH;AACF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { drainBurst, onQuiet, settleBurst } from "./Settle.mjs";
2
2
  import { m as describe } from "../dist-DzeSyeYF.mjs";
3
3
  import { n as globalExpect } from "../index.C4tKZ0yW-LuFnBtmu.mjs";
4
- import { t as it } from "../dist-C8RmtoR8.mjs";
4
+ import { t as it } from "../dist-B5K-y4Be.mjs";
5
5
  import { Effect, Fiber, Option, Queue, Ref, Stream } from "effect";
6
6
  import { TestClock } from "effect/testing";
7
7
  //#region src/streaming/Settle.test.ts
@@ -2,7 +2,7 @@ import { describe } from "../domain/AiError.mjs";
2
2
  import { open, toAiError } from "./WebSocketSession.mjs";
3
3
  import { m as describe$1 } from "../dist-DzeSyeYF.mjs";
4
4
  import { n as globalExpect } from "../index.C4tKZ0yW-LuFnBtmu.mjs";
5
- import { t as it } from "../dist-C8RmtoR8.mjs";
5
+ import { t as it } from "../dist-B5K-y4Be.mjs";
6
6
  import { make } from "../testing/FakeWebSocket.mjs";
7
7
  import { Effect, Exit, Pull, Queue, Schema } from "effect";
8
8
  import * as Socket from "effect/socket/Socket";
@@ -28,140 +28,25 @@ type Call = Data.TaggedEnum<{
28
28
  readonly conversation: ConversationRef;
29
29
  };
30
30
  }>;
31
- declare const Call: {
32
- readonly $is: <Tag extends "Edit" | "Post" | "React" | "TypingStart" | "TypingStop">(tag: Tag) => (u: unknown) => u is Extract<{
33
- readonly _tag: "Edit";
34
- readonly message: MessageRef;
35
- readonly next: Outbound;
36
- }, {
37
- readonly _tag: Tag;
38
- }> | Extract<{
39
- readonly _tag: "Post";
40
- readonly conversation: ConversationRef;
41
- readonly message: Outbound;
42
- }, {
43
- readonly _tag: Tag;
44
- }> | Extract<{
45
- readonly _tag: "React";
46
- readonly message: MessageRef;
47
- readonly emoji: string;
48
- }, {
49
- readonly _tag: Tag;
50
- }> | Extract<{
51
- readonly _tag: "TypingStart";
52
- readonly conversation: ConversationRef;
53
- }, {
54
- readonly _tag: Tag;
55
- }> | Extract<{
56
- readonly _tag: "TypingStop";
57
- readonly conversation: ConversationRef;
58
- }, {
59
- readonly _tag: Tag;
60
- }>;
61
- readonly $match: {
62
- <Cases extends { readonly [Tag in "Edit" | "Post" | "React" | "TypingStart" | "TypingStop"]: (args: Extract<{
63
- readonly _tag: "Edit";
64
- readonly message: MessageRef;
65
- readonly next: Outbound;
66
- } | {
67
- readonly _tag: "Post";
68
- readonly conversation: ConversationRef;
69
- readonly message: Outbound;
70
- } | {
71
- readonly _tag: "React";
72
- readonly message: MessageRef;
73
- readonly emoji: string;
74
- } | {
75
- readonly _tag: "TypingStart";
76
- readonly conversation: ConversationRef;
77
- } | {
78
- readonly _tag: "TypingStop";
79
- readonly conversation: ConversationRef;
80
- }, {
81
- readonly _tag: Tag;
82
- }>) => any; }>(cases: Cases): (value: {
83
- readonly _tag: "Edit";
84
- readonly message: MessageRef;
85
- readonly next: Outbound;
86
- } | {
87
- readonly _tag: "Post";
88
- readonly conversation: ConversationRef;
89
- readonly message: Outbound;
90
- } | {
91
- readonly _tag: "React";
92
- readonly message: MessageRef;
93
- readonly emoji: string;
94
- } | {
95
- readonly _tag: "TypingStart";
96
- readonly conversation: ConversationRef;
97
- } | {
98
- readonly _tag: "TypingStop";
99
- readonly conversation: ConversationRef;
100
- }) => import("effect/Unify").Unify<ReturnType<Cases["Edit" | "Post" | "React" | "TypingStart" | "TypingStop"]>>;
101
- <Cases extends { readonly [Tag in "Edit" | "Post" | "React" | "TypingStart" | "TypingStop"]: (args: Extract<{
102
- readonly _tag: "Edit";
103
- readonly message: MessageRef;
104
- readonly next: Outbound;
105
- } | {
106
- readonly _tag: "Post";
107
- readonly conversation: ConversationRef;
108
- readonly message: Outbound;
109
- } | {
110
- readonly _tag: "React";
111
- readonly message: MessageRef;
112
- readonly emoji: string;
113
- } | {
114
- readonly _tag: "TypingStart";
115
- readonly conversation: ConversationRef;
116
- } | {
117
- readonly _tag: "TypingStop";
118
- readonly conversation: ConversationRef;
119
- }, {
120
- readonly _tag: Tag;
121
- }>) => any; }>(value: {
122
- readonly _tag: "Edit";
123
- readonly message: MessageRef;
124
- readonly next: Outbound;
125
- } | {
126
- readonly _tag: "Post";
127
- readonly conversation: ConversationRef;
128
- readonly message: Outbound;
129
- } | {
130
- readonly _tag: "React";
131
- readonly message: MessageRef;
132
- readonly emoji: string;
133
- } | {
134
- readonly _tag: "TypingStart";
135
- readonly conversation: ConversationRef;
136
- } | {
137
- readonly _tag: "TypingStop";
138
- readonly conversation: ConversationRef;
139
- }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Edit" | "Post" | "React" | "TypingStart" | "TypingStop"]>>;
140
- };
141
- readonly Edit: Data.TaggedEnum.ConstructorFrom<{
142
- readonly _tag: "Edit";
143
- readonly message: MessageRef;
144
- readonly next: Outbound;
145
- }, "_tag">;
146
- readonly Post: Data.TaggedEnum.ConstructorFrom<{
147
- readonly _tag: "Post";
148
- readonly conversation: ConversationRef;
149
- readonly message: Outbound;
150
- }, "_tag">;
151
- readonly React: Data.TaggedEnum.ConstructorFrom<{
152
- readonly _tag: "React";
153
- readonly message: MessageRef;
154
- readonly emoji: string;
155
- }, "_tag">;
156
- readonly TypingStart: Data.TaggedEnum.ConstructorFrom<{
157
- readonly _tag: "TypingStart";
158
- readonly conversation: ConversationRef;
159
- }, "_tag">;
160
- readonly TypingStop: Data.TaggedEnum.ConstructorFrom<{
161
- readonly _tag: "TypingStop";
162
- readonly conversation: ConversationRef;
163
- }, "_tag">;
164
- };
31
+ declare const Call: Data.TaggedEnum.Constructor<{
32
+ readonly _tag: "Edit";
33
+ readonly message: MessageRef;
34
+ readonly next: Outbound;
35
+ } | {
36
+ readonly _tag: "Post";
37
+ readonly conversation: ConversationRef;
38
+ readonly message: Outbound;
39
+ } | {
40
+ readonly _tag: "React";
41
+ readonly message: MessageRef;
42
+ readonly emoji: string;
43
+ } | {
44
+ readonly _tag: "TypingStart";
45
+ readonly conversation: ConversationRef;
46
+ } | {
47
+ readonly _tag: "TypingStop";
48
+ readonly conversation: ConversationRef;
49
+ }>;
165
50
  type MockMessengerRecorder = {
166
51
  readonly calls: ReadonlyArray<Call>;
167
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MockMessenger.d.mts","names":[],"sources":["../../src/testing/MockMessenger.ts"],"mappings":";;;;;;;;;;KA4BY,OAAO,KAAK;EACtB;aAAiB,cAAc;aAA0B,SAAS;;EAClE;aAAiB,SAAS;aAAqB,MAAM;;EACrD;aAAkB,SAAS;aAAqB;;EAChD;aAAwB,cAAc;;EACtC;aAAuB,cAAc;;;cAG1B;;;aANe,SAAA;aAA2B,MAAA;;;;;aADtB,cAAA;aAAmC,SAAA;;;;;aAEvC,SAAA;aAA4B;;;;;aACjB,cAAA;;;;;aACD,cAAA;;;;;;;eAHX,SAAA;eAA2B,MAAA;;;eADtB,cAAA;eAAmC,SAAA;;;eAEvC,SAAA;eAA4B;;;eACjB,cAAA;;;eACD,cAAA;;;;;;;;;;;;;;;;;;;;;;;;eAHX,SAAA;eAA2B,MAAA;;;eADtB,cAAA;eAAmC,SAAA;;;eAEvC,SAAA;eAA4B;;;eACjB,cAAA;;;eACD,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;aAHX,SAAA;aAA2B,MAAA;;;;aADtB,cAAA;aAAmC,SAAA;;;;aAEvC,SAAA;aAA4B;;;;aACjB,cAAA;;;;aACD,cAAA;;;KAK3B;WACD,OAAO,cAAc;;KAOpB;;WAED,SAAS,OAAO,OAAO,cAAc;WACrC,SAAS;;;;;WAKT,WAAW,cAAc;;WAEzB,gBAAgB;;;cAoFd,QAAK,SAAY;;;;;cAMjB,OAAI,SAAY"}
1
+ {"version":3,"file":"MockMessenger.d.mts","names":[],"sources":["../../src/testing/MockMessenger.ts"],"mappings":";;;;;;;;;;KA4BY,OAAO,KAAK;EACtB;aAAiB,cAAc;aAA0B,SAAS;;EAClE;aAAiB,SAAS;aAAqB,MAAM;;EACrD;aAAkB,SAAS;aAAqB;;EAChD;aAAwB,cAAc;;EACtC;aAAuB,cAAc;;;cAG1B,MAAI,KAAA,WAAA;;WANW,SAAA;WAA2B,MAAA;;;WADtB,cAAA;WAAmC,SAAA;;;WAEvC,SAAA;WAA4B;;;WACjB,cAAA;;;WACD,cAAA;;KAK3B;WACD,OAAO,cAAc;;KAOpB;;WAED,SAAS,OAAO,OAAO,cAAc;WACrC,SAAS;;;;;WAKT,WAAW,cAAc;;WAEzB,gBAAgB;;;cAoFd,QAAK,SAAY;;;;;cAMjB,OAAI,SAAY"}
@@ -1,4 +1,4 @@
1
- import { o as HistoryItem } from "../Items-C7MyrYPX.mjs";
1
+ import { o as HistoryItem } from "../Items-Bvx8s9QH.mjs";
2
2
  import { Turn } from "../domain/Turn.mjs";
3
3
  import { LanguageModel, LanguageModelService } from "../language-model/LanguageModel.mjs";
4
4
  import { Duration, Effect, Layer } from "effect";