@nxisai/agent-harness 0.2.0 → 0.2.3
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 +108 -5
- package/dist/engine.d.ts +31 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +46 -3
- package/dist/engine.js.map +1 -1
- package/dist/harness/harness.d.ts.map +1 -1
- package/dist/harness/harness.js +5 -1
- package/dist/harness/harness.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/capability.d.ts +72 -0
- package/dist/providers/capability.d.ts.map +1 -0
- package/dist/providers/capability.js +130 -0
- package/dist/providers/capability.js.map +1 -0
- package/dist/providers/proxy.d.ts +44 -0
- package/dist/providers/proxy.d.ts.map +1 -0
- package/dist/providers/proxy.js +121 -0
- package/dist/providers/proxy.js.map +1 -0
- package/package.json +44 -10
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
|
|
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.
|
|
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')
|
|
@@ -371,10 +403,78 @@ import { connectTools } from '@nxisai/agent-harness/tools';
|
|
|
371
403
|
const { modelContext, remoteTools, warning } = await connectTools(apiKey?, { timeout?, fallback?, accept? });
|
|
372
404
|
```
|
|
373
405
|
|
|
374
|
-
Discovery reads
|
|
406
|
+
Discovery reads the site's [`.well-known` catalog](#mcp-discovery-files), follows it to the server card, and bridges the server's tools into `document.modelContext`. When the page has no WebMCP provider, a local registry is installed so bridged tools still have a home (`fallback: false` disables this). `nxis_action` is not bridged by default; it is the server-side path for external MCP clients, and the page's own form tools cover the same actions. Pass `accept` to change which tools cross.
|
|
375
407
|
|
|
376
408
|
Bridged tools are marked read-only only when their server says so. The `nxis_query` schema is flattened for the model: `{ schema_type, text, filters, sort, limit }`, where `filters` is `{ "path": ">=4.5" }` (prefixes `>=`, `>`, `<=`, `<`; a list means any-of) and `sort` is a path with `-` for descending. String and nested forms of `filters` are accepted.
|
|
377
409
|
|
|
410
|
+
### MCP discovery files
|
|
411
|
+
|
|
412
|
+
Remote tools are found by fetching two files from the **page's own origin**. The site serves them; the harness never takes an endpoint from configuration.
|
|
413
|
+
|
|
414
|
+
```
|
|
415
|
+
https://example.com/.well-known/ai-catalog.json ← tried first
|
|
416
|
+
https://example.com/.well-known/catalog.json ← tried only if the first fails
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
Either file is a catalog listing one or more entries. The harness takes the first entry that has a `url` and follows it to a server card:
|
|
420
|
+
|
|
421
|
+
```json
|
|
422
|
+
{
|
|
423
|
+
"specVersion": "2025-09-16",
|
|
424
|
+
"entries": [
|
|
425
|
+
{
|
|
426
|
+
"identifier": "example-mcp",
|
|
427
|
+
"displayName": "Example",
|
|
428
|
+
"type": "mcp-server",
|
|
429
|
+
"mediaType": "application/json",
|
|
430
|
+
"url": "https://mcp.example.com/.well-known/mcp-server-card.json"
|
|
431
|
+
}
|
|
432
|
+
]
|
|
433
|
+
}
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
Only `entries[].url` is read; the other fields are for human and crawler consumption. The URL may point anywhere — the card is commonly hosted on the MCP server's own origin rather than the site's.
|
|
437
|
+
|
|
438
|
+
The server card describes how to reach the server:
|
|
439
|
+
|
|
440
|
+
```json
|
|
441
|
+
{
|
|
442
|
+
"name": "com.example/mcp",
|
|
443
|
+
"title": "Example",
|
|
444
|
+
"description": "Typed retrieval and actions for example.com",
|
|
445
|
+
"websiteUrl": "https://example.com",
|
|
446
|
+
"remotes": [
|
|
447
|
+
{
|
|
448
|
+
"type": "streamable-http",
|
|
449
|
+
"url": "https://mcp.example.com/mcp",
|
|
450
|
+
"supportedProtocolVersions": ["2025-06-18"],
|
|
451
|
+
"headers": [
|
|
452
|
+
{ "name": "X-API-Key", "isSecret": true, "isRequired": false }
|
|
453
|
+
]
|
|
454
|
+
}
|
|
455
|
+
],
|
|
456
|
+
"_meta": {
|
|
457
|
+
"ai.nxis/publicTools": ["nxis_query", "nxis_get", "nxis_list_types"]
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
What each part does:
|
|
463
|
+
|
|
464
|
+
| Field | Effect |
|
|
465
|
+
|---|---|
|
|
466
|
+
| `remotes[]` | The `streamable-http` entry is used; otherwise the first entry. Its `url` is the MCP endpoint, and a missing one fails discovery. |
|
|
467
|
+
| `remotes[].headers[0]` | Names the header the `mcp-api-key` attribute is sent in. Only the first header is read. With `isRequired: true`, the harness treats calls as needing a key. |
|
|
468
|
+
| `_meta["ai.nxis/publicTools"]` | The tools usable without a key. Used as the tool list only when `tools/list` fails — normally the live list wins. |
|
|
469
|
+
| `title` | Labels the bridged toolset in the UI. |
|
|
470
|
+
|
|
471
|
+
Serving requirements:
|
|
472
|
+
|
|
473
|
+
- Both files must answer `GET` with JSON. The harness sends `Accept: application/json` and treats any non-2xx as "try the next catalog".
|
|
474
|
+
- The catalog fetch is same-origin, so it needs no CORS headers. The **server card and the MCP endpoint usually are cross-origin**, and those responses do need `Access-Control-Allow-Origin` for the site's origin.
|
|
475
|
+
- Discovery failure is never fatal. The agent keeps running with whatever the page registered itself, and `connectTools` returns the reason in `warning`.
|
|
476
|
+
- `discover="false"` skips all of this.
|
|
477
|
+
|
|
378
478
|
### A2UI
|
|
379
479
|
|
|
380
480
|
```ts
|
|
@@ -387,7 +487,7 @@ Messages are authored against A2UI v1.0 and downgraded with `toV09` for the publ
|
|
|
387
487
|
|
|
388
488
|
- WebGPU: Chrome or Edge 113+, or Safari 18+.
|
|
389
489
|
- Model weights: fetched on first use (gigabytes on a first run, then cached).
|
|
390
|
-
- Tools: `document.modelContext` from `nxis.js` or a browser extension, or a remote MCP server discoverable through `.well-known
|
|
490
|
+
- Tools: `document.modelContext` from `nxis.js` or a browser extension, or a remote MCP server discoverable through the [`.well-known` files](#mcp-discovery-files) the site serves.
|
|
391
491
|
|
|
392
492
|
## Troubleshooting and gotchas
|
|
393
493
|
|
|
@@ -400,6 +500,9 @@ Chrome's Cache Storage can fail on entries this large and kill the renderer rath
|
|
|
400
500
|
**"No tools are registered on this page yet."**
|
|
401
501
|
`document.modelContext` is empty. On a local origin the site tag does not activate, so on-page form tools are absent; remote MCP tools still arrive through discovery if `.well-known/ai-catalog.json` is served. Check that `discover` is not `"false"`.
|
|
402
502
|
|
|
503
|
+
**"No MCP server-card URL found in .well-known catalogs".**
|
|
504
|
+
Neither `/.well-known/ai-catalog.json` nor `/.well-known/catalog.json` answered with JSON containing an entry that has a `url`. Fetch both paths against the origin the page is served from, not the MCP server's origin, and check the shape against [MCP discovery files](#mcp-discovery-files). A dev server that returns `index.html` for unknown paths is a common cause: the fetch succeeds, the JSON parse does not.
|
|
505
|
+
|
|
403
506
|
**An agent answers "I cannot do that from this page".**
|
|
404
507
|
That agent's `tools` filter matched nothing among the registered tools. The slice is not widened silently. Check the names your page registers against the filter, and write an `unavailable` line per agent.
|
|
405
508
|
|
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;
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAEf,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,cAAc,EACd,OAAO,EACR,MAAM,YAAY,CAAC;
|
|
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
|
-
//
|
|
273
|
-
//
|
|
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
|
|
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…'
|
package/dist/engine.js.map
CHANGED
|
@@ -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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"}
|
package/dist/harness/harness.js
CHANGED
|
@@ -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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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":"AAoBA,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;AAyDD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,aAAa,CAkD7E"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A {@link ModelProvider} that forwards completions to an endpoint you host.
|
|
3
|
+
*
|
|
4
|
+
* The browser never holds a vendor credential: the page posts to your own
|
|
5
|
+
* origin, and your endpoint calls the model with a key only it can see. This is
|
|
6
|
+
* the client half of that arrangement. The server half is yours to write, and
|
|
7
|
+
* `docs/remote-providers.md` documents the contract it has to satisfy.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { createProxyProvider } from '@nxisai/agent-harness';
|
|
12
|
+
*
|
|
13
|
+
* const agent = document.querySelector('nxis-agent-fullscreen');
|
|
14
|
+
* agent.modelProvider = createProxyProvider({ endpoint: '/api/agent' });
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
import { toolSchema } from '../harness/tools/schema.js';
|
|
20
|
+
/**
|
|
21
|
+
* Reduce the page's tools to plain, serialisable data.
|
|
22
|
+
*
|
|
23
|
+
* `discoverTools` returns whatever the WebMCP implementation holds, and a
|
|
24
|
+
* native registry returns live objects that reference the page: passing those
|
|
25
|
+
* to `JSON.stringify` throws "Converting circular structure to JSON, starting
|
|
26
|
+
* at object with constructor 'Window'". The local provider never hit this
|
|
27
|
+
* because it reads the same three fields out before building its prompt.
|
|
28
|
+
*
|
|
29
|
+
* Normalising the schema here also spares every endpoint the job: WebMCP
|
|
30
|
+
* carries it under four different keys and sometimes as a JSON string, and
|
|
31
|
+
* `inputSchema` is the one the contract documents.
|
|
32
|
+
*/
|
|
33
|
+
function wireTools(tools) {
|
|
34
|
+
return tools.map((tool) => ({
|
|
35
|
+
name: tool.name,
|
|
36
|
+
description: tool.description ?? '',
|
|
37
|
+
inputSchema: toolSchema(tool),
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Reduce a response to the single call the harness can act on.
|
|
42
|
+
*
|
|
43
|
+
* The harness runs one tool per turn. An endpoint that returns several would
|
|
44
|
+
* otherwise have all but the first silently dropped, so the reduction happens
|
|
45
|
+
* here, once, with a warning naming what was discarded.
|
|
46
|
+
*/
|
|
47
|
+
function oneCall(body, name) {
|
|
48
|
+
const many = Array.isArray(body.calls) ? body.calls : [];
|
|
49
|
+
const all = body.call ? [body.call, ...many] : many;
|
|
50
|
+
if (all.length > 1) {
|
|
51
|
+
console.warn(`[${name}] endpoint returned ${all.length} tool calls; using "${all[0]?.name}" and ` +
|
|
52
|
+
`discarding ${all.slice(1).map((c) => c?.name).join(', ')}. ` +
|
|
53
|
+
'The harness runs one tool per turn.');
|
|
54
|
+
}
|
|
55
|
+
return all[0];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build a provider that posts completions to your own endpoint.
|
|
59
|
+
*
|
|
60
|
+
* The returned provider deliberately has no `load()`. Its absence is what tells
|
|
61
|
+
* the UI there is nothing to download, so the progress ring, byte counts and
|
|
62
|
+
* stage labels are skipped, and it is why a remote provider works on devices
|
|
63
|
+
* that cannot hold a local model. `countTokens` is likewise absent: token
|
|
64
|
+
* metrics hide themselves rather than reporting zeroes.
|
|
65
|
+
*
|
|
66
|
+
* @param opts - The endpoint, and optionally a name, extra headers, or a
|
|
67
|
+
* `fetch` implementation.
|
|
68
|
+
* @returns A provider ready to pass as `modelProvider` or {@link HarnessOptions.provider}.
|
|
69
|
+
* @throws From `complete()`, if the endpoint answers with a non-2xx status. An
|
|
70
|
+
* aborted request rejects with the `AbortError` from `fetch`, which the harness
|
|
71
|
+
* treats as a cancellation rather than a failure.
|
|
72
|
+
*/
|
|
73
|
+
export function createProxyProvider(opts) {
|
|
74
|
+
const { endpoint, name = 'proxy', headers, fetchImpl } = opts;
|
|
75
|
+
return {
|
|
76
|
+
name,
|
|
77
|
+
/** Inference happens off-device, which the UI surfaces to the visitor. */
|
|
78
|
+
local: false,
|
|
79
|
+
ready: true,
|
|
80
|
+
loading: false,
|
|
81
|
+
async complete({ messages, tools, maxTokens, signal, cache }) {
|
|
82
|
+
const send = fetchImpl ?? fetch;
|
|
83
|
+
const res = await send(endpoint, {
|
|
84
|
+
method: 'POST',
|
|
85
|
+
headers: {
|
|
86
|
+
'Content-Type': 'application/json',
|
|
87
|
+
// Declares which response shape this provider understands. A future
|
|
88
|
+
// streaming provider asks for text/event-stream instead, so an
|
|
89
|
+
// endpoint can offer both and this one keeps working unchanged.
|
|
90
|
+
Accept: 'application/json',
|
|
91
|
+
...headers,
|
|
92
|
+
},
|
|
93
|
+
credentials: 'same-origin',
|
|
94
|
+
// Without this the stop control, Escape and edit-and-resend are all
|
|
95
|
+
// inert: they abort the turn through this signal and nothing else.
|
|
96
|
+
signal,
|
|
97
|
+
body: JSON.stringify({ messages, tools: wireTools(tools), maxTokens, cache }),
|
|
98
|
+
});
|
|
99
|
+
if (!res.ok) {
|
|
100
|
+
throw new Error(`Agent endpoint ${endpoint} returned ${res.status} ${res.statusText}`);
|
|
101
|
+
}
|
|
102
|
+
const body = (await res.json());
|
|
103
|
+
const completion = {
|
|
104
|
+
// Rendered verbatim, so an endpoint that strips its model's protocol
|
|
105
|
+
// markers is the only thing standing between them and the visitor.
|
|
106
|
+
text: typeof body.text === 'string' ? body.text : '',
|
|
107
|
+
};
|
|
108
|
+
const call = oneCall(body, name);
|
|
109
|
+
if (call)
|
|
110
|
+
completion.call = call;
|
|
111
|
+
if (body.usage) {
|
|
112
|
+
completion.usage = {
|
|
113
|
+
promptTokens: body.usage.promptTokens ?? 0,
|
|
114
|
+
outputTokens: body.usage.outputTokens ?? 0,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
return completion;
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
//# 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.
|
|
3
|
+
"version": "0.2.3",
|
|
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
|
-
".": {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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": [
|
|
15
|
-
|
|
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": [
|
|
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": {
|
|
26
|
-
|
|
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",
|