typebulb 0.49.3 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/SKILL.md +5 -4
- package/dist/ai/aiProvider.d.ts +5 -1
- package/dist/ai/aiProvider.d.ts.map +1 -1
- package/dist/ai/aiProvider.js.map +1 -1
- package/dist/ai/aiProviders.d.ts +4 -1
- package/dist/ai/aiProviders.d.ts.map +1 -1
- package/dist/ai/aiProviders.js +1 -2
- package/dist/ai/aiProviders.js.map +1 -1
- package/dist/ai/protocol.d.ts +5 -3
- package/dist/ai/protocol.d.ts.map +1 -1
- package/dist/ai/protocol.js +2 -2
- package/dist/ai/protocol.js.map +1 -1
- package/dist/ai/providers/anthropic.d.ts.map +1 -1
- package/dist/ai/providers/anthropic.js +8 -4
- package/dist/ai/providers/anthropic.js.map +1 -1
- package/dist/ai/providers/gemini.d.ts +3 -2
- package/dist/ai/providers/gemini.d.ts.map +1 -1
- package/dist/ai/providers/gemini.js +12 -4
- package/dist/ai/providers/gemini.js.map +1 -1
- package/dist/ai/providers/openAI.d.ts +2 -1
- package/dist/ai/providers/openAI.d.ts.map +1 -1
- package/dist/ai/providers/openAI.js +5 -1
- package/dist/ai/providers/openAI.js.map +1 -1
- package/dist/ai/providers/openRouter.d.ts +2 -1
- package/dist/ai/providers/openRouter.d.ts.map +1 -1
- package/dist/ai/providers/openRouter.js +16 -3
- package/dist/ai/providers/openRouter.js.map +1 -1
- package/dist/dts/tbTypings.js +3 -3
- package/dist/index.js +34 -34
- package/dist/servers.js +6 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -419,7 +419,7 @@ Or you can rely on the default provider and model if you set them in `.env`.
|
|
|
419
419
|
|
|
420
420
|
### Reasoning effort
|
|
421
421
|
|
|
422
|
-
`tb.ai()` accepts an optional `effort` parameter (0–
|
|
422
|
+
`tb.ai()` accepts an optional `effort` parameter (0–4) that hints at how much the model should reason. `low` (1) is the sensible default for most work; omit it for the model's own default.
|
|
423
423
|
|
|
424
424
|
| Level | Label | Effect |
|
|
425
425
|
|-------|-------|--------|
|
|
@@ -427,6 +427,7 @@ Or you can rely on the default provider and model if you set them in `.env`.
|
|
|
427
427
|
| 1 | Low | Light reasoning |
|
|
428
428
|
| 2 | Med | Moderate reasoning |
|
|
429
429
|
| 3 | High | Heavy reasoning |
|
|
430
|
+
| 4 | XHigh | The rung above high where the provider has one (OpenAI, Anthropic); clamps down to High where it doesn't, never errors. |
|
|
430
431
|
|
|
431
432
|
```typescript
|
|
432
433
|
const { text } = await tb.ai({
|
|
@@ -446,7 +447,7 @@ for await (const c of tb.ai.stream({ messages })) {
|
|
|
446
447
|
}
|
|
447
448
|
```
|
|
448
449
|
|
|
449
|
-
Breaking the loop stops the stream; same options as `tb.ai()`. **`kind: "reasoning"` chunks require `effort: 1-
|
|
450
|
+
Breaking the loop stops the stream; same options as `tb.ai()`. **`kind: "reasoning"` chunks require `effort: 1-4` and a thinking-capable model**.
|
|
450
451
|
|
|
451
452
|
### AI access
|
|
452
453
|
|
package/SKILL.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: typebulb
|
|
3
3
|
description: "Author and run Typebulb bulbs — single-file markdown apps (TypeScript/TSX) that run locally via `npx typebulb` (full power: filesystem, database, `server.ts`, `tb.ai`) or render live inline in your coding agent's session through Typebulb's agent mirror (sandboxed, client-only). A bulb can be a visual widget (chart, simulation, diagram, calculator, UI), a full-stack tool with a Node backend, or an AI app that calls models at runtime. Covers the bulb format, the `tb.*` API, trust, and the local run/inline workflow. Use when the user wants a bulb, a quick local tool (visual, backend-backed, or AI-powered), or something visual rendered inline in the conversation."
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.50.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
> Generated from typebulb v0.
|
|
7
|
+
> Generated from typebulb v0.50.0. `npx typebulb agent` prints the running version alongside the path to its packaged SKILL.md: if that version is newer than this one, replace this file with that one.
|
|
8
8
|
|
|
9
9
|
# typebulb
|
|
10
10
|
|
|
@@ -427,7 +427,7 @@ Or you can rely on the default provider and model if you set them in `.env`.
|
|
|
427
427
|
|
|
428
428
|
### Reasoning effort
|
|
429
429
|
|
|
430
|
-
`tb.ai()` accepts an optional `effort` parameter (0–
|
|
430
|
+
`tb.ai()` accepts an optional `effort` parameter (0–4) that hints at how much the model should reason. `low` (1) is the sensible default for most work; omit it for the model's own default.
|
|
431
431
|
|
|
432
432
|
| Level | Label | Effect |
|
|
433
433
|
|-------|-------|--------|
|
|
@@ -435,6 +435,7 @@ Or you can rely on the default provider and model if you set them in `.env`.
|
|
|
435
435
|
| 1 | Low | Light reasoning |
|
|
436
436
|
| 2 | Med | Moderate reasoning |
|
|
437
437
|
| 3 | High | Heavy reasoning |
|
|
438
|
+
| 4 | XHigh | The rung above high where the provider has one (OpenAI, Anthropic); clamps down to High where it doesn't, never errors. |
|
|
438
439
|
|
|
439
440
|
```typescript
|
|
440
441
|
const { text } = await tb.ai({
|
|
@@ -454,7 +455,7 @@ for await (const c of tb.ai.stream({ messages })) {
|
|
|
454
455
|
}
|
|
455
456
|
```
|
|
456
457
|
|
|
457
|
-
Breaking the loop stops the stream; same options as `tb.ai()`. **`kind: "reasoning"` chunks require `effort: 1-
|
|
458
|
+
Breaking the loop stops the stream; same options as `tb.ai()`. **`kind: "reasoning"` chunks require `effort: 1-4` and a thinking-capable model**.
|
|
458
459
|
|
|
459
460
|
### AI access
|
|
460
461
|
|
package/dist/ai/aiProvider.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { ChatMessageDto, UpstreamErrorDto, EffortLevel, ChatStreamPieceDto, ChatResponseDto, ProviderResponseDto, ProviderStreamEventDto, StreamErrorCode } from './protocol.js';
|
|
2
|
-
/** Options for building chat request payloads
|
|
2
|
+
/** Options for building chat request payloads. `maxOutputTokens` is a hard cap on the response
|
|
3
|
+
* (reasoning included, since it bills as output) — each provider writes it to its own field, the
|
|
4
|
+
* way `effort` is translated, because the field name is payload-shaped and only the provider
|
|
5
|
+
* knows the shape. */
|
|
3
6
|
export type ChatRequestOpts = {
|
|
4
7
|
effort?: EffortLevel;
|
|
5
8
|
webSearch?: boolean;
|
|
9
|
+
maxOutputTokens?: number;
|
|
6
10
|
} | undefined;
|
|
7
11
|
/**
|
|
8
12
|
* Error thrown by provider stream parsing when the provider or server reports an error.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiProvider.d.ts","sourceRoot":"","sources":["../../ai/src/aiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EAChB,MAAM,eAAe,CAAA;AAEtB
|
|
1
|
+
{"version":3,"file":"aiProvider.d.ts","sourceRoot":"","sources":["../../ai/src/aiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EAChB,MAAM,eAAe,CAAA;AAEtB;;;uBAGuB;AACvB,MAAM,MAAM,eAAe,GACzB;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAA;AAErF;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAG1B,IAAI,EAAE,eAAe;aACrB,SAAS,EAAE,OAAO;gBAFlC,OAAO,EAAE,MAAM,EACC,IAAI,GAAE,eAA2B,EACjC,SAAS,GAAE,OAAe;CAI7C;AAED;;;GAGG;AACH,8BAAsB,UAAU;IAC9B,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAChD,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IACxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAI9B;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;IAIjD,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAE9E,QAAQ,CAAC,YAAY,CACnB,QAAQ,EAAE,cAAc,EAAE,EAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,OAAO,GACd,OAAO;IAEV,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB;IAM/D,QAAQ,CAAC,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe;IAE9E;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB,GAAG,IAAI;IAKzE,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB,GAAG,IAAI;IAIpG,wDAAwD;IACxD,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,SAAS,SAAS,GAAG;QAC/E,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,oBAAoB,EAAE,cAAc,EAAE,CAAA;KACvC;IAQD;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB;IAsB7E;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAyBjD,OAAO,CAAC,mBAAmB;CAe5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiProvider.js","sourceRoot":"","sources":["../../ai/src/aiProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aiProvider.js","sourceRoot":"","sources":["../../ai/src/aiProvider.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YACE,OAAe,EACC,OAAwB,SAAS,EACjC,YAAqB,KAAK;QAE1C,KAAK,CAAC,OAAO,CAAC,CAAA;QAHE,SAAI,GAAJ,IAAI,CAA6B;QACjC,cAAS,GAAT,SAAS,CAAiB;IAG5C,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAgB,UAAU;IAK9B,oEAAoE;IAEpE;;OAEG;IACH,OAAO,CAAC,MAAc,EAAE,OAAgB;QACtC,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAWD,UAAU,CAAC,SAAiB,EAAE,MAAc;QAC1C,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IAMD;;;OAGG;IACH,gBAAgB,CAAC,IAA4B;QAC3C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;IAID,oEAAoE;IAEpE,wDAAwD;IAC9C,qBAAqB,CAAC,QAA0B,EAAE,SAAS,GAAG,MAAM;QAI5E,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACjF,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;YACpE,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;SAChE,CAAA;IACH,CAAC;IAED;;OAEG;IACO,cAAc,CAAC,SAAiB,EAAE,MAAc;QACxD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,QAAQ,MAAM,EAAE,EAAE,CAAA;QACtC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACpC,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrD,OAAO;oBACL,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,QAAQ,MAAM,EAAE;oBACjD,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;iBACxB,CAAA;YACH,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;YACpC,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;QAC/B,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACO,kBAAkB,CAAC,IAAa;QACxC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YAAE,OAAM;QACrD,MAAM,GAAG,GAAG,IAA+B,CAAA;QAC3C,+DAA+D;QAC/D,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAI,GAAG,CAAC,IAAwB,IAAI,SAAS,CAAA;YACvD,MAAM,IAAI,mBAAmB,CAAC,GAAG,CAAC,OAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC7E,CAAC;QACD,qFAAqF;QACrF,2FAA2F;QAC3F,+EAA+E;QAC/E,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,GAAG,CAAC,KAAgC,CAAA;YAChD,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC9F,MAAM,WAAW,GAAG,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9D,MAAM,UAAU,GAAG,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpE,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpD,MAAM,IAAI,mBAAmB,CAC3B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EACnC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAC7E,WAAW,IAAI,UAAU,CAC1B,CAAA;QACH,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,KAAc;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAChC,OAAO,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,CAAA;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,GAAG,GAAG,KAAgC,CAAA;YAC5C,OAAQ,GAAG,CAAC,OAAkB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACzD,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,YAAY,oBAAoB,CAAA;IACjD,CAAC;CACF"}
|
package/dist/ai/aiProviders.d.ts
CHANGED
|
@@ -16,9 +16,12 @@ export interface SendAIRequestOpts {
|
|
|
16
16
|
stream: boolean;
|
|
17
17
|
effort?: EffortLevel;
|
|
18
18
|
webSearch?: boolean;
|
|
19
|
+
/** Hard cap on response tokens (reasoning included). Replaces the old `modifyPayload` hook, which
|
|
20
|
+
* wrote a chat-completions `max_tokens` and so silently failed to bind on the OpenAI Responses
|
|
21
|
+
* API and Gemini — the two whose payloads name it differently. */
|
|
22
|
+
maxOutputTokens?: number;
|
|
19
23
|
origin?: string;
|
|
20
24
|
signal?: AbortSignal;
|
|
21
|
-
modifyPayload?: (payload: Record<string, unknown>) => void;
|
|
22
25
|
}
|
|
23
26
|
/**
|
|
24
27
|
* Join an operation path onto a base URL, **preserving the base's path prefix**.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiProviders.d.ts","sourceRoot":"","sources":["../../ai/src/aiProviders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACtG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAmB5C,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,UAAU,CAMlE;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,
|
|
1
|
+
{"version":3,"file":"aiProviders.d.ts","sourceRoot":"","sources":["../../ai/src/aiProviders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACtG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAmB5C,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,UAAU,CAMlE;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;uEAEmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,uCAAuC;AACvC,wBAAsB,aAAa,CACjC,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,QAAQ,CAAC,CAmBnB;AAED;;;uCAGuC;AACvC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,uEAAuE;AACvE,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAYvC"}
|
package/dist/ai/aiProviders.js
CHANGED
|
@@ -41,8 +41,7 @@ export async function sendAIRequest(provider, opts) {
|
|
|
41
41
|
const path = spec.getPath(provider.model, opts.stream);
|
|
42
42
|
const url = joinUrl(provider.baseUrl, path);
|
|
43
43
|
const headers = spec.buildHeaders(provider.apiKey, opts.origin);
|
|
44
|
-
const payload = spec.buildPayload(opts.messages, provider.model, { effort: opts.effort, webSearch: opts.webSearch }, opts.stream);
|
|
45
|
-
opts.modifyPayload?.(payload);
|
|
44
|
+
const payload = spec.buildPayload(opts.messages, provider.model, { effort: opts.effort, webSearch: opts.webSearch, maxOutputTokens: opts.maxOutputTokens }, opts.stream);
|
|
46
45
|
return fetch(url, {
|
|
47
46
|
method: 'POST',
|
|
48
47
|
headers,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiProviders.js","sourceRoot":"","sources":["../../ai/src/aiProviders.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,0FAA0F;AAC1F,yFAAyF;AACzF,MAAM,YAAY,GAAG,IAAI,cAAc,EAAE,CAAA;AACzC,MAAM,SAAS,GAAG,IAAI,GAAG,CAA+B;IACtD,CAAC,QAAQ,EAAE,IAAI,cAAc,EAAE,CAAC;IAChC,CAAC,YAAY,EAAE,IAAI,kBAAkB,EAAE,CAAC;IACxC,CAAC,WAAW,EAAE,IAAI,iBAAiB,EAAE,CAAC;IACtC,CAAC,QAAQ,EAAE,IAAI,cAAc,EAAE,CAAC;IAChC,CAAC,QAAQ,EAAE,YAAY,CAAC;IACxB,CAAC,eAAe,EAAE,YAAY,CAAC;CAChC,CAAC,CAAA;AAEF,4DAA4D;AAC5D,MAAM,UAAU,WAAW,CAAC,QAA0B;IACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"aiProviders.js","sourceRoot":"","sources":["../../ai/src/aiProviders.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/protocol.d.ts
CHANGED
|
@@ -46,13 +46,15 @@ export interface StreamErrorDto extends Required<StreamErrorPayload> {
|
|
|
46
46
|
* runtime. `ollama` is the zero-config preset; `openai-compat` is the generic form. See
|
|
47
47
|
* runtime-specs/TB-Custom-Providers.md. */
|
|
48
48
|
export type ProviderProtocol = 'openai' | 'anthropic' | 'openrouter' | 'gemini' | 'ollama' | 'openai-compat';
|
|
49
|
-
/** Reasoning effort hint: 0 (minimal) –
|
|
49
|
+
/** Reasoning effort hint: 0 (minimal) – 4 (xhigh). 0 minimizes reasoning, mapped to each provider's
|
|
50
50
|
* least rung — OpenAI/OpenRouter `none` (`minimal` is model-gated, so `none` is the robust floor),
|
|
51
51
|
* Gemini `thinkingBudget: 0`, Anthropic no-thinking on Opus (or `low` where thinking can't be
|
|
52
|
-
* disabled). Higher levels are `low`/`medium`/`high
|
|
52
|
+
* disabled). Higher levels are `low`/`medium`/`high`, then 4 = the rung above high where the vendor
|
|
53
|
+
* has one (OpenAI/OpenRouter `xhigh`, Anthropic `max`) and `high` where it doesn't (Gemini) — a
|
|
54
|
+
* missing rung clamps, never errors. Omitting is the model's own *default*, not
|
|
53
55
|
* "off" — a native-default reasoner (GPT-5.6: medium) then thinks and bills invisibly. 0 floors to
|
|
54
56
|
* the lowest available thinking only on always-thinking models. */
|
|
55
|
-
export type EffortLevel = 0 | 1 | 2 | 3;
|
|
57
|
+
export type EffortLevel = 0 | 1 | 2 | 3 | 4;
|
|
56
58
|
/** Narrow an untrusted number to the dial, or `undefined` if it isn't one. 0 is a valid level, so a
|
|
57
59
|
* falsy check would silently coerce minimal to "omit" — which buys the provider default, not off. */
|
|
58
60
|
export declare const asEffort: (v: number | undefined | null) => EffortLevel | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../ai/src/protocol.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAA;AAEtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,WAAW,CAAA;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAGD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAGD,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,0IAA0I;AAC1I,MAAM,WAAW,mBAAmB;IAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;AAE/D,yHAAyH;AACzH,MAAM,WAAW,sBAAsB;IAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;AAIlE,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CAAA;AAEvG,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,QAAQ,CAAC,kBAAkB,CAAC;IAClE,IAAI,EAAE,OAAO,CAAA;CACd;AAED;;;4CAG4C;AAC5C,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,eAAe,CAAA;AAE5G
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../ai/src/protocol.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAA;AAEtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,WAAW,CAAA;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAGD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAGD,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,0IAA0I;AAC1I,MAAM,WAAW,mBAAmB;IAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;AAE/D,yHAAyH;AACzH,MAAM,WAAW,sBAAsB;IAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;AAIlE,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CAAA;AAEvG,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,QAAQ,CAAC,kBAAkB,CAAC;IAClE,IAAI,EAAE,OAAO,CAAA;CACd;AAED;;;4CAG4C;AAC5C,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,eAAe,CAAA;AAE5G;;;;;;;oEAOoE;AACpE,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAE3C;sGACsG;AACtG,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,KAAG,WAAW,GAAG,SACR,CAAA;AAE9D;;0EAE0E;AAC1E,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,KAAG,WACI,CAAA;AAE5C;;+FAE+F;AAC/F,MAAM,MAAM,OAAO,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvC;;qGAEqG;AACrG,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,CAAA;AAElD,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAA;IACpB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAA;IACpB,0GAA0G;IAC1G,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB"}
|
package/dist/ai/protocol.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// ── Chat types (shared across all providers) ─────────────────────────
|
|
2
2
|
/** Narrow an untrusted number to the dial, or `undefined` if it isn't one. 0 is a valid level, so a
|
|
3
3
|
* falsy check would silently coerce minimal to "omit" — which buys the provider default, not off. */
|
|
4
|
-
export const asEffort = (v) => v != null && v >= 0 && v <=
|
|
4
|
+
export const asEffort = (v) => v != null && v >= 0 && v <= 4 ? v : undefined;
|
|
5
5
|
/** Pull a stored number onto the dial. Unlike `asEffort`, an out-of-range value is capped rather than
|
|
6
6
|
* dropped — for persisted settings, where the nearest level beats falling back to a provider default.
|
|
7
7
|
* The upper bound must track the dial's top if a level is ever added. */
|
|
8
|
-
export const clampEffort = (v) => Math.max(0, Math.min(v,
|
|
8
|
+
export const clampEffort = (v) => Math.max(0, Math.min(v, 4));
|
|
9
9
|
//# sourceMappingURL=protocol.js.map
|
package/dist/ai/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../ai/src/protocol.ts"],"names":[],"mappings":"AAAA,wEAAwE;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../ai/src/protocol.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAuExE;sGACsG;AACtG,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAA4B,EAA2B,EAAE,CAChF,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAgB,CAAC,CAAC,CAAC,SAAS,CAAA;AAE9D;;0EAE0E;AAC1E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAS,EAAe,EAAE,CACpD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAgB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../ai/src/providers/anthropic.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../ai/src/providers/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,8 @@ export class AnthropicProvider extends AIProvider {
|
|
|
19
19
|
const { system, conversationMessages } = this.extractSystemMessages(messages);
|
|
20
20
|
const payload = {
|
|
21
21
|
model,
|
|
22
|
-
|
|
22
|
+
// A cap never raises the model's own ceiling, so the smaller of the two wins.
|
|
23
|
+
max_tokens: Math.min(this.getMaxTokens(model), opts?.maxOutputTokens ?? Infinity),
|
|
23
24
|
// Breakpoints on the final two messages cache the conversation prefix (extends each turn)
|
|
24
25
|
messages: this.withTailMessagesCached(conversationMessages),
|
|
25
26
|
stream
|
|
@@ -39,7 +40,8 @@ export class AnthropicProvider extends AIProvider {
|
|
|
39
40
|
// 0 = minimal: thinking off, via the explicit `thinking.disabled` switch. Omitting `thinking`
|
|
40
41
|
// is NOT off — 4.6/4.7/4.8 default to no-thinking, but the 5 family thinks by default, so
|
|
41
42
|
// silence bought thinking there anyway, and hid it (`display` defaults to 'omitted').
|
|
42
|
-
// `disabled` is rejected above effort `high
|
|
43
|
+
// `disabled` is rejected above effort `high`. The dial now reaches `max` (4), but only ever
|
|
44
|
+
// pairs `disabled` with effort `low` below, so the two can't collide.
|
|
43
45
|
if (depth === 0) {
|
|
44
46
|
if (!this.alwaysThinks(model))
|
|
45
47
|
payload.thinking = { type: 'disabled' };
|
|
@@ -49,7 +51,8 @@ export class AnthropicProvider extends AIProvider {
|
|
|
49
51
|
const effortMap = {
|
|
50
52
|
1: 'low',
|
|
51
53
|
2: 'medium',
|
|
52
|
-
3: 'high'
|
|
54
|
+
3: 'high',
|
|
55
|
+
4: 'max'
|
|
53
56
|
};
|
|
54
57
|
// display defaults to 'omitted' on Fable 5 / Mythos 5 / Opus 4.7+ / Sonnet 5 (a silent change from
|
|
55
58
|
// Opus 4.6 / Sonnet 4.6, which defaulted to 'summarized') — thinking still happens and is billed,
|
|
@@ -64,7 +67,8 @@ export class AnthropicProvider extends AIProvider {
|
|
|
64
67
|
const budgetMap = {
|
|
65
68
|
1: 2048,
|
|
66
69
|
2: 4096,
|
|
67
|
-
3: 8192
|
|
70
|
+
3: 8192,
|
|
71
|
+
4: 16384
|
|
68
72
|
};
|
|
69
73
|
payload.thinking = {
|
|
70
74
|
type: 'enabled',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../ai/src/providers/anthropic.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAwB,MAAM,kBAAkB,CAAA;AAgHnE,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IAAjD;;QACqB,iBAAY,GAAG,WAAW,CAAA;QACpC,mBAAc,GAAG,2BAA2B,CAAA;QAC5C,SAAI,GAAG,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../ai/src/providers/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,8 +70,9 @@ export declare class GeminiProvider extends AIProvider {
|
|
|
70
70
|
/** Major.minor from a versioned model name (`gemini-3.5-flash` → 3.5); null for aliases. */
|
|
71
71
|
private geminiVersion;
|
|
72
72
|
/** Dial → level, clamped to the family's supported enum: `minimal` is 3.5+; earlier 3.x floors at
|
|
73
|
-
* `low`.
|
|
74
|
-
* the
|
|
73
|
+
* `low`. Gemini has no rung above `high`, so the dial's 4 clamps down to it — clamping, never a
|
|
74
|
+
* 400, is the rule for a missing rung. (gemini-3-pro-preview's low|high-only enum would need a
|
|
75
|
+
* wider clamp, but Google retired the model — 404 verified 2026-07-15.) */
|
|
75
76
|
private thinkingLevelFor;
|
|
76
77
|
private isGeminiResponse;
|
|
77
78
|
/** Split a candidate's parts into answer text and thought (reasoning) summaries — Gemini marks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../ai/src/providers/gemini.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAEhB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,UAAU,EAAuB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAIxF,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEpD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,8EAA8E;IAC9E,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,cAAc,EAAE,CAAA;CACxB;AAGD,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CACrC;AAED,MAAM,MAAM,UAAU,GAAG,sBAAsB,CAAA;AAE/C,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;AAIvE,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,qEAAqE;IACrE,aAAa,CAAC,EAAE,mBAAmB,CAAA;CACpC;AAGD,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,oBAAoB,CAAA;CACtC;AAGD,MAAM,MAAM,kBAAkB,GAC1B,2BAA2B,GAC3B,MAAM,GACN,YAAY,GACZ,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,OAAO,CAAA;AAEX,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,aAAa,CAAA;IACtB,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAGD,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,UAAU,CAAC,EAAE,eAAe,EAAE,CAAA;IAC9B,cAAc,CAAC,EAAE,oBAAoB,CAAA;CACtC;AAGD,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAA;AAIjD,4CAA4C;AAC5C,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,iBAAiB,CAAC,EAAE,aAAa,CAAA;IACjC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IACpB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;CAC1C;AAED,qBAAa,cAAe,SAAQ,UAAU;IAC5C,SAAS,CAAC,QAAQ,CAAC,YAAY,YAAW;IAC1C,QAAQ,CAAC,cAAc,+CAA8C;IACrE,QAAQ,CAAC,IAAI,oBAAmB;
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../ai/src/providers/gemini.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,9 @@ export class GeminiProvider extends AIProvider {
|
|
|
5
5
|
this.providerName = 'Gemini';
|
|
6
6
|
this.defaultBaseUrl = 'https://generativelanguage.googleapis.com';
|
|
7
7
|
this.path = '/v1beta/models';
|
|
8
|
-
|
|
8
|
+
// 4 repeats 3's `-1`: dynamic already means "think maximally", so the dial's top rung has nowhere
|
|
9
|
+
// higher to go on 2.5-era models — the clamp, expressed in the table.
|
|
10
|
+
this.budgetMap = { 0: 0, 1: 1024, 2: 8192, 3: -1, 4: -1 };
|
|
9
11
|
}
|
|
10
12
|
// ── Request building ─────────────────────────────────────────────
|
|
11
13
|
getPath(model, stream) {
|
|
@@ -51,6 +53,11 @@ export class GeminiProvider extends AIProvider {
|
|
|
51
53
|
thinkingConfig: effort === 0 ? dial : { includeThoughts: true, ...dial },
|
|
52
54
|
};
|
|
53
55
|
}
|
|
56
|
+
// Gemini nests it under generationConfig — merged rather than assigned, so it survives
|
|
57
|
+
// alongside a thinkingConfig set above (and creates the object when effort was omitted).
|
|
58
|
+
if (opts?.maxOutputTokens !== undefined) {
|
|
59
|
+
payload.generationConfig = { ...payload.generationConfig, maxOutputTokens: opts.maxOutputTokens };
|
|
60
|
+
}
|
|
54
61
|
return payload;
|
|
55
62
|
}
|
|
56
63
|
parseError(errorText, status) {
|
|
@@ -112,10 +119,11 @@ export class GeminiProvider extends AIProvider {
|
|
|
112
119
|
return m ? Number(m[1]) : null;
|
|
113
120
|
}
|
|
114
121
|
/** Dial → level, clamped to the family's supported enum: `minimal` is 3.5+; earlier 3.x floors at
|
|
115
|
-
* `low`.
|
|
116
|
-
* the
|
|
122
|
+
* `low`. Gemini has no rung above `high`, so the dial's 4 clamps down to it — clamping, never a
|
|
123
|
+
* 400, is the rule for a missing rung. (gemini-3-pro-preview's low|high-only enum would need a
|
|
124
|
+
* wider clamp, but Google retired the model — 404 verified 2026-07-15.) */
|
|
117
125
|
thinkingLevelFor(version, effort) {
|
|
118
|
-
const level = ['minimal', 'low', 'medium', 'high'][effort];
|
|
126
|
+
const level = ['minimal', 'low', 'medium', 'high', 'high'][effort];
|
|
119
127
|
return level === 'minimal' && version < 3.5 ? 'low' : level;
|
|
120
128
|
}
|
|
121
129
|
isGeminiResponse(json) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../ai/src/providers/gemini.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAwB,MAAM,kBAAkB,CAAA;AAsFxF,MAAM,OAAO,cAAe,SAAQ,UAAU;IAA9C;;QACqB,iBAAY,GAAG,QAAQ,CAAA;QACjC,mBAAc,GAAG,2CAA2C,CAAA;QAC5D,SAAI,GAAG,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../ai/src/providers/gemini.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { ChatMessageDto, ChatStreamPieceDto, ChatResponseDto, ProviderResponseDto, ProviderStreamEventDto } from '../protocol.js';
|
|
5
5
|
import { AIProvider, type ChatRequestOpts } from '../aiProvider.js';
|
|
6
|
-
export type OpenAIReasoningEffort = 'none' | 'low' | 'medium' | 'high';
|
|
6
|
+
export type OpenAIReasoningEffort = 'none' | 'low' | 'medium' | 'high' | 'xhigh';
|
|
7
7
|
export type OpenAIReasoningSummary = 'auto' | 'concise' | 'detailed';
|
|
8
8
|
export interface OpenAIWebSearchTool {
|
|
9
9
|
type: 'web_search';
|
|
@@ -12,6 +12,7 @@ export type OpenAITool = OpenAIWebSearchTool;
|
|
|
12
12
|
export interface OpenAIResponsesApiRequestDto {
|
|
13
13
|
model: string;
|
|
14
14
|
input: string;
|
|
15
|
+
max_output_tokens?: number;
|
|
15
16
|
reasoning?: {
|
|
16
17
|
effort: OpenAIReasoningEffort;
|
|
17
18
|
summary?: OpenAIReasoningSummary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openAI.d.ts","sourceRoot":"","sources":["../../../ai/src/providers/openAI.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EACV,cAAc,EAEd,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,UAAU,EAAuB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"openAI.d.ts","sourceRoot":"","sources":["../../../ai/src/providers/openAI.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EACV,cAAc,EAEd,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,UAAU,EAAuB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAUxF,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAChF,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;AAGpE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAA;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAA;AAG5C,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IAGb,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,qBAAqB,CAAA;QAC7B,OAAO,CAAC,EAAE,sBAAsB,CAAA;KACjC,CAAA;IACD,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAGD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,aAAa,CAAA;CACpB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,cAAc,CAAA;CACrB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;CAC/C;AAED,MAAM,MAAM,wBAAwB,GAAG,2BAA2B,GAAG,2BAA2B,CAAA;AAGhG,MAAM,WAAW,6BAA8B,SAAQ,mBAAmB;IACxE,MAAM,EAAE,UAAU,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAA;CACxC;AAID,UAAU,uBAAuB;IAC/B,eAAe,EAAE,MAAM,CAAA;CACxB;AAGD,UAAU,0BAA0B;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,UAAU,6BAA8B,SAAQ,0BAA0B;IACxE,aAAa,EAAE,MAAM,CAAA;CACtB;AAKD,MAAM,MAAM,kCAAkC,GAAG,uBAAuB,GAAG,6BAA6B,GAAG;IACzG,IAAI,EAAE,4BAA4B,CAAA;IAClC,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,4CAA4C,GAAG,uBAAuB,GAAG,0BAA0B,GAAG;IAChH,IAAI,EAAE,uCAAuC,CAAA;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,uBAAuB,GAAG;IACnE,IAAI,EAAE,oBAAoB,CAAA;IAC1B,QAAQ,EAAE,6BAA6B,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,uBAAuB,GAAG;IAC/D,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;QACnB,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KACrB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,uBAAuB,GAAG;IAChE,IAAI,EAAE,iBAAiB,CAAA;CACxB,CAAA;AAGD,MAAM,MAAM,yBAAyB,GACjC,kCAAkC,GAClC,4CAA4C,GAC5C,4BAA4B,GAC5B,wBAAwB,GACxB,yBAAyB,GACzB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAIpB,qBAAa,cAAe,SAAQ,UAAU;IAC5C,SAAS,CAAC,QAAQ,CAAC,YAAY,YAAW;IAC1C,QAAQ,CAAC,cAAc,4BAA2B;IAClD,QAAQ,CAAC,IAAI,mBAAkB;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAMzB;IAID,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQpD,YAAY,CACV,QAAQ,EAAE,cAAc,EAAE,EAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,OAAO,GACd,4BAA4B;IA6B/B,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe;IA0BrE,SAAS,CAAC,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB,GAAG,IAAI;IAyB3F,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,sBAAsB;CAI/B"}
|
|
@@ -10,7 +10,8 @@ export class OpenAIProvider extends AIProvider {
|
|
|
10
10
|
0: 'none',
|
|
11
11
|
1: 'low',
|
|
12
12
|
2: 'medium',
|
|
13
|
-
3: 'high'
|
|
13
|
+
3: 'high',
|
|
14
|
+
4: 'xhigh'
|
|
14
15
|
};
|
|
15
16
|
}
|
|
16
17
|
// ── Request building ─────────────────────────────────────────────
|
|
@@ -38,6 +39,9 @@ export class OpenAIProvider extends AIProvider {
|
|
|
38
39
|
// `summary: 'auto'` requests a reasoning summary; at `none` there's no reasoning to summarize.
|
|
39
40
|
payload.reasoning = effort === 'none' ? { effort } : { effort, summary: 'auto' };
|
|
40
41
|
}
|
|
42
|
+
if (opts?.maxOutputTokens !== undefined) {
|
|
43
|
+
payload.max_output_tokens = opts.maxOutputTokens;
|
|
44
|
+
}
|
|
41
45
|
return payload;
|
|
42
46
|
}
|
|
43
47
|
// ── Response parsing ─────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openAI.js","sourceRoot":"","sources":["../../../ai/src/providers/openAI.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAwB,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"openAI.js","sourceRoot":"","sources":["../../../ai/src/providers/openAI.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,9 @@ export type OpenRouterRequestPayload = {
|
|
|
15
15
|
model: string;
|
|
16
16
|
messages: ChatMessageDto[];
|
|
17
17
|
stream: boolean;
|
|
18
|
+
max_tokens?: number;
|
|
18
19
|
reasoning?: {
|
|
19
|
-
effort: 'none' | 'low' | 'medium' | 'high';
|
|
20
|
+
effort: 'none' | 'low' | 'medium' | 'high' | 'xhigh';
|
|
20
21
|
};
|
|
21
22
|
plugins?: OpenRouterWebPlugin[];
|
|
22
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openRouter.d.ts","sourceRoot":"","sources":["../../../ai/src/providers/openRouter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAA;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,mCAAmC;AACnC,UAAU,mBAAmB;IAC3B,EAAE,EAAE,KAAK,CAAA;IACT,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,iCAAiC;AACjC,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;KAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"openRouter.d.ts","sourceRoot":"","sources":["../../../ai/src/providers/openRouter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAA;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,mCAAmC;AACnC,UAAU,mBAAmB;IAC3B,EAAE,EAAE,KAAK,CAAA;IACT,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,iCAAiC;AACjC,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;IACpE,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAA;CAChC,CAAA;AAED,qBAAa,kBAAmB,SAAQ,uBAAuB;IAC7D,SAAS,CAAC,QAAQ,CAAC,YAAY,gBAAe;IAO9C,QAAQ,CAAC,cAAc,2BAA0B;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAA6B;IAQlD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAMzB;IAID,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAkBrE,YAAY,CACV,QAAQ,EAAE,cAAc,EAAE,EAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,OAAO,GACd,wBAAwB;CA8B5B"}
|
|
@@ -12,12 +12,17 @@ export class OpenRouterProvider extends ChatCompletionsProvider {
|
|
|
12
12
|
this.defaultBaseUrl = 'https://openrouter.ai';
|
|
13
13
|
this.path = '/api/v1/chat/completions';
|
|
14
14
|
// 0 → `none` (reasoning off): OpenRouter normalizes this across providers, and it's the robust floor
|
|
15
|
-
// (its `minimal` isn't supported by every underlying model, e.g. gpt-5.4-mini).
|
|
15
|
+
// (its `minimal` isn't supported by every underlying model, e.g. gpt-5.4-mini). 4 → `xhigh`: the
|
|
16
|
+
// enum is protocol-wide but support is PER MODEL (`reasoning.supported_efforts` on GET /v1/models —
|
|
17
|
+
// gemini-3.5-flash tops out at `high`), and OpenRouter doesn't document what an unsupported value
|
|
18
|
+
// does. Curate rows against that field; this is the one provider where clamp-never-error rests on
|
|
19
|
+
// the catalog rather than on this map.
|
|
16
20
|
this.effortMap = {
|
|
17
21
|
0: 'none',
|
|
18
22
|
1: 'low',
|
|
19
23
|
2: 'medium',
|
|
20
|
-
3: 'high'
|
|
24
|
+
3: 'high',
|
|
25
|
+
4: 'xhigh'
|
|
21
26
|
};
|
|
22
27
|
}
|
|
23
28
|
// ── Request building ─────────────────────────────────────────────
|
|
@@ -42,7 +47,12 @@ export class OpenRouterProvider extends ChatCompletionsProvider {
|
|
|
42
47
|
messages,
|
|
43
48
|
stream
|
|
44
49
|
};
|
|
45
|
-
//
|
|
50
|
+
// Off by default: a bare `web` plugin auto-selects the model's NATIVE search, which bills the
|
|
51
|
+
// vendor's search fee *and* the retrieved results as input tokens. Measured 2026-08 over one
|
|
52
|
+
// question, search off→on: luna $0.0003→$0.0171 (70→17k input tokens), sonnet-5 $0.0015→$0.0400,
|
|
53
|
+
// grok-4.5 $0.0012→$0.0477, gemini-3.6-flash $0.0059→$0.0343. Gemini is the outlier because
|
|
54
|
+
// grounding retrieves server-side (input barely moves, ~$0.028 flat); everyone else pays twice,
|
|
55
|
+
// so the bill scales with the model's *input* rate, not any flat search price.
|
|
46
56
|
if (opts?.webSearch === true) {
|
|
47
57
|
payload.plugins = [{ id: 'web' }];
|
|
48
58
|
}
|
|
@@ -52,6 +62,9 @@ export class OpenRouterProvider extends ChatCompletionsProvider {
|
|
|
52
62
|
effort: this.effortMap[effort]
|
|
53
63
|
};
|
|
54
64
|
}
|
|
65
|
+
if (opts?.maxOutputTokens !== undefined) {
|
|
66
|
+
payload.max_tokens = opts.maxOutputTokens;
|
|
67
|
+
}
|
|
55
68
|
return payload;
|
|
56
69
|
}
|
|
57
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openRouter.js","sourceRoot":"","sources":["../../../ai/src/providers/openRouter.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"openRouter.js","sourceRoot":"","sources":["../../../ai/src/providers/openRouter.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAkB9D,MAAM,OAAO,kBAAmB,SAAQ,uBAAuB;IAA/D;;QACqB,iBAAY,GAAG,YAAY,CAAA;QAC9C,6FAA6F;QAC7F,iGAAiG;QACjG,gGAAgG;QAChG,gGAAgG;QAChG,iGAAiG;QACjG,uGAAuG;QAC9F,mBAAc,GAAG,uBAAuB,CAAA;QACxC,SAAI,GAAW,0BAA0B,CAAA;QAElD,qGAAqG;QACrG,iGAAiG;QACjG,oGAAoG;QACpG,kGAAkG;QAClG,kGAAkG;QAClG,uCAAuC;QACtB,cAAS,GAAsE;YAC9F,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,QAAQ;YACX,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,OAAO;SACX,CAAA;IAyDH,CAAC;IAvDC,oEAAoE;IAEpE,YAAY,CAAC,MAAc,EAAE,MAAe;QAC1C,MAAM,OAAO,GAA2B;YACtC,eAAe,EAAE,UAAU,MAAM,EAAE;YACnC,WAAW,EAAE,MAAM;YACnB,cAAc,EAAE,kBAAkB;YAClC,QAAQ,EAAE,kBAAkB;YAC5B,SAAS,EAAE,UAAU;SACtB,CAAA;QAED,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,cAAc,CAAC,GAAG,MAAM,CAAA;YAChC,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAA;YAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;QAC5B,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,YAAY,CACV,QAA0B,EAC1B,KAAa,EACb,IAAqB,EACrB,MAAe;QAEf,MAAM,OAAO,GAA6B;YACxC,KAAK;YACL,QAAQ;YACR,MAAM;SACP,CAAA;QAED,8FAA8F;QAC9F,6FAA6F;QAC7F,iGAAiG;QACjG,4FAA4F;QAC5F,gGAAgG;QAChG,+EAA+E;QAC/E,IAAI,IAAI,EAAE,SAAS,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QACnC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,CAAA;QAC3B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,SAAS,GAAG;gBAClB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aAC/B,CAAA;QACH,CAAC;QAED,IAAI,IAAI,EAAE,eAAe,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAA;QAC3C,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
|
package/dist/dts/tbTypings.js
CHANGED
|
@@ -35,8 +35,8 @@ const insight = `
|
|
|
35
35
|
const aiOptions = `options: {
|
|
36
36
|
messages: Array<{ role: "user" | "assistant"; content: string }>;
|
|
37
37
|
system?: string;
|
|
38
|
-
/** Reasoning effort: 0=minimal, 1=low, 2=med, 3=high. Mapped to each provider's native mechanism (OpenAI/OpenRouter reasoning effort, Gemini thinking level, Anthropic adaptive thinking). 0 reaches the vendor's explicit off switch, and floors to a little thinking only on always-thinking models. Pin 1 (low) for most work; pick 0 deliberately, when you want the raw model or latency is the constraint. Omitting is NOT off — it buys the model's own default (medium on GPT-5.6), which reasons and bills invisibly. Ignored on the courtesy model, which runs at the level Typebulb sets. */
|
|
39
|
-
effort?: 0 | 1 | 2 | 3;
|
|
38
|
+
/** Reasoning effort: 0=minimal, 1=low, 2=med, 3=high, 4=xhigh. Mapped to each provider's native mechanism (OpenAI/OpenRouter reasoning effort, Gemini thinking level, Anthropic adaptive thinking). 0 reaches the vendor's explicit off switch, and floors to a little thinking only on always-thinking models. 4 reaches the rung above high where the vendor has one (OpenAI/OpenRouter xhigh, Anthropic max) and clamps to high where it doesn't (Gemini) — never an error. Pin 1 (low) for most work; pick 0 deliberately, when you want the raw model or latency is the constraint. Omitting is NOT off — it buys the model's own default (medium on GPT-5.6), which reasons and bills invisibly. Ignored on the courtesy model, which runs at the level Typebulb sets. */
|
|
39
|
+
effort?: 0 | 1 | 2 | 3 | 4;
|
|
40
40
|
provider?: string;
|
|
41
41
|
model?: string;
|
|
42
42
|
/** Enable/disable web search. Default: on for BYOK, always off for free model. */
|
|
@@ -70,7 +70,7 @@ const ai = `
|
|
|
70
70
|
* Streaming counterpart of \`tb.ai()\`. Yields \`{ kind: "text" | "reasoning", text }\` deltas
|
|
71
71
|
* as they arrive; break the loop (or abort \`signal\`) to cancel and stop the upstream.
|
|
72
72
|
*
|
|
73
|
-
* \`kind: "reasoning"\` deltas only arrive when you pass \`effort: 1-
|
|
73
|
+
* \`kind: "reasoning"\` deltas only arrive when you pass \`effort: 1-4\` AND use a
|
|
74
74
|
* thinking-capable model; otherwise the stream is \`text\`-only.
|
|
75
75
|
*
|
|
76
76
|
* @example
|