@corenel/tools-web 0.1.0 → 0.2.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/budgetGate.d.ts +21 -0
- package/dist/budgetGate.d.ts.map +1 -0
- package/dist/budgetGate.js +41 -0
- package/dist/budgetGate.js.map +1 -0
- package/dist/contextDocs.d.ts +54 -0
- package/dist/contextDocs.d.ts.map +1 -0
- package/dist/contextDocs.js +145 -0
- package/dist/contextDocs.js.map +1 -0
- package/dist/core/protocol.d.ts +32 -2
- package/dist/core/protocol.d.ts.map +1 -1
- package/dist/idb.d.ts +9 -0
- package/dist/idb.d.ts.map +1 -1
- package/dist/idb.js +15 -0
- package/dist/idb.js.map +1 -1
- package/dist/memory/local.d.ts.map +1 -1
- package/dist/memory/local.js.map +1 -1
- package/dist/prompts/history.d.ts.map +1 -1
- package/dist/prompts/history.js +11 -6
- package/dist/prompts/history.js.map +1 -1
- package/dist/runWatchdog.d.ts +20 -0
- package/dist/runWatchdog.d.ts.map +1 -0
- package/dist/runWatchdog.js +66 -0
- package/dist/runWatchdog.js.map +1 -0
- package/dist/runtime.d.ts +355 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +711 -0
- package/dist/runtime.js.map +1 -0
- package/dist/runtime.testHost.d.ts +9 -0
- package/dist/runtime.testHost.d.ts.map +1 -0
- package/dist/runtime.testHost.js +53 -0
- package/dist/runtime.testHost.js.map +1 -0
- package/dist/storageQuota.d.ts +25 -0
- package/dist/storageQuota.d.ts.map +1 -0
- package/dist/storageQuota.js +89 -0
- package/dist/storageQuota.js.map +1 -0
- package/dist/storageRegistry.d.ts +53 -0
- package/dist/storageRegistry.d.ts.map +1 -0
- package/dist/storageRegistry.js +40 -0
- package/dist/storageRegistry.js.map +1 -0
- package/dist/workerClient.d.ts +43 -3
- package/dist/workerClient.d.ts.map +1 -1
- package/dist/workerClient.js +72 -5
- package/dist/workerClient.js.map +1 -1
- package/dist/workerHandler.d.ts +7 -0
- package/dist/workerHandler.d.ts.map +1 -1
- package/dist/workerHandler.js +46 -7
- package/dist/workerHandler.js.map +1 -1
- package/package.json +19 -29
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { RuntimeHost, SessionStorePort } from './runtime';
|
|
2
|
+
/** In-memory SessionStorePort backed by a Map — enough for the runtime's
|
|
3
|
+
* load/create/save/delete/list calls without a real IndexedDB store. */
|
|
4
|
+
export declare function makeSessionStore(): SessionStorePort;
|
|
5
|
+
/** Build a fully-stubbed RuntimeHost. Every field the engine reads has a inert
|
|
6
|
+
* default (no-op guard allow, zero-priced model, empty constraints); pass
|
|
7
|
+
* `overrides` to swap in the behavior a specific test needs to observe. */
|
|
8
|
+
export declare function makeHost(overrides?: Partial<RuntimeHost>): RuntimeHost;
|
|
9
|
+
//# sourceMappingURL=runtime.testHost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.testHost.d.ts","sourceRoot":"","sources":["../runtime.testHost.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAoB,gBAAgB,EAAa,MAAM,WAAW,CAAC;AAI5F;wEACwE;AACxE,wBAAgB,gBAAgB,IAAI,gBAAgB,CAsBnD;AAWD;;2EAE2E;AAC3E,wBAAgB,QAAQ,CAAC,SAAS,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAgB1E"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** In-memory SessionStorePort backed by a Map — enough for the runtime's
|
|
2
|
+
* load/create/save/delete/list calls without a real IndexedDB store. */
|
|
3
|
+
export function makeSessionStore() {
|
|
4
|
+
const map = new Map();
|
|
5
|
+
let n = 0;
|
|
6
|
+
return {
|
|
7
|
+
async list(surface) {
|
|
8
|
+
return [...map.values()].filter((s) => (s.surface ?? 'agent') === surface);
|
|
9
|
+
},
|
|
10
|
+
async get(id) {
|
|
11
|
+
return map.get(id) ?? null;
|
|
12
|
+
},
|
|
13
|
+
async create(title, surface) {
|
|
14
|
+
const s = { id: `s${++n}`, title, createdAt: Date.now(), updatedAt: Date.now(), messages: [], surface };
|
|
15
|
+
map.set(s.id, s);
|
|
16
|
+
return s;
|
|
17
|
+
},
|
|
18
|
+
async save(s) {
|
|
19
|
+
map.set(s.id, s);
|
|
20
|
+
},
|
|
21
|
+
async delete(id) {
|
|
22
|
+
map.delete(id);
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const FAKE_FS = { kind: 'memory', label: 'test-root', isLocalDisk: false, writable: true };
|
|
27
|
+
function makeWorkspace() {
|
|
28
|
+
return {
|
|
29
|
+
get: () => FAKE_FS,
|
|
30
|
+
whenReady: async () => { },
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** Build a fully-stubbed RuntimeHost. Every field the engine reads has a inert
|
|
34
|
+
* default (no-op guard allow, zero-priced model, empty constraints); pass
|
|
35
|
+
* `overrides` to swap in the behavior a specific test needs to observe. */
|
|
36
|
+
export function makeHost(overrides = {}) {
|
|
37
|
+
const defaultModel = { provider: 'test', label: 'Test Model', inPrice: 0, outPrice: 0, contextWindow: 128000 };
|
|
38
|
+
const host = {
|
|
39
|
+
workerDeps: {},
|
|
40
|
+
workspace: makeWorkspace,
|
|
41
|
+
installFilesResolver: () => { },
|
|
42
|
+
sessions: makeSessionStore(),
|
|
43
|
+
modelInfo: () => defaultModel,
|
|
44
|
+
price: () => 0,
|
|
45
|
+
guard: async () => ({ allowed: true }),
|
|
46
|
+
recordUsage: () => { },
|
|
47
|
+
constraints: () => ({}),
|
|
48
|
+
compression: () => 'off',
|
|
49
|
+
...overrides,
|
|
50
|
+
};
|
|
51
|
+
return host;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=runtime.testHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.testHost.js","sourceRoot":"","sources":["../runtime.testHost.ts"],"names":[],"mappings":"AASA;wEACwE;AACxE,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC5C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,OAAuB;YAChC,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC;QAC7E,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,EAAU;YAClB,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;QAC7B,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAAuB;YACjD,MAAM,CAAC,GAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;YACtH,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACjB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,CAAe;YACxB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,EAAU;YACrB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAA4B,CAAC;AAErH,SAAS,aAAa;IACpB,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO;QAClB,SAAS,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED;;2EAE2E;AAC3E,MAAM,UAAU,QAAQ,CAAC,YAAkC,EAAE;IAC3D,MAAM,YAAY,GAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IAC1H,MAAM,IAAI,GAAgB;QACxB,UAAU,EAAE,EAA+B;QAC3C,SAAS,EAAE,aAAa;QACxB,oBAAoB,EAAE,GAAG,EAAE,GAAE,CAAC;QAC9B,QAAQ,EAAE,gBAAgB,EAAE;QAC5B,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY;QAC7B,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACd,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtC,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;QACrB,WAAW,EAAE,GAAqB,EAAE,CAAC,CAAC,EAAE,CAAC;QACzC,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK;QACxB,GAAG,SAAS;KACb,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Reference cap for localStorage. Browsers do not expose it, and ~5 MB of
|
|
2
|
+
* UTF-16 code units is the near-universal value; used only to render a meter. */
|
|
3
|
+
export declare const LOCALSTORAGE_LIMIT_BYTES: number;
|
|
4
|
+
export interface EstimateResult {
|
|
5
|
+
usage: number;
|
|
6
|
+
quota: number;
|
|
7
|
+
supported: boolean;
|
|
8
|
+
}
|
|
9
|
+
/** Byte length of a stored value: ArrayBuffer views (typed arrays) and ArrayBuffer
|
|
10
|
+
* by their byte length, text as UTF-8, anything else by its JSON serialized form. */
|
|
11
|
+
export declare function byteLen(v: string | Uint8Array | undefined | null | object): number;
|
|
12
|
+
export declare function readEstimate(): Promise<EstimateResult>;
|
|
13
|
+
export declare function isPersisted(): Promise<boolean>;
|
|
14
|
+
/** Ask the browser to keep this origin's data. Chrome grants silently on
|
|
15
|
+
* engagement; Firefox prompts — so callers fire this from a moment the user
|
|
16
|
+
* understands, not at boot. Asks at most once per session, never when already
|
|
17
|
+
* granted, and never throws. */
|
|
18
|
+
export declare function requestPersist(): Promise<boolean>;
|
|
19
|
+
/** Bytes charged to localStorage by the matching keys. Browsers bill UTF-16
|
|
20
|
+
* code units for both key and value, hence the doubling. */
|
|
21
|
+
export declare function localStorageBytes(pred?: (key: string) => boolean): {
|
|
22
|
+
bytes: number;
|
|
23
|
+
items: number;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=storageQuota.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storageQuota.d.ts","sourceRoot":"","sources":["../storageQuota.ts"],"names":[],"mappings":"AAMA;iFACiF;AACjF,eAAO,MAAM,wBAAwB,QAAkB,CAAC;AAExD,MAAM,WAAW,cAAc;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE;AAEpF;qFACqF;AACrF,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAMlF;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,CAO5D;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAMpD;AAKD;;;gCAGgC;AAChC,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAUvD;AAED;4DAC4D;AAC5D,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAYnG"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/* Origin storage primitives: how much room the browser gives us, how much is
|
|
2
|
+
* used, and whether it will keep our data. Deliberately free of app-specific
|
|
3
|
+
* category names — the host registers those (see storageRegistry.ts). */
|
|
4
|
+
const utf8 = new TextEncoder();
|
|
5
|
+
/** Reference cap for localStorage. Browsers do not expose it, and ~5 MB of
|
|
6
|
+
* UTF-16 code units is the near-universal value; used only to render a meter. */
|
|
7
|
+
export const LOCALSTORAGE_LIMIT_BYTES = 5 * 1024 * 1024;
|
|
8
|
+
/** Byte length of a stored value: ArrayBuffer views (typed arrays) and ArrayBuffer
|
|
9
|
+
* by their byte length, text as UTF-8, anything else by its JSON serialized form. */
|
|
10
|
+
export function byteLen(v) {
|
|
11
|
+
if (v == null)
|
|
12
|
+
return 0;
|
|
13
|
+
if (ArrayBuffer.isView(v))
|
|
14
|
+
return v.byteLength;
|
|
15
|
+
if (typeof v === 'string')
|
|
16
|
+
return utf8.encode(v).length;
|
|
17
|
+
if (Object.prototype.toString.call(v) === '[object ArrayBuffer]')
|
|
18
|
+
return v.byteLength;
|
|
19
|
+
try {
|
|
20
|
+
return utf8.encode(JSON.stringify(v) ?? '').length;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return 0;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export async function readEstimate() {
|
|
27
|
+
try {
|
|
28
|
+
const s = navigator.storage;
|
|
29
|
+
if (!s || typeof s.estimate !== 'function')
|
|
30
|
+
return { usage: 0, quota: 0, supported: false };
|
|
31
|
+
const e = await s.estimate();
|
|
32
|
+
return { usage: e.usage ?? 0, quota: e.quota ?? 0, supported: true };
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return { usage: 0, quota: 0, supported: false };
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export async function isPersisted() {
|
|
39
|
+
try {
|
|
40
|
+
const s = navigator.storage;
|
|
41
|
+
if (!s || typeof s.persisted !== 'function')
|
|
42
|
+
return false;
|
|
43
|
+
return await s.persisted();
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
let persistAsked = false;
|
|
50
|
+
let persistResult = false;
|
|
51
|
+
/** Ask the browser to keep this origin's data. Chrome grants silently on
|
|
52
|
+
* engagement; Firefox prompts — so callers fire this from a moment the user
|
|
53
|
+
* understands, not at boot. Asks at most once per session, never when already
|
|
54
|
+
* granted, and never throws. */
|
|
55
|
+
export async function requestPersist() {
|
|
56
|
+
try {
|
|
57
|
+
if (await isPersisted())
|
|
58
|
+
return true;
|
|
59
|
+
if (persistAsked)
|
|
60
|
+
return persistResult;
|
|
61
|
+
const s = navigator.storage;
|
|
62
|
+
if (!s || typeof s.persist !== 'function')
|
|
63
|
+
return false;
|
|
64
|
+
persistAsked = true;
|
|
65
|
+
persistResult = await s.persist();
|
|
66
|
+
return persistResult;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/** Bytes charged to localStorage by the matching keys. Browsers bill UTF-16
|
|
73
|
+
* code units for both key and value, hence the doubling. */
|
|
74
|
+
export function localStorageBytes(pred) {
|
|
75
|
+
let bytes = 0;
|
|
76
|
+
let items = 0;
|
|
77
|
+
try {
|
|
78
|
+
for (let i = 0; i < localStorage.length; i++) {
|
|
79
|
+
const k = localStorage.key(i);
|
|
80
|
+
if (!k || (pred && !pred(k)))
|
|
81
|
+
continue;
|
|
82
|
+
bytes += (k.length + (localStorage.getItem(k)?.length ?? 0)) * 2;
|
|
83
|
+
items++;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch { /* storage unavailable (private mode) — report what we have */ }
|
|
87
|
+
return { bytes, items };
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=storageQuota.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storageQuota.js","sourceRoot":"","sources":["../storageQuota.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type StoreName } from './idb';
|
|
2
|
+
export interface CategoryMeasurement {
|
|
3
|
+
bytes: number;
|
|
4
|
+
items: number;
|
|
5
|
+
}
|
|
6
|
+
export interface RetentionPolicy {
|
|
7
|
+
/** categoryId -> how many records to keep. */
|
|
8
|
+
keepN: Record<string, number>;
|
|
9
|
+
/** categoryId -> drop records older than N days (0 disables). */
|
|
10
|
+
maxAgeDays: Record<string, number>;
|
|
11
|
+
/** Evict evictable categories automatically when usage crosses the threshold. */
|
|
12
|
+
autoPrune: boolean;
|
|
13
|
+
/** Percent of the origin quota at which auto-prune engages. */
|
|
14
|
+
thresholdPct: number;
|
|
15
|
+
}
|
|
16
|
+
export interface PruneResult {
|
|
17
|
+
dropped: number;
|
|
18
|
+
bytes: number;
|
|
19
|
+
}
|
|
20
|
+
export interface CategoryExport {
|
|
21
|
+
filename: string;
|
|
22
|
+
blob: Blob;
|
|
23
|
+
}
|
|
24
|
+
export interface StorageCategory {
|
|
25
|
+
id: string;
|
|
26
|
+
label: string;
|
|
27
|
+
hint?: string;
|
|
28
|
+
/** Optional copy for the clear-confirmation dialog, when the label alone
|
|
29
|
+
* ("Clear {label}?") would overstate what clear() actually removes (e.g. a
|
|
30
|
+
* category whose label names a broader concept than its clear() touches).
|
|
31
|
+
* Falls back to the generic "Clear {label}?" phrasing when omitted. */
|
|
32
|
+
confirmHint?: string;
|
|
33
|
+
/** Protected categories hold irreplaceable user data: auto-prune skips them
|
|
34
|
+
* and the UI demands an explicit confirm before clearing. */
|
|
35
|
+
protected: boolean;
|
|
36
|
+
measure(): Promise<CategoryMeasurement>;
|
|
37
|
+
clear(): Promise<void>;
|
|
38
|
+
prune?(policy: RetentionPolicy): Promise<PruneResult>;
|
|
39
|
+
export?(): Promise<CategoryExport>;
|
|
40
|
+
}
|
|
41
|
+
/** Register (or replace, by id) a category. Replacement keeps the original
|
|
42
|
+
* position so the panel's row order is stable across re-registration. */
|
|
43
|
+
export declare function registerStorageCategory(c: StorageCategory): void;
|
|
44
|
+
export declare function listStorageCategories(): StorageCategory[];
|
|
45
|
+
export declare function clearStorageCategories(): void;
|
|
46
|
+
/** Measure every category. A failing category yields a zeroed row flagged
|
|
47
|
+
* `error` rather than failing the whole panel. */
|
|
48
|
+
export declare function measureCategories(): Promise<Record<string, CategoryMeasurement & {
|
|
49
|
+
error?: boolean;
|
|
50
|
+
}>>;
|
|
51
|
+
/** Byte total across one store of the shared multi-store DB. */
|
|
52
|
+
export declare function measureIdbStore(store: StoreName): Promise<CategoryMeasurement>;
|
|
53
|
+
//# sourceMappingURL=storageRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storageRegistry.d.ts","sourceRoot":"","sources":["../storageRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAErE,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,iFAAiF;IACjF,SAAS,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAC/D,MAAM,WAAW,cAAc;IAAG,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE;AAEhE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;2EAGuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;iEAC6D;IAC7D,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;CACpC;AAID;yEACyE;AACzE,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,eAAe,GAAG,IAAI,CAEhE;AAED,wBAAgB,qBAAqB,IAAI,eAAe,EAAE,CAEzD;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;kDACkD;AAClD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,CAO5G;AAED,gEAAgE;AAChE,wBAAsB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAKpF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/* The storage category registry. The kernel owns the SHAPE of a category and
|
|
2
|
+
* the measuring/aggregating machinery; the host registers the concrete
|
|
3
|
+
* categories, so no app-specific name appears here. */
|
|
4
|
+
import { byteLen } from './storageQuota';
|
|
5
|
+
import { idbGetAll } from './idb';
|
|
6
|
+
const registry = new Map();
|
|
7
|
+
/** Register (or replace, by id) a category. Replacement keeps the original
|
|
8
|
+
* position so the panel's row order is stable across re-registration. */
|
|
9
|
+
export function registerStorageCategory(c) {
|
|
10
|
+
registry.set(c.id, c);
|
|
11
|
+
}
|
|
12
|
+
export function listStorageCategories() {
|
|
13
|
+
return [...registry.values()];
|
|
14
|
+
}
|
|
15
|
+
export function clearStorageCategories() {
|
|
16
|
+
registry.clear();
|
|
17
|
+
}
|
|
18
|
+
/** Measure every category. A failing category yields a zeroed row flagged
|
|
19
|
+
* `error` rather than failing the whole panel. */
|
|
20
|
+
export async function measureCategories() {
|
|
21
|
+
const out = {};
|
|
22
|
+
await Promise.all(listStorageCategories().map(async (c) => {
|
|
23
|
+
try {
|
|
24
|
+
out[c.id] = await c.measure();
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
out[c.id] = { bytes: 0, items: 0, error: true };
|
|
28
|
+
}
|
|
29
|
+
}));
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
32
|
+
/** Byte total across one store of the shared multi-store DB. */
|
|
33
|
+
export async function measureIdbStore(store) {
|
|
34
|
+
const all = await idbGetAll(store);
|
|
35
|
+
let bytes = 0;
|
|
36
|
+
for (const v of all)
|
|
37
|
+
bytes += byteLen(v);
|
|
38
|
+
return { bytes, items: all.length };
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=storageRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storageRegistry.js","sourceRoot":"","sources":["../storageRegistry.ts"],"names":[],"mappings":"AAAA;;uDAEuD;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAoClD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;AAEpD;yEACyE;AACzE,MAAM,UAAU,uBAAuB,CAAC,CAAkB;IACxD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED;kDACkD;AAClD,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,GAAG,GAA8D,EAAE,CAAC;IAC1E,MAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACxD,IAAI,CAAC;YAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QACtC,MAAM,CAAC;YAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAAC,CAAC;IAC5D,CAAC,CAAC,CAAC,CAAC;IACJ,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gEAAgE;AAChE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAgB;IACpD,MAAM,GAAG,GAAG,MAAM,SAAS,CAA+B,KAAK,CAAC,CAAC;IACjE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,GAAG;QAAE,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AACtC,CAAC"}
|
package/dist/workerClient.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { ChatCompletionMessageParam } from 'openai/resources/chat/completions';
|
|
2
2
|
import type { RunAgentResult } from '@corenel/harness/core/loop';
|
|
3
|
+
import type { GraphConfigWire } from './core/protocol';
|
|
3
4
|
import type { RunNodeResult, NodeSpec } from '@corenel/harness/dag/executeNode';
|
|
4
5
|
import type { NodeOutput, NodeEvent } from '@corenel/protocol';
|
|
5
|
-
import type { AgentEvent, AskQuestion, AskAnswers, EditReviewOutcome } from '@corenel/protocol';
|
|
6
|
+
import type { AgentEvent, AskQuestion, AskAnswers, EditReviewOutcome, HealRecord, Usage } from '@corenel/protocol';
|
|
6
7
|
import type { Policy, PermissionCeiling } from '@corenel/harness/guardrail';
|
|
7
8
|
import type { CompressionConfig } from '@corenel/harness/compression';
|
|
8
9
|
import type { FileService } from '@corenel/protocol';
|
|
9
10
|
import type { ToolDecl } from '@corenel/protocol';
|
|
11
|
+
import type { RunConstraints, Breach, BudgetState } from '@corenel/harness/core/budget';
|
|
10
12
|
/** Options for runNode — like RunOpts but the node's internal turns arrive via
|
|
11
13
|
* onNodeEvent (the node-tagged stream); onEvent only ever sees a terminal error. */
|
|
12
14
|
export interface RunNodeOpts {
|
|
@@ -47,6 +49,30 @@ export interface RunOpts {
|
|
|
47
49
|
onAsk?: (questions: AskQuestion[]) => Promise<AskAnswers | null>;
|
|
48
50
|
/** Await the user's verdict on a propose_edit (null = run ended unreviewed). */
|
|
49
51
|
onEditReview?: (callId: string) => Promise<EditReviewOutcome | null>;
|
|
52
|
+
/** Workspace-relative path of the editor buffer the agent edits — lets
|
|
53
|
+
* propose_edit validate a proposal (compile it) before surfacing the diff. */
|
|
54
|
+
editorFile?: string;
|
|
55
|
+
/** Run-budget caps. When set, `run` meters every forwarded `usage` event with
|
|
56
|
+
* a BudgetMeter and calls `onBreach` (once per breach) on the first turn that
|
|
57
|
+
* exceeds a cap. Omit for the pre-existing, unmetered behavior. */
|
|
58
|
+
constraints?: RunConstraints;
|
|
59
|
+
/** Convert a turn's token usage to a cost, given the model that produced it.
|
|
60
|
+
* Omit to meter tokens/time only (no $ cap enforcement). */
|
|
61
|
+
price?: (usage: Usage, model: string) => number;
|
|
62
|
+
/** Called once per breach with the offending Breach and the meter's running
|
|
63
|
+
* state. `{ continue: false }` aborts the run (stop); `{ continue: true,
|
|
64
|
+
* model }` sends `set-model` and keeps running (degrade); `{ continue: true }`
|
|
65
|
+
* with no model is a soft warn — the run continues unchanged. */
|
|
66
|
+
onBreach?: (breach: Breach, state: BudgetState) => Promise<{
|
|
67
|
+
continue: boolean;
|
|
68
|
+
model?: string;
|
|
69
|
+
}>;
|
|
70
|
+
/** The active chat session id — threads through to the worker so offloaded
|
|
71
|
+
* tool outputs are stored with the session. */
|
|
72
|
+
sessionId?: string;
|
|
73
|
+
/** Restrict this run's tool registry to these names (capability seam). Absent
|
|
74
|
+
* = full registry. */
|
|
75
|
+
toolNames?: string[];
|
|
50
76
|
}
|
|
51
77
|
export interface WorkerAgent {
|
|
52
78
|
run(messages: ChatCompletionMessageParam[], opts?: RunOpts): Promise<RunAgentResult>;
|
|
@@ -69,13 +95,27 @@ export interface WorkerAgentOpts {
|
|
|
69
95
|
/** Identity scope for the worker's per-user IndexedDB namespace. Defaults to
|
|
70
96
|
* 'anon'. */
|
|
71
97
|
getScope?: () => string;
|
|
98
|
+
/** Project-graph config to carry to the worker per run (localStorage is absent
|
|
99
|
+
* there). A getter so a Settings change is picked up without recreating the
|
|
100
|
+
* worker. Mirrors getFileService/getRemoteTools. */
|
|
101
|
+
getGraphConfig?: () => GraphConfigWire | undefined;
|
|
72
102
|
/** Tool declarations from connected sidecars to advertise to the worker for a
|
|
73
103
|
* run. A getter so connecting/disconnecting a sidecar is picked up per run
|
|
74
104
|
* without recreating the worker. Mirrors getFileService. */
|
|
75
105
|
getRemoteTools?: () => ToolDecl[];
|
|
76
106
|
/** Execute a sidecar tool by name on the main thread (which holds the WS
|
|
77
|
-
* connection + governs). Answers the worker's tool-request.
|
|
78
|
-
|
|
107
|
+
* connection + governs). Answers the worker's tool-request. `signal` aborts
|
|
108
|
+
* when the calling RUN aborts or ends — long host-side executions
|
|
109
|
+
* (run_strategy fan-outs) must observe it or Stop leaves them running. */
|
|
110
|
+
runRemoteTool?: (name: string, args: Record<string, unknown>, signal?: AbortSignal, host?: {
|
|
111
|
+
ask?: (questions: AskQuestion[]) => Promise<AskAnswers | null>;
|
|
112
|
+
runState?: Record<string, unknown>;
|
|
113
|
+
}) => Promise<string>;
|
|
114
|
+
/** Persist a self-heal record. Called at the SINGLE worker-message choke point
|
|
115
|
+
* for every heal, from BOTH the root run (`event`) and sub-agent/DAG-node
|
|
116
|
+
* (`node-event`) channels — so no surface or nested run can drop heals. The host
|
|
117
|
+
* injects the corpus writer (the kernel client holds no reference to it). */
|
|
118
|
+
onHeal?: (record: HealRecord) => void;
|
|
79
119
|
}
|
|
80
120
|
export declare function createWorkerAgent(clientOpts: WorkerAgentOpts): WorkerAgent;
|
|
81
121
|
//# sourceMappingURL=workerClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerClient.d.ts","sourceRoot":"","sources":["../workerClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"workerClient.d.ts","sourceRoot":"","sources":["../workerClient.ts"],"names":[],"mappings":"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"}
|
package/dist/workerClient.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isAgentLogging, alog } from '@corenel/harness/log';
|
|
2
|
+
import { makeBudgetGate } from './budgetGate';
|
|
2
3
|
/** Re-phrase a file-mutation permission prompt from the live workspace, so the
|
|
3
4
|
* stated risk reflects the CURRENT source. Returns null for non-file tools. */
|
|
4
5
|
function fileWriteSummary(tool, input, svc) {
|
|
@@ -29,6 +30,17 @@ export function createWorkerAgent(clientOpts) {
|
|
|
29
30
|
fail(message);
|
|
30
31
|
active.clear();
|
|
31
32
|
};
|
|
33
|
+
// Per-run abort fan-out for REMOTE tool executions (they run on this thread,
|
|
34
|
+
// so the worker's abort message can't reach them). Aborted when the run's
|
|
35
|
+
// signal fires and on run cleanup (a settled run must not leave side work).
|
|
36
|
+
const remoteAborts = new Map();
|
|
37
|
+
// Per-run bridges for HOST-side remote tools (create_strategy runs on the main
|
|
38
|
+
// thread): its clarify gate must reach the user through the SAME ask UI as
|
|
39
|
+
// ask_user, and share re-interrogation state across its calls within one run.
|
|
40
|
+
// tool-request is client-level but onAsk/runState are run-level, so stash them
|
|
41
|
+
// per runId, mirroring remoteAborts.
|
|
42
|
+
const remoteAsk = new Map();
|
|
43
|
+
const remoteRunState = new Map();
|
|
32
44
|
/** Build + wire a worker. The token/file bridges and error surfacing are bound
|
|
33
45
|
* to THIS instance; on error we null `worker` so the next run recreates it. */
|
|
34
46
|
function make() {
|
|
@@ -74,7 +86,7 @@ export function createWorkerAgent(clientOpts) {
|
|
|
74
86
|
return;
|
|
75
87
|
}
|
|
76
88
|
try {
|
|
77
|
-
const result = await exec(m.name, m.args);
|
|
89
|
+
const result = await exec(m.name, m.args, remoteAborts.get(m.runId)?.signal, { ask: remoteAsk.get(m.runId), runState: remoteRunState.get(m.runId) });
|
|
78
90
|
send({ kind: 'tool-response', id: m.id, ok: true, result });
|
|
79
91
|
}
|
|
80
92
|
catch (e) {
|
|
@@ -101,7 +113,7 @@ export function createWorkerAgent(clientOpts) {
|
|
|
101
113
|
/** Snapshot the LIVE workspace's risk metadata for a run/permission prompt. */
|
|
102
114
|
function currentFileMeta() {
|
|
103
115
|
const svc = clientOpts.getFileService?.() || null;
|
|
104
|
-
return svc ? { kind: svc.kind, label: svc.label, isLocalDisk: svc.isLocalDisk, writable: svc.writable } : undefined;
|
|
116
|
+
return svc ? { kind: svc.kind, label: svc.label, isLocalDisk: svc.isLocalDisk, writable: svc.writable, cacheId: svc.cacheId } : undefined;
|
|
105
117
|
}
|
|
106
118
|
/** Shared driver for a worker run. Wires the per-run event / node-event /
|
|
107
119
|
* permission / ask / abort bridges, posts the start message, and settles on the
|
|
@@ -112,8 +124,33 @@ export function createWorkerAgent(clientOpts) {
|
|
|
112
124
|
const send = (msg) => w.postMessage(msg);
|
|
113
125
|
return new Promise((resolve, reject) => {
|
|
114
126
|
const runId = ++runSeq;
|
|
127
|
+
const remoteAbort = new AbortController();
|
|
128
|
+
remoteAborts.set(runId, remoteAbort);
|
|
129
|
+
if (opts.onAsk)
|
|
130
|
+
remoteAsk.set(runId, opts.onAsk);
|
|
131
|
+
remoteRunState.set(runId, {});
|
|
132
|
+
// Run-budget metering (only when the caller passed constraints — otherwise
|
|
133
|
+
// this is a no-op, preserving the pre-existing unmetered behavior). The
|
|
134
|
+
// gate's onUsage only reports the resulting action, so capture the
|
|
135
|
+
// triggering Breach here (via the onBreach wrapper) to attach it to the
|
|
136
|
+
// 'budget-stop' event exactly as before.
|
|
137
|
+
let lastBreach;
|
|
138
|
+
const gate = opts.constraints
|
|
139
|
+
? makeBudgetGate({
|
|
140
|
+
constraints: opts.constraints,
|
|
141
|
+
price: opts.price,
|
|
142
|
+
model: opts.model ?? '',
|
|
143
|
+
onBreach: opts.onBreach
|
|
144
|
+
? (b, s) => { lastBreach = b; return opts.onBreach(b, s); }
|
|
145
|
+
: undefined,
|
|
146
|
+
})
|
|
147
|
+
: null;
|
|
115
148
|
const cleanup = () => {
|
|
116
149
|
active.delete(runId);
|
|
150
|
+
remoteAborts.delete(runId);
|
|
151
|
+
remoteAsk.delete(runId);
|
|
152
|
+
remoteRunState.delete(runId);
|
|
153
|
+
remoteAbort.abort(); // cancel any still-pending remote tool work
|
|
117
154
|
w.removeEventListener('message', onMessage);
|
|
118
155
|
opts.signal?.removeEventListener('abort', onAbort);
|
|
119
156
|
};
|
|
@@ -125,11 +162,41 @@ export function createWorkerAgent(clientOpts) {
|
|
|
125
162
|
const m = ev.data;
|
|
126
163
|
if (!('runId' in m) || m.runId !== runId)
|
|
127
164
|
return;
|
|
165
|
+
// Persist every self-heal at this ONE choke point — from the root run
|
|
166
|
+
// (`event`) AND from sub-agents/DAG nodes (`node-event`) — so no surface or
|
|
167
|
+
// nested run can drop heals (the per-call-site taps did exactly that).
|
|
128
168
|
if (m.kind === 'event') {
|
|
169
|
+
if (m.event.type === 'heal')
|
|
170
|
+
clientOpts.onHeal?.(m.event.record);
|
|
171
|
+
if (gate && m.event.type === 'usage') {
|
|
172
|
+
const usage = m.event.usage;
|
|
173
|
+
// Forward the usage event to the host BEFORE the breach check/onBreach
|
|
174
|
+
// await — onBreach's degrade projection reads the host's lastUsage,
|
|
175
|
+
// which is only updated inside the host's onEvent handler. Forwarding
|
|
176
|
+
// first ensures degrade sees THIS turn's usage, not the previous one
|
|
177
|
+
// (on a first-turn breach the previous usage is zero, which silently
|
|
178
|
+
// defeats "cheaper than current" and falls back to warn).
|
|
179
|
+
opts.onEvent?.(m.event);
|
|
180
|
+
const r = await gate.onUsage(usage);
|
|
181
|
+
if (r.action === 'stop') {
|
|
182
|
+
send({ kind: 'abort', runId });
|
|
183
|
+
// safe: only reached after onBreach ran, which sets lastBreach
|
|
184
|
+
opts.onEvent?.({ type: 'budget-stop', breach: lastBreach });
|
|
185
|
+
}
|
|
186
|
+
else if (r.model) {
|
|
187
|
+
send({ kind: 'set-model', runId, model: r.model });
|
|
188
|
+
}
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
129
191
|
opts.onEvent?.(m.event);
|
|
130
192
|
return;
|
|
131
193
|
}
|
|
132
194
|
if (m.kind === 'node-event') {
|
|
195
|
+
// A sub-agent/DAG-node heal is the inner AgentEvent of a 'node-event'
|
|
196
|
+
// NodeEvent (NodeEvent wraps AgentEvent), not the NodeEvent itself.
|
|
197
|
+
const inner = m.event.type === 'node-event' ? m.event.event : null;
|
|
198
|
+
if (inner?.type === 'heal')
|
|
199
|
+
clientOpts.onHeal?.(inner.record);
|
|
133
200
|
opts.onNodeEvent?.(m.event);
|
|
134
201
|
return;
|
|
135
202
|
}
|
|
@@ -160,7 +227,7 @@ export function createWorkerAgent(clientOpts) {
|
|
|
160
227
|
}
|
|
161
228
|
terminal(m, done);
|
|
162
229
|
};
|
|
163
|
-
const onAbort = () => send({ kind: 'abort', runId });
|
|
230
|
+
const onAbort = () => { remoteAbort.abort(); send({ kind: 'abort', runId }); };
|
|
164
231
|
w.addEventListener('message', onMessage);
|
|
165
232
|
opts.signal?.addEventListener('abort', onAbort, { once: true });
|
|
166
233
|
start(runId, send);
|
|
@@ -170,14 +237,14 @@ export function createWorkerAgent(clientOpts) {
|
|
|
170
237
|
run(messages, opts = {}) {
|
|
171
238
|
return begin(opts, (runId, send) => {
|
|
172
239
|
alog('client:post-run', runId, { debug: isAgentLogging() });
|
|
173
|
-
send({ kind: 'run', runId, messages, model: opts.model, system: opts.system, policy: opts.policy, ceiling: opts.ceiling, compression: opts.compression, debug: isAgentLogging(), fileMeta: currentFileMeta(), scope: getScope(), reviewEdits: !!opts.onEditReview, remoteTools: clientOpts.getRemoteTools?.() ?? [] });
|
|
240
|
+
send({ kind: 'run', runId, messages, model: opts.model, system: opts.system, policy: opts.policy, ceiling: opts.ceiling, compression: opts.compression, debug: isAgentLogging(), fileMeta: currentFileMeta(), scope: getScope(), graphConfig: clientOpts.getGraphConfig?.(), reviewEdits: !!opts.onEditReview, editorFile: opts.editorFile, remoteTools: clientOpts.getRemoteTools?.() ?? [], sessionId: opts.sessionId, toolNames: opts.toolNames });
|
|
174
241
|
}, (m, done) => { if (m.kind === 'result')
|
|
175
242
|
done(m.result); });
|
|
176
243
|
},
|
|
177
244
|
runNode(node, inputs, opts = {}) {
|
|
178
245
|
return begin(opts, (runId, send) => {
|
|
179
246
|
alog('client:post-run-node', runId, node.id, { debug: isAgentLogging() });
|
|
180
|
-
send({ kind: 'run-node', runId, node, inputs, model: opts.model, policy: opts.policy, ceiling: opts.ceiling, compression: opts.compression, debug: isAgentLogging(), fileMeta: currentFileMeta(), scope: getScope(), remoteTools: clientOpts.getRemoteTools?.() ?? [] });
|
|
247
|
+
send({ kind: 'run-node', runId, node, inputs, model: opts.model, policy: opts.policy, ceiling: opts.ceiling, compression: opts.compression, debug: isAgentLogging(), fileMeta: currentFileMeta(), scope: getScope(), graphConfig: clientOpts.getGraphConfig?.(), remoteTools: clientOpts.getRemoteTools?.() ?? [] });
|
|
181
248
|
}, (m, done) => { if (m.kind === 'node-result')
|
|
182
249
|
done(m.result); });
|
|
183
250
|
},
|