@plurnk/plurnk-providers 0.2.3 → 0.2.5
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/SPEC.md +7 -6
- package/dist/OpenAICompat.d.ts +2 -2
- package/dist/OpenAICompat.d.ts.map +1 -1
- package/dist/OpenAICompat.js +26 -11
- package/dist/OpenAICompat.js.map +1 -1
- package/dist/env.d.ts +2 -4
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +29 -11
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/standardProviders.js +3 -3
- package/dist/standardProviders.js.map +1 -1
- package/package.json +6 -6
package/SPEC.md
CHANGED
|
@@ -86,7 +86,7 @@ Default export MUST have a static `fromEnv(env, model)` factory:
|
|
|
86
86
|
class OpenAI {
|
|
87
87
|
static fromEnv(env: NodeJS.ProcessEnv, model: string): OpenAI | Promise<OpenAI> {
|
|
88
88
|
// Read provider-specific env (OPENAI_BASE_URL, OPENAI_API_KEY, ...)
|
|
89
|
-
// plus universal operator knobs (
|
|
89
|
+
// plus universal operator knobs (PLURNK_PROVIDERS_REASON_LEVEL, PLURNK_FETCH_TIMEOUT,
|
|
90
90
|
// PLURNK_PROVIDER_CONTEXT_SIZE).
|
|
91
91
|
return new OpenAI({ /* ... */ });
|
|
92
92
|
}
|
|
@@ -104,10 +104,11 @@ The consumer's instantiation path calls `mod.default.fromEnv(env, alias.model)`
|
|
|
104
104
|
|
|
105
105
|
Each provider's `fromEnv` reads these:
|
|
106
106
|
|
|
107
|
-
- **`
|
|
108
|
-
- **`PLURNK_REASON`** — engine-level reasoning-token budget. Non-negative integer. The **magnitude** for backends that take a tier: when `REASONING=1` and `PLURNK_REASON > 0`, cloud styles emit `reasoning_effort: low|medium|high`; Anthropic emits `thinking: { type: "adaptive" }` / budget. The binary on/off is the gate above, not this budget.
|
|
107
|
+
- **`PLURNK_PROVIDERS_REASONING_BUDGET`** — REQUIRED integer `>= -1`. One knob carries the whole side-channel-reasoning space: **`0`** off, **`-1`** on/adaptive (no cap — model/backend decides depth), **`N>0`** on/capped at `N`. The provider maps this single intent to the active backend's mechanism — llama-server `chat_template_kwargs: { enable_thinking }` (always emitted; the explicit FALSE is the only working off-switch — llama-server ignores `think` and per-request budgets, and its `--reasoning-budget` default otherwise keeps the channel live, fatal under an active grammar, §13), Ollama `think`, relay `include_reasoning`, cloud `reasoning_effort` (tier from `N`; adaptive `-1` omits the field, letting the API pick its depth), Anthropic `thinking: { type: "adaptive" }` (`-1`) / `budget_tokens` (`N`). For native backends the magnitude is irrelevant — only zero vs non-zero matters. Consumers state intent, never mechanism. (There is deliberately **no** knob for in-DSL `<<PLAN>>` reasoning — PLAN is a grammar op surfaced by prompting + an assistant prefill, a consumer concern with no provider footprint.)
|
|
109
108
|
|
|
110
|
-
|
|
109
|
+
- **`PLURNK_PLAN`** — REQUIRED `0|1`. When `1`, the provider prefills the assistant turn with the plurnk **`<<PLAN:`** op, forcing the model to reason *in-DSL* before acting. This is the reasoning path that coexists with a strict grammar (native side-channel thinking does not — §13): the model reasons inside a grammar-legal `PLAN` op, keeping the structural guarantee, and the reasoning is an auditable logged op rather than a hidden channel. The un-prefilled op fires unreliably (live: 0/3 unprompted vs 3/3 prefilled), so this is a *forcing function*. Delivery is backend-aware and provider-owned: continuation on llama-server, harmlessly ignored by OpenAI, stripped by Anthropic (which 400s on assistant prefill — the Anthropic sibling's job). **This module is `@plurnk/plurnk-providers` — it knows the plurnk PLAN op and owns the prefill.** That does not conflict with the §2/§8 ban, which forbids *parsing model output* into `PlurnkStatement[]`, not knowing plurnk for *request* construction.
|
|
110
|
+
|
|
111
|
+
Read via `reasoningBudgetFromEnv` / `planFromEnv` and **fail hard when unset** — configuration lives in the operator's env (the consumer's `.env.example` declares every var); the framework never defaults a knob in code.
|
|
111
112
|
- **`PLURNK_FETCH_TIMEOUT`** — service-wide ms ceiling on any single outbound request. Each `fromEnv` reads and passes as `AbortSignal.timeout`. Per-provider override envs are NOT part of the contract.
|
|
112
113
|
- **`PLURNK_PROVIDER_CONTEXT_SIZE`** — optional positive-integer override for the model's reported context window. Resolution: this env var → provider probe/config/table → `null`.
|
|
113
114
|
|
|
@@ -140,7 +141,7 @@ The daughters are **this framework's own dependencies** (exact-pinned), so the d
|
|
|
140
141
|
|
|
141
142
|
## §6 Engine → provider guarantees (consumer side)
|
|
142
143
|
|
|
143
|
-
- `messages` is a complete prompt. Consumer has pre-assembled all sections. Provider does not add or reorder.
|
|
144
|
+
- `messages` is a complete prompt. Consumer has pre-assembled all sections. Provider does not add or reorder — **except** the sanctioned PLAN prefill: when `PLURNK_PLAN=1` the provider appends an assistant-turn `<<PLAN:` continuation to force in-DSL reasoning (§4). This is a deliberate, plurnk-specific provider mechanism, not the provider mutating consumer content.
|
|
144
145
|
- Every `generate` carries `runId` — the run's stable, opaque identity. Same run → same string across its turns; distinct runs → distinct strings.
|
|
145
146
|
- `signal` is wired to the run's AbortController.
|
|
146
147
|
- `generate` is single-call per turn. No parallel calls on the same instance.
|
|
@@ -236,7 +237,7 @@ The framework ships the transport spine every OpenAI-compatible provider had bee
|
|
|
236
237
|
- **`normalizeUsage(raw)` / `computeCost(usage, {input, output, cached})`** — usage normalization to the §2 invariant (handles both reasoning-reporting conventions) and the single cost formula (bills `completion + reasoning` at the output rate). `OpenAICompatProvider` applies `normalizeUsage` automatically; siblings pass their per-token rates to `computeCost` in their `costFor`.
|
|
237
238
|
- **`parseRequiredInt` / `parseOptionalInt` / `requireEnv`** — env helpers; each takes a provider `label` for error prefixing.
|
|
238
239
|
- **`tokenizerFor(family)` / `tokenizerByPublisher(model, table, index)` / `parseTokenizerFamily(...)`** — synchronous tokenizer strategies (`heuristic` | `cl100k` | `llama`) and per-publisher dispatch for relay providers.
|
|
239
|
-
- **`effortFromBudget(budget)`** — the shared `
|
|
240
|
+
- **`effortFromBudget(budget)`** — the shared `PLURNK_PROVIDERS_REASON_LEVEL` → `low|medium|high` breakpoints.
|
|
240
241
|
|
|
241
242
|
A **bespoke sibling** therefore reduces to a thin class whose `fromEnv` probes whatever it needs (model catalog, pricing, context window), builds the config, and returns `new OpenAICompatProvider(config)`. A **standard provider** (§5 tier 1) needs no sibling at all — it's a frozen entry in `STANDARD_PROVIDERS` describing its key var, base URL, reasoning style, and tokenizer; `standardProviderFromEnv(name, env, model)` (async — returns `Promise<Provider | null>`) does the rest.
|
|
242
243
|
|
package/dist/OpenAICompat.d.ts
CHANGED
|
@@ -6,7 +6,6 @@ export type OpenAICompatConfig = {
|
|
|
6
6
|
fetchTimeoutMs: number;
|
|
7
7
|
headers?: Record<string, string>;
|
|
8
8
|
contextSize?: number | null;
|
|
9
|
-
reasonBudget?: number;
|
|
10
9
|
reasoningStyle?: ReasoningStyle;
|
|
11
10
|
countTokens?: (text: string) => number;
|
|
12
11
|
costFor?: (usage: ProviderUsage) => number;
|
|
@@ -14,7 +13,8 @@ export type OpenAICompatConfig = {
|
|
|
14
13
|
supportsGrammar?: boolean;
|
|
15
14
|
supportsSlotPinning?: boolean;
|
|
16
15
|
slotCount?: number | null;
|
|
17
|
-
|
|
16
|
+
reasoningBudget: number;
|
|
17
|
+
plan?: boolean;
|
|
18
18
|
};
|
|
19
19
|
export declare const effortFromBudget: (budget: number) => "low" | "medium" | "high";
|
|
20
20
|
export default class OpenAICompatProvider implements Provider {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAICompat.d.ts","sourceRoot":"","sources":["../src/OpenAICompat.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAgB,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAiBvG,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,mBAAmB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE5F,MAAM,MAAM,kBAAkB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,
|
|
1
|
+
{"version":3,"file":"OpenAICompat.d.ts","sourceRoot":"","sources":["../src/OpenAICompat.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAgB,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAiBvG,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,mBAAmB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE5F,MAAM,MAAM,kBAAkB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAK1B,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAqBF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,KAAK,GAAG,QAAQ,GAAG,MAIpE,CAAC;AAIF,MAAM,CAAC,OAAO,OAAO,oBAAqB,YAAW,QAAQ;;gBAgB7C,MAAM,EAAE,kBAAkB;IAiBtC,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAA8B;IAC9D,IAAI,KAAK,IAAI,MAAM,CAAwB;IAE3C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IACjC,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;IAkD/B,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAgDrM"}
|
package/dist/OpenAICompat.js
CHANGED
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
import { chatCompletionStream } from "./openaiStream.js";
|
|
11
11
|
import { normalizeUsage } from "./usage.js";
|
|
12
12
|
import { toProviderError } from "./telemetry.js";
|
|
13
|
+
// The plurnk PLAN forcing prefill. This is @plurnk/plurnk-providers — it knows
|
|
14
|
+
// the plurnk DSL op that induces in-band reasoning. (The SPEC §2 ban is on
|
|
15
|
+
// PARSING model output, not on knowing plurnk for request construction.)
|
|
16
|
+
const PLAN_PREFILL = "<<PLAN:\n";
|
|
13
17
|
// Sampling guard under an active grammar (SPEC §13): greedy decoding under
|
|
14
18
|
// hard constraint masks degenerates into repetition loops at the server
|
|
15
19
|
// default of 1.0, so the floor rides per-request with every attached grammar —
|
|
@@ -35,7 +39,7 @@ export default class OpenAICompatProvider {
|
|
|
35
39
|
#fetchTimeoutMs;
|
|
36
40
|
#headers;
|
|
37
41
|
#contextSize;
|
|
38
|
-
#
|
|
42
|
+
#reasoningBudget;
|
|
39
43
|
#reasoningStyle;
|
|
40
44
|
#countTokens;
|
|
41
45
|
#costFor;
|
|
@@ -43,14 +47,14 @@ export default class OpenAICompatProvider {
|
|
|
43
47
|
#supportsGrammar;
|
|
44
48
|
#supportsSlotPinning;
|
|
45
49
|
#slotCount;
|
|
46
|
-
#
|
|
50
|
+
#plan;
|
|
47
51
|
constructor(config) {
|
|
48
52
|
this.#model = config.model;
|
|
49
53
|
this.#url = config.url;
|
|
50
54
|
this.#fetchTimeoutMs = config.fetchTimeoutMs;
|
|
51
55
|
this.#headers = config.headers ?? {};
|
|
52
56
|
this.#contextSize = config.contextSize ?? null;
|
|
53
|
-
this.#
|
|
57
|
+
this.#reasoningBudget = config.reasoningBudget;
|
|
54
58
|
this.#reasoningStyle = config.reasoningStyle ?? "none";
|
|
55
59
|
this.#countTokens = config.countTokens ?? heuristicTokens;
|
|
56
60
|
this.#costFor = config.costFor ?? (() => 0);
|
|
@@ -58,22 +62,25 @@ export default class OpenAICompatProvider {
|
|
|
58
62
|
this.#supportsGrammar = config.supportsGrammar ?? false;
|
|
59
63
|
this.#supportsSlotPinning = config.supportsSlotPinning ?? false;
|
|
60
64
|
this.#slotCount = config.slotCount ?? null;
|
|
61
|
-
this.#
|
|
65
|
+
this.#plan = config.plan ?? false;
|
|
62
66
|
}
|
|
63
67
|
get contextSize() { return this.#contextSize; }
|
|
64
68
|
get model() { return this.#model; }
|
|
65
69
|
countTokens(text) { return this.#countTokens(text); }
|
|
66
70
|
costFor(usage) { return this.#costFor(usage); }
|
|
67
71
|
#reasoningBody() {
|
|
72
|
+
const b = this.#reasoningBudget; // 0 off, -1 adaptive, N>0 capped
|
|
73
|
+
const on = b !== 0;
|
|
68
74
|
switch (this.#reasoningStyle) {
|
|
69
75
|
// Native-channel styles. "template" ALWAYS emits — the explicit
|
|
70
76
|
// enable_thinking:false is the only working off-switch on
|
|
71
|
-
// llama-server (§13).
|
|
72
|
-
case "template": return { chat_template_kwargs: { enable_thinking:
|
|
73
|
-
case "think": return
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
// llama-server (§13). The magnitude is irrelevant for native (on/off only).
|
|
78
|
+
case "template": return { chat_template_kwargs: { enable_thinking: on } };
|
|
79
|
+
case "think": return on ? { think: true } : {};
|
|
80
|
+
case "include_reasoning": return on ? { include_reasoning: true } : {};
|
|
81
|
+
// effort tiers from a capped budget; adaptive (-1) omits the field
|
|
82
|
+
// (lets the API pick its default depth); off (0) omits.
|
|
83
|
+
case "effort": return b > 0 ? { reasoning_effort: effortFromBudget(b) } : {};
|
|
77
84
|
case "none": return {};
|
|
78
85
|
}
|
|
79
86
|
}
|
|
@@ -116,9 +123,17 @@ export default class OpenAICompatProvider {
|
|
|
116
123
|
signal?.throwIfAborted();
|
|
117
124
|
const timeoutSignal = AbortSignal.timeout(this.#fetchTimeoutMs);
|
|
118
125
|
const effectiveSignal = signal !== undefined ? AbortSignal.any([signal, timeoutSignal]) : timeoutSignal;
|
|
126
|
+
// PLAN forcing (PLURNK_PLAN): seed the assistant turn with the plurnk
|
|
127
|
+
// <<PLAN: op so the model reasons in-DSL before acting. llama-server
|
|
128
|
+
// continues from a trailing assistant turn; OpenAI ignores it. (A
|
|
129
|
+
// backend that 400s on assistant prefill — modern Anthropic — needs a
|
|
130
|
+
// provider that strips it; that's the Anthropic sibling's job, not here.)
|
|
131
|
+
const wireMessages = this.#plan
|
|
132
|
+
? [...messages, { role: "assistant", content: PLAN_PREFILL }]
|
|
133
|
+
: messages;
|
|
119
134
|
const body = {
|
|
120
135
|
model: this.#model,
|
|
121
|
-
messages,
|
|
136
|
+
messages: wireMessages,
|
|
122
137
|
...this.#reasoningBody(),
|
|
123
138
|
...this.#grammarBody(grammar),
|
|
124
139
|
...(maxTokens !== undefined ? { max_tokens: maxTokens } : {}),
|
package/dist/OpenAICompat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAICompat.js","sourceRoot":"","sources":["../src/OpenAICompat.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,oEAAoE;AACpE,wEAAwE;AACxE,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,0EAA0E;AAC1E,8EAA8E;AAC9E,iFAAiF;AAGjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAsCjD,2EAA2E;AAC3E,wEAAwE;AACxE,+EAA+E;AAC/E,4EAA4E;AAC5E,gFAAgF;AAChF,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAE1C,2EAA2E;AAC3E,8DAA8D;AAC9D,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACxG,MAAM,qBAAqB,GAAG,CAAC,GAAkB,EAAgB,EAAE,CAC/D,GAAG,KAAK,IAAI,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;AAE3E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAA6B,EAAE;IAC1E,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC;IACpC,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAEvG,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACrC,MAAM,CAAS;IACf,IAAI,CAAS;IACb,eAAe,CAAS;IACxB,QAAQ,CAAyB;IACjC,YAAY,CAAgB;IAC5B,
|
|
1
|
+
{"version":3,"file":"OpenAICompat.js","sourceRoot":"","sources":["../src/OpenAICompat.ts"],"names":[],"mappings":"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"}
|
package/dist/env.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
export declare const parseRequiredInt: (raw: string | undefined, name: string, label: string) => number;
|
|
2
2
|
export declare const parseOptionalInt: (raw: string | undefined, name: string, label: string) => number | null;
|
|
3
3
|
export declare const requireEnv: (raw: string | undefined, name: string, label: string) => string;
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
6
|
-
reasoningEnabled: boolean;
|
|
7
|
-
};
|
|
4
|
+
export declare const reasoningBudgetFromEnv: (env: NodeJS.ProcessEnv, label: string) => number;
|
|
5
|
+
export declare const planFromEnv: (env: NodeJS.ProcessEnv, label: string) => boolean;
|
|
8
6
|
//# sourceMappingURL=env.d.ts.map
|
package/dist/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MAKvF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MAAM,GAAG,IAKhG,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MAGjF,CAAC;
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MAKvF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MAAM,GAAG,IAKhG,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MAGjF,CAAC;AAWF,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,CAAC,UAAU,EAAE,OAAO,MAAM,KAAG,MAO9E,CAAC;AASF,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,CAAC,UAAU,EAAE,OAAO,MAAM,KAAG,OAMnE,CAAC"}
|
package/dist/env.js
CHANGED
|
@@ -22,21 +22,39 @@ export const requireEnv = (raw, name, label) => {
|
|
|
22
22
|
throw new Error(`${label} provider: ${name} must be set`);
|
|
23
23
|
return raw;
|
|
24
24
|
};
|
|
25
|
-
|
|
25
|
+
// The single side-channel reasoning knob (SPEC §4): one integer carries the
|
|
26
|
+
// whole {off, adaptive, capped} space, so no separate on/off gate is needed.
|
|
27
|
+
// 0 → native side-channel reasoning OFF.
|
|
28
|
+
// -1 → ON, adaptive (no cap — the model/backend decides depth).
|
|
29
|
+
// N>0 → ON, capped at N (→ effort tier for cloud, budget_tokens for Anthropic).
|
|
30
|
+
// The provider maps this one intent to the backend's mechanism (llama-server
|
|
31
|
+
// `enable_thinking`, cloud `reasoning_effort`, relay `include_reasoning`) — the
|
|
32
|
+
// consumer states intent, never mechanism. REQUIRED, no in-code default. (In-DSL
|
|
33
|
+
// PLAN reasoning is a prompt/grammar concern, not a provider knob.)
|
|
34
|
+
export const reasoningBudgetFromEnv = (env, label) => {
|
|
35
|
+
const name = "PLURNK_PROVIDERS_REASONING_BUDGET";
|
|
36
|
+
const raw = env[name];
|
|
37
|
+
if (raw === undefined || raw.length === 0)
|
|
38
|
+
throw new Error(`${label} provider: ${name} must be set`);
|
|
39
|
+
const n = Number(raw);
|
|
40
|
+
if (!Number.isInteger(n) || n < -1)
|
|
41
|
+
throw new Error(`${label} provider: ${name} must be an integer >= -1 (0 off, -1 adaptive, N capped) (got "${raw}")`);
|
|
42
|
+
return n;
|
|
43
|
+
};
|
|
44
|
+
// The PLAN forcing function (PLURNK_PLAN, REQUIRED 0/1). When on, the provider
|
|
45
|
+
// prefills the assistant turn with the plurnk `<<PLAN:` op so the model reasons
|
|
46
|
+
// in-DSL before acting — reliable in-band reasoning that coexists with a strict
|
|
47
|
+
// grammar (the un-prefilled op fires inconsistently: live 0/3 unprompted, 3/3
|
|
48
|
+
// prefilled). This IS plurnk's provider family, so it owns the plurnk-specific
|
|
49
|
+
// prefill string AND its backend-aware delivery (continuation on llama-server,
|
|
50
|
+
// ignored by OpenAI, stripped by Anthropic which 400s on it).
|
|
51
|
+
export const planFromEnv = (env, label) => {
|
|
52
|
+
const name = "PLURNK_PLAN";
|
|
53
|
+
const raw = env[name];
|
|
26
54
|
if (raw === undefined || raw.length === 0)
|
|
27
55
|
throw new Error(`${label} provider: ${name} must be set`);
|
|
28
56
|
if (raw !== "0" && raw !== "1")
|
|
29
57
|
throw new Error(`${label} provider: ${name} must be "0" or "1" (got "${raw}")`);
|
|
30
58
|
return raw === "1";
|
|
31
59
|
};
|
|
32
|
-
// The single side-channel reasoning gate (SPEC §4): does the model reason in a
|
|
33
|
-
// side channel at all? The provider picks the wire MECHANISM per backend —
|
|
34
|
-
// llama-server's `enable_thinking`, cloud `reasoning_effort`, relay
|
|
35
|
-
// `include_reasoning` — so the consumer states intent, never mechanism.
|
|
36
|
-
// REQUIRED — no in-code default; the operator's env is the single source of
|
|
37
|
-
// configuration truth. (In-DSL PLAN reasoning is a prompt/grammar concern, not
|
|
38
|
-
// a provider knob — it has no env var here.)
|
|
39
|
-
export const reasoningKnobsFromEnv = (env, label) => ({
|
|
40
|
-
reasoningEnabled: parseRequiredFlag(env.PLURNK_PROVIDERS_REASONING, "PLURNK_PROVIDERS_REASONING", label),
|
|
41
|
-
});
|
|
42
60
|
//# sourceMappingURL=env.js.map
|
package/dist/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAE9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAuB,EAAE,IAAY,EAAE,KAAa,EAAU,EAAE;IAC7F,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,cAAc,CAAC,CAAC;IACrG,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,yCAAyC,GAAG,IAAI,CAAC,CAAC;IAC/H,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAuB,EAAE,IAAY,EAAE,KAAa,EAAiB,EAAE;IACpG,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,yCAAyC,GAAG,IAAI,CAAC,CAAC;IAC/H,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAuB,EAAE,IAAY,EAAE,KAAa,EAAU,EAAE;IACvF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,cAAc,CAAC,CAAC;IACrG,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAE9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAuB,EAAE,IAAY,EAAE,KAAa,EAAU,EAAE;IAC7F,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,cAAc,CAAC,CAAC;IACrG,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,yCAAyC,GAAG,IAAI,CAAC,CAAC;IAC/H,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAuB,EAAE,IAAY,EAAE,KAAa,EAAiB,EAAE;IACpG,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,yCAAyC,GAAG,IAAI,CAAC,CAAC;IAC/H,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAuB,EAAE,IAAY,EAAE,KAAa,EAAU,EAAE;IACvF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,cAAc,CAAC,CAAC;IACrG,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAEF,4EAA4E;AAC5E,6EAA6E;AAC7E,6CAA6C;AAC7C,mEAAmE;AACnE,kFAAkF;AAClF,6EAA6E;AAC7E,gFAAgF;AAChF,iFAAiF;AACjF,oEAAoE;AACpE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAsB,EAAE,KAAa,EAAU,EAAE;IACpF,MAAM,IAAI,GAAG,mCAAmC,CAAC;IACjD,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,cAAc,CAAC,CAAC;IACrG,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,kEAAkE,GAAG,IAAI,CAAC,CAAC;IACzJ,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,+EAA+E;AAC/E,gFAAgF;AAChF,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,8DAA8D;AAC9D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAsB,EAAE,KAAa,EAAW,EAAE;IAC1E,MAAM,IAAI,GAAG,aAAa,CAAC;IAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,cAAc,CAAC,CAAC;IACrG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,6BAA6B,GAAG,IAAI,CAAC,CAAC;IAChH,OAAO,GAAG,KAAK,GAAG,CAAC;AACvB,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { default as OpenAICompatProvider, effortFromBudget } from "./OpenAICompa
|
|
|
4
4
|
export type { OpenAICompatConfig, ReasoningStyle } from "./OpenAICompat.ts";
|
|
5
5
|
export { chatCompletionStream, OpenAiHttpError } from "./openaiStream.ts";
|
|
6
6
|
export type { StreamResponse } from "./openaiStream.ts";
|
|
7
|
-
export { parseRequiredInt, parseOptionalInt,
|
|
7
|
+
export { parseRequiredInt, parseOptionalInt, requireEnv, reasoningBudgetFromEnv, planFromEnv } from "./env.ts";
|
|
8
8
|
export { tokenizerFor, tokenizerByPublisher, parseTokenizerFamily } from "./tokenizers.ts";
|
|
9
9
|
export type { TokenizerFamily, CountTokens } from "./tokenizers.ts";
|
|
10
10
|
export { normalizeUsage, computeCost } from "./usage.ts";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,aAAa,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtF,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC1E,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,aAAa,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtF,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC1E,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3F,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACvG,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEzG,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ export { parseAliasesFromEnv, resolveActiveAlias, instantiateProvider, loadActiv
|
|
|
3
3
|
// extends and the basis for ./standardProviders.ts.
|
|
4
4
|
export { default as OpenAICompatProvider, effortFromBudget } from "./OpenAICompat.js";
|
|
5
5
|
export { chatCompletionStream, OpenAiHttpError } from "./openaiStream.js";
|
|
6
|
-
export { parseRequiredInt, parseOptionalInt,
|
|
6
|
+
export { parseRequiredInt, parseOptionalInt, requireEnv, reasoningBudgetFromEnv, planFromEnv } from "./env.js";
|
|
7
7
|
export { tokenizerFor, tokenizerByPublisher, parseTokenizerFamily } from "./tokenizers.js";
|
|
8
8
|
export { normalizeUsage, computeCost } from "./usage.js";
|
|
9
9
|
export { ProviderError, classifyProviderError, toProviderError, providerSource } from "./telemetry.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,yEAAyE;AACzE,oDAAoD;AACpD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEtF,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,yEAAyE;AACzE,oDAAoD;AACpD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEtF,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE3F,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEvG,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEzG,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// first, then falls back to dynamic-importing @plurnk/plurnk-providers-<name>
|
|
9
9
|
// for the bespoke ones (openrouter, ollama, google, xai, cloudflare, ...).
|
|
10
10
|
import OpenAICompatProvider from "./OpenAICompat.js";
|
|
11
|
-
import { parseRequiredInt, parseOptionalInt, requireEnv,
|
|
11
|
+
import { parseRequiredInt, parseOptionalInt, requireEnv, reasoningBudgetFromEnv, planFromEnv } from "./env.js";
|
|
12
12
|
import { parseTokenizerFamily, tokenizerFor } from "./tokenizers.js";
|
|
13
13
|
import { providerSource } from "./telemetry.js";
|
|
14
14
|
// Frozen so a downstream can't mutate the shared table.
|
|
@@ -139,7 +139,8 @@ export const standardProviderFromEnv = async (name, env, model) => {
|
|
|
139
139
|
headers,
|
|
140
140
|
contextSize,
|
|
141
141
|
fetchTimeoutMs,
|
|
142
|
-
|
|
142
|
+
reasoningBudget: reasoningBudgetFromEnv(env, name),
|
|
143
|
+
plan: planFromEnv(env, name),
|
|
143
144
|
reasoningStyle,
|
|
144
145
|
countTokens: tokenizerFor(family),
|
|
145
146
|
source: providerSource(name),
|
|
@@ -147,7 +148,6 @@ export const standardProviderFromEnv = async (name, env, model) => {
|
|
|
147
148
|
// The same fingerprint backs both llama-server dialect extensions.
|
|
148
149
|
supportsSlotPinning: supportsGrammar,
|
|
149
150
|
slotCount,
|
|
150
|
-
...reasoningKnobsFromEnv(env, name),
|
|
151
151
|
});
|
|
152
152
|
};
|
|
153
153
|
//# sourceMappingURL=standardProviders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standardProviders.js","sourceRoot":"","sources":["../src/standardProviders.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAC9E,6DAA6D;AAC7D,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,2EAA2E;AAG3E,OAAO,oBAA6C,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"standardProviders.js","sourceRoot":"","sources":["../src/standardProviders.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-providers",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"description": "Framework + contract for the @plurnk/plurnk-providers-* LLM transport family.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"plurnk",
|
|
@@ -50,11 +50,11 @@
|
|
|
50
50
|
"typescript": "^6.0.3"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@plurnk/plurnk-providers-cloudflare": "0.3.
|
|
54
|
-
"@plurnk/plurnk-providers-google": "0.3.
|
|
55
|
-
"@plurnk/plurnk-providers-ollama": "0.3.
|
|
56
|
-
"@plurnk/plurnk-providers-openrouter": "0.3.
|
|
57
|
-
"@plurnk/plurnk-providers-xai": "0.3.
|
|
53
|
+
"@plurnk/plurnk-providers-cloudflare": "0.3.2",
|
|
54
|
+
"@plurnk/plurnk-providers-google": "0.3.2",
|
|
55
|
+
"@plurnk/plurnk-providers-ollama": "0.3.2",
|
|
56
|
+
"@plurnk/plurnk-providers-openrouter": "0.3.2",
|
|
57
|
+
"@plurnk/plurnk-providers-xai": "0.3.2",
|
|
58
58
|
"gpt-tokenizer": "^3.4.0",
|
|
59
59
|
"llama-tokenizer-js": "^1.2.2"
|
|
60
60
|
}
|