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.
- package/README.md +48 -1
- package/dist/adapters/brave.d.ts +21 -0
- package/dist/adapters/brave.d.ts.map +1 -0
- package/dist/adapters/brave.js +52 -0
- package/dist/adapters/brave.js.map +1 -0
- package/dist/adapters/computesdk.d.ts +71 -0
- package/dist/adapters/computesdk.d.ts.map +1 -0
- package/dist/adapters/computesdk.js +163 -0
- package/dist/adapters/computesdk.js.map +1 -0
- package/dist/adapters/docker.d.ts +35 -0
- package/dist/adapters/docker.d.ts.map +1 -0
- package/dist/adapters/docker.js +246 -0
- package/dist/adapters/docker.js.map +1 -0
- package/dist/adapters/e2b.d.ts +44 -0
- package/dist/adapters/e2b.d.ts.map +1 -0
- package/dist/adapters/e2b.js +349 -0
- package/dist/adapters/e2b.js.map +1 -0
- package/dist/adapters/jina.d.ts +34 -0
- package/dist/adapters/jina.d.ts.map +1 -0
- package/dist/adapters/jina.js +99 -0
- package/dist/adapters/jina.js.map +1 -0
- package/dist/adapters/local-sandbox.d.ts +32 -0
- package/dist/adapters/local-sandbox.d.ts.map +1 -0
- package/dist/adapters/local-sandbox.js +257 -0
- package/dist/adapters/local-sandbox.js.map +1 -0
- package/dist/adapters/mcp.d.ts +71 -0
- package/dist/adapters/mcp.d.ts.map +1 -0
- package/dist/adapters/mcp.js +344 -0
- package/dist/adapters/mcp.js.map +1 -0
- package/dist/adapters/memory.d.ts +81 -0
- package/dist/adapters/memory.d.ts.map +1 -1
- package/dist/adapters/memory.js +207 -0
- package/dist/adapters/memory.js.map +1 -1
- package/dist/adapters/page-reader.d.ts +39 -0
- package/dist/adapters/page-reader.d.ts.map +1 -0
- package/dist/adapters/page-reader.js +165 -0
- package/dist/adapters/page-reader.js.map +1 -0
- package/dist/adapters/sandbox-shell.d.ts +60 -0
- package/dist/adapters/sandbox-shell.d.ts.map +1 -0
- package/dist/adapters/sandbox-shell.js +129 -0
- package/dist/adapters/sandbox-shell.js.map +1 -0
- package/dist/adapters/sqlite.d.ts +37 -1
- package/dist/adapters/sqlite.d.ts.map +1 -1
- package/dist/adapters/sqlite.js +106 -7
- package/dist/adapters/sqlite.js.map +1 -1
- package/dist/adapters/web-search-shared.d.ts +11 -0
- package/dist/adapters/web-search-shared.d.ts.map +1 -0
- package/dist/adapters/web-search-shared.js +40 -0
- package/dist/adapters/web-search-shared.js.map +1 -0
- package/dist/core/builtin/definitions.d.ts +12 -0
- package/dist/core/builtin/definitions.d.ts.map +1 -0
- package/dist/core/builtin/definitions.js +149 -0
- package/dist/core/builtin/definitions.js.map +1 -0
- package/dist/core/builtin/html.d.ts +13 -0
- package/dist/core/builtin/html.d.ts.map +1 -0
- package/dist/core/builtin/html.js +96 -0
- package/dist/core/builtin/html.js.map +1 -0
- package/dist/core/builtin/index.d.ts +21 -0
- package/dist/core/builtin/index.d.ts.map +1 -0
- package/dist/core/builtin/index.js +55 -0
- package/dist/core/builtin/index.js.map +1 -0
- package/dist/core/builtin/run.d.ts +37 -0
- package/dist/core/builtin/run.d.ts.map +1 -0
- package/dist/core/builtin/run.js +56 -0
- package/dist/core/builtin/run.js.map +1 -0
- package/dist/core/builtin/sandbox-tools.d.ts +69 -0
- package/dist/core/builtin/sandbox-tools.d.ts.map +1 -0
- package/dist/core/builtin/sandbox-tools.js +389 -0
- package/dist/core/builtin/sandbox-tools.js.map +1 -0
- package/dist/core/builtin/sandbox.d.ts +52 -0
- package/dist/core/builtin/sandbox.d.ts.map +1 -0
- package/dist/core/builtin/sandbox.js +174 -0
- package/dist/core/builtin/sandbox.js.map +1 -0
- package/dist/core/builtin/web.d.ts +54 -0
- package/dist/core/builtin/web.d.ts.map +1 -0
- package/dist/core/builtin/web.js +167 -0
- package/dist/core/builtin/web.js.map +1 -0
- package/dist/core/deleteThread.d.ts.map +1 -1
- package/dist/core/deleteThread.js +3 -0
- package/dist/core/deleteThread.js.map +1 -1
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +29 -5
- package/dist/core/engine.js.map +1 -1
- package/dist/core/permanent.d.ts +11 -0
- package/dist/core/permanent.d.ts.map +1 -0
- package/dist/core/permanent.js +37 -0
- package/dist/core/permanent.js.map +1 -0
- package/dist/core/publish.d.ts +4 -1
- package/dist/core/publish.d.ts.map +1 -1
- package/dist/core/publish.js +4 -1
- package/dist/core/publish.js.map +1 -1
- package/dist/core/run.d.ts.map +1 -1
- package/dist/core/run.js +5 -4
- package/dist/core/run.js.map +1 -1
- package/dist/core/subagent.d.ts.map +1 -1
- package/dist/core/subagent.js +13 -3
- package/dist/core/subagent.js.map +1 -1
- package/dist/core/tools.d.ts +9 -3
- package/dist/core/tools.d.ts.map +1 -1
- package/dist/core/tools.js.map +1 -1
- package/dist/core/types.d.ts +25 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +14 -1
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +16 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/ports/runtime.d.ts +47 -22
- package/dist/ports/runtime.d.ts.map +1 -1
- package/dist/ports/sandbox.d.ts +159 -0
- package/dist/ports/sandbox.d.ts.map +1 -0
- package/dist/ports/sandbox.js +44 -0
- package/dist/ports/sandbox.js.map +1 -0
- package/dist/ports/tools.d.ts +60 -0
- package/dist/ports/tools.d.ts.map +1 -0
- package/dist/ports/tools.js +5 -0
- package/dist/ports/tools.js.map +1 -0
- package/dist/pricing.d.ts +24 -0
- package/dist/pricing.d.ts.map +1 -1
- package/dist/pricing.js +43 -0
- package/dist/pricing.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +18 -10
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"e2b.js","sourceRoot":"","sources":["../../src/adapters/e2b.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { FetchedPage, Fetcher, FetchOptions, Search, SearchHit, SearchOptions } from '../ports/tools.js';
|
|
2
|
+
export interface JinaOptions {
|
|
3
|
+
apiKey: string;
|
|
4
|
+
baseUrl?: string;
|
|
5
|
+
/** For tests. */
|
|
6
|
+
fetch?: typeof fetch;
|
|
7
|
+
}
|
|
8
|
+
/** Jina's result text is markdown; a snippet reads better as plain text.
|
|
9
|
+
* The Go adapter follows the same rules. */
|
|
10
|
+
export declare function plainSnippet(markdown: string): string;
|
|
11
|
+
/** Web search on Jina's s.jina.ai: about $0.50 per 1,000 searches ($0.05 per
|
|
12
|
+
* million tokens, at least 10,000 a search), 100 requests a minute
|
|
13
|
+
* (checked 2026-09-26). Cheaper than Brave, slower and more limited: for
|
|
14
|
+
* low traffic where cost matters most. Jina returns each result's page
|
|
15
|
+
* text; only a short snippet is kept, so the model still opens only the
|
|
16
|
+
* pages it needs. It has no recency filter, so `recency` is ignored. */
|
|
17
|
+
export declare class JinaWebSearch implements Search {
|
|
18
|
+
private readonly options;
|
|
19
|
+
readonly name = "jina-search";
|
|
20
|
+
constructor(options: JinaOptions);
|
|
21
|
+
search(query: string, opts: SearchOptions): Promise<SearchHit[]>;
|
|
22
|
+
}
|
|
23
|
+
/** Reads pages through Jina's r.jina.ai: pages built with JavaScript, PDFs,
|
|
24
|
+
* and sites that block plain fetches. About $0.25–$0.50 per 1,000 pages
|
|
25
|
+
* ($0.05 per million tokens returned). Jina fetches the page from its own
|
|
26
|
+
* servers, so your network is never reached. Use it where PageReader comes
|
|
27
|
+
* back empty or blocked. */
|
|
28
|
+
export declare class JinaReader implements Fetcher {
|
|
29
|
+
private readonly options;
|
|
30
|
+
readonly name = "jina-reader";
|
|
31
|
+
constructor(options: JinaOptions);
|
|
32
|
+
fetch(url: string, opts: FetchOptions): Promise<FetchedPage>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=jina.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jina.d.ts","sourceRoot":"","sources":["../../src/adapters/jina.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG9G,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAID;6CAC6C;AAC7C,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAerD;AAED;;;;;yEAKyE;AACzE,qBAAa,aAAc,YAAW,MAAM;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,QAAQ,CAAC,IAAI,iBAAiB;gBACD,OAAO,EAAE,WAAW;IAI3C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAoBvE;AAED;;;;6BAI6B;AAC7B,qBAAa,UAAW,YAAW,OAAO;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,QAAQ,CAAC,IAAI,iBAAiB;gBACD,OAAO,EAAE,WAAW;IAI3C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;CA0BnE"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { domainAllowed, withSiteFilters } from './web-search-shared.js';
|
|
2
|
+
const SNIPPET_CHARS = 300;
|
|
3
|
+
/** Jina's result text is markdown; a snippet reads better as plain text.
|
|
4
|
+
* The Go adapter follows the same rules. */
|
|
5
|
+
export function plainSnippet(markdown) {
|
|
6
|
+
let s = markdown
|
|
7
|
+
.replace(/!\[[^\]]*\]\([^)]*\)/g, '') // images
|
|
8
|
+
.replace(/\[([^\]]*)\]\([^)]*\)/g, '$1') // links keep their text
|
|
9
|
+
.replace(/\*\*|__|`/g, '') // bold and code marks
|
|
10
|
+
.replace(/(^|[ \t\n\r\f\v])#{1,6}[ \t]/g, '$1') // heading marks
|
|
11
|
+
.replace(/[ \t\n\r\f\v]+/g, ' ')
|
|
12
|
+
.replace(/^ | $/g, '');
|
|
13
|
+
if (s.length > SNIPPET_CHARS) {
|
|
14
|
+
let end = SNIPPET_CHARS;
|
|
15
|
+
const last = s.charCodeAt(end - 1);
|
|
16
|
+
if (last >= 0xd800 && last <= 0xdbff)
|
|
17
|
+
end--; // never split a character
|
|
18
|
+
s = s.slice(0, end);
|
|
19
|
+
}
|
|
20
|
+
return s;
|
|
21
|
+
}
|
|
22
|
+
/** Web search on Jina's s.jina.ai: about $0.50 per 1,000 searches ($0.05 per
|
|
23
|
+
* million tokens, at least 10,000 a search), 100 requests a minute
|
|
24
|
+
* (checked 2026-09-26). Cheaper than Brave, slower and more limited: for
|
|
25
|
+
* low traffic where cost matters most. Jina returns each result's page
|
|
26
|
+
* text; only a short snippet is kept, so the model still opens only the
|
|
27
|
+
* pages it needs. It has no recency filter, so `recency` is ignored. */
|
|
28
|
+
export class JinaWebSearch {
|
|
29
|
+
options;
|
|
30
|
+
name = 'jina-search';
|
|
31
|
+
constructor(options) {
|
|
32
|
+
this.options = options;
|
|
33
|
+
if (!options.apiKey)
|
|
34
|
+
throw new Error('JinaWebSearch: apiKey is required');
|
|
35
|
+
}
|
|
36
|
+
async search(query, opts) {
|
|
37
|
+
const params = new URLSearchParams({ q: withSiteFilters(query, opts) });
|
|
38
|
+
const doFetch = this.options.fetch ?? fetch;
|
|
39
|
+
const res = await doFetch(`${this.options.baseUrl ?? 'https://s.jina.ai/'}?${params}`, {
|
|
40
|
+
headers: { accept: 'application/json', authorization: `Bearer ${this.options.apiKey}` },
|
|
41
|
+
...(opts.signal ? { signal: opts.signal } : {}),
|
|
42
|
+
});
|
|
43
|
+
if (!res.ok)
|
|
44
|
+
throw new Error(`jina: ${res.status} ${(await res.text()).slice(0, 200)}`);
|
|
45
|
+
const body = (await res.json());
|
|
46
|
+
const hits = [];
|
|
47
|
+
for (const r of body.data ?? []) {
|
|
48
|
+
if (!r.url || !domainAllowed(r.url, opts))
|
|
49
|
+
continue;
|
|
50
|
+
const snippet = plainSnippet(r.description || r.content || '');
|
|
51
|
+
hits.push({ title: r.title ?? '', url: r.url, snippet, ...(r.date ? { publishedAt: r.date } : {}) });
|
|
52
|
+
if (hits.length >= opts.maxResults)
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
return hits;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** Reads pages through Jina's r.jina.ai: pages built with JavaScript, PDFs,
|
|
59
|
+
* and sites that block plain fetches. About $0.25–$0.50 per 1,000 pages
|
|
60
|
+
* ($0.05 per million tokens returned). Jina fetches the page from its own
|
|
61
|
+
* servers, so your network is never reached. Use it where PageReader comes
|
|
62
|
+
* back empty or blocked. */
|
|
63
|
+
export class JinaReader {
|
|
64
|
+
options;
|
|
65
|
+
name = 'jina-reader';
|
|
66
|
+
constructor(options) {
|
|
67
|
+
this.options = options;
|
|
68
|
+
if (!options.apiKey)
|
|
69
|
+
throw new Error('JinaReader: apiKey is required');
|
|
70
|
+
}
|
|
71
|
+
async fetch(url, opts) {
|
|
72
|
+
const parsed = new URL(url);
|
|
73
|
+
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
|
|
74
|
+
throw new Error(`jina: only http and https pages can be read, not ${url}`);
|
|
75
|
+
}
|
|
76
|
+
const doFetch = this.options.fetch ?? fetch;
|
|
77
|
+
const res = await doFetch(`${this.options.baseUrl ?? 'https://r.jina.ai/'}${parsed.href}`, {
|
|
78
|
+
headers: {
|
|
79
|
+
accept: 'application/json',
|
|
80
|
+
authorization: `Bearer ${this.options.apiKey}`,
|
|
81
|
+
'x-return-format': opts.format === 'text' ? 'text' : 'markdown',
|
|
82
|
+
},
|
|
83
|
+
...(opts.signal ? { signal: opts.signal } : {}),
|
|
84
|
+
});
|
|
85
|
+
if (!res.ok)
|
|
86
|
+
throw new Error(`jina: ${res.status} ${(await res.text()).slice(0, 200)}`);
|
|
87
|
+
const body = (await res.json());
|
|
88
|
+
const content = body.data?.content ?? '';
|
|
89
|
+
const bytes = new TextEncoder().encode(content);
|
|
90
|
+
const truncated = bytes.length > opts.maxBytes;
|
|
91
|
+
return {
|
|
92
|
+
url: body.data?.url || parsed.href,
|
|
93
|
+
title: body.data?.title ?? '',
|
|
94
|
+
content: truncated ? new TextDecoder().decode(bytes.subarray(0, opts.maxBytes)).replace(/�$/, '') : content,
|
|
95
|
+
truncated,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=jina.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jina.js","sourceRoot":"","sources":["../../src/adapters/jina.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type CreateSandboxOptions, type Sandbox, type SandboxProvider } from '../ports/sandbox.js';
|
|
2
|
+
export interface LocalSandboxOptions {
|
|
3
|
+
/** Where the sandboxes' folders go. Default: `agentenkit-sandboxes` in the
|
|
4
|
+
* system temp folder. */
|
|
5
|
+
rootDir?: string;
|
|
6
|
+
/** Environment variables every command sees, on top of PATH, HOME, LANG. */
|
|
7
|
+
env?: Record<string, string>;
|
|
8
|
+
/** Where the production warning goes. Defaults to `console`. */
|
|
9
|
+
log?: {
|
|
10
|
+
warn(message: string, ...rest: unknown[]): void;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/** A sandbox that is only a folder on this machine: for development, where
|
|
14
|
+
* you want the sandbox tools without Docker or an account. Commands run as
|
|
15
|
+
* you, with your files in reach. There is NO isolation, and the network
|
|
16
|
+
* setting is not applied, so it warns when NODE_ENV is production.
|
|
17
|
+
*
|
|
18
|
+
* Commands see only PATH, HOME (the sandbox folder) and LANG from your
|
|
19
|
+
* environment, so your API keys do not leak into what the model runs. The
|
|
20
|
+
* Go runtime has the same adapter (adapters/localsandbox). */
|
|
21
|
+
export declare class LocalSandbox implements SandboxProvider {
|
|
22
|
+
private readonly options;
|
|
23
|
+
readonly name = "local";
|
|
24
|
+
private readonly root;
|
|
25
|
+
constructor(options?: LocalSandboxOptions);
|
|
26
|
+
create(options: CreateSandboxOptions): Promise<Sandbox>;
|
|
27
|
+
connect(sandboxId: string): Promise<Sandbox>;
|
|
28
|
+
/** Removes sandboxes past their time. There is no process watching them,
|
|
29
|
+
* so each create tidies up after the others. */
|
|
30
|
+
private sweep;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=local-sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-sandbox.d.ts","sourceRoot":"","sources":["../../src/adapters/local-sandbox.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,KAAK,oBAAoB,EAGzB,KAAK,OAAO,EAGZ,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,mBAAmB;IAClC;8BAC0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,gEAAgE;IAChE,GAAG,CAAC,EAAE;QAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;KAAE,CAAC;CAC3D;AAWD;;;;;;;+DAO+D;AAC/D,qBAAa,YAAa,YAAW,eAAe;IAItC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,QAAQ,CAAC,IAAI,WAAW;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAED,OAAO,GAAE,mBAAwB;IASxD,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAYvD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlD;qDACiD;YACnC,KAAK;CASpB"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { promises as fs } from 'node:fs';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { dirname, join } from 'node:path';
|
|
5
|
+
import { DEFAULT_COMMAND_TIMEOUT_MS, SandboxFileNotFoundError, SandboxGoneError, TIMED_OUT_EXIT_CODE, } from '../ports/sandbox.js';
|
|
6
|
+
import { OutputCollector, backgroundCommand, randomId, resolveIn, runArgv, sortEntries, toBytes } from './sandbox-shell.js';
|
|
7
|
+
const ID = /^local-[a-z0-9]+$/;
|
|
8
|
+
/** A sandbox that is only a folder on this machine: for development, where
|
|
9
|
+
* you want the sandbox tools without Docker or an account. Commands run as
|
|
10
|
+
* you, with your files in reach. There is NO isolation, and the network
|
|
11
|
+
* setting is not applied, so it warns when NODE_ENV is production.
|
|
12
|
+
*
|
|
13
|
+
* Commands see only PATH, HOME (the sandbox folder) and LANG from your
|
|
14
|
+
* environment, so your API keys do not leak into what the model runs. The
|
|
15
|
+
* Go runtime has the same adapter (adapters/localsandbox). */
|
|
16
|
+
export class LocalSandbox {
|
|
17
|
+
options;
|
|
18
|
+
name = 'local';
|
|
19
|
+
root;
|
|
20
|
+
constructor(options = {}) {
|
|
21
|
+
this.options = options;
|
|
22
|
+
this.root = options.rootDir ?? join(tmpdir(), 'agentenkit-sandboxes');
|
|
23
|
+
if (process.env.NODE_ENV === 'production') {
|
|
24
|
+
(options.log ?? console).warn('LocalSandbox runs commands on this machine with no isolation: use DockerSandbox or E2BSandbox in production');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async create(options) {
|
|
28
|
+
await this.sweep();
|
|
29
|
+
const id = `local-${randomId()}`;
|
|
30
|
+
const dir = join(this.root, id);
|
|
31
|
+
await fs.mkdir(join(dir, 'work'), { recursive: true });
|
|
32
|
+
const now = Date.now();
|
|
33
|
+
const metadata = { threadId: options.metadata.threadId };
|
|
34
|
+
if (options.metadata.runId)
|
|
35
|
+
metadata.runId = options.metadata.runId;
|
|
36
|
+
await writeMeta(dir, { createdAt: now, expiresAt: now + options.timeoutMs, metadata, envs: options.envs ?? {} });
|
|
37
|
+
return new LocalBox(id, dir, this.options.env ?? {});
|
|
38
|
+
}
|
|
39
|
+
async connect(sandboxId) {
|
|
40
|
+
if (!ID.test(sandboxId))
|
|
41
|
+
throw new SandboxGoneError(sandboxId, 'not a local sandbox id');
|
|
42
|
+
const dir = join(this.root, sandboxId);
|
|
43
|
+
const meta = await readMeta(dir);
|
|
44
|
+
if (!meta)
|
|
45
|
+
throw new SandboxGoneError(sandboxId);
|
|
46
|
+
if (meta.expiresAt <= Date.now()) {
|
|
47
|
+
await fs.rm(dir, { recursive: true, force: true });
|
|
48
|
+
throw new SandboxGoneError(sandboxId, 'it timed out');
|
|
49
|
+
}
|
|
50
|
+
return new LocalBox(sandboxId, dir, this.options.env ?? {});
|
|
51
|
+
}
|
|
52
|
+
/** Removes sandboxes past their time. There is no process watching them,
|
|
53
|
+
* so each create tidies up after the others. */
|
|
54
|
+
async sweep() {
|
|
55
|
+
const names = await fs.readdir(this.root).catch(() => []);
|
|
56
|
+
const now = Date.now();
|
|
57
|
+
for (const name of names) {
|
|
58
|
+
if (!ID.test(name))
|
|
59
|
+
continue;
|
|
60
|
+
const meta = await readMeta(join(this.root, name));
|
|
61
|
+
if (meta && meta.expiresAt <= now)
|
|
62
|
+
await fs.rm(join(this.root, name), { recursive: true, force: true });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async function readMeta(dir) {
|
|
67
|
+
try {
|
|
68
|
+
return JSON.parse(await fs.readFile(join(dir, 'sandbox.json'), 'utf8'));
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async function writeMeta(dir, meta) {
|
|
75
|
+
await fs.writeFile(join(dir, 'sandbox.json'), JSON.stringify(meta));
|
|
76
|
+
}
|
|
77
|
+
class LocalBox {
|
|
78
|
+
sandboxId;
|
|
79
|
+
dir;
|
|
80
|
+
env;
|
|
81
|
+
provider = 'local';
|
|
82
|
+
filesystem;
|
|
83
|
+
workdir;
|
|
84
|
+
constructor(sandboxId, dir, env) {
|
|
85
|
+
this.sandboxId = sandboxId;
|
|
86
|
+
this.dir = dir;
|
|
87
|
+
this.env = env;
|
|
88
|
+
this.workdir = join(dir, 'work');
|
|
89
|
+
this.filesystem = new LocalFiles(this.workdir);
|
|
90
|
+
}
|
|
91
|
+
async meta() {
|
|
92
|
+
const meta = await readMeta(this.dir);
|
|
93
|
+
if (!meta)
|
|
94
|
+
throw new SandboxGoneError(this.sandboxId);
|
|
95
|
+
return meta;
|
|
96
|
+
}
|
|
97
|
+
async runCommand(command, options = {}) {
|
|
98
|
+
const meta = await this.meta();
|
|
99
|
+
const cwd = resolveIn(this.workdir, options.cwd ?? '.');
|
|
100
|
+
const env = {
|
|
101
|
+
PATH: process.env.PATH ?? '/usr/local/bin:/usr/bin:/bin',
|
|
102
|
+
HOME: this.workdir,
|
|
103
|
+
LANG: process.env.LANG ?? 'C.UTF-8',
|
|
104
|
+
...this.env,
|
|
105
|
+
...meta.envs,
|
|
106
|
+
...options.env,
|
|
107
|
+
};
|
|
108
|
+
if (options.background) {
|
|
109
|
+
const r = await this.exec(backgroundCommand(command), cwd, env, DEFAULT_COMMAND_TIMEOUT_MS, {});
|
|
110
|
+
return { ...r, stdout: '', stderr: '' };
|
|
111
|
+
}
|
|
112
|
+
return this.exec(command, cwd, env, options.timeoutMs ?? DEFAULT_COMMAND_TIMEOUT_MS, options);
|
|
113
|
+
}
|
|
114
|
+
exec(command, cwd, env, limitMs, options) {
|
|
115
|
+
const started = Date.now();
|
|
116
|
+
const [file, ...args] = runArgv(command);
|
|
117
|
+
return new Promise((resolve, reject) => {
|
|
118
|
+
// Its own process group, so the time limit stops what it started too.
|
|
119
|
+
// Cast: some apps' types (Next.js) make NODE_ENV a required field.
|
|
120
|
+
const child = spawn(file, args, { cwd, env: env, detached: true, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
121
|
+
const out = new OutputCollector(options.onStdout);
|
|
122
|
+
const err = new OutputCollector(options.onStderr);
|
|
123
|
+
child.stdout.on('data', (b) => out.push(b));
|
|
124
|
+
child.stderr.on('data', (b) => err.push(b));
|
|
125
|
+
let timedOut = false;
|
|
126
|
+
let aborted = false;
|
|
127
|
+
const kill = () => {
|
|
128
|
+
try {
|
|
129
|
+
process.kill(-child.pid, 'SIGKILL');
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
child.kill('SIGKILL');
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
const timer = setTimeout(() => {
|
|
136
|
+
timedOut = true;
|
|
137
|
+
kill();
|
|
138
|
+
}, limitMs);
|
|
139
|
+
const onAbort = () => {
|
|
140
|
+
aborted = true;
|
|
141
|
+
kill();
|
|
142
|
+
};
|
|
143
|
+
options.signal?.addEventListener('abort', onAbort, { once: true });
|
|
144
|
+
if (options.signal?.aborted)
|
|
145
|
+
onAbort();
|
|
146
|
+
child.on('error', (e) => {
|
|
147
|
+
clearTimeout(timer);
|
|
148
|
+
options.signal?.removeEventListener('abort', onAbort);
|
|
149
|
+
reject(e);
|
|
150
|
+
});
|
|
151
|
+
child.on('close', (code, signal) => {
|
|
152
|
+
clearTimeout(timer);
|
|
153
|
+
options.signal?.removeEventListener('abort', onAbort);
|
|
154
|
+
if (aborted)
|
|
155
|
+
return reject(options.signal.reason ?? new Error('aborted'));
|
|
156
|
+
const exitCode = timedOut ? TIMED_OUT_EXIT_CODE : (code ?? 128 + signalNumber(signal));
|
|
157
|
+
resolve({
|
|
158
|
+
stdout: out.end(),
|
|
159
|
+
stderr: err.end(),
|
|
160
|
+
exitCode,
|
|
161
|
+
durationMs: Date.now() - started,
|
|
162
|
+
...(timedOut ? { timedOut: true } : {}),
|
|
163
|
+
...(out.truncated || err.truncated ? { truncated: true } : {}),
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
async getUrl(options) {
|
|
169
|
+
await this.meta();
|
|
170
|
+
return `${options.protocol ?? 'http'}://localhost:${options.port}`;
|
|
171
|
+
}
|
|
172
|
+
async getInfo() {
|
|
173
|
+
const meta = await this.meta();
|
|
174
|
+
return {
|
|
175
|
+
id: this.sandboxId,
|
|
176
|
+
provider: 'local',
|
|
177
|
+
status: 'running',
|
|
178
|
+
createdAt: new Date(meta.createdAt),
|
|
179
|
+
expiresAt: new Date(meta.expiresAt),
|
|
180
|
+
workdir: this.workdir,
|
|
181
|
+
metadata: meta.metadata,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
async setTimeout(timeoutMs) {
|
|
185
|
+
const meta = await this.meta();
|
|
186
|
+
await writeMeta(this.dir, { ...meta, expiresAt: Date.now() + timeoutMs });
|
|
187
|
+
}
|
|
188
|
+
async destroy() {
|
|
189
|
+
await fs.rm(this.dir, { recursive: true, force: true });
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
function signalNumber(signal) {
|
|
193
|
+
const numbers = { SIGHUP: 1, SIGINT: 2, SIGKILL: 9, SIGTERM: 15 };
|
|
194
|
+
return (signal && numbers[signal]) || 0;
|
|
195
|
+
}
|
|
196
|
+
const isMissing = (e) => e?.code === 'ENOENT' || e?.code === 'ENOTDIR';
|
|
197
|
+
class LocalFiles {
|
|
198
|
+
workdir;
|
|
199
|
+
constructor(workdir) {
|
|
200
|
+
this.workdir = workdir;
|
|
201
|
+
}
|
|
202
|
+
path(p) {
|
|
203
|
+
return resolveIn(this.workdir, p);
|
|
204
|
+
}
|
|
205
|
+
async readFile(path) {
|
|
206
|
+
return new TextDecoder().decode(await this.readFileBytes(path));
|
|
207
|
+
}
|
|
208
|
+
async readFileBytes(path) {
|
|
209
|
+
const full = this.path(path);
|
|
210
|
+
try {
|
|
211
|
+
if (!(await fs.stat(full)).isFile())
|
|
212
|
+
throw new SandboxFileNotFoundError(path);
|
|
213
|
+
return new Uint8Array(await fs.readFile(full));
|
|
214
|
+
}
|
|
215
|
+
catch (e) {
|
|
216
|
+
if (isMissing(e))
|
|
217
|
+
throw new SandboxFileNotFoundError(path);
|
|
218
|
+
throw e;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async writeFile(path, content) {
|
|
222
|
+
const full = this.path(path);
|
|
223
|
+
await fs.mkdir(dirname(full), { recursive: true });
|
|
224
|
+
await fs.writeFile(full, toBytes(content));
|
|
225
|
+
}
|
|
226
|
+
async readdir(path) {
|
|
227
|
+
const full = this.path(path);
|
|
228
|
+
try {
|
|
229
|
+
const dirents = await fs.readdir(full, { withFileTypes: true });
|
|
230
|
+
const entries = [];
|
|
231
|
+
for (const d of dirents) {
|
|
232
|
+
if (d.isDirectory())
|
|
233
|
+
entries.push({ name: d.name, type: 'directory' });
|
|
234
|
+
else {
|
|
235
|
+
const size = await fs.stat(join(full, d.name)).then((s) => s.size).catch(() => 0);
|
|
236
|
+
entries.push({ name: d.name, type: 'file', size });
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return sortEntries(entries);
|
|
240
|
+
}
|
|
241
|
+
catch (e) {
|
|
242
|
+
if (isMissing(e))
|
|
243
|
+
throw new SandboxFileNotFoundError(path);
|
|
244
|
+
throw e;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
async mkdir(path) {
|
|
248
|
+
await fs.mkdir(this.path(path), { recursive: true });
|
|
249
|
+
}
|
|
250
|
+
async exists(path) {
|
|
251
|
+
return fs.lstat(this.path(path)).then(() => true, () => false);
|
|
252
|
+
}
|
|
253
|
+
async remove(path) {
|
|
254
|
+
await fs.rm(this.path(path), { recursive: true, force: true });
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=local-sandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-sandbox.js","sourceRoot":"","sources":["../../src/adapters/local-sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type Tool } from 'ai';
|
|
2
|
+
/** The MCP version we ask for. A server may answer with an older one; we
|
|
3
|
+
* only use initialize, tools/list and tools/call, which every version has. */
|
|
4
|
+
export declare const MCP_PROTOCOL_VERSION = "2025-06-18";
|
|
5
|
+
/** How to reach an MCP server: a local command we start and talk to over
|
|
6
|
+
* stdin/stdout, or a URL that speaks MCP over HTTP ("streamable HTTP"). */
|
|
7
|
+
export type MCPTransport = {
|
|
8
|
+
type: 'stdio';
|
|
9
|
+
command: string;
|
|
10
|
+
args?: string[];
|
|
11
|
+
env?: Record<string, string>;
|
|
12
|
+
cwd?: string;
|
|
13
|
+
} | {
|
|
14
|
+
type: 'http';
|
|
15
|
+
url: string;
|
|
16
|
+
headers?: Record<string, string>;
|
|
17
|
+
fetch?: typeof fetch;
|
|
18
|
+
};
|
|
19
|
+
export interface MCPServerOptions {
|
|
20
|
+
/** A short name for the server, like 'github'. It is the default prefix of
|
|
21
|
+
* the tool names, so two servers can both have a `search` tool. */
|
|
22
|
+
name: string;
|
|
23
|
+
transport: MCPTransport;
|
|
24
|
+
/** Put before each tool's name. Default: `${name}_`. Pass '' for none. */
|
|
25
|
+
prefix?: string;
|
|
26
|
+
/** Only these tools (by the server's own names). Default: all of them. */
|
|
27
|
+
tools?: string[];
|
|
28
|
+
/** Park these tools behind an approval before they run (§2.5): true for
|
|
29
|
+
* all, or a list of the server's own tool names. */
|
|
30
|
+
requiresConfirmation?: boolean | string[];
|
|
31
|
+
/** How long one request may take, in ms. Default 60000. */
|
|
32
|
+
timeoutMs?: number;
|
|
33
|
+
}
|
|
34
|
+
export interface MCPConnection {
|
|
35
|
+
readonly name: string;
|
|
36
|
+
/** Ready to spread into an agent's `tools`. */
|
|
37
|
+
readonly tools: Record<string, Tool>;
|
|
38
|
+
/** Stops the server process, or ends the HTTP session. */
|
|
39
|
+
close(): Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
interface MCPContent {
|
|
42
|
+
type: string;
|
|
43
|
+
text?: string;
|
|
44
|
+
mimeType?: string;
|
|
45
|
+
resource?: {
|
|
46
|
+
uri?: string;
|
|
47
|
+
text?: string;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/** Connects to one MCP server, lists its tools and turns each into an
|
|
51
|
+
* ordinary AI SDK tool that calls the server. Keep the connection for as
|
|
52
|
+
* long as the workers run, and close it on shutdown.
|
|
53
|
+
*
|
|
54
|
+
* ```ts
|
|
55
|
+
* const github = await connectMCP({ name: 'github', transport: { type: 'stdio', command: 'github-mcp-server', args: ['stdio'] } });
|
|
56
|
+
* runtime.createStreamTextAgent({ name: 'dev', tools: { ...github.tools } });
|
|
57
|
+
* ``` */
|
|
58
|
+
export declare function connectMCP(options: MCPServerOptions): Promise<MCPConnection>;
|
|
59
|
+
/** Connects to several servers at once and merges their tools. Two tools
|
|
60
|
+
* with the same final name throw, so one never hides the other. */
|
|
61
|
+
export declare function connectMCPServers(servers: MCPServerOptions[]): Promise<MCPConnection>;
|
|
62
|
+
/** Tool names providers accept: letters, digits, _ and -, at most 64. */
|
|
63
|
+
export declare function mcpToolName(prefix: string, name: string): string;
|
|
64
|
+
/** What the model reads back: the text parts joined, and a short note for
|
|
65
|
+
* anything that is not text. With no content, the structured result. */
|
|
66
|
+
export declare function contentText(res: {
|
|
67
|
+
content?: MCPContent[];
|
|
68
|
+
structuredContent?: unknown;
|
|
69
|
+
}): string;
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/adapters/mcp.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,IAAI,EAAE,MAAM,IAAI,CAAC;AAGjD;+EAC+E;AAC/E,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD;4EAC4E;AAC5E,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/F;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CAAE,CAAC;AAE1F,MAAM,WAAW,gBAAgB;IAC/B;wEACoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,YAAY,CAAC;IACxB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;yDACqD;IACrD,oBAAoB,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IAC1C,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,0DAA0D;IAC1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAMD,UAAU,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE;AAWnH;;;;;;;SAOS;AACT,wBAAsB,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgBlF;AAED;oEACoE;AACpE,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAc3F;AAaD,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhE;AAqCD;yEACyE;AACzE,wBAAgB,WAAW,CAAC,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAShG"}
|