@effect-uai/core 0.5.1 → 0.6.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 (137) hide show
  1. package/README.md +1 -1
  2. package/dist/{Items-BH8xUkoR.d.mts → Items-pXR5BAgW.d.mts} +12 -12
  3. package/dist/Items-pXR5BAgW.d.mts.map +1 -0
  4. package/dist/SandboxError-BvKypkJm.d.mts +158 -0
  5. package/dist/SandboxError-BvKypkJm.d.mts.map +1 -0
  6. package/dist/{Tool-87ViKCCO.d.mts → Tool-DP-AwKOf.d.mts} +11 -11
  7. package/dist/{Tool-87ViKCCO.d.mts.map → Tool-DP-AwKOf.d.mts.map} +1 -1
  8. package/dist/domain/Items.d.mts +2 -2
  9. package/dist/domain/Items.mjs +15 -15
  10. package/dist/domain/Items.mjs.map +1 -1
  11. package/dist/domain/Turn.d.mts +388 -2
  12. package/dist/domain/Turn.d.mts.map +1 -0
  13. package/dist/domain/Turn.mjs +13 -13
  14. package/dist/domain/Turn.mjs.map +1 -1
  15. package/dist/index.d.mts +12 -6
  16. package/dist/index.mjs +9 -3
  17. package/dist/language-model/LanguageModel.d.mts +29 -27
  18. package/dist/language-model/LanguageModel.d.mts.map +1 -1
  19. package/dist/language-model/LanguageModel.mjs +16 -25
  20. package/dist/language-model/LanguageModel.mjs.map +1 -1
  21. package/dist/language-model/LanguageModel.test.mjs +10 -81
  22. package/dist/language-model/LanguageModel.test.mjs.map +1 -1
  23. package/dist/loop/Loop.d.mts +37 -90
  24. package/dist/loop/Loop.d.mts.map +1 -1
  25. package/dist/loop/Loop.mjs +39 -93
  26. package/dist/loop/Loop.mjs.map +1 -1
  27. package/dist/loop/Loop.test.mjs +46 -54
  28. package/dist/loop/Loop.test.mjs.map +1 -1
  29. package/dist/retry/Retry.d.mts +64 -0
  30. package/dist/retry/Retry.d.mts.map +1 -0
  31. package/dist/retry/Retry.mjs +69 -0
  32. package/dist/retry/Retry.mjs.map +1 -0
  33. package/dist/retry/Retry.test.mjs +142 -0
  34. package/dist/retry/Retry.test.mjs.map +1 -0
  35. package/dist/sandbox/Memory.d.mts +53 -0
  36. package/dist/sandbox/Memory.d.mts.map +1 -0
  37. package/dist/sandbox/Memory.mjs +68 -0
  38. package/dist/sandbox/Memory.mjs.map +1 -0
  39. package/dist/sandbox/Sandbox.d.mts +717 -0
  40. package/dist/sandbox/Sandbox.d.mts.map +1 -0
  41. package/dist/sandbox/Sandbox.mjs +192 -0
  42. package/dist/sandbox/Sandbox.mjs.map +1 -0
  43. package/dist/sandbox/SandboxError.d.mts +2 -0
  44. package/dist/sandbox/SandboxError.mjs +89 -0
  45. package/dist/sandbox/SandboxError.mjs.map +1 -0
  46. package/dist/sandbox/SandboxImage.d.mts +28 -0
  47. package/dist/sandbox/SandboxImage.d.mts.map +1 -0
  48. package/dist/sandbox/SandboxImage.mjs +32 -0
  49. package/dist/sandbox/SandboxImage.mjs.map +1 -0
  50. package/dist/sandbox/SandboxNetwork.d.mts +34 -0
  51. package/dist/sandbox/SandboxNetwork.d.mts.map +1 -0
  52. package/dist/sandbox/SandboxNetwork.mjs +36 -0
  53. package/dist/sandbox/SandboxNetwork.mjs.map +1 -0
  54. package/dist/speech-synthesizer/SpeechSynthesizer.d.mts +98 -2
  55. package/dist/speech-synthesizer/SpeechSynthesizer.d.mts.map +1 -1
  56. package/dist/speech-synthesizer/SpeechSynthesizer.mjs +32 -2
  57. package/dist/speech-synthesizer/SpeechSynthesizer.mjs.map +1 -1
  58. package/dist/speech-synthesizer/SpeechSynthesizer.test.mjs +56 -2
  59. package/dist/speech-synthesizer/SpeechSynthesizer.test.mjs.map +1 -1
  60. package/dist/testing/MockProvider.d.mts +3 -3
  61. package/dist/testing/MockProvider.d.mts.map +1 -1
  62. package/dist/testing/MockProvider.mjs +14 -8
  63. package/dist/testing/MockProvider.mjs.map +1 -1
  64. package/dist/testing/MockSandbox.d.mts +604 -0
  65. package/dist/testing/MockSandbox.d.mts.map +1 -0
  66. package/dist/testing/MockSandbox.mjs +160 -0
  67. package/dist/testing/MockSandbox.mjs.map +1 -0
  68. package/dist/testing/MockSpeechSynthesizer.d.mts +26 -11
  69. package/dist/testing/MockSpeechSynthesizer.d.mts.map +1 -1
  70. package/dist/testing/MockSpeechSynthesizer.mjs +75 -51
  71. package/dist/testing/MockSpeechSynthesizer.mjs.map +1 -1
  72. package/dist/tool/{Resolvers.d.mts → Approval.d.mts} +27 -27
  73. package/dist/tool/Approval.d.mts.map +1 -0
  74. package/dist/tool/{Resolvers.mjs → Approval.mjs} +18 -18
  75. package/dist/tool/Approval.mjs.map +1 -0
  76. package/dist/tool/Approval.test.d.mts +1 -0
  77. package/dist/tool/{Resolvers.test.mjs → Approval.test.mjs} +40 -40
  78. package/dist/tool/Approval.test.mjs.map +1 -0
  79. package/dist/tool/HistoryCheck.d.mts +6 -6
  80. package/dist/tool/HistoryCheck.d.mts.map +1 -1
  81. package/dist/tool/HistoryCheck.mjs +5 -5
  82. package/dist/tool/HistoryCheck.mjs.map +1 -1
  83. package/dist/tool/Tool.d.mts +2 -2
  84. package/dist/tool/Tool.mjs +4 -4
  85. package/dist/tool/Tool.mjs.map +1 -1
  86. package/dist/tool/ToolEvent.d.mts +19 -19
  87. package/dist/tool/ToolEvent.d.mts.map +1 -1
  88. package/dist/tool/ToolEvent.mjs +8 -8
  89. package/dist/tool/ToolEvent.mjs.map +1 -1
  90. package/dist/tool/{Outcome.d.mts → ToolResult.d.mts} +29 -29
  91. package/dist/tool/ToolResult.d.mts.map +1 -0
  92. package/dist/tool/ToolResult.mjs +61 -0
  93. package/dist/tool/ToolResult.mjs.map +1 -0
  94. package/dist/tool/Toolkit.d.mts +58 -26
  95. package/dist/tool/Toolkit.d.mts.map +1 -1
  96. package/dist/tool/Toolkit.mjs +62 -34
  97. package/dist/tool/Toolkit.mjs.map +1 -1
  98. package/dist/tool/Toolkit.test.mjs +13 -13
  99. package/dist/tool/Toolkit.test.mjs.map +1 -1
  100. package/package.json +35 -7
  101. package/src/domain/Items.ts +9 -9
  102. package/src/domain/Turn.ts +16 -16
  103. package/src/index.ts +8 -2
  104. package/src/language-model/LanguageModel.test.ts +21 -102
  105. package/src/language-model/LanguageModel.ts +36 -59
  106. package/src/loop/Loop.test.ts +93 -91
  107. package/src/loop/Loop.ts +72 -170
  108. package/src/retry/Retry.test.ts +163 -0
  109. package/src/retry/Retry.ts +84 -0
  110. package/src/sandbox/Memory.ts +128 -0
  111. package/src/sandbox/Sandbox.ts +639 -0
  112. package/src/sandbox/SandboxError.ts +140 -0
  113. package/src/sandbox/SandboxImage.ts +26 -0
  114. package/src/sandbox/SandboxNetwork.ts +34 -0
  115. package/src/speech-synthesizer/SpeechSynthesizer.test.ts +89 -0
  116. package/src/speech-synthesizer/SpeechSynthesizer.ts +124 -0
  117. package/src/testing/MockProvider.ts +31 -25
  118. package/src/testing/MockSandbox.ts +342 -0
  119. package/src/testing/MockSpeechSynthesizer.ts +137 -77
  120. package/src/tool/{Resolvers.test.ts → Approval.test.ts} +45 -54
  121. package/src/tool/{Resolvers.ts → Approval.ts} +25 -25
  122. package/src/tool/HistoryCheck.ts +10 -13
  123. package/src/tool/Tool.ts +13 -15
  124. package/src/tool/ToolEvent.ts +7 -7
  125. package/src/tool/{Outcome.ts → ToolResult.ts} +20 -20
  126. package/src/tool/Toolkit.test.ts +13 -13
  127. package/src/tool/Toolkit.ts +97 -73
  128. package/dist/Items-BH8xUkoR.d.mts.map +0 -1
  129. package/dist/Turn-0CwCAyVe.d.mts +0 -388
  130. package/dist/Turn-0CwCAyVe.d.mts.map +0 -1
  131. package/dist/tool/Outcome.d.mts.map +0 -1
  132. package/dist/tool/Outcome.mjs +0 -61
  133. package/dist/tool/Outcome.mjs.map +0 -1
  134. package/dist/tool/Resolvers.d.mts.map +0 -1
  135. package/dist/tool/Resolvers.mjs.map +0 -1
  136. package/dist/tool/Resolvers.test.mjs.map +0 -1
  137. /package/dist/{tool/Resolvers.test.d.mts → retry/Retry.test.d.mts} +0 -0
@@ -0,0 +1,604 @@
1
+ import { CommonCreateRequest, CommonExecRequest, CommonSpawnRequest, ExecEvent, ExecResult, ProcessHandle, Sandbox, SandboxCustomImage, SandboxHostnameAllowlist, SandboxId, SandboxKernelSession, SandboxPauseResume, SandboxPortExposure, SandboxPty, SandboxRef, SandboxSecretInjection, SandboxService, SandboxSnapshots, SandboxVolumes, SnapshotId, VolumeId } from "../sandbox/Sandbox.mjs";
2
+ import { Data, Effect, Layer } from "effect";
3
+ import * as _$effect_Unify0 from "effect/Unify";
4
+
5
+ //#region src/testing/MockSandbox.d.ts
6
+ /**
7
+ * One entry per side-effecting method call. Tests filter via
8
+ * `Call.$is(...)` / `Call.$match`.
9
+ */
10
+ type Call = Data.TaggedEnum<{
11
+ Create: {
12
+ readonly request: CommonCreateRequest;
13
+ };
14
+ Attach: {
15
+ readonly id: SandboxId;
16
+ };
17
+ Destroy: {
18
+ readonly id: SandboxId;
19
+ };
20
+ Exec: {
21
+ readonly id: SandboxId;
22
+ readonly request: CommonExecRequest;
23
+ };
24
+ ExecStream: {
25
+ readonly id: SandboxId;
26
+ readonly request: CommonExecRequest;
27
+ };
28
+ Spawn: {
29
+ readonly id: SandboxId;
30
+ readonly request: CommonSpawnRequest;
31
+ };
32
+ FileRead: {
33
+ readonly id: SandboxId;
34
+ readonly path: string;
35
+ };
36
+ FileWrite: {
37
+ readonly id: SandboxId;
38
+ readonly path: string;
39
+ readonly contents: Uint8Array | string;
40
+ };
41
+ FileRemove: {
42
+ readonly id: SandboxId;
43
+ readonly path: string;
44
+ };
45
+ FileMkdir: {
46
+ readonly id: SandboxId;
47
+ readonly path: string;
48
+ };
49
+ FileList: {
50
+ readonly id: SandboxId;
51
+ readonly path: string;
52
+ };
53
+ FileExists: {
54
+ readonly id: SandboxId;
55
+ readonly path: string;
56
+ };
57
+ ExposePort: {
58
+ readonly id: SandboxId;
59
+ readonly port: number;
60
+ };
61
+ SnapshotCreate: {
62
+ readonly id: SandboxId;
63
+ readonly name?: string;
64
+ };
65
+ SnapshotDestroy: {
66
+ readonly id: SnapshotId;
67
+ };
68
+ VolumeCreate: {
69
+ readonly name: string;
70
+ readonly quotaBytes?: number;
71
+ };
72
+ VolumeDestroy: {
73
+ readonly id: VolumeId;
74
+ };
75
+ }>;
76
+ declare const Call: {
77
+ readonly Create: Data.TaggedEnum.ConstructorFrom<{
78
+ readonly _tag: "Create";
79
+ readonly request: CommonCreateRequest;
80
+ }, "_tag">;
81
+ readonly Attach: Data.TaggedEnum.ConstructorFrom<{
82
+ readonly _tag: "Attach";
83
+ readonly id: SandboxId;
84
+ }, "_tag">;
85
+ readonly Destroy: Data.TaggedEnum.ConstructorFrom<{
86
+ readonly _tag: "Destroy";
87
+ readonly id: SandboxId;
88
+ }, "_tag">;
89
+ readonly Exec: Data.TaggedEnum.ConstructorFrom<{
90
+ readonly _tag: "Exec";
91
+ readonly id: SandboxId;
92
+ readonly request: CommonExecRequest;
93
+ }, "_tag">;
94
+ readonly ExecStream: Data.TaggedEnum.ConstructorFrom<{
95
+ readonly _tag: "ExecStream";
96
+ readonly id: SandboxId;
97
+ readonly request: CommonExecRequest;
98
+ }, "_tag">;
99
+ readonly Spawn: Data.TaggedEnum.ConstructorFrom<{
100
+ readonly _tag: "Spawn";
101
+ readonly id: SandboxId;
102
+ readonly request: CommonSpawnRequest;
103
+ }, "_tag">;
104
+ readonly FileRead: Data.TaggedEnum.ConstructorFrom<{
105
+ readonly _tag: "FileRead";
106
+ readonly id: SandboxId;
107
+ readonly path: string;
108
+ }, "_tag">;
109
+ readonly FileWrite: Data.TaggedEnum.ConstructorFrom<{
110
+ readonly _tag: "FileWrite";
111
+ readonly id: SandboxId;
112
+ readonly path: string;
113
+ readonly contents: Uint8Array | string;
114
+ }, "_tag">;
115
+ readonly FileRemove: Data.TaggedEnum.ConstructorFrom<{
116
+ readonly _tag: "FileRemove";
117
+ readonly id: SandboxId;
118
+ readonly path: string;
119
+ }, "_tag">;
120
+ readonly FileMkdir: Data.TaggedEnum.ConstructorFrom<{
121
+ readonly _tag: "FileMkdir";
122
+ readonly id: SandboxId;
123
+ readonly path: string;
124
+ }, "_tag">;
125
+ readonly FileList: Data.TaggedEnum.ConstructorFrom<{
126
+ readonly _tag: "FileList";
127
+ readonly id: SandboxId;
128
+ readonly path: string;
129
+ }, "_tag">;
130
+ readonly FileExists: Data.TaggedEnum.ConstructorFrom<{
131
+ readonly _tag: "FileExists";
132
+ readonly id: SandboxId;
133
+ readonly path: string;
134
+ }, "_tag">;
135
+ readonly ExposePort: Data.TaggedEnum.ConstructorFrom<{
136
+ readonly _tag: "ExposePort";
137
+ readonly id: SandboxId;
138
+ readonly port: number;
139
+ }, "_tag">;
140
+ readonly SnapshotCreate: Data.TaggedEnum.ConstructorFrom<{
141
+ readonly _tag: "SnapshotCreate";
142
+ readonly id: SandboxId;
143
+ readonly name?: string;
144
+ }, "_tag">;
145
+ readonly SnapshotDestroy: Data.TaggedEnum.ConstructorFrom<{
146
+ readonly _tag: "SnapshotDestroy";
147
+ readonly id: SnapshotId;
148
+ }, "_tag">;
149
+ readonly VolumeCreate: Data.TaggedEnum.ConstructorFrom<{
150
+ readonly _tag: "VolumeCreate";
151
+ readonly name: string;
152
+ readonly quotaBytes?: number;
153
+ }, "_tag">;
154
+ readonly VolumeDestroy: Data.TaggedEnum.ConstructorFrom<{
155
+ readonly _tag: "VolumeDestroy";
156
+ readonly id: VolumeId;
157
+ }, "_tag">;
158
+ readonly $is: <Tag extends "Create" | "Attach" | "Destroy" | "Exec" | "ExecStream" | "Spawn" | "FileRead" | "FileWrite" | "FileRemove" | "FileMkdir" | "FileList" | "FileExists" | "ExposePort" | "SnapshotCreate" | "SnapshotDestroy" | "VolumeCreate" | "VolumeDestroy">(tag: Tag) => (u: unknown) => u is Extract<{
159
+ readonly _tag: "Create";
160
+ readonly request: CommonCreateRequest;
161
+ }, {
162
+ readonly _tag: Tag;
163
+ }> | Extract<{
164
+ readonly _tag: "Attach";
165
+ readonly id: SandboxId;
166
+ }, {
167
+ readonly _tag: Tag;
168
+ }> | Extract<{
169
+ readonly _tag: "Destroy";
170
+ readonly id: SandboxId;
171
+ }, {
172
+ readonly _tag: Tag;
173
+ }> | Extract<{
174
+ readonly _tag: "Exec";
175
+ readonly id: SandboxId;
176
+ readonly request: CommonExecRequest;
177
+ }, {
178
+ readonly _tag: Tag;
179
+ }> | Extract<{
180
+ readonly _tag: "ExecStream";
181
+ readonly id: SandboxId;
182
+ readonly request: CommonExecRequest;
183
+ }, {
184
+ readonly _tag: Tag;
185
+ }> | Extract<{
186
+ readonly _tag: "Spawn";
187
+ readonly id: SandboxId;
188
+ readonly request: CommonSpawnRequest;
189
+ }, {
190
+ readonly _tag: Tag;
191
+ }> | Extract<{
192
+ readonly _tag: "FileRead";
193
+ readonly id: SandboxId;
194
+ readonly path: string;
195
+ }, {
196
+ readonly _tag: Tag;
197
+ }> | Extract<{
198
+ readonly _tag: "FileWrite";
199
+ readonly id: SandboxId;
200
+ readonly path: string;
201
+ readonly contents: Uint8Array | string;
202
+ }, {
203
+ readonly _tag: Tag;
204
+ }> | Extract<{
205
+ readonly _tag: "FileRemove";
206
+ readonly id: SandboxId;
207
+ readonly path: string;
208
+ }, {
209
+ readonly _tag: Tag;
210
+ }> | Extract<{
211
+ readonly _tag: "FileMkdir";
212
+ readonly id: SandboxId;
213
+ readonly path: string;
214
+ }, {
215
+ readonly _tag: Tag;
216
+ }> | Extract<{
217
+ readonly _tag: "FileList";
218
+ readonly id: SandboxId;
219
+ readonly path: string;
220
+ }, {
221
+ readonly _tag: Tag;
222
+ }> | Extract<{
223
+ readonly _tag: "FileExists";
224
+ readonly id: SandboxId;
225
+ readonly path: string;
226
+ }, {
227
+ readonly _tag: Tag;
228
+ }> | Extract<{
229
+ readonly _tag: "ExposePort";
230
+ readonly id: SandboxId;
231
+ readonly port: number;
232
+ }, {
233
+ readonly _tag: Tag;
234
+ }> | Extract<{
235
+ readonly _tag: "SnapshotCreate";
236
+ readonly id: SandboxId;
237
+ readonly name?: string;
238
+ }, {
239
+ readonly _tag: Tag;
240
+ }> | Extract<{
241
+ readonly _tag: "SnapshotDestroy";
242
+ readonly id: SnapshotId;
243
+ }, {
244
+ readonly _tag: Tag;
245
+ }> | Extract<{
246
+ readonly _tag: "VolumeCreate";
247
+ readonly name: string;
248
+ readonly quotaBytes?: number;
249
+ }, {
250
+ readonly _tag: Tag;
251
+ }> | Extract<{
252
+ readonly _tag: "VolumeDestroy";
253
+ readonly id: VolumeId;
254
+ }, {
255
+ readonly _tag: Tag;
256
+ }>;
257
+ readonly $match: {
258
+ <Cases extends {
259
+ readonly Create: (args: {
260
+ readonly _tag: "Create";
261
+ readonly request: CommonCreateRequest;
262
+ }) => any;
263
+ readonly Attach: (args: {
264
+ readonly _tag: "Attach";
265
+ readonly id: SandboxId;
266
+ }) => any;
267
+ readonly Destroy: (args: {
268
+ readonly _tag: "Destroy";
269
+ readonly id: SandboxId;
270
+ }) => any;
271
+ readonly Exec: (args: {
272
+ readonly _tag: "Exec";
273
+ readonly id: SandboxId;
274
+ readonly request: CommonExecRequest;
275
+ }) => any;
276
+ readonly ExecStream: (args: {
277
+ readonly _tag: "ExecStream";
278
+ readonly id: SandboxId;
279
+ readonly request: CommonExecRequest;
280
+ }) => any;
281
+ readonly Spawn: (args: {
282
+ readonly _tag: "Spawn";
283
+ readonly id: SandboxId;
284
+ readonly request: CommonSpawnRequest;
285
+ }) => any;
286
+ readonly FileRead: (args: {
287
+ readonly _tag: "FileRead";
288
+ readonly id: SandboxId;
289
+ readonly path: string;
290
+ }) => any;
291
+ readonly FileWrite: (args: {
292
+ readonly _tag: "FileWrite";
293
+ readonly id: SandboxId;
294
+ readonly path: string;
295
+ readonly contents: Uint8Array | string;
296
+ }) => any;
297
+ readonly FileRemove: (args: {
298
+ readonly _tag: "FileRemove";
299
+ readonly id: SandboxId;
300
+ readonly path: string;
301
+ }) => any;
302
+ readonly FileMkdir: (args: {
303
+ readonly _tag: "FileMkdir";
304
+ readonly id: SandboxId;
305
+ readonly path: string;
306
+ }) => any;
307
+ readonly FileList: (args: {
308
+ readonly _tag: "FileList";
309
+ readonly id: SandboxId;
310
+ readonly path: string;
311
+ }) => any;
312
+ readonly FileExists: (args: {
313
+ readonly _tag: "FileExists";
314
+ readonly id: SandboxId;
315
+ readonly path: string;
316
+ }) => any;
317
+ readonly ExposePort: (args: {
318
+ readonly _tag: "ExposePort";
319
+ readonly id: SandboxId;
320
+ readonly port: number;
321
+ }) => any;
322
+ readonly SnapshotCreate: (args: {
323
+ readonly _tag: "SnapshotCreate";
324
+ readonly id: SandboxId;
325
+ readonly name?: string;
326
+ }) => any;
327
+ readonly SnapshotDestroy: (args: {
328
+ readonly _tag: "SnapshotDestroy";
329
+ readonly id: SnapshotId;
330
+ }) => any;
331
+ readonly VolumeCreate: (args: {
332
+ readonly _tag: "VolumeCreate";
333
+ readonly name: string;
334
+ readonly quotaBytes?: number;
335
+ }) => any;
336
+ readonly VolumeDestroy: (args: {
337
+ readonly _tag: "VolumeDestroy";
338
+ readonly id: VolumeId;
339
+ }) => any;
340
+ }>(cases: Cases): (value: {
341
+ readonly _tag: "Create";
342
+ readonly request: CommonCreateRequest;
343
+ } | {
344
+ readonly _tag: "Attach";
345
+ readonly id: SandboxId;
346
+ } | {
347
+ readonly _tag: "Destroy";
348
+ readonly id: SandboxId;
349
+ } | {
350
+ readonly _tag: "Exec";
351
+ readonly id: SandboxId;
352
+ readonly request: CommonExecRequest;
353
+ } | {
354
+ readonly _tag: "ExecStream";
355
+ readonly id: SandboxId;
356
+ readonly request: CommonExecRequest;
357
+ } | {
358
+ readonly _tag: "Spawn";
359
+ readonly id: SandboxId;
360
+ readonly request: CommonSpawnRequest;
361
+ } | {
362
+ readonly _tag: "FileRead";
363
+ readonly id: SandboxId;
364
+ readonly path: string;
365
+ } | {
366
+ readonly _tag: "FileWrite";
367
+ readonly id: SandboxId;
368
+ readonly path: string;
369
+ readonly contents: Uint8Array | string;
370
+ } | {
371
+ readonly _tag: "FileRemove";
372
+ readonly id: SandboxId;
373
+ readonly path: string;
374
+ } | {
375
+ readonly _tag: "FileMkdir";
376
+ readonly id: SandboxId;
377
+ readonly path: string;
378
+ } | {
379
+ readonly _tag: "FileList";
380
+ readonly id: SandboxId;
381
+ readonly path: string;
382
+ } | {
383
+ readonly _tag: "FileExists";
384
+ readonly id: SandboxId;
385
+ readonly path: string;
386
+ } | {
387
+ readonly _tag: "ExposePort";
388
+ readonly id: SandboxId;
389
+ readonly port: number;
390
+ } | {
391
+ readonly _tag: "SnapshotCreate";
392
+ readonly id: SandboxId;
393
+ readonly name?: string;
394
+ } | {
395
+ readonly _tag: "SnapshotDestroy";
396
+ readonly id: SnapshotId;
397
+ } | {
398
+ readonly _tag: "VolumeCreate";
399
+ readonly name: string;
400
+ readonly quotaBytes?: number;
401
+ } | {
402
+ readonly _tag: "VolumeDestroy";
403
+ readonly id: VolumeId;
404
+ }) => _$effect_Unify0.Unify<ReturnType<Cases["Create" | "Attach" | "Destroy" | "Exec" | "ExecStream" | "Spawn" | "FileRead" | "FileWrite" | "FileRemove" | "FileMkdir" | "FileList" | "FileExists" | "ExposePort" | "SnapshotCreate" | "SnapshotDestroy" | "VolumeCreate" | "VolumeDestroy"]>>;
405
+ <Cases extends {
406
+ readonly Create: (args: {
407
+ readonly _tag: "Create";
408
+ readonly request: CommonCreateRequest;
409
+ }) => any;
410
+ readonly Attach: (args: {
411
+ readonly _tag: "Attach";
412
+ readonly id: SandboxId;
413
+ }) => any;
414
+ readonly Destroy: (args: {
415
+ readonly _tag: "Destroy";
416
+ readonly id: SandboxId;
417
+ }) => any;
418
+ readonly Exec: (args: {
419
+ readonly _tag: "Exec";
420
+ readonly id: SandboxId;
421
+ readonly request: CommonExecRequest;
422
+ }) => any;
423
+ readonly ExecStream: (args: {
424
+ readonly _tag: "ExecStream";
425
+ readonly id: SandboxId;
426
+ readonly request: CommonExecRequest;
427
+ }) => any;
428
+ readonly Spawn: (args: {
429
+ readonly _tag: "Spawn";
430
+ readonly id: SandboxId;
431
+ readonly request: CommonSpawnRequest;
432
+ }) => any;
433
+ readonly FileRead: (args: {
434
+ readonly _tag: "FileRead";
435
+ readonly id: SandboxId;
436
+ readonly path: string;
437
+ }) => any;
438
+ readonly FileWrite: (args: {
439
+ readonly _tag: "FileWrite";
440
+ readonly id: SandboxId;
441
+ readonly path: string;
442
+ readonly contents: Uint8Array | string;
443
+ }) => any;
444
+ readonly FileRemove: (args: {
445
+ readonly _tag: "FileRemove";
446
+ readonly id: SandboxId;
447
+ readonly path: string;
448
+ }) => any;
449
+ readonly FileMkdir: (args: {
450
+ readonly _tag: "FileMkdir";
451
+ readonly id: SandboxId;
452
+ readonly path: string;
453
+ }) => any;
454
+ readonly FileList: (args: {
455
+ readonly _tag: "FileList";
456
+ readonly id: SandboxId;
457
+ readonly path: string;
458
+ }) => any;
459
+ readonly FileExists: (args: {
460
+ readonly _tag: "FileExists";
461
+ readonly id: SandboxId;
462
+ readonly path: string;
463
+ }) => any;
464
+ readonly ExposePort: (args: {
465
+ readonly _tag: "ExposePort";
466
+ readonly id: SandboxId;
467
+ readonly port: number;
468
+ }) => any;
469
+ readonly SnapshotCreate: (args: {
470
+ readonly _tag: "SnapshotCreate";
471
+ readonly id: SandboxId;
472
+ readonly name?: string;
473
+ }) => any;
474
+ readonly SnapshotDestroy: (args: {
475
+ readonly _tag: "SnapshotDestroy";
476
+ readonly id: SnapshotId;
477
+ }) => any;
478
+ readonly VolumeCreate: (args: {
479
+ readonly _tag: "VolumeCreate";
480
+ readonly name: string;
481
+ readonly quotaBytes?: number;
482
+ }) => any;
483
+ readonly VolumeDestroy: (args: {
484
+ readonly _tag: "VolumeDestroy";
485
+ readonly id: VolumeId;
486
+ }) => any;
487
+ }>(value: {
488
+ readonly _tag: "Create";
489
+ readonly request: CommonCreateRequest;
490
+ } | {
491
+ readonly _tag: "Attach";
492
+ readonly id: SandboxId;
493
+ } | {
494
+ readonly _tag: "Destroy";
495
+ readonly id: SandboxId;
496
+ } | {
497
+ readonly _tag: "Exec";
498
+ readonly id: SandboxId;
499
+ readonly request: CommonExecRequest;
500
+ } | {
501
+ readonly _tag: "ExecStream";
502
+ readonly id: SandboxId;
503
+ readonly request: CommonExecRequest;
504
+ } | {
505
+ readonly _tag: "Spawn";
506
+ readonly id: SandboxId;
507
+ readonly request: CommonSpawnRequest;
508
+ } | {
509
+ readonly _tag: "FileRead";
510
+ readonly id: SandboxId;
511
+ readonly path: string;
512
+ } | {
513
+ readonly _tag: "FileWrite";
514
+ readonly id: SandboxId;
515
+ readonly path: string;
516
+ readonly contents: Uint8Array | string;
517
+ } | {
518
+ readonly _tag: "FileRemove";
519
+ readonly id: SandboxId;
520
+ readonly path: string;
521
+ } | {
522
+ readonly _tag: "FileMkdir";
523
+ readonly id: SandboxId;
524
+ readonly path: string;
525
+ } | {
526
+ readonly _tag: "FileList";
527
+ readonly id: SandboxId;
528
+ readonly path: string;
529
+ } | {
530
+ readonly _tag: "FileExists";
531
+ readonly id: SandboxId;
532
+ readonly path: string;
533
+ } | {
534
+ readonly _tag: "ExposePort";
535
+ readonly id: SandboxId;
536
+ readonly port: number;
537
+ } | {
538
+ readonly _tag: "SnapshotCreate";
539
+ readonly id: SandboxId;
540
+ readonly name?: string;
541
+ } | {
542
+ readonly _tag: "SnapshotDestroy";
543
+ readonly id: SnapshotId;
544
+ } | {
545
+ readonly _tag: "VolumeCreate";
546
+ readonly name: string;
547
+ readonly quotaBytes?: number;
548
+ } | {
549
+ readonly _tag: "VolumeDestroy";
550
+ readonly id: VolumeId;
551
+ }, cases: Cases): _$effect_Unify0.Unify<ReturnType<Cases["Create" | "Attach" | "Destroy" | "Exec" | "ExecStream" | "Spawn" | "FileRead" | "FileWrite" | "FileRemove" | "FileMkdir" | "FileList" | "FileExists" | "ExposePort" | "SnapshotCreate" | "SnapshotDestroy" | "VolumeCreate" | "VolumeDestroy"]>>;
552
+ };
553
+ };
554
+ type MockSandboxRecorder = {
555
+ readonly calls: ReadonlyArray<Call>;
556
+ };
557
+ /**
558
+ * What this mock should hand back per call. Each method has its own
559
+ * scripted queue and a sensible default when the queue is empty.
560
+ * The filesystem is an in-memory mutable map seeded by `files`.
561
+ */
562
+ type MockSandboxScript = {
563
+ readonly id?: string;
564
+ readonly execs?: ReadonlyArray<ExecResult>;
565
+ readonly streams?: ReadonlyArray<ReadonlyArray<ExecEvent>>;
566
+ readonly spawns?: ReadonlyArray<ProcessHandle>;
567
+ readonly files?: Readonly<Record<string, Uint8Array | string>>;
568
+ readonly sandboxes?: ReadonlyArray<SandboxRef>;
569
+ readonly snapshots?: ReadonlyArray<{
570
+ readonly id: SnapshotId;
571
+ readonly name?: string;
572
+ }>;
573
+ readonly volumes?: ReadonlyArray<{
574
+ readonly id: VolumeId;
575
+ readonly name: string;
576
+ }>;
577
+ readonly portUrl?: (port: number) => string;
578
+ };
579
+ /**
580
+ * Layer that registers a `MockSandbox` against the `Sandbox` tag, with
581
+ * every capability marker shipped — use when the code under test
582
+ * exercises any of them.
583
+ */
584
+ declare const layer: (script?: MockSandboxScript) => {
585
+ layer: Layer.Layer<Sandbox | SandboxHostnameAllowlist | SandboxSecretInjection | SandboxSnapshots | SandboxPauseResume | SandboxVolumes | SandboxKernelSession | SandboxPty | SandboxCustomImage | SandboxPortExposure, never, never>;
586
+ recorder: Effect.Effect<MockSandboxRecorder, never, never>;
587
+ };
588
+ /**
589
+ * Layer with the `Sandbox` service but no capability markers. Use to
590
+ * verify that consumers calling `Sandbox.snapshot` / `createVolume` /
591
+ * etc. fail at `Effect.provide` with a type error.
592
+ */
593
+ declare const layerWithoutCapabilities: (script?: MockSandboxScript) => {
594
+ layer: Layer.Layer<Sandbox, never, never>;
595
+ recorder: Effect.Effect<MockSandboxRecorder, never, never>;
596
+ };
597
+ /** Bare service value + recorder. Use with `Effect.provideService`. */
598
+ declare const make: (script?: MockSandboxScript) => {
599
+ service: SandboxService;
600
+ recorder: Effect.Effect<MockSandboxRecorder, never, never>;
601
+ };
602
+ //#endregion
603
+ export { Call, MockSandboxRecorder, MockSandboxScript, layer, layerWithoutCapabilities, make };
604
+ //# sourceMappingURL=MockSandbox.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockSandbox.d.mts","names":[],"sources":["../../src/testing/MockSandbox.ts"],"mappings":"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"}