@inbrowser/model 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/AGENTS.md +44 -18
  2. package/README.md +128 -20
  3. package/dist/contract.d.ts +104 -0
  4. package/dist/contract.d.ts.map +1 -0
  5. package/dist/contract.js +13 -0
  6. package/dist/contract.js.map +1 -0
  7. package/dist/engine-client.d.ts +44 -0
  8. package/dist/engine-client.d.ts.map +1 -0
  9. package/dist/engine-client.js +136 -0
  10. package/dist/engine-client.js.map +1 -0
  11. package/dist/engine.d.ts.map +1 -1
  12. package/dist/engine.js +20 -10
  13. package/dist/engine.js.map +1 -1
  14. package/dist/index.d.ts +23 -8
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +44 -8
  17. package/dist/index.js.map +1 -1
  18. package/dist/presets.d.ts +10 -0
  19. package/dist/presets.d.ts.map +1 -1
  20. package/dist/presets.js +21 -0
  21. package/dist/presets.js.map +1 -1
  22. package/dist/providers/anthropic.d.ts +45 -0
  23. package/dist/providers/anthropic.d.ts.map +1 -0
  24. package/dist/providers/anthropic.js +217 -0
  25. package/dist/providers/anthropic.js.map +1 -0
  26. package/dist/providers/claude-cli.d.ts +135 -0
  27. package/dist/providers/claude-cli.d.ts.map +1 -0
  28. package/dist/providers/claude-cli.js +270 -0
  29. package/dist/providers/claude-cli.js.map +1 -0
  30. package/dist/providers/claude-code.d.ts +188 -0
  31. package/dist/providers/claude-code.d.ts.map +1 -0
  32. package/dist/providers/claude-code.js +182 -0
  33. package/dist/providers/claude-code.js.map +1 -0
  34. package/dist/providers/gemini.d.ts +32 -0
  35. package/dist/providers/gemini.d.ts.map +1 -0
  36. package/dist/providers/gemini.js +441 -0
  37. package/dist/providers/gemini.js.map +1 -0
  38. package/dist/providers/llama-server.d.ts +15 -0
  39. package/dist/providers/llama-server.d.ts.map +1 -0
  40. package/dist/providers/llama-server.js +51 -0
  41. package/dist/providers/llama-server.js.map +1 -0
  42. package/dist/providers/oai-compat.d.ts +100 -0
  43. package/dist/providers/oai-compat.d.ts.map +1 -0
  44. package/dist/providers/oai-compat.js +206 -0
  45. package/dist/providers/oai-compat.js.map +1 -0
  46. package/dist/providers/ollama.d.ts +15 -0
  47. package/dist/providers/ollama.d.ts.map +1 -0
  48. package/dist/providers/ollama.js +51 -0
  49. package/dist/providers/ollama.js.map +1 -0
  50. package/dist/providers/openrouter-oauth.d.ts +67 -0
  51. package/dist/providers/openrouter-oauth.d.ts.map +1 -0
  52. package/dist/providers/openrouter-oauth.js +84 -0
  53. package/dist/providers/openrouter-oauth.js.map +1 -0
  54. package/dist/providers/openrouter.d.ts +13 -0
  55. package/dist/providers/openrouter.d.ts.map +1 -0
  56. package/dist/providers/openrouter.js +218 -0
  57. package/dist/providers/openrouter.js.map +1 -0
  58. package/dist/providers/types.d.ts +50 -0
  59. package/dist/providers/types.d.ts.map +1 -0
  60. package/dist/providers/types.js +2 -0
  61. package/dist/providers/types.js.map +1 -0
  62. package/dist/sse.d.ts +20 -0
  63. package/dist/sse.d.ts.map +1 -0
  64. package/dist/sse.js +47 -0
  65. package/dist/sse.js.map +1 -0
  66. package/dist/types.d.ts +2 -13
  67. package/dist/types.d.ts.map +1 -1
  68. package/dist/with-retry.d.ts +27 -0
  69. package/dist/with-retry.d.ts.map +1 -0
  70. package/dist/with-retry.js +55 -0
  71. package/dist/with-retry.js.map +1 -0
  72. package/dist/worker.d.ts +1 -1
  73. package/dist/worker.js +1 -1
  74. package/package.json +9 -29
  75. package/dist/adapters/agent.d.ts +0 -19
  76. package/dist/adapters/agent.d.ts.map +0 -1
  77. package/dist/adapters/agent.js +0 -96
  78. package/dist/adapters/agent.js.map +0 -1
  79. package/dist/adapters/relay.d.ts +0 -17
  80. package/dist/adapters/relay.d.ts.map +0 -1
  81. package/dist/adapters/relay.js +0 -90
  82. package/dist/adapters/relay.js.map +0 -1
@@ -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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"}
package/dist/index.d.ts CHANGED
@@ -1,21 +1,36 @@
1
1
  /**
2
2
  * `@inbrowser/model` — on-device LLM engine.
3
3
  *
4
- * Root export carries the engine factory + types + `definePreset`.
5
- * Subpaths:
6
- * - `@inbrowser/model/presets` bundled Gemma 4 presets.
7
- * - `@inbrowser/model/relay` — adapter to `@inbrowser/relay`.
8
- * - `@inbrowser/model/agent` adapter to `@inbrowser/agent`.
9
- * - `@inbrowser/model/worker` — host/connect helpers.
4
+ * Everything ships from this single root export: the engine factory +
5
+ * types + `definePreset`, the bundled presets, the shared `ModelClient`
6
+ * contract, the cloud provider factories, the engine-client adapter,
7
+ * `withRetry`, and the in-worker host/connect helpers. There are no
8
+ * subpaths the on-device transformers runtime is lazy-loaded, so
9
+ * importing the root never statically pulls ONNX/WASM into a
10
+ * cloud-only consumer.
10
11
  *
11
12
  * Spread a preset into `createEngine` to get a running engine:
12
13
  *
13
- * import { createEngine } from '@inbrowser/model';
14
- * import { gemma4_E2B } from '@inbrowser/model/presets';
14
+ * import { createEngine, gemma4_E2B } from '@inbrowser/model';
15
15
  * const engine = createEngine(gemma4_E2B);
16
16
  */
17
17
  export { createEngine, definePreset } from './engine.js';
18
+ export { createEngineModelClient } from './engine-client.js';
18
19
  export { parseToolCalls, type ToolCallParseOpts } from './parse-tool-calls.js';
19
20
  export { splitThinking, type ThinkingSplitOpts } from './think.js';
21
+ export { connectWorkerEngine, hostEngineInWorker, type ConnectWorkerEngineOpts, type HostEngineInWorkerOpts, type WorkerHostHandle, } from './worker.js';
22
+ export { geminiModelClient, buildGeminiRequest, geminiEventsFromResponse, sanitizeGeminiSchema, type GeminiConfig, } from './providers/gemini.js';
23
+ export { openrouterModelClient, toOaiTools as toOpenRouterTools, type OpenRouterConfig, } from './providers/openrouter.js';
24
+ export { beginOpenRouterOAuth, completeOpenRouterOAuth, type BeginOpenRouterOAuthOpts, type CompleteOpenRouterOAuthOpts, type OpenRouterOAuthResult, type OpenRouterOAuthStart, } from './providers/openrouter-oauth.js';
25
+ export { anthropicModelClient, toAnthropicTools, type AnthropicConfig, } from './providers/anthropic.js';
26
+ export { openaiCompatModelClient, toOaiTools, type OpenAiCompatConfig, } from './providers/oai-compat.js';
27
+ export { ollamaModelClient, toOaiTools as toOllamaTools, type OllamaConfig, } from './providers/ollama.js';
28
+ export { llamaServerModelClient, type LlamaServerConfig } from './providers/llama-server.js';
29
+ export { claudeCliModelClient, renderPrompt, type ClaudeCliConfig, type ClaudeCliOptions, } from './providers/claude-cli.js';
30
+ export { claudeCodeModelClient, type ClaudeCodeConfig } from './providers/claude-code.js';
31
+ export { withRetry, type WithRetryOpts } from './with-retry.js';
32
+ export type { CloudProviderConfig, ModelClientFactory } from './providers/types.js';
33
+ export { deepseek_r1_qwen_1_5b, gemma4_E2B, gemma4_E4B, qwen2_5_0_5b, qwen2_5_coder_1_5b, qwen3_1_7b, smollm2_360m, } from './presets.js';
20
34
  export type { Backend, CreateEngineOpts, Dtype, Engine, EngineCapabilities, EngineEvent, EngineEventMap, EngineHooks, EngineMessage, EngineState, GenerateOpts, LoadProgress, MediaPart, ModelPreset, ModelRef, ToolSpec, } from './types.js';
35
+ export type { ModelClient, ModelEvent, ModelMessage, ModelRequest, ModelUsage, ReasoningEffort, } from './contract.js';
21
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnE,YAAY,EACV,OAAO,EACP,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,GACT,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGnE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AAKrB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qBAAqB,EACrB,UAAU,IAAI,iBAAiB,EAC/B,KAAK,gBAAgB,GACtB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EACL,uBAAuB,EACvB,UAAU,EACV,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,iBAAiB,EACjB,UAAU,IAAI,aAAa,EAC3B,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAG7F,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG1F,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAIpF,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,OAAO,EACP,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,GACT,MAAM,YAAY,CAAC;AAIpB,YAAY,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,eAAe,GAChB,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,20 +1,56 @@
1
1
  /**
2
2
  * `@inbrowser/model` — on-device LLM engine.
3
3
  *
4
- * Root export carries the engine factory + types + `definePreset`.
5
- * Subpaths:
6
- * - `@inbrowser/model/presets` bundled Gemma 4 presets.
7
- * - `@inbrowser/model/relay` — adapter to `@inbrowser/relay`.
8
- * - `@inbrowser/model/agent` adapter to `@inbrowser/agent`.
9
- * - `@inbrowser/model/worker` — host/connect helpers.
4
+ * Everything ships from this single root export: the engine factory +
5
+ * types + `definePreset`, the bundled presets, the shared `ModelClient`
6
+ * contract, the cloud provider factories, the engine-client adapter,
7
+ * `withRetry`, and the in-worker host/connect helpers. There are no
8
+ * subpaths the on-device transformers runtime is lazy-loaded, so
9
+ * importing the root never statically pulls ONNX/WASM into a
10
+ * cloud-only consumer.
10
11
  *
11
12
  * Spread a preset into `createEngine` to get a running engine:
12
13
  *
13
- * import { createEngine } from '@inbrowser/model';
14
- * import { gemma4_E2B } from '@inbrowser/model/presets';
14
+ * import { createEngine, gemma4_E2B } from '@inbrowser/model';
15
15
  * const engine = createEngine(gemma4_E2B);
16
16
  */
17
17
  export { createEngine, definePreset } from './engine.js';
18
+ // The on-device engine as a `ModelClient` (wraps `EngineEvent` → `ModelEvent`).
19
+ // Runtime, not type-only.
20
+ export { createEngineModelClient } from './engine-client.js';
18
21
  export { parseToolCalls } from './parse-tool-calls.js';
19
22
  export { splitThinking } from './think.js';
23
+ // In-worker transport: host an `Engine` inside a Web Worker and connect a
24
+ // matching `Engine` stub on the main thread.
25
+ export { connectWorkerEngine, hostEngineInWorker, } from './worker.js';
26
+ // Cloud provider factories. Each returns a `ModelClient`; construction
27
+ // settings (apiKey / model / baseUrl) come in the factory config, per-call
28
+ // settings (messages / tools / sampling) come in the `ModelRequest`.
29
+ export { geminiModelClient, buildGeminiRequest, geminiEventsFromResponse, sanitizeGeminiSchema, } from './providers/gemini.js';
30
+ export { openrouterModelClient, toOaiTools as toOpenRouterTools, } from './providers/openrouter.js';
31
+ // OpenRouter OAuth (PKCE): a browser "Connect OpenRouter" flow that mints a
32
+ // user-controlled, revocable key for `openrouterModelClient` with no backend.
33
+ export { beginOpenRouterOAuth, completeOpenRouterOAuth, } from './providers/openrouter-oauth.js';
34
+ export { anthropicModelClient, toAnthropicTools, } from './providers/anthropic.js';
35
+ // The generic OpenAI-compatible factory + its shared tool encoder. Point
36
+ // it at any OAI server (vLLM, LM Studio, LocalAI, …); the named local
37
+ // presets below are thin wrappers over it.
38
+ export { openaiCompatModelClient, toOaiTools, } from './providers/oai-compat.js';
39
+ // ollama re-exports the shared `toOaiTools`; alias the named-client export
40
+ // to keep the historical `toOllamaTools` root name.
41
+ export { ollamaModelClient, toOaiTools as toOllamaTools, } from './providers/ollama.js';
42
+ // llama.cpp's llama-server — same OAI core, default :8080, optional Bearer.
43
+ export { llamaServerModelClient } from './providers/llama-server.js';
44
+ // claude-cli is Node-only (spawns a subprocess) but SSR-safe to import:
45
+ // nothing runs until the client's `chat` is invoked.
46
+ export { claudeCliModelClient, renderPrompt, } from './providers/claude-cli.js';
47
+ // claude-code uses the Claude Code Agent SDK programmatically. The SDK is
48
+ // an OPTIONAL peer dep — consumers who don't use this provider don't need
49
+ // it. Importing this file is SSR-safe; the SDK is lazy-loaded inside chat.
50
+ export { claudeCodeModelClient } from './providers/claude-code.js';
51
+ // The reusable transient-retry decorator (was the site's relay bridge).
52
+ export { withRetry } from './with-retry.js';
53
+ // Bundled presets — pure data (~6 KB total) with no peer-dep activation,
54
+ // no Node-only APIs, no bundle-weight concern.
55
+ export { deepseek_r1_qwen_1_5b, gemma4_E2B, gemma4_E4B, qwen2_5_0_5b, qwen2_5_coder_1_5b, qwen3_1_7b, smollm2_360m, } from './presets.js';
20
56
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,cAAc,EAA0B,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAA0B,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,gFAAgF;AAChF,0BAA0B;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAA0B,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAA0B,MAAM,YAAY,CAAC;AACnE,0EAA0E;AAC1E,6CAA6C;AAC7C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GAInB,MAAM,aAAa,CAAC;AAErB,uEAAuE;AACvE,2EAA2E;AAC3E,qEAAqE;AACrE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,GAErB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qBAAqB,EACrB,UAAU,IAAI,iBAAiB,GAEhC,MAAM,2BAA2B,CAAC;AACnC,4EAA4E;AAC5E,8EAA8E;AAC9E,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GAKxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,0BAA0B,CAAC;AAClC,yEAAyE;AACzE,sEAAsE;AACtE,2CAA2C;AAC3C,OAAO,EACL,uBAAuB,EACvB,UAAU,GAEX,MAAM,2BAA2B,CAAC;AACnC,2EAA2E;AAC3E,oDAAoD;AACpD,OAAO,EACL,iBAAiB,EACjB,UAAU,IAAI,aAAa,GAE5B,MAAM,uBAAuB,CAAC;AAC/B,4EAA4E;AAC5E,OAAO,EAAE,sBAAsB,EAA0B,MAAM,6BAA6B,CAAC;AAC7F,wEAAwE;AACxE,qDAAqD;AACrD,OAAO,EACL,oBAAoB,EACpB,YAAY,GAGb,MAAM,2BAA2B,CAAC;AACnC,0EAA0E;AAC1E,0EAA0E;AAC1E,2EAA2E;AAC3E,OAAO,EAAE,qBAAqB,EAAyB,MAAM,4BAA4B,CAAC;AAE1F,wEAAwE;AACxE,OAAO,EAAE,SAAS,EAAsB,MAAM,iBAAiB,CAAC;AAKhE,yEAAyE;AACzE,+CAA+C;AAC/C,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,YAAY,GACb,MAAM,cAAc,CAAC"}
package/dist/presets.d.ts CHANGED
@@ -51,6 +51,16 @@ export declare const smollm2_360m: ModelPreset;
51
51
  * Reference: https://huggingface.co/onnx-community/Qwen2.5-Coder-1.5B-Instruct
52
52
  */
53
53
  export declare const qwen2_5_coder_1_5b: ModelPreset;
54
+ /**
55
+ * Qwen 2.5 0.5B Instruct. ~0.5 GB on-device download at q4f16 — the
56
+ * smallest TOOL-NATIVE model in the registry, sized to sit near the WASM
57
+ * ceiling so it can run on machines without WebGPU. Same `Qwen2ForCausalLM`
58
+ * code path as the other Qwen 2.5 presets (no engine changes). Unlike
59
+ * SmolLM2 360M it emits `<tool_call>` envelopes and is a markedly stronger
60
+ * generator, so it can both drive the tool loop and ground answers from
61
+ * retrieved context where the 360M model degenerates.
62
+ */
63
+ export declare const qwen2_5_0_5b: ModelPreset;
54
64
  /**
55
65
  * Qwen 3 1.7B. ~1.36 GB on-device download at q4f16.
56
66
  *
@@ -1 +1 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA8B9C;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,WAKvB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,WAKvB,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,WAWzB,CAAC;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAe/B,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,UAAU,EAAE,WAevB,CAAC;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAoBlC,CAAC"}
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA8B9C;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,WAKvB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,WAKvB,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,WAWzB,CAAC;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAe/B,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,WAWzB,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,UAAU,EAAE,WAevB,CAAC;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAoBlC,CAAC"}
package/dist/presets.js CHANGED
@@ -114,6 +114,27 @@ export const qwen2_5_coder_1_5b = definePreset({
114
114
  supportsThinking: false,
115
115
  },
116
116
  });
117
+ /**
118
+ * Qwen 2.5 0.5B Instruct. ~0.5 GB on-device download at q4f16 — the
119
+ * smallest TOOL-NATIVE model in the registry, sized to sit near the WASM
120
+ * ceiling so it can run on machines without WebGPU. Same `Qwen2ForCausalLM`
121
+ * code path as the other Qwen 2.5 presets (no engine changes). Unlike
122
+ * SmolLM2 360M it emits `<tool_call>` envelopes and is a markedly stronger
123
+ * generator, so it can both drive the tool loop and ground answers from
124
+ * retrieved context where the 360M model degenerates.
125
+ */
126
+ export const qwen2_5_0_5b = definePreset({
127
+ model: { modelId: 'onnx-community/Qwen2.5-0.5B-Instruct' },
128
+ dtype: 'q4f16',
129
+ backend: 'auto',
130
+ capabilities: {
131
+ supportsTools: true,
132
+ supportsVision: false,
133
+ supportsAudio: false,
134
+ contextWindow: 32_768,
135
+ supportsThinking: false,
136
+ },
137
+ });
117
138
  /**
118
139
  * Qwen 3 1.7B. ~1.36 GB on-device download at q4f16.
119
140
  *
@@ -1 +1 @@
1
- {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,YAAY,GAAG;IACnB,aAAa,EAAE,KAAK,EAAE,iEAAiE;IACvF,cAAc,EAAE,KAAK;IACrB,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,OAAO;IACtB,gEAAgE;IAChE,+DAA+D;IAC/D,wDAAwD;IACxD,EAAE;IACF,sDAAsD;IACtD,6DAA6D;IAC7D,6CAA6C;IAC7C,gEAAgE;IAChE,iEAAiE;IACjE,kDAAkD;IAClD,EAAE;IACF,mEAAmE;IACnE,6DAA6D;IAC7D,wCAAwC;IACxC,EAAE;IACF,uDAAuD;IACvD,wDAAwD;IACxD,sEAAsE;IACtE,mEAAmE;IACnE,8CAA8C;IAC9C,gBAAgB,EAAE,IAAI;CACd,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAgB,YAAY,CAAC;IAClD,KAAK,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE;IACxD,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,MAAM;IACf,YAAY,EAAE,YAAY;CAC3B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAgB,YAAY,CAAC;IAClD,KAAK,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE;IACxD,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,MAAM;IACf,YAAY,EAAE,YAAY;CAC3B,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAgB,YAAY,CAAC;IACpD,KAAK,EAAE,EAAE,OAAO,EAAE,qCAAqC,EAAE;IACzD,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,MAAM;IACf,YAAY,EAAE;QACZ,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,KAAK;QACpB,gBAAgB,EAAE,KAAK;KACxB;CACF,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAgB,YAAY,CAAC;IAC1D,KAAK,EAAE,EAAE,OAAO,EAAE,4CAA4C,EAAE;IAChE,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,MAAM;IACf,YAAY,EAAE;QACZ,gEAAgE;QAChE,mEAAmE;QACnE,kEAAkE;QAClE,sCAAsC;QACtC,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,MAAM;QACrB,gBAAgB,EAAE,KAAK;KACxB;CACF,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAgB,YAAY,CAAC;IAClD,KAAK,EAAE,EAAE,OAAO,EAAE,gCAAgC,EAAE;IACpD,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,MAAM;IACf,YAAY,EAAE;QACZ,gEAAgE;QAChE,mEAAmE;QACnE,6DAA6D;QAC7D,+CAA+C;QAC/C,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,MAAM;QACrB,gBAAgB,EAAE,KAAK;KACxB;CACF,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAgB,YAAY,CAAC;IAC7D,KAAK,EAAE,EAAE,OAAO,EAAE,mDAAmD,EAAE;IACvE,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,MAAM;IACf,YAAY,EAAE;QACZ,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,OAAO;QACtB,gBAAgB,EAAE,IAAI;QACtB,mEAAmE;QACnE,iEAAiE;QACjE,yFAAyF;QACzF,4DAA4D;QAC5D,0BAA0B;QAC1B,YAAY,EAAE;YACZ,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,UAAU;SACrB;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { ModelClient, ToolSpec } from '../contract.js';
2
+ import type { CloudProviderConfig } from './types.js';
3
+ /** Construction config for the Anthropic provider. */
4
+ export interface AnthropicConfig extends CloudProviderConfig {
5
+ }
6
+ interface AnthropicMessage {
7
+ role: 'user' | 'assistant';
8
+ content: string | Array<{
9
+ type: 'text';
10
+ text: string;
11
+ } | {
12
+ type: 'tool_use';
13
+ id: string;
14
+ name: string;
15
+ input: unknown;
16
+ } | {
17
+ type: 'tool_result';
18
+ tool_use_id: string;
19
+ content: string;
20
+ }>;
21
+ }
22
+ interface AnthropicBody {
23
+ model: string;
24
+ messages: AnthropicMessage[];
25
+ stream: true;
26
+ max_tokens: number;
27
+ system?: string;
28
+ temperature?: number;
29
+ top_p?: number;
30
+ top_k?: number;
31
+ tools?: Array<{
32
+ name: string;
33
+ description?: string;
34
+ input_schema: unknown;
35
+ }>;
36
+ }
37
+ export declare function toAnthropicTools(tools: ToolSpec[]): AnthropicBody['tools'];
38
+ /**
39
+ * Build an Anthropic `ModelClient`. Construction values (apiKey,
40
+ * model) come in the config; per-call values (messages, tools,
41
+ * sampling) come in the `ModelRequest`.
42
+ */
43
+ export declare function anthropicModelClient(config: AnthropicConfig): ModelClient;
44
+ export {};
45
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA0C,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEpG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAiCtD,sDAAsD;AACtD,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;CAAG;AAE/D,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EACH,MAAM,GACN,KAAK,CACD;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAC9B;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAC9D;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAChE,CAAC;CACP;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,MAAM,EAAE,IAAI,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC,CAAC;CACJ;AAkDD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAO1E;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,CAmJzE"}
@@ -0,0 +1,217 @@
1
+ import { readSseDataLines } from '../sse.js';
2
+ /**
3
+ * Anthropic provider — talks to Anthropic's native Messages API
4
+ * (`POST /v1/messages` with `stream: true`).
5
+ *
6
+ * This provider exists as much for documentation as for use: it
7
+ * proves the `ModelClient` contract is sufficient for a third party.
8
+ * Adding Anthropic native required ZERO relay changes — the file
9
+ * imports nothing private from `@inbrowser/relay`, just the shared
10
+ * `ModelClient` contract + the shared `readSseDataLines` helper.
11
+ *
12
+ * Endpoint: POST https://api.anthropic.com/v1/messages
13
+ * - header `x-api-key` carries the BYOK key
14
+ * - header `anthropic-version: 2023-06-01`
15
+ * - body `{ model, messages, stream: true, max_tokens, system? }`
16
+ *
17
+ * The wire shape Anthropic streams is documented at
18
+ * https://docs.anthropic.com/en/api/messages-streaming — this
19
+ * provider handles the subset used by simple text + tool-use
20
+ * generations.
21
+ *
22
+ * Tool use is wired but minimally tested. Production users with
23
+ * complex tool flows may want to extend this — the file is
24
+ * intentionally compact so it's easy to fork.
25
+ */
26
+ const ENDPOINT = 'https://api.anthropic.com/v1/messages';
27
+ const ANTHROPIC_VERSION = '2023-06-01';
28
+ /** Anthropic requires `max_tokens` on every request. 8192 is the
29
+ * current per-request max for most Claude models — well above any
30
+ * realistic completion length. */
31
+ const MAX_TOKENS = 8192;
32
+ function toAnthropic(messages) {
33
+ let system = '';
34
+ const msgs = [];
35
+ for (const m of messages) {
36
+ if (m.role === 'system') {
37
+ system += (system ? '\n\n' : '') + (m.text ?? '');
38
+ continue;
39
+ }
40
+ if (m.role === 'user') {
41
+ msgs.push({ role: 'user', content: m.text ?? '' });
42
+ continue;
43
+ }
44
+ if (m.role === 'assistant') {
45
+ const blocks = [];
46
+ if (m.text)
47
+ blocks.push({ type: 'text', text: m.text });
48
+ for (const c of m.toolCalls ?? []) {
49
+ blocks.push({
50
+ type: 'tool_use',
51
+ id: c.id,
52
+ name: c.name,
53
+ input: c.args ?? {},
54
+ });
55
+ }
56
+ msgs.push({
57
+ role: 'assistant',
58
+ content: blocks.length > 0 ? blocks : '',
59
+ });
60
+ continue;
61
+ }
62
+ if (m.role === 'tool') {
63
+ msgs.push({
64
+ role: 'user',
65
+ content: [
66
+ {
67
+ type: 'tool_result',
68
+ tool_use_id: m.toolCallId ?? '',
69
+ content: m.resultJson ?? '',
70
+ },
71
+ ],
72
+ });
73
+ }
74
+ }
75
+ return { system, msgs };
76
+ }
77
+ export function toAnthropicTools(tools) {
78
+ if (tools.length === 0)
79
+ return undefined;
80
+ return tools.map((t) => ({
81
+ name: t.function.name,
82
+ description: t.function.description,
83
+ input_schema: t.function.parameters,
84
+ }));
85
+ }
86
+ /**
87
+ * Build an Anthropic `ModelClient`. Construction values (apiKey,
88
+ * model) come in the config; per-call values (messages, tools,
89
+ * sampling) come in the `ModelRequest`.
90
+ */
91
+ export function anthropicModelClient(config) {
92
+ return {
93
+ id: `anthropic:${config.model}`,
94
+ supportsTools: true,
95
+ async *chat(req, signal) {
96
+ const { system, msgs } = toAnthropic(req.messages);
97
+ // Per-request temperature wins; otherwise fall back to the
98
+ // construction-time default. Relay sets neither.
99
+ const temperature = req.temperature ?? config.temperature;
100
+ const body = {
101
+ model: config.model,
102
+ messages: msgs,
103
+ stream: true,
104
+ max_tokens: MAX_TOKENS,
105
+ ...(system ? { system } : {}),
106
+ ...(typeof temperature === 'number' ? { temperature } : {}),
107
+ ...(typeof req.topP === 'number' ? { top_p: req.topP } : {}),
108
+ ...(typeof req.topK === 'number' ? { top_k: req.topK } : {}),
109
+ ...(req.tools.length > 0 ? { tools: toAnthropicTools(req.tools) } : {}),
110
+ };
111
+ let response;
112
+ try {
113
+ response = await fetch(ENDPOINT, {
114
+ method: 'POST',
115
+ headers: {
116
+ // Relay guarantees a resolved key before the provider runs
117
+ // (BYOK 400s if missing; server-managed injects). `?? ''`
118
+ // satisfies the string type for the now-optional field.
119
+ 'x-api-key': config.apiKey ?? '',
120
+ 'anthropic-version': ANTHROPIC_VERSION,
121
+ 'content-type': 'application/json',
122
+ },
123
+ body: JSON.stringify(body),
124
+ ...(signal ? { signal } : {}),
125
+ });
126
+ }
127
+ catch (e) {
128
+ if (signal?.aborted)
129
+ return;
130
+ yield { kind: 'error', message: e instanceof Error ? e.message : String(e) };
131
+ return;
132
+ }
133
+ if (!response.ok) {
134
+ const text = await response.text().catch(() => response.statusText);
135
+ yield {
136
+ kind: 'error',
137
+ message: `Anthropic ${response.status}: ${text.slice(0, 240)}`,
138
+ };
139
+ return;
140
+ }
141
+ let promptTokens = 0;
142
+ let outputTokens = 0;
143
+ const pending = new Map();
144
+ try {
145
+ for await (const payload of readSseDataLines(response.body)) {
146
+ if (signal?.aborted)
147
+ return;
148
+ let evt;
149
+ try {
150
+ evt = JSON.parse(payload);
151
+ }
152
+ catch {
153
+ continue;
154
+ }
155
+ if (evt.type === 'message_start' && evt.message?.usage) {
156
+ promptTokens = evt.message.usage.input_tokens ?? 0;
157
+ outputTokens = evt.message.usage.output_tokens ?? 0;
158
+ }
159
+ else if (evt.type === 'content_block_start' &&
160
+ evt.content_block?.type === 'tool_use' &&
161
+ typeof evt.index === 'number') {
162
+ pending.set(evt.index, {
163
+ id: evt.content_block.id ?? '',
164
+ name: evt.content_block.name ?? '',
165
+ inputBuf: '',
166
+ });
167
+ }
168
+ else if (evt.type === 'content_block_delta' && evt.delta) {
169
+ if (evt.delta.type === 'text_delta' && typeof evt.delta.text === 'string') {
170
+ yield { kind: 'text', text: evt.delta.text };
171
+ }
172
+ else if (evt.delta.type === 'input_json_delta' &&
173
+ typeof evt.delta.partial_json === 'string' &&
174
+ typeof evt.index === 'number') {
175
+ const p = pending.get(evt.index);
176
+ if (p)
177
+ p.inputBuf += evt.delta.partial_json;
178
+ }
179
+ }
180
+ else if (evt.type === 'message_delta' && evt.usage) {
181
+ outputTokens = evt.usage.output_tokens ?? outputTokens;
182
+ }
183
+ }
184
+ }
185
+ catch (e) {
186
+ if (signal?.aborted)
187
+ return;
188
+ yield { kind: 'error', message: e instanceof Error ? e.message : String(e) };
189
+ return;
190
+ }
191
+ // Flush any accumulated tool_use blocks.
192
+ for (const p of pending.values()) {
193
+ let parsed = {};
194
+ try {
195
+ parsed = p.inputBuf ? JSON.parse(p.inputBuf) : {};
196
+ }
197
+ catch {
198
+ parsed = { _raw: p.inputBuf };
199
+ }
200
+ yield {
201
+ kind: 'tool_call',
202
+ id: p.id || `anth_${Math.random().toString(36).slice(2, 10)}`,
203
+ name: p.name,
204
+ args: parsed,
205
+ };
206
+ }
207
+ yield {
208
+ kind: 'usage',
209
+ usage: {
210
+ promptTokens,
211
+ outputTokens,
212
+ },
213
+ };
214
+ },
215
+ };
216
+ }
217
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}