@fabric-harness/sdk 0.9.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-definition.js +2 -2
- package/dist/agent-definition.js.map +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +7 -2
- package/dist/agent.js.map +1 -1
- package/dist/cloudflare-source.d.ts +2 -1
- package/dist/cloudflare-source.d.ts.map +1 -1
- package/dist/cloudflare-source.js +2 -1
- package/dist/cloudflare-source.js.map +1 -1
- package/dist/experimental.d.ts +14 -0
- package/dist/experimental.d.ts.map +1 -0
- package/dist/experimental.js +14 -0
- package/dist/experimental.js.map +1 -0
- package/dist/filesystem-source.d.ts +2 -1
- package/dist/filesystem-source.d.ts.map +1 -1
- package/dist/filesystem-source.js +2 -1
- package/dist/filesystem-source.js.map +1 -1
- package/dist/history.d.ts +17 -0
- package/dist/history.d.ts.map +1 -1
- package/dist/history.js +35 -0
- package/dist/history.js.map +1 -1
- package/dist/index.d.ts +6 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -6
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +35 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +71 -0
- package/dist/logger.js.map +1 -0
- package/dist/otel.d.ts +8 -1
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +48 -6
- package/dist/otel.js.map +1 -1
- package/dist/policied-sandbox.d.ts +24 -0
- package/dist/policied-sandbox.d.ts.map +1 -0
- package/dist/policied-sandbox.js +127 -0
- package/dist/policied-sandbox.js.map +1 -0
- package/dist/sandbox-ref.d.ts +56 -1
- package/dist/sandbox-ref.d.ts.map +1 -1
- package/dist/sandbox-ref.js +71 -0
- package/dist/sandbox-ref.js.map +1 -1
- package/dist/sandbox.d.ts +25 -0
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +3 -0
- package/dist/sandbox.js.map +1 -1
- package/dist/session.d.ts +17 -5
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +60 -16
- package/dist/session.js.map +1 -1
- package/dist/strict.d.ts +5 -2
- package/dist/strict.d.ts.map +1 -1
- package/dist/strict.js +3 -1
- package/dist/strict.js.map +1 -1
- package/dist/telemetry.d.ts +6 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +9 -2
- package/dist/telemetry.js.map +1 -1
- package/dist/testing.d.ts +11 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +11 -0
- package/dist/testing.js.map +1 -0
- package/dist/types.d.ts +32 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +10 -2
package/dist/otel.d.ts
CHANGED
|
@@ -4,6 +4,13 @@ export interface OpenTelemetryExporterOptions {
|
|
|
4
4
|
tracer: Tracer;
|
|
5
5
|
/** Add attributes to every emitted span. */
|
|
6
6
|
attributes?: Record<string, string | number | boolean>;
|
|
7
|
+
/**
|
|
8
|
+
* Naming/attribute convention. Defaults to `'fabric'` (Fabric-native span
|
|
9
|
+
* names like `fabric.tool_end`). Set to `'foundry'` to emit `gen_ai.*`
|
|
10
|
+
* span names and attributes that match Azure AI Foundry / OpenTelemetry
|
|
11
|
+
* Generative AI semantic conventions for end-to-end correlation.
|
|
12
|
+
*/
|
|
13
|
+
conventions?: 'fabric' | 'foundry';
|
|
7
14
|
}
|
|
8
15
|
/**
|
|
9
16
|
* Bridge Fabric's SDK-neutral TelemetrySpan into a real @opentelemetry/api Tracer.
|
|
@@ -13,5 +20,5 @@ export interface OpenTelemetryExporterOptions {
|
|
|
13
20
|
* pass the tracer here.
|
|
14
21
|
*/
|
|
15
22
|
export declare function openTelemetryExporter(options: OpenTelemetryExporterOptions): TelemetryExporter;
|
|
16
|
-
export declare function emitOpenTelemetrySpan(tracer: Tracer, span: TelemetrySpan, attributes?: Record<string, string | number | boolean
|
|
23
|
+
export declare function emitOpenTelemetrySpan(tracer: Tracer, span: TelemetrySpan, attributes?: Record<string, string | number | boolean>, conventions?: 'fabric' | 'foundry'): Span;
|
|
17
24
|
//# sourceMappingURL=otel.d.ts.map
|
package/dist/otel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQvE,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQvE,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACvD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACpC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,iBAAiB,CAM9F;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAM,EAC1D,WAAW,GAAE,QAAQ,GAAG,SAAoB,GAC3C,IAAI,CAaN"}
|
package/dist/otel.js
CHANGED
|
@@ -13,17 +13,59 @@ const SPAN_STATUS_OK = 1;
|
|
|
13
13
|
export function openTelemetryExporter(options) {
|
|
14
14
|
return {
|
|
15
15
|
export(span) {
|
|
16
|
-
emitOpenTelemetrySpan(options.tracer, span, options.attributes);
|
|
16
|
+
emitOpenTelemetrySpan(options.tracer, span, options.attributes, options.conventions);
|
|
17
17
|
},
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
export function emitOpenTelemetrySpan(tracer, span, attributes = {}) {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
export function emitOpenTelemetrySpan(tracer, span, attributes = {}, conventions = 'fabric') {
|
|
21
|
+
const renamed = conventions === 'foundry' ? renameSpanForFoundry(span) : span;
|
|
22
|
+
const otelSpan = tracer.startSpan(renamed.name, {
|
|
23
|
+
startTime: new Date(renamed.startedAt),
|
|
24
|
+
attributes: {
|
|
25
|
+
...attributes,
|
|
26
|
+
...renamed.attributes,
|
|
27
|
+
...(conventions === 'foundry' ? { 'gen_ai.duration_ms': renamed.durationMs } : { 'fabric.duration_ms': renamed.durationMs }),
|
|
28
|
+
},
|
|
24
29
|
});
|
|
25
30
|
otelSpan.setStatus({ code: SPAN_STATUS_OK });
|
|
26
|
-
otelSpan.end(new Date(
|
|
31
|
+
otelSpan.end(new Date(renamed.endedAt));
|
|
27
32
|
return otelSpan;
|
|
28
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Map Fabric's `fabric.*` span names + attributes to Azure AI Foundry's
|
|
36
|
+
* `gen_ai.*` Generative AI semantic conventions. End-to-end traces
|
|
37
|
+
* collected by Foundry / OpenTelemetry collectors that follow the
|
|
38
|
+
* `gen_ai.*` conventions correlate without per-tenant schema mapping.
|
|
39
|
+
*/
|
|
40
|
+
function renameSpanForFoundry(span) {
|
|
41
|
+
const nameMap = {
|
|
42
|
+
'fabric.prompt_end': 'gen_ai.agent.run',
|
|
43
|
+
'fabric.prompt_start': 'gen_ai.agent.run',
|
|
44
|
+
'fabric.tool_end': 'gen_ai.agent.tool',
|
|
45
|
+
'fabric.tool_start': 'gen_ai.agent.tool',
|
|
46
|
+
'fabric.command_end': 'gen_ai.agent.shell',
|
|
47
|
+
'fabric.command_start': 'gen_ai.agent.shell',
|
|
48
|
+
'fabric.task_end': 'gen_ai.agent.task',
|
|
49
|
+
'fabric.task_start': 'gen_ai.agent.task',
|
|
50
|
+
'fabric.compaction': 'gen_ai.agent.compact',
|
|
51
|
+
'fabric.checkpoint_created': 'gen_ai.agent.checkpoint',
|
|
52
|
+
'fabric.mount': 'gen_ai.agent.mount',
|
|
53
|
+
'fabric.approval_requested': 'gen_ai.agent.approval',
|
|
54
|
+
'fabric.approval_granted': 'gen_ai.agent.approval',
|
|
55
|
+
'fabric.approval_denied': 'gen_ai.agent.approval',
|
|
56
|
+
};
|
|
57
|
+
const attrMap = {
|
|
58
|
+
'fabric.session_id': 'gen_ai.session.id',
|
|
59
|
+
'fabric.tool': 'gen_ai.tool.name',
|
|
60
|
+
'fabric.command': 'gen_ai.shell.command',
|
|
61
|
+
'fabric.event_type': 'gen_ai.event_type',
|
|
62
|
+
'fabric.event_id': 'gen_ai.event.id',
|
|
63
|
+
};
|
|
64
|
+
const newName = nameMap[span.name] ?? span.name;
|
|
65
|
+
const newAttrs = {};
|
|
66
|
+
for (const [key, value] of Object.entries(span.attributes)) {
|
|
67
|
+
newAttrs[attrMap[key] ?? key] = value;
|
|
68
|
+
}
|
|
69
|
+
return { ...span, name: newName, attributes: newAttrs };
|
|
70
|
+
}
|
|
29
71
|
//# sourceMappingURL=otel.js.map
|
package/dist/otel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel.js","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"AAGA,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,8EAA8E;AAC9E,MAAM,cAAc,GAAG,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"otel.js","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"AAGA,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,8EAA8E;AAC9E,MAAM,cAAc,GAAG,CAAU,CAAC;AAelC;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAqC;IACzE,OAAO;QACL,MAAM,CAAC,IAAI;YACT,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACvF,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,IAAmB,EACnB,aAAwD,EAAE,EAC1D,cAAoC,QAAQ;IAE5C,MAAM,OAAO,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE;QAC9C,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtC,UAAU,EAAE;YACV,GAAG,UAAU;YACb,GAAG,OAAO,CAAC,UAAU;YACrB,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;SAC7H;KACF,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7C,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,IAAmB;IAC/C,MAAM,OAAO,GAA2B;QACtC,mBAAmB,EAAE,kBAAkB;QACvC,qBAAqB,EAAE,kBAAkB;QACzC,iBAAiB,EAAE,mBAAmB;QACtC,mBAAmB,EAAE,mBAAmB;QACxC,oBAAoB,EAAE,oBAAoB;QAC1C,sBAAsB,EAAE,oBAAoB;QAC5C,iBAAiB,EAAE,mBAAmB;QACtC,mBAAmB,EAAE,mBAAmB;QACxC,mBAAmB,EAAE,sBAAsB;QAC3C,2BAA2B,EAAE,yBAAyB;QACtD,cAAc,EAAE,oBAAoB;QACpC,2BAA2B,EAAE,uBAAuB;QACpD,yBAAyB,EAAE,uBAAuB;QAClD,wBAAwB,EAAE,uBAAuB;KAClD,CAAC;IACF,MAAM,OAAO,GAA2B;QACtC,mBAAmB,EAAE,mBAAmB;QACxC,aAAa,EAAE,kBAAkB;QACjC,gBAAgB,EAAE,sBAAsB;QACxC,mBAAmB,EAAE,mBAAmB;QACxC,iBAAiB,EAAE,iBAAiB;KACrC,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;IAChD,MAAM,QAAQ,GAA8C,EAAE,CAAC;IAC/D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3D,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { CapabilityPolicy } from './policy.js';
|
|
2
|
+
import type { SandboxEnv } from './sandbox.js';
|
|
3
|
+
/**
|
|
4
|
+
* Wrap a `SandboxEnv` with `CapabilityPolicy` enforcement at the sandbox layer.
|
|
5
|
+
*
|
|
6
|
+
* Without this decorator, agent code that calls `(await session.sandbox).exec(...)`
|
|
7
|
+
* directly bypasses the policy that `session.shell()` and tool dispatch enforce.
|
|
8
|
+
* `policiedSandboxEnv()` closes that gap by re-running the same policy
|
|
9
|
+
* evaluation against `exec` / `readFile` / `writeFile` / `mkdir` / `rm` / etc.
|
|
10
|
+
*
|
|
11
|
+
* Throws `FabricError`:
|
|
12
|
+
* - `COMMAND_DENIED` when an exec is denied or requires approval.
|
|
13
|
+
* - `POLICY_DENIED` when a filesystem op is denied or requires approval.
|
|
14
|
+
*
|
|
15
|
+
* The decorator does NOT auto-resolve `requireApproval` patterns — the
|
|
16
|
+
* sandbox layer has no session context to gate approvals against. Callers
|
|
17
|
+
* who want approval gating should go through `session.shell()` /
|
|
18
|
+
* `session.prompt()` with tool calls, where the full approval machinery
|
|
19
|
+
* (callbacks, store-backed waiting, escalation) is wired up.
|
|
20
|
+
*
|
|
21
|
+
* Pass-through: `snapshot`, `restore`, `fork`, `suspend`, `resume`, `cleanup`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function policiedSandboxEnv(inner: SandboxEnv, policy: CapabilityPolicy | undefined): SandboxEnv;
|
|
24
|
+
//# sourceMappingURL=policied-sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policied-sandbox.d.ts","sourceRoot":"","sources":["../src/policied-sandbox.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAGV,UAAU,EAGX,MAAM,cAAc,CAAC;AAGtB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAGtG"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { FabricError } from './error.js';
|
|
2
|
+
import { evaluateCommandPolicy, evaluateToolCallPolicy, } from './policy.js';
|
|
3
|
+
/**
|
|
4
|
+
* Wrap a `SandboxEnv` with `CapabilityPolicy` enforcement at the sandbox layer.
|
|
5
|
+
*
|
|
6
|
+
* Without this decorator, agent code that calls `(await session.sandbox).exec(...)`
|
|
7
|
+
* directly bypasses the policy that `session.shell()` and tool dispatch enforce.
|
|
8
|
+
* `policiedSandboxEnv()` closes that gap by re-running the same policy
|
|
9
|
+
* evaluation against `exec` / `readFile` / `writeFile` / `mkdir` / `rm` / etc.
|
|
10
|
+
*
|
|
11
|
+
* Throws `FabricError`:
|
|
12
|
+
* - `COMMAND_DENIED` when an exec is denied or requires approval.
|
|
13
|
+
* - `POLICY_DENIED` when a filesystem op is denied or requires approval.
|
|
14
|
+
*
|
|
15
|
+
* The decorator does NOT auto-resolve `requireApproval` patterns — the
|
|
16
|
+
* sandbox layer has no session context to gate approvals against. Callers
|
|
17
|
+
* who want approval gating should go through `session.shell()` /
|
|
18
|
+
* `session.prompt()` with tool calls, where the full approval machinery
|
|
19
|
+
* (callbacks, store-backed waiting, escalation) is wired up.
|
|
20
|
+
*
|
|
21
|
+
* Pass-through: `snapshot`, `restore`, `fork`, `suspend`, `resume`, `cleanup`.
|
|
22
|
+
*/
|
|
23
|
+
export function policiedSandboxEnv(inner, policy) {
|
|
24
|
+
if (!policy)
|
|
25
|
+
return inner;
|
|
26
|
+
return new PoliciedSandboxEnv(inner, policy);
|
|
27
|
+
}
|
|
28
|
+
class PoliciedSandboxEnv {
|
|
29
|
+
inner;
|
|
30
|
+
policy;
|
|
31
|
+
cwd;
|
|
32
|
+
capabilities;
|
|
33
|
+
constructor(inner, policy) {
|
|
34
|
+
this.inner = inner;
|
|
35
|
+
this.policy = policy;
|
|
36
|
+
this.cwd = inner.cwd;
|
|
37
|
+
if (inner.capabilities)
|
|
38
|
+
this.capabilities = inner.capabilities;
|
|
39
|
+
}
|
|
40
|
+
resolvePath(filePath) { return this.inner.resolvePath(filePath); }
|
|
41
|
+
async exec(command, options) {
|
|
42
|
+
const decision = evaluateCommandPolicy(command, this.policy);
|
|
43
|
+
// Only enforce hard denials at this layer. `requireApproval` patterns
|
|
44
|
+
// are tool/command-layer concerns — `session.shell()` and tool dispatch
|
|
45
|
+
// gate them through the full approval machinery (callbacks, store-backed
|
|
46
|
+
// waits, escalation). At the sandbox layer we can't tell the difference
|
|
47
|
+
// between "approved by an upstream tool call" and "raw bypass", so we
|
|
48
|
+
// pass them through. Block only on deny.
|
|
49
|
+
if (!decision.allowed && !decision.approvalRequired) {
|
|
50
|
+
throw new FabricError({
|
|
51
|
+
code: 'COMMAND_DENIED',
|
|
52
|
+
message: decision.reason ?? `Command denied by policy: ${command}`,
|
|
53
|
+
details: {
|
|
54
|
+
command,
|
|
55
|
+
...(decision.matchedPattern ? { matchedPattern: decision.matchedPattern } : {}),
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return this.inner.exec(command, options);
|
|
60
|
+
}
|
|
61
|
+
readFile(path) { return this.gateRead(path, () => this.inner.readFile(path)); }
|
|
62
|
+
readFileBuffer(path) { return this.gateRead(path, () => this.inner.readFileBuffer(path)); }
|
|
63
|
+
stat(path) { return this.gateRead(path, () => this.inner.stat(path)); }
|
|
64
|
+
readdir(path) { return this.gateRead(path, () => this.inner.readdir(path)); }
|
|
65
|
+
exists(path) { return this.gateRead(path, () => this.inner.exists(path)); }
|
|
66
|
+
writeFile(path, content) { return this.gateWrite(path, () => this.inner.writeFile(path, content)); }
|
|
67
|
+
mkdir(path, options) { return this.gateWrite(path, () => this.inner.mkdir(path, options)); }
|
|
68
|
+
rm(path, options) { return this.gateWrite(path, () => this.inner.rm(path, options)); }
|
|
69
|
+
async snapshot() {
|
|
70
|
+
if (!this.inner.snapshot)
|
|
71
|
+
throw new Error('Sandbox does not support snapshot.');
|
|
72
|
+
return this.inner.snapshot();
|
|
73
|
+
}
|
|
74
|
+
async restore(snapshot) {
|
|
75
|
+
if (!this.inner.restore)
|
|
76
|
+
throw new Error('Sandbox does not support restore.');
|
|
77
|
+
await this.inner.restore(snapshot);
|
|
78
|
+
}
|
|
79
|
+
async fork(snapshot) {
|
|
80
|
+
if (!this.inner.fork)
|
|
81
|
+
throw new Error('Sandbox does not support fork.');
|
|
82
|
+
// Wrap the forked env with the same policy so branches inherit enforcement.
|
|
83
|
+
return policiedSandboxEnv(await this.inner.fork(snapshot), this.policy);
|
|
84
|
+
}
|
|
85
|
+
async suspend() {
|
|
86
|
+
if (!this.inner.suspend)
|
|
87
|
+
throw new Error('Sandbox does not support suspend.');
|
|
88
|
+
await this.inner.suspend();
|
|
89
|
+
}
|
|
90
|
+
async resume() {
|
|
91
|
+
if (!this.inner.resume)
|
|
92
|
+
throw new Error('Sandbox does not support resume.');
|
|
93
|
+
await this.inner.resume();
|
|
94
|
+
}
|
|
95
|
+
cleanup() { return this.inner.cleanup(); }
|
|
96
|
+
async gateRead(path, op) {
|
|
97
|
+
const decision = evaluateToolCallPolicy({ tool: 'read', input: { path } }, this.policy);
|
|
98
|
+
this.throwIfHardDenied(decision.allowed, decision.approvalRequired, decision.reason, path, 'read', decision.matchedPattern);
|
|
99
|
+
return op();
|
|
100
|
+
}
|
|
101
|
+
async gateWrite(path, op) {
|
|
102
|
+
const decision = evaluateToolCallPolicy({ tool: 'write', input: { path } }, this.policy);
|
|
103
|
+
this.throwIfHardDenied(decision.allowed, decision.approvalRequired, decision.reason, path, 'write', decision.matchedPattern);
|
|
104
|
+
return op();
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Hard-deny only. `requireApproval` patterns pass through at the sandbox
|
|
108
|
+
* layer because they're a tool/command-layer concept — see the comment on
|
|
109
|
+
* `exec()` above.
|
|
110
|
+
*/
|
|
111
|
+
throwIfHardDenied(allowed, approvalRequired, reason, path, kind, matchedPattern) {
|
|
112
|
+
if (allowed)
|
|
113
|
+
return;
|
|
114
|
+
if (approvalRequired)
|
|
115
|
+
return;
|
|
116
|
+
throw new FabricError({
|
|
117
|
+
code: 'POLICY_DENIED',
|
|
118
|
+
message: reason ?? `${kind === 'read' ? 'Read' : 'Write'} denied by policy: ${path}`,
|
|
119
|
+
details: {
|
|
120
|
+
path,
|
|
121
|
+
kind,
|
|
122
|
+
...(matchedPattern ? { matchedPattern } : {}),
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=policied-sandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policied-sandbox.js","sourceRoot":"","sources":["../src/policied-sandbox.ts"],"names":[],"mappings":"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"}
|
package/dist/sandbox-ref.d.ts
CHANGED
|
@@ -9,6 +9,49 @@ export interface SandboxRef {
|
|
|
9
9
|
/** Free-form provider-specific routing data (used by cross-process refs in future). */
|
|
10
10
|
metadata?: Record<string, unknown>;
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Cross-process / cross-machine sandbox reference. Created by
|
|
14
|
+
* `session.sandboxRef({ portable: true })` and re-attached via
|
|
15
|
+
* `attachSandbox(serialized)` in a separate process. Each `provider` string
|
|
16
|
+
* maps to a decoder registered via `registerSandboxRefDecoder()`.
|
|
17
|
+
*/
|
|
18
|
+
export interface SerializedSandboxRef {
|
|
19
|
+
/** Provider identifier — must match a registered decoder. */
|
|
20
|
+
provider: string;
|
|
21
|
+
/** Provider-specific routing data (sandbox/workspace/pod ID, region, etc.). */
|
|
22
|
+
providerData: unknown;
|
|
23
|
+
/** Sandbox cwd at encode time. */
|
|
24
|
+
cwd: string;
|
|
25
|
+
/** Capabilities snapshot at encode time. */
|
|
26
|
+
capabilities?: SandboxCapabilities;
|
|
27
|
+
/** Owner session id, for audit trails. */
|
|
28
|
+
ownerSessionId?: string;
|
|
29
|
+
/** ISO timestamp of encoding. */
|
|
30
|
+
encodedAt: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Decoder for a `SerializedSandboxRef.provider`. Returns a SandboxFactory
|
|
34
|
+
* that, when invoked, produces a SandboxEnv connected to the existing
|
|
35
|
+
* remote sandbox identified by `providerData`.
|
|
36
|
+
*
|
|
37
|
+
* Decoders SHOULD attach without owning the remote sandbox's lifecycle —
|
|
38
|
+
* the returned env's `cleanup()` should detach, not destroy.
|
|
39
|
+
*/
|
|
40
|
+
export type SandboxRefDecoder = (providerData: unknown, context: {
|
|
41
|
+
cwd: string;
|
|
42
|
+
capabilities?: SandboxCapabilities;
|
|
43
|
+
}) => SandboxFactory;
|
|
44
|
+
/**
|
|
45
|
+
* Register a decoder for `provider` so `attachSandbox(serialized)` can
|
|
46
|
+
* rehydrate a sandbox from another process. Typically called once at
|
|
47
|
+
* startup by the package that owns the provider integration (e.g.
|
|
48
|
+
* `@fabric-harness/connectors/e2b` registers the `e2b` provider).
|
|
49
|
+
*/
|
|
50
|
+
export declare function registerSandboxRefDecoder(provider: string, decoder: SandboxRefDecoder): void;
|
|
51
|
+
/** Test/internal: remove a decoder. */
|
|
52
|
+
export declare function unregisterSandboxRefDecoder(provider: string): void;
|
|
53
|
+
/** Returns the list of currently registered providers. */
|
|
54
|
+
export declare function listSandboxRefDecoders(): string[];
|
|
12
55
|
/**
|
|
13
56
|
* Register a sandbox in the in-process registry and return a portable ref.
|
|
14
57
|
* Subsequent calls for the same env return the same ref.
|
|
@@ -26,8 +69,20 @@ export declare function unregisterSandbox(refId: string): void;
|
|
|
26
69
|
* delegating to the registered sandbox without owning its lifecycle. Calling
|
|
27
70
|
* `cleanup()` on the attached env unregisters this attachment but does NOT
|
|
28
71
|
* tear down the underlying sandbox.
|
|
72
|
+
*
|
|
73
|
+
* Pass an in-process `SandboxRef` to attach within the same process, or a
|
|
74
|
+
* `SerializedSandboxRef` (from `session.sandboxRef({ portable: true })`) to
|
|
75
|
+
* rehydrate a sandbox handed off from another process. Cross-process refs
|
|
76
|
+
* require a decoder registered for `serialized.provider` via
|
|
77
|
+
* `registerSandboxRefDecoder()`.
|
|
78
|
+
*/
|
|
79
|
+
export declare function attachSandbox(ref: SandboxRef | SerializedSandboxRef): SandboxFactory;
|
|
80
|
+
/**
|
|
81
|
+
* Serialize an in-process `SandboxRef` into the cross-process form.
|
|
82
|
+
* Requires the underlying sandbox to implement `encodeRef()`. Throws
|
|
83
|
+
* `SANDBOX_UNAVAILABLE` if the backend is in-process-only.
|
|
29
84
|
*/
|
|
30
|
-
export declare function
|
|
85
|
+
export declare function serializeSandboxRef(ref: SandboxRef, ownerSessionId?: string): SerializedSandboxRef;
|
|
31
86
|
/** Test-only: clear the registry. */
|
|
32
87
|
export declare function _resetSandboxRegistry(): void;
|
|
33
88
|
//# sourceMappingURL=sandbox-ref.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-ref.d.ts","sourceRoot":"","sources":["../src/sandbox-ref.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EACnB,UAAU,EAEV,cAAc,EAGf,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,UAAU;IACzB,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,4EAA4E;IAC5E,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAYD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,UAAU,CAgBtG;AAoBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAOrD;AAED
|
|
1
|
+
{"version":3,"file":"sandbox-ref.d.ts","sourceRoot":"","sources":["../src/sandbox-ref.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EACnB,UAAU,EAEV,cAAc,EAGf,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,UAAU;IACzB,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,4EAA4E;IAC5E,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,YAAY,EAAE,OAAO,CAAC;IACtB,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,mBAAmB,CAAA;CAAE,KACzD,cAAc,CAAC;AAIpB;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAE5F;AAED,uCAAuC;AACvC,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAElE;AAED,0DAA0D;AAC1D,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD;AAYD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,UAAU,CAgBtG;AAoBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAOrD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,oBAAoB,GAAG,cAAc,CAkBpF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAyBlG;AAuED,qCAAqC;AACrC,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C"}
|
package/dist/sandbox-ref.js
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { FabricError } from './error.js';
|
|
3
|
+
const decoders = new Map();
|
|
4
|
+
/**
|
|
5
|
+
* Register a decoder for `provider` so `attachSandbox(serialized)` can
|
|
6
|
+
* rehydrate a sandbox from another process. Typically called once at
|
|
7
|
+
* startup by the package that owns the provider integration (e.g.
|
|
8
|
+
* `@fabric-harness/connectors/e2b` registers the `e2b` provider).
|
|
9
|
+
*/
|
|
10
|
+
export function registerSandboxRefDecoder(provider, decoder) {
|
|
11
|
+
decoders.set(provider, decoder);
|
|
12
|
+
}
|
|
13
|
+
/** Test/internal: remove a decoder. */
|
|
14
|
+
export function unregisterSandboxRefDecoder(provider) {
|
|
15
|
+
decoders.delete(provider);
|
|
16
|
+
}
|
|
17
|
+
/** Returns the list of currently registered providers. */
|
|
18
|
+
export function listSandboxRefDecoders() {
|
|
19
|
+
return [...decoders.keys()];
|
|
20
|
+
}
|
|
3
21
|
const registry = new Map();
|
|
4
22
|
let nextRefId = 0;
|
|
5
23
|
/**
|
|
@@ -58,12 +76,65 @@ export function unregisterSandbox(refId) {
|
|
|
58
76
|
* delegating to the registered sandbox without owning its lifecycle. Calling
|
|
59
77
|
* `cleanup()` on the attached env unregisters this attachment but does NOT
|
|
60
78
|
* tear down the underlying sandbox.
|
|
79
|
+
*
|
|
80
|
+
* Pass an in-process `SandboxRef` to attach within the same process, or a
|
|
81
|
+
* `SerializedSandboxRef` (from `session.sandboxRef({ portable: true })`) to
|
|
82
|
+
* rehydrate a sandbox handed off from another process. Cross-process refs
|
|
83
|
+
* require a decoder registered for `serialized.provider` via
|
|
84
|
+
* `registerSandboxRefDecoder()`.
|
|
61
85
|
*/
|
|
62
86
|
export function attachSandbox(ref) {
|
|
87
|
+
if ('provider' in ref) {
|
|
88
|
+
const serialized = ref;
|
|
89
|
+
const decoder = decoders.get(serialized.provider);
|
|
90
|
+
if (!decoder) {
|
|
91
|
+
throw new FabricError({
|
|
92
|
+
code: 'SANDBOX_UNAVAILABLE',
|
|
93
|
+
message: `No sandbox ref decoder registered for provider '${serialized.provider}'. Register one with registerSandboxRefDecoder('${serialized.provider}', ...) before calling attachSandbox().`,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return decoder(serialized.providerData, {
|
|
97
|
+
cwd: serialized.cwd,
|
|
98
|
+
...(serialized.capabilities ? { capabilities: serialized.capabilities } : {}),
|
|
99
|
+
});
|
|
100
|
+
}
|
|
63
101
|
return (_options = {}) => {
|
|
64
102
|
return new AttachedSandboxEnv(ref);
|
|
65
103
|
};
|
|
66
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Serialize an in-process `SandboxRef` into the cross-process form.
|
|
107
|
+
* Requires the underlying sandbox to implement `encodeRef()`. Throws
|
|
108
|
+
* `SANDBOX_UNAVAILABLE` if the backend is in-process-only.
|
|
109
|
+
*/
|
|
110
|
+
export function serializeSandboxRef(ref, ownerSessionId) {
|
|
111
|
+
const entry = lookupAlive(ref.id);
|
|
112
|
+
if (!entry.env.encodeRef) {
|
|
113
|
+
throw new FabricError({
|
|
114
|
+
code: 'SANDBOX_UNAVAILABLE',
|
|
115
|
+
message: `Sandbox backend does not implement encodeRef(); ref ${ref.id} cannot be serialized for cross-process attach.`,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
const encoded = entry.env.encodeRef();
|
|
119
|
+
if (!encoded) {
|
|
120
|
+
throw new FabricError({
|
|
121
|
+
code: 'SANDBOX_UNAVAILABLE',
|
|
122
|
+
message: `Sandbox backend's encodeRef() returned undefined; ref ${ref.id} is not portable in its current state.`,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
const serialized = {
|
|
126
|
+
provider: encoded.provider,
|
|
127
|
+
providerData: encoded.providerData,
|
|
128
|
+
cwd: ref.cwd,
|
|
129
|
+
encodedAt: new Date().toISOString(),
|
|
130
|
+
};
|
|
131
|
+
if (ref.capabilities)
|
|
132
|
+
serialized.capabilities = ref.capabilities;
|
|
133
|
+
const owner = ownerSessionId ?? entry.ownerSessionId;
|
|
134
|
+
if (owner)
|
|
135
|
+
serialized.ownerSessionId = owner;
|
|
136
|
+
return serialized;
|
|
137
|
+
}
|
|
67
138
|
class AttachedSandboxEnv {
|
|
68
139
|
ref;
|
|
69
140
|
cwd;
|
package/dist/sandbox-ref.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-ref.js","sourceRoot":"","sources":["../src/sandbox-ref.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sandbox-ref.js","sourceRoot":"","sources":["../src/sandbox-ref.ts"],"names":[],"mappings":"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"}
|
package/dist/sandbox.d.ts
CHANGED
|
@@ -74,6 +74,20 @@ export interface SandboxEnv {
|
|
|
74
74
|
suspend?(): Promise<void>;
|
|
75
75
|
/** Resume a suspended sandbox. Idempotent when already running. */
|
|
76
76
|
resume?(): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Optional. Return provider-specific routing data so this sandbox can be
|
|
79
|
+
* re-attached from a different process. Backends that can be reached only
|
|
80
|
+
* by ID (E2B, Daytona, Modal call IDs, Kubernetes pod refs) implement this;
|
|
81
|
+
* in-process backends (Local) typically omit it, since refs are scoped to
|
|
82
|
+
* one process.
|
|
83
|
+
*
|
|
84
|
+
* The returned `provider` string must match a decoder registered via
|
|
85
|
+
* `registerSandboxRefDecoder()` for the ref to be re-attachable.
|
|
86
|
+
*/
|
|
87
|
+
encodeRef?(): {
|
|
88
|
+
provider: string;
|
|
89
|
+
providerData: unknown;
|
|
90
|
+
} | undefined;
|
|
77
91
|
cleanup(): Promise<void>;
|
|
78
92
|
}
|
|
79
93
|
export interface SandboxFactoryOptions {
|
|
@@ -135,6 +149,17 @@ export interface RemoteSandboxOptions {
|
|
|
135
149
|
};
|
|
136
150
|
pathStyle?: 'posix';
|
|
137
151
|
capabilities?: SandboxCapabilities;
|
|
152
|
+
/**
|
|
153
|
+
* Optional encoder for cross-process refs. When set, the resulting
|
|
154
|
+
* SandboxEnv exposes `encodeRef()` returning the supplied provider data,
|
|
155
|
+
* allowing `session.sandboxRef({ portable: true })` to round-trip the
|
|
156
|
+
* sandbox through `attachSandbox(serialized)` in another process.
|
|
157
|
+
* The matching decoder must be registered via `registerSandboxRefDecoder`.
|
|
158
|
+
*/
|
|
159
|
+
encodeRef?: () => {
|
|
160
|
+
provider: string;
|
|
161
|
+
providerData: unknown;
|
|
162
|
+
};
|
|
138
163
|
}
|
|
139
164
|
/**
|
|
140
165
|
* Wrap a provider-owned remote sandbox client in Fabric's SandboxEnv contract.
|
package/dist/sandbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|
package/dist/sandbox.js
CHANGED
|
@@ -135,6 +135,9 @@ class RemoteSandboxEnv {
|
|
|
135
135
|
throw new Error('Remote sandbox does not support resume.');
|
|
136
136
|
await this.api.resume();
|
|
137
137
|
}
|
|
138
|
+
encodeRef() {
|
|
139
|
+
return this.options.encodeRef ? this.options.encodeRef() : undefined;
|
|
140
|
+
}
|
|
138
141
|
async cleanup() {
|
|
139
142
|
const cleanup = this.options.cleanup;
|
|
140
143
|
if (!cleanup)
|