llm-relay 0.46.2 → 0.47.1

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 (69) hide show
  1. package/dist/accounting-store-io.js +1 -9
  2. package/dist/accounting-store-io.js.map +1 -1
  3. package/dist/accounting-store-schema.d.ts +0 -35
  4. package/dist/accounting-store-schema.js +4 -77
  5. package/dist/accounting-store-schema.js.map +1 -1
  6. package/dist/accounting-store.d.ts +7 -0
  7. package/dist/accounting-store.js +3 -1
  8. package/dist/accounting-store.js.map +1 -1
  9. package/dist/availability-snapshot.js +12 -33
  10. package/dist/availability-snapshot.js.map +1 -1
  11. package/dist/availability.d.ts +31 -4
  12. package/dist/availability.js +36 -0
  13. package/dist/availability.js.map +1 -1
  14. package/dist/backend.js +1 -3
  15. package/dist/backend.js.map +1 -1
  16. package/dist/candidates.js +10 -34
  17. package/dist/candidates.js.map +1 -1
  18. package/dist/cli.d.ts +28 -0
  19. package/dist/cli.js +140 -133
  20. package/dist/cli.js.map +1 -1
  21. package/dist/cooldown-clear.d.ts +3 -0
  22. package/dist/cooldown-clear.js +158 -2
  23. package/dist/cooldown-clear.js.map +1 -1
  24. package/dist/dashboard/.vite/manifest.json +1 -1
  25. package/dist/dashboard/assets/{index-u-Ez_oE6.js → index-BA4GdK4p.js} +1 -1
  26. package/dist/dashboard/index.html +1 -1
  27. package/dist/dashboard-contract.js +1 -5
  28. package/dist/dashboard-contract.js.map +1 -1
  29. package/dist/dashboard-routes.js +1 -9
  30. package/dist/dashboard-routes.js.map +1 -1
  31. package/dist/dashboard-static.js +1 -3
  32. package/dist/dashboard-static.js.map +1 -1
  33. package/dist/dialect-stream.js +13 -21
  34. package/dist/dialect-stream.js.map +1 -1
  35. package/dist/json-shape.d.ts +22 -0
  36. package/dist/json-shape.js +40 -0
  37. package/dist/json-shape.js.map +1 -0
  38. package/dist/keys-cli.js +4 -60
  39. package/dist/keys-cli.js.map +1 -1
  40. package/dist/keystore.js +11 -18
  41. package/dist/keystore.js.map +1 -1
  42. package/dist/openai-dialect.js +46 -40
  43. package/dist/openai-dialect.js.map +1 -1
  44. package/dist/openai-request.d.ts +0 -26
  45. package/dist/openai-request.js +1 -3
  46. package/dist/openai-request.js.map +1 -1
  47. package/dist/quota-demotion.js +9 -34
  48. package/dist/quota-demotion.js.map +1 -1
  49. package/dist/refusal-interpretation.js +1 -4
  50. package/dist/refusal-interpretation.js.map +1 -1
  51. package/dist/responses-request.d.ts +0 -76
  52. package/dist/responses-request.js +1 -3
  53. package/dist/responses-request.js.map +1 -1
  54. package/dist/server.js +120 -137
  55. package/dist/server.js.map +1 -1
  56. package/dist/sse-frames.d.ts +39 -0
  57. package/dist/sse-frames.js +65 -0
  58. package/dist/sse-frames.js.map +1 -0
  59. package/dist/stream-commit.js +14 -24
  60. package/dist/stream-commit.js.map +1 -1
  61. package/dist/target-facts.d.ts +6 -0
  62. package/dist/target-facts.js +8 -5
  63. package/dist/target-facts.js.map +1 -1
  64. package/dist/think-tags.js +11 -30
  65. package/dist/think-tags.js.map +1 -1
  66. package/dist/tool-use-ids.d.ts +0 -31
  67. package/dist/tool-use-ids.js +11 -63
  68. package/dist/tool-use-ids.js.map +1 -1
  69. package/package.json +1 -1
@@ -1,5 +1,161 @@
1
- import { makeCredentialId, parseCredentialId } from "./credential-id.js";
2
- import { clearCooldownFacts, clearCredentialInvalidFacts, } from "./target-facts.js";
1
+ import { CREDENTIAL_LABEL_PATTERN, makeCredentialId, parseCredentialId, } from "./credential-id.js";
2
+ import { hasExactKeys, isRecord } from "./json-shape.js";
3
+ import { clearCooldownFacts, clearCredentialInvalidFacts, COOLING_FACT_KINDS, } from "./target-facts.js";
4
+ function nonEmptyString(value) {
5
+ return typeof value === "string" && value.length > 0;
6
+ }
7
+ function credentialIdBelongsTo(provider, value) {
8
+ if (typeof value !== "string")
9
+ return false;
10
+ return parseCredentialId(value)?.provider === provider;
11
+ }
12
+ function targetMatches(value, expected, acceptedKeys) {
13
+ if (!hasExactKeys(value, acceptedKeys))
14
+ return false;
15
+ return acceptedKeys.every((key) => {
16
+ if (key !== "kinds")
17
+ return value[key] === expected[key];
18
+ return Array.isArray(value.kinds) && expected.kinds !== undefined &&
19
+ value.kinds.length === expected.kinds.length &&
20
+ value.kinds.every((kind, index) => kind === expected.kinds[index]);
21
+ });
22
+ }
23
+ function isCooldownFactScope(value) {
24
+ if (!isRecord(value))
25
+ return false;
26
+ switch (value.kind) {
27
+ case "attempt":
28
+ return hasExactKeys(value, ["kind", "provider", "credentialId", "model"]) &&
29
+ nonEmptyString(value.provider) &&
30
+ credentialIdBelongsTo(value.provider, value.credentialId) &&
31
+ nonEmptyString(value.model);
32
+ case "group": {
33
+ const keys = Object.hasOwn(value, "credentialId")
34
+ ? ["kind", "provider", "credentialId", "members"]
35
+ : ["kind", "provider", "members"];
36
+ return hasExactKeys(value, keys) &&
37
+ nonEmptyString(value.provider) &&
38
+ Array.isArray(value.members) &&
39
+ value.members.length > 0 &&
40
+ value.members.every(nonEmptyString) &&
41
+ (!Object.hasOwn(value, "credentialId") || credentialIdBelongsTo(value.provider, value.credentialId));
42
+ }
43
+ case "deployment":
44
+ return hasExactKeys(value, ["kind", "provider", "model"]) &&
45
+ nonEmptyString(value.provider) && nonEmptyString(value.model);
46
+ case "credential":
47
+ return hasExactKeys(value, ["kind", "provider", "credentialId"]) &&
48
+ nonEmptyString(value.provider) && credentialIdBelongsTo(value.provider, value.credentialId);
49
+ case "provider":
50
+ return hasExactKeys(value, ["kind", "provider"]) && nonEmptyString(value.provider);
51
+ case "model":
52
+ return hasExactKeys(value, ["kind", "model"]) && nonEmptyString(value.model);
53
+ default:
54
+ return false;
55
+ }
56
+ }
57
+ function scopeIsContainedByTarget(scope, target) {
58
+ const credentialId = target.credential === undefined
59
+ ? undefined
60
+ : makeCredentialId(target.provider, target.credential);
61
+ switch (scope.kind) {
62
+ case "attempt":
63
+ return scope.provider === target.provider &&
64
+ (target.model === undefined || scope.model === target.model) &&
65
+ (credentialId === undefined || scope.credentialId === credentialId);
66
+ case "group":
67
+ return scope.provider === target.provider &&
68
+ (target.model === undefined || scope.members.every((member) => member === target.model)) &&
69
+ (credentialId === undefined || scope.credentialId === credentialId);
70
+ case "deployment":
71
+ return scope.provider === target.provider && credentialId === undefined &&
72
+ (target.model === undefined || scope.model === target.model);
73
+ case "credential":
74
+ return scope.provider === target.provider && target.model === undefined &&
75
+ (credentialId === undefined || scope.credentialId === credentialId);
76
+ case "provider":
77
+ return scope.provider === target.provider && target.model === undefined && credentialId === undefined;
78
+ case "model":
79
+ return false;
80
+ }
81
+ }
82
+ function isNarrowedScope(value, target) {
83
+ if (!isRecord(value) || typeof value.kind !== "string")
84
+ return false;
85
+ const credentialId = target.credential === undefined
86
+ ? undefined
87
+ : makeCredentialId(target.provider, target.credential);
88
+ switch (value.kind) {
89
+ case "attempt":
90
+ return hasExactKeys(value, ["kind", "provider", "credentialId", "model"]) &&
91
+ value.provider === target.provider && value.credentialId === credentialId &&
92
+ typeof value.model === "string";
93
+ case "group":
94
+ return hasExactKeys(value, ["kind", "provider", "credentialId", "members"]) &&
95
+ value.provider === target.provider && value.credentialId === credentialId &&
96
+ Array.isArray(value.members) && value.members.length > 0 &&
97
+ value.members.every(nonEmptyString);
98
+ case "credential":
99
+ return hasExactKeys(value, ["kind", "provider", "credentialId"]) &&
100
+ value.provider === target.provider && value.credentialId === credentialId;
101
+ default:
102
+ return false;
103
+ }
104
+ }
105
+ function isCooldownCell(value, target, narrowed) {
106
+ if (!isRecord(value) || !hasExactKeys(value, ["provider", "model", "credential"]))
107
+ return false;
108
+ if (value.provider !== target.provider || (!narrowed && !nonEmptyString(value.provider)))
109
+ return false;
110
+ if (!(value.model === null || (narrowed ? typeof value.model === "string" : nonEmptyString(value.model)))) {
111
+ return false;
112
+ }
113
+ if (narrowed) {
114
+ if (value.credential !== target.credential)
115
+ return false;
116
+ }
117
+ else if (!nonEmptyString(value.credential) || !CREDENTIAL_LABEL_PATTERN.test(value.credential)) {
118
+ return false;
119
+ }
120
+ return (target.model === undefined || value.model === target.model) &&
121
+ (target.credential === undefined || value.credential === target.credential);
122
+ }
123
+ function isCooldownFact(value, target, narrowed) {
124
+ if (!isRecord(value) || !hasExactKeys(value, ["kind", "scope"]))
125
+ return false;
126
+ if (narrowed) {
127
+ return value.kind === "credential-invalid" && isNarrowedScope(value.scope, target);
128
+ }
129
+ return typeof value.kind === "string" &&
130
+ COOLING_FACT_KINDS.has(value.kind) &&
131
+ isCooldownFactScope(value.scope) &&
132
+ scopeIsContainedByTarget(value.scope, target);
133
+ }
134
+ function isClearedGroup(value, isItem) {
135
+ if (!isRecord(value) || !hasExactKeys(value, ["count", "items"]) ||
136
+ typeof value.count !== "number" || !Number.isSafeInteger(value.count) ||
137
+ value.count < 0 || !Array.isArray(value.items)) {
138
+ return false;
139
+ }
140
+ return value.count === value.items.length && value.items.every(isItem);
141
+ }
142
+ /** Validate the cooldown-clear wire envelope under a caller-owned exact target-key policy. */
143
+ export function isCooldownClearResult(value, expectedTarget, acceptedTargetKeys) {
144
+ if (!isRecord(value) || !hasExactKeys(value, ["target", "cleared"]) ||
145
+ !targetMatches(value.target, expectedTarget, acceptedTargetKeys) ||
146
+ !isRecord(value.cleared) ||
147
+ !hasExactKeys(value.cleared, ["breakerCells", "credentialFaults", "facts"])) {
148
+ return false;
149
+ }
150
+ // Derived from the semantic condition the PRODUCER uses (`target.kinds !== undefined` in
151
+ // clearCooldowns), not from the key-policy array — one definition of "narrowed" per file.
152
+ const narrowed = expectedTarget.kinds !== undefined;
153
+ return isClearedGroup(value.cleared.breakerCells, narrowed
154
+ ? (_item) => false
155
+ : (item) => isCooldownCell(item, expectedTarget, false)) &&
156
+ isClearedGroup(value.cleared.credentialFaults, (item) => isCooldownCell(item, expectedTarget, narrowed)) &&
157
+ isClearedGroup(value.cleared.facts, (item) => isCooldownFact(item, expectedTarget, narrowed));
158
+ }
3
159
  function publicCell(cell) {
4
160
  return {
5
161
  provider: cell.provider,
@@ -1 +1 @@
1
- {"version":3,"file":"cooldown-clear.js","sourceRoot":"","sources":["../src/cooldown-clear.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cooldown-clear.js","sourceRoot":"","sources":["../src/cooldown-clear.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "index.html": {
3
- "file": "assets/index-u-Ez_oE6.js",
3
+ "file": "assets/index-BA4GdK4p.js",
4
4
  "name": "index",
5
5
  "src": "index.html",
6
6
  "isEntry": true,