@fabric-harness/sdk 0.1.2 → 0.2.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 +7 -6
- package/dist/agent-definition.d.ts +20 -8
- package/dist/agent-definition.d.ts.map +1 -1
- package/dist/agent-definition.js +46 -8
- package/dist/agent-definition.js.map +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +3 -0
- package/dist/agent.js.map +1 -1
- package/dist/cloudflare-source.d.ts +61 -0
- package/dist/cloudflare-source.d.ts.map +1 -0
- package/dist/cloudflare-source.js +73 -0
- package/dist/cloudflare-source.js.map +1 -0
- package/dist/filesystem-source.d.ts +62 -0
- package/dist/filesystem-source.d.ts.map +1 -1
- package/dist/filesystem-source.js +109 -0
- package/dist/filesystem-source.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/lite.d.ts +7 -4
- package/dist/lite.d.ts.map +1 -1
- package/dist/lite.js +4 -2
- package/dist/lite.js.map +1 -1
- package/dist/pi-loop-runtime.d.ts +34 -0
- package/dist/pi-loop-runtime.d.ts.map +1 -0
- package/dist/pi-loop-runtime.js +274 -0
- package/dist/pi-loop-runtime.js.map +1 -0
- package/dist/sandbox.d.ts +13 -2
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +125 -90
- package/dist/sandbox.js.map +1 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +31 -8
- package/dist/session.js.map +1 -1
- package/dist/types.d.ts +8 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/virtual-sandbox.d.ts +45 -0
- package/dist/virtual-sandbox.d.ts.map +1 -0
- package/dist/virtual-sandbox.js +128 -0
- package/dist/virtual-sandbox.js.map +1 -0
- package/package.json +16 -9
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ pnpm add @fabric-harness/sdk
|
|
|
12
12
|
|
|
13
13
|
## Quick start
|
|
14
14
|
|
|
15
|
-
###
|
|
15
|
+
### Lite SDK entrypoint (10 lines)
|
|
16
16
|
|
|
17
17
|
```ts
|
|
18
18
|
import { defineAgent } from '@fabric-harness/sdk/lite';
|
|
@@ -26,7 +26,7 @@ export default defineAgent(async ({ init, payload }) => {
|
|
|
26
26
|
}, { name: 'echo', triggers: { webhook: true } });
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
### Full
|
|
29
|
+
### Full SDK entrypoint (typed I/O + capability policy + skills)
|
|
30
30
|
|
|
31
31
|
```ts
|
|
32
32
|
import { agent, schema } from '@fabric-harness/sdk';
|
|
@@ -43,12 +43,12 @@ export default agent({
|
|
|
43
43
|
});
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
Both
|
|
46
|
+
Both entrypoints share the same `init()`, `session.prompt()` / `skill()` / `task()` / `shell()` APIs. Runtime (`stateless`, `inline`, or `temporal`) is a separate choice. Pick the entrypoint by import surface; pick the runtime by persistence/durability needs.
|
|
47
47
|
|
|
48
48
|
## Two entry points
|
|
49
49
|
|
|
50
|
-
- **`@fabric-harness/sdk`** — full surface:
|
|
51
|
-
- **`@fabric-harness/sdk/lite`** — trimmed entry for headless / edge deployments. Same
|
|
50
|
+
- **`@fabric-harness/sdk`** — full surface: everything in Lite plus provider implementations, policy evaluators, built-in tools, stores, telemetry, result extraction, Docker/remote sandbox helpers, and stdio MCP.
|
|
51
|
+
- **`@fabric-harness/sdk/lite`** — trimmed entry for headless / edge deployments. Same session primitives plus local/empty/remote sandbox helpers; smaller import graph.
|
|
52
52
|
|
|
53
53
|
## What's in the box
|
|
54
54
|
|
|
@@ -63,7 +63,8 @@ Both modes share the same runtime, the same `init()`, the same `session.prompt()
|
|
|
63
63
|
|
|
64
64
|
## Documentation
|
|
65
65
|
|
|
66
|
-
- [Headless
|
|
66
|
+
- [Headless agents with the Lite SDK](https://harness.fabric.pro/docs/getting-started/headless-mode)
|
|
67
|
+
- [SDK entrypoints, runtimes, and targets](https://harness.fabric.pro/docs/reference/sdk-entrypoints-runtimes-targets)
|
|
67
68
|
- [Runtime modes](https://harness.fabric.pro/docs/reference/runtime-modes)
|
|
68
69
|
- [Filesystem sources](https://harness.fabric.pro/docs/reference/filesystem-sources)
|
|
69
70
|
- [Full reference](https://harness.fabric.pro/docs)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FabricContext, JsonObject } from './types.js';
|
|
1
|
+
import type { FabricContext, JsonObject, Skill } from './types.js';
|
|
2
2
|
import type { Schema } from './schema.js';
|
|
3
3
|
export interface AgentTriggers {
|
|
4
4
|
webhook?: boolean;
|
|
@@ -13,6 +13,7 @@ export interface AgentDefinition<TInput = JsonObject, TOutput = unknown> {
|
|
|
13
13
|
output?: Schema<TOutput>;
|
|
14
14
|
model?: string;
|
|
15
15
|
target?: 'node' | 'temporal-worker';
|
|
16
|
+
skills?: Skill[];
|
|
16
17
|
triggers?: AgentTriggers;
|
|
17
18
|
run: (context: FabricContext<TInput> & {
|
|
18
19
|
input: TInput;
|
|
@@ -34,6 +35,7 @@ export interface DefineAgentOptions {
|
|
|
34
35
|
description?: string;
|
|
35
36
|
model?: string;
|
|
36
37
|
target?: 'node' | 'temporal-worker';
|
|
38
|
+
skills?: Skill[];
|
|
37
39
|
triggers?: AgentTriggers;
|
|
38
40
|
}
|
|
39
41
|
/**
|
|
@@ -41,18 +43,28 @@ export interface DefineAgentOptions {
|
|
|
41
43
|
* `agent({ run: handler, ...options })` with no input/output schema —
|
|
42
44
|
* payload is `unknown`, return value passes through unchanged.
|
|
43
45
|
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
46
|
+
* **Lite-mode defaults applied automatically** (each can be overridden):
|
|
47
|
+
*
|
|
48
|
+
* - `runtime: 'stateless'` — no session store; no persistence between calls.
|
|
49
|
+
* The lite path is for headless / edge / one-shot agents.
|
|
50
|
+
* - `sandbox: 'virtual'` — in-memory filesystem with `bash`, `grep`, `glob`,
|
|
51
|
+
* `read`, `mkdir`, `rm`, `cat`. No host shell access. Override with
|
|
52
|
+
* `'local'`, `'docker'`, a `SandboxFactory`, or a `SandboxEnv`.
|
|
53
|
+
*
|
|
54
|
+
* Pass `<TPayload>` to type the incoming `payload` without `as` casts:
|
|
47
55
|
*
|
|
48
56
|
* ```ts
|
|
49
|
-
* import { defineAgent } from '@fabric-harness/sdk';
|
|
57
|
+
* import { defineAgent } from '@fabric-harness/sdk/lite';
|
|
50
58
|
*
|
|
51
|
-
* export default defineAgent(async ({ init, payload }) => {
|
|
59
|
+
* export default defineAgent<{ message: string }>(async ({ init, payload }) => {
|
|
52
60
|
* const session = await (await init({ model: 'anthropic/claude-sonnet-4-6' })).session();
|
|
53
|
-
* return { reply:
|
|
54
|
-
* });
|
|
61
|
+
* return { reply: await session.prompt<string>(payload.message) };
|
|
62
|
+
* }, { name: 'echo', triggers: { webhook: true } });
|
|
55
63
|
* ```
|
|
64
|
+
*
|
|
65
|
+
* For production agents with typed I/O, capability policy, approvals,
|
|
66
|
+
* artifacts, or durable runtime, use `agent({...})` directly — the full
|
|
67
|
+
* builder keeps `runtime: 'inline'` as its default.
|
|
56
68
|
*/
|
|
57
69
|
export declare function defineAgent<TPayload = unknown, TOutput = unknown>(handler: (context: FabricContext<TPayload> & {
|
|
58
70
|
input: TPayload;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-definition.d.ts","sourceRoot":"","sources":["../src/agent-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-definition.d.ts","sourceRoot":"","sources":["../src/agent-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAc1C,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC;CACxD;AAED,MAAM,WAAW,eAAe,CAAC,MAAM,GAAG,UAAU,EAAE,OAAO,GAAG,OAAO;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACpC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,GAAG,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACzF;AAED,QAAA,MAAM,gBAAgB,eAAgD,CAAC;AAEvE,MAAM,MAAM,YAAY,CAAC,MAAM,GAAG,UAAU,EAAE,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG;IACpI,QAAQ,CAAC,CAAC,gBAAgB,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9D,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3D,CAAC;AAEF,wBAAgB,KAAK,CAAC,MAAM,GAAG,UAAU,EAAE,OAAO,GAAG,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzI;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,CAIhG;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACpC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,WAAW,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAC/D,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,EAC/F,OAAO,GAAE,kBAAuB,GAC/B,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAqBjC"}
|
package/dist/agent-definition.js
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
import { createPiAgentLoopRuntime } from './pi-loop-runtime.js';
|
|
2
|
+
/**
|
|
3
|
+
* Lazy singleton: the lite-mode default loop runtime is `pi-agent-core`.
|
|
4
|
+
* Constructed on first lite-mode `init()` call so users who never use
|
|
5
|
+
* `defineAgent` don't pay the construction cost.
|
|
6
|
+
*/
|
|
7
|
+
let _liteLoopRuntime;
|
|
8
|
+
function getLiteLoopRuntime() {
|
|
9
|
+
if (!_liteLoopRuntime)
|
|
10
|
+
_liteLoopRuntime = createPiAgentLoopRuntime();
|
|
11
|
+
return _liteLoopRuntime;
|
|
12
|
+
}
|
|
1
13
|
const definitionSymbol = Symbol.for('fabric-harness.agent-definition');
|
|
2
14
|
export function agent(definition) {
|
|
3
15
|
const handler = (async (context) => {
|
|
@@ -10,6 +22,7 @@ export function agent(definition) {
|
|
|
10
22
|
...(definition.model && options.model === undefined ? { model: definition.model } : {}),
|
|
11
23
|
...options,
|
|
12
24
|
...(definition.name && options.name === undefined ? { name: definition.name } : {}),
|
|
25
|
+
...(definition.skills || options.skills ? { skills: [...(definition.skills ?? []), ...(options.skills ?? [])] } : {}),
|
|
13
26
|
}),
|
|
14
27
|
};
|
|
15
28
|
const output = await definition.run(wrappedContext);
|
|
@@ -30,23 +43,48 @@ export function getAgentDefinition(value) {
|
|
|
30
43
|
* `agent({ run: handler, ...options })` with no input/output schema —
|
|
31
44
|
* payload is `unknown`, return value passes through unchanged.
|
|
32
45
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
46
|
+
* **Lite-mode defaults applied automatically** (each can be overridden):
|
|
47
|
+
*
|
|
48
|
+
* - `runtime: 'stateless'` — no session store; no persistence between calls.
|
|
49
|
+
* The lite path is for headless / edge / one-shot agents.
|
|
50
|
+
* - `sandbox: 'virtual'` — in-memory filesystem with `bash`, `grep`, `glob`,
|
|
51
|
+
* `read`, `mkdir`, `rm`, `cat`. No host shell access. Override with
|
|
52
|
+
* `'local'`, `'docker'`, a `SandboxFactory`, or a `SandboxEnv`.
|
|
53
|
+
*
|
|
54
|
+
* Pass `<TPayload>` to type the incoming `payload` without `as` casts:
|
|
36
55
|
*
|
|
37
56
|
* ```ts
|
|
38
|
-
* import { defineAgent } from '@fabric-harness/sdk';
|
|
57
|
+
* import { defineAgent } from '@fabric-harness/sdk/lite';
|
|
39
58
|
*
|
|
40
|
-
* export default defineAgent(async ({ init, payload }) => {
|
|
59
|
+
* export default defineAgent<{ message: string }>(async ({ init, payload }) => {
|
|
41
60
|
* const session = await (await init({ model: 'anthropic/claude-sonnet-4-6' })).session();
|
|
42
|
-
* return { reply:
|
|
43
|
-
* });
|
|
61
|
+
* return { reply: await session.prompt<string>(payload.message) };
|
|
62
|
+
* }, { name: 'echo', triggers: { webhook: true } });
|
|
44
63
|
* ```
|
|
64
|
+
*
|
|
65
|
+
* For production agents with typed I/O, capability policy, approvals,
|
|
66
|
+
* artifacts, or durable runtime, use `agent({...})` directly — the full
|
|
67
|
+
* builder keeps `runtime: 'inline'` as its default.
|
|
45
68
|
*/
|
|
46
69
|
export function defineAgent(handler, options = {}) {
|
|
70
|
+
// Wrap the handler so that, by default, lite-mode init() calls inherit
|
|
71
|
+
// `runtime: 'stateless'` and `sandbox: 'virtual'`. Both are pre-empted
|
|
72
|
+
// by anything the caller passes explicitly.
|
|
73
|
+
const wrapped = async (context) => {
|
|
74
|
+
const liteContext = {
|
|
75
|
+
...context,
|
|
76
|
+
init: async (init = {}) => context.init({
|
|
77
|
+
...init,
|
|
78
|
+
runtime: init.runtime ?? 'stateless',
|
|
79
|
+
sandbox: init.sandbox ?? 'virtual',
|
|
80
|
+
loopRuntime: init.loopRuntime ?? getLiteLoopRuntime(),
|
|
81
|
+
}),
|
|
82
|
+
};
|
|
83
|
+
return handler(liteContext);
|
|
84
|
+
};
|
|
47
85
|
return agent({
|
|
48
86
|
...options,
|
|
49
|
-
run:
|
|
87
|
+
run: wrapped,
|
|
50
88
|
});
|
|
51
89
|
}
|
|
52
90
|
//# sourceMappingURL=agent-definition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-definition.js","sourceRoot":"","sources":["../src/agent-definition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-definition.js","sourceRoot":"","sources":["../src/agent-definition.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAa9F,qBAAa,eAAgB,YAAW,WAAW;IAMrC,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;gBAEH,OAAO,GAAE,SAAc;IAqB9C,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAa9F,qBAAa,eAAgB,YAAW,WAAW;IAMrC,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;gBAEH,OAAO,GAAE,SAAc;IAqB9C,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA0DrF;AAED,wBAAsB,IAAI,CAAC,OAAO,GAAE,SAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAExE"}
|
package/dist/agent.js
CHANGED
|
@@ -63,6 +63,9 @@ export class StubFabricAgent {
|
|
|
63
63
|
if (sessionOptions.policy === undefined && this.options.policy !== undefined) {
|
|
64
64
|
sessionOptions.policy = this.options.policy;
|
|
65
65
|
}
|
|
66
|
+
if (sessionOptions.cwd === undefined && this.options.cwd !== undefined) {
|
|
67
|
+
sessionOptions.cwd = this.options.cwd;
|
|
68
|
+
}
|
|
66
69
|
if (sessionOptions.store === undefined && this.options.store !== undefined) {
|
|
67
70
|
sessionOptions.store = this.options.store;
|
|
68
71
|
}
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fabric-harness/sdk/cloudflare — minimal Cloudflare helpers bundled
|
|
3
|
+
* directly into the SDK so that lite-mode agents on Cloudflare Workers
|
|
4
|
+
* can use R2-backed filesystem sources with a single install.
|
|
5
|
+
*
|
|
6
|
+
* For the full Cloudflare Workers + Sandbox + Durable Object session
|
|
7
|
+
* store surface, install `@fabric-harness/cloudflare` separately.
|
|
8
|
+
*/
|
|
9
|
+
import type { FilesystemSource } from './filesystem-source.js';
|
|
10
|
+
export interface CloudflareR2ObjectBodyLike {
|
|
11
|
+
arrayBuffer(): Promise<ArrayBuffer>;
|
|
12
|
+
}
|
|
13
|
+
export interface CloudflareR2ListResultLike {
|
|
14
|
+
objects: Array<{
|
|
15
|
+
key: string;
|
|
16
|
+
size?: number;
|
|
17
|
+
uploaded?: Date | string;
|
|
18
|
+
customMetadata?: Record<string, string>;
|
|
19
|
+
}>;
|
|
20
|
+
truncated?: boolean;
|
|
21
|
+
cursor?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface CloudflareR2BucketLike {
|
|
24
|
+
get(key: string): Promise<CloudflareR2ObjectBodyLike | null>;
|
|
25
|
+
list?(options?: {
|
|
26
|
+
prefix?: string;
|
|
27
|
+
cursor?: string;
|
|
28
|
+
limit?: number;
|
|
29
|
+
}): Promise<CloudflareR2ListResultLike>;
|
|
30
|
+
}
|
|
31
|
+
export interface R2FilesystemSourceOptions {
|
|
32
|
+
/** Prefix to enumerate in the bucket, for example `knowledge-base/`. */
|
|
33
|
+
prefix?: string;
|
|
34
|
+
/** Optional stable source name used in logs/telemetry. */
|
|
35
|
+
name?: string;
|
|
36
|
+
/** Remove this prefix from mounted file paths. Defaults to `prefix`. */
|
|
37
|
+
stripPrefix?: string;
|
|
38
|
+
/** Include only selected object keys. */
|
|
39
|
+
include?: (key: string) => boolean;
|
|
40
|
+
/** Max list page size when the runtime supports it. */
|
|
41
|
+
pageSize?: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Read Cloudflare R2 objects as a Fabric filesystem source. Mount it
|
|
45
|
+
* with `withFilesystemSources()` (or `getVirtualSandbox(...)`) so
|
|
46
|
+
* agents can grep/read R2-backed knowledge bases through the normal
|
|
47
|
+
* sandbox tools.
|
|
48
|
+
*
|
|
49
|
+
* ```ts
|
|
50
|
+
* import { defineAgent, getVirtualSandbox } from '@fabric-harness/sdk/lite';
|
|
51
|
+
* import { r2FilesystemSource } from '@fabric-harness/sdk/cloudflare';
|
|
52
|
+
*
|
|
53
|
+
* export default defineAgent(async ({ init, payload, env }) => {
|
|
54
|
+
* const sandbox = getVirtualSandbox(r2FilesystemSource(env.SUPPORT_KB));
|
|
55
|
+
* const session = await (await init({ sandbox })).session();
|
|
56
|
+
* return { reply: await session.prompt<string>(String((payload as any)?.message ?? '')) };
|
|
57
|
+
* });
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export declare function r2FilesystemSource(bucket: CloudflareR2BucketLike, options?: R2FilesystemSourceOptions): FilesystemSource;
|
|
61
|
+
//# sourceMappingURL=cloudflare-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-source.d.ts","sourceRoot":"","sources":["../src/cloudflare-source.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,0BAA0B;IACzC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,KAAK,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACzC,CAAC,CAAC;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAC;IAC7D,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAC5G;AAED,MAAM,WAAW,yBAAyB;IACxC,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,GAAE,yBAA8B,GACtC,gBAAgB,CAsClB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fabric-harness/sdk/cloudflare — minimal Cloudflare helpers bundled
|
|
3
|
+
* directly into the SDK so that lite-mode agents on Cloudflare Workers
|
|
4
|
+
* can use R2-backed filesystem sources with a single install.
|
|
5
|
+
*
|
|
6
|
+
* For the full Cloudflare Workers + Sandbox + Durable Object session
|
|
7
|
+
* store surface, install `@fabric-harness/cloudflare` separately.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Read Cloudflare R2 objects as a Fabric filesystem source. Mount it
|
|
11
|
+
* with `withFilesystemSources()` (or `getVirtualSandbox(...)`) so
|
|
12
|
+
* agents can grep/read R2-backed knowledge bases through the normal
|
|
13
|
+
* sandbox tools.
|
|
14
|
+
*
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { defineAgent, getVirtualSandbox } from '@fabric-harness/sdk/lite';
|
|
17
|
+
* import { r2FilesystemSource } from '@fabric-harness/sdk/cloudflare';
|
|
18
|
+
*
|
|
19
|
+
* export default defineAgent(async ({ init, payload, env }) => {
|
|
20
|
+
* const sandbox = getVirtualSandbox(r2FilesystemSource(env.SUPPORT_KB));
|
|
21
|
+
* const session = await (await init({ sandbox })).session();
|
|
22
|
+
* return { reply: await session.prompt<string>(String((payload as any)?.message ?? '')) };
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export function r2FilesystemSource(bucket, options = {}) {
|
|
27
|
+
if (!bucket.list)
|
|
28
|
+
throw new Error('r2FilesystemSource requires an R2 bucket with list().');
|
|
29
|
+
const prefix = options.prefix ?? '';
|
|
30
|
+
const stripPrefix = options.stripPrefix ?? prefix;
|
|
31
|
+
const include = options.include ?? (() => true);
|
|
32
|
+
return {
|
|
33
|
+
name: options.name ?? `r2:${prefix || '/'}`,
|
|
34
|
+
async *entries() {
|
|
35
|
+
let cursor;
|
|
36
|
+
do {
|
|
37
|
+
const page = await bucket.list({
|
|
38
|
+
...(prefix ? { prefix } : {}),
|
|
39
|
+
...(cursor ? { cursor } : {}),
|
|
40
|
+
...(options.pageSize ? { limit: options.pageSize } : {}),
|
|
41
|
+
});
|
|
42
|
+
for (const object of page.objects) {
|
|
43
|
+
if (!include(object.key))
|
|
44
|
+
continue;
|
|
45
|
+
const body = await bucket.get(object.key);
|
|
46
|
+
if (!body)
|
|
47
|
+
continue;
|
|
48
|
+
const relative = normalizeR2RelativePath(object.key, stripPrefix);
|
|
49
|
+
if (!relative)
|
|
50
|
+
continue;
|
|
51
|
+
yield {
|
|
52
|
+
path: relative,
|
|
53
|
+
content: new Uint8Array(await body.arrayBuffer()),
|
|
54
|
+
metadata: {
|
|
55
|
+
key: object.key,
|
|
56
|
+
...(object.size !== undefined ? { size: object.size } : {}),
|
|
57
|
+
...(object.uploaded !== undefined
|
|
58
|
+
? { uploaded: object.uploaded instanceof Date ? object.uploaded.toISOString() : object.uploaded }
|
|
59
|
+
: {}),
|
|
60
|
+
...(object.customMetadata !== undefined ? { customMetadata: object.customMetadata } : {}),
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
cursor = page.truncated ? page.cursor : undefined;
|
|
65
|
+
} while (cursor);
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function normalizeR2RelativePath(key, stripPrefix) {
|
|
70
|
+
const stripped = stripPrefix && key.startsWith(stripPrefix) ? key.slice(stripPrefix.length) : key;
|
|
71
|
+
return stripped.replace(/^\/+/, '');
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=cloudflare-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-source.js","sourceRoot":"","sources":["../src/cloudflare-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,5 +65,67 @@ export declare function inMemorySource(files: Record<string, string | Uint8Array
|
|
|
65
65
|
* by the SDK — sources are conventionally read-only; treat the agent's
|
|
66
66
|
* role/skill prompts as the place to enforce that.
|
|
67
67
|
*/
|
|
68
|
+
/**
|
|
69
|
+
* One-liner helper for the most common pattern: mount a single read-only
|
|
70
|
+
* source into a virtual sandbox. Equivalent to:
|
|
71
|
+
*
|
|
72
|
+
* ```ts
|
|
73
|
+
* withFilesystemSources('virtual', [{ mountAt, source }])
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* Used for support agents, runbook lookup, FAQ assistants — anywhere a
|
|
77
|
+
* small Markdown corpus needs to be searchable via the agent's built-in
|
|
78
|
+
* `grep`/`glob`/`read` tools.
|
|
79
|
+
*
|
|
80
|
+
* ```ts
|
|
81
|
+
* import { defineAgent, getVirtualSandbox, localDirectorySource } from '@fabric-harness/sdk/lite';
|
|
82
|
+
*
|
|
83
|
+
* export default defineAgent(async ({ init, payload }) => {
|
|
84
|
+
* const sandbox = getVirtualSandbox(localDirectorySource('./kb'));
|
|
85
|
+
* const session = await (await init({ sandbox })).session();
|
|
86
|
+
* return { reply: await session.prompt<string>(String((payload as any)?.message ?? '')) };
|
|
87
|
+
* });
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
export declare function getVirtualSandbox(source: FilesystemSource, options?: {
|
|
91
|
+
mountAt?: string;
|
|
92
|
+
}): SandboxFactory;
|
|
68
93
|
export declare function withFilesystemSources(base: SandboxBackend | SandboxFactory | SandboxEnv, sources: MountedSource[]): SandboxFactory;
|
|
94
|
+
export interface HttpResource {
|
|
95
|
+
url: string;
|
|
96
|
+
/** Path relative to the mount point. Falls back to a sanitized URL pathname. */
|
|
97
|
+
path?: string;
|
|
98
|
+
/** Optional request headers (e.g. an API token). */
|
|
99
|
+
headers?: Record<string, string>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Fetch a list of URLs and mount each response body as a file. Useful
|
|
103
|
+
* for pulling a small published docs set into the sandbox so the
|
|
104
|
+
* built-in `read`/`grep`/`glob` tools can search it like local files.
|
|
105
|
+
*/
|
|
106
|
+
export declare function httpFilesystemSource(resources: HttpResource[] | (() => Promise<HttpResource[]>), options?: {
|
|
107
|
+
name?: string;
|
|
108
|
+
fetchImpl?: typeof fetch;
|
|
109
|
+
}): FilesystemSource;
|
|
110
|
+
/**
|
|
111
|
+
* Mount a local Fumadocs content directory as a knowledge base. Strips
|
|
112
|
+
* MDX frontmatter by default for cleaner agent context.
|
|
113
|
+
*
|
|
114
|
+
* For a published Fumadocs site, fetch its `llms.txt` / sitemap and
|
|
115
|
+
* pass the URLs to `httpFilesystemSource`.
|
|
116
|
+
*/
|
|
117
|
+
export declare function fumadocsSource(contentRoot: string, options?: {
|
|
118
|
+
name?: string;
|
|
119
|
+
stripFrontmatter?: boolean;
|
|
120
|
+
include?: (relativePath: string) => boolean;
|
|
121
|
+
}): FilesystemSource;
|
|
122
|
+
/**
|
|
123
|
+
* Mount a checked-out Mintlify content directory. For the hosted
|
|
124
|
+
* Mintlify MCP server, use `connectMcpServer({ url, transport: 'http' })`
|
|
125
|
+
* instead — every Mintlify-published site exposes one.
|
|
126
|
+
*/
|
|
127
|
+
export declare function mintlifySource(contentRoot: string, options?: {
|
|
128
|
+
name?: string;
|
|
129
|
+
include?: (relativePath: string) => boolean;
|
|
130
|
+
}): FilesystemSource;
|
|
69
131
|
//# sourceMappingURL=filesystem-source.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-source.d.ts","sourceRoot":"","sources":["../src/filesystem-source.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAyB,MAAM,cAAc,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,OAAO,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,gBAAgB,CAAC;IACzB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAA;CAAO,GAAG,gBAAgB,CASrJ;AAwBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,gBAAgB,CAU5H;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,cAAc,GAAG,cAAc,GAAG,UAAU,EAClD,OAAO,EAAE,aAAa,EAAE,GACvB,cAAc,CAehB"}
|
|
1
|
+
{"version":3,"file":"filesystem-source.d.ts","sourceRoot":"","sources":["../src/filesystem-source.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAyB,MAAM,cAAc,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,OAAO,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,gBAAgB,CAAC;IACzB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAA;CAAO,GAAG,gBAAgB,CASrJ;AAwBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,gBAAgB,CAU5H;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjC,cAAc,CAKhB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,cAAc,GAAG,cAAc,GAAG,UAAU,EAClD,OAAO,EAAE,aAAa,EAAE,GACvB,cAAc,CAehB;AAcD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAC3D,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GACxD,gBAAgB,CAmBlB;AAYD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC,GACL,gBAAgB,CAmBlB;AASD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAA;CAAO,GAC3E,gBAAgB,CAGlB"}
|
|
@@ -76,6 +76,34 @@ export function inMemorySource(files, options = {}) {
|
|
|
76
76
|
* by the SDK — sources are conventionally read-only; treat the agent's
|
|
77
77
|
* role/skill prompts as the place to enforce that.
|
|
78
78
|
*/
|
|
79
|
+
/**
|
|
80
|
+
* One-liner helper for the most common pattern: mount a single read-only
|
|
81
|
+
* source into a virtual sandbox. Equivalent to:
|
|
82
|
+
*
|
|
83
|
+
* ```ts
|
|
84
|
+
* withFilesystemSources('virtual', [{ mountAt, source }])
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* Used for support agents, runbook lookup, FAQ assistants — anywhere a
|
|
88
|
+
* small Markdown corpus needs to be searchable via the agent's built-in
|
|
89
|
+
* `grep`/`glob`/`read` tools.
|
|
90
|
+
*
|
|
91
|
+
* ```ts
|
|
92
|
+
* import { defineAgent, getVirtualSandbox, localDirectorySource } from '@fabric-harness/sdk/lite';
|
|
93
|
+
*
|
|
94
|
+
* export default defineAgent(async ({ init, payload }) => {
|
|
95
|
+
* const sandbox = getVirtualSandbox(localDirectorySource('./kb'));
|
|
96
|
+
* const session = await (await init({ sandbox })).session();
|
|
97
|
+
* return { reply: await session.prompt<string>(String((payload as any)?.message ?? '')) };
|
|
98
|
+
* });
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
export function getVirtualSandbox(source, options = {}) {
|
|
102
|
+
return withFilesystemSources('virtual', [{
|
|
103
|
+
source,
|
|
104
|
+
...(options.mountAt ? { mountAt: options.mountAt } : { mountAt: '/workspace' }),
|
|
105
|
+
}]);
|
|
106
|
+
}
|
|
79
107
|
export function withFilesystemSources(base, sources) {
|
|
80
108
|
return async (options) => {
|
|
81
109
|
const sandbox = await resolveBaseSandbox(base, options);
|
|
@@ -106,4 +134,85 @@ async function ensureDirectory(sandbox, dir) {
|
|
|
106
134
|
return;
|
|
107
135
|
await sandbox.mkdir(dir, { recursive: true });
|
|
108
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Fetch a list of URLs and mount each response body as a file. Useful
|
|
139
|
+
* for pulling a small published docs set into the sandbox so the
|
|
140
|
+
* built-in `read`/`grep`/`glob` tools can search it like local files.
|
|
141
|
+
*/
|
|
142
|
+
export function httpFilesystemSource(resources, options = {}) {
|
|
143
|
+
const name = options.name ?? 'http-source';
|
|
144
|
+
const fetchImpl = options.fetchImpl ?? fetch;
|
|
145
|
+
return {
|
|
146
|
+
name,
|
|
147
|
+
async *entries() {
|
|
148
|
+
const list = typeof resources === 'function' ? await resources() : resources;
|
|
149
|
+
for (const resource of list) {
|
|
150
|
+
const init = resource.headers ? { headers: resource.headers } : {};
|
|
151
|
+
const response = await fetchImpl(resource.url, init);
|
|
152
|
+
if (!response.ok) {
|
|
153
|
+
throw new Error(`httpFilesystemSource: ${resource.url} -> HTTP ${response.status}`);
|
|
154
|
+
}
|
|
155
|
+
const buf = new Uint8Array(await response.arrayBuffer());
|
|
156
|
+
const target = resource.path ?? sanitizeUrlPath(resource.url);
|
|
157
|
+
yield { path: target, content: buf };
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
function sanitizeUrlPath(rawUrl) {
|
|
163
|
+
try {
|
|
164
|
+
const u = new URL(rawUrl);
|
|
165
|
+
const trimmed = u.pathname.replace(/^\/+/, '').replace(/\/$/, '');
|
|
166
|
+
return trimmed.length > 0 ? trimmed : 'index';
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
return rawUrl.replace(/[^a-zA-Z0-9._-]+/g, '_');
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Mount a local Fumadocs content directory as a knowledge base. Strips
|
|
174
|
+
* MDX frontmatter by default for cleaner agent context.
|
|
175
|
+
*
|
|
176
|
+
* For a published Fumadocs site, fetch its `llms.txt` / sitemap and
|
|
177
|
+
* pass the URLs to `httpFilesystemSource`.
|
|
178
|
+
*/
|
|
179
|
+
export function fumadocsSource(contentRoot, options = {}) {
|
|
180
|
+
const stripFrontmatter = options.stripFrontmatter ?? true;
|
|
181
|
+
const include = options.include ?? ((p) => p.endsWith('.mdx') || p.endsWith('.md'));
|
|
182
|
+
const name = options.name ?? `fumadocs:${contentRoot}`;
|
|
183
|
+
const base = localDirectorySource(contentRoot, { name, include });
|
|
184
|
+
if (!stripFrontmatter)
|
|
185
|
+
return base;
|
|
186
|
+
return {
|
|
187
|
+
name,
|
|
188
|
+
async *entries() {
|
|
189
|
+
for await (const entry of base.entries()) {
|
|
190
|
+
const text = typeof entry.content === 'string'
|
|
191
|
+
? entry.content
|
|
192
|
+
: new TextDecoder().decode(entry.content);
|
|
193
|
+
const out = { path: entry.path, content: stripMdxFrontmatter(text) };
|
|
194
|
+
if (entry.metadata)
|
|
195
|
+
out.metadata = entry.metadata;
|
|
196
|
+
yield out;
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
function stripMdxFrontmatter(text) {
|
|
202
|
+
if (!text.startsWith('---'))
|
|
203
|
+
return text;
|
|
204
|
+
const end = text.indexOf('\n---', 3);
|
|
205
|
+
if (end < 0)
|
|
206
|
+
return text;
|
|
207
|
+
return text.slice(end + 4).replace(/^\n/, '');
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Mount a checked-out Mintlify content directory. For the hosted
|
|
211
|
+
* Mintlify MCP server, use `connectMcpServer({ url, transport: 'http' })`
|
|
212
|
+
* instead — every Mintlify-published site exposes one.
|
|
213
|
+
*/
|
|
214
|
+
export function mintlifySource(contentRoot, options = {}) {
|
|
215
|
+
const include = options.include ?? ((p) => p.endsWith('.mdx') || p.endsWith('.md') || p.endsWith('.json'));
|
|
216
|
+
return localDirectorySource(contentRoot, { name: options.name ?? `mintlify:${contentRoot}`, include });
|
|
217
|
+
}
|
|
109
218
|
//# sourceMappingURL=filesystem-source.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-source.js","sourceRoot":"","sources":["../src/filesystem-source.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filesystem-source.js","sourceRoot":"","sources":["../src/filesystem-source.ts"],"names":[],"mappings":"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"}
|