@rynfar/meridian 1.52.0 → 1.54.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 +84 -16
- package/dist/{profileCli-s1h4vh8w.js → cli-jhm27q0x.js} +346 -31
- package/dist/{cli-tq3vtp0q.js → cli-mqht6rs9.js} +905 -61
- package/dist/cli.js +3 -3
- package/dist/grepTool.d.ts +23 -0
- package/dist/grepTool.d.ts.map +1 -0
- package/dist/mcpTools.d.ts.map +1 -1
- package/dist/profileCli-d9tcp916.js +35 -0
- package/dist/proxy/adapters/codex.d.ts +22 -0
- package/dist/proxy/adapters/codex.d.ts.map +1 -0
- package/dist/proxy/adapters/detect.d.ts.map +1 -1
- package/dist/proxy/design.d.ts +82 -0
- package/dist/proxy/design.d.ts.map +1 -0
- package/dist/proxy/openai.d.ts +5 -0
- package/dist/proxy/openai.d.ts.map +1 -1
- package/dist/proxy/openaiResponses.d.ts +137 -0
- package/dist/proxy/openaiResponses.d.ts.map +1 -0
- package/dist/proxy/profileCli.d.ts +48 -0
- package/dist/proxy/profileCli.d.ts.map +1 -0
- package/dist/proxy/sdkFeatures.d.ts.map +1 -1
- package/dist/proxy/server.d.ts.map +1 -1
- package/dist/proxy/transforms/codex.d.ts +12 -0
- package/dist/proxy/transforms/codex.d.ts.map +1 -0
- package/dist/proxy/transforms/opencode.d.ts.map +1 -1
- package/dist/proxy/transforms/registry.d.ts.map +1 -1
- package/dist/server.js +2 -2
- package/package.json +1 -1
- package/plugin/meridian.ts +58 -13
- package/dist/cli-vjeftz4z.js +0 -329
package/dist/cli.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
startProxyServer
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-mqht6rs9.js";
|
|
5
5
|
import"./cli-f0yqy2d2.js";
|
|
6
6
|
import"./cli-sry5aqdj.js";
|
|
7
7
|
import"./cli-xmweegb1.js";
|
|
8
8
|
import {
|
|
9
9
|
resolveClaudeExecutableAsync
|
|
10
|
-
} from "./cli-
|
|
10
|
+
} from "./cli-jhm27q0x.js";
|
|
11
11
|
import"./cli-340h1chz.js";
|
|
12
12
|
import"./cli-je60fevk.js";
|
|
13
13
|
import"./cli-aq5zz92m.js";
|
|
@@ -55,7 +55,7 @@ See https://github.com/rynfar/meridian for full documentation.`);
|
|
|
55
55
|
process.exit(0);
|
|
56
56
|
}
|
|
57
57
|
if (args[0] === "profile") {
|
|
58
|
-
const { profileAdd, profileAddOauthToken, profileList, profileRemove, profileSwitch, profileLogin, profileHelp } = await import("./profileCli-
|
|
58
|
+
const { profileAdd, profileAddOauthToken, profileList, profileRemove, profileSwitch, profileLogin, profileHelp } = await import("./profileCli-d9tcp916.js");
|
|
59
59
|
const subcommand = args[1];
|
|
60
60
|
const profileId = args[2];
|
|
61
61
|
const headless = args.includes("--headless");
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The MCP grep tool handler (registered in mcpTools.ts; lives here so it can
|
|
3
|
+
* be unit-tested directly). Uses execFile (no shell) so pattern/include/path
|
|
4
|
+
* can never be interpreted as shell syntax. From #543 by @sittitep.
|
|
5
|
+
*/
|
|
6
|
+
export declare function runGrepTool(args: {
|
|
7
|
+
pattern: string;
|
|
8
|
+
path?: string;
|
|
9
|
+
include?: string;
|
|
10
|
+
}): Promise<{
|
|
11
|
+
content: {
|
|
12
|
+
type: "text";
|
|
13
|
+
text: string;
|
|
14
|
+
}[];
|
|
15
|
+
isError?: undefined;
|
|
16
|
+
} | {
|
|
17
|
+
content: {
|
|
18
|
+
type: "text";
|
|
19
|
+
text: string;
|
|
20
|
+
}[];
|
|
21
|
+
isError: boolean;
|
|
22
|
+
}>;
|
|
23
|
+
//# sourceMappingURL=grepTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grepTool.d.ts","sourceRoot":"","sources":["../src/grepTool.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;GAoB3F"}
|
package/dist/mcpTools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpTools.d.ts","sourceRoot":"","sources":["../src/mcpTools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcpTools.d.ts","sourceRoot":"","sources":["../src/mcpTools.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,4EA6JtC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {
|
|
2
|
+
OAUTH_CLIENT_ID,
|
|
3
|
+
OAUTH_REDIRECT_URI,
|
|
4
|
+
OAUTH_TOKEN_URL,
|
|
5
|
+
buildAuthLoginEnv,
|
|
6
|
+
createManualOAuthSession,
|
|
7
|
+
dirsToRemoveOnProfileRemove,
|
|
8
|
+
parseAuthorizationCodeInput,
|
|
9
|
+
profileAdd,
|
|
10
|
+
profileAddOauthToken,
|
|
11
|
+
profileHelp,
|
|
12
|
+
profileList,
|
|
13
|
+
profileLogin,
|
|
14
|
+
profileRemove,
|
|
15
|
+
profileSwitch
|
|
16
|
+
} from "./cli-jhm27q0x.js";
|
|
17
|
+
import"./cli-340h1chz.js";
|
|
18
|
+
import"./cli-aq5zz92m.js";
|
|
19
|
+
import"./cli-p9swy5t3.js";
|
|
20
|
+
export {
|
|
21
|
+
profileSwitch,
|
|
22
|
+
profileRemove,
|
|
23
|
+
profileLogin,
|
|
24
|
+
profileList,
|
|
25
|
+
profileHelp,
|
|
26
|
+
profileAddOauthToken,
|
|
27
|
+
profileAdd,
|
|
28
|
+
parseAuthorizationCodeInput,
|
|
29
|
+
dirsToRemoveOnProfileRemove,
|
|
30
|
+
createManualOAuthSession,
|
|
31
|
+
buildAuthLoginEnv,
|
|
32
|
+
OAUTH_TOKEN_URL,
|
|
33
|
+
OAUTH_REDIRECT_URI,
|
|
34
|
+
OAUTH_CLIENT_ID
|
|
35
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex CLI endpoint adapter (#475).
|
|
3
|
+
*
|
|
4
|
+
* The `/v1/responses` route serves the Codex CLI (≥ 0.96), which is a
|
|
5
|
+
* tool-driving agentic client: it sends `tools`, expects tool_use back,
|
|
6
|
+
* executes them locally, and returns `function_call_output`. So this endpoint
|
|
7
|
+
* MUST run in passthrough mode — tool_use flows back to the client — unlike
|
|
8
|
+
* the generic `openai` adapter which follows the global passthrough setting.
|
|
9
|
+
*
|
|
10
|
+
* The handler tags the internal /v1/messages hop with `x-meridian-agent:
|
|
11
|
+
* codex` so this adapter is selected deterministically. Behaviour otherwise
|
|
12
|
+
* mirrors `opencode` (tools, MCP server, transforms); the differences are:
|
|
13
|
+
* - `usesPassthrough() => true` — always forward tool calls (Codex needs them)
|
|
14
|
+
* - `codeSystemPrompt` OFF (sdkFeatures.ADAPTER_DEFAULTS) — Codex ships its
|
|
15
|
+
* own ~21KB instructions; the Claude Code preset must not override them
|
|
16
|
+
*
|
|
17
|
+
* NOTE: agent-specific (Codex). Keep this a thin re-identification of the
|
|
18
|
+
* OpenCode adapter; do not fork behaviour here.
|
|
19
|
+
*/
|
|
20
|
+
import type { AgentAdapter } from "../adapter";
|
|
21
|
+
export declare const codexAdapter: AgentAdapter;
|
|
22
|
+
//# sourceMappingURL=codex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/codex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG9C,eAAO,MAAM,YAAY,EAAE,YAM1B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/detect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/detect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AA0F9C,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,CAsEtD"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { CredentialStore } from "./tokenRefresh";
|
|
2
|
+
export type FetchLike = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
|
|
3
|
+
export declare const DESIGN_SCOPES: string[];
|
|
4
|
+
export declare const DESIGN_UPSTREAM_ORIGIN = "https://api.anthropic.com";
|
|
5
|
+
export interface DesignTokenData {
|
|
6
|
+
accessToken: string;
|
|
7
|
+
refreshToken?: string;
|
|
8
|
+
expiresAt: number;
|
|
9
|
+
scopes?: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface DesignTokenStore {
|
|
12
|
+
read(): Promise<DesignTokenData | null>;
|
|
13
|
+
write(data: DesignTokenData): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export declare function defaultDesignTokenPath(): string;
|
|
16
|
+
export declare function createFileDesignTokenStore(path?: string): DesignTokenStore;
|
|
17
|
+
export declare function isDesignTokenFresh(data: DesignTokenData, now?: number): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Returns a usable design access token: the stored one if fresh, otherwise
|
|
20
|
+
* the result of a refresh_token grant (persisted back to the store). Null
|
|
21
|
+
* when there is no token or the refresh fails — callers fall back to
|
|
22
|
+
* profile credentials and the upstream tells the user to /design-login.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getDesignAccessToken(opts: {
|
|
25
|
+
store: DesignTokenStore;
|
|
26
|
+
fetchFn?: FetchLike;
|
|
27
|
+
now?: number;
|
|
28
|
+
}): Promise<string | null>;
|
|
29
|
+
/**
|
|
30
|
+
* Auth precedence for upstream Design API requests:
|
|
31
|
+
* design token → profile API key → profile OAuth token → Max credential
|
|
32
|
+
* store. The design token comes first because it is the only credential
|
|
33
|
+
* guaranteed to carry the design scopes.
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolveDesignAuthHeaders(opts: {
|
|
36
|
+
designToken: string | null;
|
|
37
|
+
profile: {
|
|
38
|
+
type: string;
|
|
39
|
+
env: Record<string, string | undefined>;
|
|
40
|
+
};
|
|
41
|
+
credentialStore?: CredentialStore;
|
|
42
|
+
ensureFresh?: (store: CredentialStore) => Promise<unknown>;
|
|
43
|
+
}): Promise<Record<string, string>>;
|
|
44
|
+
/**
|
|
45
|
+
* Headers forwarded upstream. accept-encoding is pinned to identity:
|
|
46
|
+
* Node's fetch auto-decompresses gzip but keeps the content-encoding
|
|
47
|
+
* header, so MCP SDK clients receiving the re-served body would try to
|
|
48
|
+
* decompress it a second time and fail to parse.
|
|
49
|
+
*/
|
|
50
|
+
export declare function buildDesignForwardHeaders(getHeader: (name: string) => string | undefined, authHeaders: Record<string, string>): Record<string, string>;
|
|
51
|
+
/** Forward all upstream headers (including mcp-session-id) minus hop-by-hop. */
|
|
52
|
+
export declare function filterUpstreamResponseHeaders(headers: Iterable<[string, string]>): Record<string, string>;
|
|
53
|
+
export declare function isDesignAuthFailure(status: number): boolean;
|
|
54
|
+
export interface DesignLoginResult {
|
|
55
|
+
status: number;
|
|
56
|
+
body: unknown;
|
|
57
|
+
}
|
|
58
|
+
export interface DesignLogin {
|
|
59
|
+
/** Start a login session; returns the JSON body for GET /design-login. */
|
|
60
|
+
start(): {
|
|
61
|
+
authorizeUrl: string;
|
|
62
|
+
instructions: string;
|
|
63
|
+
};
|
|
64
|
+
/** Like start() but also exposes the state, for tests. */
|
|
65
|
+
startRaw(): {
|
|
66
|
+
authorizeUrl: string;
|
|
67
|
+
state: string;
|
|
68
|
+
};
|
|
69
|
+
/** Handle POST /design-login: exchange the pasted code for a token. */
|
|
70
|
+
exchange(body: unknown): Promise<DesignLoginResult>;
|
|
71
|
+
}
|
|
72
|
+
export declare function createDesignLogin(deps: {
|
|
73
|
+
store: DesignTokenStore;
|
|
74
|
+
createSession?: (scopes: string[]) => {
|
|
75
|
+
authorizeUrl: string;
|
|
76
|
+
codeVerifier: string;
|
|
77
|
+
state: string;
|
|
78
|
+
};
|
|
79
|
+
fetchFn?: FetchLike;
|
|
80
|
+
now?: () => number;
|
|
81
|
+
}): DesignLogin;
|
|
82
|
+
//# sourceMappingURL=design.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../../src/proxy/design.ts"],"names":[],"mappings":"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"}
|
package/dist/proxy/openai.d.ts
CHANGED
|
@@ -102,6 +102,11 @@ export interface AnthropicRequestBody {
|
|
|
102
102
|
temperature?: number;
|
|
103
103
|
top_p?: number;
|
|
104
104
|
tools?: AnthropicTool[];
|
|
105
|
+
/** Tool selection constraint (carried from Responses `tool_choice`, #475). */
|
|
106
|
+
tool_choice?: {
|
|
107
|
+
type: "auto" | "any" | "tool";
|
|
108
|
+
name?: string;
|
|
109
|
+
};
|
|
105
110
|
/** Reasoning effort carried from the OpenAI request so the internal
|
|
106
111
|
* /v1/messages hop forwards it to the SDK (value gated by normalizeEffort). */
|
|
107
112
|
reasoning_effort?: string;
|
|
@@ -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":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAA;AAEjE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,CAAA;IACjB,SAAS,CAAC,EAAE;QACV,GAAG,CAAC,EAAE,MAAM,CAAA;KACb,CAAA;CACF;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE;QACV,GAAG,CAAC,EAAE,MAAM,CAAA;KACb,CAAA;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAAA;IACrC,UAAU,CAAC,EAAE,wBAAwB,EAAE,CAAA;CACxC;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,UAAU,EAAE,OAAO,CAAA;QACnB,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;CACF;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,CAAA;CACf;AAED,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG,oBAAoB,CAAA;AAE1E,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gDAAgD;IAChD,aAAa,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnC,cAAc,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAC7C;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ,CAAA;QACd,UAAU,EAAE,MAAM,CAAA;QAClB,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;CACF;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,OAAO,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,gBAAgB,EAAE,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,aAAa,EAAE,CAAA;IACvB,8EAA8E;IAC9E,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9D;oFACgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,qBAAqB,GAC/B,kBAAkB,GAClB,mBAAmB,GACnB,sBAAsB,GACtB,wBAAwB,GACxB,qBAAqB,CAAA;AAEvB,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,cAAc,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,uBAAuB,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,CAAC,CAAA;QACR,KAAK,EAAE;YACL,IAAI,CAAC,EAAE,WAAW,CAAA;YAClB,OAAO,CAAC,EAAE,MAAM,CAAA;YAChB,UAAU,CAAC,EAAE,4BAA4B,EAAE,CAAA;YAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAC3B,CAAA;QACD,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAA;KACvD,CAAC,CAAA;IACF,KAAK,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CACnF;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,QAAQ,CAAA;CACf;AAED,MAAM,MAAM,wBAAwB,GAClC,gCAAgC,GAChC,8BAA8B,CAAA;AAEhC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,iBAAiB,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,CAAC,CAAA;QACR,OAAO,EAAE;YACP,IAAI,EAAE,WAAW,CAAA;YACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;YACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;YAC1B,UAAU,CAAC,EAAE,wBAAwB,EAAE,CAAA;SACxC,CAAA;QACD,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAA;KAChD,CAAC,CAAA;IACF,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAA;QACrB,iBAAiB,EAAE,MAAM,CAAA;QACzB,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;CACF;AAED,mEAAmE;AACnE,UAAU,iBAAiB;IACzB,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,iBAAiB,CAAA;IACxB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,cAAc,EAAE,iBAAiB,CAAA;IACjC,kBAAkB,EAAE;QAClB,uBAAuB,EAAE,iBAAiB,CAAA;QAC1C,wBAAwB,EAAE,iBAAiB,CAAA;QAC3C,gBAAgB,EAAE,iBAAiB,CAAA;QACnC,SAAS,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,MAAM,EAAE;QACN,IAAI,EAAE,iBAAiB,CAAA;QACvB,GAAG,EAAE,iBAAiB,CAAA;QACtB,GAAG,EAAE,iBAAiB,CAAA;QACtB,MAAM,EAAE,iBAAiB,CAAA;QACzB,KAAK,EAAE,iBAAiB,CAAA;QACxB,SAAS,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,WAAW,EAAE,iBAAiB,CAAA;IAC9B,SAAS,EAAE,iBAAiB,CAAA;IAC5B,kBAAkB,EAAE,iBAAiB,CAAA;IACrC,QAAQ,EAAE;QACR,SAAS,EAAE,OAAO,CAAA;QAClB,KAAK,EAAE;YACL,QAAQ,EAAE,iBAAiB,CAAA;YAC3B,OAAO,EAAE,iBAAiB,CAAA;SAC3B,CAAA;KACF,CAAA;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,iBAAiB,CAAA;CACjC;AAMD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,GAAG,MAAM,CAUlF;AAwED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,iBAAiB,GAAG,oBAAoB,GAAG,IAAI,CAqJ/F;AAeD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,iBAAiB,EAC3B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1C,gBAAgB,CAmDlB;AAMD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,aAAa,CAAC,EACV;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/B;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACvC,qBAAqB,CAAA;IACzB,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACzB,KAAK,CAAC,EAAE,cAAc,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,IAAI,CAAA;IACpD,eAAe,IAAI,iBAAiB,GAAG,IAAI,CAAA;CAC5C;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,oBAAoB,GAAG,aAAa,CAiD5E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,iBAAiB,EACxB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,mBAAmB,CAAC,EAAE,OAAO,GAC5B,iBAAiB,GAAG,IAAI,CA2H1B;AAgCD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,SAAgC,GAAG,WAAW,EAAE,CAkE7G"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Responses API ⇄ Anthropic translation (#475).
|
|
3
|
+
*
|
|
4
|
+
* Pure functions — no HTTP/Hono — mirroring `openai.ts` (the chat-completions
|
|
5
|
+
* adapter). Serves the Codex CLI ≥ 0.96, which dropped `wire_api="chat"` and
|
|
6
|
+
* now speaks only `POST /v1/responses`. The `/v1/responses` route in
|
|
7
|
+
* server.ts forwards in-process to `/v1/messages` and pipes the response
|
|
8
|
+
* through these translators.
|
|
9
|
+
*
|
|
10
|
+
* Scope is Phase 1 of the approved design spec
|
|
11
|
+
* (docs/superpowers/specs/2026-07-08-codex-responses-api-design.md): text +
|
|
12
|
+
* function tool-calling, streaming and non-streaming, forced passthrough.
|
|
13
|
+
* Reasoning items are omitted (verified working against real Codex 0.143).
|
|
14
|
+
*
|
|
15
|
+
* NOTE: agent-specific (Codex). Kept isolated per ARCHITECTURE.md — this
|
|
16
|
+
* module owns the Responses wire format; no Responses logic leaks elsewhere.
|
|
17
|
+
*/
|
|
18
|
+
import type { AnthropicRequestBody } from "./openai";
|
|
19
|
+
interface ResponsesContentPart {
|
|
20
|
+
type: "input_text" | "output_text" | string;
|
|
21
|
+
text?: string;
|
|
22
|
+
}
|
|
23
|
+
interface ResponsesMessageItem {
|
|
24
|
+
type: "message";
|
|
25
|
+
role: "user" | "assistant" | "developer" | "system";
|
|
26
|
+
content: ResponsesContentPart[] | string;
|
|
27
|
+
}
|
|
28
|
+
interface ResponsesFunctionCallItem {
|
|
29
|
+
type: "function_call";
|
|
30
|
+
name: string;
|
|
31
|
+
arguments: string;
|
|
32
|
+
call_id: string;
|
|
33
|
+
}
|
|
34
|
+
interface ResponsesFunctionCallOutputItem {
|
|
35
|
+
type: "function_call_output";
|
|
36
|
+
call_id: string;
|
|
37
|
+
output: string;
|
|
38
|
+
}
|
|
39
|
+
interface ResponsesReasoningItem {
|
|
40
|
+
type: "reasoning";
|
|
41
|
+
[k: string]: unknown;
|
|
42
|
+
}
|
|
43
|
+
type ResponsesInputItem = ResponsesMessageItem | ResponsesFunctionCallItem | ResponsesFunctionCallOutputItem | ResponsesReasoningItem;
|
|
44
|
+
interface ResponsesTool {
|
|
45
|
+
type: "function" | string;
|
|
46
|
+
name: string;
|
|
47
|
+
description?: string;
|
|
48
|
+
strict?: boolean;
|
|
49
|
+
parameters?: unknown;
|
|
50
|
+
}
|
|
51
|
+
export interface ResponsesRequest {
|
|
52
|
+
model?: string;
|
|
53
|
+
instructions?: string;
|
|
54
|
+
input?: string | ResponsesInputItem[];
|
|
55
|
+
tools?: ResponsesTool[];
|
|
56
|
+
tool_choice?: unknown;
|
|
57
|
+
parallel_tool_calls?: boolean;
|
|
58
|
+
max_output_tokens?: number;
|
|
59
|
+
temperature?: number;
|
|
60
|
+
top_p?: number;
|
|
61
|
+
reasoning?: {
|
|
62
|
+
effort?: string;
|
|
63
|
+
};
|
|
64
|
+
stream?: boolean;
|
|
65
|
+
[k: string]: unknown;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Translate a Responses request to an Anthropic /v1/messages body.
|
|
69
|
+
* Returns null when `input` is missing (invalid request).
|
|
70
|
+
*/
|
|
71
|
+
export declare function translateResponsesToAnthropic(body: ResponsesRequest): AnthropicRequestBody | null;
|
|
72
|
+
export interface ResponsesCtx {
|
|
73
|
+
responseId: string;
|
|
74
|
+
model: string;
|
|
75
|
+
created: number;
|
|
76
|
+
/**
|
|
77
|
+
* The client asked for reasoning (Codex sends `reasoning.effort` +
|
|
78
|
+
* `include: ["reasoning.encrypted_content"]`). Phase 1 doesn't forward
|
|
79
|
+
* Claude's signed thinking, but Codex 0.144 HANGS waiting for a reasoning
|
|
80
|
+
* item it requested — so we emit one empty placeholder reasoning item to
|
|
81
|
+
* satisfy its state machine. Set from `reasoningRequested(body)`.
|
|
82
|
+
*/
|
|
83
|
+
reasoningRequested?: boolean;
|
|
84
|
+
}
|
|
85
|
+
/** Did the Responses request ask for reasoning output? */
|
|
86
|
+
export declare function reasoningRequested(body: ResponsesRequest): boolean;
|
|
87
|
+
interface AnthropicResponseLike {
|
|
88
|
+
content?: Array<Record<string, unknown>>;
|
|
89
|
+
stop_reason?: string;
|
|
90
|
+
usage?: {
|
|
91
|
+
input_tokens?: number;
|
|
92
|
+
output_tokens?: number;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Assemble a complete Responses `response` object from an Anthropic response.
|
|
97
|
+
* Text blocks become a single `message` item with `output_text` parts;
|
|
98
|
+
* tool_use blocks become `function_call` items. Thinking blocks are dropped.
|
|
99
|
+
*/
|
|
100
|
+
export declare function translateAnthropicToResponses(res: AnthropicResponseLike, ctx: ResponsesCtx): Record<string, unknown>;
|
|
101
|
+
export interface AnthropicSseEvent {
|
|
102
|
+
type: string;
|
|
103
|
+
index?: number;
|
|
104
|
+
message?: {
|
|
105
|
+
id?: string;
|
|
106
|
+
usage?: {
|
|
107
|
+
input_tokens?: number;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
content_block?: {
|
|
111
|
+
type?: string;
|
|
112
|
+
id?: string;
|
|
113
|
+
name?: string;
|
|
114
|
+
input?: unknown;
|
|
115
|
+
};
|
|
116
|
+
delta?: {
|
|
117
|
+
type?: string;
|
|
118
|
+
text?: string;
|
|
119
|
+
partial_json?: string;
|
|
120
|
+
thinking?: string;
|
|
121
|
+
stop_reason?: string;
|
|
122
|
+
};
|
|
123
|
+
usage?: {
|
|
124
|
+
output_tokens?: number;
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
export interface ResponsesSseEmission {
|
|
128
|
+
event: string;
|
|
129
|
+
data: Record<string, unknown>;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Stateful Anthropic-SSE → Responses-SSE translator. One instance per stream;
|
|
133
|
+
* call with each Anthropic event, emit the returned Responses events in order.
|
|
134
|
+
*/
|
|
135
|
+
export declare function createResponsesSseTranslator(ctx: ResponsesCtx): (event: AnthropicSseEvent) => ResponsesSseEmission[];
|
|
136
|
+
export {};
|
|
137
|
+
//# sourceMappingURL=openaiResponses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openaiResponses.d.ts","sourceRoot":"","sources":["../../src/proxy/openaiResponses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI commands for profile management.
|
|
3
|
+
*
|
|
4
|
+
* Browser-login profiles are stored under ~/.config/meridian/profiles/{id}/
|
|
5
|
+
* — each directory is a standalone CLAUDE_CONFIG_DIR with its own OAuth
|
|
6
|
+
* tokens. OAuth-token profiles (added via `--oauth-token`) live entirely in
|
|
7
|
+
* profiles.json — no per-profile config dir.
|
|
8
|
+
*
|
|
9
|
+
* This is a leaf module — no imports from server.ts or session/.
|
|
10
|
+
*/
|
|
11
|
+
import type { ProfileConfig } from "./profiles";
|
|
12
|
+
export declare const OAUTH_TOKEN_URL = "https://platform.claude.com/v1/oauth/token";
|
|
13
|
+
export declare const OAUTH_CLIENT_ID = "9d1c250a-e61b-44d9-88ed-5944d1962f5e";
|
|
14
|
+
export declare const OAUTH_REDIRECT_URI = "https://platform.claude.com/oauth/code/callback";
|
|
15
|
+
interface AuthLoginOptions {
|
|
16
|
+
headless?: boolean;
|
|
17
|
+
}
|
|
18
|
+
interface ManualOAuthSession {
|
|
19
|
+
authorizeUrl: string;
|
|
20
|
+
codeVerifier: string;
|
|
21
|
+
state: string;
|
|
22
|
+
}
|
|
23
|
+
interface ParsedAuthorizationCode {
|
|
24
|
+
code: string;
|
|
25
|
+
state?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function buildAuthLoginEnv(configDir: string | undefined, _options?: AuthLoginOptions, baseEnv?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
28
|
+
export declare function createManualOAuthSession(scopes?: string[]): ManualOAuthSession;
|
|
29
|
+
export declare function parseAuthorizationCodeInput(input: string): ParsedAuthorizationCode | null;
|
|
30
|
+
export declare function profileAdd(id: string, options?: AuthLoginOptions): Promise<void>;
|
|
31
|
+
export declare function profileAddOauthToken(id: string, tokenArg: string | undefined): Promise<void>;
|
|
32
|
+
export declare function profileList(): void;
|
|
33
|
+
/**
|
|
34
|
+
* Pure: resolve which on-disk directories should be removed when this profile
|
|
35
|
+
* is deleted. Browser-login profiles drop their explicit `claudeConfigDir`
|
|
36
|
+
* (provided it lives under `profilesDir`); oauth-token profiles drop the
|
|
37
|
+
* pinned isolation dir at `profilesDir/<id>` (created by the SDK during use,
|
|
38
|
+
* not stored on the profile itself).
|
|
39
|
+
*
|
|
40
|
+
* Caller is responsible for the actual `rmSync` — this returns paths only.
|
|
41
|
+
*/
|
|
42
|
+
export declare function dirsToRemoveOnProfileRemove(profile: ProfileConfig, profilesDir: string): string[];
|
|
43
|
+
export declare function profileRemove(id: string): void;
|
|
44
|
+
export declare function profileSwitch(id: string): Promise<void>;
|
|
45
|
+
export declare function profileLogin(id: string, options?: AuthLoginOptions): Promise<void>;
|
|
46
|
+
export declare function profileHelp(): void;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=profileCli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profileCli.d.ts","sourceRoot":"","sources":["../../src/proxy/profileCli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAO/C,eAAO,MAAM,eAAe,+CAA+C,CAAA;AAC3E,eAAO,MAAM,eAAe,yCAAyC,CAAA;AACrE,eAAO,MAAM,kBAAkB,oDAAoD,CAAA;AAkBnF,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,kBAAkB;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,uBAAuB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAUD,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,GAAE,gBAAqB,EAC/B,OAAO,GAAE,MAAM,CAAC,UAAwB,GACvC,MAAM,CAAC,UAAU,CAInB;AAMD,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAe9E;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,CAiBzF;AAiHD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwG1F;AAED,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BlG;AAED,wBAAgB,WAAW,IAAI,IAAI,CAsBlC;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAUjG;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAyB9C;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB7D;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkD5F;AAoED,wBAAgB,WAAW,IAAI,IAAI,CAsBlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdkFeatures.d.ts","sourceRoot":"","sources":["../../src/proxy/sdkFeatures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,gBAAgB,EAAE,OAAO,CAAA;IACzB,kFAAkF;IAClF,kBAAkB,EAAE,OAAO,CAAA;IAC3B,4DAA4D;IAC5D,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAA;IACpC,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAA;IACf,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAA;IACjB,0DAA0D;IAC1D,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;IAC7C,4CAA4C;IAC5C,mBAAmB,EAAE,OAAO,CAAA;IAC5B,iFAAiF;IACjF,YAAY,EAAE,OAAO,CAAA;IACrB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAA;IACpB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAA;IACrB,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAA;IACjB,uEAAuE;IACvE,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"sdkFeatures.d.ts","sourceRoot":"","sources":["../../src/proxy/sdkFeatures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,gBAAgB,EAAE,OAAO,CAAA;IACzB,kFAAkF;IAClF,kBAAkB,EAAE,OAAO,CAAA;IAC3B,4DAA4D;IAC5D,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAA;IACpC,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAA;IACf,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAA;IACjB,0DAA0D;IAC1D,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;IAC7C,4CAA4C;IAC5C,mBAAmB,EAAE,OAAO,CAAA;IAC5B,iFAAiF;IACjF,YAAY,EAAE,OAAO,CAAA;IACrB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAA;IACpB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAA;IACrB,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAA;IACjB,uEAAuE;IACvE,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;AAkGpE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAU1E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,SAAS,CAKhG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAOtE;AAKD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAgC5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAInG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAI9D"}
|
|
@@ -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":"AAgBA,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;AAkDnG,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;AAgR7B,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAwrHhF;AAWD,wBAAgB,gCAAgC,IAAI,IAAI,CAavD;AAED,wBAAsB,gBAAgB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAmGhG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Transform } from "../transform";
|
|
2
|
+
/**
|
|
3
|
+
* Codex CLI transform (#475). Runs after the shared OpenCode transform (which
|
|
4
|
+
* codex reuses for tool config); its only job is to FORCE passthrough on.
|
|
5
|
+
*
|
|
6
|
+
* Codex is a tool-driving agentic client — it executes its own tools and needs
|
|
7
|
+
* tool_use blocks returned to it — so it must run passthrough regardless of the
|
|
8
|
+
* global MERIDIAN_PASSTHROUGH setting. Internal mode (SDK executes tools) would
|
|
9
|
+
* leave Codex waiting for tool calls that never come back.
|
|
10
|
+
*/
|
|
11
|
+
export declare const codexTransforms: Transform[];
|
|
12
|
+
//# sourceMappingURL=codex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/proxy/transforms/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,cAAc,CAAA;AAE7D;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,EAQtC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/proxy/transforms/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,cAAc,CAAA;AAO7D,eAAO,MAAM,kBAAkB,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/proxy/transforms/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,cAAc,CAAA;AAO7D,eAAO,MAAM,kBAAkB,EAAE,SAAS,EA+FzC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/proxy/transforms/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/proxy/transforms/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AA2B7C,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE,CAE9E"}
|
package/dist/server.js
CHANGED
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
runObserveHook,
|
|
12
12
|
runTransformHook,
|
|
13
13
|
startProxyServer
|
|
14
|
-
} from "./cli-
|
|
14
|
+
} from "./cli-mqht6rs9.js";
|
|
15
15
|
import"./cli-f0yqy2d2.js";
|
|
16
16
|
import"./cli-sry5aqdj.js";
|
|
17
17
|
import"./cli-xmweegb1.js";
|
|
18
|
-
import"./cli-
|
|
18
|
+
import"./cli-jhm27q0x.js";
|
|
19
19
|
import"./cli-340h1chz.js";
|
|
20
20
|
import"./cli-je60fevk.js";
|
|
21
21
|
import"./cli-aq5zz92m.js";
|
package/package.json
CHANGED
package/plugin/meridian.ts
CHANGED
|
@@ -14,13 +14,17 @@
|
|
|
14
14
|
* { "plugin": ["/absolute/path/to/plugin/meridian.ts"] }
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
type AgentInput = string | { name?: string; mode?: string }
|
|
18
|
+
|
|
17
19
|
type Plugin = (input: any) => Promise<{
|
|
20
|
+
config?: (cfg: { agent?: Record<string, { mode?: string } | undefined> }) => Promise<void> | void
|
|
18
21
|
"chat.headers"?: (
|
|
19
22
|
input: {
|
|
20
23
|
sessionID: string
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
+
// Older OpenCode versions pass the full agent object
|
|
25
|
+
// ({ name, mode: "primary" | "subagent" | "all" }); OpenCode >= 1.17
|
|
26
|
+
// passes just the agent NAME as a string. Handle both.
|
|
27
|
+
agent: AgentInput
|
|
24
28
|
model: { providerID: string }
|
|
25
29
|
message: { id: string }
|
|
26
30
|
},
|
|
@@ -28,8 +32,52 @@ type Plugin = (input: any) => Promise<{
|
|
|
28
32
|
) => Promise<void>
|
|
29
33
|
}>
|
|
30
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Modes of OpenCode's built-in agents (they are not listed in the merged
|
|
37
|
+
* config unless the user overrides them, so the `config` hook alone can't
|
|
38
|
+
* see them). User-defined agents and built-in overrides are layered on top
|
|
39
|
+
* from the config hook.
|
|
40
|
+
*/
|
|
41
|
+
const BUILTIN_AGENT_MODES: Record<string, string> = {
|
|
42
|
+
build: "primary",
|
|
43
|
+
plan: "primary",
|
|
44
|
+
general: "subagent",
|
|
45
|
+
explore: "subagent",
|
|
46
|
+
// Hidden internal agents. These usually route to small_model (a
|
|
47
|
+
// non-Anthropic provider) but are mapped defensively.
|
|
48
|
+
title: "subagent",
|
|
49
|
+
summary: "subagent",
|
|
50
|
+
compaction: "subagent",
|
|
51
|
+
}
|
|
52
|
+
|
|
31
53
|
const MeridianPlugin: Plugin = async () => {
|
|
54
|
+
// Modes from the merged config, per plugin instance. Replaced wholesale on
|
|
55
|
+
// every config-hook fire so a reload can't leave stale entries behind.
|
|
56
|
+
let configModes: Record<string, string> = {}
|
|
57
|
+
|
|
58
|
+
const resolve = (agent: AgentInput): { name: string; mode: string } => {
|
|
59
|
+
if (typeof agent === "object" && agent !== null) {
|
|
60
|
+
// Legacy runtime shape: full agent object with an explicit mode.
|
|
61
|
+
return { name: agent.name ?? "unknown", mode: agent.mode ?? "primary" }
|
|
62
|
+
}
|
|
63
|
+
// OpenCode >= 1.17: agent is the name string. Resolve the mode from the
|
|
64
|
+
// merged config (captured in the config hook) + built-in defaults.
|
|
65
|
+
const name = String(agent)
|
|
66
|
+
return { name, mode: configModes[name] ?? BUILTIN_AGENT_MODES[name] ?? "primary" }
|
|
67
|
+
}
|
|
68
|
+
|
|
32
69
|
return {
|
|
70
|
+
// Runs with the merged OpenCode config (on init, and again on config
|
|
71
|
+
// reload). Captures the mode of user-defined agents and built-in
|
|
72
|
+
// overrides so chat.headers can classify string agent names.
|
|
73
|
+
config: (cfg) => {
|
|
74
|
+
const next: Record<string, string> = {}
|
|
75
|
+
for (const [name, def] of Object.entries(cfg?.agent ?? {})) {
|
|
76
|
+
if (typeof def?.mode === "string") next[name] = def.mode
|
|
77
|
+
}
|
|
78
|
+
configModes = next
|
|
79
|
+
},
|
|
80
|
+
|
|
33
81
|
"chat.headers": async (incoming, output) => {
|
|
34
82
|
// Only inject headers for Anthropic provider requests
|
|
35
83
|
if (incoming.model.providerID !== "anthropic") return
|
|
@@ -38,18 +86,15 @@ const MeridianPlugin: Plugin = async () => {
|
|
|
38
86
|
output.headers["x-opencode-session"] = incoming.sessionID
|
|
39
87
|
output.headers["x-opencode-request"] = incoming.message.id
|
|
40
88
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const rawName = typeof agent === "object"
|
|
48
|
-
? (agent.name ?? "unknown")
|
|
49
|
-
: String(agent)
|
|
89
|
+
const { name, mode } = resolve(incoming.agent)
|
|
90
|
+
|
|
91
|
+
// The proxy expects primary|subagent. "all" agents can act as either;
|
|
92
|
+
// without per-request context, treat them as primary (full tier) to
|
|
93
|
+
// preserve capability.
|
|
94
|
+
output.headers["x-opencode-agent-mode"] = mode === "subagent" ? "subagent" : "primary"
|
|
50
95
|
// Strip non-ASCII characters (e.g. zero-width spaces) that cause
|
|
51
96
|
// "Header has invalid value" errors in Node.js / undici.
|
|
52
|
-
output.headers["x-opencode-agent-name"] =
|
|
97
|
+
output.headers["x-opencode-agent-name"] = name.replace(/[^\x20-\x7E]/g, "").trim() || "unknown"
|
|
53
98
|
},
|
|
54
99
|
}
|
|
55
100
|
}
|