@framers/agentos 0.12.21 → 0.12.23
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/EmergentCapabilityEngine.d.ts +4 -2
- package/dist/cognition/emergent/EmergentCapabilityEngine.d.ts.map +1 -1
- package/dist/cognition/emergent/EmergentCapabilityEngine.js +20 -1
- package/dist/cognition/emergent/EmergentCapabilityEngine.js.map +1 -1
- package/dist/cognition/emergent/executor/QuickJSExecutor.d.ts +64 -0
- package/dist/cognition/emergent/executor/QuickJSExecutor.d.ts.map +1 -0
- package/dist/cognition/emergent/executor/QuickJSExecutor.js +655 -0
- package/dist/cognition/emergent/executor/QuickJSExecutor.js.map +1 -0
- package/dist/cognition/emergent/executor/guest-prelude.d.ts +22 -0
- package/dist/cognition/emergent/executor/guest-prelude.d.ts.map +1 -0
- package/dist/cognition/emergent/executor/guest-prelude.js +559 -0
- package/dist/cognition/emergent/executor/guest-prelude.js.map +1 -0
- package/dist/cognition/emergent/executor/guest-surface.d.ts +34 -0
- package/dist/cognition/emergent/executor/guest-surface.d.ts.map +1 -0
- package/dist/cognition/emergent/executor/guest-surface.js +218 -0
- package/dist/cognition/emergent/executor/guest-surface.js.map +1 -0
- package/dist/cognition/emergent/executor/types.d.ts +7 -0
- package/dist/cognition/emergent/executor/types.d.ts.map +1 -1
- package/dist/cognition/emergent/index.d.ts +1 -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 +11 -3
- package/dist/cognition/emergent/types.d.ts.map +1 -1
- package/dist/cognition/emergent/types.js.map +1 -1
- package/dist/io/channels/adapters/PlivoSmsChannelAdapter.d.ts +88 -23
- package/dist/io/channels/adapters/PlivoSmsChannelAdapter.d.ts.map +1 -1
- package/dist/io/channels/adapters/PlivoSmsChannelAdapter.js +245 -75
- package/dist/io/channels/adapters/PlivoSmsChannelAdapter.js.map +1 -1
- package/package.json +11 -1
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview What crosses into a {@link QuickJSExecutor} guest: host
|
|
3
|
+
* functions that take data and return data (JSON values; bytes travel into
|
|
4
|
+
* the guest as `Uint8Array` and out of it as latin1 strings). The executor
|
|
5
|
+
* installs each as the guest global `__host_<name>`, and the guest prelude
|
|
6
|
+
* (guest-prelude.ts) builds the documented globals over them. Host values
|
|
7
|
+
* never cross.
|
|
8
|
+
*
|
|
9
|
+
* The bindings are built for one call and dropped with it. What they hold on
|
|
10
|
+
* the host is bounded per call: the response bodies of the call's fetches
|
|
11
|
+
* together by the call's memory budget, open hashes by
|
|
12
|
+
* {@link MAX_OPEN_DIGESTS}, built `Intl` services by {@link MAX_INTL_SERVICES}.
|
|
13
|
+
*
|
|
14
|
+
* @module @framers/agentos/emergent/executor/guest-surface
|
|
15
|
+
*/
|
|
16
|
+
/** Hashes and HMACs a call may hold open (created and not yet digested) at once. */
|
|
17
|
+
export const MAX_OPEN_DIGESTS = 64;
|
|
18
|
+
/** `Intl` services the host keeps built for one call; the oldest is dropped past it. */
|
|
19
|
+
export const MAX_INTL_SERVICES = 64;
|
|
20
|
+
const MIB = 1048576;
|
|
21
|
+
/** The methods the guest may call on each service; the prelude defines the same list. */
|
|
22
|
+
const INTL_METHODS = {
|
|
23
|
+
DateTimeFormat: ['resolvedOptions', 'format', 'formatToParts', 'formatRange', 'formatRangeToParts'],
|
|
24
|
+
NumberFormat: ['resolvedOptions', 'format', 'formatToParts', 'formatRange', 'formatRangeToParts'],
|
|
25
|
+
Collator: ['resolvedOptions', 'compare'],
|
|
26
|
+
PluralRules: ['resolvedOptions', 'select', 'selectRange'],
|
|
27
|
+
RelativeTimeFormat: ['resolvedOptions', 'format', 'formatToParts'],
|
|
28
|
+
ListFormat: ['resolvedOptions', 'format', 'formatToParts'],
|
|
29
|
+
DisplayNames: ['resolvedOptions', 'of'],
|
|
30
|
+
};
|
|
31
|
+
const DATE_LOCALE_METHODS = ['toLocaleString', 'toLocaleDateString', 'toLocaleTimeString'];
|
|
32
|
+
function orUndefined(value) {
|
|
33
|
+
return value === null ? undefined : value;
|
|
34
|
+
}
|
|
35
|
+
function intlServiceName(name) {
|
|
36
|
+
const kind = String(name);
|
|
37
|
+
if (!Object.prototype.hasOwnProperty.call(INTL_METHODS, kind)) {
|
|
38
|
+
throw new TypeError(`Intl.${kind} is not available`);
|
|
39
|
+
}
|
|
40
|
+
return kind;
|
|
41
|
+
}
|
|
42
|
+
function urlParts(url) {
|
|
43
|
+
return {
|
|
44
|
+
href: url.href,
|
|
45
|
+
origin: url.origin,
|
|
46
|
+
protocol: url.protocol,
|
|
47
|
+
username: url.username,
|
|
48
|
+
password: url.password,
|
|
49
|
+
host: url.host,
|
|
50
|
+
hostname: url.hostname,
|
|
51
|
+
port: url.port,
|
|
52
|
+
pathname: url.pathname,
|
|
53
|
+
search: url.search,
|
|
54
|
+
hash: url.hash,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Reads a response body chunk by chunk against the bytes the call has left;
|
|
59
|
+
* a chunk past them cancels the body and fails the fetch.
|
|
60
|
+
*/
|
|
61
|
+
async function readBody(response, budget) {
|
|
62
|
+
const stream = response.body;
|
|
63
|
+
if (!stream) {
|
|
64
|
+
return new Uint8Array(0);
|
|
65
|
+
}
|
|
66
|
+
const reader = stream.getReader();
|
|
67
|
+
const chunks = [];
|
|
68
|
+
let size = 0;
|
|
69
|
+
try {
|
|
70
|
+
for (;;) {
|
|
71
|
+
const { done, value } = await reader.read();
|
|
72
|
+
if (done) {
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
if (value.byteLength > budget.left) {
|
|
76
|
+
throw new RangeError(`fetch: the response bodies of this call passed its limit of ${Math.round(budget.limit / MIB)} MB`);
|
|
77
|
+
}
|
|
78
|
+
budget.left -= value.byteLength;
|
|
79
|
+
chunks.push(value);
|
|
80
|
+
size += value.byteLength;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
await reader.cancel().catch(() => undefined);
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
const body = new Uint8Array(size);
|
|
88
|
+
let offset = 0;
|
|
89
|
+
for (const chunk of chunks) {
|
|
90
|
+
body.set(chunk, offset);
|
|
91
|
+
offset += chunk.byteLength;
|
|
92
|
+
}
|
|
93
|
+
return body;
|
|
94
|
+
}
|
|
95
|
+
/** The host functions for one call, from the forge's `globals` for that call. */
|
|
96
|
+
export function guestBindings(globals, limits) {
|
|
97
|
+
const services = new Map();
|
|
98
|
+
const intlService = (kind, locales, options) => {
|
|
99
|
+
const key = JSON.stringify([kind, locales, options]);
|
|
100
|
+
let service = services.get(key);
|
|
101
|
+
if (!service) {
|
|
102
|
+
const Constructor = Intl[kind];
|
|
103
|
+
service = new Constructor(orUndefined(locales), orUndefined(options));
|
|
104
|
+
if (services.size >= MAX_INTL_SERVICES) {
|
|
105
|
+
const oldest = services.keys().next();
|
|
106
|
+
if (!oldest.done) {
|
|
107
|
+
services.delete(oldest.value);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
services.set(key, service);
|
|
111
|
+
}
|
|
112
|
+
return service;
|
|
113
|
+
};
|
|
114
|
+
const bindings = {
|
|
115
|
+
utf8_encode: (text) => new TextEncoder().encode(String(text)),
|
|
116
|
+
text_decoder_encoding: (label) => new TextDecoder(String(label)).encoding,
|
|
117
|
+
text_decode: (label, fatal, ignoreBOM, latin1) => new TextDecoder(String(label), { fatal: Boolean(fatal), ignoreBOM: Boolean(ignoreBOM) }).decode(Buffer.from(String(latin1), 'latin1')),
|
|
118
|
+
bytes_to_string: (latin1, encoding) => Buffer.from(String(latin1), 'latin1').toString(String(encoding)),
|
|
119
|
+
url_parse: (input, base) => urlParts(new URL(String(input), base === null || base === undefined ? undefined : String(base))),
|
|
120
|
+
url_set: (href, part, value) => {
|
|
121
|
+
const url = new URL(String(href));
|
|
122
|
+
url[String(part)] = String(value);
|
|
123
|
+
return urlParts(url);
|
|
124
|
+
},
|
|
125
|
+
usp_parse: (text) => {
|
|
126
|
+
const pairs = [];
|
|
127
|
+
new URLSearchParams(String(text)).forEach((value, key) => pairs.push([key, value]));
|
|
128
|
+
return pairs;
|
|
129
|
+
},
|
|
130
|
+
usp_serialize: (pairs) => new URLSearchParams(pairs).toString(),
|
|
131
|
+
atob: (data) => atob(String(data)),
|
|
132
|
+
btoa: (data) => btoa(String(data)),
|
|
133
|
+
intl_call: (name, locales, options, method, a, b) => {
|
|
134
|
+
const kind = intlServiceName(name);
|
|
135
|
+
const methodName = String(method);
|
|
136
|
+
if (!INTL_METHODS[kind].includes(methodName)) {
|
|
137
|
+
throw new TypeError(`Intl.${kind}.prototype.${methodName} is not available`);
|
|
138
|
+
}
|
|
139
|
+
const service = intlService(kind, locales, options);
|
|
140
|
+
return service[methodName].call(service, a, b);
|
|
141
|
+
},
|
|
142
|
+
intl_supported: (name, locales, options) => Intl[intlServiceName(name)].supportedLocalesOf(orUndefined(locales), orUndefined(options)),
|
|
143
|
+
intl_date: (method, time, locales, options) => {
|
|
144
|
+
const methodName = String(method);
|
|
145
|
+
if (!DATE_LOCALE_METHODS.includes(methodName)) {
|
|
146
|
+
throw new TypeError(`Date.prototype.${methodName} is not available`);
|
|
147
|
+
}
|
|
148
|
+
const date = new Date(Number(time));
|
|
149
|
+
return date[methodName](orUndefined(locales), orUndefined(options));
|
|
150
|
+
},
|
|
151
|
+
intl_compare: (a, b, locales, options) => String(a).localeCompare(String(b), orUndefined(locales), orUndefined(options)),
|
|
152
|
+
};
|
|
153
|
+
const fetchFn = globals.fetch;
|
|
154
|
+
if (typeof fetchFn === 'function') {
|
|
155
|
+
const budget = { left: limits.bodyBytes, limit: limits.bodyBytes };
|
|
156
|
+
bindings.fetch = async (input, init) => {
|
|
157
|
+
const options = init === null || init === undefined ? {} : init;
|
|
158
|
+
const response = (await fetchFn(input, limits.signal ? { ...options, signal: limits.signal } : init === null ? undefined : init));
|
|
159
|
+
const body = await readBody(response, budget);
|
|
160
|
+
const headers = [];
|
|
161
|
+
response.headers.forEach((value, key) => headers.push([key, value]));
|
|
162
|
+
return {
|
|
163
|
+
status: response.status,
|
|
164
|
+
statusText: response.statusText,
|
|
165
|
+
ok: response.ok,
|
|
166
|
+
redirected: response.redirected,
|
|
167
|
+
url: response.url,
|
|
168
|
+
type: response.type,
|
|
169
|
+
headers,
|
|
170
|
+
body,
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
const fs = globals.fs;
|
|
175
|
+
if (fs && typeof fs.readFile === 'function') {
|
|
176
|
+
const readFile = fs.readFile.bind(fs);
|
|
177
|
+
bindings.fs_readFile = (filePath) => readFile(filePath);
|
|
178
|
+
}
|
|
179
|
+
const crypto = globals.crypto;
|
|
180
|
+
if (crypto && typeof crypto.randomUUID === 'function') {
|
|
181
|
+
const digests = new Map();
|
|
182
|
+
let next = 1;
|
|
183
|
+
bindings.crypto_randomUUID = () => crypto.randomUUID();
|
|
184
|
+
bindings.crypto_start = (kind, algorithm, key) => {
|
|
185
|
+
if (digests.size >= MAX_OPEN_DIGESTS) {
|
|
186
|
+
throw new RangeError(`crypto: ${MAX_OPEN_DIGESTS} hashes are open in this call; call digest() on one before starting another`);
|
|
187
|
+
}
|
|
188
|
+
const k = key;
|
|
189
|
+
const digest = kind === 'hash'
|
|
190
|
+
? crypto.createHash(String(algorithm))
|
|
191
|
+
: crypto.createHmac(String(algorithm), k?.s !== undefined ? k.s : Buffer.from(k?.b ?? '', 'latin1'));
|
|
192
|
+
const id = next;
|
|
193
|
+
next += 1;
|
|
194
|
+
digests.set(id, digest);
|
|
195
|
+
return id;
|
|
196
|
+
};
|
|
197
|
+
bindings.crypto_update = (id, chunk) => {
|
|
198
|
+
const digest = digests.get(Number(id));
|
|
199
|
+
if (!digest) {
|
|
200
|
+
throw new Error('Digest already called');
|
|
201
|
+
}
|
|
202
|
+
const c = chunk;
|
|
203
|
+
digest.update(c.s !== undefined ? Buffer.from(c.s, (c.enc ?? 'utf8')) : Buffer.from(c.b ?? '', 'latin1'));
|
|
204
|
+
return null;
|
|
205
|
+
};
|
|
206
|
+
bindings.crypto_digest = (id, encoding) => {
|
|
207
|
+
const digest = digests.get(Number(id));
|
|
208
|
+
if (!digest) {
|
|
209
|
+
throw new Error('Digest already called');
|
|
210
|
+
}
|
|
211
|
+
digests.delete(Number(id));
|
|
212
|
+
const out = encoding === null || encoding === undefined ? digest.digest() : digest.digest(String(encoding));
|
|
213
|
+
return typeof out === 'string' ? out : new Uint8Array(out);
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
return bindings;
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=guest-surface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guest-surface.js","sourceRoot":"","sources":["../../../../src/cognition/emergent/executor/guest-surface.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,13 @@ export interface ForgedCodeExecutor {
|
|
|
26
26
|
* reports a rejection as an execution error.
|
|
27
27
|
*/
|
|
28
28
|
run(request: ExecutorRunRequest): Promise<ExecutorRunResult>;
|
|
29
|
+
/**
|
|
30
|
+
* Optional. Resolves once the executor can run code and rejects with the
|
|
31
|
+
* reason when it cannot. The engine awaits it before a forge's test
|
|
32
|
+
* cases, so a forge on an executor that cannot run is refused with that
|
|
33
|
+
* reason before any test or review.
|
|
34
|
+
*/
|
|
35
|
+
ready?(): Promise<void>;
|
|
29
36
|
}
|
|
30
37
|
/** One call of a forged tool, as the forge hands it to an executor. */
|
|
31
38
|
export interface ExecutorRunRequest {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cognition/emergent/executor/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,GAAG,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cognition/emergent/executor/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,GAAG,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7D;;;;;OAKG;IACH,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qGAAqG;IACrG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GACtF;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
|
@@ -18,6 +18,7 @@ export type { StepGate, StepGateOptions, Chainability, ChainRefusalCode } from '
|
|
|
18
18
|
export { SandboxedToolForge } from './SandboxedToolForge.js';
|
|
19
19
|
export type { SandboxedToolForgeConfig } from './SandboxedToolForge.js';
|
|
20
20
|
export { InProcessExecutor } from './executor/InProcessExecutor.js';
|
|
21
|
+
export { QuickJSExecutor, QuickJSUnavailableError, QUICKJS_VERSION } from './executor/QuickJSExecutor.js';
|
|
21
22
|
export type { ExecutorRunRequest, ExecutorRunResult, ForgedCodeExecutor } from './executor/types.js';
|
|
22
23
|
export { CAPABILITY_NAMES, CAPABILITY_ALIASES, normalizeAllowlist, toSandboxApis } from './capabilities.js';
|
|
23
24
|
export { CeilingError, checkRequest, grantedCapabilities, narrowToForge, resolveCeiling, CEILING_DEFAULTS } from './ceiling.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cognition/emergent/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cognition/emergent/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export { ComposableToolBuilder } from './ComposableToolBuilder.js';
|
|
|
16
16
|
export { createStepGate, checkChainable, COMPOSE_NEEDS_GATE_MESSAGE, MAX_COMPOSITION_DEPTH } from './StepGate.js';
|
|
17
17
|
export { SandboxedToolForge } from './SandboxedToolForge.js';
|
|
18
18
|
export { InProcessExecutor } from './executor/InProcessExecutor.js';
|
|
19
|
+
export { QuickJSExecutor, QuickJSUnavailableError, QUICKJS_VERSION } from './executor/QuickJSExecutor.js';
|
|
19
20
|
export { CAPABILITY_NAMES, CAPABILITY_ALIASES, normalizeAllowlist, toSandboxApis } from './capabilities.js';
|
|
20
21
|
export { CeilingError, checkRequest, grantedCapabilities, narrowToForge, resolveCeiling, CEILING_DEFAULTS } from './ceiling.js';
|
|
21
22
|
export { parsePersistedSource, inferRequestFromCode, requestFromImplementation, parseStoredRequest, } from './persisted-source.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cognition/emergent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAA8B,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAElH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cognition/emergent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAA8B,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAElH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAE1G,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5G,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhI,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAKjE,OAAO,EACL,oCAAoC,EACpC,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,EACxB,kCAAkC,GACnC,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AASzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAIzE,qEAAqE;AACrE,wEAAwE;AACxE,mEAAmE;AACnE,eAAe;AACf,OAAO,EACL,sBAAsB,GAEvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kBAAkB,GAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,GAId,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,eAAe,GAEhB,MAAM,2BAA2B,CAAC;AAEnC,oEAAoE;AACpE,0EAA0E;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAM7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import type { JSONSchemaObject } from '../../core/tools/ITool.js';
|
|
18
18
|
import type { SelfImprovementConfig } from './SelfImprovementConfig.js';
|
|
19
|
+
import type { ForgedCodeExecutor } from './executor/types.js';
|
|
19
20
|
/**
|
|
20
21
|
* Lifecycle scope tier for an emergent tool.
|
|
21
22
|
*
|
|
@@ -740,9 +741,9 @@ export interface EmergentConfig {
|
|
|
740
741
|
*/
|
|
741
742
|
persistSandboxSource: boolean;
|
|
742
743
|
/**
|
|
743
|
-
*
|
|
744
|
-
*
|
|
745
|
-
*
|
|
744
|
+
* Memory budget in megabytes for each sandboxed tool execution. The
|
|
745
|
+
* in-process executor reports a heap delta and does not enforce it;
|
|
746
|
+
* QuickJSExecutor stops the guest at it (never below 16 MiB).
|
|
746
747
|
* Passed as `SandboxExecutionRequest.memoryMB`.
|
|
747
748
|
* @default 128
|
|
748
749
|
*/
|
|
@@ -808,6 +809,13 @@ export interface EmergentConfig {
|
|
|
808
809
|
capabilities?: ForgedCapabilities;
|
|
809
810
|
/** Effect records under a ceiling. Ignored without one. */
|
|
810
811
|
audit?: EmergentAuditConfig;
|
|
812
|
+
/**
|
|
813
|
+
* What runs forged code in the forge the engine builds. Absent: the
|
|
814
|
+
* in-process executor (`isolates: false`). A host that passes its own
|
|
815
|
+
* `sandboxForge` brings that forge's executor; passing one beside a
|
|
816
|
+
* different `executor` fails construction with `executor_conflict`.
|
|
817
|
+
*/
|
|
818
|
+
executor?: ForgedCodeExecutor;
|
|
811
819
|
}
|
|
812
820
|
/**
|
|
813
821
|
* Default configuration for the Emergent Capability Engine.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cognition/emergent/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cognition/emergent/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cognition/emergent/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cognition/emergent/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAq6BH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA6B;IAC/D,OAAO,EAAE,KAAK;IACd,eAAe,EAAE,EAAE;IACnB,aAAa,EAAE,EAAE;IACjB,iBAAiB,EAAE,KAAK;IACxB,oBAAoB,EAAE,KAAK;IAC3B,eAAe,EAAE,GAAG;IACpB,gBAAgB,EAAE,IAAI;IACtB,kBAAkB,EAAE;QAClB,IAAI,EAAE,CAAC;QACP,UAAU,EAAE,GAAG;KAChB;IACD,UAAU,EAAE,aAAa;IACzB,mBAAmB,EAAE,QAAQ;CACrB,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CAAC"}
|
|
@@ -9,7 +9,11 @@
|
|
|
9
9
|
* The host application forwards the request to {@link handleIncomingWebhook},
|
|
10
10
|
* which verifies Plivo's inbound-message signature before emitting. Inbound
|
|
11
11
|
* messaging is signed under `X-Plivo-Signature-MA-V3`; the plain V3 and the
|
|
12
|
-
* V2 family are accepted as well.
|
|
12
|
+
* V2 family are accepted as well. Each callback is accepted once: the nonce
|
|
13
|
+
* of an accepted callback is remembered and a request that reuses it is
|
|
14
|
+
* dropped. A V2 signature covers the URL and the nonce, not the body, so it
|
|
15
|
+
* does not authenticate `From` or `Text` (see
|
|
16
|
+
* {@link PlivoSmsChannelAdapter.handleIncomingWebhook}).
|
|
13
17
|
*
|
|
14
18
|
* The adapter does NOT start its own HTTP server; the host wires a route
|
|
15
19
|
* (Express/Fastify/etc.) that forwards inbound requests here — the same
|
|
@@ -54,19 +58,30 @@ export declare class PlivoSmsChannelAdapter extends BaseChannelAdapter<PlivoSmsA
|
|
|
54
58
|
private phoneNumber;
|
|
55
59
|
/** Externally-visible message URL Plivo signs, for inbound verification. */
|
|
56
60
|
private webhookUrl;
|
|
57
|
-
/** When true (default), inbound webhooks must carry a valid
|
|
61
|
+
/** When true (default), inbound webhooks must carry a valid Plivo signature. */
|
|
58
62
|
private verifySignatureEnabled;
|
|
59
63
|
/** Pre-computed `Authorization: Basic ...` header value. */
|
|
60
64
|
private authHeader;
|
|
61
65
|
/** Fetch implementation (injectable for tests). */
|
|
62
66
|
private readonly fetchImpl;
|
|
67
|
+
/**
|
|
68
|
+
* Nonces of the callbacks accepted so far, so a request that reuses one is
|
|
69
|
+
* refused. Kept across reconnects.
|
|
70
|
+
*/
|
|
71
|
+
private readonly seenNonces;
|
|
63
72
|
/**
|
|
64
73
|
* @param opts.fetchImpl - Override the global fetch (inject a mock in tests).
|
|
65
74
|
* @param opts.retryConfig - Connection retry tuning (see BaseChannelAdapter).
|
|
75
|
+
* @param opts.nonceTtlMs - How long the nonce of an accepted callback is
|
|
76
|
+
* remembered, in milliseconds. Default: 24 hours.
|
|
77
|
+
* @param opts.maxNonces - How many nonces are remembered at once; past it
|
|
78
|
+
* the oldest is forgotten first. Default: 10,000.
|
|
66
79
|
*/
|
|
67
80
|
constructor(opts?: {
|
|
68
81
|
fetchImpl?: typeof fetch;
|
|
69
82
|
retryConfig?: Partial<RetryConfig>;
|
|
83
|
+
nonceTtlMs?: number;
|
|
84
|
+
maxNonces?: number;
|
|
70
85
|
});
|
|
71
86
|
protected doConnect(auth: ChannelAuthConfig & {
|
|
72
87
|
params?: PlivoSmsAuthParams;
|
|
@@ -74,47 +89,97 @@ export declare class PlivoSmsChannelAdapter extends BaseChannelAdapter<PlivoSmsA
|
|
|
74
89
|
protected doSendMessage(conversationId: string, content: MessageContent): Promise<ChannelSendResult>;
|
|
75
90
|
protected doShutdown(): Promise<void>;
|
|
76
91
|
/**
|
|
77
|
-
* Handle an inbound Plivo SMS webhook. The host forwards Plivo's
|
|
92
|
+
* Handle an inbound Plivo SMS webhook. The host forwards Plivo's request here.
|
|
78
93
|
*
|
|
79
94
|
* When signature verification is enabled (the default), the request must
|
|
80
|
-
* carry valid
|
|
81
|
-
*
|
|
95
|
+
* carry a valid Plivo signature over the URL Plivo requested, and each
|
|
96
|
+
* callback is accepted once: a request whose nonce was already accepted is
|
|
97
|
+
* dropped. Anything else is dropped as well (fail closed).
|
|
98
|
+
*
|
|
99
|
+
* What a valid signature proves depends on its family:
|
|
82
100
|
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
101
|
+
* - **V3** covers the URL, its query, the params and the nonce, so `From`,
|
|
102
|
+
* `Text` and `MessageUUID` are the ones Plivo sent.
|
|
103
|
+
* - **V2** covers the URL and the nonce only. It does not authenticate
|
|
104
|
+
* `From`, `Text` or `MessageUUID`: whoever holds one callback's signature
|
|
105
|
+
* and nonce can send them again over a different body. Plivo's messaging
|
|
106
|
+
* documentation describes V2 for message callbacks.
|
|
107
|
+
*
|
|
108
|
+
* The nonce memory narrows that replay; it does not end it. It holds the
|
|
109
|
+
* callbacks this process accepted, for `nonceTtlMs` (24 hours by default)
|
|
110
|
+
* and `maxNonces` of them at most, and a restart empties it. Plivo's
|
|
111
|
+
* signatures carry no timestamp, so a callback sent again after its nonce is
|
|
112
|
+
* forgotten, or one this process never accepted, is accepted. Do not let an
|
|
113
|
+
* inbound message authorize an action by its sender number alone.
|
|
114
|
+
*
|
|
115
|
+
* @param body - Parsed form body of Plivo's inbound-message POST. For a GET
|
|
116
|
+
* callback the params are read from the query string of `meta.url`, whose
|
|
117
|
+
* values win over `body`.
|
|
118
|
+
* @param meta - Request metadata needed to verify the signature.
|
|
85
119
|
*/
|
|
86
120
|
handleIncomingWebhook(body: Record<string, unknown>, meta?: {
|
|
87
121
|
method?: string;
|
|
88
|
-
/**
|
|
122
|
+
/**
|
|
123
|
+
* The exact externally-visible URL Plivo requested (must byte-match);
|
|
124
|
+
* for a GET callback, with its query string.
|
|
125
|
+
*/
|
|
89
126
|
url?: string;
|
|
90
127
|
headers?: Record<string, string | string[] | undefined>;
|
|
91
128
|
}): void;
|
|
92
129
|
/**
|
|
93
|
-
* Verify an inbound request
|
|
130
|
+
* Verify an inbound request's signature and return the nonces it proved, or
|
|
131
|
+
* `undefined` when no signature decides in its favour.
|
|
94
132
|
*
|
|
95
133
|
* Plivo sends more than one signature header and the one that matches depends
|
|
96
134
|
* on the channel. Inbound messaging (SMS) is signed under
|
|
97
135
|
* `X-Plivo-Signature-MA-V3`, while voice callbacks use the plain
|
|
98
136
|
* `X-Plivo-Signature-V3`; Plivo's public docs also still document the older V2
|
|
99
|
-
* scheme (`X-Plivo-Signature-MA-V2` / `X-Plivo-Signature-V2`).
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
* family
|
|
103
|
-
*
|
|
104
|
-
*
|
|
137
|
+
* scheme (`X-Plivo-Signature-MA-V2` / `X-Plivo-Signature-V2`). Both families
|
|
138
|
+
* are accepted, and they do not prove the same thing:
|
|
139
|
+
*
|
|
140
|
+
* - The V3 family signs the URL, its query, the params and the V3 nonce
|
|
141
|
+
* (`X-Plivo-Signature-V3-Nonce`). A match covers the whole request.
|
|
142
|
+
* - The V2 family signs the URL and the V2 nonce
|
|
143
|
+
* (`X-Plivo-Signature-V2-Nonce`) and nothing else. A match shows that Plivo
|
|
144
|
+
* signed this URL with this nonce once; the body under it can be anything.
|
|
145
|
+
* Accepting V2 is accepting that weaker proof: a V2 signature and nonce
|
|
146
|
+
* taken from one callback verify over a forged `From` and `Text`.
|
|
105
147
|
*
|
|
106
|
-
*
|
|
148
|
+
* So V3 decides whenever the request carries a V3 header: a V3 signature
|
|
149
|
+
* that does not match is refused even if a V2 signature beside it matches.
|
|
150
|
+
* V2 decides only for a request with no V3 header. Nothing here stops a
|
|
151
|
+
* sender from leaving the V3 headers out; what limits a V2 replay is that
|
|
152
|
+
* {@link claimNonces} accepts a nonce once, which is why a request verified
|
|
153
|
+
* by V3 also returns its V2 nonce when its V2 signature is valid.
|
|
154
|
+
*
|
|
155
|
+
* Fails closed: missing URL/token, or the deciding family does not match →
|
|
156
|
+
* `undefined`.
|
|
157
|
+
*/
|
|
158
|
+
private verifiedNonces;
|
|
159
|
+
/**
|
|
160
|
+
* Record the nonces of a verified callback as used.
|
|
161
|
+
*
|
|
162
|
+
* @returns `false`, recording nothing, when any of them was used already.
|
|
107
163
|
*/
|
|
108
|
-
private
|
|
164
|
+
private claimNonces;
|
|
109
165
|
}
|
|
110
166
|
/**
|
|
111
|
-
* Compute Plivo's
|
|
112
|
-
*
|
|
167
|
+
* Compute Plivo's V3 signature for a callback as `plivo-python`'s
|
|
168
|
+
* `signature_v3.py` does: `base64(HMAC_SHA256(authToken, signedString))`,
|
|
169
|
+
* where the signed string ends in `.` + nonce.
|
|
170
|
+
*
|
|
171
|
+
* With `base` = `{scheme}://{host}{path}`, `query` = the URL's query as `k=v`
|
|
172
|
+
* pairs joined by `&` (names sorted, a repeated name's values sorted) and
|
|
173
|
+
* `fields` = the params as `key`+`value` with no separators (keys sorted):
|
|
174
|
+
*
|
|
175
|
+
* - **POST with params**: `base` + `?` + `query` + (`.` if there is a query)
|
|
176
|
+
* + `fields`.
|
|
177
|
+
* - **POST with no params**: `base`, then `?` + `query` if there is a query.
|
|
178
|
+
* - **GET**: the params are part of the query. Those passed in `params` are
|
|
179
|
+
* merged into the URL's own (the URL's value wins on a shared name), and the
|
|
180
|
+
* signed string is `base`, then `?` + the merged `query` if there is one.
|
|
113
181
|
*
|
|
114
|
-
*
|
|
115
|
-
* `{scheme}://{host}{path}?` + (query as sorted `k=v&…` + `.` if present)
|
|
116
|
-
* + sorted, separator-less `key`+`value` body params + `.` + nonce
|
|
117
|
-
* then `base64(HMAC_SHA256(authToken, signedString))`.
|
|
182
|
+
* Any method other than GET is signed as a POST, as in the reference.
|
|
118
183
|
*/
|
|
119
184
|
export declare function computePlivoV3Signature(input: {
|
|
120
185
|
method: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlivoSmsChannelAdapter.d.ts","sourceRoot":"","sources":["../../../../src/io/channels/adapters/PlivoSmsChannelAdapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"PlivoSmsChannelAdapter.d.ts","sourceRoot":"","sources":["../../../../src/io/channels/adapters/PlivoSmsChannelAdapter.ts"],"names":[],"mappings":"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"}
|