@sriinnu/kosha-discovery 1.2.0 → 1.5.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.
- package/README.md +125 -52
- package/dist/aliases.d.ts +6 -1
- package/dist/aliases.d.ts.map +1 -1
- package/dist/aliases.js +38 -12
- package/dist/aliases.js.map +1 -1
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +40 -3
- package/dist/cache.js.map +1 -1
- package/dist/claude-generation.d.ts +59 -0
- package/dist/claude-generation.d.ts.map +1 -0
- package/dist/claude-generation.js +117 -0
- package/dist/claude-generation.js.map +1 -0
- package/dist/cli-cmd-doctor.d.ts +17 -0
- package/dist/cli-cmd-doctor.d.ts.map +1 -0
- package/dist/cli-cmd-doctor.js +199 -0
- package/dist/cli-cmd-doctor.js.map +1 -0
- package/dist/cli-cmd-model.js +2 -2
- package/dist/cli-cmd-model.js.map +1 -1
- package/dist/cli-cmd-spend.d.ts +10 -0
- package/dist/cli-cmd-spend.d.ts.map +1 -0
- package/dist/cli-cmd-spend.js +130 -0
- package/dist/cli-cmd-spend.js.map +1 -0
- package/dist/cli-commands.d.ts +4 -1
- package/dist/cli-commands.d.ts.map +1 -1
- package/dist/cli-commands.js +10 -2
- package/dist/cli-commands.js.map +1 -1
- package/dist/cli-format.js.map +1 -1
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +13 -2
- package/dist/cli-help.js.map +1 -1
- package/dist/cli.js +10 -0
- package/dist/cli.js.map +1 -1
- package/dist/cost.d.ts +152 -0
- package/dist/cost.d.ts.map +1 -0
- package/dist/cost.js +377 -0
- package/dist/cost.js.map +1 -0
- package/dist/credentials/resolver.d.ts +10 -0
- package/dist/credentials/resolver.d.ts.map +1 -1
- package/dist/credentials/resolver.js +64 -31
- package/dist/credentials/resolver.js.map +1 -1
- package/dist/discovery/anthropic.d.ts +19 -1
- package/dist/discovery/anthropic.d.ts.map +1 -1
- package/dist/discovery/anthropic.js +112 -8
- package/dist/discovery/anthropic.js.map +1 -1
- package/dist/discovery/base.d.ts +7 -0
- package/dist/discovery/base.d.ts.map +1 -1
- package/dist/discovery/base.js +32 -4
- package/dist/discovery/base.js.map +1 -1
- package/dist/discovery/bedrock.d.ts.map +1 -1
- package/dist/discovery/cerebras.d.ts.map +1 -1
- package/dist/discovery/cohere.d.ts.map +1 -1
- package/dist/discovery/deepinfra.d.ts.map +1 -1
- package/dist/discovery/deepseek.d.ts.map +1 -1
- package/dist/discovery/fireworks.d.ts.map +1 -1
- package/dist/discovery/glm.d.ts.map +1 -1
- package/dist/discovery/google.d.ts +3 -1
- package/dist/discovery/google.d.ts.map +1 -1
- package/dist/discovery/google.js +13 -6
- package/dist/discovery/google.js.map +1 -1
- package/dist/discovery/groq.d.ts.map +1 -1
- package/dist/discovery/index.d.ts +2 -0
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +6 -0
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/llama-cpp.d.ts.map +1 -1
- package/dist/discovery/lmstudio.d.ts +26 -0
- package/dist/discovery/lmstudio.d.ts.map +1 -0
- package/dist/discovery/lmstudio.js +93 -0
- package/dist/discovery/lmstudio.js.map +1 -0
- package/dist/discovery/minimax.d.ts.map +1 -1
- package/dist/discovery/mistral.d.ts.map +1 -1
- package/dist/discovery/moonshot.d.ts.map +1 -1
- package/dist/discovery/nvidia.d.ts.map +1 -1
- package/dist/discovery/ollama.d.ts.map +1 -1
- package/dist/discovery/openai-compatible.d.ts.map +1 -1
- package/dist/discovery/openai.d.ts.map +1 -1
- package/dist/discovery/openrouter.d.ts +29 -5
- package/dist/discovery/openrouter.d.ts.map +1 -1
- package/dist/discovery/openrouter.js +56 -18
- package/dist/discovery/openrouter.js.map +1 -1
- package/dist/discovery/perplexity.d.ts.map +1 -1
- package/dist/discovery/promo-overrides.js.map +1 -1
- package/dist/discovery/static-direct.d.ts +9 -1
- package/dist/discovery/static-direct.d.ts.map +1 -1
- package/dist/discovery/static-direct.js +68 -7
- package/dist/discovery/static-direct.js.map +1 -1
- package/dist/discovery/together.d.ts.map +1 -1
- package/dist/discovery/vercel.d.ts.map +1 -1
- package/dist/discovery/vertex.d.ts.map +1 -1
- package/dist/discovery/vllm.d.ts +26 -0
- package/dist/discovery/vllm.d.ts.map +1 -0
- package/dist/discovery/vllm.js +93 -0
- package/dist/discovery/vllm.js.map +1 -0
- package/dist/discovery/zai.d.ts.map +1 -1
- package/dist/discovery-contract.d.ts +7 -0
- package/dist/discovery-contract.d.ts.map +1 -1
- package/dist/discovery-contract.js.map +1 -1
- package/dist/discovery-routes.d.ts +9 -0
- package/dist/discovery-routes.d.ts.map +1 -1
- package/dist/discovery-routes.js +106 -18
- package/dist/discovery-routes.js.map +1 -1
- package/dist/enrichment/litellm.d.ts +1 -1
- package/dist/enrichment/litellm.d.ts.map +1 -1
- package/dist/enrichment/litellm.js +3 -3
- package/dist/entry.d.ts +14 -0
- package/dist/entry.d.ts.map +1 -0
- package/dist/entry.js +26 -0
- package/dist/entry.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.d.ts +207 -2
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +203 -51
- package/dist/mcp-server.js.map +1 -1
- package/dist/model-features.d.ts.map +1 -1
- package/dist/model-features.js +11 -2
- package/dist/model-features.js.map +1 -1
- package/dist/normalize.d.ts +7 -7
- package/dist/normalize.js +8 -8
- package/dist/provider-catalog.d.ts.map +1 -1
- package/dist/provider-catalog.js +26 -0
- package/dist/provider-catalog.js.map +1 -1
- package/dist/proxy.d.ts +49 -7
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +754 -89
- package/dist/proxy.js.map +1 -1
- package/dist/registry-query.js +2 -2
- package/dist/registry-query.js.map +1 -1
- package/dist/registry-routing.d.ts +65 -0
- package/dist/registry-routing.d.ts.map +1 -0
- package/dist/registry-routing.js +165 -0
- package/dist/registry-routing.js.map +1 -0
- package/dist/registry-runtime.d.ts +2 -0
- package/dist/registry-runtime.d.ts.map +1 -1
- package/dist/registry-runtime.js +177 -23
- package/dist/registry-runtime.js.map +1 -1
- package/dist/registry-selection.js +6 -0
- package/dist/registry-selection.js.map +1 -1
- package/dist/registry.d.ts +69 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +133 -1
- package/dist/registry.js.map +1 -1
- package/dist/resilience.d.ts +15 -0
- package/dist/resilience.d.ts.map +1 -1
- package/dist/resilience.js +23 -1
- package/dist/resilience.js.map +1 -1
- package/dist/server.d.ts +44 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +328 -33
- package/dist/server.js.map +1 -1
- package/dist/tally.d.ts +80 -0
- package/dist/tally.d.ts.map +1 -0
- package/dist/tally.js +176 -0
- package/dist/tally.js.map +1 -0
- package/dist/types.d.ts +22 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/wire-anthropic.d.ts +264 -0
- package/dist/wire-anthropic.d.ts.map +1 -0
- package/dist/wire-anthropic.js +960 -0
- package/dist/wire-anthropic.js.map +1 -0
- package/package.json +14 -10
- package/logo.png +0 -0
package/dist/registry.js
CHANGED
|
@@ -13,6 +13,7 @@ import { normalizeModelId } from "./normalize.js";
|
|
|
13
13
|
import { registryBuildSnapshot, registryClassifyError, registryDiscoveryDelta, registryDiscoverySnapshot, registryMakeCursor, registryRecordDiscoveryMutation, registryRecordObservation, registrySnapshotForDelta, registryWatchDiscovery, } from "./registry-discovery.js";
|
|
14
14
|
import { modelRoles, modelSupportsRole, normalizeRoleToken, registryCapabilities, registryCheapestModels, registryMissingCredentialPrompts, registryModelRouteInfo, registryModelRoutes, registryModels, registryProviderRoles, } from "./registry-query.js";
|
|
15
15
|
import { registryCheapestCandidates, registryExecutionBindingHints, } from "./registry-selection.js";
|
|
16
|
+
import { providerRouteHealth, rankCandidatesByStrategy, } from "./registry-routing.js";
|
|
16
17
|
import { createRegistryState } from "./registry-state.js";
|
|
17
18
|
import { enrichRegistryModels, registryEnrichOnly, fallbackRegistryCredential, getRegistryCredentialResolver, loadRegistryDiscoverers, loadRegistryFromCache, populateRegistryModelAliases, registryDiscover, registryRefresh, saveRegistryToCache, } from "./registry-runtime.js";
|
|
18
19
|
/**
|
|
@@ -20,6 +21,22 @@ import { enrichRegistryModels, registryEnrichOnly, fallbackRegistryCredential, g
|
|
|
20
21
|
*/
|
|
21
22
|
export class ModelRegistry {
|
|
22
23
|
state;
|
|
24
|
+
/**
|
|
25
|
+
* FIFO tail used to serialize in-process discovery passes.
|
|
26
|
+
*
|
|
27
|
+
* `registryDiscover` mutates shared state (providerMap, deltaHistory,
|
|
28
|
+
* currentCursor, discoveryRevision, lastSnapshotCache) with no internal
|
|
29
|
+
* lock. Without serialization, two concurrent `discover()` calls — a
|
|
30
|
+
* POST /api/refresh racing boot, or two refreshes — both capture the same
|
|
31
|
+
* stale beforeSnapshot, both push a delta, and both rewrite the cursor,
|
|
32
|
+
* corrupting the v1 delta stream that daemon consumers sync on. Each
|
|
33
|
+
* `discover()` chains onto this tail so passes run strictly one after
|
|
34
|
+
* another; the stored tail always settles (it swallows rejection) so one
|
|
35
|
+
* failed pass can never dead-end the chain, while each caller still
|
|
36
|
+
* awaits its own promise and observes its own rejection. The cross-
|
|
37
|
+
* process manifest file lock is unchanged.
|
|
38
|
+
*/
|
|
39
|
+
discoverChain = Promise.resolve();
|
|
23
40
|
constructor(config) {
|
|
24
41
|
this.state = createRegistryState(config);
|
|
25
42
|
this.currentCursor = registryMakeCursor(this.state);
|
|
@@ -39,10 +56,23 @@ export class ModelRegistry {
|
|
|
39
56
|
set lastSnapshotCache(value) { this.state.lastSnapshotCache = value; }
|
|
40
57
|
/**
|
|
41
58
|
* Run discovery across all or selected providers.
|
|
59
|
+
*
|
|
60
|
+
* Serialized per-instance: concurrent calls queue FIFO on
|
|
61
|
+
* {@link discoverChain} so the v1 delta stream stays consistent. Each
|
|
62
|
+
* caller awaits its own turn and observes its own result or rejection —
|
|
63
|
+
* a failed pass never blocks the next one.
|
|
42
64
|
*/
|
|
43
65
|
async discover(options) {
|
|
44
66
|
const credentialResolver = await getRegistryCredentialResolver();
|
|
45
|
-
|
|
67
|
+
const dependencies = this.dependencies(credentialResolver);
|
|
68
|
+
// Chain this pass onto the in-flight tail so it runs only after the
|
|
69
|
+
// previous pass settles, preserving FIFO ordering of state mutations.
|
|
70
|
+
const run = this.discoverChain.then(() => registryDiscover(this.state, dependencies, options));
|
|
71
|
+
// The stored tail swallows rejection: a rejected discover() must not
|
|
72
|
+
// permanently block subsequent callers. `run` (returned to this
|
|
73
|
+
// caller) still propagates the rejection so the caller sees the error.
|
|
74
|
+
this.discoverChain = run.then(() => undefined, () => undefined);
|
|
75
|
+
return run;
|
|
46
76
|
}
|
|
47
77
|
/**
|
|
48
78
|
* Force a fresh discovery pass, bypassing cache for the targeted scope.
|
|
@@ -90,6 +120,24 @@ export class ModelRegistry {
|
|
|
90
120
|
cheapestModels(options) {
|
|
91
121
|
return registryCheapestModels(this.state, options);
|
|
92
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Rank candidate routes for a query by a selection {@link RouteStrategy}
|
|
125
|
+
* — `cheapest` (price), `fastest` (observed p95 latency), `reliable`
|
|
126
|
+
* (circuit-breaker + timeout health), or `balanced` (a weighted blend).
|
|
127
|
+
*
|
|
128
|
+
* The candidate set is the same price-filtered pool as
|
|
129
|
+
* {@link cheapestModels}; the strategy only changes the ordering and folds
|
|
130
|
+
* in the runtime health kosha already tracks. Open-breaker providers always
|
|
131
|
+
* sort last, which is what makes this usable as a failover order.
|
|
132
|
+
*/
|
|
133
|
+
rankedRoutes(options, strategy = "cheapest") {
|
|
134
|
+
const result = registryCheapestModels(this.state, { includeUnpriced: true, ...options });
|
|
135
|
+
return rankCandidatesByStrategy(this.state, result.matches, strategy);
|
|
136
|
+
}
|
|
137
|
+
/** Read-only runtime health for one provider (breaker state, latency, reliability). */
|
|
138
|
+
providerRouteHealth(providerId) {
|
|
139
|
+
return providerRouteHealth(this.state, normalizeProviderId(providerId) ?? providerId);
|
|
140
|
+
}
|
|
93
141
|
/** Return every provider route for a normalized model identifier. */
|
|
94
142
|
modelRoutes(modelId) {
|
|
95
143
|
return registryModelRoutes(this.state, modelId);
|
|
@@ -144,6 +192,30 @@ export class ModelRegistry {
|
|
|
144
192
|
watchDiscovery(options) {
|
|
145
193
|
return registryWatchDiscovery(this.state, options);
|
|
146
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Subscribe to discovery deltas with a callback API. Easier to wire up
|
|
197
|
+
* from a long-running daemon than the async-iterator form. Returns an
|
|
198
|
+
* unsubscribe function so the caller can tear down on shutdown.
|
|
199
|
+
*
|
|
200
|
+
* Errors thrown by the handler are caught and forwarded to an optional
|
|
201
|
+
* `onError` callback so one bad subscriber can't crash the emitter for
|
|
202
|
+
* everyone else.
|
|
203
|
+
*/
|
|
204
|
+
onChange(handler, onError) {
|
|
205
|
+
const listener = (delta) => {
|
|
206
|
+
try {
|
|
207
|
+
const maybePromise = handler(delta);
|
|
208
|
+
if (maybePromise && typeof maybePromise.catch === "function") {
|
|
209
|
+
maybePromise.catch((err) => onError?.(err));
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
catch (err) {
|
|
213
|
+
onError?.(err);
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
this.state.discoveryEventBus.on("delta", listener);
|
|
217
|
+
return () => this.state.discoveryEventBus.off("delta", listener);
|
|
218
|
+
}
|
|
147
219
|
/** Return cheapest candidates using the trusted v1 capability taxonomy. */
|
|
148
220
|
cheapestCandidates(query = {}) {
|
|
149
221
|
return registryCheapestCandidates(this.state, query);
|
|
@@ -160,6 +232,43 @@ export class ModelRegistry {
|
|
|
160
232
|
}
|
|
161
233
|
this.healthTracker.resetAll();
|
|
162
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* Feed a proxy request outcome back into routing health.
|
|
237
|
+
*
|
|
238
|
+
* The proxy layer calls this after every forwarded request so that
|
|
239
|
+
* `kosha:reliable` / `fastest` / `balanced` ranking reflects real serving
|
|
240
|
+
* traffic, not just discovery-ping latency. On success the provider's
|
|
241
|
+
* circuit breaker is notified (closing a half-open probe); on failure the
|
|
242
|
+
* breaker failure counter advances (opening after the configured
|
|
243
|
+
* threshold) and the normalized error class is recorded. The latency
|
|
244
|
+
* sample is appended to the same rolling observation store that discovery
|
|
245
|
+
* writes into, so all strategies see one unified health signal.
|
|
246
|
+
*
|
|
247
|
+
* Additive only — discovery continues to record its own observations; this
|
|
248
|
+
* just lets proxy traffic contribute to the same store.
|
|
249
|
+
*
|
|
250
|
+
* @param providerId - Serving-layer provider the request was forwarded to.
|
|
251
|
+
* @param outcome - Result of the proxied request.
|
|
252
|
+
*/
|
|
253
|
+
recordProxyOutcome(providerId, outcome) {
|
|
254
|
+
const normalizedProviderId = normalizeProviderId(providerId) ?? providerId;
|
|
255
|
+
const breaker = this.healthTracker.breaker(normalizedProviderId);
|
|
256
|
+
if (outcome.ok) {
|
|
257
|
+
breaker.onSuccess();
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
// `onFailure` stores the message for diagnostics; pass the proxy's
|
|
261
|
+
// errorType through verbatim (undefined is fine — it only skips
|
|
262
|
+
// storing a diagnostic string).
|
|
263
|
+
breaker.onFailure(outcome.errorType);
|
|
264
|
+
}
|
|
265
|
+
// Record a latency + error observation in the same store discovery
|
|
266
|
+
// uses, so all four routing strategies fold in real proxy traffic.
|
|
267
|
+
registryRecordObservation(this.state, normalizedProviderId, {
|
|
268
|
+
latencyMs: outcome.latencyMs,
|
|
269
|
+
errorType: outcome.ok ? null : normalizeProxyErrorType(outcome.errorType),
|
|
270
|
+
});
|
|
271
|
+
}
|
|
163
272
|
/** Aggregate capability statistics across the current model set. */
|
|
164
273
|
capabilities(filter) {
|
|
165
274
|
return registryCapabilities(this.state, filter);
|
|
@@ -271,4 +380,27 @@ export class ModelRegistry {
|
|
|
271
380
|
function toLooseLookupKey(value) {
|
|
272
381
|
return value.replace(/[._-]+/g, "");
|
|
273
382
|
}
|
|
383
|
+
/** Valid provider-observation error classes (mirrors ProviderObservation). */
|
|
384
|
+
const PROXY_ERROR_TYPES = new Set([
|
|
385
|
+
"auth_error",
|
|
386
|
+
"throttled",
|
|
387
|
+
"timeout",
|
|
388
|
+
"transport",
|
|
389
|
+
"unknown",
|
|
390
|
+
]);
|
|
391
|
+
/**
|
|
392
|
+
* Normalize a proxy-supplied `errorType` string into the observation enum.
|
|
393
|
+
*
|
|
394
|
+
* Proxy callers may pass either an already-normalized token (`"timeout"`,
|
|
395
|
+
* `"auth_error"`, …) or a free-form message. Known tokens pass through
|
|
396
|
+
* unchanged; anything else is classified by the same heuristic discovery
|
|
397
|
+
* uses so the rolling health summary stays consistent across both feeds.
|
|
398
|
+
*/
|
|
399
|
+
function normalizeProxyErrorType(raw) {
|
|
400
|
+
if (raw && PROXY_ERROR_TYPES.has(raw))
|
|
401
|
+
return raw;
|
|
402
|
+
if (!raw)
|
|
403
|
+
return "unknown";
|
|
404
|
+
return registryClassifyError(raw);
|
|
405
|
+
}
|
|
274
406
|
//# sourceMappingURL=registry.js.map
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACN,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,+BAA+B,EAC/B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,gCAAgC,EAChC,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,0BAA0B,EAC1B,6BAA6B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EACN,oBAAoB,EACpB,kBAAkB,EAElB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACnB,MAAM,uBAAuB,CAAC;AA4B/B;;GAEG;AACH,MAAM,OAAO,aAAa;IACR,KAAK,CAAgB;IAEtC,YAAY,MAAoB;QAC/B,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,0EAA0E;IAC1E,IAAY,WAAW,KAAgC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACvF,0EAA0E;IAC1E,IAAY,aAAa,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IAChE,0EAA0E;IAC1E,IAAY,YAAY,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IACtE,IAAY,YAAY,CAAC,KAAa,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC;IAC5E,0EAA0E;IAC1E,IAAY,aAAa,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IAChE,IAAY,aAAa,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IACxE,IAAY,aAAa,CAAC,KAAa,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC;IAC9E,IAAY,iBAAiB,KAAiC,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACpG,IAAY,iBAAiB,CAAC,KAAiC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC;IAE1G;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAA0B;QACxC,MAAM,kBAAkB,GAAG,MAAM,6BAA6B,EAAE,CAAC;QACjE,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,UAAmB;QAChC,MAAM,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;IACpF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAAgC;QACxD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,OAAO;YACN,SAAS;YACT,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAChF,YAAY,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU;QACf,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,0EAA0E;IAC1E,MAAM,CAAC,MAA8F;QACpG,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,4EAA4E;IAC5E,aAAa,CAAC,MAAyB;QACtC,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,4EAA4E;IAC5E,wBAAwB,CAAC,WAAsB;QAC9C,OAAO,gCAAgC,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;IAED,4EAA4E;IAC5E,cAAc,CAAC,OAA8B;QAC5C,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,qEAAqE;IACrE,WAAW,CAAC,OAAe;QAC1B,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,wEAAwE;IACxE,cAAc,CAAC,OAAe;QAC7B,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,SAAiB;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1C,wCAAwC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QAC9D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAExB,2DAA2D;QAC3D,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACpE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC,CAAC;QAC9G,IAAI,eAAe;YAAE,OAAO,eAAe,CAAC;QAE5C,sEAAsE;QACtE,MAAM,WAAW,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,WAAW,CAAC,CAAC;IAC3G,CAAC;IAED,kEAAkE;IAClE,QAAQ,CAAC,EAAU;QAClB,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACnD,CAAC;IAED,4CAA4C;IAC5C,cAAc;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,oEAAoE;IACpE,eAAe;QACd,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC5C,CAAC;IAED,0EAA0E;IAC1E,cAAc;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;IAC1C,CAAC;IAED,mEAAmE;IACnE,iBAAiB;QAChB,OAAO,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,sDAAsD;IACtD,cAAc,CAAC,OAAyC;QACvD,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,8DAA8D;IAC9D,cAAc,CAAC,OAAyC;QACvD,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,2EAA2E;IAC3E,kBAAkB,CAAC,QAA+B,EAAE;QACnD,OAAO,0BAA0B,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,0EAA0E;IAC1E,qBAAqB,CAAC,QAA+B,EAAE;QACtD,OAAO,6BAA6B,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,6DAA6D;IAC7D,WAAW,CAAC,UAAmB;QAC9B,IAAI,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;YAClF,OAAO;QACR,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,oEAAoE;IACpE,YAAY,CAAC,MAA8B;QAC1C,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,mEAAmE;IACnE,kBAAkB,CAAC,KAAa;QAC/B,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,qDAAqD;IACrD,UAAU,CAAC,KAAgB;QAC1B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,kEAAkE;IAClE,iBAAiB,CAAC,KAAgB,EAAE,gBAAwB;QAC3D,OAAO,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACnD,CAAC;IAED,4DAA4D;IAC5D,OAAO,CAAC,KAAa;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,KAAa,EAAE,OAAe;QACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,oEAAoE;IACpE,MAAM;QACL,OAAO;YACN,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE;YAChC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,MAAM,CAAC,QAAQ,CAAC,IAA0F;QACzG,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;QACD,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC1C,QAAQ,CAAC,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5D,QAAQ,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3F,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,+EAA+E;IAC/E,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,SAAuB;QAClD,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,YAAY,CAAc,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACrG,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,YAAY,CAAc,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAE9G,IAAI,YAAY;YAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,aAAa;YAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEnC,yEAAyE;QACzE,OAAO,MAAM,CAAC,MAAM,CAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACrD,GAAG,MAAM;YACT,GAAG,KAAK;YACR,SAAS,EAAE,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE;YACtD,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE;SAChD,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAEO,YAAY,CACnB,kBAA+G;QAE/G,OAAO;YACN,wFAAwF;YACxF,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;YAC/H,eAAe,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC;YAC9G,YAAY,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;YACpD,oBAAoB,EAAE,GAAG,EAAE,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC;YACpE,aAAa,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;YAC9E,WAAW,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;YAClD,kBAAkB,EAAE,0BAA0B;YAC9C,gBAAgB,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;YAC5D,uBAAuB,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC;YAC5G,iBAAiB,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;YAClG,aAAa,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,qBAAqB,CAAC,YAAY,CAAC;SACpE,CAAC;IACH,CAAC;IAED,kFAAkF;IAC1E,gBAAgB;QACvB,OAAO,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,kFAAkF;IAC1E,uBAAuB,CAAC,gBAA4C;QAC3E,+BAA+B,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IAED,kFAAkF;IAC1E,iBAAiB,CACxB,UAAkB,EAClB,KAA6E;QAE7E,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,8EAA8E;IACtE,aAAa,CAAC,YAAoB;QACzC,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAI,QAAgB;QACpD,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAM,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACzB,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;CACD;AAED,SAAS,gBAAgB,CAAC,KAAa;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/resilience.d.ts
CHANGED
|
@@ -31,6 +31,13 @@ export interface CircuitBreakerOptions {
|
|
|
31
31
|
* @default 1
|
|
32
32
|
*/
|
|
33
33
|
halfOpenSuccessThreshold?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Upper bound on the adaptive `resetTimeoutMs`. Each time the circuit
|
|
36
|
+
* re-opens without successfully closing, the cooldown doubles up to this
|
|
37
|
+
* cap, so a chronically broken provider is probed less often.
|
|
38
|
+
* @default 3_600_000 (1 hour)
|
|
39
|
+
*/
|
|
40
|
+
maxResetTimeoutMs?: number;
|
|
34
41
|
}
|
|
35
42
|
/**
|
|
36
43
|
* A point-in-time health snapshot for a single provider circuit.
|
|
@@ -94,13 +101,21 @@ export declare class CircuitBreaker {
|
|
|
94
101
|
private lastFailureTime;
|
|
95
102
|
private lastSuccessTime;
|
|
96
103
|
private lastError?;
|
|
104
|
+
/** Consecutive open cycles since the last successful close. Used to
|
|
105
|
+
* exponentially extend the open-state cooldown so a chronically broken
|
|
106
|
+
* provider gets probed less often. Resets to 0 on a closed transition. */
|
|
107
|
+
private openCycles;
|
|
97
108
|
/** Resolved threshold: consecutive failures before opening. */
|
|
98
109
|
private readonly failureThreshold;
|
|
99
110
|
/** Resolved open-state duration before allowing a probe. */
|
|
100
111
|
private readonly resetTimeoutMs;
|
|
101
112
|
/** Resolved success count in half-open needed to close. */
|
|
102
113
|
private readonly halfOpenSuccessThreshold;
|
|
114
|
+
/** Resolved upper bound on the adaptive open-state cooldown. */
|
|
115
|
+
private readonly maxResetTimeoutMs;
|
|
103
116
|
constructor(providerId: string, options?: CircuitBreakerOptions);
|
|
117
|
+
/** Current adaptive open-state cooldown, in ms. Public for diagnostics. */
|
|
118
|
+
currentResetTimeoutMs(): number;
|
|
104
119
|
/**
|
|
105
120
|
* Check whether a request should be allowed through.
|
|
106
121
|
*
|
package/dist/resilience.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resilience.d.ts","sourceRoot":"","sources":["../src/resilience.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,mEAAmE;AACnE,MAAM,WAAW,qBAAqB;IACrC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"resilience.d.ts","sourceRoot":"","sources":["../src/resilience.ts"],"names":[],"mappings":"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"}
|
package/dist/resilience.js
CHANGED
|
@@ -44,18 +44,36 @@ export class CircuitBreaker {
|
|
|
44
44
|
lastFailureTime = 0;
|
|
45
45
|
lastSuccessTime = 0;
|
|
46
46
|
lastError;
|
|
47
|
+
/** Consecutive open cycles since the last successful close. Used to
|
|
48
|
+
* exponentially extend the open-state cooldown so a chronically broken
|
|
49
|
+
* provider gets probed less often. Resets to 0 on a closed transition. */
|
|
50
|
+
openCycles = 0;
|
|
47
51
|
/** Resolved threshold: consecutive failures before opening. */
|
|
48
52
|
failureThreshold;
|
|
49
53
|
/** Resolved open-state duration before allowing a probe. */
|
|
50
54
|
resetTimeoutMs;
|
|
51
55
|
/** Resolved success count in half-open needed to close. */
|
|
52
56
|
halfOpenSuccessThreshold;
|
|
57
|
+
/** Resolved upper bound on the adaptive open-state cooldown. */
|
|
58
|
+
maxResetTimeoutMs;
|
|
53
59
|
constructor(providerId, options = {}) {
|
|
54
60
|
this.providerId = providerId;
|
|
55
61
|
this.options = options;
|
|
56
62
|
this.failureThreshold = options.failureThreshold ?? 3;
|
|
57
63
|
this.resetTimeoutMs = options.resetTimeoutMs ?? 60_000;
|
|
58
64
|
this.halfOpenSuccessThreshold = options.halfOpenSuccessThreshold ?? 1;
|
|
65
|
+
// One hour is the practical ceiling for a discovery-pass cooldown —
|
|
66
|
+
// past that, the provider catalog re-publishes and a fresh user run
|
|
67
|
+
// resets state anyway.
|
|
68
|
+
this.maxResetTimeoutMs = options.maxResetTimeoutMs ?? 3_600_000;
|
|
69
|
+
}
|
|
70
|
+
/** Current adaptive open-state cooldown, in ms. Public for diagnostics. */
|
|
71
|
+
currentResetTimeoutMs() {
|
|
72
|
+
if (this.openCycles <= 1)
|
|
73
|
+
return this.resetTimeoutMs;
|
|
74
|
+
// Exponential: 60s, 120s, 240s, 480s, … capped at maxResetTimeoutMs.
|
|
75
|
+
const escalated = this.resetTimeoutMs * 2 ** (this.openCycles - 1);
|
|
76
|
+
return Math.min(escalated, this.maxResetTimeoutMs);
|
|
59
77
|
}
|
|
60
78
|
/**
|
|
61
79
|
* Check whether a request should be allowed through.
|
|
@@ -71,7 +89,7 @@ export class CircuitBreaker {
|
|
|
71
89
|
}
|
|
72
90
|
if (this.state === "open") {
|
|
73
91
|
const elapsed = Date.now() - this.lastFailureTime;
|
|
74
|
-
if (elapsed >= this.
|
|
92
|
+
if (elapsed >= this.currentResetTimeoutMs()) {
|
|
75
93
|
// Transition to half-open: allow a single probe
|
|
76
94
|
this.state = "half-open";
|
|
77
95
|
this.successCount = 0;
|
|
@@ -156,11 +174,15 @@ export class CircuitBreaker {
|
|
|
156
174
|
transitionToOpen() {
|
|
157
175
|
this.state = "open";
|
|
158
176
|
this.successCount = 0;
|
|
177
|
+
this.openCycles += 1;
|
|
159
178
|
}
|
|
160
179
|
transitionToClosed() {
|
|
161
180
|
this.state = "closed";
|
|
162
181
|
this.failureCount = 0;
|
|
163
182
|
this.successCount = 0;
|
|
183
|
+
// A successful close clears the adaptive backoff; next opening starts
|
|
184
|
+
// at the base resetTimeoutMs again.
|
|
185
|
+
this.openCycles = 0;
|
|
164
186
|
}
|
|
165
187
|
}
|
|
166
188
|
// ---------------------------------------------------------------------------
|
package/dist/resilience.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resilience.js","sourceRoot":"","sources":["../src/resilience.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"resilience.js","sourceRoot":"","sources":["../src/resilience.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Routes:
|
|
9
9
|
* GET /api/models — List models (query: ?provider, ?originProvider, ?mode, ?capability)
|
|
10
|
+
* GET /api/capabilities — Capability summary across the catalog (?provider)
|
|
10
11
|
* GET /api/models/cheapest — Cheapest eligible models for a role/capability
|
|
11
12
|
* GET /api/models/:idOrAlias/routes — All provider routes with preferred/direct metadata
|
|
12
13
|
* GET /api/models/:idOrAlias — Get a single model by ID or alias (+ baseUrl/version)
|
|
@@ -16,13 +17,49 @@
|
|
|
16
17
|
* POST /api/refresh — Trigger re-discovery (body: { provider?: string })
|
|
17
18
|
* GET /api/resolve/:alias — Resolve an alias to its canonical model ID
|
|
18
19
|
* GET /api/discovery-errors — Errors from last discovery pass
|
|
20
|
+
* GET /api/discovery — Stable v1 discovery snapshot (see discovery-routes.ts)
|
|
21
|
+
* GET /api/discovery/delta — Changes since a cursor
|
|
22
|
+
* GET /api/discovery/watch — SSE stream of discovery changes
|
|
23
|
+
* GET /api/discovery/cheapest — Cheapest candidates (v1 contract)
|
|
24
|
+
* GET /api/discovery/binding — Binding hints for a query (v1 contract)
|
|
19
25
|
* GET /health — Health check
|
|
26
|
+
* GET /metrics — Prometheus exposition (optional KOSHA_METRICS_TOKEN gate)
|
|
20
27
|
* GET /proxy/v1/models — OpenAI-compatible model list (forwardable models)
|
|
21
28
|
* POST /proxy/v1/chat/completions — OpenAI-compatible proxy with model routing
|
|
29
|
+
*
|
|
30
|
+
* Security defaults:
|
|
31
|
+
* - The standalone server binds to 127.0.0.1 unless `--host` / `KOSHA_HOST`
|
|
32
|
+
* says otherwise. The proxy spends the operator's provider credentials, so
|
|
33
|
+
* it must never be reachable from the network by accident.
|
|
34
|
+
* - When `KOSHA_PROXY_TOKEN` is set, every `/proxy/*` route and
|
|
35
|
+
* `POST /api/refresh` require `Authorization: Bearer <token>` (or an
|
|
36
|
+
* `x-kosha-token` header). Unset → open, which is only safe on loopback.
|
|
22
37
|
* @module
|
|
23
38
|
*/
|
|
24
39
|
import { Hono } from "hono";
|
|
25
40
|
import { ModelRegistry } from "./registry.js";
|
|
41
|
+
/**
|
|
42
|
+
* Resolve the interface the standalone server binds to.
|
|
43
|
+
*
|
|
44
|
+
* Precedence: explicit argument → `KOSHA_HOST` env → `127.0.0.1`. The default
|
|
45
|
+
* is loopback on purpose: `kosha serve` fronts an unauthenticated (unless
|
|
46
|
+
* `KOSHA_PROXY_TOKEN` is set) proxy that forwards requests using the
|
|
47
|
+
* operator's own provider API keys. Binding every interface by default would
|
|
48
|
+
* let anyone on the same network spend those keys.
|
|
49
|
+
*/
|
|
50
|
+
export declare function resolveBindHost(explicit?: string): string;
|
|
51
|
+
/** True when `host` is a loopback-only bind. */
|
|
52
|
+
export declare function isLoopbackHost(host: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Check a request against the operator token in `KOSHA_PROXY_TOKEN`.
|
|
55
|
+
* Accepts the token either as `Authorization: Bearer <token>` or in an
|
|
56
|
+
* `x-kosha-token` header (the latter leaves `Authorization` free for the
|
|
57
|
+
* `kosha-tenant-<name>` bucketing tag). Returns true when no token is
|
|
58
|
+
* configured — the gate is opt-in.
|
|
59
|
+
*/
|
|
60
|
+
export declare function proxyRequestAuthorized(headers: {
|
|
61
|
+
get(name: string): string | null | undefined;
|
|
62
|
+
}): boolean;
|
|
26
63
|
/**
|
|
27
64
|
* Create a Hono application wired to the given {@link ModelRegistry}.
|
|
28
65
|
*
|
|
@@ -32,12 +69,17 @@ import { ModelRegistry } from "./registry.js";
|
|
|
32
69
|
* @param registry - A pre-populated (or lazy) ModelRegistry instance.
|
|
33
70
|
* @returns A configured Hono app with all kosha REST routes.
|
|
34
71
|
*/
|
|
35
|
-
export declare function createServer(registry: ModelRegistry): Hono;
|
|
72
|
+
export declare function createServer(registry: ModelRegistry, shutdownSignal?: AbortSignal): Hono;
|
|
36
73
|
/**
|
|
37
74
|
* Boot a standalone kosha API server.
|
|
38
75
|
*
|
|
39
76
|
* Runs full discovery, then starts an HTTP listener on the given port.
|
|
40
77
|
* @param port - TCP port to bind (default `3000`, overridable via `PORT` env var).
|
|
78
|
+
* @param host - Interface to bind (default `127.0.0.1`, overridable via
|
|
79
|
+
* `KOSHA_HOST` or `kosha serve --host`). Binding a non-loopback
|
|
80
|
+
* address without `KOSHA_PROXY_TOKEN` logs a loud warning: the
|
|
81
|
+
* proxy would be spending your provider keys for anyone who can
|
|
82
|
+
* reach the port.
|
|
41
83
|
*/
|
|
42
|
-
export declare function startServer(port?: number): Promise<void>;
|
|
84
|
+
export declare function startServer(port?: number, host?: string): Promise<void>;
|
|
43
85
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,EAAE,IAAI,EAA0B,MAAM,MAAM,CAAC;AAMpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAkB9C;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED,gDAAgD;AAChD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AA8BD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,GAAG,OAAO,CAMzG;AA6BD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,WAAW,GAAG,IAAI,CA2bxF;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,IAAI,SAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoE3E"}
|