@rynfar/meridian 1.65.2 → 1.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -3
- package/dist/{cli-syjqjygv.js → cli-35jx6vmy.js} +447 -56
- package/dist/{cli-pdpry6q0.js → cli-5jxyma6z.js} +5 -2
- package/dist/{cli-0ed6j0vk.js → cli-9e5cxp89.js} +51 -17
- package/dist/cli.js +5 -5
- package/dist/{profileCli-ap7eg985.js → profileCli-1eecbmgk.js} +1 -1
- package/dist/{profiles-4ajzjqhm.js → profiles-wch9h234.js} +1 -1
- package/dist/proxy/adapter.d.ts +14 -0
- package/dist/proxy/adapter.d.ts.map +1 -1
- package/dist/proxy/adapters/claudecode.d.ts +29 -0
- package/dist/proxy/adapters/claudecode.d.ts.map +1 -1
- package/dist/proxy/adapters/prime.d.ts.map +1 -1
- package/dist/proxy/errors.d.ts +1 -1
- package/dist/proxy/errors.d.ts.map +1 -1
- package/dist/proxy/models.d.ts +29 -11
- package/dist/proxy/models.d.ts.map +1 -1
- package/dist/proxy/oauthUsage.d.ts.map +1 -1
- package/dist/proxy/openai.d.ts +15 -0
- package/dist/proxy/openai.d.ts.map +1 -1
- package/dist/proxy/openaiResponses.d.ts +4 -11
- package/dist/proxy/openaiResponses.d.ts.map +1 -1
- package/dist/proxy/retryAfter.d.ts +90 -0
- package/dist/proxy/retryAfter.d.ts.map +1 -0
- package/dist/proxy/routing.d.ts +11 -0
- package/dist/proxy/routing.d.ts.map +1 -1
- package/dist/proxy/server.d.ts.map +1 -1
- package/dist/proxy/sessionTree.d.ts +113 -0
- package/dist/proxy/sessionTree.d.ts.map +1 -0
- package/dist/server.js +3 -3
- package/dist/telemetry/dashboard.d.ts.map +1 -1
- package/dist/telemetry/pricing.d.ts.map +1 -1
- package/dist/telemetry/routes.d.ts +10 -1
- package/dist/telemetry/routes.d.ts.map +1 -1
- package/dist/telemetry/types.d.ts +16 -0
- package/dist/telemetry/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `Retry-After` computation for the throttle-shaped responses Meridian returns.
|
|
3
|
+
*
|
|
4
|
+
* Pure leaf module — no I/O, no state, no imports from `server.ts` or
|
|
5
|
+
* `session/`. Everything here is a function of its arguments.
|
|
6
|
+
*
|
|
7
|
+
* Why it exists: a harness that runs N concurrent children against one account
|
|
8
|
+
* has nothing to coordinate against when every 429 arrives bare. Each child
|
|
9
|
+
* backs off on its own schedule, they all wake together, and the account is
|
|
10
|
+
* re-hammered at the exact moment the window is still spent. A single number on
|
|
11
|
+
* the response is what turns N independent retry loops into one.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Overload is a transient upstream condition measured in seconds, not a spent
|
|
15
|
+
* quota window. A long hint here would idle a client through a blip that has
|
|
16
|
+
* already cleared.
|
|
17
|
+
*/
|
|
18
|
+
export declare const OVERLOADED_RETRY_AFTER_SECONDS = 5;
|
|
19
|
+
/**
|
|
20
|
+
* Fallback for a rate limit whose reset we cannot name. Deliberately
|
|
21
|
+
* conservative: too short re-hammers a spent window, and the cost of being a
|
|
22
|
+
* little long is one idle minute on a request that was already refused.
|
|
23
|
+
*/
|
|
24
|
+
export declare const RATE_LIMIT_DEFAULT_RETRY_AFTER_SECONDS = 60;
|
|
25
|
+
/** Never emit less than a second — `Retry-After: 0` is the bare-429 behavior
|
|
26
|
+
* this module exists to replace. */
|
|
27
|
+
export declare const RETRY_AFTER_MIN_SECONDS = 1;
|
|
28
|
+
/** A weekly cap can reset days out. Clients treat a huge `Retry-After` as
|
|
29
|
+
* "never", so bound it and let them re-probe; the account state is in
|
|
30
|
+
* `/v1/usage/quota` for anything that needs the real boundary. */
|
|
31
|
+
export declare const RETRY_AFTER_MAX_SECONDS: number;
|
|
32
|
+
/**
|
|
33
|
+
* Parse an upstream `Retry-After` header value into milliseconds.
|
|
34
|
+
*
|
|
35
|
+
* Accepts both RFC 9110 forms: delta-seconds and an HTTP-date. Returns null
|
|
36
|
+
* when the value is absent or unparseable, so callers can fall through to a
|
|
37
|
+
* computed hint rather than inventing one from `NaN`.
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseRetryAfterMs(raw: string | null | undefined, now?: number): number | null;
|
|
40
|
+
/**
|
|
41
|
+
* Pull a retry hint out of raw upstream error text.
|
|
42
|
+
*
|
|
43
|
+
* The `/v1/messages` path talks to the Claude CLI subprocess, which surfaces
|
|
44
|
+
* the API's error as a string rather than a response object — so when upstream
|
|
45
|
+
* *did* say how long to wait, the only place that number survives is inside the
|
|
46
|
+
* message. Matches the JSON-ish and header-ish spellings the CLI has been
|
|
47
|
+
* observed to echo (`"retry-after": 30`, `retry_after=30`, `Retry-After: 30`).
|
|
48
|
+
*
|
|
49
|
+
* Deliberately narrow: only a bare integer count of seconds directly attached
|
|
50
|
+
* to a retry-after key. Anything looser starts matching line numbers and
|
|
51
|
+
* unrelated digits, which is how a wrong hint would reach every client.
|
|
52
|
+
*/
|
|
53
|
+
export declare function extractRetryAfterSeconds(errMsg: string | null | undefined): number | null;
|
|
54
|
+
export interface RetryAfterInput {
|
|
55
|
+
/** HTTP status Meridian is about to return. */
|
|
56
|
+
status: number;
|
|
57
|
+
/** Verbatim upstream `Retry-After` header value, when one was observed. */
|
|
58
|
+
upstreamRetryAfter?: string | null;
|
|
59
|
+
/** Raw upstream error text, scanned for an embedded retry hint. */
|
|
60
|
+
errorMessage?: string | null;
|
|
61
|
+
/** Epoch ms at which the exhausted window is known to reset. Null when
|
|
62
|
+
* nothing proves a window is actually spent — a healthy account always has
|
|
63
|
+
* a future five-hour boundary, and that boundary is not a wait instruction. */
|
|
64
|
+
resetAtMs?: number | null;
|
|
65
|
+
now?: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Seconds to put in `Retry-After`, or null when the status does not take one.
|
|
69
|
+
*
|
|
70
|
+
* Precedence is "most authoritative first": what upstream said, then what
|
|
71
|
+
* upstream's error text said, then the account's own observed reset, then a
|
|
72
|
+
* per-status constant. Every branch is clamped, so no source can produce a 0
|
|
73
|
+
* (retry immediately, the bug) or a multi-day value (retry never).
|
|
74
|
+
*/
|
|
75
|
+
export declare function retryAfterSeconds(input: RetryAfterInput): number | null;
|
|
76
|
+
/**
|
|
77
|
+
* Header bag to spread into a `Response`. Empty when there is nothing to say,
|
|
78
|
+
* so call sites stay a single spread rather than a conditional.
|
|
79
|
+
*/
|
|
80
|
+
export declare function retryAfterHeaders(seconds: number | null): Record<string, string>;
|
|
81
|
+
/**
|
|
82
|
+
* The same hint as a body field, for SSE.
|
|
83
|
+
*
|
|
84
|
+
* A streaming turn's headers are on the wire long before the rate limit that
|
|
85
|
+
* kills it is known, so the header cannot carry this and the error frame is the
|
|
86
|
+
* only channel left. Emitted on the JSON path too so one field name means one
|
|
87
|
+
* thing on both.
|
|
88
|
+
*/
|
|
89
|
+
export declare function retryAfterBodyFields(seconds: number | null): Record<string, number>;
|
|
90
|
+
//# sourceMappingURL=retryAfter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retryAfter.d.ts","sourceRoot":"","sources":["../../src/proxy/retryAfter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,IAAI,CAAA;AAE/C;;;;GAIG;AACH,eAAO,MAAM,sCAAsC,KAAK,CAAA;AAExD;qCACqC;AACrC,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC;;mEAEmE;AACnE,eAAO,MAAM,uBAAuB,QAAe,CAAA;AAEnD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,GAAE,MAAmB,GAAG,MAAM,GAAG,IAAI,CAMzG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAMzF;AAED,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAA;IACd,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B;;oFAEgF;IAChF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAiBvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEhF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEnF"}
|
package/dist/proxy/routing.d.ts
CHANGED
|
@@ -160,4 +160,15 @@ export interface CooldownWindow {
|
|
|
160
160
|
* Pure. Never returns a time in the past.
|
|
161
161
|
*/
|
|
162
162
|
export declare function resolveCooldownUntil(windows: readonly CooldownWindow[], now: number, defaultMs: number): number;
|
|
163
|
+
/**
|
|
164
|
+
* The capped reset of the longest genuinely exhausted window, or null when
|
|
165
|
+
* nothing here proves a window is spent.
|
|
166
|
+
*
|
|
167
|
+
* Split out of `resolveCooldownUntil` so a caller can tell "the account told us
|
|
168
|
+
* when it frees up" from "we invented a conservative default" — a distinction
|
|
169
|
+
* `resolveCooldownUntil` erases by design. `Retry-After` needs it (#901): a
|
|
170
|
+
* real reset is worth sending, a fabricated one dressed as an observation is
|
|
171
|
+
* not.
|
|
172
|
+
*/
|
|
173
|
+
export declare function findCooldownReset(windows: readonly CooldownWindow[], now: number): number | null;
|
|
163
174
|
//# sourceMappingURL=routing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/proxy/routing.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/proxy/routing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,CAAA;AAGvD,YAAY,EACV,SAAS,EACT,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAA;AAKpB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAyEnG,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EAIpB,KAAK,aAAa,EAGnB,MAAM,mBAAmB,CAAA;AAI1B,OAAO,EAKL,iBAAiB,EACjB,mBAAmB,EAIpB,MAAM,iBAAiB,CAAA;AA0CxB,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,CAAA;AAkb7B,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAk4NhF;AAWD,wBAAgB,gCAAgC,IAAI,IAAI,CAavD;AAED,wBAAsB,gBAAgB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAuLhG"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Live session-tree registry: parent→child linkage for in-flight requests.
|
|
3
|
+
*
|
|
4
|
+
* Cancellation in meridian is per-HTTP-request — `requestAbort.ts` forwards one
|
|
5
|
+
* socket's abort into that request's SDK abort controller. A harness that spawns
|
|
6
|
+
* subagents (Prime Agent's RLM children) sends each child as an INDEPENDENT
|
|
7
|
+
* request on its own session key, so a user cancelling the parent left every
|
|
8
|
+
* child running: holding an SDK permit, holding its turn lease, and billing the
|
|
9
|
+
* subscription until its own socket closed or the lease watchdog tripped.
|
|
10
|
+
*
|
|
11
|
+
* This registry is the missing link. A client that knows its own tree stamps the
|
|
12
|
+
* immediate parent alongside the child's session id (`metadata.user_id` →
|
|
13
|
+
* `{ session_id, parent_session_id }`, read by `adapters/claudecode.ts`), and
|
|
14
|
+
* the server registers that linkage for the lifetime of the request.
|
|
15
|
+
*
|
|
16
|
+
* Three properties are deliberate:
|
|
17
|
+
*
|
|
18
|
+
* 1. **Live requests only.** An entry exists between "request admitted" and
|
|
19
|
+
* "request settled", nothing longer. There is no persistent tree: a session
|
|
20
|
+
* that was seen once but has no request in flight is not a cancellation
|
|
21
|
+
* target, because there is nothing to cancel. That keeps the registry
|
|
22
|
+
* bounded by concurrency rather than by conversation history.
|
|
23
|
+
* 2. **Abort, not completion.** Only an actual abort of a node propagates. A
|
|
24
|
+
* parent turn that finishes normally leaves its children alone — a child
|
|
25
|
+
* routinely outlives the parent turn that spawned it.
|
|
26
|
+
* 3. **Self-gating.** Propagation can only reach a request that declared a
|
|
27
|
+
* parent, so a client that does not stamp linkage is unaffected with no
|
|
28
|
+
* config flag to set.
|
|
29
|
+
*
|
|
30
|
+
* Pure bookkeeping: no HTTP, no I/O, no logging. The caller supplies the abort
|
|
31
|
+
* handle and owns the eviction/telemetry discipline that follows an abort.
|
|
32
|
+
*/
|
|
33
|
+
/** Handle returned by `register`; removes the entry when the request settles. */
|
|
34
|
+
export interface SessionTreeRegistration {
|
|
35
|
+
/** Remove this request from the registry. Idempotent. */
|
|
36
|
+
release(): void;
|
|
37
|
+
}
|
|
38
|
+
export interface SessionTreeEntry {
|
|
39
|
+
/** Request id, for logging and for the cancellation result. */
|
|
40
|
+
readonly requestId: string;
|
|
41
|
+
/** This request's client-session key, exactly as the adapter derived it. */
|
|
42
|
+
readonly sessionKey: string;
|
|
43
|
+
/** The IMMEDIATE parent's session key, when the client stamped linkage. */
|
|
44
|
+
readonly parentKey?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Abort this request. Must route through the same abort path a client
|
|
47
|
+
* disconnect uses, so the eviction, permit release, and lease release that
|
|
48
|
+
* follow are the existing ones rather than a parallel implementation.
|
|
49
|
+
*/
|
|
50
|
+
readonly abort: (reason?: unknown) => void;
|
|
51
|
+
}
|
|
52
|
+
export interface SessionTreeStats {
|
|
53
|
+
/** Live requests currently registered. */
|
|
54
|
+
tracked: number;
|
|
55
|
+
/** Of those, how many declared a parent (i.e. are cancellation targets). */
|
|
56
|
+
linked: number;
|
|
57
|
+
/** Cancellations that aborted at least one live request, since start. */
|
|
58
|
+
propagations: number;
|
|
59
|
+
/** Descendant requests aborted by an ancestor's cancellation, since start. */
|
|
60
|
+
cancelledDescendants: number;
|
|
61
|
+
}
|
|
62
|
+
/** What a cancellation actually reached. Empty when the subtree was idle. */
|
|
63
|
+
export interface SessionTreeCancellation {
|
|
64
|
+
/** Session keys whose live requests were aborted, nearest-first. */
|
|
65
|
+
readonly keys: readonly string[];
|
|
66
|
+
/** Request ids aborted, in the order they were aborted. */
|
|
67
|
+
readonly requestIds: readonly string[];
|
|
68
|
+
}
|
|
69
|
+
/** Shorten a session key for logs. Keys can be full UUIDs or client-chosen. */
|
|
70
|
+
export declare function truncateSessionKey(key: string, length?: number): string;
|
|
71
|
+
/**
|
|
72
|
+
* Registry of live requests and their declared parent links.
|
|
73
|
+
*
|
|
74
|
+
* Keyed by an internal token rather than by request id: `x-request-id` is
|
|
75
|
+
* client-supplied, so two concurrent requests can legitimately arrive carrying
|
|
76
|
+
* the same one, and a colliding key would silently unregister the wrong entry.
|
|
77
|
+
*/
|
|
78
|
+
export declare class SessionTreeRegistry {
|
|
79
|
+
private nextToken;
|
|
80
|
+
private readonly entries;
|
|
81
|
+
/** parentKey → tokens of live children. Index for the subtree walk. */
|
|
82
|
+
private readonly childrenByParent;
|
|
83
|
+
private propagations;
|
|
84
|
+
private cancelledDescendants;
|
|
85
|
+
register(entry: SessionTreeEntry): SessionTreeRegistration;
|
|
86
|
+
/** Live requests whose ancestry chain reaches `sessionKey`, nearest first. */
|
|
87
|
+
descendantsOf(sessionKey: string): SessionTreeEntry[];
|
|
88
|
+
/** Live requests running under `sessionKey` itself. */
|
|
89
|
+
liveRequestsFor(sessionKey: string): SessionTreeEntry[];
|
|
90
|
+
/**
|
|
91
|
+
* Abort every live request below `sessionKey`, transitively.
|
|
92
|
+
*
|
|
93
|
+
* The origin request is left alone: it is already being torn down by whatever
|
|
94
|
+
* triggered this, and aborting it a second time would be a no-op at best.
|
|
95
|
+
*/
|
|
96
|
+
cancelDescendants(sessionKey: string, reason?: unknown): SessionTreeCancellation;
|
|
97
|
+
/** Abort live requests for `sessionKey` AND everything below it. */
|
|
98
|
+
cancelSubtree(sessionKey: string, reason?: unknown): SessionTreeCancellation;
|
|
99
|
+
private cancel;
|
|
100
|
+
stats(): SessionTreeStats;
|
|
101
|
+
/** Reset process-scoped state between tests. */
|
|
102
|
+
clear(): void;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Process-wide registry.
|
|
106
|
+
*
|
|
107
|
+
* Session keys are a process-wide namespace (`processSessionTurns` serializes
|
|
108
|
+
* turns on the same basis), and a parent and its child can be served by
|
|
109
|
+
* different ProxyServer instances in one process, so per-instance registries
|
|
110
|
+
* would lose exactly the links that matter.
|
|
111
|
+
*/
|
|
112
|
+
export declare const processSessionTree: SessionTreeRegistry;
|
|
113
|
+
//# sourceMappingURL=sessionTree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionTree.d.ts","sourceRoot":"","sources":["../../src/proxy/sessionTree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,iFAAiF;AACjF,MAAM,WAAW,uBAAuB;IACtC,yDAAyD;IACzD,OAAO,IAAI,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAA;IACd,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAA;IACpB,8EAA8E;IAC9E,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,6EAA6E;AAC7E,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC;AAcD,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,CAElE;AAQD;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiC;IAClE,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,oBAAoB,CAAI;IAEhC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,uBAAuB;IA+B1D,8EAA8E;IAC9E,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAyBrD,uDAAuD;IACvD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAQvD;;;;;OAKG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,uBAAuB;IAIhF,oEAAoE;IACpE,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,uBAAuB;IAI5E,OAAO,CAAC,MAAM;IA2Bd,KAAK,IAAI,gBAAgB;IAazB,gDAAgD;IAChD,KAAK,IAAI,IAAI;CAMd;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,qBAA4B,CAAA"}
|
package/dist/server.js
CHANGED
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
runObserveHook,
|
|
12
12
|
runTransformHook,
|
|
13
13
|
startProxyServer
|
|
14
|
-
} from "./cli-
|
|
15
|
-
import"./cli-
|
|
14
|
+
} from "./cli-35jx6vmy.js";
|
|
15
|
+
import"./cli-5jxyma6z.js";
|
|
16
16
|
import"./cli-sry5aqdj.js";
|
|
17
17
|
import"./cli-8yp89fan.js";
|
|
18
|
-
import"./cli-
|
|
18
|
+
import"./cli-9e5cxp89.js";
|
|
19
19
|
import"./cli-khhjyk04.js";
|
|
20
20
|
import"./cli-vj9cv18n.js";
|
|
21
21
|
import"./cli-n8t34zmq.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/telemetry/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/telemetry/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,eAAO,MAAM,aAAa,QAgalB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/telemetry/pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAsB,MAAM,SAAS,CAAA;AAE9E,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAA;IACpB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAA;IACxB,qDAAqD;IACrD,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED,eAAO,MAAM,qBAAqB,MAAM,CAAA;AACxC,eAAO,MAAM,sBAAsB,OAAO,CAAA;AAE1C,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAsBD;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/telemetry/pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAsB,MAAM,SAAS,CAAA;AAE9E,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAA;IACpB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAA;IACxB,qDAAqD;IACrD,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED,eAAO,MAAM,qBAAqB,MAAM,CAAA;AACxC,eAAO,MAAM,sBAAsB,OAAO,CAAA;AAE1C,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAsBD;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAwB9D,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACvC,YAAY,GAAG,IAAI,CAwBrB;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,CAO3F;AAOD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,EAAE,EACxB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACvC,YAAY,CA6Cd"}
|
|
@@ -7,5 +7,14 @@
|
|
|
7
7
|
* GET /telemetry/logs — Diagnostic logs (JSON)
|
|
8
8
|
*/
|
|
9
9
|
import { Hono } from "hono";
|
|
10
|
-
|
|
10
|
+
import type { SessionTreeSummary } from "./types";
|
|
11
|
+
export interface TelemetryRouteDeps {
|
|
12
|
+
/**
|
|
13
|
+
* Live session-tree cancellation counters, injected by the proxy so this
|
|
14
|
+
* module keeps depending only on the telemetry store. Optional: embedders and
|
|
15
|
+
* unit tests mount the routes standalone and simply get no `sessionTree`.
|
|
16
|
+
*/
|
|
17
|
+
getSessionTree?: () => SessionTreeSummary;
|
|
18
|
+
}
|
|
19
|
+
export declare function createTelemetryRoutes(deps?: TelemetryRouteDeps): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
11
20
|
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/telemetry/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/telemetry/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAMjD,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,kBAAkB,CAAA;CAC1C;AAED,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,kBAAuB,8EAyDlE"}
|
|
@@ -171,6 +171,22 @@ export interface TelemetrySummary {
|
|
|
171
171
|
/** Estimated cost of the window's usage at static API list prices */
|
|
172
172
|
costEstimate: CostEstimate;
|
|
173
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Live parent→child cancellation counters, mirrored from
|
|
176
|
+
* `proxy/sessionTree.ts` onto `GET /telemetry/summary`.
|
|
177
|
+
*
|
|
178
|
+
* Gauges (`tracked`, `linked`) are instantaneous; counts (`propagations`,
|
|
179
|
+
* `cancelledDescendants`) are cumulative since proxy start, so they are NOT
|
|
180
|
+
* scoped to the summary's time window. Orphaned subagents were previously
|
|
181
|
+
* invisible — a nonzero `cancelledDescendants` is the proof teardown reached
|
|
182
|
+
* them.
|
|
183
|
+
*/
|
|
184
|
+
export interface SessionTreeSummary {
|
|
185
|
+
tracked: number;
|
|
186
|
+
linked: number;
|
|
187
|
+
propagations: number;
|
|
188
|
+
cancelledDescendants: number;
|
|
189
|
+
}
|
|
174
190
|
/** Storage backend for request metrics. */
|
|
175
191
|
export interface ITelemetryStore {
|
|
176
192
|
/** Record a completed request metric. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/telemetry/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/telemetry/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rynfar/meridian",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.67.0",
|
|
4
4
|
"description": "Local Anthropic API powered by your Claude Max subscription. One subscription, every agent.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/server.js",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@anthropic-ai/claude-agent-sdk": "^0.2.117",
|
|
35
|
-
"@anthropic-ai/claude-code": "^2.1.
|
|
35
|
+
"@anthropic-ai/claude-code": "^2.1.257",
|
|
36
36
|
"cross-spawn": "7.0.6",
|
|
37
37
|
"jsonc-parser": "^3.3.1",
|
|
38
38
|
"libsql": "^0.5.29",
|