@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.
Files changed (42) hide show
  1. package/README.md +7 -6
  2. package/dist/agent-definition.d.ts +20 -8
  3. package/dist/agent-definition.d.ts.map +1 -1
  4. package/dist/agent-definition.js +46 -8
  5. package/dist/agent-definition.js.map +1 -1
  6. package/dist/agent.d.ts.map +1 -1
  7. package/dist/agent.js +3 -0
  8. package/dist/agent.js.map +1 -1
  9. package/dist/cloudflare-source.d.ts +61 -0
  10. package/dist/cloudflare-source.d.ts.map +1 -0
  11. package/dist/cloudflare-source.js +73 -0
  12. package/dist/cloudflare-source.js.map +1 -0
  13. package/dist/filesystem-source.d.ts +62 -0
  14. package/dist/filesystem-source.d.ts.map +1 -1
  15. package/dist/filesystem-source.js +109 -0
  16. package/dist/filesystem-source.js.map +1 -1
  17. package/dist/index.d.ts +6 -3
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +4 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/lite.d.ts +7 -4
  22. package/dist/lite.d.ts.map +1 -1
  23. package/dist/lite.js +4 -2
  24. package/dist/lite.js.map +1 -1
  25. package/dist/pi-loop-runtime.d.ts +34 -0
  26. package/dist/pi-loop-runtime.d.ts.map +1 -0
  27. package/dist/pi-loop-runtime.js +274 -0
  28. package/dist/pi-loop-runtime.js.map +1 -0
  29. package/dist/sandbox.d.ts +13 -2
  30. package/dist/sandbox.d.ts.map +1 -1
  31. package/dist/sandbox.js +125 -90
  32. package/dist/sandbox.js.map +1 -1
  33. package/dist/session.d.ts.map +1 -1
  34. package/dist/session.js +31 -8
  35. package/dist/session.js.map +1 -1
  36. package/dist/types.d.ts +8 -1
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/virtual-sandbox.d.ts +45 -0
  39. package/dist/virtual-sandbox.d.ts.map +1 -0
  40. package/dist/virtual-sandbox.js +128 -0
  41. package/dist/virtual-sandbox.js.map +1 -0
  42. 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
- ### Light mode (10 lines)
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 mode (typed I/O + capability policy)
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 modes share the same runtime, the same `init()`, the same `session.prompt()` / `skill()` / `task()` / `shell()` APIs. Pick by what your agent needs; graduate features one at a time.
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: `agent`, `defineAgent`, schemas, capability policy, MCP, sandboxes, providers, telemetry types.
51
- - **`@fabric-harness/sdk/lite`** — trimmed entry for headless / edge deployments. Same runtime; smaller import graph.
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 mode](https://harness.fabric.pro/docs/getting-started/headless-mode)
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
- * Use this when you don't need typed I/O, capability policy, or
45
- * artifacts. For production agents with structured inputs/outputs and
46
- * policy gates, use `agent({...})` directly.
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: (await session.prompt(String(payload?.message ?? ''))).text };
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;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,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,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,CAmBzI;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,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;GAiBG;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,CAKjC"}
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"}
@@ -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
- * Use this when you don't need typed I/O, capability policy, or
34
- * artifacts. For production agents with structured inputs/outputs and
35
- * policy gates, use `agent({...})` directly.
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: (await session.prompt(String(payload?.message ?? ''))).text };
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: handler,
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":"AAqBA,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAOvE,MAAM,UAAU,KAAK,CAAyC,UAA4C;IACxG,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,OAAsB,EAAoB,EAAE;QAClE,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAiB,CAAC;QAChH,MAAM,cAAc,GAA8C;YAChE,GAAG,OAAO;YACV,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,KAAK,EAAE,UAAqB,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpD,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvF,GAAG,OAAO;gBACV,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpF,CAAC;SACH,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACpD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3E,CAAC,CAA6C,CAAC;IAC/C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3F,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1F,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAClD,MAAM,SAAS,GAAG,KAAsH,CAAC;IACzI,OAAO,SAAS,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC;AAChE,CAAC;AAcD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW,CACzB,OAA+F,EAC/F,UAA8B,EAAE;IAEhC,OAAO,KAAK,CAAoB;QAC9B,GAAG,OAAO;QACV,GAAG,EAAE,OAAO;KACb,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"agent-definition.js","sourceRoot":"","sources":["../src/agent-definition.ts"],"names":[],"mappings":"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"}
@@ -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;CAuDrF;AAED,wBAAsB,IAAI,CAAC,OAAO,GAAE,SAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAExE"}
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":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAmChD;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,UAA0E,EAAE;IACjI,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,QAAQ,EAAE,CAAC;IACjD,OAAO;QACL,IAAI;QACJ,KAAK,CAAC,CAAC,OAAO;YACZ,KAAK,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,aAAa,CAAC,IAAY,EAAE,MAAc,EAAE,OAA0C;IACpG,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,OAAmC,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3E,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9C,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,SAAS;QAC9B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,SAAS;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0C,EAAE,UAA6B,EAAE;IACxG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;IACzC,OAAO;QACL,IAAI;QACJ,KAAK,CAAC,CAAC,OAAO;YACZ,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;YACvD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAkD,EAClD,OAAwB;IAExB,OAAO,KAAK,EAAE,OAA8B,EAAuB,EAAE;QACnE,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;YAC/C,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACxC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1C,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACvC,MAAM,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAAkD,EAAE,OAA8B;IAClH,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7E,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,OAAO,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAmB,EAAE,GAAW;IAC7D,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO;IAC/C,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO;IACtC,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"filesystem-source.js","sourceRoot":"","sources":["../src/filesystem-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAmChD;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,UAA0E,EAAE;IACjI,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,QAAQ,EAAE,CAAC;IACjD,OAAO;QACL,IAAI;QACJ,KAAK,CAAC,CAAC,OAAO;YACZ,KAAK,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,aAAa,CAAC,IAAY,EAAE,MAAc,EAAE,OAA0C;IACpG,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,OAAmC,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3E,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9C,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,SAAS;QAC9B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,SAAS;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0C,EAAE,UAA6B,EAAE;IACxG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;IACzC,OAAO;QACL,IAAI;QACJ,KAAK,CAAC,CAAC,OAAO;YACZ,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;YACvD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAwB,EACxB,UAAgC,EAAE;IAElC,OAAO,qBAAqB,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM;YACN,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;SAChF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAkD,EAClD,OAAwB;IAExB,OAAO,KAAK,EAAE,OAA8B,EAAuB,EAAE;QACnE,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;YAC/C,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACxC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1C,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACvC,MAAM,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAAkD,EAAE,OAA8B;IAClH,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7E,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,OAAO,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAmB,EAAE,GAAW;IAC7D,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO;IAC/C,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO;IACtC,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC;AAUD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAA2D,EAC3D,UAAuD,EAAE;IAEzD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;IAC7C,OAAO;QACL,IAAI;QACJ,KAAK,CAAC,CAAC,OAAO;YACZ,MAAM,IAAI,GAAG,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7E,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAgB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,GAAG,YAAY,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACtF,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;gBACzD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,WAAmB,EACnB,UAII,EAAE;IAEN,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACpF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;IACvD,MAAM,IAAI,GAAG,oBAAoB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO;QACL,IAAI;QACJ,KAAK,CAAC,CAAC,OAAO;YACZ,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oBAC5C,CAAC,CAAC,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5C,MAAM,GAAG,GAAoB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtF,IAAI,KAAK,CAAC,QAAQ;oBAAE,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAClD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,WAAmB,EACnB,UAA0E,EAAE;IAE5E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3G,OAAO,oBAAoB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,YAAY,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AACzG,CAAC"}