@fabric-harness/connectors 0.2.3 → 0.3.1

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 CHANGED
@@ -1,8 +1,11 @@
1
1
  # @fabric-harness/connectors
2
2
 
3
- > Connector recipes for [Fabric Harness](https://github.com/Fabric-Pro/fabric-harness) — markdown-based provider integrations spanning sandbox, MCP, and data backends.
3
+ > Modular connector helpers and recipes for [Fabric Harness](https://github.com/Fabric-Pro/fabric-harness).
4
4
 
5
- Connectors are markdown installation guides that your AI coding agent reads and turns into a small TypeScript adapter under `connectors/<name>.ts` in your project. Use `fh add` to fetch them.
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
- ## Browse
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 # list available connectors
17
- fh add daytona | claude # pipe to your coding agent
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>;
@@ -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;AAEpH,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IACzE,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,GAAE,6BAAkC,GAAG,cAAc,CAOhH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG;QAAE,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,CAAA;KAAE,GAAG;QAAE,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC;IACpI,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;IAChH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC1H,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,oCAAoC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,GAAE,oCAAyC,GAAG,gBAAgB,CAsBvI;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG;QAAE,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE;YAAE,aAAa,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,IAAI,CAAA;SAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;IACtJ,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7H,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;CAC/D;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,6BAA6B,EAAE,OAAO,GAAE,oCAAyC,GAAG,gBAAgB,CAsBrJ;AAeD,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fabric-harness/connectors",
3
- "version": "0.2.3",
3
+ "version": "0.3.1",
4
4
  "description": "Connector recipes (sandbox, mcp, data) for Fabric Harness — markdown-based provider integrations.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Fabric",