@fabric-harness/connectors 0.2.2 → 0.3.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 +21 -9
- package/dist/index.d.ts +97 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +134 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
# @fabric-harness/connectors
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Modular connector helpers and recipes for [Fabric Harness](https://github.com/Fabric-Pro/fabric-harness).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Use this package in two ways:
|
|
6
|
+
|
|
7
|
+
1. Import provider-neutral helpers such as `remoteSandbox`, `daytonaSandbox`, `e2bSandbox`, `modalSandbox`, `s3FilesystemSource`, and `azureBlobFilesystemSource`.
|
|
8
|
+
2. Use `fh add` to print markdown connector recipes that your coding agent can adapt into project-local files.
|
|
6
9
|
|
|
7
10
|
## Install
|
|
8
11
|
|
|
@@ -10,20 +13,29 @@ Connectors are markdown installation guides that your AI coding agent reads and
|
|
|
10
13
|
npm install @fabric-harness/connectors
|
|
11
14
|
```
|
|
12
15
|
|
|
13
|
-
##
|
|
16
|
+
## Sandbox adapters
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import { daytonaSandbox } from '@fabric-harness/connectors';
|
|
20
|
+
import { Daytona } from '@daytona/sdk';
|
|
21
|
+
|
|
22
|
+
const client = new Daytona({ apiKey: process.env.DAYTONA_API_KEY });
|
|
23
|
+
const sandbox = await client.create();
|
|
24
|
+
const agent = await init({ sandbox: daytonaSandbox(sandbox, { cleanup: true }) });
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The adapters are structural and dependency-free: your app owns provider SDK clients and credentials; Fabric only sees the narrow file/shell `SandboxEnv` contract.
|
|
28
|
+
|
|
29
|
+
## Browse recipes
|
|
14
30
|
|
|
15
31
|
```sh
|
|
16
|
-
fh add
|
|
17
|
-
fh add daytona | claude
|
|
32
|
+
fh add
|
|
33
|
+
fh add daytona | claude
|
|
18
34
|
fh add https://e2b.dev --category sandbox | claude
|
|
19
35
|
```
|
|
20
36
|
|
|
21
37
|
Categories shipped today: `sandbox` (Daytona, E2B, Modal), `mcp` (GitHub), `data` (Postgres).
|
|
22
38
|
|
|
23
|
-
## Documentation
|
|
24
|
-
|
|
25
|
-
- [Connectors](https://fabric-harness.dev/docs/building/connectors)
|
|
26
|
-
|
|
27
39
|
## License
|
|
28
40
|
|
|
29
41
|
Apache-2.0
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,33 @@
|
|
|
1
|
-
import type { FilesystemSource, RemoteSandboxApi, RemoteSandboxOptions, SandboxFactory } from '@fabric-harness/sdk';
|
|
1
|
+
import type { FileStat, FilesystemSource, RemoteSandboxApi, RemoteSandboxOptions, SandboxFactory, SandboxEnv } from '@fabric-harness/sdk';
|
|
2
2
|
export interface RemoteSandboxConnectorOptions extends RemoteSandboxOptions {
|
|
3
3
|
/** Override the session workspace path when the factory is invoked. */
|
|
4
4
|
workspacePath?: string;
|
|
5
5
|
}
|
|
6
|
+
export interface ProviderCleanupOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Cleanup behavior when the Fabric sandbox is cleaned up.
|
|
9
|
+
*
|
|
10
|
+
* - `false`/undefined: provider lifecycle is owned by the caller.
|
|
11
|
+
* - `true`: call the provider's conventional cleanup method when available.
|
|
12
|
+
* - function: call the supplied cleanup hook.
|
|
13
|
+
*/
|
|
14
|
+
cleanup?: boolean | (() => void | Promise<void>);
|
|
15
|
+
}
|
|
16
|
+
export interface RemoteAdapterOptions extends ProviderCleanupOptions {
|
|
17
|
+
cwd?: string;
|
|
18
|
+
capabilities?: RemoteSandboxOptions['capabilities'];
|
|
19
|
+
}
|
|
20
|
+
export interface SandboxAdapterValidationResult {
|
|
21
|
+
ok: true;
|
|
22
|
+
cwd: string;
|
|
23
|
+
stdout: string;
|
|
24
|
+
fileContent: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SandboxAdapterValidationOptions {
|
|
27
|
+
directory?: string;
|
|
28
|
+
command?: string;
|
|
29
|
+
expectedStdout?: string;
|
|
30
|
+
}
|
|
6
31
|
/**
|
|
7
32
|
* Dependency-free structural connector for provider-owned remote sandboxes.
|
|
8
33
|
*
|
|
@@ -11,6 +36,77 @@ export interface RemoteSandboxConnectorOptions extends RemoteSandboxOptions {
|
|
|
11
36
|
* in the provider client and are never serialized into Fabric session history.
|
|
12
37
|
*/
|
|
13
38
|
export declare function remoteSandbox(api: RemoteSandboxApi, options?: RemoteSandboxConnectorOptions): SandboxFactory;
|
|
39
|
+
export declare function remoteSandboxEnv(api: RemoteSandboxApi, options?: RemoteAdapterOptions): SandboxEnv;
|
|
40
|
+
export interface DaytonaSandboxLike {
|
|
41
|
+
fs: {
|
|
42
|
+
downloadFile(path: string): Promise<Uint8Array | ArrayBuffer | {
|
|
43
|
+
toString(encoding?: string): string;
|
|
44
|
+
}>;
|
|
45
|
+
uploadFile(content: Uint8Array, path: string): Promise<void>;
|
|
46
|
+
getFileDetails(path: string): Promise<{
|
|
47
|
+
isDir?: boolean;
|
|
48
|
+
size?: number;
|
|
49
|
+
modTime?: string | Date;
|
|
50
|
+
mode?: number;
|
|
51
|
+
}>;
|
|
52
|
+
listFiles(path: string): Promise<Array<{
|
|
53
|
+
name?: string;
|
|
54
|
+
} | string>>;
|
|
55
|
+
createFolder(path: string, mode?: string): Promise<void>;
|
|
56
|
+
deleteFile(path: string, recursive?: boolean): Promise<void>;
|
|
57
|
+
};
|
|
58
|
+
process: {
|
|
59
|
+
executeCommand(command: string, cwd?: string, env?: Record<string, string>, timeout?: number): Promise<{
|
|
60
|
+
result?: string;
|
|
61
|
+
stdout?: string;
|
|
62
|
+
stderr?: string;
|
|
63
|
+
exitCode?: number;
|
|
64
|
+
}>;
|
|
65
|
+
};
|
|
66
|
+
getWorkDir?(): Promise<string | undefined> | string | undefined;
|
|
67
|
+
delete?(): Promise<void> | void;
|
|
68
|
+
}
|
|
69
|
+
export interface DaytonaSandboxOptions extends RemoteAdapterOptions {
|
|
70
|
+
/** Defaults to Daytona's workdir when available, otherwise `/home/daytona`. */
|
|
71
|
+
cwd?: string;
|
|
72
|
+
}
|
|
73
|
+
export declare function daytonaSandbox(sandbox: DaytonaSandboxLike, options?: DaytonaSandboxOptions): SandboxEnv;
|
|
74
|
+
export declare function daytonaSandboxFactory(sandbox: DaytonaSandboxLike, options?: DaytonaSandboxOptions): Promise<SandboxFactory>;
|
|
75
|
+
export interface E2BSandboxLike {
|
|
76
|
+
commands: {
|
|
77
|
+
run(command: string, options?: {
|
|
78
|
+
cwd?: string;
|
|
79
|
+
envs?: Record<string, string>;
|
|
80
|
+
timeoutMs?: number;
|
|
81
|
+
}): Promise<{
|
|
82
|
+
stdout?: string;
|
|
83
|
+
stderr?: string;
|
|
84
|
+
exitCode?: number;
|
|
85
|
+
}>;
|
|
86
|
+
};
|
|
87
|
+
files: {
|
|
88
|
+
read(path: string): Promise<string>;
|
|
89
|
+
readBytes?(path: string): Promise<Uint8Array>;
|
|
90
|
+
write(path: string, content: string | Uint8Array): Promise<void>;
|
|
91
|
+
stat(path: string): Promise<FileStat>;
|
|
92
|
+
list(path: string): Promise<string[]>;
|
|
93
|
+
exists(path: string): Promise<boolean>;
|
|
94
|
+
makeDir(path: string, options?: {
|
|
95
|
+
recursive?: boolean;
|
|
96
|
+
}): Promise<void>;
|
|
97
|
+
remove(path: string, options?: {
|
|
98
|
+
recursive?: boolean;
|
|
99
|
+
force?: boolean;
|
|
100
|
+
}): Promise<void>;
|
|
101
|
+
};
|
|
102
|
+
kill?(): Promise<void> | void;
|
|
103
|
+
}
|
|
104
|
+
export declare function e2bSandbox(sandbox: E2BSandboxLike, options?: RemoteAdapterOptions): SandboxEnv;
|
|
105
|
+
export interface ModalSandboxLike extends RemoteSandboxApi {
|
|
106
|
+
cleanup?(): Promise<void> | void;
|
|
107
|
+
}
|
|
108
|
+
export declare function modalSandbox(sandbox: ModalSandboxLike, options?: RemoteAdapterOptions): SandboxEnv;
|
|
109
|
+
export declare function validateSandboxAdapter(env: SandboxEnv, options?: SandboxAdapterValidationOptions): Promise<SandboxAdapterValidationResult>;
|
|
14
110
|
export interface S3ObjectBodyLike {
|
|
15
111
|
body: string | Uint8Array | ArrayBuffer | {
|
|
16
112
|
transformToByteArray(): Promise<Uint8Array>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,140 @@ export function remoteSandbox(api, options = {}) {
|
|
|
15
15
|
return createRemoteSandboxEnv(api, remoteOptions);
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
+
export function remoteSandboxEnv(api, options = {}) {
|
|
19
|
+
const cleanup = cleanupHook(options.cleanup, undefined);
|
|
20
|
+
return createRemoteSandboxEnv(api, {
|
|
21
|
+
...(options.cwd ? { cwd: options.cwd } : {}),
|
|
22
|
+
...(options.capabilities ? { capabilities: options.capabilities } : {}),
|
|
23
|
+
...(cleanup ? { cleanup } : {}),
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
export function daytonaSandbox(sandbox, options = {}) {
|
|
27
|
+
const api = {
|
|
28
|
+
async exec(command, execOptions) {
|
|
29
|
+
const response = await sandbox.process.executeCommand(command, execOptions?.cwd, execOptions?.env, execOptions?.timeout);
|
|
30
|
+
return shellResult(command, response.exitCode, response.stdout ?? response.result, response.stderr);
|
|
31
|
+
},
|
|
32
|
+
async readFile(path) {
|
|
33
|
+
const data = await sandbox.fs.downloadFile(path);
|
|
34
|
+
return bytesToText(data);
|
|
35
|
+
},
|
|
36
|
+
async readFileBuffer(path) {
|
|
37
|
+
return bytesToUint8(await sandbox.fs.downloadFile(path));
|
|
38
|
+
},
|
|
39
|
+
async writeFile(path, content) {
|
|
40
|
+
await sandbox.fs.uploadFile(typeof content === 'string' ? new TextEncoder().encode(content) : content, path);
|
|
41
|
+
},
|
|
42
|
+
async stat(path) {
|
|
43
|
+
const info = await sandbox.fs.getFileDetails(path);
|
|
44
|
+
return { type: info.isDir ? 'directory' : 'file', size: info.size ?? 0, ...(info.modTime ? { mtime: new Date(info.modTime) } : {}), ...(info.mode !== undefined ? { mode: info.mode } : {}) };
|
|
45
|
+
},
|
|
46
|
+
async readdir(path) {
|
|
47
|
+
const entries = await sandbox.fs.listFiles(path);
|
|
48
|
+
return entries.map((entry) => typeof entry === 'string' ? entry : entry.name).filter((name) => Boolean(name));
|
|
49
|
+
},
|
|
50
|
+
async exists(path) {
|
|
51
|
+
try {
|
|
52
|
+
await sandbox.fs.getFileDetails(path);
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
async mkdir(path, mkdirOptions) {
|
|
60
|
+
if (mkdirOptions?.recursive) {
|
|
61
|
+
await api.exec(`mkdir -p ${shellQuote(path)}`);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
await sandbox.fs.createFolder(path, '755');
|
|
65
|
+
},
|
|
66
|
+
async rm(path, rmOptions) {
|
|
67
|
+
await sandbox.fs.deleteFile(path, rmOptions?.recursive);
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
const cleanup = cleanupHook(options.cleanup, () => sandbox.delete?.());
|
|
71
|
+
return createRemoteSandboxEnv(api, {
|
|
72
|
+
cwd: options.cwd ?? '/home/daytona',
|
|
73
|
+
...(options.capabilities ? { capabilities: options.capabilities } : {}),
|
|
74
|
+
...(cleanup ? { cleanup } : {}),
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
export async function daytonaSandboxFactory(sandbox, options = {}) {
|
|
78
|
+
const cwd = options.cwd ?? await sandbox.getWorkDir?.() ?? '/home/daytona';
|
|
79
|
+
return () => daytonaSandbox(sandbox, { ...options, cwd });
|
|
80
|
+
}
|
|
81
|
+
export function e2bSandbox(sandbox, options = {}) {
|
|
82
|
+
const api = {
|
|
83
|
+
async exec(command, execOptions) {
|
|
84
|
+
const runOptions = {};
|
|
85
|
+
if (execOptions?.cwd !== undefined)
|
|
86
|
+
runOptions.cwd = execOptions.cwd;
|
|
87
|
+
if (execOptions?.env !== undefined)
|
|
88
|
+
runOptions.envs = execOptions.env;
|
|
89
|
+
if (execOptions?.timeout !== undefined)
|
|
90
|
+
runOptions.timeoutMs = execOptions.timeout;
|
|
91
|
+
const result = await sandbox.commands.run(command, runOptions);
|
|
92
|
+
return shellResult(command, result.exitCode, result.stdout, result.stderr);
|
|
93
|
+
},
|
|
94
|
+
readFile: (path) => sandbox.files.read(path),
|
|
95
|
+
readFileBuffer: async (path) => sandbox.files.readBytes ? sandbox.files.readBytes(path) : new TextEncoder().encode(await sandbox.files.read(path)),
|
|
96
|
+
writeFile: (path, content) => sandbox.files.write(path, content),
|
|
97
|
+
stat: (path) => sandbox.files.stat(path),
|
|
98
|
+
readdir: (path) => sandbox.files.list(path),
|
|
99
|
+
exists: (path) => sandbox.files.exists(path),
|
|
100
|
+
mkdir: (path, mkdirOptions) => sandbox.files.makeDir(path, mkdirOptions),
|
|
101
|
+
rm: (path, rmOptions) => sandbox.files.remove(path, rmOptions),
|
|
102
|
+
};
|
|
103
|
+
const cleanup = cleanupHook(options.cleanup, () => sandbox.kill?.());
|
|
104
|
+
return createRemoteSandboxEnv(api, { cwd: options.cwd ?? '/workspace', ...(cleanup ? { cleanup } : {}), ...(options.capabilities ? { capabilities: options.capabilities } : {}) });
|
|
105
|
+
}
|
|
106
|
+
export function modalSandbox(sandbox, options = {}) {
|
|
107
|
+
const cleanup = cleanupHook(options.cleanup, () => sandbox.cleanup?.());
|
|
108
|
+
return createRemoteSandboxEnv(sandbox, { cwd: options.cwd ?? '/workspace', ...(cleanup ? { cleanup } : {}), ...(options.capabilities ? { capabilities: options.capabilities } : {}) });
|
|
109
|
+
}
|
|
110
|
+
function cleanupHook(cleanup, conventional) {
|
|
111
|
+
if (typeof cleanup === 'function')
|
|
112
|
+
return async () => { await cleanup(); };
|
|
113
|
+
if (cleanup === true && conventional)
|
|
114
|
+
return async () => { await conventional(); };
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
function shellResult(command, exitCode = 0, stdout = '', stderr = '') {
|
|
118
|
+
return { command, exitCode, stdout, stderr };
|
|
119
|
+
}
|
|
120
|
+
function bytesToUint8(value) {
|
|
121
|
+
if (value instanceof Uint8Array)
|
|
122
|
+
return value;
|
|
123
|
+
if (value instanceof ArrayBuffer)
|
|
124
|
+
return new Uint8Array(value);
|
|
125
|
+
return new TextEncoder().encode(value.toString('utf-8'));
|
|
126
|
+
}
|
|
127
|
+
function bytesToText(value) {
|
|
128
|
+
if (!(value instanceof Uint8Array) && !(value instanceof ArrayBuffer))
|
|
129
|
+
return value.toString('utf-8');
|
|
130
|
+
return new TextDecoder().decode(bytesToUint8(value));
|
|
131
|
+
}
|
|
132
|
+
function shellQuote(value) {
|
|
133
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
134
|
+
}
|
|
135
|
+
export async function validateSandboxAdapter(env, options = {}) {
|
|
136
|
+
const directory = options.directory ?? '.fabric-harness-adapter-check';
|
|
137
|
+
const command = options.command ?? 'printf fabric-harness-adapter-ok';
|
|
138
|
+
const expectedStdout = options.expectedStdout ?? 'fabric-harness-adapter-ok';
|
|
139
|
+
await env.mkdir(directory, { recursive: true });
|
|
140
|
+
await env.writeFile(`${directory}/probe.txt`, 'probe');
|
|
141
|
+
const fileContent = await env.readFile(`${directory}/probe.txt`);
|
|
142
|
+
const result = await env.exec(command, { cwd: env.cwd });
|
|
143
|
+
if (fileContent !== 'probe')
|
|
144
|
+
throw new Error(`Sandbox adapter validation failed: read/write round trip returned ${JSON.stringify(fileContent)}.`);
|
|
145
|
+
if (result.exitCode !== 0)
|
|
146
|
+
throw new Error(`Sandbox adapter validation failed: command exited ${result.exitCode}: ${result.stderr}`);
|
|
147
|
+
if (!result.stdout.includes(expectedStdout))
|
|
148
|
+
throw new Error(`Sandbox adapter validation failed: stdout ${JSON.stringify(result.stdout)} did not include ${JSON.stringify(expectedStdout)}.`);
|
|
149
|
+
await env.rm(directory, { recursive: true, force: true }).catch(() => undefined);
|
|
150
|
+
return { ok: true, cwd: env.cwd, stdout: result.stdout, fileContent };
|
|
151
|
+
}
|
|
18
152
|
export function s3FilesystemSource(client, options = {}) {
|
|
19
153
|
const prefix = options.prefix ?? '';
|
|
20
154
|
const stripPrefix = options.stripPrefix ?? prefix;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED