@fabric-harness/sdk 0.1.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/LICENSE +202 -0
- package/README.md +73 -0
- package/dist/agent-definition.d.ts +61 -0
- package/dist/agent-definition.d.ts.map +1 -0
- package/dist/agent-definition.js +52 -0
- package/dist/agent-definition.js.map +1 -0
- package/dist/agent.d.ts +13 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +99 -0
- package/dist/agent.js.map +1 -0
- package/dist/context-budget.d.ts +20 -0
- package/dist/context-budget.d.ts.map +1 -0
- package/dist/context-budget.js +27 -0
- package/dist/context-budget.js.map +1 -0
- package/dist/context.d.ts +3 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +8 -0
- package/dist/context.js.map +1 -0
- package/dist/error.d.ts +25 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +48 -0
- package/dist/error.js.map +1 -0
- package/dist/filesystem-source.d.ts +69 -0
- package/dist/filesystem-source.d.ts.map +1 -0
- package/dist/filesystem-source.js +109 -0
- package/dist/filesystem-source.js.map +1 -0
- package/dist/history.d.ts +16 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +118 -0
- package/dist/history.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/lite.d.ts +46 -0
- package/dist/lite.d.ts.map +1 -0
- package/dist/lite.js +38 -0
- package/dist/lite.js.map +1 -0
- package/dist/loop.d.ts +41 -0
- package/dist/loop.d.ts.map +1 -0
- package/dist/loop.js +94 -0
- package/dist/loop.js.map +1 -0
- package/dist/mcp-stdio.d.ts +28 -0
- package/dist/mcp-stdio.d.ts.map +1 -0
- package/dist/mcp-stdio.js +102 -0
- package/dist/mcp-stdio.js.map +1 -0
- package/dist/mcp.d.ts +40 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +153 -0
- package/dist/mcp.js.map +1 -0
- package/dist/model.d.ts +204 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/model.js +661 -0
- package/dist/model.js.map +1 -0
- package/dist/otel.d.ts +17 -0
- package/dist/otel.d.ts.map +1 -0
- package/dist/otel.js +25 -0
- package/dist/otel.js.map +1 -0
- package/dist/policy.d.ts +54 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +148 -0
- package/dist/policy.js.map +1 -0
- package/dist/providers.d.ts +37 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +265 -0
- package/dist/providers.js.map +1 -0
- package/dist/redaction.d.ts +11 -0
- package/dist/redaction.d.ts.map +1 -0
- package/dist/redaction.js +41 -0
- package/dist/redaction.js.map +1 -0
- package/dist/result.d.ts +7 -0
- package/dist/result.d.ts.map +1 -0
- package/dist/result.js +105 -0
- package/dist/result.js.map +1 -0
- package/dist/runtime-mode.d.ts +30 -0
- package/dist/runtime-mode.d.ts.map +1 -0
- package/dist/runtime-mode.js +42 -0
- package/dist/runtime-mode.js.map +1 -0
- package/dist/sandbox.d.ts +247 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +922 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/schema.d.ts +37 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +121 -0
- package/dist/schema.js.map +1 -0
- package/dist/session.d.ts +60 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +762 -0
- package/dist/session.js.map +1 -0
- package/dist/store.d.ts +48 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +348 -0
- package/dist/store.js.map +1 -0
- package/dist/telemetry.d.ts +15 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +51 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tools.d.ts +131 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +235 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +343 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import type { SandboxBackend, ShellResult } from './types.js';
|
|
2
|
+
export interface FileStat {
|
|
3
|
+
type: 'file' | 'directory' | 'symlink' | 'other';
|
|
4
|
+
size: number;
|
|
5
|
+
mtime?: Date;
|
|
6
|
+
mode?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface SandboxSnapshot {
|
|
9
|
+
id: string;
|
|
10
|
+
label?: string;
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
export interface SnapshotPruneOptions {
|
|
14
|
+
keep?: number;
|
|
15
|
+
olderThanMs?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface SnapshotPruneResult {
|
|
18
|
+
removed: string[];
|
|
19
|
+
kept: string[];
|
|
20
|
+
}
|
|
21
|
+
export interface SandboxExecOptions {
|
|
22
|
+
cwd?: string;
|
|
23
|
+
env?: Record<string, string>;
|
|
24
|
+
timeout?: number;
|
|
25
|
+
signal?: AbortSignal;
|
|
26
|
+
}
|
|
27
|
+
export interface SandboxCapabilities {
|
|
28
|
+
exec: boolean;
|
|
29
|
+
filesystem: boolean;
|
|
30
|
+
binaryFiles: boolean;
|
|
31
|
+
snapshots: boolean;
|
|
32
|
+
restore: boolean;
|
|
33
|
+
network: 'none' | 'restricted' | 'egress' | 'provider-managed';
|
|
34
|
+
persistence: 'ephemeral' | 'session' | 'durable';
|
|
35
|
+
isolation: 'process' | 'container' | 'microvm' | 'provider';
|
|
36
|
+
}
|
|
37
|
+
export interface SandboxEnv {
|
|
38
|
+
exec(command: string, options?: SandboxExecOptions): Promise<ShellResult>;
|
|
39
|
+
readFile(path: string): Promise<string>;
|
|
40
|
+
readFileBuffer(path: string): Promise<Uint8Array>;
|
|
41
|
+
writeFile(path: string, content: string | Uint8Array): Promise<void>;
|
|
42
|
+
stat(path: string): Promise<FileStat>;
|
|
43
|
+
readdir(path: string): Promise<string[]>;
|
|
44
|
+
exists(path: string): Promise<boolean>;
|
|
45
|
+
mkdir(path: string, options?: {
|
|
46
|
+
recursive?: boolean;
|
|
47
|
+
}): Promise<void>;
|
|
48
|
+
rm(path: string, options?: {
|
|
49
|
+
recursive?: boolean;
|
|
50
|
+
force?: boolean;
|
|
51
|
+
}): Promise<void>;
|
|
52
|
+
readonly cwd: string;
|
|
53
|
+
readonly capabilities?: SandboxCapabilities;
|
|
54
|
+
resolvePath(path: string): string;
|
|
55
|
+
snapshot?(): Promise<SandboxSnapshot>;
|
|
56
|
+
restore?(snapshot: SandboxSnapshot): Promise<void>;
|
|
57
|
+
cleanup(): Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
export interface SandboxFactoryOptions {
|
|
60
|
+
backend?: SandboxBackend;
|
|
61
|
+
workspacePath?: string;
|
|
62
|
+
sessionId?: string;
|
|
63
|
+
env?: Record<string, string>;
|
|
64
|
+
metadata?: Record<string, unknown>;
|
|
65
|
+
}
|
|
66
|
+
export type SandboxFactory = (options: SandboxFactoryOptions) => Promise<SandboxEnv> | SandboxEnv;
|
|
67
|
+
export interface RemoteSandboxApi {
|
|
68
|
+
exec(command: string, options?: SandboxExecOptions): Promise<ShellResult>;
|
|
69
|
+
readFile(path: string): Promise<string>;
|
|
70
|
+
readFileBuffer(path: string): Promise<Uint8Array>;
|
|
71
|
+
writeFile(path: string, content: string | Uint8Array): Promise<void>;
|
|
72
|
+
stat(path: string): Promise<FileStat>;
|
|
73
|
+
readdir(path: string): Promise<string[]>;
|
|
74
|
+
exists(path: string): Promise<boolean>;
|
|
75
|
+
mkdir(path: string, options?: {
|
|
76
|
+
recursive?: boolean;
|
|
77
|
+
}): Promise<void>;
|
|
78
|
+
rm(path: string, options?: {
|
|
79
|
+
recursive?: boolean;
|
|
80
|
+
force?: boolean;
|
|
81
|
+
}): Promise<void>;
|
|
82
|
+
snapshot?(): Promise<SandboxSnapshot>;
|
|
83
|
+
restore?(snapshot: SandboxSnapshot): Promise<void>;
|
|
84
|
+
}
|
|
85
|
+
export interface RemoteSandboxOptions {
|
|
86
|
+
cwd?: string;
|
|
87
|
+
cleanup?: (() => void | Promise<void>) | {
|
|
88
|
+
cleanup(): void | Promise<void>;
|
|
89
|
+
};
|
|
90
|
+
pathStyle?: 'posix';
|
|
91
|
+
capabilities?: SandboxCapabilities;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Wrap a provider-owned remote sandbox client in Fabric's SandboxEnv contract.
|
|
95
|
+
* Provider credentials and SDK objects remain outside model context/history;
|
|
96
|
+
* Fabric only sees the narrow file/shell/snapshot API exposed here.
|
|
97
|
+
*/
|
|
98
|
+
export declare function createRemoteSandboxEnv(api: RemoteSandboxApi, options?: RemoteSandboxOptions): SandboxEnv;
|
|
99
|
+
/**
|
|
100
|
+
* Adapter expectations:
|
|
101
|
+
* - Every backend must expose the SandboxEnv contract above and map paths into a scoped workspace.
|
|
102
|
+
* - Secrets and provider credentials must stay in adapter-owned environment/config, not model context.
|
|
103
|
+
* - exec should enforce backend-specific command, network, and timeout policy before process launch.
|
|
104
|
+
* - snapshot/restore is optional because not all targets support filesystem or VM snapshots.
|
|
105
|
+
* - Future adapters should be added without changing session/runtime code.
|
|
106
|
+
*
|
|
107
|
+
* Planned backends: local, Docker, Azure Container Apps, Azure Container Instances, AKS,
|
|
108
|
+
* Databricks, E2B, Daytona, Cloudflare, Modal, Kubernetes, and Firecracker/microVM.
|
|
109
|
+
*/
|
|
110
|
+
export interface SandboxAdapterDescriptor {
|
|
111
|
+
backend: SandboxBackend;
|
|
112
|
+
create: SandboxFactory;
|
|
113
|
+
supportsSnapshots?: boolean;
|
|
114
|
+
supportsExec?: boolean;
|
|
115
|
+
supportsBinaryFiles?: boolean;
|
|
116
|
+
}
|
|
117
|
+
export declare class EmptySandboxEnv implements SandboxEnv {
|
|
118
|
+
readonly cwd: string;
|
|
119
|
+
readonly capabilities: SandboxCapabilities;
|
|
120
|
+
private entries;
|
|
121
|
+
private snapshots;
|
|
122
|
+
private nextSnapshotId;
|
|
123
|
+
constructor(cwd?: string);
|
|
124
|
+
exec(command: string): Promise<ShellResult>;
|
|
125
|
+
readFile(filePath: string): Promise<string>;
|
|
126
|
+
readFileBuffer(filePath: string): Promise<Uint8Array>;
|
|
127
|
+
writeFile(filePath: string, content: string | Uint8Array): Promise<void>;
|
|
128
|
+
stat(filePath: string): Promise<FileStat>;
|
|
129
|
+
readdir(dirPath: string): Promise<string[]>;
|
|
130
|
+
exists(filePath: string): Promise<boolean>;
|
|
131
|
+
mkdir(dirPath: string, options?: {
|
|
132
|
+
recursive?: boolean;
|
|
133
|
+
}): Promise<void>;
|
|
134
|
+
rm(filePath: string, options?: {
|
|
135
|
+
recursive?: boolean;
|
|
136
|
+
force?: boolean;
|
|
137
|
+
}): Promise<void>;
|
|
138
|
+
resolvePath(filePath: string): string;
|
|
139
|
+
snapshot(): Promise<SandboxSnapshot>;
|
|
140
|
+
restore(snapshot: SandboxSnapshot): Promise<void>;
|
|
141
|
+
cleanup(): Promise<void>;
|
|
142
|
+
}
|
|
143
|
+
export interface LocalSandboxOptions {
|
|
144
|
+
workspacePath?: string;
|
|
145
|
+
env?: Record<string, string>;
|
|
146
|
+
/** Names of host process environment variables to forward into local commands. */
|
|
147
|
+
envAllowlist?: string[];
|
|
148
|
+
/** Forward a small non-secret set of useful host env vars. Defaults to true. */
|
|
149
|
+
inheritSafeEnv?: boolean;
|
|
150
|
+
outputLimitBytes?: number;
|
|
151
|
+
defaultTimeoutMs?: number;
|
|
152
|
+
sessionId?: string;
|
|
153
|
+
snapshotRoot?: string;
|
|
154
|
+
}
|
|
155
|
+
export interface DockerSandboxOptions {
|
|
156
|
+
workspacePath: string;
|
|
157
|
+
image?: string;
|
|
158
|
+
env?: Record<string, string>;
|
|
159
|
+
network?: 'none' | 'bridge' | 'host' | string | boolean;
|
|
160
|
+
user?: string;
|
|
161
|
+
cpus?: string | number;
|
|
162
|
+
memory?: string;
|
|
163
|
+
pidsLimit?: number;
|
|
164
|
+
readOnlyRootFilesystem?: boolean;
|
|
165
|
+
mountReadOnly?: boolean;
|
|
166
|
+
outputLimitBytes?: number;
|
|
167
|
+
/** Names of host process environment variables to forward into containers. */
|
|
168
|
+
envAllowlist?: string[];
|
|
169
|
+
ownsWorkspace?: boolean;
|
|
170
|
+
sessionId?: string;
|
|
171
|
+
snapshotRoot?: string;
|
|
172
|
+
}
|
|
173
|
+
export declare class LocalSandboxEnv implements SandboxEnv {
|
|
174
|
+
readonly cwd: string;
|
|
175
|
+
readonly capabilities: SandboxCapabilities;
|
|
176
|
+
private readonly env;
|
|
177
|
+
private readonly snapshotRoot;
|
|
178
|
+
private readonly outputLimitBytes;
|
|
179
|
+
private readonly defaultTimeoutMs?;
|
|
180
|
+
constructor(options?: LocalSandboxOptions);
|
|
181
|
+
exec(command: string, options?: SandboxExecOptions): Promise<ShellResult>;
|
|
182
|
+
readFile(filePath: string): Promise<string>;
|
|
183
|
+
readFileBuffer(filePath: string): Promise<Uint8Array>;
|
|
184
|
+
writeFile(filePath: string, content: string | Uint8Array): Promise<void>;
|
|
185
|
+
stat(filePath: string): Promise<FileStat>;
|
|
186
|
+
readdir(dirPath: string): Promise<string[]>;
|
|
187
|
+
exists(filePath: string): Promise<boolean>;
|
|
188
|
+
mkdir(dirPath: string, options?: {
|
|
189
|
+
recursive?: boolean;
|
|
190
|
+
}): Promise<void>;
|
|
191
|
+
rm(filePath: string, options?: {
|
|
192
|
+
recursive?: boolean;
|
|
193
|
+
force?: boolean;
|
|
194
|
+
}): Promise<void>;
|
|
195
|
+
resolvePath(filePath: string): string;
|
|
196
|
+
private resolveExistingPath;
|
|
197
|
+
private resolveWritablePath;
|
|
198
|
+
private nearestExistingParent;
|
|
199
|
+
private assertInsideWorkspace;
|
|
200
|
+
snapshot(): Promise<SandboxSnapshot>;
|
|
201
|
+
restore(snapshot: SandboxSnapshot): Promise<void>;
|
|
202
|
+
cleanup(): Promise<void>;
|
|
203
|
+
}
|
|
204
|
+
export declare class DockerSandboxEnv implements SandboxEnv {
|
|
205
|
+
readonly cwd = "/workspace";
|
|
206
|
+
readonly capabilities: SandboxCapabilities;
|
|
207
|
+
private readonly hostWorkspacePath;
|
|
208
|
+
private readonly image;
|
|
209
|
+
private readonly env;
|
|
210
|
+
private readonly network;
|
|
211
|
+
private readonly user?;
|
|
212
|
+
private readonly cpus?;
|
|
213
|
+
private readonly memory?;
|
|
214
|
+
private readonly pidsLimit?;
|
|
215
|
+
private readonly readOnlyRootFilesystem;
|
|
216
|
+
private readonly mountReadOnly;
|
|
217
|
+
private readonly outputLimitBytes;
|
|
218
|
+
private readonly ownsWorkspace;
|
|
219
|
+
private readonly snapshotRoot;
|
|
220
|
+
constructor(options: DockerSandboxOptions);
|
|
221
|
+
exec(command: string, options?: SandboxExecOptions): Promise<ShellResult>;
|
|
222
|
+
readFile(filePath: string): Promise<string>;
|
|
223
|
+
readFileBuffer(filePath: string): Promise<Uint8Array>;
|
|
224
|
+
writeFile(filePath: string, content: string | Uint8Array): Promise<void>;
|
|
225
|
+
stat(filePath: string): Promise<FileStat>;
|
|
226
|
+
readdir(dirPath: string): Promise<string[]>;
|
|
227
|
+
exists(filePath: string): Promise<boolean>;
|
|
228
|
+
mkdir(dirPath: string, options?: {
|
|
229
|
+
recursive?: boolean;
|
|
230
|
+
}): Promise<void>;
|
|
231
|
+
rm(filePath: string, options?: {
|
|
232
|
+
recursive?: boolean;
|
|
233
|
+
force?: boolean;
|
|
234
|
+
}): Promise<void>;
|
|
235
|
+
resolvePath(filePath: string): string;
|
|
236
|
+
snapshot(): Promise<SandboxSnapshot>;
|
|
237
|
+
restore(snapshot: SandboxSnapshot): Promise<void>;
|
|
238
|
+
cleanup(): Promise<void>;
|
|
239
|
+
private toContainerPath;
|
|
240
|
+
private toWorkspaceRelativePath;
|
|
241
|
+
}
|
|
242
|
+
export declare function pruneSnapshots(snapshotRoot: string, options?: SnapshotPruneOptions): Promise<SnapshotPruneResult>;
|
|
243
|
+
export declare class UnimplementedSandboxEnv extends EmptySandboxEnv {
|
|
244
|
+
exec(command: string): Promise<ShellResult>;
|
|
245
|
+
}
|
|
246
|
+
export declare function createSandboxEnv(options?: SandboxFactoryOptions): Promise<SandboxEnv>;
|
|
247
|
+
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|