@nxisai/agent-harness 0.2.0 → 0.2.2

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 CHANGED
@@ -96,7 +96,17 @@ Rules vote; `weight` breaks ties; a tie that nothing separates abstains rather t
96
96
 
97
97
  ## Models
98
98
 
99
- Gemma 4 on WebGPU is the default and needs no configuration. To run the agent on a remote model, implement `ModelProvider`:
99
+ Gemma 4 on WebGPU is the default and needs no configuration. To run the agent on a model you host or proxy, point `createProxyProvider` at your own endpoint:
100
+
101
+ ```ts
102
+ import { createProxyProvider } from '@nxisai/agent-harness';
103
+
104
+ agent.modelProvider = createProxyProvider({ endpoint: '/api/agent' });
105
+ ```
106
+
107
+ Your endpoint holds the vendor key and answers `{ text, call?, usage? }`. The request and response shapes, and the four rules that are silent when broken, are in [docs/remote-providers.md](docs/remote-providers.md).
108
+
109
+ For a transport that is not an HTTP POST of that shape, implement `ModelProvider` directly:
100
110
 
101
111
  ```ts
102
112
  interface ModelProvider {
@@ -123,7 +133,7 @@ agent.modelProvider = myProvider; // or: new AgentHarness({ provider, render
123
133
 
124
134
  The boundary carries a structured completion rather than a string. Gemma announces tool calls in text, so `LocalGemmaProvider` parses its own markers; Claude, Gemini and Kimi return native tool-use blocks and map them onto `call`. The harness parses nothing either way.
125
135
 
126
- **Put your model behind your own origin.** A vendor key in a browser is a key anyone can read from the page source, and a browser cannot rate-limit or audit itself. See [docs/remote-providers.md](docs/remote-providers.md) for a worked Claude example: a route handler that holds the key, and the provider that calls it.
136
+ **Put your model behind your own origin.** A vendor key in a browser is a key anyone can read from the page source, and a browser cannot rate-limit or audit itself. `createProxyProvider` is the client half; [docs/remote-providers.md](docs/remote-providers.md) has the contract and a worked Claude endpoint for the other half.
127
137
 
128
138
  Three optional members are how the UI adapts. Omit `load` and the whole download treatment is skipped (no charging ring, no byte counts). Omit `countTokens` and the token metrics panel is hidden rather than rendered as zeroes. `local: false` puts `Remote` in the header, because the package's claim is that nothing leaves the tab and the exception has to be visible.
129
139
 
@@ -270,10 +280,32 @@ const coordinator = new AgentCoordinator({
270
280
  await coordinator.turn(goal, messages); // same signature as harness.turn
271
281
  ```
272
282
 
283
+ ### `createProxyProvider`
284
+
285
+ ```ts
286
+ createProxyProvider({ endpoint, name?, headers?, fetchImpl? }): ModelProvider
287
+ ```
288
+
289
+ Forwards completions to an endpoint you host. No `load()`, so the UI skips the download treatment; `local: false`, so the badge reads `Remote`. Takes the first tool call and warns about any others, since the harness runs one per turn. Passes the turn's abort signal to `fetch`, which is what makes the stop control work.
290
+
291
+ ### `assessLocalCapability`
292
+
293
+ ```ts
294
+ assessLocalCapability(): Promise<{ ok, reason?, checks }>
295
+ ```
296
+
297
+ Whether this device can load the local model, decided without loading it. Call it to choose between a local and a remote provider, or to decide whether to render a launcher at all.
298
+
299
+ `LocalGemmaProvider` runs the same check before fetching anything and refuses by default, because the failure it prevents cannot be caught: an out-of-memory kill runs no `catch`, no `onerror` and no `unload`, and takes the host page down rather than just the agent. Pass `capabilityCheck: 'warn'` or `'off'` to loosen that.
300
+
301
+ A device without `shader-f16` is declined rather than degraded. `q4f16` is already the smallest build of this model, so there is nothing smaller to fall back to.
302
+
303
+ The two go together: `assessLocalCapability` says when the local model cannot run, and `createProxyProvider` is what to use instead. A phone that cannot hold the weights can still run the agent against your endpoint.
304
+
273
305
  ### `LocalGemmaProvider`
274
306
 
275
307
  ```ts
276
- new LocalGemmaProvider({ systemPrompt?, modelHost?, modelPathTemplate?, useBrowserCache?, onStatus?, onProgress? })
308
+ new LocalGemmaProvider({ systemPrompt?, modelHost?, modelPathTemplate?, useBrowserCache?, capabilityCheck?, onStatus?, onProgress? })
277
309
  provider.complete(req): Promise<Completion>
278
310
  provider.load(): Promise<void>
279
311
  provider.preload(mode?: 'eager' | 'idle')
package/dist/engine.d.ts CHANGED
@@ -32,6 +32,25 @@ export declare const TOOLS_TIMEOUT_MS = 20000;
32
32
  * whatever fields it has, because the harness collects the rest.
33
33
  */
34
34
  export declare const SYSTEM_PROMPT: string;
35
+ /**
36
+ * Whether a load should use the browser cache, given how many previous loads
37
+ * never returned.
38
+ *
39
+ * The guard counts loads that started and did not finish. A renderer killed
40
+ * mid-load runs no handler, so the count is the only evidence the next attempt
41
+ * has.
42
+ *
43
+ * | `died` | Decision | Why |
44
+ * |---|---|---|
45
+ * | 0 | cache | Nothing went wrong last time. |
46
+ * | 1 | no cache | One unfinished load. Cache Storage failing on an entry this size is a known cause, so the theory gets one attempt. |
47
+ * | 2+ | cache | It died without the cache too, so that was not the cause. Re-downloading gigabytes is itself a cause of the failure, and repeating it forever turns one crash into caching that never works again. |
48
+ *
49
+ * @param died - Unfinished loads recorded by the guard.
50
+ * @param useBrowserCache - The host's setting. False always wins.
51
+ * @returns Whether to let Transformers.js use Cache Storage this time.
52
+ */
53
+ export declare function shouldUseCache(died: number, useBrowserCache: boolean): boolean;
35
54
  /** Where the attribution badge points. */
36
55
  export declare const NXIS_SITE_URL = "https://nxis.ai";
37
56
  export declare const NXIS_LOGO_SVG = "<svg viewBox=\"0 0 39.6 30.4\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <defs>\n <radialGradient id=\"nx-g1\" cx=\"20.65\" cy=\"-40.83\" fx=\"20.65\" fy=\"-40.83\" r=\"14.12\" gradientTransform=\"translate(0 -25.62) scale(1 -1)\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0\" stop-color=\"#3f9cf8\"/><stop offset=\".22\" stop-color=\"#3891f6\"/><stop offset=\".59\" stop-color=\"#2675f3\"/><stop offset=\".79\" stop-color=\"#1c64f2\"/>\n </radialGradient>\n <radialGradient id=\"nx-g2\" cx=\"8.54\" cy=\"485.55\" fx=\"8.54\" fy=\"485.55\" r=\"11.08\" gradientTransform=\"translate(0 -294)\" href=\"#nx-g1\"/>\n <radialGradient id=\"nx-g3\" cx=\"31.03\" cy=\"479.6\" fx=\"31.03\" fy=\"479.6\" r=\"10.02\" gradientTransform=\"translate(0 -294)\" href=\"#nx-g1\"/>\n </defs>\n <path fill=\"url(#nx-g1)\" d=\"M33.65.1c-1,1.7-1.9,3.2-2.7,4.7-4.8,8.3-9.6,16.6-14.4,24.9-.3.5-.5.6-1.1.6h-7.8c.2-.2.2-.4.3-.6C13.55,20,19.15,10.3,24.75.6c.2-.4.5-.6,1-.6h7.1c.3.1.4.1.8.1h0Z\"/>\n <path fill=\"url(#nx-g2)\" d=\"M17.15.1c-1.2,2.1-2.3,4-3.5,6-1.7,2.9-3.3,5.8-5,8.6-.2.4-.3.7,0,1.2.6.9,1.1,1.8,1.6,2.7.1.2.2.5.1.6-1.3,2.3-2.7,4.7-4.1,7.1-.2-.3-.3-.4-.4-.6-1.9-3.3-3.8-6.6-5.7-9.8-.2-.4-.2-.7,0-1.1C2.85,10.1,5.55,5.4,8.25.7c.3-.4.6-.6,1.1-.6C11.85.1,14.45,0,17.15.1h0Z\"/>\n <path fill=\"url(#nx-g3)\" d=\"M22.45,30.3c4.4-7.6,8.7-15,13-22.5.1.2.2.3.3.5,1.2,2.1,2.4,4.2,3.7,6.3.2.4.2.7,0,1-2.7,4.7-5.5,9.4-8.2,14.2-.2.4-.5.6-1,.6-2.5-.1-5.1,0-7.8-.1h0Z\"/>\n</svg>";
@@ -83,6 +102,17 @@ export interface AgentEngineOptions {
83
102
  * once and on every visit. Set false only where the cache itself is failing.
84
103
  */
85
104
  useBrowserCache?: boolean;
105
+ /**
106
+ * What to do when the device cannot run the model.
107
+ *
108
+ * `'enforce'` (the default) refuses to load, so a phone is never asked to
109
+ * hold 3.4 GB and never has its tab killed. `'warn'` logs and loads anyway.
110
+ * `'off'` skips the check entirely.
111
+ *
112
+ * Loosen it only where you know the device: the failure it prevents cannot
113
+ * be caught, and it takes the host page down with it.
114
+ */
115
+ capabilityCheck?: 'enforce' | 'warn' | 'off';
86
116
  }
87
117
  interface LoadedEngine {
88
118
  tokenizer: any;
@@ -110,6 +140,7 @@ export declare class LocalGemmaProvider implements ModelProvider {
110
140
  onStatus: (text: string, isError?: boolean) => void;
111
141
  onProgress: (pct: number, detail?: ProgressDetail) => void;
112
142
  useBrowserCache: boolean;
143
+ capabilityCheck: 'enforce' | 'warn' | 'off';
113
144
  /** True when this load dropped the cache because the last one never returned. */
114
145
  cacheDisabledAfterCrash: boolean;
115
146
  engine: LoadedEngine | null;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/engine.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { toolSchema } from './harness/tools/schema.js';
2
+ import { assessLocalCapability, requestPersistentStorage } from './providers/capability.js';
2
3
  // ── Config ───────────────────────────────────────────────────────────────────
3
4
  export const TRANSFORMERS_CDN = 'https://cdn.jsdelivr.net/npm/@huggingface/transformers@4.2.0';
4
5
  /** The Hugging Face repository the weights are loaded from. */
@@ -32,6 +33,27 @@ export const SYSTEM_PROMPT = [
32
33
  'Never ask the user to supply a missing field in prose. Leave it out of the call; the page will collect it.',
33
34
  'Call at most one tool per turn.',
34
35
  ].join(' ');
36
+ /**
37
+ * Whether a load should use the browser cache, given how many previous loads
38
+ * never returned.
39
+ *
40
+ * The guard counts loads that started and did not finish. A renderer killed
41
+ * mid-load runs no handler, so the count is the only evidence the next attempt
42
+ * has.
43
+ *
44
+ * | `died` | Decision | Why |
45
+ * |---|---|---|
46
+ * | 0 | cache | Nothing went wrong last time. |
47
+ * | 1 | no cache | One unfinished load. Cache Storage failing on an entry this size is a known cause, so the theory gets one attempt. |
48
+ * | 2+ | cache | It died without the cache too, so that was not the cause. Re-downloading gigabytes is itself a cause of the failure, and repeating it forever turns one crash into caching that never works again. |
49
+ *
50
+ * @param died - Unfinished loads recorded by the guard.
51
+ * @param useBrowserCache - The host's setting. False always wins.
52
+ * @returns Whether to let Transformers.js use Cache Storage this time.
53
+ */
54
+ export function shouldUseCache(died, useBrowserCache) {
55
+ return useBrowserCache && died !== 1;
56
+ }
35
57
  /**
36
58
  * Storage key marking a load that started but never finished.
37
59
  *
@@ -201,6 +223,7 @@ export class LocalGemmaProvider {
201
223
  this.onStatus = opts.onStatus || (() => { });
202
224
  this.onProgress = opts.onProgress || (() => { });
203
225
  this.useBrowserCache = opts.useBrowserCache !== false;
226
+ this.capabilityCheck = opts.capabilityCheck ?? 'enforce';
204
227
  this.engine = null; // { tokenizer, model }
205
228
  this.T = null; // transformers module
206
229
  this._enginePromise = null; // in-flight load (dedupes preload/open/send)
@@ -269,12 +292,32 @@ export class LocalGemmaProvider {
269
292
  if (!('gpu' in navigator)) {
270
293
  throw new Error('WebGPU is not available. Use Chrome/Edge 113+ with WebGPU enabled.');
271
294
  }
272
- // A guard left from last time means that load never returned. The browser
273
- // cache is the likeliest cause, so this attempt runs without it.
295
+ // Decided before a byte is fetched. An out-of-memory kill runs no handler,
296
+ // so there is nothing to catch afterwards and nothing to apologise with.
297
+ if (this.capabilityCheck !== 'off') {
298
+ const verdict = await assessLocalCapability();
299
+ if (!verdict.ok) {
300
+ if (this.capabilityCheck === 'enforce') {
301
+ throw new Error(`This device cannot run the on-device model (${verdict.reason}). ` +
302
+ 'Use a remote provider here: see createProxyProvider.');
303
+ }
304
+ console.warn(`[nxis-agent] loading the local model on a device that failed the ` +
305
+ `capability check (${verdict.reason}). The tab may be terminated.`);
306
+ }
307
+ }
308
+ // See shouldUseCache for what the count means.
274
309
  const died = this._readGuard();
275
- const useCache = this.useBrowserCache && died === 0;
310
+ const useCache = shouldUseCache(died, this.useBrowserCache);
276
311
  this._writeGuard(died + 1);
277
312
  this.cacheDisabledAfterCrash = !useCache && this.useBrowserCache;
313
+ // Best-effort storage is evicted under pressure, and a multi-gigabyte model
314
+ // is first to go, which looks exactly like caching never having worked.
315
+ if (useCache) {
316
+ const persisted = await requestPersistentStorage();
317
+ if (!persisted) {
318
+ console.info('[nxis-agent] storage is best-effort; the browser may evict the model between visits.');
319
+ }
320
+ }
278
321
  this._resetProgress();
279
322
  this._status(this.cacheDisabledAfterCrash
280
323
  ? 'Last load did not finish — retrying without the browser cache…'
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../src/harness/harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../src/harness/harness.ts"],"names":[],"mappings":"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"}
@@ -152,8 +152,12 @@ export class AgentHarness {
152
152
  * reached a server already.
153
153
  */
154
154
  stop() {
155
+ // Aborted, not discarded. The controller is what `stopped` and every
156
+ // `signal` read downstream go through, so clearing it here would make a
157
+ // stop that lands early in a turn invisible to the rest of it: the checks
158
+ // would read false and the provider would be handed no signal at all.
159
+ // `turn()` replaces it on the next turn regardless.
155
160
  this.abort?.abort();
156
- this.abort = null;
157
161
  }
158
162
  /**
159
163
  * Render a completion for the transcript.
@@ -1 +1 @@
1
- {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/harness/harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/harness/harness.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,7 +16,11 @@
16
16
  * @module
17
17
  */
18
18
  export { AgentHarness } from './harness/harness.js';
19
- export { LocalGemmaProvider, AgentEngine } from './engine.js';
19
+ export { LocalGemmaProvider, AgentEngine, shouldUseCache } from './engine.js';
20
+ export { createProxyProvider } from './providers/proxy.js';
21
+ export type { ProxyProviderOptions } from './providers/proxy.js';
22
+ export { assessLocalCapability, requestPersistentStorage } from './providers/capability.js';
23
+ export type { LocalCapability } from './providers/capability.js';
20
24
  export type { ModelProvider, CompletionRequest, Completion, CacheHint, } from './providers/types.js';
21
25
  export { WebMcpTools } from './harness/tools/webmcp.js';
22
26
  export { toolSchema, missingRequired, reconcileArgs, extractResult, } from './harness/tools/schema.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,SAAS,GACV,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,GACd,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAErE,YAAY,EACV,eAAe,EACf,UAAU,EACV,cAAc,EACd,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACT,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,eAAe,EACf,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC/E,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,YAAY,EACV,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,UAAU,EACV,cAAc,EACd,8BAA8B,EAC9B,eAAe,GAChB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC5F,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,SAAS,GACV,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,GACd,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAErE,YAAY,EACV,eAAe,EACf,UAAU,EACV,cAAc,EACd,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACT,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,eAAe,EACf,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC/E,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,YAAY,EACV,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,UAAU,EACV,cAAc,EACd,8BAA8B,EAC9B,eAAe,GAChB,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -17,7 +17,9 @@
17
17
  */
18
18
  export { AgentHarness } from './harness/harness.js';
19
19
  // ── Model providers ──────────────────────────────────────────────────────────
20
- export { LocalGemmaProvider, AgentEngine } from './engine.js';
20
+ export { LocalGemmaProvider, AgentEngine, shouldUseCache } from './engine.js';
21
+ export { createProxyProvider } from './providers/proxy.js';
22
+ export { assessLocalCapability, requestPersistentStorage } from './providers/capability.js';
21
23
  // ── Tools, as the harness sees them ──────────────────────────────────────────
22
24
  export { WebMcpTools } from './harness/tools/webmcp.js';
23
25
  export { toolSchema, missingRequired, reconcileArgs, extractResult, } from './harness/tools/schema.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,gFAAgF;AAChF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ9D,gFAAgF;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,GACd,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAWvD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACT,eAAe,GAChB,MAAM,aAAa,CAAC;AAWrB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,gFAAgF;AAChF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAS5F,gFAAgF;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,GACd,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAWvD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACT,eAAe,GAChB,MAAM,aAAa,CAAC;AAWrB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Whether this device can load the local model without harming the visitor.
3
+ *
4
+ * {@link LocalGemmaProvider} downloads and holds roughly 3.4 GB of weights in
5
+ * the tab. A mobile renderer cannot take that: it is killed, and the visitor
6
+ * loses the whole host page rather than just the agent.
7
+ *
8
+ * That failure cannot be caught. An out-of-memory kill runs no `catch`, no
9
+ * `onerror` and no `unload` handler, so there is no recovery path and nothing
10
+ * to report afterwards. The only defence is deciding before the load starts,
11
+ * which is what this module is for.
12
+ *
13
+ * @module
14
+ */
15
+ /** Approximate footprint of the q4f16 weights, in bytes. */
16
+ export declare const MODEL_BYTES = 3400000000;
17
+ /** What {@link assessLocalCapability} found. */
18
+ export interface LocalCapability {
19
+ /** Whether the local model should be loaded on this device. */
20
+ ok: boolean;
21
+ /** Why not, when `ok` is false. Suitable for a log, not for a visitor. */
22
+ reason?: string;
23
+ /** The individual findings, for a host that wants to decide for itself. */
24
+ checks: {
25
+ /** True for a phone or tablet, by client hints or user-agent string. */
26
+ mobile: boolean;
27
+ /** Whether `navigator.gpu` exists. The API, not a usable adapter. */
28
+ webgpuApi: boolean;
29
+ /** Whether an adapter was actually returned. */
30
+ adapter: boolean;
31
+ /** Whether the adapter supports fp16 compute, which `q4f16` requires. */
32
+ shaderF16: boolean;
33
+ /** `navigator.deviceMemory` in GB, where the browser reports it. */
34
+ deviceMemoryGb?: number;
35
+ /** Storage quota in bytes, where the browser estimates it. */
36
+ storageQuota?: number;
37
+ };
38
+ }
39
+ /**
40
+ * Decide whether the local model can be loaded here, without loading it.
41
+ *
42
+ * Safe and cheap to call: it acquires a WebGPU adapter and reads storage
43
+ * estimates, and downloads nothing. Hosts can call it directly to decide
44
+ * whether to offer the agent at all, rather than rendering a control that
45
+ * cannot work.
46
+ *
47
+ * Deliberately conservative, because the two ways of being wrong are not
48
+ * equal. A false negative costs a capable visitor the local model, and a
49
+ * remote provider still works. A false positive costs a visitor their browser
50
+ * tab, and takes the host's page with it.
51
+ *
52
+ * There is no smaller quantisation to fall back to: `q4f16` is already the
53
+ * smallest build of this model, and `q4` is larger. So a device without fp16
54
+ * compute is declined rather than degraded.
55
+ *
56
+ * @returns The verdict, and the individual findings behind it.
57
+ */
58
+ export declare function assessLocalCapability(): Promise<LocalCapability>;
59
+ /**
60
+ * Ask the browser to keep this origin's storage rather than evicting it.
61
+ *
62
+ * Cache Storage is best-effort by default, and a browser under pressure evicts
63
+ * best-effort data without warning. A multi-gigabyte model is the first thing
64
+ * to go, which looks exactly like caching never having worked.
65
+ *
66
+ * Browsers grant this on their own heuristics, so it is a request rather than
67
+ * a guarantee. Not asking guarantees best-effort; asking sometimes gets more.
68
+ *
69
+ * @returns Whether the origin's storage is persistent afterwards.
70
+ */
71
+ export declare function requestPersistentStorage(): Promise<boolean>;
72
+ //# sourceMappingURL=capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../src/providers/capability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAcH,4DAA4D;AAC5D,eAAO,MAAM,WAAW,aAAQ,CAAC;AAQjC,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,EAAE,EAAE,OAAO,CAAC;IACZ,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,MAAM,EAAE;QACN,wEAAwE;QACxE,MAAM,EAAE,OAAO,CAAC;QAChB,qEAAqE;QACrE,SAAS,EAAE,OAAO,CAAC;QACnB,gDAAgD;QAChD,OAAO,EAAE,OAAO,CAAC;QACjB,yEAAyE;QACzE,SAAS,EAAE,OAAO,CAAC;QACnB,oEAAoE;QACpE,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,8DAA8D;QAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAQD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC,CA2DtE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CASjE"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Whether this device can load the local model without harming the visitor.
3
+ *
4
+ * {@link LocalGemmaProvider} downloads and holds roughly 3.4 GB of weights in
5
+ * the tab. A mobile renderer cannot take that: it is killed, and the visitor
6
+ * loses the whole host page rather than just the agent.
7
+ *
8
+ * That failure cannot be caught. An out-of-memory kill runs no `catch`, no
9
+ * `onerror` and no `unload` handler, so there is no recovery path and nothing
10
+ * to report afterwards. The only defence is deciding before the load starts,
11
+ * which is what this module is for.
12
+ *
13
+ * @module
14
+ */
15
+ /** Approximate footprint of the q4f16 weights, in bytes. */
16
+ export const MODEL_BYTES = 3.4e9;
17
+ /** Weights plus room for the browser's own use, for the storage estimate. */
18
+ const REQUIRED_QUOTA = MODEL_BYTES * 1.8;
19
+ /** Reported memory, in GB, below which the load is not attempted. */
20
+ const MIN_DEVICE_MEMORY_GB = 8;
21
+ /** Is this a phone or tablet? Client hints where available, UA string if not. */
22
+ function isMobile(nav) {
23
+ if (typeof nav.userAgentData?.mobile === 'boolean')
24
+ return nav.userAgentData.mobile;
25
+ return /Android|iPhone|iPad|iPod|Mobile|Silk|Kindle/i.test(nav.userAgent);
26
+ }
27
+ /**
28
+ * Decide whether the local model can be loaded here, without loading it.
29
+ *
30
+ * Safe and cheap to call: it acquires a WebGPU adapter and reads storage
31
+ * estimates, and downloads nothing. Hosts can call it directly to decide
32
+ * whether to offer the agent at all, rather than rendering a control that
33
+ * cannot work.
34
+ *
35
+ * Deliberately conservative, because the two ways of being wrong are not
36
+ * equal. A false negative costs a capable visitor the local model, and a
37
+ * remote provider still works. A false positive costs a visitor their browser
38
+ * tab, and takes the host's page with it.
39
+ *
40
+ * There is no smaller quantisation to fall back to: `q4f16` is already the
41
+ * smallest build of this model, and `q4` is larger. So a device without fp16
42
+ * compute is declined rather than degraded.
43
+ *
44
+ * @returns The verdict, and the individual findings behind it.
45
+ */
46
+ export async function assessLocalCapability() {
47
+ const checks = {
48
+ mobile: false,
49
+ webgpuApi: false,
50
+ adapter: false,
51
+ shaderF16: false,
52
+ };
53
+ if (typeof navigator === 'undefined') {
54
+ return { ok: false, reason: 'no navigator', checks };
55
+ }
56
+ const nav = navigator;
57
+ checks.mobile = isMobile(nav);
58
+ checks.webgpuApi = !!nav.gpu;
59
+ if (typeof nav.deviceMemory === 'number')
60
+ checks.deviceMemoryGb = nav.deviceMemory;
61
+ // Mobile is the case this exists for. Even a phone reporting ample memory is
62
+ // subject to a renderer cap far below what these weights need.
63
+ if (checks.mobile)
64
+ return { ok: false, reason: 'mobile device', checks };
65
+ if (!nav.gpu)
66
+ return { ok: false, reason: 'no WebGPU', checks };
67
+ if (checks.deviceMemoryGb !== undefined && checks.deviceMemoryGb < MIN_DEVICE_MEMORY_GB) {
68
+ return { ok: false, reason: `deviceMemory ${checks.deviceMemoryGb}GB`, checks };
69
+ }
70
+ let adapter;
71
+ try {
72
+ adapter = await nav.gpu.requestAdapter();
73
+ }
74
+ catch (error) {
75
+ return { ok: false, reason: `adapter request failed: ${String(error)}`, checks };
76
+ }
77
+ // The API can exist with no adapter behind it, which is a load that fails
78
+ // after the download rather than before it.
79
+ if (!adapter)
80
+ return { ok: false, reason: 'no WebGPU adapter', checks };
81
+ checks.adapter = true;
82
+ checks.shaderF16 = adapter.features.has('shader-f16');
83
+ if (!checks.shaderF16)
84
+ return { ok: false, reason: 'no shader-f16', checks };
85
+ // Storage is checked last because it is advisory: browsers report a quota
86
+ // they do not promise to honour, and a missing estimate is not a refusal.
87
+ try {
88
+ const estimate = await nav.storage?.estimate?.();
89
+ if (typeof estimate?.quota === 'number') {
90
+ checks.storageQuota = estimate.quota;
91
+ if (estimate.quota < REQUIRED_QUOTA) {
92
+ return {
93
+ ok: false,
94
+ reason: `storage quota ${(estimate.quota / 1e9).toFixed(1)}GB`,
95
+ checks,
96
+ };
97
+ }
98
+ }
99
+ }
100
+ catch {
101
+ // An unavailable estimate says nothing either way.
102
+ }
103
+ return { ok: true, checks };
104
+ }
105
+ /**
106
+ * Ask the browser to keep this origin's storage rather than evicting it.
107
+ *
108
+ * Cache Storage is best-effort by default, and a browser under pressure evicts
109
+ * best-effort data without warning. A multi-gigabyte model is the first thing
110
+ * to go, which looks exactly like caching never having worked.
111
+ *
112
+ * Browsers grant this on their own heuristics, so it is a request rather than
113
+ * a guarantee. Not asking guarantees best-effort; asking sometimes gets more.
114
+ *
115
+ * @returns Whether the origin's storage is persistent afterwards.
116
+ */
117
+ export async function requestPersistentStorage() {
118
+ try {
119
+ const storage = navigator?.storage;
120
+ if (!storage?.persist)
121
+ return false;
122
+ if (await storage.persisted?.())
123
+ return true;
124
+ return await storage.persist();
125
+ }
126
+ catch {
127
+ return false;
128
+ }
129
+ }
130
+ //# sourceMappingURL=capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.js","sourceRoot":"","sources":["../../src/providers/capability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { ModelProvider } from './types.js';
2
+ /** Options for {@link createProxyProvider}. */
3
+ export interface ProxyProviderOptions {
4
+ /**
5
+ * Where completions are requested from.
6
+ *
7
+ * A same-origin path such as `/api/agent` keeps the request under the page's
8
+ * own origin, which is what allows `credentials: 'same-origin'` to carry an
9
+ * existing session and lets the endpoint answer "who is allowed to ask".
10
+ */
11
+ endpoint: string;
12
+ /**
13
+ * Identifies the provider in logs and debug output, not to end users.
14
+ * Defaults to `'proxy'`.
15
+ */
16
+ name?: string;
17
+ /** Extra request headers, for an endpoint that expects its own auth. */
18
+ headers?: Record<string, string>;
19
+ /**
20
+ * `fetch` implementation to use. Defaults to the global.
21
+ *
22
+ * Present so the provider can be tested without a network, and so a host can
23
+ * wrap requests with its own retry or instrumentation.
24
+ */
25
+ fetchImpl?: typeof fetch;
26
+ }
27
+ /**
28
+ * Build a provider that posts completions to your own endpoint.
29
+ *
30
+ * The returned provider deliberately has no `load()`. Its absence is what tells
31
+ * the UI there is nothing to download, so the progress ring, byte counts and
32
+ * stage labels are skipped, and it is why a remote provider works on devices
33
+ * that cannot hold a local model. `countTokens` is likewise absent: token
34
+ * metrics hide themselves rather than reporting zeroes.
35
+ *
36
+ * @param opts - The endpoint, and optionally a name, extra headers, or a
37
+ * `fetch` implementation.
38
+ * @returns A provider ready to pass as `modelProvider` or {@link HarnessOptions.provider}.
39
+ * @throws From `complete()`, if the endpoint answers with a non-2xx status. An
40
+ * aborted request rejects with the `AbortError` from `fetch`, which the harness
41
+ * treats as a cancellation rather than a failure.
42
+ */
43
+ export declare function createProxyProvider(opts: ProxyProviderOptions): ModelProvider;
44
+ //# sourceMappingURL=proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/providers/proxy.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5D,+CAA+C;AAC/C,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAoCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,aAAa,CAkD7E"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Reduce a response to the single call the harness can act on.
3
+ *
4
+ * The harness runs one tool per turn. An endpoint that returns several would
5
+ * otherwise have all but the first silently dropped, so the reduction happens
6
+ * here, once, with a warning naming what was discarded.
7
+ */
8
+ function oneCall(body, name) {
9
+ const many = Array.isArray(body.calls) ? body.calls : [];
10
+ const all = body.call ? [body.call, ...many] : many;
11
+ if (all.length > 1) {
12
+ console.warn(`[${name}] endpoint returned ${all.length} tool calls; using "${all[0]?.name}" and ` +
13
+ `discarding ${all.slice(1).map((c) => c?.name).join(', ')}. ` +
14
+ 'The harness runs one tool per turn.');
15
+ }
16
+ return all[0];
17
+ }
18
+ /**
19
+ * Build a provider that posts completions to your own endpoint.
20
+ *
21
+ * The returned provider deliberately has no `load()`. Its absence is what tells
22
+ * the UI there is nothing to download, so the progress ring, byte counts and
23
+ * stage labels are skipped, and it is why a remote provider works on devices
24
+ * that cannot hold a local model. `countTokens` is likewise absent: token
25
+ * metrics hide themselves rather than reporting zeroes.
26
+ *
27
+ * @param opts - The endpoint, and optionally a name, extra headers, or a
28
+ * `fetch` implementation.
29
+ * @returns A provider ready to pass as `modelProvider` or {@link HarnessOptions.provider}.
30
+ * @throws From `complete()`, if the endpoint answers with a non-2xx status. An
31
+ * aborted request rejects with the `AbortError` from `fetch`, which the harness
32
+ * treats as a cancellation rather than a failure.
33
+ */
34
+ export function createProxyProvider(opts) {
35
+ const { endpoint, name = 'proxy', headers, fetchImpl } = opts;
36
+ return {
37
+ name,
38
+ /** Inference happens off-device, which the UI surfaces to the visitor. */
39
+ local: false,
40
+ ready: true,
41
+ loading: false,
42
+ async complete({ messages, tools, maxTokens, signal, cache }) {
43
+ const send = fetchImpl ?? fetch;
44
+ const res = await send(endpoint, {
45
+ method: 'POST',
46
+ headers: {
47
+ 'Content-Type': 'application/json',
48
+ // Declares which response shape this provider understands. A future
49
+ // streaming provider asks for text/event-stream instead, so an
50
+ // endpoint can offer both and this one keeps working unchanged.
51
+ Accept: 'application/json',
52
+ ...headers,
53
+ },
54
+ credentials: 'same-origin',
55
+ // Without this the stop control, Escape and edit-and-resend are all
56
+ // inert: they abort the turn through this signal and nothing else.
57
+ signal,
58
+ body: JSON.stringify({ messages, tools, maxTokens, cache }),
59
+ });
60
+ if (!res.ok) {
61
+ throw new Error(`Agent endpoint ${endpoint} returned ${res.status} ${res.statusText}`);
62
+ }
63
+ const body = (await res.json());
64
+ const completion = {
65
+ // Rendered verbatim, so an endpoint that strips its model's protocol
66
+ // markers is the only thing standing between them and the visitor.
67
+ text: typeof body.text === 'string' ? body.text : '',
68
+ };
69
+ const call = oneCall(body, name);
70
+ if (call)
71
+ completion.call = call;
72
+ if (body.usage) {
73
+ completion.usage = {
74
+ promptTokens: body.usage.promptTokens ?? 0,
75
+ outputTokens: body.usage.outputTokens ?? 0,
76
+ };
77
+ }
78
+ return completion;
79
+ },
80
+ };
81
+ }
82
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/providers/proxy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,18 +1,37 @@
1
1
  {
2
2
  "name": "@nxisai/agent-harness",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "An on-device agent for the browser: a tool-calling harness over WebMCP and remote MCP, plus a drop-in chat UI. Decides whether to run a tool, ask for what's missing, or confirm before writing.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
9
- ".": { "types": "./dist/index.d.ts", "default": "./dist/index.js" },
10
- "./ui": { "types": "./dist/ui/index.d.ts", "default": "./dist/ui/index.js" },
11
- "./a2ui": { "types": "./dist/a2ui/index.d.ts", "default": "./dist/a2ui/index.js" },
12
- "./tools": { "types": "./dist/harness/tools/source.d.ts", "default": "./dist/harness/tools/source.js" }
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ },
13
+ "./ui": {
14
+ "types": "./dist/ui/index.d.ts",
15
+ "default": "./dist/ui/index.js"
16
+ },
17
+ "./a2ui": {
18
+ "types": "./dist/a2ui/index.d.ts",
19
+ "default": "./dist/a2ui/index.js"
20
+ },
21
+ "./tools": {
22
+ "types": "./dist/harness/tools/source.d.ts",
23
+ "default": "./dist/harness/tools/source.js"
24
+ }
13
25
  },
14
- "files": ["dist", "README.md", "LICENSE"],
15
- "sideEffects": ["./dist/ui/index.js", "./dist/ui/agent-fullscreen.js"],
26
+ "files": [
27
+ "dist",
28
+ "README.md",
29
+ "LICENSE"
30
+ ],
31
+ "sideEffects": [
32
+ "./dist/ui/index.js",
33
+ "./dist/ui/agent-fullscreen.js"
34
+ ],
16
35
  "scripts": {
17
36
  "build:css": "tailwindcss -i src/ui/agent.tw.css -o .tw/agent.css --minify && node scripts/css-to-ts.mjs",
18
37
  "build": "npm run build:css && tsc -p tsconfig.json",
@@ -20,10 +39,25 @@
20
39
  "test": "vitest run",
21
40
  "prepublishOnly": "npm run build"
22
41
  },
23
- "keywords": ["webmcp", "mcp", "agent", "on-device", "llm", "gemma", "a2ui", "schema.org", "nxis"],
42
+ "keywords": [
43
+ "webmcp",
44
+ "mcp",
45
+ "agent",
46
+ "on-device",
47
+ "llm",
48
+ "gemma",
49
+ "a2ui",
50
+ "schema.org",
51
+ "nxis"
52
+ ],
24
53
  "license": "Apache-2.0",
25
- "repository": { "type": "git", "url": "git+https://github.com/nxisai/nxis-agent-harness.git" },
26
- "engines": { "node": ">=20" },
54
+ "repository": {
55
+ "type": "git",
56
+ "url": "git+https://github.com/nxisai/nxis-agent-harness.git"
57
+ },
58
+ "engines": {
59
+ "node": ">=20"
60
+ },
27
61
  "dependencies": {
28
62
  "@modelcontextprotocol/sdk": "^1.12.1",
29
63
  "@a2ui/lit": "^0.10.3",