@framers/agentos 0.12.8 → 0.12.10
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 +2 -2
- package/dist/cognition/emergent/EffectsStore.d.ts +10 -4
- package/dist/cognition/emergent/EffectsStore.d.ts.map +1 -1
- package/dist/cognition/emergent/EffectsStore.js +5 -3
- package/dist/cognition/emergent/EffectsStore.js.map +1 -1
- package/dist/cognition/emergent/EmergentCapabilityEngine.d.ts +2 -0
- package/dist/cognition/emergent/EmergentCapabilityEngine.d.ts.map +1 -1
- package/dist/cognition/emergent/EmergentCapabilityEngine.js +22 -13
- package/dist/cognition/emergent/EmergentCapabilityEngine.js.map +1 -1
- package/dist/cognition/emergent/EmergentToolRegistry.d.ts.map +1 -1
- package/dist/cognition/emergent/EmergentToolRegistry.js +5 -1
- package/dist/cognition/emergent/EmergentToolRegistry.js.map +1 -1
- package/dist/cognition/emergent/SandboxedToolForge.d.ts +43 -35
- package/dist/cognition/emergent/SandboxedToolForge.d.ts.map +1 -1
- package/dist/cognition/emergent/SandboxedToolForge.js +76 -107
- package/dist/cognition/emergent/SandboxedToolForge.js.map +1 -1
- package/dist/cognition/emergent/broker/CapabilityBroker.d.ts +8 -5
- package/dist/cognition/emergent/broker/CapabilityBroker.d.ts.map +1 -1
- package/dist/cognition/emergent/broker/CapabilityBroker.js +38 -19
- package/dist/cognition/emergent/broker/CapabilityBroker.js.map +1 -1
- package/dist/cognition/emergent/broker/fetch.d.ts +5 -1
- package/dist/cognition/emergent/broker/fetch.d.ts.map +1 -1
- package/dist/cognition/emergent/broker/fetch.js +8 -3
- package/dist/cognition/emergent/broker/fetch.js.map +1 -1
- package/dist/cognition/emergent/ceiling.d.ts +11 -3
- package/dist/cognition/emergent/ceiling.d.ts.map +1 -1
- package/dist/cognition/emergent/ceiling.js +107 -29
- package/dist/cognition/emergent/ceiling.js.map +1 -1
- package/dist/cognition/emergent/executor/InProcessExecutor.d.ts +24 -0
- package/dist/cognition/emergent/executor/InProcessExecutor.d.ts.map +1 -0
- package/dist/cognition/emergent/executor/InProcessExecutor.js +83 -0
- package/dist/cognition/emergent/executor/InProcessExecutor.js.map +1 -0
- package/dist/cognition/emergent/executor/types.d.ts +72 -0
- package/dist/cognition/emergent/executor/types.d.ts.map +1 -0
- package/dist/cognition/emergent/executor/types.js +12 -0
- package/dist/cognition/emergent/executor/types.js.map +1 -0
- package/dist/cognition/emergent/index.d.ts +2 -0
- package/dist/cognition/emergent/index.d.ts.map +1 -1
- package/dist/cognition/emergent/index.js +1 -0
- package/dist/cognition/emergent/index.js.map +1 -1
- package/dist/cognition/emergent/types.d.ts +2 -2
- package/dist/cognition/emergent/types.d.ts.map +1 -1
- package/dist/cognition/substrate/IGMI.d.ts +14 -4
- package/dist/cognition/substrate/IGMI.d.ts.map +1 -1
- package/dist/cognition/substrate/IGMI.js +8 -2
- package/dist/cognition/substrate/IGMI.js.map +1 -1
- package/dist/core/tools/ITool.d.ts +6 -1
- package/dist/core/tools/ITool.d.ts.map +1 -1
- package/dist/safety/guardrails/IGuardrailService.d.ts +28 -14
- package/dist/safety/guardrails/IGuardrailService.d.ts.map +1 -1
- package/dist/safety/guardrails/guardrailDispatcher.d.ts +2 -1
- package/dist/safety/guardrails/guardrailDispatcher.d.ts.map +1 -1
- package/dist/safety/guardrails/guardrailDispatcher.js +2 -1
- package/dist/safety/guardrails/guardrailDispatcher.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxedToolForge.js","sourceRoot":"","sources":["../../../src/cognition/emergent/SandboxedToolForge.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SandboxedToolForge.js","sourceRoot":"","sources":["../../../src/cognition/emergent/SandboxedToolForge.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* It hands each run the functions the run's grant names, scoped by the
|
|
4
4
|
* ceiling. Before every capability call it checks, in this order: the run is
|
|
5
5
|
* live, the capability is in the grant, the target fits the scope. It then
|
|
6
|
-
* writes the intent record,
|
|
7
|
-
*
|
|
6
|
+
* writes the intent record, naming the target as checked (the URL it sends,
|
|
7
|
+
* the path it reads), checks the run is still live, performs the call while
|
|
8
|
+
* tracking it under the run's id, and writes the terminal record. When
|
|
8
9
|
* the run ends, `endCall` waits up to {@link CALL_SETTLE_MS} for what is in
|
|
9
10
|
* flight and returns the run's effects. On `node:vm` these checks are a
|
|
10
11
|
* guardrail for code that acts through these functions; Node's documentation
|
|
@@ -44,9 +45,11 @@ export declare class CapabilityBroker {
|
|
|
44
45
|
/** The run is live and the capability is in its grant and the ceiling. */
|
|
45
46
|
private admit;
|
|
46
47
|
/**
|
|
47
|
-
* One capability call: the checks
|
|
48
|
-
*
|
|
49
|
-
*
|
|
48
|
+
* One capability call: the checks, then the recorded call, tracked in
|
|
49
|
+
* flight from its intent write to its terminal write, so ending the run
|
|
50
|
+
* waits for both. The records name the target the checks passed (the URL
|
|
51
|
+
* sent, the path read); a call refused before they passed is recorded as
|
|
52
|
+
* one row naming `given`, the value the tool passed, read once.
|
|
50
53
|
*/
|
|
51
54
|
private perform;
|
|
52
55
|
/** The intent record, the run checked again, the call, and its terminal record. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CapabilityBroker.d.ts","sourceRoot":"","sources":["../../../../src/cognition/emergent/broker/CapabilityBroker.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"CapabilityBroker.d.ts","sourceRoot":"","sources":["../../../../src/cognition/emergent/broker/CapabilityBroker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAoB,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAqC,KAAK,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AAC/G,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK9D,6EAA6E;AAC7E,eAAO,MAAM,cAAc,OAAO,CAAC;AAkCnC,qBAAa,gBAAgB;IASzB,QAAQ,CAAC,OAAO,EAAE,eAAe;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IATzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IAErD;;;OAGG;gBAEQ,OAAO,EAAE,eAAe,EAChB,KAAK,CAAC,EAAE,YAAY,YAAA;IAKvC;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAsEzF;;;;;OAKG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAuB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA6C7F,OAAO,CAAC,SAAS;IASjB,0EAA0E;IAC1E,OAAO,CAAC,KAAK;IASb;;;;;;OAMG;YACW,OAAO;IA2CrB,mFAAmF;YACrE,QAAQ;YAsCR,MAAM;YAiBN,aAAa;IA0B3B,OAAO,CAAC,QAAQ;CASjB"}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* It hands each run the functions the run's grant names, scoped by the
|
|
4
4
|
* ceiling. Before every capability call it checks, in this order: the run is
|
|
5
5
|
* live, the capability is in the grant, the target fits the scope. It then
|
|
6
|
-
* writes the intent record,
|
|
7
|
-
*
|
|
6
|
+
* writes the intent record, naming the target as checked (the URL it sends,
|
|
7
|
+
* the path it reads), checks the run is still live, performs the call while
|
|
8
|
+
* tracking it under the run's id, and writes the terminal record. When
|
|
8
9
|
* the run ends, `endCall` waits up to {@link CALL_SETTLE_MS} for what is in
|
|
9
10
|
* flight and returns the run's effects. On `node:vm` these checks are a
|
|
10
11
|
* guardrail for code that acts through these functions; Node's documentation
|
|
@@ -52,13 +53,23 @@ export class CapabilityBroker {
|
|
|
52
53
|
const functions = {};
|
|
53
54
|
const fetchScope = this.ceiling.fetch;
|
|
54
55
|
if (grant.includes('fetch') && fetchScope) {
|
|
55
|
-
functions.fetch = (input, init) =>
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
functions.fetch = (input, init) => {
|
|
57
|
+
// The forged code's argument is read once: the URL checked and sent
|
|
58
|
+
// is parsed from this read, and a call refused before its checks
|
|
59
|
+
// passed is recorded with it.
|
|
60
|
+
const given = fetchTarget(input);
|
|
61
|
+
return this.perform(run, grant, 'fetch', given ?? String(input), () => {
|
|
62
|
+
const prepared = prepareFetch(given, init, fetchScope);
|
|
63
|
+
return {
|
|
64
|
+
// The first request's URL, as parsed: what was checked and sent.
|
|
65
|
+
target: prepared.url.href,
|
|
66
|
+
operation: async (signal) => {
|
|
67
|
+
const sent = await sendFetch(prepared, fetchScope, signal);
|
|
68
|
+
return { value: sent.response, bytes: sent.bytes };
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
};
|
|
62
73
|
}
|
|
63
74
|
const readScope = this.ceiling['fs.read'];
|
|
64
75
|
const roots = this.readRoots;
|
|
@@ -66,9 +77,14 @@ export class CapabilityBroker {
|
|
|
66
77
|
functions.fs = {
|
|
67
78
|
readFile: (filePath) => this.perform(run, grant, 'fs.read', String(filePath), () => {
|
|
68
79
|
const resolved = prepareRead(filePath, roots);
|
|
69
|
-
return
|
|
70
|
-
|
|
71
|
-
|
|
80
|
+
return {
|
|
81
|
+
// The path as resolved and checked against the roots (the read
|
|
82
|
+
// follows its links, and checks the real path again).
|
|
83
|
+
target: resolved,
|
|
84
|
+
operation: async (signal) => {
|
|
85
|
+
const read = await readPrepared(resolved, roots, readScope, signal);
|
|
86
|
+
return { value: read.text, bytes: read.bytes };
|
|
87
|
+
},
|
|
72
88
|
};
|
|
73
89
|
}),
|
|
74
90
|
};
|
|
@@ -166,22 +182,25 @@ export class CapabilityBroker {
|
|
|
166
182
|
}
|
|
167
183
|
}
|
|
168
184
|
/**
|
|
169
|
-
* One capability call: the checks
|
|
170
|
-
*
|
|
171
|
-
*
|
|
185
|
+
* One capability call: the checks, then the recorded call, tracked in
|
|
186
|
+
* flight from its intent write to its terminal write, so ending the run
|
|
187
|
+
* waits for both. The records name the target the checks passed (the URL
|
|
188
|
+
* sent, the path read); a call refused before they passed is recorded as
|
|
189
|
+
* one row naming `given`, the value the tool passed, read once.
|
|
172
190
|
*/
|
|
173
|
-
async perform(run, grant, capability,
|
|
174
|
-
let
|
|
191
|
+
async perform(run, grant, capability, given, prepare) {
|
|
192
|
+
let prepared;
|
|
175
193
|
try {
|
|
176
194
|
this.admit(run, grant, capability);
|
|
177
|
-
|
|
195
|
+
prepared = prepare();
|
|
178
196
|
}
|
|
179
197
|
catch (error) {
|
|
180
198
|
if (error instanceof CapabilityRefusal) {
|
|
181
|
-
await this.recordRefusal(run, capability,
|
|
199
|
+
await this.recordRefusal(run, capability, given, error.code);
|
|
182
200
|
}
|
|
183
201
|
throw error;
|
|
184
202
|
}
|
|
203
|
+
const { target, operation } = prepared;
|
|
185
204
|
const effect = {
|
|
186
205
|
kind: 'capability',
|
|
187
206
|
toolId: run.call.toolId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CapabilityBroker.js","sourceRoot":"","sources":["../../../../src/cognition/emergent/broker/CapabilityBroker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CapabilityBroker.js","sourceRoot":"","sources":["../../../../src/cognition/emergent/broker/CapabilityBroker.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,11 @@ export interface PreparedFetch {
|
|
|
21
21
|
method: 'GET' | 'HEAD';
|
|
22
22
|
headers: Headers;
|
|
23
23
|
}
|
|
24
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* The URL a forged tool's first argument names: a string, a URL, or an object
|
|
26
|
+
* with a `url` string. A property is read once, so the value checked is the
|
|
27
|
+
* value returned (a getter in forged code can answer each read differently).
|
|
28
|
+
*/
|
|
25
29
|
export declare function fetchTarget(input: unknown): string | undefined;
|
|
26
30
|
/**
|
|
27
31
|
* The checks made before anything is sent. The caller's options are read for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../src/cognition/emergent/broker/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,2EAA2E;AAC3E,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAOD
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../src/cognition/emergent/broker/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,2EAA2E;AAC3E,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAOD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAY9D;AAuCD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa,CAmB5F;AA8BD;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAiEhD;AAED,4EAA4E;AAC5E,wBAAsB,aAAa,CACjC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,QAAQ,CAAC,CAEnB"}
|
|
@@ -12,7 +12,11 @@ const REDIRECT_STATUSES = new Set([301, 302, 303, 307, 308]);
|
|
|
12
12
|
const NULL_BODY_STATUSES = new Set([204, 205, 304]);
|
|
13
13
|
/** Dropped when a redirect changes the origin, as fetch itself does. */
|
|
14
14
|
const CROSS_ORIGIN_DROPPED = ['authorization', 'proxy-authorization', 'cookie', 'host'];
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* The URL a forged tool's first argument names: a string, a URL, or an object
|
|
17
|
+
* with a `url` string. A property is read once, so the value checked is the
|
|
18
|
+
* value returned (a getter in forged code can answer each read differently).
|
|
19
|
+
*/
|
|
16
20
|
export function fetchTarget(input) {
|
|
17
21
|
if (typeof input === 'string') {
|
|
18
22
|
return input;
|
|
@@ -20,8 +24,9 @@ export function fetchTarget(input) {
|
|
|
20
24
|
if (input instanceof URL) {
|
|
21
25
|
return input.href;
|
|
22
26
|
}
|
|
23
|
-
if (input && typeof input === 'object'
|
|
24
|
-
|
|
27
|
+
if (input && typeof input === 'object') {
|
|
28
|
+
const url = input.url;
|
|
29
|
+
return typeof url === 'string' ? url : undefined;
|
|
25
30
|
}
|
|
26
31
|
return undefined;
|
|
27
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../src/cognition/emergent/broker/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAkBjD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACpD,wEAAwE;AACxE,MAAM,oBAAoB,GAAG,CAAC,eAAe,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAExF
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../src/cognition/emergent/broker/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ export interface ResolvedCeiling {
|
|
|
26
26
|
retainDays?: number;
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
export type CeilingErrorCode = 'unknown_capability' | 'root_not_absolute' | 'method_not_allowed' | 'invalid_domain' | 'invalid_bound' | 'audit_needs_storage' | 'forge_wider_than_ceiling';
|
|
29
|
+
export type CeilingErrorCode = 'unknown_capability' | 'root_not_absolute' | 'method_not_allowed' | 'invalid_domain' | 'invalid_bound' | 'invalid_audit' | 'audit_needs_storage' | 'forge_wider_than_ceiling';
|
|
30
30
|
/** A ceiling the engine cannot build; the message starts with the code and the key. */
|
|
31
31
|
export declare class CeilingError extends Error {
|
|
32
32
|
readonly code: CeilingErrorCode;
|
|
@@ -42,7 +42,11 @@ export declare const CEILING_DEFAULTS: {
|
|
|
42
42
|
};
|
|
43
43
|
/**
|
|
44
44
|
* Validates a host's ceiling and applies its defaults. An empty `domains` or
|
|
45
|
-
* `roots` list removes its capability (an empty list grants nothing)
|
|
45
|
+
* `roots` list removes its capability (an empty list grants nothing); the
|
|
46
|
+
* capability's other settings are validated all the same. A configuration
|
|
47
|
+
* read from JSON gets no type check, so each value's kind is checked here:
|
|
48
|
+
* a mistyped audit setting, a list of the wrong shape or a bound out of its
|
|
49
|
+
* range fails here, naming its key, never later at a call.
|
|
46
50
|
*
|
|
47
51
|
* @throws CeilingError naming the code and the key of the first failure.
|
|
48
52
|
*/
|
|
@@ -64,7 +68,11 @@ export declare function checkRequest(request: readonly CapabilityName[], ceiling
|
|
|
64
68
|
* ceiling, and then they narrow it; they may never be wider. Only the
|
|
65
69
|
* capabilities the ceiling grants are compared, since the broker injects no
|
|
66
70
|
* other. An intersection is taken in the ceiling's terms and never widens:
|
|
67
|
-
* disjoint lists are wider, not empty.
|
|
71
|
+
* disjoint lists are wider, not empty. Read roots are compared after their
|
|
72
|
+
* symlinks are resolved, the forge's and the ceiling's alike, since the
|
|
73
|
+
* broker reads by real path: a forge root that is a link inside a ceiling
|
|
74
|
+
* root to a directory outside it is wider. The narrowed roots are the
|
|
75
|
+
* forge's, as it names them.
|
|
68
76
|
*
|
|
69
77
|
* @throws CeilingError (`forge_wider_than_ceiling`) naming the forge option.
|
|
70
78
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ceiling.d.ts","sourceRoot":"","sources":["../../../src/cognition/emergent/ceiling.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"ceiling.d.ts","sourceRoot":"","sources":["../../../src/cognition/emergent/ceiling.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE1F,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;QACxB,OAAO,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;QAC/B,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,KAAK,EAAE;QAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvF;AAED,MAAM,MAAM,gBAAgB,GACxB,oBAAoB,GACpB,mBAAmB,GACnB,oBAAoB,GACpB,gBAAgB,GAChB,eAAe,GACf,eAAe,GACf,qBAAqB,GACrB,0BAA0B,CAAC;AAE/B,uFAAuF;AACvF,qBAAa,YAAa,SAAQ,KAAK;IAEnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM;gBADX,IAAI,EAAE,gBAAgB,EACtB,GAAG,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM;CAKjB;AAED,eAAO,MAAM,gBAAgB;sBACC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;;;;;CAKzC,CAAC;AA6DX;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,kBAAkB,EAChC,KAAK,EAAE,mBAAmB,GAAG,SAAS,EACtC,OAAO,EAAE;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,GAC/B,eAAe,CA4GjB;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,EAAE,CAE9E;AAED,0GAA0G;AAC1G,wBAAgB,YAAY,CAC1B,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,OAAO,EAAE,eAAe,GACvB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,EAAE,cAAc,EAAE,CAAA;CAAE,CAIpF;AAoBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE;IAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAC/D,eAAe,CAwCjB"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* the check of a host-built forge's options against it.
|
|
5
5
|
* @module @framers/agentos/emergent/ceiling
|
|
6
6
|
*/
|
|
7
|
+
import { realpathSync } from 'node:fs';
|
|
7
8
|
import * as path from 'node:path';
|
|
8
9
|
import { CAPABILITY_NAMES } from './capabilities.js';
|
|
9
10
|
/** A ceiling the engine cannot build; the message starts with the code and the key. */
|
|
@@ -23,18 +24,56 @@ export const CEILING_DEFAULTS = {
|
|
|
23
24
|
timeoutMs: 30000,
|
|
24
25
|
};
|
|
25
26
|
const HOSTNAME = /^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$|^\d{1,3}(\.\d{1,3}){3}$/;
|
|
26
|
-
|
|
27
|
+
/**
|
|
28
|
+
* The longest delay Node's timers keep (2^31 - 1 ms). Above it `setTimeout`
|
|
29
|
+
* and `AbortSignal.timeout` fire at once, and from 2^32 `AbortSignal.timeout`
|
|
30
|
+
* throws, so a time bound above it would end or fail every call.
|
|
31
|
+
*/
|
|
32
|
+
const MAX_TIMER_MS = 2147483647;
|
|
33
|
+
/** A value as an error message shows it. */
|
|
34
|
+
function shown(value) {
|
|
35
|
+
if (typeof value === 'string') {
|
|
36
|
+
return `"${value}"`;
|
|
37
|
+
}
|
|
38
|
+
if (Array.isArray(value)) {
|
|
39
|
+
return 'a list';
|
|
40
|
+
}
|
|
41
|
+
if (typeof value === 'object' && value !== null) {
|
|
42
|
+
return 'an object';
|
|
43
|
+
}
|
|
44
|
+
return typeof value === 'function' ? 'a function' : String(value);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* An integer bound from `min` to `max`, or the fallback when it is not set.
|
|
48
|
+
* Byte bounds and counts stop at `Number.MAX_SAFE_INTEGER`, and time bounds
|
|
49
|
+
* at {@link MAX_TIMER_MS}.
|
|
50
|
+
*/
|
|
51
|
+
function bound(value, fallback, key, min, max = Number.MAX_SAFE_INTEGER) {
|
|
27
52
|
if (value === undefined) {
|
|
28
53
|
return fallback;
|
|
29
54
|
}
|
|
30
|
-
if (!Number.isInteger(value) || value < min) {
|
|
31
|
-
throw new CeilingError('invalid_bound', key, `expected an integer
|
|
55
|
+
if (!Number.isInteger(value) || value < min || value > max) {
|
|
56
|
+
throw new CeilingError('invalid_bound', key, `expected an integer from ${min} to ${max}, got ${shown(value)}`);
|
|
57
|
+
}
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
/** An audit setting: one of the values allowed, or the fallback when it is not set. */
|
|
61
|
+
function auditValue(value, allowed, fallback, key) {
|
|
62
|
+
if (value === undefined) {
|
|
63
|
+
return fallback;
|
|
64
|
+
}
|
|
65
|
+
if (typeof value !== 'string' || !allowed.includes(value)) {
|
|
66
|
+
throw new CeilingError('invalid_audit', key, `expected ${allowed.map((option) => `'${option}'`).join(' or ')}, got ${shown(value)}`);
|
|
32
67
|
}
|
|
33
68
|
return value;
|
|
34
69
|
}
|
|
35
70
|
/**
|
|
36
71
|
* Validates a host's ceiling and applies its defaults. An empty `domains` or
|
|
37
|
-
* `roots` list removes its capability (an empty list grants nothing)
|
|
72
|
+
* `roots` list removes its capability (an empty list grants nothing); the
|
|
73
|
+
* capability's other settings are validated all the same. A configuration
|
|
74
|
+
* read from JSON gets no type check, so each value's kind is checked here:
|
|
75
|
+
* a mistyped audit setting, a list of the wrong shape or a bound out of its
|
|
76
|
+
* range fails here, naming its key, never later at a call.
|
|
38
77
|
*
|
|
39
78
|
* @throws CeilingError naming the code and the key of the first failure.
|
|
40
79
|
*/
|
|
@@ -46,8 +85,8 @@ export function resolveCeiling(capabilities, audit, options) {
|
|
|
46
85
|
}
|
|
47
86
|
const resolved = {
|
|
48
87
|
audit: {
|
|
49
|
-
store: audit?.store
|
|
50
|
-
content: audit?.content
|
|
88
|
+
store: auditValue(audit?.store, ['storage', 'none'], 'storage', 'audit.store'),
|
|
89
|
+
content: auditValue(audit?.content, ['digest', 'full'], 'digest', 'audit.content'),
|
|
51
90
|
...(audit?.retainDays !== undefined
|
|
52
91
|
? { retainDays: bound(audit.retainDays, 0, 'audit.retainDays', 1) }
|
|
53
92
|
: {}),
|
|
@@ -55,44 +94,60 @@ export function resolveCeiling(capabilities, audit, options) {
|
|
|
55
94
|
};
|
|
56
95
|
const fetch = capabilities.fetch;
|
|
57
96
|
if (fetch) {
|
|
58
|
-
const
|
|
59
|
-
|
|
97
|
+
const givenMethods = fetch.methods ?? [...CEILING_DEFAULTS.methods];
|
|
98
|
+
if (!Array.isArray(givenMethods)) {
|
|
99
|
+
throw new CeilingError('method_not_allowed', 'capabilities.fetch.methods', `expected a list of methods, got ${shown(givenMethods)}`);
|
|
100
|
+
}
|
|
101
|
+
for (const method of givenMethods) {
|
|
60
102
|
if (method !== 'GET' && method !== 'HEAD') {
|
|
61
103
|
throw new CeilingError('method_not_allowed', 'capabilities.fetch.methods', `${String(method)}: stage 1 allows GET and HEAD`);
|
|
62
104
|
}
|
|
63
105
|
}
|
|
106
|
+
const methods = givenMethods;
|
|
107
|
+
const givenDomains = fetch.domains;
|
|
64
108
|
let domains = '*';
|
|
65
|
-
if (
|
|
66
|
-
|
|
109
|
+
if (givenDomains !== '*') {
|
|
110
|
+
if (!Array.isArray(givenDomains)) {
|
|
111
|
+
throw new CeilingError('invalid_domain', 'capabilities.fetch.domains', `expected '*' or a list of host names, got ${shown(givenDomains)}`);
|
|
112
|
+
}
|
|
113
|
+
const odd = givenDomains.findIndex((domain) => typeof domain !== 'string');
|
|
114
|
+
if (odd >= 0) {
|
|
115
|
+
throw new CeilingError('invalid_domain', 'capabilities.fetch.domains', `entry ${odd} is ${shown(givenDomains[odd])}, not a host name`);
|
|
116
|
+
}
|
|
117
|
+
domains = givenDomains.map((domain) => domain.toLowerCase());
|
|
67
118
|
for (const domain of domains) {
|
|
68
119
|
if (!HOSTNAME.test(domain)) {
|
|
69
120
|
throw new CeilingError('invalid_domain', 'capabilities.fetch.domains', `"${domain}" is not a host name (no scheme, port or path)`);
|
|
70
121
|
}
|
|
71
122
|
}
|
|
72
123
|
}
|
|
124
|
+
const scope = {
|
|
125
|
+
domains,
|
|
126
|
+
methods,
|
|
127
|
+
maxResponseBytes: bound(fetch.maxResponseBytes, CEILING_DEFAULTS.maxResponseBytes, 'capabilities.fetch.maxResponseBytes', 1),
|
|
128
|
+
maxRedirects: bound(fetch.maxRedirects, CEILING_DEFAULTS.maxRedirects, 'capabilities.fetch.maxRedirects', 0),
|
|
129
|
+
timeoutMs: bound(fetch.timeoutMs, CEILING_DEFAULTS.timeoutMs, 'capabilities.fetch.timeoutMs', 1, MAX_TIMER_MS),
|
|
130
|
+
};
|
|
73
131
|
if (domains === '*' || domains.length > 0) {
|
|
74
|
-
resolved.fetch =
|
|
75
|
-
domains,
|
|
76
|
-
methods,
|
|
77
|
-
maxResponseBytes: bound(fetch.maxResponseBytes, CEILING_DEFAULTS.maxResponseBytes, 'capabilities.fetch.maxResponseBytes', 1),
|
|
78
|
-
maxRedirects: bound(fetch.maxRedirects, CEILING_DEFAULTS.maxRedirects, 'capabilities.fetch.maxRedirects', 0),
|
|
79
|
-
timeoutMs: bound(fetch.timeoutMs, CEILING_DEFAULTS.timeoutMs, 'capabilities.fetch.timeoutMs', 1),
|
|
80
|
-
};
|
|
132
|
+
resolved.fetch = scope;
|
|
81
133
|
}
|
|
82
134
|
}
|
|
83
135
|
const read = capabilities['fs.read'];
|
|
84
136
|
if (read) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
137
|
+
const givenRoots = read.roots;
|
|
138
|
+
if (!Array.isArray(givenRoots)) {
|
|
139
|
+
throw new CeilingError('root_not_absolute', 'capabilities.fs.read.roots', `expected a list of absolute paths, got ${shown(givenRoots)}`);
|
|
140
|
+
}
|
|
141
|
+
for (const root of givenRoots) {
|
|
142
|
+
if (typeof root !== 'string' || !path.isAbsolute(root)) {
|
|
143
|
+
throw new CeilingError('root_not_absolute', 'capabilities.fs.read.roots', `${shown(root)} is not an absolute path`);
|
|
88
144
|
}
|
|
89
145
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
};
|
|
146
|
+
const roots = givenRoots;
|
|
147
|
+
const maxBytesPerRead = bound(read.maxBytesPerRead, CEILING_DEFAULTS.maxBytesPerRead, 'capabilities.fs.read.maxBytesPerRead', 1);
|
|
148
|
+
const timeoutMs = bound(read.timeoutMs, CEILING_DEFAULTS.timeoutMs, 'capabilities.fs.read.timeoutMs', 1, MAX_TIMER_MS);
|
|
149
|
+
if (roots.length > 0) {
|
|
150
|
+
resolved['fs.read'] = { roots: roots.map((root) => path.resolve(root)), maxBytesPerRead, timeoutMs };
|
|
96
151
|
}
|
|
97
152
|
}
|
|
98
153
|
if (capabilities.crypto) {
|
|
@@ -117,12 +172,29 @@ function within(candidate, root) {
|
|
|
117
172
|
const relative = path.relative(root, candidate);
|
|
118
173
|
return relative === '' || (relative !== '..' && !relative.startsWith(`..${path.sep}`) && !path.isAbsolute(relative));
|
|
119
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* A path with its symlinks resolved, as the broker resolves read roots (the
|
|
177
|
+
* native realpath, as `fs/promises` uses), or the path as given when it does
|
|
178
|
+
* not resolve: a path that does not exist reads nothing.
|
|
179
|
+
*/
|
|
180
|
+
function realOrGiven(candidate) {
|
|
181
|
+
try {
|
|
182
|
+
return realpathSync.native(candidate);
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
return candidate;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
120
188
|
/**
|
|
121
189
|
* A host-built forge under a ceiling: its options may be narrower than the
|
|
122
190
|
* ceiling, and then they narrow it; they may never be wider. Only the
|
|
123
191
|
* capabilities the ceiling grants are compared, since the broker injects no
|
|
124
192
|
* other. An intersection is taken in the ceiling's terms and never widens:
|
|
125
|
-
* disjoint lists are wider, not empty.
|
|
193
|
+
* disjoint lists are wider, not empty. Read roots are compared after their
|
|
194
|
+
* symlinks are resolved, the forge's and the ceiling's alike, since the
|
|
195
|
+
* broker reads by real path: a forge root that is a link inside a ceiling
|
|
196
|
+
* root to a directory outside it is wider. The narrowed roots are the
|
|
197
|
+
* forge's, as it names them.
|
|
126
198
|
*
|
|
127
199
|
* @throws CeilingError (`forge_wider_than_ceiling`) naming the forge option.
|
|
128
200
|
*/
|
|
@@ -146,9 +218,15 @@ export function narrowToForge(ceiling, forge) {
|
|
|
146
218
|
}
|
|
147
219
|
}
|
|
148
220
|
if (ceiling['fs.read']) {
|
|
149
|
-
const ceilingRoots = ceiling['fs.read'].roots;
|
|
221
|
+
const ceilingRoots = ceiling['fs.read'].roots.map(realOrGiven);
|
|
150
222
|
const forgeRoots = forge.fsReadRoots.map((root) => path.resolve(root));
|
|
151
|
-
const wider =
|
|
223
|
+
const wider = [];
|
|
224
|
+
for (const root of forgeRoots) {
|
|
225
|
+
const real = realOrGiven(root);
|
|
226
|
+
if (!ceilingRoots.some((ceilingRoot) => within(real, ceilingRoot))) {
|
|
227
|
+
wider.push(real === root ? root : `${root} (resolves to ${real})`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
152
230
|
if (wider.length > 0) {
|
|
153
231
|
throw new CeilingError('forge_wider_than_ceiling', 'sandboxForge.fsReadRoots', `outside the ceiling: ${wider.join(', ')}`);
|
|
154
232
|
}
|