@plurnk/plurnk-providers 1.6.0 → 1.7.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 (91) hide show
  1. package/.env.defaults +9 -16
  2. package/README.md +17 -0
  3. package/SPEC.md +128 -45
  4. package/dist/AiSdkProvider.d.ts +16 -9
  5. package/dist/AiSdkProvider.d.ts.map +1 -1
  6. package/dist/AiSdkProvider.js +151 -54
  7. package/dist/AiSdkProvider.js.map +1 -1
  8. package/dist/Mock.d.ts +8 -4
  9. package/dist/Mock.d.ts.map +1 -1
  10. package/dist/Mock.js +53 -18
  11. package/dist/Mock.js.map +1 -1
  12. package/dist/Pool.d.ts +8 -4
  13. package/dist/Pool.d.ts.map +1 -1
  14. package/dist/Pool.js +68 -12
  15. package/dist/Pool.js.map +1 -1
  16. package/dist/accounting.d.ts.map +1 -1
  17. package/dist/accounting.js.map +1 -1
  18. package/dist/accountingPublic.d.ts +5 -0
  19. package/dist/accountingPublic.d.ts.map +1 -0
  20. package/dist/accountingPublic.js +3 -0
  21. package/dist/accountingPublic.js.map +1 -0
  22. package/dist/capacity.d.ts +26 -0
  23. package/dist/capacity.d.ts.map +1 -0
  24. package/dist/capacity.js +90 -0
  25. package/dist/capacity.js.map +1 -0
  26. package/dist/catalogProvider.d.ts +2 -1
  27. package/dist/catalogProvider.d.ts.map +1 -1
  28. package/dist/catalogProvider.js +18 -20
  29. package/dist/catalogProvider.js.map +1 -1
  30. package/dist/compatibleProvider.d.ts.map +1 -1
  31. package/dist/compatibleProvider.js +10 -7
  32. package/dist/compatibleProvider.js.map +1 -1
  33. package/dist/env.d.ts +8 -10
  34. package/dist/env.d.ts.map +1 -1
  35. package/dist/env.js +54 -37
  36. package/dist/env.js.map +1 -1
  37. package/dist/errors.d.ts +6 -22
  38. package/dist/errors.d.ts.map +1 -1
  39. package/dist/errors.js +30 -91
  40. package/dist/errors.js.map +1 -1
  41. package/dist/index.d.ts +4 -3
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +2 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/promptTokens.d.ts.map +1 -1
  46. package/dist/promptTokens.js +7 -4
  47. package/dist/promptTokens.js.map +1 -1
  48. package/dist/providerError.d.ts +25 -0
  49. package/dist/providerError.d.ts.map +1 -0
  50. package/dist/providerError.js +91 -0
  51. package/dist/providerError.js.map +1 -0
  52. package/dist/sdkModels.d.ts +1 -0
  53. package/dist/sdkModels.d.ts.map +1 -1
  54. package/dist/sdkModels.js +5 -8
  55. package/dist/sdkModels.js.map +1 -1
  56. package/dist/types.d.ts +24 -4
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/usage.d.ts +1 -0
  59. package/dist/usage.d.ts.map +1 -1
  60. package/dist/usage.js +7 -2
  61. package/dist/usage.js.map +1 -1
  62. package/package.json +22 -7
  63. package/src/AiSdkProvider.test.ts +198 -37
  64. package/src/AiSdkProvider.ts +192 -59
  65. package/src/Mock.test.ts +32 -18
  66. package/src/Mock.ts +58 -19
  67. package/src/Pool.test.ts +71 -13
  68. package/src/Pool.ts +78 -13
  69. package/src/ProviderRegistry.test.ts +1 -1
  70. package/src/accounting.ts +0 -1
  71. package/src/accountingPublic.ts +9 -0
  72. package/src/boundaries.test.ts +28 -15
  73. package/src/capacity.test.ts +92 -0
  74. package/src/capacity.ts +140 -0
  75. package/src/catalogProvider.test.ts +82 -9
  76. package/src/catalogProvider.ts +24 -21
  77. package/src/compatibleProvider.test.ts +1 -2
  78. package/src/compatibleProvider.ts +10 -7
  79. package/src/cost.test.ts +31 -0
  80. package/src/env.test.ts +49 -20
  81. package/src/env.ts +114 -51
  82. package/src/errors.test.ts +33 -0
  83. package/src/errors.ts +38 -134
  84. package/src/index.ts +5 -2
  85. package/src/ollama.test.ts +1 -2
  86. package/src/promptTokens.ts +8 -5
  87. package/src/providerError.ts +139 -0
  88. package/src/sdkModels.test.ts +2 -5
  89. package/src/sdkModels.ts +6 -8
  90. package/src/types.ts +41 -19
  91. package/src/usage.ts +7 -2
package/dist/Mock.js CHANGED
@@ -4,9 +4,10 @@
4
4
  // engine tests; (b) worked example for sibling authors implementing the
5
5
  // Provider contract. Production providers don't expose the `ops` escape
6
6
  // hatch — that's an intg-only convenience.
7
- import { resolveEnvelopeFromEnv } from "./env.js";
7
+ import { resolveGenerationEnvelopeFromEnv } from "./env.js";
8
8
  import { validateProviderRequestAccounting } from "./accounting.js";
9
9
  import { ProviderError } from "./errors.js";
10
+ import { assessRequestCapacity, effectiveInputCapacity, effectiveOutputBudget, effectiveReasoningBudget } from "./capacity.js";
10
11
  const DEFAULT_USAGE = {
11
12
  inputTokens: 0,
12
13
  outputTokens: 0,
@@ -14,27 +15,33 @@ const DEFAULT_USAGE = {
14
15
  };
15
16
  export default class Mock {
16
17
  #contextWindow;
17
- #reasoningReserve;
18
- #completionReserve;
18
+ #outputBudget;
19
+ #reasoningBudget;
19
20
  #queue;
20
- // {§provider-generation-envelope} Reserves resolve the same way a real
21
- // provider's do — the tolerant env read (the service's partition/budget
22
- // suite sets PLURNK_PROVIDERS_*_RESERVE
23
- // and Mock reflects it, resolved against contextWindow). Tolerant, NOT the
24
- // fail-hard envelopeFromEnv: Mock is the universal fixture, constructed
25
- // without the reserves in most base tests, so absent env → null → the
26
- // consumer's no-cap path, and the ~100 `new Mock({ contextWindow, responses })`
27
- // sites stay untouched. Mock has no alias identity, so it reads the BARE knobs.
21
+ // {§provider-generation-envelope} Mock resolves the same generation
22
+ // envelope as a real provider, but tolerates absent policy because it is
23
+ // also the universal test fixture. No output budget means its context
24
+ // window alone cannot determine an input capacity. Mock has no alias
25
+ // identity, so it reads the bare knobs.
28
26
  constructor({ contextWindow, responses }) {
29
27
  this.#contextWindow = contextWindow;
30
- const env = resolveEnvelopeFromEnv(process.env, contextWindow);
31
- this.#reasoningReserve = env.reasoningReserve;
32
- this.#completionReserve = env.completionReserve;
28
+ const envelope = resolveGenerationEnvelopeFromEnv(process.env, contextWindow);
29
+ this.#outputBudget = envelope.outputBudget;
30
+ this.#reasoningBudget = envelope.reasoningBudget;
33
31
  this.#queue = [...responses];
34
32
  }
35
33
  get contextWindow() { return this.#contextWindow; }
36
- get reasoningReserve() { return this.#reasoningReserve; }
37
- get completionReserve() { return this.#completionReserve; }
34
+ get maxInputTokens() { return null; }
35
+ get maxOutputTokens() { return null; }
36
+ get outputBudget() { return this.#outputBudget; }
37
+ get reasoningBudget() { return this.#reasoningBudget; }
38
+ get inputCapacity() {
39
+ return effectiveInputCapacity({
40
+ contextWindow: this.#contextWindow,
41
+ maxInputTokens: this.maxInputTokens,
42
+ outputBudget: this.#outputBudget,
43
+ });
44
+ }
38
45
  get model() { return "mock"; }
39
46
  // Mock's deliberately simple vocabulary defines each two content code units
40
47
  // as one token and has no hidden request framing. This is exact for the mock,
@@ -46,11 +53,38 @@ export default class Mock {
46
53
  source: "mock:chars2",
47
54
  };
48
55
  }
49
- async generate({ signal, grammar, observeRequest }) {
56
+ async assessRequestCapacity(messages, maxOutputTokens) {
57
+ const outputBudget = effectiveOutputBudget({
58
+ requested: maxOutputTokens,
59
+ configured: this.#outputBudget,
60
+ maxOutputTokens: null,
61
+ contextWindow: this.#contextWindow,
62
+ });
63
+ const reasoningBudget = effectiveReasoningBudget({
64
+ configured: this.#reasoningBudget,
65
+ outputBudget,
66
+ });
67
+ return assessRequestCapacity({
68
+ contextWindow: this.#contextWindow,
69
+ maxInputTokens: null,
70
+ maxOutputTokens: null,
71
+ outputBudget,
72
+ reasoningBudget,
73
+ measurement: await this.countPromptTokens(messages),
74
+ });
75
+ }
76
+ async generate({ messages, maxOutputTokens, signal, grammar, observeRequest }) {
50
77
  // Honor abort before consuming the queue — an aborted call makes no
51
78
  // "wire call" and must not exhaust a queued response
52
79
  // ({§provider-failure-normalization}).
53
80
  signal?.throwIfAborted();
81
+ const capacity = await this.assessRequestCapacity(messages, maxOutputTokens);
82
+ if (capacity.decision === "reject") {
83
+ throw new ProviderError("mock", "capacity_exceeded", "Mock request exceeds its exact input capacity.", {
84
+ capacity,
85
+ extensions: { capacityStage: "preflight", capacity },
86
+ });
87
+ }
54
88
  const settle = await observeRequest?.({ provider: "provider:mock", model: this.model });
55
89
  const next = this.#queue.shift();
56
90
  if (next === undefined) {
@@ -61,7 +95,7 @@ export default class Mock {
61
95
  cost: { kind: "unknown", reason: "mock provider exhausted before producing a response" },
62
96
  });
63
97
  await settle?.(accounting);
64
- throw new ProviderError("mock", "invalid_response", "Mock provider exhausted: no more queued responses", { accounting: [accounting] });
98
+ throw new ProviderError("mock", "invalid_response", "Mock provider exhausted: no more queued responses", { accounting: [accounting], capacity });
65
99
  }
66
100
  const a = next.assistant;
67
101
  const usage = {
@@ -96,6 +130,7 @@ export default class Mock {
96
130
  assistant,
97
131
  assistantRaw: next.assistantRaw ?? null,
98
132
  accounting: [requestAccounting],
133
+ capacity,
99
134
  ...(grammarEvidence !== undefined ? { grammarEvidence } : {}),
100
135
  };
101
136
  }
package/dist/Mock.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Mock.js","sourceRoot":"","sources":["../src/Mock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mock.js","sourceRoot":"","sources":["../src/Mock.ts"],"names":[],"mappings":"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"}
package/dist/Pool.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Provider, ProviderResponse, ChatMessage, PromptTokenMeasurement } from "./types.ts";
1
+ import type { Provider, ProviderRequestCapacity, ProviderResponse, ChatMessage, PromptTokenMeasurement } from "./types.ts";
2
2
  import { type PluginAttribution, type PluginAttributionContext } from "@plurnk/plurnk-meta";
3
3
  export default class Pool implements Provider {
4
4
  #private;
@@ -7,12 +7,16 @@ export default class Pool implements Provider {
7
7
  constructor(backends: readonly Provider[]);
8
8
  get model(): string;
9
9
  get contextWindow(): number | null;
10
- get reasoningReserve(): number | null | undefined;
11
- get completionReserve(): number | null | undefined;
10
+ get maxInputTokens(): number | null;
11
+ get maxOutputTokens(): number | null;
12
+ get outputBudget(): number | null;
13
+ get reasoningBudget(): number | null;
14
+ get inputCapacity(): number | null;
12
15
  get servedModel(): string | undefined;
13
16
  get constrainsOutput(): boolean | undefined;
14
- get requiresMaxTokens(): boolean | undefined;
17
+ get requiresOutputBudget(): boolean | undefined;
15
18
  countPromptTokens(messages: readonly ChatMessage[], signal?: AbortSignal): Promise<PromptTokenMeasurement>;
19
+ assessRequestCapacity(messages: readonly ChatMessage[], maxOutputTokens?: number, signal?: AbortSignal): Promise<ProviderRequestCapacity>;
16
20
  generate(args: Parameters<Provider["generate"]>[0]): Promise<ProviderResponse>;
17
21
  }
18
22
  //# sourceMappingURL=Pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pool.d.ts","sourceRoot":"","sources":["../src/Pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA6B,gBAAgB,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAI7H,OAAa,EACT,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAChC,MAAM,qBAAqB,CAAC;AAuB7B,MAAM,CAAC,OAAO,OAAO,IAAK,YAAW,QAAQ;;IASzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,iBAAiB,CAAC;IAEjF,YAAY,QAAQ,EAAE,SAAS,QAAQ,EAAE,EAgCxC;IAID,IAAI,KAAK,IAAI,MAAM,CAAoC;IACvD,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAAsC;IACxE,IAAI,gBAAgB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAAyC;IAC1F,IAAI,iBAAiB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAA0C;IAK5F,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAGpC;IACD,IAAI,gBAAgB,IAAI,OAAO,GAAG,SAAS,CAE1C;IACD,IAAI,iBAAiB,IAAI,OAAO,GAAG,SAAS,CAE3C;IAEK,iBAAiB,CACnB,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,sBAAsB,CAAC,CAwBjC;IAGK,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkCnF;CAsBJ"}
1
+ {"version":3,"file":"Pool.d.ts","sourceRoot":"","sources":["../src/Pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA6B,uBAAuB,EAAE,gBAAgB,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAItJ,OAAa,EACT,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAChC,MAAM,qBAAqB,CAAC;AAwB7B,MAAM,CAAC,OAAO,OAAO,IAAK,YAAW,QAAQ;;IASzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,iBAAiB,CAAC;IAEjF,YAAY,QAAQ,EAAE,SAAS,QAAQ,EAAE,EAgCxC;IAID,IAAI,KAAK,IAAI,MAAM,CAAoC;IACvD,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAAsC;IAOxE,IAAI,cAAc,IAAI,MAAM,GAAG,IAAI,CAAsE;IACzG,IAAI,eAAe,IAAI,MAAM,GAAG,IAAI,CAAuE;IAC3G,IAAI,YAAY,IAAI,MAAM,GAAG,IAAI,CAAoE;IACrG,IAAI,eAAe,IAAI,MAAM,GAAG,IAAI,CAAuE;IAC3G,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAAqE;IAKvG,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAGpC;IACD,IAAI,gBAAgB,IAAI,OAAO,GAAG,SAAS,CAE1C;IACD,IAAI,oBAAoB,IAAI,OAAO,GAAG,SAAS,CAE9C;IAEK,iBAAiB,CACnB,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,sBAAsB,CAAC,CAoCjC;IAEK,qBAAqB,CACvB,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,eAAe,CAAC,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,uBAAuB,CAAC,CAqClC;IAGK,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkCnF;CAsBJ"}
package/dist/Pool.js CHANGED
@@ -2,6 +2,7 @@ import { ProviderError } from "./errors.js";
2
2
  import { emitWarningOnce } from "./warnings.js";
3
3
  import { assertPromptTokenMeasurement } from "./promptTokens.js";
4
4
  import Meta from "@plurnk/plurnk-meta";
5
+ import { effectiveInputCapacity, effectiveOutputBudget, effectiveReasoningBudget, requestCapacityDecision } from "./capacity.js";
5
6
  // A backend-AVAILABILITY failure: the sub-provider already exhausted its OWN
6
7
  // transient retries before throwing one of these, so re-hitting the same
7
8
  // backend is pointless - a sibling may still serve, so the pool overflows to it.
@@ -27,7 +28,7 @@ export default class Pool {
27
28
  #affinity = new Map(); // workerId -> backend index; sticky, LRU-bounded
28
29
  #cap; // LRU ceiling on the affinity map
29
30
  #next = 0; // round-robin cursor for NEW workers
30
- #floor; // the min-window backend: the safe budget floor
31
+ #floor; // the min-window backend: the safe context floor
31
32
  // Optional exact tokenizer: present iff every backend exposes one (same
32
33
  // vocab, since interchangeable). Delegated; absent when the fleet can't.
33
34
  tokenize;
@@ -45,9 +46,9 @@ export default class Pool {
45
46
  this.#backends = backends;
46
47
  this.#cap = backends.length * 8;
47
48
  // The exposed window is the SAFE FLOOR across backends (a packet that fits the
48
- // smallest fits all); its reserves travel with it so the budget stays
49
- // self-consistent. ANY unknown (null) window makes the pool null - a worker
50
- // might route to it, and the consumer must not improvise a cap
49
+ // smallest fits all). Every other capacity fact aggregates independently
50
+ // below. ANY unknown (null) window makes the pool null - a worker might
51
+ // route to it, and the consumer must not improvise a cap
51
52
  // ({§model-fact-resolution}).
52
53
  const anyUnknown = backends.find((b) => b.contextWindow === null);
53
54
  this.#floor = anyUnknown ?? backends.reduce((lo, b) => (b.contextWindow < lo.contextWindow ? b : lo));
@@ -64,11 +65,20 @@ export default class Pool {
64
65
  // --- Provider surface: interchangeable backends collapse to one honest face ---
65
66
  get model() { return this.#backends[0].model; }
66
67
  get contextWindow() { return this.#floor.contextWindow; }
67
- get reasoningReserve() { return this.#floor.reasoningReserve; }
68
- get completionReserve() { return this.#floor.completionReserve; }
68
+ #minimumKnown(project) {
69
+ const values = this.#backends.map(project);
70
+ return values.some((value) => value === null)
71
+ ? null
72
+ : Math.min(...values);
73
+ }
74
+ get maxInputTokens() { return this.#minimumKnown((provider) => provider.maxInputTokens); }
75
+ get maxOutputTokens() { return this.#minimumKnown((provider) => provider.maxOutputTokens); }
76
+ get outputBudget() { return this.#minimumKnown((provider) => provider.outputBudget); }
77
+ get reasoningBudget() { return this.#minimumKnown((provider) => provider.reasoningBudget); }
78
+ get inputCapacity() { return this.#minimumKnown((provider) => provider.inputCapacity); }
69
79
  // Served id / capabilities aggregate CONSERVATIVELY: a worker could land on any
70
80
  // backend, so claim `constrainsOutput` only if EVERY backend does, and
71
- // `requiresMaxTokens` if ANY does (bring a cap if even one backend needs it).
81
+ // `requiresOutputBudget` if ANY does (bring a cap if even one backend needs it).
72
82
  get servedModel() {
73
83
  const s = this.#backends[0].servedModel;
74
84
  return this.#backends.every((b) => b.servedModel === s) ? s : undefined;
@@ -76,13 +86,22 @@ export default class Pool {
76
86
  get constrainsOutput() {
77
87
  return this.#backends.every((b) => b.constrainsOutput === true) ? true : undefined;
78
88
  }
79
- get requiresMaxTokens() {
80
- return this.#backends.some((b) => b.requiresMaxTokens === true) ? true : undefined;
89
+ get requiresOutputBudget() {
90
+ return this.#backends.some((b) => b.requiresOutputBudget === true) ? true : undefined;
81
91
  }
82
92
  async countPromptTokens(messages, signal) {
83
93
  const measurements = await Promise.all(this.#backends.map(async (backend) => assertPromptTokenMeasurement(await backend.countPromptTokens(messages, signal), `Pool backend ${backend.model}`)));
84
- const tokens = Math.max(...measurements.map((measurement) => measurement.tokens));
85
94
  const sources = [...new Set(measurements.map(({ source }) => source))].join(",");
95
+ const unavailable = measurements.find((measurement) => measurement.kind === "unavailable");
96
+ if (unavailable?.kind === "unavailable") {
97
+ return {
98
+ kind: "unavailable",
99
+ source: `pool:${sources}`,
100
+ detail: `at least one interchangeable backend cannot measure the request: ${unavailable.detail}`,
101
+ };
102
+ }
103
+ const available = measurements.filter((measurement) => measurement.kind !== "unavailable");
104
+ const tokens = Math.max(...available.map((measurement) => measurement.tokens));
86
105
  const estimate = measurements.find((measurement) => measurement.kind === "estimate");
87
106
  if (estimate?.kind === "estimate") {
88
107
  return {
@@ -92,14 +111,51 @@ export default class Pool {
92
111
  detail: `at least one interchangeable backend has only an estimate: ${estimate.detail}`,
93
112
  };
94
113
  }
95
- const exact = measurements.every((measurement) => measurement.kind === "exact")
96
- && measurements.every((measurement) => measurement.tokens === tokens);
114
+ const exact = available.every((measurement) => measurement.kind === "exact")
115
+ && available.every((measurement) => measurement.tokens === tokens);
97
116
  return {
98
117
  kind: exact ? "exact" : "upper_bound",
99
118
  tokens,
100
119
  source: `pool:${sources}`,
101
120
  };
102
121
  }
122
+ async assessRequestCapacity(messages, maxOutputTokens, signal) {
123
+ const envelopes = this.#backends.map((provider) => {
124
+ const outputBudget = effectiveOutputBudget({
125
+ requested: maxOutputTokens,
126
+ configured: provider.outputBudget,
127
+ maxOutputTokens: provider.maxOutputTokens,
128
+ contextWindow: provider.contextWindow,
129
+ });
130
+ return {
131
+ outputBudget,
132
+ reasoningBudget: effectiveReasoningBudget({
133
+ configured: provider.reasoningBudget,
134
+ outputBudget,
135
+ }),
136
+ inputCapacity: effectiveInputCapacity({
137
+ contextWindow: provider.contextWindow,
138
+ maxInputTokens: provider.maxInputTokens,
139
+ outputBudget,
140
+ }),
141
+ };
142
+ });
143
+ const minimum = (values) => values.some((value) => value === null)
144
+ ? null
145
+ : Math.min(...values);
146
+ const measurement = await this.countPromptTokens(messages, signal);
147
+ const inputCapacity = minimum(envelopes.map((envelope) => envelope.inputCapacity));
148
+ return {
149
+ decision: requestCapacityDecision(inputCapacity, measurement),
150
+ contextWindow: this.contextWindow,
151
+ maxInputTokens: this.maxInputTokens,
152
+ maxOutputTokens: this.maxOutputTokens,
153
+ outputBudget: minimum(envelopes.map((envelope) => envelope.outputBudget)),
154
+ reasoningBudget: minimum(envelopes.map((envelope) => envelope.reasoningBudget)),
155
+ inputCapacity,
156
+ prompt: measurement,
157
+ };
158
+ }
103
159
  // --- dispatch ---
104
160
  async generate(args) {
105
161
  const { workerId, signal } = args;
package/dist/Pool.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Pool.js","sourceRoot":"","sources":["../src/Pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pool.js","sourceRoot":"","sources":["../src/Pool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"accounting.d.ts","sourceRoot":"","sources":["../src/accounting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,kBAAkB,EAElB,sBAAsB,EACtB,yBAAyB,EAE5B,MAAM,YAAY,CAAC;AA+EpB,eAAO,MAAM,oBAAoB,EAAE,sBAGlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,eACnB,MAAM,KACnB,sBAAsB,GAAG,SAO3B,CAAC;AAEF,eAAO,MAAM,iCAAiC,UACnC,OAAO,KACf,yBAmBF,CAAC;AAcF,eAAO,MAAM,2BAA2B,WAC5B,SAAS,yBAAyB,EAAE,KAC7C,kBAkDF,CAAC"}
1
+ {"version":3,"file":"accounting.d.ts","sourceRoot":"","sources":["../src/accounting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EAE5B,MAAM,YAAY,CAAC;AA+EpB,eAAO,MAAM,oBAAoB,EAAE,sBAGlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,eACnB,MAAM,KACnB,sBAAsB,GAAG,SAO3B,CAAC;AAEF,eAAO,MAAM,iCAAiC,UACnC,OAAO,KACf,yBAmBF,CAAC;AAcF,eAAO,MAAM,2BAA2B,WAC5B,SAAS,yBAAyB,EAAE,KAC7C,kBAkDF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"accounting.js","sourceRoot":"","sources":["../src/accounting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accounting.js","sourceRoot":"","sources":["../src/accounting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { aggregateProviderAccounting } from "./accounting.ts";
2
+ export { estimateProviderCost } from "./cost.ts";
3
+ export type { ProviderAccounting, ProviderCost, ProviderRequestAccounting, ProviderUsage, } from "./types.ts";
4
+ export type { TokenRates } from "./usage.ts";
5
+ //# sourceMappingURL=accountingPublic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accountingPublic.d.ts","sourceRoot":"","sources":["../src/accountingPublic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EACR,kBAAkB,EAClB,YAAY,EACZ,yBAAyB,EACzB,aAAa,GAChB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { aggregateProviderAccounting } from "./accounting.js";
2
+ export { estimateProviderCost } from "./cost.js";
3
+ //# sourceMappingURL=accountingPublic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accountingPublic.js","sourceRoot":"","sources":["../src/accountingPublic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { PromptTokenMeasurement, ProviderRequestCapacity } from "./types.ts";
2
+ export declare const effectiveOutputBudget: ({ requested, configured, maxOutputTokens, contextWindow, }: {
3
+ requested?: number;
4
+ configured: number | null;
5
+ maxOutputTokens: number | null;
6
+ contextWindow: number | null;
7
+ }) => number | null;
8
+ export declare const effectiveReasoningBudget: ({ configured, outputBudget, }: {
9
+ configured: number | null;
10
+ outputBudget: number | null;
11
+ }) => number | null;
12
+ export declare const effectiveInputCapacity: ({ contextWindow, maxInputTokens, outputBudget, }: {
13
+ contextWindow: number | null;
14
+ maxInputTokens: number | null;
15
+ outputBudget: number | null;
16
+ }) => number | null;
17
+ export declare const requestCapacityDecision: (inputCapacity: number | null, measurement: PromptTokenMeasurement) => ProviderRequestCapacity["decision"];
18
+ export declare const assessRequestCapacity: ({ contextWindow, maxInputTokens, maxOutputTokens, outputBudget, reasoningBudget, measurement, }: {
19
+ contextWindow: number | null;
20
+ maxInputTokens: number | null;
21
+ maxOutputTokens: number | null;
22
+ outputBudget: number | null;
23
+ reasoningBudget: number | null;
24
+ measurement: PromptTokenMeasurement;
25
+ }) => ProviderRequestCapacity;
26
+ //# sourceMappingURL=capacity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capacity.d.ts","sourceRoot":"","sources":["../src/capacity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,sBAAsB,EACtB,uBAAuB,EAC1B,MAAM,YAAY,CAAC;AAWpB,eAAO,MAAM,qBAAqB,+DAK/B;IACC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,KAAG,MAAM,GAAG,IAWZ,CAAC;AAEF,eAAO,MAAM,wBAAwB,kCAGlC;IACC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,KAAG,MAAM,GAAG,IAWZ,CAAC;AAEF,eAAO,MAAM,sBAAsB,qDAIhC;IACC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,KAAG,MAAM,GAAG,IAiBZ,CAAC;AAEF,eAAO,MAAM,uBAAuB,kBACjB,MAAM,GAAG,IAAI,eACf,sBAAsB,KACpC,uBAAuB,CAAC,UAAU,CAcpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,oGAO/B;IACC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,sBAAsB,CAAC;CACvC,KAAG,uBAuBH,CAAC"}
@@ -0,0 +1,90 @@
1
+ import { assertPromptTokenMeasurement } from "./promptTokens.js";
2
+ const positiveOrNull = (value, name) => {
3
+ if (value === null)
4
+ return null;
5
+ if (!Number.isSafeInteger(value) || value <= 0) {
6
+ throw new TypeError(`${name} must be a positive safe integer or null`);
7
+ }
8
+ return value;
9
+ };
10
+ export const effectiveOutputBudget = ({ requested, configured, maxOutputTokens, contextWindow, }) => {
11
+ if (requested !== undefined && (!Number.isSafeInteger(requested) || requested <= 0)) {
12
+ throw new TypeError("maxOutputTokens must be a positive safe integer");
13
+ }
14
+ const policies = [requested ?? null, configured].filter((value) => value !== null);
15
+ if (policies.length === 0)
16
+ return null;
17
+ const physical = [
18
+ positiveOrNull(maxOutputTokens, "maxOutputTokens"),
19
+ positiveOrNull(contextWindow, "contextWindow"),
20
+ ].filter((value) => value !== null);
21
+ return Math.min(...policies, ...physical);
22
+ };
23
+ export const effectiveReasoningBudget = ({ configured, outputBudget, }) => {
24
+ positiveOrNull(configured, "reasoningBudget");
25
+ positiveOrNull(outputBudget, "outputBudget");
26
+ if (configured === null)
27
+ return null;
28
+ if (outputBudget === null) {
29
+ throw new TypeError("a reasoning budget requires a resolved total output budget");
30
+ }
31
+ if (outputBudget < 2) {
32
+ throw new TypeError("maxOutputTokens must leave at least one token outside the reasoning budget");
33
+ }
34
+ return Math.min(configured, outputBudget - 1);
35
+ };
36
+ export const effectiveInputCapacity = ({ contextWindow, maxInputTokens, outputBudget, }) => {
37
+ positiveOrNull(contextWindow, "contextWindow");
38
+ positiveOrNull(maxInputTokens, "maxInputTokens");
39
+ positiveOrNull(outputBudget, "outputBudget");
40
+ const combinedCapacity = contextWindow !== null && outputBudget !== null
41
+ ? contextWindow - outputBudget
42
+ : null;
43
+ if (combinedCapacity !== null && combinedCapacity <= 0) {
44
+ throw new TypeError(`outputBudget (${outputBudget}) must leave positive input capacity inside contextWindow (${contextWindow})`);
45
+ }
46
+ const capacities = [
47
+ maxInputTokens,
48
+ combinedCapacity,
49
+ ].filter((value) => value !== null);
50
+ return capacities.length === 0 ? null : Math.min(...capacities);
51
+ };
52
+ export const requestCapacityDecision = (inputCapacity, measurement) => {
53
+ const prompt = assertPromptTokenMeasurement(measurement, "provider capacity");
54
+ // An upper bound can prove fit when it is below the limit, but exceeding
55
+ // the limit proves nothing about the unknown exact count. Estimates never
56
+ // authorize or reject; the provider remains the capacity oracle.
57
+ return inputCapacity === null
58
+ || prompt.kind === "estimate"
59
+ || prompt.kind === "unavailable"
60
+ ? "defer"
61
+ : prompt.tokens <= inputCapacity
62
+ ? "admit"
63
+ : prompt.kind === "exact"
64
+ ? "reject"
65
+ : "defer";
66
+ };
67
+ export const assessRequestCapacity = ({ contextWindow, maxInputTokens, maxOutputTokens, outputBudget, reasoningBudget, measurement, }) => {
68
+ positiveOrNull(contextWindow, "contextWindow");
69
+ positiveOrNull(maxInputTokens, "maxInputTokens");
70
+ positiveOrNull(maxOutputTokens, "maxOutputTokens");
71
+ positiveOrNull(outputBudget, "outputBudget");
72
+ positiveOrNull(reasoningBudget, "reasoningBudget");
73
+ if (reasoningBudget !== null
74
+ && (outputBudget === null || reasoningBudget >= outputBudget)) {
75
+ throw new TypeError("reasoningBudget must be a strict subset of outputBudget");
76
+ }
77
+ const prompt = assertPromptTokenMeasurement(measurement, "provider capacity");
78
+ const inputCapacity = effectiveInputCapacity({ contextWindow, maxInputTokens, outputBudget });
79
+ return {
80
+ decision: requestCapacityDecision(inputCapacity, prompt),
81
+ contextWindow,
82
+ maxInputTokens,
83
+ maxOutputTokens,
84
+ outputBudget,
85
+ reasoningBudget,
86
+ inputCapacity,
87
+ prompt,
88
+ };
89
+ };
90
+ //# sourceMappingURL=capacity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capacity.js","sourceRoot":"","sources":["../src/capacity.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAE,IAAY,EAAiB,EAAE;IACzE,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,0CAA0C,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAClC,SAAS,EACT,UAAU,EACV,eAAe,EACf,aAAa,GAMhB,EAAiB,EAAE;IAChB,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC;QAClF,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACpG,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,QAAQ,GAAG;QACb,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;QAClD,cAAc,CAAC,aAAa,EAAE,eAAe,CAAC;KACjD,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACrC,UAAU,EACV,YAAY,GAIf,EAAiB,EAAE;IAChB,cAAc,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAC9C,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7C,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,SAAS,CAAC,4EAA4E,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACnC,aAAa,EACb,cAAc,EACd,YAAY,GAKf,EAAiB,EAAE;IAChB,cAAc,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAC/C,cAAc,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACjD,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GAAG,aAAa,KAAK,IAAI,IAAI,YAAY,KAAK,IAAI;QACpE,CAAC,CAAC,aAAa,GAAG,YAAY;QAC9B,CAAC,CAAC,IAAI,CAAC;IACX,IAAI,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,SAAS,CACf,iBAAiB,YAAY,8DAA8D,aAAa,GAAG,CAC9G,CAAC;IACN,CAAC;IACD,MAAM,UAAU,GAAG;QACf,cAAc;QACd,gBAAgB;KACnB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACrD,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACnC,aAA4B,EAC5B,WAAmC,EACA,EAAE;IACrC,MAAM,MAAM,GAAG,4BAA4B,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAC9E,yEAAyE;IACzE,0EAA0E;IAC1E,iEAAiE;IACjE,OAAO,aAAa,KAAK,IAAI;WACtB,MAAM,CAAC,IAAI,KAAK,UAAU;WAC1B,MAAM,CAAC,IAAI,KAAK,aAAa;QAChC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,aAAa;YAC5B,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;gBACrB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAClC,aAAa,EACb,cAAc,EACd,eAAe,EACf,YAAY,EACZ,eAAe,EACf,WAAW,GAQd,EAA2B,EAAE;IAC1B,cAAc,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAC/C,cAAc,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACjD,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;IACnD,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7C,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;IACnD,IAAI,eAAe,KAAK,IAAI;WACrB,CAAC,YAAY,KAAK,IAAI,IAAI,eAAe,IAAI,YAAY,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,MAAM,GAAG,4BAA4B,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,sBAAsB,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;IAE9F,OAAO;QACH,QAAQ,EAAE,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC;QACxD,aAAa;QACb,cAAc;QACd,eAAe;QACf,YAAY;QACZ,eAAe;QACf,aAAa;QACb,MAAM;KACT,CAAC;AACN,CAAC,CAAC"}
@@ -3,7 +3,7 @@ import type { Provider, ProviderCostNormalizer } from "./types.ts";
3
3
  import type { LanguageModel } from "ai";
4
4
  import type { AiSdkProviderOptions, CacheAffinity } from "./AiSdkProvider.ts";
5
5
  import type { PluginAttribution, PluginAttributionContext } from "@plurnk/plurnk-meta";
6
- export declare const providerFromSdkModel: ({ name, env, model, languageModel, normalizeCost, url, headers, contextWindow, info, attributions, cacheAffinity, systemCacheProviderOptions, reasoningResponseProviderOptions, }: {
6
+ export declare const providerFromSdkModel: ({ name, env, model, languageModel, normalizeCost, url, headers, contextWindow, info, attributions, cacheAffinity, systemCacheProviderOptions, reasoningResponseProviderOptions, additiveReasoningProvider, }: {
7
7
  name: string;
8
8
  env: NodeJS.ProcessEnv;
9
9
  model: string;
@@ -17,6 +17,7 @@ export declare const providerFromSdkModel: ({ name, env, model, languageModel, n
17
17
  cacheAffinity?: CacheAffinity;
18
18
  systemCacheProviderOptions?: AiSdkProviderOptions;
19
19
  reasoningResponseProviderOptions?: AiSdkProviderOptions;
20
+ additiveReasoningProvider?: "anthropic" | "bedrock";
20
21
  }) => Provider;
21
22
  export declare const catalogProviderFromEnv: (name: string, env: NodeJS.ProcessEnv, model: string, baseUrlOverride?: string) => Provider | null;
22
23
  //# sourceMappingURL=catalogProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalogProvider.d.ts","sourceRoot":"","sources":["../src/catalogProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAmBrF,OAAO,KAAK,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAmBvF,eAAO,MAAM,oBAAoB,sLAc9B;IACC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,iBAAiB,CAAC;IACxE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,0BAA0B,CAAC,EAAE,oBAAoB,CAAC;IAClD,gCAAgC,CAAC,EAAE,oBAAoB,CAAC;CAC3D,KAAG,QA2EH,CAAC;AAEF,eAAO,MAAM,sBAAsB,SACzB,MAAM,OACP,MAAM,CAAC,UAAU,SACf,MAAM,oBACK,MAAM,KACzB,QAAQ,GAAG,IAmCb,CAAC"}
1
+ {"version":3,"file":"catalogProvider.d.ts","sourceRoot":"","sources":["../src/catalogProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAiBrF,OAAO,KAAK,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAmBvF,eAAO,MAAM,oBAAoB,iNAe9B;IACC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,iBAAiB,CAAC;IACxE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,0BAA0B,CAAC,EAAE,oBAAoB,CAAC;IAClD,gCAAgC,CAAC,EAAE,oBAAoB,CAAC;IACxD,yBAAyB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACvD,KAAG,QA6EH,CAAC;AAEF,eAAO,MAAM,sBAAsB,SACzB,MAAM,OACP,MAAM,CAAC,UAAU,SACf,MAAM,oBACK,MAAM,KACzB,QAAQ,GAAG,IAoCb,CAAC"}