@rynfar/meridian 1.37.8 → 1.39.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 +54 -3
- package/dist/{cli-pr79d7nw.js → cli-4rqtm83g.js} +33 -2
- package/dist/{cli-z5r7ptsm.js → cli-jbdchsr4.js} +1109 -231
- package/dist/cli-sry5aqdj.js +54 -0
- package/dist/cli.js +5 -4
- package/dist/pluginPage-85s6t6k8.js +405 -0
- package/dist/{profilePage-g5t5t6av.js → profilePage-77z05e0r.js} +4 -8
- package/dist/proxy/adapter.d.ts +45 -12
- package/dist/proxy/adapter.d.ts.map +1 -1
- package/dist/proxy/adapters/claudecode.d.ts +21 -0
- package/dist/proxy/adapters/claudecode.d.ts.map +1 -0
- package/dist/proxy/adapters/crush.d.ts +2 -0
- package/dist/proxy/adapters/crush.d.ts.map +1 -1
- package/dist/proxy/adapters/detect.d.ts +3 -2
- package/dist/proxy/adapters/detect.d.ts.map +1 -1
- package/dist/proxy/adapters/droid.d.ts +2 -0
- package/dist/proxy/adapters/droid.d.ts.map +1 -1
- package/dist/proxy/adapters/forgecode.d.ts +2 -0
- package/dist/proxy/adapters/forgecode.d.ts.map +1 -1
- package/dist/proxy/adapters/opencode.d.ts +2 -0
- package/dist/proxy/adapters/opencode.d.ts.map +1 -1
- package/dist/proxy/adapters/passthrough.d.ts +2 -0
- package/dist/proxy/adapters/passthrough.d.ts.map +1 -1
- package/dist/proxy/adapters/pi.d.ts +2 -0
- package/dist/proxy/adapters/pi.d.ts.map +1 -1
- package/dist/proxy/agentDefs.d.ts +2 -0
- package/dist/proxy/agentDefs.d.ts.map +1 -1
- package/dist/proxy/agentMatch.d.ts +11 -1
- package/dist/proxy/agentMatch.d.ts.map +1 -1
- package/dist/proxy/messages.d.ts +11 -0
- package/dist/proxy/messages.d.ts.map +1 -1
- package/dist/proxy/models.d.ts +25 -0
- package/dist/proxy/models.d.ts.map +1 -1
- package/dist/proxy/openai.d.ts.map +1 -1
- package/dist/proxy/passthroughTools.d.ts +18 -0
- package/dist/proxy/passthroughTools.d.ts.map +1 -1
- package/dist/proxy/plugins/loader.d.ts +6 -0
- package/dist/proxy/plugins/loader.d.ts.map +1 -0
- package/dist/proxy/plugins/pluginPage.d.ts +7 -0
- package/dist/proxy/plugins/pluginPage.d.ts.map +1 -0
- package/dist/proxy/plugins/stats.d.ts +61 -0
- package/dist/proxy/plugins/stats.d.ts.map +1 -0
- package/dist/proxy/plugins/types.d.ts +21 -0
- package/dist/proxy/plugins/types.d.ts.map +1 -0
- package/dist/proxy/plugins/validation.d.ts +8 -0
- package/dist/proxy/plugins/validation.d.ts.map +1 -0
- package/dist/proxy/query.d.ts +27 -4
- package/dist/proxy/query.d.ts.map +1 -1
- package/dist/proxy/server.d.ts +2 -0
- package/dist/proxy/server.d.ts.map +1 -1
- package/dist/proxy/session/lineage.d.ts +10 -1
- package/dist/proxy/session/lineage.d.ts.map +1 -1
- package/dist/proxy/transform.d.ts +137 -0
- package/dist/proxy/transform.d.ts.map +1 -0
- package/dist/proxy/transforms/crush.d.ts +3 -0
- package/dist/proxy/transforms/crush.d.ts.map +1 -0
- package/dist/proxy/transforms/droid.d.ts +3 -0
- package/dist/proxy/transforms/droid.d.ts.map +1 -0
- package/dist/proxy/transforms/forgecode.d.ts +3 -0
- package/dist/proxy/transforms/forgecode.d.ts.map +1 -0
- package/dist/proxy/transforms/opencode.d.ts +3 -0
- package/dist/proxy/transforms/opencode.d.ts.map +1 -0
- package/dist/proxy/transforms/passthrough.d.ts +3 -0
- package/dist/proxy/transforms/passthrough.d.ts.map +1 -0
- package/dist/proxy/transforms/pi.d.ts +3 -0
- package/dist/proxy/transforms/pi.d.ts.map +1 -0
- package/dist/proxy/transforms/registry.d.ts +3 -0
- package/dist/proxy/transforms/registry.d.ts.map +1 -0
- package/dist/proxy/types.d.ts +6 -0
- package/dist/proxy/types.d.ts.map +1 -1
- package/dist/server.js +14 -5
- package/dist/stats-4c4ewmdh.js +17 -0
- package/dist/telemetry/dashboard.d.ts.map +1 -1
- package/dist/telemetry/landing.d.ts.map +1 -1
- package/dist/telemetry/profileBar.d.ts +13 -1
- package/dist/telemetry/profileBar.d.ts.map +1 -1
- package/dist/telemetry/profilePage.d.ts.map +1 -1
- package/dist/telemetry/settingsPage.d.ts +1 -1
- package/dist/telemetry/settingsPage.d.ts.map +1 -1
- package/dist/telemetry/sqlite.d.ts.map +1 -1
- package/dist/telemetry/types.d.ts +4 -0
- package/dist/telemetry/types.d.ts.map +1 -1
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"droid.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/droid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAwC9C,eAAO,MAAM,YAAY,EAAE,YA8E1B,CAAA"}
|
|
1
|
+
{"version":3,"file":"droid.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/droid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAwC9C,eAAO,MAAM,YAAY,EAAE,YA8E1B,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgecode.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/forgecode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAwC9C,eAAO,MAAM,gBAAgB,EAAE,YA6F9B,CAAA"}
|
|
1
|
+
{"version":3,"file":"forgecode.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/forgecode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAwC9C,eAAO,MAAM,gBAAgB,EAAE,YA6F9B,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/opencode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAQ9C,eAAO,MAAM,eAAe,EAAE,YA8H7B,CAAA"}
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/opencode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAQ9C,eAAO,MAAM,eAAe,EAAE,YA8H7B,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -15,4 +15,6 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import type { AgentAdapter } from "../adapter";
|
|
17
17
|
export declare const passthroughAdapter: AgentAdapter;
|
|
18
|
+
import { passthroughTransforms } from "../transforms/passthrough";
|
|
19
|
+
export { passthroughTransforms };
|
|
18
20
|
//# sourceMappingURL=passthrough.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passthrough.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/passthrough.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAiD9C,eAAO,MAAM,kBAAkB,EAAE,YA4EhC,CAAA"}
|
|
1
|
+
{"version":3,"file":"passthrough.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/passthrough.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAiD9C,eAAO,MAAM,kBAAkB,EAAE,YA4EhC,CAAA;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAwC9C,eAAO,MAAM,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAwC9C,eAAO,MAAM,SAAS,EAAE,YAmHvB,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* automatically become available as SDK subagents — with descriptions,
|
|
11
11
|
* model tiers, and tool access.
|
|
12
12
|
*/
|
|
13
|
+
/** Fallback agent name used when no fuzzy match is found */
|
|
14
|
+
export declare const FALLBACK_AGENT_NAME = "general";
|
|
13
15
|
/** SDK-compatible agent definition */
|
|
14
16
|
export interface AgentDefinition {
|
|
15
17
|
description: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentDefs.d.ts","sourceRoot":"","sources":["../../src/proxy/agentDefs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IAC/C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAcnF;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAOjG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"agentDefs.d.ts","sourceRoot":"","sources":["../../src/proxy/agentDefs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAc5C,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IAC/C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAcnF;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAOjG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAsBjC"}
|
|
@@ -12,7 +12,17 @@
|
|
|
12
12
|
* 4. Substring match (e.g., "junior" → "sisyphus-junior")
|
|
13
13
|
* 5. Suffix-stripped match (e.g., "explore-agent" → "explore")
|
|
14
14
|
* 6. Semantic aliases (e.g., "search" → "explore")
|
|
15
|
-
* 7. Fallback:
|
|
15
|
+
* 7. Fallback: route to generic agent if registered, otherwise lowercased original
|
|
16
16
|
*/
|
|
17
|
+
/**
|
|
18
|
+
* Resolve an agent-name alias to its canonical target, or return the lowercased
|
|
19
|
+
* input unchanged if no alias applies.
|
|
20
|
+
*
|
|
21
|
+
* Used when normalizing a captured `subagent_type` for the client response:
|
|
22
|
+
* the SDK may validate against registered alias variants (e.g., "general-purpose"
|
|
23
|
+
* is registered by `addCaseVariants`), but the client expects the canonical
|
|
24
|
+
* agent name from its config ("general").
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveAgentAlias(input: string): string;
|
|
17
27
|
export declare function fuzzyMatchAgentName(input: string, validAgents: string[]): string;
|
|
18
28
|
//# sourceMappingURL=agentMatch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentMatch.d.ts","sourceRoot":"","sources":["../../src/proxy/agentMatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"agentMatch.d.ts","sourceRoot":"","sources":["../../src/proxy/agentMatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA0CH;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAsChF"}
|
package/dist/proxy/messages.d.ts
CHANGED
|
@@ -11,6 +11,17 @@
|
|
|
11
11
|
* Other agents may behave differently — this will move to the adapter pattern.
|
|
12
12
|
*/
|
|
13
13
|
export declare function normalizeContent(content: any): string;
|
|
14
|
+
/**
|
|
15
|
+
* Extract the advisor model from a tools array.
|
|
16
|
+
* Returns the model string if an advisor tool definition is found, undefined otherwise.
|
|
17
|
+
* The advisor tool is identified by a type starting with "advisor_".
|
|
18
|
+
*/
|
|
19
|
+
export declare function extractAdvisorModel(tools: unknown): string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Remove advisor tool definitions from a tools array.
|
|
22
|
+
* Returns a new array with advisor tools filtered out.
|
|
23
|
+
*/
|
|
24
|
+
export declare function stripAdvisorTools(tools: unknown[]): unknown[];
|
|
14
25
|
/**
|
|
15
26
|
* Extract only the last user message (for session resume — SDK already has history).
|
|
16
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/proxy/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAiBrD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CAKzH"}
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/proxy/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAiBrD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAUtE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAM7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CAKzH"}
|
package/dist/proxy/models.d.ts
CHANGED
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
* Model mapping and Claude executable resolution.
|
|
3
3
|
*/
|
|
4
4
|
export type ClaudeModel = "sonnet" | "sonnet[1m]" | "opus" | "opus[1m]" | "haiku";
|
|
5
|
+
/**
|
|
6
|
+
* Current canonical pins for the `sonnet`/`opus`/`haiku` SDK aliases.
|
|
7
|
+
*
|
|
8
|
+
* mapModelToClaudeModel collapses every requested model to one of these
|
|
9
|
+
* aliases; the Claude Agent SDK then resolves the alias to a concrete
|
|
10
|
+
* version via ANTHROPIC_DEFAULT_{TYPE}_MODEL env vars. When those env
|
|
11
|
+
* vars are unset the SDK falls back to its own bundled defaults, which
|
|
12
|
+
* lag real Claude Max availability — users end up routed to stale
|
|
13
|
+
* versions (this was the root cause of #419: opus-* requests silently
|
|
14
|
+
* answering as sonnet-4).
|
|
15
|
+
*
|
|
16
|
+
* Meridian now pins these defaults itself at the SDK subprocess boundary
|
|
17
|
+
* so fresh installs behave correctly out of the box. Users can still
|
|
18
|
+
* override via MERIDIAN_DEFAULT_{TYPE}_MODEL (proxy-side) or
|
|
19
|
+
* ANTHROPIC_DEFAULT_{TYPE}_MODEL (shell env, wins over Meridian's pin).
|
|
20
|
+
*/
|
|
21
|
+
export declare const CANONICAL_OPUS_MODEL = "claude-opus-4-7";
|
|
22
|
+
export declare const CANONICAL_SONNET_MODEL = "claude-sonnet-4-6";
|
|
23
|
+
export declare const CANONICAL_HAIKU_MODEL = "claude-haiku-4-5";
|
|
24
|
+
/**
|
|
25
|
+
* Build the ANTHROPIC_DEFAULT_{TYPE}_MODEL env record to apply before the
|
|
26
|
+
* inherited process env, so user-set shell values still win but unset
|
|
27
|
+
* variables get Meridian's canonical pins.
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolveSdkModelDefaults(): Record<string, string>;
|
|
5
30
|
export interface ClaudeAuthStatus {
|
|
6
31
|
loggedIn?: boolean;
|
|
7
32
|
subscriptionType?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/proxy/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/proxy/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAA;AAEjF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,oBAAoB,CAAA;AACrD,eAAO,MAAM,sBAAsB,sBAAsB,CAAA;AACzD,eAAO,MAAM,qBAAqB,qBAAqB,CAAA;AAEvD;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMhE;AACD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AA0BD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CA8B7H;AAWD;;;;;;GAMG;AACH,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,IAAI,OAAO,CAG3D;AAED,0EAA0E;AAC1E,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAIpE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE9D;AAaD;gFACgF;AAChF,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAOzH;AAWD;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAuD1I;AAOD;;;;;;;;;;GAUG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,MAAM,CAAC,CAyDpE;AAED,2CAA2C;AAC3C,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED,kDAAkD;AAClD,wBAAgB,2BAA2B,IAAI,IAAI,CAOlD;AAED;;6DAE6D;AAC7D,wBAAgB,qBAAqB,IAAI,IAAI,CAO5C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/proxy/openai.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/proxy/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,4 +45,22 @@ export declare function computeToolSetKey(tools: Array<{
|
|
|
45
45
|
* e.g., "mcp__oc__todowrite" → "todowrite"
|
|
46
46
|
*/
|
|
47
47
|
export declare function stripMcpPrefix(toolName: string): string;
|
|
48
|
+
/**
|
|
49
|
+
* Normalize tool input parameter names to match the client's schema.
|
|
50
|
+
*
|
|
51
|
+
* The Claude Code SDK's system prompt references built-in tools with
|
|
52
|
+
* snake_case parameter names (e.g., file_path), but clients like OpenCode
|
|
53
|
+
* may use camelCase (e.g., filePath). When the model generates a tool call
|
|
54
|
+
* using the SDK's naming convention instead of the MCP schema's convention,
|
|
55
|
+
* required parameters appear undefined on the client side.
|
|
56
|
+
*
|
|
57
|
+
* This function detects unrecognized keys, tries snake_case ↔ camelCase
|
|
58
|
+
* conversion, and remaps them when a match exists in the client's schema.
|
|
59
|
+
* It only activates when at least one required parameter is missing, so
|
|
60
|
+
* well-formed tool calls pass through untouched.
|
|
61
|
+
*/
|
|
62
|
+
export declare function normalizeToolInput(input: Record<string, unknown> | undefined, clientSchema: {
|
|
63
|
+
properties?: Record<string, unknown>;
|
|
64
|
+
required?: string[];
|
|
65
|
+
} | undefined): Record<string, unknown> | undefined;
|
|
48
66
|
//# sourceMappingURL=passthroughTools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passthroughTools.d.ts","sourceRoot":"","sources":["../../src/proxy/passthroughTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,eAAO,MAAM,oBAAoB,OAAO,CAAA;AACxC,eAAO,MAAM,sBAAsB,cAAmC,CAAA;AA0CtE,wBAAgB,qBAAqB,IAAI,MAAM,CAM9C;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,GAAG,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EACjG,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE;;;;EA4DlC;AAqBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAC9E,MAAM,CASR;AAUD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKvD"}
|
|
1
|
+
{"version":3,"file":"passthroughTools.d.ts","sourceRoot":"","sources":["../../src/proxy/passthroughTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,eAAO,MAAM,oBAAoB,OAAO,CAAA;AACxC,eAAO,MAAM,sBAAsB,cAAmC,CAAA;AA0CtE,wBAAgB,qBAAqB,IAAI,MAAM,CAM9C;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,GAAG,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EACjG,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE;;;;EA4DlC;AAqBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAC9E,MAAM,CASR;AAUD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKvD;AAUD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC1C,YAAY,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,GACtF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAgCrC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Transform } from "../transform";
|
|
2
|
+
import type { PluginEntry, LoadedPlugin } from "./types";
|
|
3
|
+
export declare function parsePluginConfig(configPath: string): PluginEntry[];
|
|
4
|
+
export declare function loadPlugins(pluginDir: string, configPath?: string): Promise<LoadedPlugin[]>;
|
|
5
|
+
export declare function getActiveTransforms(plugins: LoadedPlugin[]): Transform[];
|
|
6
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/proxy/plugins/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAgB,YAAY,EAAE,MAAM,SAAS,CAAA;AAStE,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE,CASnE;AAED,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC,CAiIzB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAIxE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugins management page.
|
|
3
|
+
* Shows all discovered plugins with their status, hooks, adapters, and errors.
|
|
4
|
+
* Fetches /plugins/list client-side for live data; supports reload via POST /plugins/reload.
|
|
5
|
+
*/
|
|
6
|
+
export declare const pluginPageHtml: string;
|
|
7
|
+
//# sourceMappingURL=pluginPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginPage.d.ts","sourceRoot":"","sources":["../../../src/proxy/plugins/pluginPage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,eAAO,MAAM,cAAc,QAsYnB,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin invocation statistics.
|
|
3
|
+
*
|
|
4
|
+
* Counts hook invocations, errors, and accumulated runtime per plugin so
|
|
5
|
+
* users can confirm their plugin is actually running and catch regressions
|
|
6
|
+
* (e.g. a plugin throwing on every request).
|
|
7
|
+
*
|
|
8
|
+
* Stats are tracked only for plugins the loader has registered — adapter
|
|
9
|
+
* built-in transforms are internal plumbing and flow through the same
|
|
10
|
+
* pipeline but aren't metered here.
|
|
11
|
+
*/
|
|
12
|
+
export interface HookStats {
|
|
13
|
+
/** Number of successful invocations */
|
|
14
|
+
invocations: number;
|
|
15
|
+
/** Number of times the hook threw */
|
|
16
|
+
errors: number;
|
|
17
|
+
/** Accumulated execution time in milliseconds (successful calls only) */
|
|
18
|
+
totalMs: number;
|
|
19
|
+
}
|
|
20
|
+
export interface PluginStats {
|
|
21
|
+
/** Per-hook counters, keyed by hook name (onRequest, onResponse, etc.) */
|
|
22
|
+
hooks: Record<string, HookStats>;
|
|
23
|
+
/** Unix timestamp of the most recent invocation of any hook */
|
|
24
|
+
lastInvokedAt?: number;
|
|
25
|
+
/** Most recent error, if any */
|
|
26
|
+
lastError?: {
|
|
27
|
+
hook: string;
|
|
28
|
+
message: string;
|
|
29
|
+
at: number;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Register a plugin name for stats tracking. Called by the loader after
|
|
34
|
+
* a plugin validates successfully. Resets any prior stats for that name
|
|
35
|
+
* (so /plugins/reload gives you a clean slate).
|
|
36
|
+
*/
|
|
37
|
+
export declare function registerPluginStats(name: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Drop all stats. Called before a full reload so stale data doesn't linger
|
|
40
|
+
* for plugins that were removed from the config.
|
|
41
|
+
*/
|
|
42
|
+
export declare function resetAllPluginStats(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Whether the given name is a tracked plugin. Adapter built-in transforms
|
|
45
|
+
* aren't registered, so the runner can silently skip stats for them.
|
|
46
|
+
*/
|
|
47
|
+
export declare function isTrackedPlugin(name: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Record a successful invocation of a hook.
|
|
50
|
+
*/
|
|
51
|
+
export declare function recordInvocation(name: string, hook: string, durationMs: number): void;
|
|
52
|
+
/**
|
|
53
|
+
* Record an error from a hook.
|
|
54
|
+
*/
|
|
55
|
+
export declare function recordError(name: string, hook: string, err: unknown): void;
|
|
56
|
+
/**
|
|
57
|
+
* Read a snapshot of stats for one plugin. Returns a deep copy so callers
|
|
58
|
+
* can't mutate the internal state.
|
|
59
|
+
*/
|
|
60
|
+
export declare function getPluginStats(name: string): PluginStats | undefined;
|
|
61
|
+
//# sourceMappingURL=stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/proxy/plugins/stats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAChC,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gCAAgC;IAChC,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,EAAE,EAAE,MAAM,CAAA;KACX,CAAA;CACF;AAYD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAQrF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAa1E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAUpE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Transform } from "../transform";
|
|
2
|
+
export interface PluginEntry {
|
|
3
|
+
path: string;
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface PluginConfig {
|
|
7
|
+
plugins: PluginEntry[];
|
|
8
|
+
}
|
|
9
|
+
export type PluginStatus = "active" | "disabled" | "error";
|
|
10
|
+
export interface LoadedPlugin {
|
|
11
|
+
name: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
version?: string;
|
|
14
|
+
adapters?: string[];
|
|
15
|
+
hooks: string[];
|
|
16
|
+
status: PluginStatus;
|
|
17
|
+
error?: string;
|
|
18
|
+
path: string;
|
|
19
|
+
transform: Transform;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/proxy/plugins/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAA;CACvB;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,SAAS,CAAA;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/proxy/plugins/validation.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,gBAAgB,CAmCrE"}
|
package/dist/proxy/query.d.ts
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* Centralizes the construction of query() options, eliminating duplication
|
|
5
5
|
* between the streaming and non-streaming paths in server.ts.
|
|
6
6
|
*/
|
|
7
|
-
import type { AgentAdapter } from "./adapter";
|
|
8
7
|
import type { Options, SettingSource } from "@anthropic-ai/claude-agent-sdk";
|
|
9
8
|
import { createPassthroughMcpServer } from "./passthroughTools";
|
|
10
9
|
export interface QueryContext {
|
|
@@ -12,8 +11,15 @@ export interface QueryContext {
|
|
|
12
11
|
prompt: string | AsyncIterable<any>;
|
|
13
12
|
/** Resolved Claude model name */
|
|
14
13
|
model: string;
|
|
15
|
-
/**
|
|
14
|
+
/** SDK subprocess working directory — must exist on the proxy host. */
|
|
16
15
|
workingDirectory: string;
|
|
16
|
+
/**
|
|
17
|
+
* Client-local working directory (as reported in the request). May not
|
|
18
|
+
* exist on the proxy host. When this differs from workingDirectory the
|
|
19
|
+
* system prompt is augmented with a note directing the model to refer
|
|
20
|
+
* to file paths using the client's path rather than the proxy's.
|
|
21
|
+
*/
|
|
22
|
+
clientWorkingDirectory?: string;
|
|
17
23
|
/** System context text (may be empty) */
|
|
18
24
|
systemContext: string;
|
|
19
25
|
/** Path to Claude executable */
|
|
@@ -38,8 +44,14 @@ export interface QueryContext {
|
|
|
38
44
|
undoRollbackUuid?: string;
|
|
39
45
|
/** SDK hooks (PreToolUse etc.) */
|
|
40
46
|
sdkHooks?: any;
|
|
41
|
-
/**
|
|
42
|
-
|
|
47
|
+
/** Blocked SDK built-in tools (from pipeline) */
|
|
48
|
+
blockedTools: readonly string[];
|
|
49
|
+
/** Agent-incompatible tools (from pipeline) */
|
|
50
|
+
incompatibleTools: readonly string[];
|
|
51
|
+
/** MCP server name for this adapter */
|
|
52
|
+
mcpServerName: string;
|
|
53
|
+
/** Allowed MCP tools (from pipeline) */
|
|
54
|
+
allowedMcpTools: readonly string[];
|
|
43
55
|
/** Callback to receive stderr lines from the Claude subprocess */
|
|
44
56
|
onStderr?: (line: string) => void;
|
|
45
57
|
/** Effort level — controls thinking depth (low/medium/high/max) */
|
|
@@ -79,6 +91,8 @@ export interface QueryContext {
|
|
|
79
91
|
sdkDebug?: boolean;
|
|
80
92
|
/** Additional directories Claude can access */
|
|
81
93
|
additionalDirectories?: string[];
|
|
94
|
+
/** Advisor model for server-side advisor tool support */
|
|
95
|
+
advisorModel?: string;
|
|
82
96
|
}
|
|
83
97
|
/**
|
|
84
98
|
* Build the options object for the Claude Agent SDK query() call.
|
|
@@ -89,5 +103,14 @@ export interface BuildQueryResult {
|
|
|
89
103
|
prompt: QueryContext["prompt"];
|
|
90
104
|
options: Options;
|
|
91
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Build an addendum that tells the model which path belongs to the real user.
|
|
108
|
+
* Applied when the SDK subprocess runs in one directory on the proxy host but
|
|
109
|
+
* the client is working in a different directory on their own machine
|
|
110
|
+
* (typical of a remote Claude Code → network-proxy setup). Without this note
|
|
111
|
+
* the SDK's env block leaks `sdkCwd` into the model's context and Claude
|
|
112
|
+
* reports that as its working directory.
|
|
113
|
+
*/
|
|
114
|
+
export declare function buildCwdNote(sdkCwd: string, clientCwd?: string): string;
|
|
92
115
|
export declare function buildQueryOptions(ctx: QueryContext): BuildQueryResult;
|
|
93
116
|
//# sourceMappingURL=query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/proxy/query.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/proxy/query.ts"],"names":[],"mappings":"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"}
|
package/dist/proxy/server.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { ProxyConfig, ProxyInstance, ProxyServer } from "./types";
|
|
2
2
|
export type { ProxyConfig, ProxyInstance, ProxyServer };
|
|
3
|
+
export type { Transform, RequestContext, ResponseContext, TelemetryContext, SessionContext, ToolUseContext, ToolResultContext, ErrorContext, TransformHook, ObserveHook, } from "./transform";
|
|
4
|
+
export { runTransformHook, runObserveHook, buildPipeline, createRequestContext } from "./transform";
|
|
3
5
|
import { computeLineageHash, hashMessage, computeMessageHashes, type LineageResult } from "./session/lineage";
|
|
4
6
|
import { clearSessionCache, getMaxSessionsLimit } from "./session/cache";
|
|
5
7
|
export { computeLineageHash, hashMessage, computeMessageHashes };
|
|
@@ -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":"AAUA,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;AA+BnG,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EAEpB,KAAK,aAAa,EAGnB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAA+B,iBAAiB,EAAE,mBAAmB,EAAsC,MAAM,iBAAiB,CAAA;AAGzI,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,CAAA;AA+N7B,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CA+lEhF;AAED,wBAAsB,gBAAgB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAoEhG"}
|
|
@@ -5,12 +5,21 @@
|
|
|
5
5
|
* (continuation, compaction, undo, diverged).
|
|
6
6
|
*/
|
|
7
7
|
/** Token usage counters from the SDK (subset of Anthropic usage object). */
|
|
8
|
-
export interface
|
|
8
|
+
export interface TokenUsageIteration {
|
|
9
9
|
input_tokens?: number;
|
|
10
10
|
output_tokens?: number;
|
|
11
11
|
cache_read_input_tokens?: number;
|
|
12
12
|
cache_creation_input_tokens?: number;
|
|
13
|
+
type?: string;
|
|
13
14
|
}
|
|
15
|
+
/** Token usage counters from the SDK, including optional iteration breakdowns. */
|
|
16
|
+
export interface TokenUsage extends TokenUsageIteration {
|
|
17
|
+
iterations?: TokenUsageIteration[];
|
|
18
|
+
}
|
|
19
|
+
/** Return the effective current-context usage snapshot.
|
|
20
|
+
* When `iterations` is present and non-empty, returns the last entry;
|
|
21
|
+
* otherwise returns the original top-level usage object. */
|
|
22
|
+
export declare function normalizeContextUsage(usage: TokenUsage): TokenUsageIteration;
|
|
14
23
|
/** Minimum suffix overlap (stored messages found at the end of incoming)
|
|
15
24
|
* required to classify a mutation as compaction rather than a branch. */
|
|
16
25
|
export declare const MIN_SUFFIX_FOR_COMPACTION = 2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lineage.d.ts","sourceRoot":"","sources":["../../../src/proxy/session/lineage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,4EAA4E;AAC5E,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"lineage.d.ts","sourceRoot":"","sources":["../../../src/proxy/session/lineage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,kFAAkF;AAClF,MAAM,WAAW,UAAW,SAAQ,mBAAmB;IACrD,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAA;CACnC;AAED;;6DAE6D;AAC7D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,mBAAmB,CAG5E;AAED;0EAC0E;AAC1E,eAAO,MAAM,yBAAyB,IAAI,CAAA;AAE1C,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB;;qDAEiD;IACjD,WAAW,EAAE,MAAM,CAAA;IACnB;;kCAE8B;IAC9B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB;;oDAEgD;IAChD,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACtC,iGAAiG;IACjG,YAAY,CAAC,EAAE,UAAU,CAAA;CAC1B;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAG,OAAO,EAAE,YAAY,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAS,OAAO,EAAE,YAAY,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACxG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAA;AAIxB;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,GAAG,MAAM,CAI1F;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,GAAG,MAAM,CAK3E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,GAAG,MAAM,EAAE,CAG9F;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAQ7F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CA6B7F;AAyBD,yEAAyE;AACzE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,EAC/C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,gBAAgB,GACtB,aAAa,CA6Ff"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transform pipeline — composable behavioral hooks for request/response processing.
|
|
3
|
+
*
|
|
4
|
+
* Adapters provide built-in transforms; plugins provide user-defined transforms.
|
|
5
|
+
* Both use the same interface. The pipeline runner chains them in order, passing
|
|
6
|
+
* each hook's output as the next hook's input.
|
|
7
|
+
*/
|
|
8
|
+
import type { FileChange } from "./fileChanges";
|
|
9
|
+
import type { SettingSource } from "@anthropic-ai/claude-agent-sdk";
|
|
10
|
+
/**
|
|
11
|
+
* A composable unit of request/response behavior.
|
|
12
|
+
* Built-in adapter transforms and user plugins implement this interface.
|
|
13
|
+
*/
|
|
14
|
+
export interface Transform {
|
|
15
|
+
/** Unique name for logging and UI display */
|
|
16
|
+
name: string;
|
|
17
|
+
/** Human-readable description */
|
|
18
|
+
description?: string;
|
|
19
|
+
/** Semver version string */
|
|
20
|
+
version?: string;
|
|
21
|
+
/** Restrict to specific adapter names. Undefined = all adapters. */
|
|
22
|
+
adapters?: string[];
|
|
23
|
+
onRequest?(ctx: RequestContext): RequestContext;
|
|
24
|
+
onResponse?(ctx: ResponseContext): ResponseContext;
|
|
25
|
+
onTelemetry?(ctx: TelemetryContext): void;
|
|
26
|
+
onSession?(ctx: SessionContext): SessionContext;
|
|
27
|
+
onToolUse?(ctx: ToolUseContext): ToolUseContext;
|
|
28
|
+
onToolResult?(ctx: ToolResultContext): ToolResultContext;
|
|
29
|
+
onError?(ctx: ErrorContext): ErrorContext;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Request-time context. Transforms modify this to configure SDK behavior.
|
|
33
|
+
* Immutable-in, modified-out — transforms return a new object.
|
|
34
|
+
*/
|
|
35
|
+
export interface RequestContext {
|
|
36
|
+
/** Adapter name (readonly — set by pipeline runner) */
|
|
37
|
+
readonly adapter: string;
|
|
38
|
+
/** Raw request body (readonly — use specific fields to modify) */
|
|
39
|
+
readonly body: any;
|
|
40
|
+
/** Request headers (readonly) */
|
|
41
|
+
readonly headers: Headers;
|
|
42
|
+
model: string;
|
|
43
|
+
messages: any[];
|
|
44
|
+
systemContext?: string;
|
|
45
|
+
tools?: any[];
|
|
46
|
+
stream: boolean;
|
|
47
|
+
workingDirectory: string;
|
|
48
|
+
blockedTools: readonly string[];
|
|
49
|
+
incompatibleTools: readonly string[];
|
|
50
|
+
allowedMcpTools: readonly string[];
|
|
51
|
+
coreToolNames?: readonly string[];
|
|
52
|
+
sdkAgents: Record<string, any>;
|
|
53
|
+
sdkHooks?: any;
|
|
54
|
+
passthrough?: boolean;
|
|
55
|
+
settingSources?: SettingSource[];
|
|
56
|
+
supportsThinking: boolean;
|
|
57
|
+
shouldTrackFileChanges: boolean;
|
|
58
|
+
leaksCwdViaSystemReminder: boolean;
|
|
59
|
+
prefersStreaming?: boolean;
|
|
60
|
+
extractFileChangesFromToolUse?: (toolName: string, toolInput: unknown) => FileChange[];
|
|
61
|
+
metadata: Record<string, unknown>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Response-time context. Transforms can modify response content.
|
|
65
|
+
*/
|
|
66
|
+
export interface ResponseContext {
|
|
67
|
+
readonly adapter: string;
|
|
68
|
+
content: any[];
|
|
69
|
+
usage?: any;
|
|
70
|
+
metadata: Record<string, unknown>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Telemetry context. Observe-only — return value is ignored.
|
|
74
|
+
*/
|
|
75
|
+
export interface TelemetryContext {
|
|
76
|
+
readonly adapter: string;
|
|
77
|
+
readonly model: string;
|
|
78
|
+
readonly requestId: string;
|
|
79
|
+
readonly durationMs: number;
|
|
80
|
+
readonly inputTokens: number;
|
|
81
|
+
readonly outputTokens: number;
|
|
82
|
+
readonly cacheReadTokens: number;
|
|
83
|
+
readonly cacheCreationTokens: number;
|
|
84
|
+
readonly cacheHitRate: number;
|
|
85
|
+
}
|
|
86
|
+
export interface SessionContext {
|
|
87
|
+
readonly adapter: string;
|
|
88
|
+
[key: string]: unknown;
|
|
89
|
+
}
|
|
90
|
+
export interface ToolUseContext {
|
|
91
|
+
readonly adapter: string;
|
|
92
|
+
[key: string]: unknown;
|
|
93
|
+
}
|
|
94
|
+
export interface ToolResultContext {
|
|
95
|
+
readonly adapter: string;
|
|
96
|
+
[key: string]: unknown;
|
|
97
|
+
}
|
|
98
|
+
export interface ErrorContext {
|
|
99
|
+
readonly adapter: string;
|
|
100
|
+
[key: string]: unknown;
|
|
101
|
+
}
|
|
102
|
+
/** Hook names that transform request/response data (return value used) */
|
|
103
|
+
export type TransformHook = "onRequest" | "onResponse" | "onSession" | "onToolUse" | "onToolResult" | "onError";
|
|
104
|
+
/** Hook names that are observe-only (return value ignored) */
|
|
105
|
+
export type ObserveHook = "onTelemetry";
|
|
106
|
+
/**
|
|
107
|
+
* Run a data-transforming hook through the pipeline.
|
|
108
|
+
* Each transform receives the previous transform's output.
|
|
109
|
+
* Transforms scoped to other adapters are skipped.
|
|
110
|
+
*/
|
|
111
|
+
export declare function runTransformHook<T>(transforms: readonly Transform[], hook: TransformHook, ctx: T, adapterName: string): T;
|
|
112
|
+
/**
|
|
113
|
+
* Run an observe-only hook through the pipeline.
|
|
114
|
+
* All matching transforms are called; return values are ignored.
|
|
115
|
+
*/
|
|
116
|
+
export declare function runObserveHook<T>(transforms: readonly Transform[], hook: ObserveHook, ctx: T, adapterName: string): void;
|
|
117
|
+
/**
|
|
118
|
+
* Build the ordered transform pipeline for a request.
|
|
119
|
+
* Adapter built-in transforms run first, then plugins in config order.
|
|
120
|
+
*/
|
|
121
|
+
export declare function buildPipeline(adapterTransforms: readonly Transform[], pluginTransforms: readonly Transform[]): Transform[];
|
|
122
|
+
/**
|
|
123
|
+
* Create the initial RequestContext from HTTP request data.
|
|
124
|
+
* Adapter transforms will populate SDK configuration fields.
|
|
125
|
+
*/
|
|
126
|
+
export declare function createRequestContext(params: {
|
|
127
|
+
adapter: string;
|
|
128
|
+
body: any;
|
|
129
|
+
headers: Headers;
|
|
130
|
+
model: string;
|
|
131
|
+
messages: any[];
|
|
132
|
+
systemContext?: string;
|
|
133
|
+
tools?: any[];
|
|
134
|
+
stream: boolean;
|
|
135
|
+
workingDirectory: string;
|
|
136
|
+
}): RequestContext;
|
|
137
|
+
//# sourceMappingURL=transform.d.ts.map
|