agentenkit 0.4.0 → 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 (126) hide show
  1. package/README.md +48 -1
  2. package/dist/adapters/brave.d.ts +21 -0
  3. package/dist/adapters/brave.d.ts.map +1 -0
  4. package/dist/adapters/brave.js +52 -0
  5. package/dist/adapters/brave.js.map +1 -0
  6. package/dist/adapters/computesdk.d.ts +71 -0
  7. package/dist/adapters/computesdk.d.ts.map +1 -0
  8. package/dist/adapters/computesdk.js +163 -0
  9. package/dist/adapters/computesdk.js.map +1 -0
  10. package/dist/adapters/docker.d.ts +35 -0
  11. package/dist/adapters/docker.d.ts.map +1 -0
  12. package/dist/adapters/docker.js +246 -0
  13. package/dist/adapters/docker.js.map +1 -0
  14. package/dist/adapters/e2b.d.ts +44 -0
  15. package/dist/adapters/e2b.d.ts.map +1 -0
  16. package/dist/adapters/e2b.js +349 -0
  17. package/dist/adapters/e2b.js.map +1 -0
  18. package/dist/adapters/jina.d.ts +34 -0
  19. package/dist/adapters/jina.d.ts.map +1 -0
  20. package/dist/adapters/jina.js +99 -0
  21. package/dist/adapters/jina.js.map +1 -0
  22. package/dist/adapters/local-sandbox.d.ts +32 -0
  23. package/dist/adapters/local-sandbox.d.ts.map +1 -0
  24. package/dist/adapters/local-sandbox.js +257 -0
  25. package/dist/adapters/local-sandbox.js.map +1 -0
  26. package/dist/adapters/mcp.d.ts +71 -0
  27. package/dist/adapters/mcp.d.ts.map +1 -0
  28. package/dist/adapters/mcp.js +344 -0
  29. package/dist/adapters/mcp.js.map +1 -0
  30. package/dist/adapters/memory.d.ts +81 -0
  31. package/dist/adapters/memory.d.ts.map +1 -1
  32. package/dist/adapters/memory.js +207 -0
  33. package/dist/adapters/memory.js.map +1 -1
  34. package/dist/adapters/page-reader.d.ts +39 -0
  35. package/dist/adapters/page-reader.d.ts.map +1 -0
  36. package/dist/adapters/page-reader.js +165 -0
  37. package/dist/adapters/page-reader.js.map +1 -0
  38. package/dist/adapters/sandbox-shell.d.ts +60 -0
  39. package/dist/adapters/sandbox-shell.d.ts.map +1 -0
  40. package/dist/adapters/sandbox-shell.js +129 -0
  41. package/dist/adapters/sandbox-shell.js.map +1 -0
  42. package/dist/adapters/sqlite.d.ts +37 -1
  43. package/dist/adapters/sqlite.d.ts.map +1 -1
  44. package/dist/adapters/sqlite.js +106 -7
  45. package/dist/adapters/sqlite.js.map +1 -1
  46. package/dist/adapters/web-search-shared.d.ts +11 -0
  47. package/dist/adapters/web-search-shared.d.ts.map +1 -0
  48. package/dist/adapters/web-search-shared.js +40 -0
  49. package/dist/adapters/web-search-shared.js.map +1 -0
  50. package/dist/core/builtin/definitions.d.ts +12 -0
  51. package/dist/core/builtin/definitions.d.ts.map +1 -0
  52. package/dist/core/builtin/definitions.js +149 -0
  53. package/dist/core/builtin/definitions.js.map +1 -0
  54. package/dist/core/builtin/html.d.ts +13 -0
  55. package/dist/core/builtin/html.d.ts.map +1 -0
  56. package/dist/core/builtin/html.js +96 -0
  57. package/dist/core/builtin/html.js.map +1 -0
  58. package/dist/core/builtin/index.d.ts +21 -0
  59. package/dist/core/builtin/index.d.ts.map +1 -0
  60. package/dist/core/builtin/index.js +55 -0
  61. package/dist/core/builtin/index.js.map +1 -0
  62. package/dist/core/builtin/run.d.ts +37 -0
  63. package/dist/core/builtin/run.d.ts.map +1 -0
  64. package/dist/core/builtin/run.js +56 -0
  65. package/dist/core/builtin/run.js.map +1 -0
  66. package/dist/core/builtin/sandbox-tools.d.ts +69 -0
  67. package/dist/core/builtin/sandbox-tools.d.ts.map +1 -0
  68. package/dist/core/builtin/sandbox-tools.js +389 -0
  69. package/dist/core/builtin/sandbox-tools.js.map +1 -0
  70. package/dist/core/builtin/sandbox.d.ts +52 -0
  71. package/dist/core/builtin/sandbox.d.ts.map +1 -0
  72. package/dist/core/builtin/sandbox.js +174 -0
  73. package/dist/core/builtin/sandbox.js.map +1 -0
  74. package/dist/core/builtin/web.d.ts +54 -0
  75. package/dist/core/builtin/web.d.ts.map +1 -0
  76. package/dist/core/builtin/web.js +167 -0
  77. package/dist/core/builtin/web.js.map +1 -0
  78. package/dist/core/deleteThread.d.ts.map +1 -1
  79. package/dist/core/deleteThread.js +3 -0
  80. package/dist/core/deleteThread.js.map +1 -1
  81. package/dist/core/engine.d.ts.map +1 -1
  82. package/dist/core/engine.js +29 -5
  83. package/dist/core/engine.js.map +1 -1
  84. package/dist/core/permanent.d.ts +11 -0
  85. package/dist/core/permanent.d.ts.map +1 -0
  86. package/dist/core/permanent.js +37 -0
  87. package/dist/core/permanent.js.map +1 -0
  88. package/dist/core/publish.d.ts +4 -1
  89. package/dist/core/publish.d.ts.map +1 -1
  90. package/dist/core/publish.js +4 -1
  91. package/dist/core/publish.js.map +1 -1
  92. package/dist/core/run.d.ts.map +1 -1
  93. package/dist/core/run.js +5 -4
  94. package/dist/core/run.js.map +1 -1
  95. package/dist/core/subagent.d.ts.map +1 -1
  96. package/dist/core/subagent.js +13 -3
  97. package/dist/core/subagent.js.map +1 -1
  98. package/dist/core/tools.d.ts +9 -3
  99. package/dist/core/tools.d.ts.map +1 -1
  100. package/dist/core/tools.js.map +1 -1
  101. package/dist/core/types.d.ts +25 -1
  102. package/dist/core/types.d.ts.map +1 -1
  103. package/dist/core/types.js +14 -1
  104. package/dist/core/types.js.map +1 -1
  105. package/dist/index.d.ts +16 -3
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +13 -1
  108. package/dist/index.js.map +1 -1
  109. package/dist/ports/runtime.d.ts +47 -22
  110. package/dist/ports/runtime.d.ts.map +1 -1
  111. package/dist/ports/sandbox.d.ts +159 -0
  112. package/dist/ports/sandbox.d.ts.map +1 -0
  113. package/dist/ports/sandbox.js +44 -0
  114. package/dist/ports/sandbox.js.map +1 -0
  115. package/dist/ports/tools.d.ts +60 -0
  116. package/dist/ports/tools.d.ts.map +1 -0
  117. package/dist/ports/tools.js +5 -0
  118. package/dist/ports/tools.js.map +1 -0
  119. package/dist/pricing.d.ts +24 -0
  120. package/dist/pricing.d.ts.map +1 -1
  121. package/dist/pricing.js +43 -0
  122. package/dist/pricing.js.map +1 -1
  123. package/dist/runtime.d.ts.map +1 -1
  124. package/dist/runtime.js +18 -10
  125. package/dist/runtime.js.map +1 -1
  126. package/package.json +1 -1
@@ -0,0 +1,344 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { jsonSchema, tool } from 'ai';
3
+ import { markRequiresConfirmation } from '../core/engine.js';
4
+ /** The MCP version we ask for. A server may answer with an older one; we
5
+ * only use initialize, tools/list and tools/call, which every version has. */
6
+ export const MCP_PROTOCOL_VERSION = '2025-06-18';
7
+ const INIT_PARAMS = { protocolVersion: MCP_PROTOCOL_VERSION, capabilities: {}, clientInfo: { name: 'agentenkit', version: '1' } };
8
+ /** Connects to one MCP server, lists its tools and turns each into an
9
+ * ordinary AI SDK tool that calls the server. Keep the connection for as
10
+ * long as the workers run, and close it on shutdown.
11
+ *
12
+ * ```ts
13
+ * const github = await connectMCP({ name: 'github', transport: { type: 'stdio', command: 'github-mcp-server', args: ['stdio'] } });
14
+ * runtime.createStreamTextAgent({ name: 'dev', tools: { ...github.tools } });
15
+ * ``` */
16
+ export async function connectMCP(options) {
17
+ if (!options.name)
18
+ throw new Error('connectMCP: name is required');
19
+ const timeoutMs = options.timeoutMs ?? 60_000;
20
+ const channel = options.transport.type === 'stdio'
21
+ ? stdioChannel(options.name, options.transport, timeoutMs)
22
+ : httpChannel(options.name, options.transport, timeoutMs);
23
+ try {
24
+ await channel.request('initialize', INIT_PARAMS);
25
+ await channel.notify('notifications/initialized');
26
+ const infos = await listTools(channel);
27
+ const tools = buildTools(options, infos, channel);
28
+ return { name: options.name, tools, close: () => channel.close() };
29
+ }
30
+ catch (err) {
31
+ await channel.close().catch(() => { });
32
+ throw err;
33
+ }
34
+ }
35
+ /** Connects to several servers at once and merges their tools. Two tools
36
+ * with the same final name throw, so one never hides the other. */
37
+ export async function connectMCPServers(servers) {
38
+ const settled = await Promise.allSettled(servers.map(connectMCP));
39
+ const conns = settled.flatMap((s) => (s.status === 'fulfilled' ? [s.value] : []));
40
+ const close = async () => { await Promise.allSettled(conns.map((c) => c.close())); };
41
+ const failed = settled.find((s) => s.status === 'rejected');
42
+ if (failed) {
43
+ await close();
44
+ throw failed.reason;
45
+ }
46
+ const tools = {};
47
+ for (const c of conns) {
48
+ for (const [name, t] of Object.entries(c.tools)) {
49
+ if (tools[name]) {
50
+ await close();
51
+ throw new Error(`connectMCPServers: two tools are called ${JSON.stringify(name)}; give a server a prefix`);
52
+ }
53
+ tools[name] = t;
54
+ }
55
+ }
56
+ return { name: servers.map((s) => s.name).join(','), tools, close };
57
+ }
58
+ async function listTools(channel) {
59
+ const out = [];
60
+ let cursor;
61
+ do {
62
+ const res = (await channel.request('tools/list', cursor ? { cursor } : {}));
63
+ out.push(...(res.tools ?? []));
64
+ cursor = res.nextCursor || undefined;
65
+ } while (cursor);
66
+ return out;
67
+ }
68
+ /** Tool names providers accept: letters, digits, _ and -, at most 64. */
69
+ export function mcpToolName(prefix, name) {
70
+ return (prefix + name).replace(/[^a-zA-Z0-9_-]/gu, '_').slice(0, 64);
71
+ }
72
+ function buildTools(options, infos, channel) {
73
+ const prefix = options.prefix ?? `${options.name}_`;
74
+ const only = options.tools ? new Set(options.tools) : null;
75
+ const confirm = options.requiresConfirmation;
76
+ const out = {};
77
+ for (const info of infos) {
78
+ if (only && !only.has(info.name))
79
+ continue;
80
+ const name = mcpToolName(prefix, info.name);
81
+ if (out[name])
82
+ throw new Error(`connectMCP(${options.name}): two tools are called ${JSON.stringify(name)}`);
83
+ const schema = info.inputSchema && typeof info.inputSchema === 'object' ? info.inputSchema : { type: 'object', properties: {} };
84
+ const t = tool({
85
+ description: info.description ?? '',
86
+ parameters: jsonSchema(schema),
87
+ execute: async (args, opts) => {
88
+ try {
89
+ const res = (await channel.request('tools/call', { name: info.name, arguments: args ?? {} }, opts.abortSignal));
90
+ const text = contentText(res);
91
+ return res.isError ? { error: text || 'the tool failed' } : text;
92
+ }
93
+ catch (err) {
94
+ return { error: `${options.name}: ${err.message}` };
95
+ }
96
+ },
97
+ });
98
+ out[name] = confirm === true || (Array.isArray(confirm) && confirm.includes(info.name)) ? markRequiresConfirmation(t) : t;
99
+ }
100
+ if (only) {
101
+ for (const want of only) {
102
+ if (!infos.some((i) => i.name === want))
103
+ throw new Error(`connectMCP(${options.name}): the server has no tool called ${JSON.stringify(want)}`);
104
+ }
105
+ }
106
+ return out;
107
+ }
108
+ /** What the model reads back: the text parts joined, and a short note for
109
+ * anything that is not text. With no content, the structured result. */
110
+ export function contentText(res) {
111
+ const parts = [];
112
+ for (const c of res.content ?? []) {
113
+ if (c.type === 'text')
114
+ parts.push(c.text ?? '');
115
+ else if (c.type === 'resource' && c.resource?.text !== undefined)
116
+ parts.push(c.resource.text);
117
+ else
118
+ parts.push(`[${c.type}${c.mimeType ? ` ${c.mimeType}` : ''}${c.resource?.uri ? ` ${c.resource.uri}` : ''}]`);
119
+ }
120
+ if (parts.length === 0 && res.structuredContent !== undefined)
121
+ return JSON.stringify(res.structuredContent);
122
+ return parts.join('\n');
123
+ }
124
+ /** Waits for an answer, gives up after timeoutMs or when signal aborts. */
125
+ function withDeadline(p, timeoutMs, signal, onGiveUp, what) {
126
+ return new Promise((resolve, reject) => {
127
+ const done = () => { clearTimeout(timer); signal?.removeEventListener('abort', onAbort); };
128
+ const timer = setTimeout(() => { done(); onGiveUp(); reject(new Error(`${what} timed out after ${timeoutMs}ms`)); }, timeoutMs);
129
+ const onAbort = () => { done(); onGiveUp(); reject(new Error(`${what} was stopped`)); };
130
+ if (signal?.aborted)
131
+ return onAbort();
132
+ signal?.addEventListener('abort', onAbort, { once: true });
133
+ p.then((v) => { done(); resolve(v); }, (e) => { done(); reject(e); });
134
+ });
135
+ }
136
+ function stdioChannel(server, t, timeoutMs) {
137
+ const child = spawn(t.command, t.args ?? [], {
138
+ env: { ...process.env, ...t.env },
139
+ ...(t.cwd ? { cwd: t.cwd } : {}),
140
+ stdio: ['pipe', 'pipe', 'pipe'],
141
+ });
142
+ let nextId = 1;
143
+ let closed = null;
144
+ // Settles on 'exit', or on 'error' when the command never started.
145
+ const gone = new Promise((r) => { child.once('exit', () => r()); child.once('error', () => r()); });
146
+ const waiting = new Map();
147
+ const failAll = (err) => {
148
+ closed ??= err;
149
+ for (const w of waiting.values())
150
+ w.reject(err);
151
+ waiting.clear();
152
+ };
153
+ const write = (msg) => { if (!closed)
154
+ child.stdin.write(JSON.stringify(msg) + '\n'); };
155
+ let buf = '';
156
+ child.stdout.setEncoding('utf8');
157
+ child.stdout.on('data', (chunk) => {
158
+ buf += chunk;
159
+ let nl;
160
+ while ((nl = buf.indexOf('\n')) >= 0) {
161
+ const line = buf.slice(0, nl).trim();
162
+ buf = buf.slice(nl + 1);
163
+ if (!line)
164
+ continue;
165
+ let msg;
166
+ try {
167
+ msg = JSON.parse(line);
168
+ }
169
+ catch {
170
+ continue;
171
+ } // a log line on stdout
172
+ handle(msg);
173
+ }
174
+ });
175
+ child.stderr.on('data', () => { }); // drain, or a chatty server blocks
176
+ child.on('error', (e) => failAll(new Error(`${server}: ${e.message}`)));
177
+ child.on('exit', (code) => failAll(new Error(`${server}: the server exited (code ${code})`)));
178
+ child.stdin.on('error', () => { });
179
+ function handle(msg) {
180
+ if (msg.method !== undefined) {
181
+ // A request from the server. We offer no client features, so answer
182
+ // ping and turn down the rest.
183
+ if (msg.id === undefined)
184
+ return;
185
+ if (msg.method === 'ping')
186
+ write({ jsonrpc: '2.0', id: msg.id, result: {} });
187
+ else
188
+ write({ jsonrpc: '2.0', id: msg.id, error: { code: -32601, message: `method not found: ${msg.method}` } });
189
+ return;
190
+ }
191
+ const w = typeof msg.id === 'number' ? waiting.get(msg.id) : undefined;
192
+ if (!w)
193
+ return;
194
+ waiting.delete(msg.id);
195
+ if (msg.error)
196
+ w.reject(new Error(msg.error.message));
197
+ else
198
+ w.resolve(msg.result);
199
+ }
200
+ return {
201
+ request(method, params, signal) {
202
+ if (closed)
203
+ return Promise.reject(closed);
204
+ const id = nextId++;
205
+ const p = new Promise((resolve, reject) => waiting.set(id, { resolve, reject }));
206
+ write({ jsonrpc: '2.0', id, method, params });
207
+ return withDeadline(p, timeoutMs, signal, () => {
208
+ waiting.delete(id);
209
+ write({ jsonrpc: '2.0', method: 'notifications/cancelled', params: { requestId: id } });
210
+ }, `${server}: ${method}`);
211
+ },
212
+ async notify(method, params) { write({ jsonrpc: '2.0', method, ...(params !== undefined ? { params } : {}) }); },
213
+ async close() {
214
+ if (closed)
215
+ return;
216
+ closed = new Error(`${server}: the connection is closed`);
217
+ child.stdin.end();
218
+ const timer = setTimeout(() => child.kill('SIGTERM'), 2000);
219
+ const killer = setTimeout(() => child.kill('SIGKILL'), 5000);
220
+ await gone;
221
+ clearTimeout(timer);
222
+ clearTimeout(killer);
223
+ },
224
+ };
225
+ }
226
+ function httpChannel(server, t, timeoutMs) {
227
+ const doFetch = t.fetch ?? fetch;
228
+ let nextId = 1;
229
+ let sessionId = null;
230
+ let version = null;
231
+ const headers = () => ({
232
+ ...t.headers,
233
+ 'content-type': 'application/json',
234
+ accept: 'application/json, text/event-stream',
235
+ ...(sessionId ? { 'mcp-session-id': sessionId } : {}),
236
+ ...(version ? { 'mcp-protocol-version': version } : {}),
237
+ });
238
+ async function post(msg, signal) {
239
+ const res = await doFetch(t.url, { method: 'POST', headers: headers(), body: JSON.stringify(msg), signal });
240
+ const sid = res.headers.get('mcp-session-id');
241
+ if (sid)
242
+ sessionId = sid;
243
+ return res;
244
+ }
245
+ const channel = {
246
+ async request(method, params, signal) {
247
+ const id = nextId++;
248
+ const ctl = new AbortController();
249
+ const work = (async () => {
250
+ let res = await post({ jsonrpc: '2.0', id, method, params }, ctl.signal);
251
+ if (res.status === 404 && sessionId && method !== 'initialize') {
252
+ // The server dropped our session: start a new one and try once more.
253
+ await res.body?.cancel();
254
+ sessionId = null;
255
+ version = null;
256
+ await channel.request('initialize', INIT_PARAMS, ctl.signal);
257
+ await channel.notify('notifications/initialized');
258
+ res = await post({ jsonrpc: '2.0', id, method, params }, ctl.signal);
259
+ }
260
+ if (!res.ok)
261
+ throw new Error(`HTTP ${res.status} ${(await res.text()).slice(0, 200)}`);
262
+ const type = res.headers.get('content-type') ?? '';
263
+ const msg = type.includes('text/event-stream') ? await readSse(res, id) : (await res.json());
264
+ if (msg.error)
265
+ throw new Error(msg.error.message);
266
+ if (method === 'initialize')
267
+ version = (msg.result?.protocolVersion) ?? MCP_PROTOCOL_VERSION;
268
+ return msg.result;
269
+ })();
270
+ return withDeadline(work, timeoutMs, signal, () => ctl.abort(), `${server}: ${method}`);
271
+ },
272
+ async notify(method, params) {
273
+ const ctl = new AbortController();
274
+ const timer = setTimeout(() => ctl.abort(), timeoutMs);
275
+ try {
276
+ const res = await post({ jsonrpc: '2.0', method, ...(params !== undefined ? { params } : {}) }, ctl.signal);
277
+ await res.body?.cancel();
278
+ }
279
+ finally {
280
+ clearTimeout(timer);
281
+ }
282
+ },
283
+ async close() {
284
+ if (!sessionId)
285
+ return;
286
+ const ctl = new AbortController();
287
+ const timer = setTimeout(() => ctl.abort(), 5000);
288
+ try {
289
+ await doFetch(t.url, { method: 'DELETE', headers: headers(), signal: ctl.signal });
290
+ }
291
+ catch { /* the server may not allow it */ }
292
+ finally {
293
+ clearTimeout(timer);
294
+ sessionId = null;
295
+ }
296
+ },
297
+ };
298
+ return channel;
299
+ }
300
+ /** Reads an SSE answer until the message for `id` comes. Other messages on
301
+ * the stream (progress, logs) are skipped. */
302
+ async function readSse(res, id) {
303
+ if (!res.body)
304
+ throw new Error('empty event stream');
305
+ const reader = res.body.pipeThrough(new TextDecoderStream()).getReader();
306
+ let buf = '';
307
+ let data = [];
308
+ try {
309
+ for (;;) {
310
+ const { value, done } = await reader.read();
311
+ if (done)
312
+ break;
313
+ buf += value;
314
+ let nl;
315
+ while ((nl = buf.indexOf('\n')) >= 0) {
316
+ const line = buf.slice(0, nl).replace(/\r$/, '');
317
+ buf = buf.slice(nl + 1);
318
+ if (line === '') {
319
+ const text = data.join('\n');
320
+ data = [];
321
+ if (!text)
322
+ continue;
323
+ let msg;
324
+ try {
325
+ msg = JSON.parse(text);
326
+ }
327
+ catch {
328
+ continue;
329
+ }
330
+ if (msg.id === id && msg.method === undefined)
331
+ return msg;
332
+ }
333
+ else if (line.startsWith('data:')) {
334
+ data.push(line.slice(5).replace(/^ /, ''));
335
+ }
336
+ }
337
+ }
338
+ }
339
+ finally {
340
+ reader.cancel().catch(() => { });
341
+ }
342
+ throw new Error('the event stream ended with no answer');
343
+ }
344
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/adapters/mcp.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import type { FetchedPage, Fetcher, FetchOptions, Search, SearchHit, SearchOptions } from '../ports/tools.js';
2
+ import { type CommandResult, type CreateSandboxOptions, type RunCommandOptions, type Sandbox, type SandboxFileSystem, type SandboxInfo, type SandboxProvider } from '../ports/sandbox.js';
1
3
  import type { AgentEvent, ExecutionState, MessageDTO, NewMessage, NewThreadEvent, ThreadEventFilter, NewUsage, RunJob, ThreadDTO, ThreadTransition, UsageFilter, UsageTotals } from '../core/types.js';
2
4
  import type { Storage } from '../ports/storage.js';
3
5
  import type { EventBus } from '../ports/bus.js';
@@ -133,4 +135,83 @@ export declare class MemoryRunStreams implements RunStreams {
133
135
  * test prove a stream was deleted. */
134
136
  get size(): number;
135
137
  }
138
+ /** A search engine for tests: answers from a fixed list, or from a function
139
+ * of the query, and keeps every query it was asked. */
140
+ export declare class MemorySearch implements Search {
141
+ private readonly answer;
142
+ readonly name: string;
143
+ readonly queries: Array<{
144
+ query: string;
145
+ options: SearchOptions;
146
+ }>;
147
+ constructor(answer: SearchHit[] | ((query: string, options: SearchOptions) => SearchHit[] | Promise<SearchHit[]>), name?: string);
148
+ search(query: string, options: SearchOptions): Promise<SearchHit[]>;
149
+ }
150
+ /** A page reader for tests: serves pages from a map by URL, and keeps every
151
+ * URL it was asked for. An unknown URL fails like a 404. */
152
+ export declare class MemoryFetcher implements Fetcher {
153
+ private readonly pages;
154
+ readonly name: string;
155
+ readonly fetched: string[];
156
+ constructor(pages: Record<string, {
157
+ title?: string;
158
+ content: string;
159
+ }>, name?: string);
160
+ fetch(url: string, options: FetchOptions): Promise<FetchedPage>;
161
+ }
162
+ /** Sandboxes that live in memory, for tests: files are kept, commands go to
163
+ * the `run` function you give (none given, every command fails with 127).
164
+ * It records what was made, pushed back and destroyed, and `end(id)` makes
165
+ * one go away as a timed-out sandbox would. */
166
+ export declare class MemorySandbox implements SandboxProvider {
167
+ private readonly run?;
168
+ readonly name: string;
169
+ readonly created: CreateSandboxOptions[];
170
+ readonly destroyed: string[];
171
+ /** Every setTimeout call, in order. */
172
+ readonly timeouts: Array<{
173
+ sandboxId: string;
174
+ timeoutMs: number;
175
+ }>;
176
+ readonly commands: Array<{
177
+ sandboxId: string;
178
+ command: string;
179
+ options: RunCommandOptions;
180
+ }>;
181
+ private readonly boxes;
182
+ private n;
183
+ constructor(run?: ((command: string, options: RunCommandOptions, sandbox: Sandbox) => Partial<CommandResult> | Promise<Partial<CommandResult>>) | undefined, name?: string);
184
+ create(options: CreateSandboxOptions): Promise<Sandbox>;
185
+ connect(sandboxId: string): Promise<Sandbox>;
186
+ /** The sandbox ends on its own, as one past its time does. */
187
+ end(sandboxId: string): void;
188
+ /** The ids of the sandboxes still there. */
189
+ live(): string[];
190
+ /** @internal */
191
+ exec(box: MemoryBox, command: string, options: RunCommandOptions): Promise<CommandResult>;
192
+ /** @internal */
193
+ alive(sandboxId: string): void;
194
+ /** @internal */
195
+ remove(sandboxId: string): void;
196
+ }
197
+ declare class MemoryBox implements Sandbox {
198
+ private readonly owner;
199
+ readonly sandboxId: string;
200
+ readonly filesystem: SandboxFileSystem;
201
+ readonly files: Map<string, Uint8Array<ArrayBufferLike>>;
202
+ readonly dirs: Set<string>;
203
+ readonly createdAt: Date;
204
+ expiresAt?: Date;
205
+ constructor(owner: MemorySandbox, sandboxId: string);
206
+ get provider(): string;
207
+ runCommand(command: string, options?: RunCommandOptions): Promise<CommandResult>;
208
+ getUrl(options: {
209
+ port: number;
210
+ protocol?: 'http' | 'https';
211
+ }): Promise<string>;
212
+ getInfo(): Promise<SandboxInfo>;
213
+ setTimeout(timeoutMs: number): Promise<void>;
214
+ destroy(): Promise<void>;
215
+ }
216
+ export {};
136
217
  //# sourceMappingURL=memory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/adapters/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/adapters/memory.ts"],"names":[],"mappings":"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"}