@ken-jo/agent-connector 0.4.79 → 0.4.91
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 +3 -3
- package/dist/{action-OHGFVKMC.js → action-L44DXFHT.js} +9 -9
- package/dist/antigravity-cli-JO6GUTV7.js +436 -0
- package/dist/antigravity-cli-JO6GUTV7.js.map +1 -0
- package/dist/{chunk-X457NOFE.js → chunk-25CPWJA7.js} +91 -11
- package/dist/chunk-25CPWJA7.js.map +1 -0
- package/dist/{chunk-VKRGQLY4.js → chunk-7HUUINPB.js} +18 -18
- package/dist/{chunk-LKAVD4HP.js → chunk-BLTVZACS.js} +8 -8
- package/dist/{chunk-PZHB5TVA.js → chunk-G4CEELKO.js} +2 -2
- package/dist/{chunk-VD4EG6SG.js → chunk-KIRCPLM4.js} +5 -5
- package/dist/{chunk-ZXX5DVSE.js → chunk-LAIITCMW.js} +6 -6
- package/dist/{chunk-UYZ53KWS.js → chunk-LF76VPGQ.js} +5 -5
- package/dist/{chunk-IRUYJD23.js → chunk-NLE2J5P4.js} +1 -1
- package/dist/{chunk-7NXEHZAK.js → chunk-NWLRJNXM.js} +2 -2
- package/dist/{chunk-YJP3KGLM.js → chunk-QARPXSIV.js} +4 -4
- package/dist/{chunk-AMK2K6XZ.js → chunk-R6LML2YS.js} +2 -2
- package/dist/{chunk-S4E6QQEM.js → chunk-ZMLVR4J7.js} +7 -2
- package/dist/chunk-ZMLVR4J7.js.map +1 -0
- package/dist/{claude-code-T6ZRCMA7.js → claude-code-WS4NAGZT.js} +4 -4
- package/dist/cli/sdk.js +4 -4
- package/dist/cli.js +1 -1
- package/dist/codebuddy-RBEZGXBG.js +643 -0
- package/dist/codebuddy-RBEZGXBG.js.map +1 -0
- package/dist/{codex-RHKQKNNG.js → codex-ZZ434GYR.js} +4 -4
- package/dist/{detect-ALAKE54S.js → detect-3S46RUMK.js} +4 -4
- package/dist/devin-PRJY2TTD.js +510 -0
- package/dist/devin-PRJY2TTD.js.map +1 -0
- package/dist/{doctor-UNF7FCF4.js → doctor-3CUBPQKU.js} +14 -14
- package/dist/grok-cli-5QD235UB.js +482 -0
- package/dist/grok-cli-5QD235UB.js.map +1 -0
- package/dist/{hook-GM2IDA3C.js → hook-P6EKDINW.js} +9 -9
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/{install-7O4XWH7T.js → install-7DMK53SB.js} +10 -10
- package/dist/{introspect-5o5ick0_.d.ts → introspect-DYOIX8Ov.d.ts} +1 -1
- package/dist/{jetbrains-copilot-4IOT3I2Y.js → jetbrains-copilot-T2EPKROP.js} +9 -3
- package/dist/jetbrains-copilot-T2EPKROP.js.map +1 -0
- package/dist/junie-SQ4SDLGK.js +227 -0
- package/dist/junie-SQ4SDLGK.js.map +1 -0
- package/dist/{kilo-TAHOPT2Q.js → kilo-OU2ZLZKB.js} +4 -4
- package/dist/{kilo-cli-X4NPJWGX.js → kilo-cli-NMWGYF4F.js} +4 -4
- package/dist/{kiro-YZ4TTZGD.js → kiro-4IN5IH46.js} +77 -2
- package/dist/kiro-4IN5IH46.js.map +1 -0
- package/dist/{leaderboard-DVW4WYJ6.js → leaderboard-LF5SP6X2.js} +4 -4
- package/dist/mistral-vibe-TRQDHAWV.js +300 -0
- package/dist/mistral-vibe-TRQDHAWV.js.map +1 -0
- package/dist/open-interpreter-4PKL56AA.js +264 -0
- package/dist/open-interpreter-4PKL56AA.js.map +1 -0
- package/dist/openhands-5LNH3BKB.js +384 -0
- package/dist/openhands-5LNH3BKB.js.map +1 -0
- package/dist/{package-H5V3AZHR.js → package-2EAIYSJ4.js} +7 -7
- package/dist/{pi-I7BLL4EI.js → pi-BUADR5MJ.js} +139 -2
- package/dist/pi-BUADR5MJ.js.map +1 -0
- package/dist/{qwen-code-JG7AF442.js → qwen-code-TUJNHKNI.js} +4 -4
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.js +7 -7
- package/dist/sdk/index.d.ts +3 -3
- package/dist/sdk/index.js +3 -3
- package/dist/sdk/test.d.ts +2 -2
- package/dist/sdk/test.js +7 -7
- package/dist/{serve-WMO2TUW3.js → serve-K62FW3V7.js} +9 -9
- package/dist/{status-WRLBTBRE.js → status-E5MCFZM6.js} +7 -7
- package/dist/{statusline-EUD4DMIP.js → statusline-LIPF2KVP.js} +8 -8
- package/dist/{telemetry-U3LGMR3D.js → telemetry-4OC56NTM.js} +5 -5
- package/dist/{types-D6RWGXm1.d.ts → types-C4qMgbJn.d.ts} +10 -9
- package/dist/{uninstall-TWPUEJEC.js → uninstall-2YYKN5DX.js} +10 -10
- package/dist/{upgrade-EM6Y7QLH.js → upgrade-55AFPJEF.js} +10 -10
- package/dist/{usage-3HQDTXGY.js → usage-3PB3WZSL.js} +3 -3
- package/dist/{usage-event-DWIGKO7V.js → usage-event-KD5FW6W4.js} +8 -8
- package/dist/{zed-LLOAUXSA.js → zed-ZF2OQ75O.js} +119 -3
- package/dist/zed-ZF2OQ75O.js.map +1 -0
- package/package.json +1 -1
- package/dist/antigravity-cli-KODEKUTM.js +0 -87
- package/dist/antigravity-cli-KODEKUTM.js.map +0 -1
- package/dist/chunk-S4E6QQEM.js.map +0 -1
- package/dist/chunk-X457NOFE.js.map +0 -1
- package/dist/jetbrains-copilot-4IOT3I2Y.js.map +0 -1
- package/dist/kiro-YZ4TTZGD.js.map +0 -1
- package/dist/pi-I7BLL4EI.js.map +0 -1
- package/dist/zed-LLOAUXSA.js.map +0 -1
- /package/dist/{action-OHGFVKMC.js.map → action-L44DXFHT.js.map} +0 -0
- /package/dist/{chunk-VKRGQLY4.js.map → chunk-7HUUINPB.js.map} +0 -0
- /package/dist/{chunk-LKAVD4HP.js.map → chunk-BLTVZACS.js.map} +0 -0
- /package/dist/{chunk-PZHB5TVA.js.map → chunk-G4CEELKO.js.map} +0 -0
- /package/dist/{chunk-VD4EG6SG.js.map → chunk-KIRCPLM4.js.map} +0 -0
- /package/dist/{chunk-ZXX5DVSE.js.map → chunk-LAIITCMW.js.map} +0 -0
- /package/dist/{chunk-UYZ53KWS.js.map → chunk-LF76VPGQ.js.map} +0 -0
- /package/dist/{chunk-IRUYJD23.js.map → chunk-NLE2J5P4.js.map} +0 -0
- /package/dist/{chunk-7NXEHZAK.js.map → chunk-NWLRJNXM.js.map} +0 -0
- /package/dist/{chunk-YJP3KGLM.js.map → chunk-QARPXSIV.js.map} +0 -0
- /package/dist/{chunk-AMK2K6XZ.js.map → chunk-R6LML2YS.js.map} +0 -0
- /package/dist/{claude-code-T6ZRCMA7.js.map → claude-code-WS4NAGZT.js.map} +0 -0
- /package/dist/{codex-RHKQKNNG.js.map → codex-ZZ434GYR.js.map} +0 -0
- /package/dist/{detect-ALAKE54S.js.map → detect-3S46RUMK.js.map} +0 -0
- /package/dist/{doctor-UNF7FCF4.js.map → doctor-3CUBPQKU.js.map} +0 -0
- /package/dist/{hook-GM2IDA3C.js.map → hook-P6EKDINW.js.map} +0 -0
- /package/dist/{install-7O4XWH7T.js.map → install-7DMK53SB.js.map} +0 -0
- /package/dist/{kilo-TAHOPT2Q.js.map → kilo-OU2ZLZKB.js.map} +0 -0
- /package/dist/{kilo-cli-X4NPJWGX.js.map → kilo-cli-NMWGYF4F.js.map} +0 -0
- /package/dist/{leaderboard-DVW4WYJ6.js.map → leaderboard-LF5SP6X2.js.map} +0 -0
- /package/dist/{package-H5V3AZHR.js.map → package-2EAIYSJ4.js.map} +0 -0
- /package/dist/{qwen-code-JG7AF442.js.map → qwen-code-TUJNHKNI.js.map} +0 -0
- /package/dist/{serve-WMO2TUW3.js.map → serve-K62FW3V7.js.map} +0 -0
- /package/dist/{status-WRLBTBRE.js.map → status-E5MCFZM6.js.map} +0 -0
- /package/dist/{statusline-EUD4DMIP.js.map → statusline-LIPF2KVP.js.map} +0 -0
- /package/dist/{telemetry-U3LGMR3D.js.map → telemetry-4OC56NTM.js.map} +0 -0
- /package/dist/{uninstall-TWPUEJEC.js.map → uninstall-2YYKN5DX.js.map} +0 -0
- /package/dist/{upgrade-EM6Y7QLH.js.map → upgrade-55AFPJEF.js.map} +0 -0
- /package/dist/{usage-3HQDTXGY.js.map → usage-3PB3WZSL.js.map} +0 -0
- /package/dist/{usage-event-DWIGKO7V.js.map → usage-event-KD5FW6W4.js.map} +0 -0
|
@@ -2,13 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
// src/adapters/registry.ts
|
|
4
4
|
var ADAPTER_REGISTRY = [
|
|
5
|
+
// codebuddy (Tencent CodeBuddy) is a Claude Code fork that ALSO exports
|
|
6
|
+
// CLAUDE_SESSION_ID at runtime (its bundle sets both CODEBUDDY_SESSION_ID and
|
|
7
|
+
// CLAUDE_SESSION_ID), so it must precede claude-code: the fork's exclusive
|
|
8
|
+
// runtime markers are checked first during host detection (fork-before-parent).
|
|
9
|
+
{
|
|
10
|
+
id: "codebuddy",
|
|
11
|
+
load: () => import("./codebuddy-RBEZGXBG.js").then((m) => m.default)
|
|
12
|
+
},
|
|
5
13
|
{
|
|
6
14
|
id: "claude-code",
|
|
7
|
-
load: () => import("./claude-code-
|
|
15
|
+
load: () => import("./claude-code-WS4NAGZT.js").then((m) => m.default)
|
|
8
16
|
},
|
|
9
17
|
{
|
|
10
18
|
id: "codex",
|
|
11
|
-
load: () => import("./codex-
|
|
19
|
+
load: () => import("./codex-ZZ434GYR.js").then((m) => m.default)
|
|
12
20
|
},
|
|
13
21
|
{
|
|
14
22
|
id: "cursor",
|
|
@@ -54,13 +62,22 @@ var ADAPTER_REGISTRY = [
|
|
|
54
62
|
// the "kilo" extension so there is no fork-ordering constraint between them.
|
|
55
63
|
{
|
|
56
64
|
id: "kilo-cli",
|
|
57
|
-
load: () => import("./kilo-cli-
|
|
65
|
+
load: () => import("./kilo-cli-NMWGYF4F.js").then((m) => m.default)
|
|
58
66
|
},
|
|
59
67
|
// Wave 1 — mcp-only adapters (no lifecycle hooks; MCP registration only).
|
|
60
68
|
{
|
|
61
69
|
id: "droid",
|
|
62
70
|
load: () => import("./droid-PTCH2K7Y.js").then((m) => m.default)
|
|
63
71
|
},
|
|
72
|
+
// openhands is the All-Hands-AI OpenHands CLI (`openhands`, ex-OpenDevin) —
|
|
73
|
+
// a standalone json-stdio host: MCP at ~/.openhands/mcp.json ("mcpServers",
|
|
74
|
+
// FastMCP entry shape) + a SEPARATE .openhands/hooks.json carrying the
|
|
75
|
+
// Claude-Code-plugin-compatible nested-rule hooks (6 events). Its persistence
|
|
76
|
+
// dir (~/.openhands) is distinct, so there is no fork-ordering constraint.
|
|
77
|
+
{
|
|
78
|
+
id: "openhands",
|
|
79
|
+
load: () => import("./openhands-5LNH3BKB.js").then((m) => m.default)
|
|
80
|
+
},
|
|
64
81
|
{
|
|
65
82
|
id: "roo-code",
|
|
66
83
|
load: () => import("./roo-code-L5F7S6QH.js").then((m) => m.default)
|
|
@@ -70,7 +87,7 @@ var ADAPTER_REGISTRY = [
|
|
|
70
87
|
// globalStorage / .kilocode project scope). Distinct host from "kilo-cli".
|
|
71
88
|
{
|
|
72
89
|
id: "kilo",
|
|
73
|
-
load: () => import("./kilo-
|
|
90
|
+
load: () => import("./kilo-OU2ZLZKB.js").then((m) => m.default)
|
|
74
91
|
},
|
|
75
92
|
// cline is the Cline VS Code extension (saoudrizwan.claude-dev) — the most-
|
|
76
93
|
// installed AI coding extension and the PARENT that roo-code and kilo forked.
|
|
@@ -93,7 +110,7 @@ var ADAPTER_REGISTRY = [
|
|
|
93
110
|
// before the IDE/parent during host detection.
|
|
94
111
|
{
|
|
95
112
|
id: "antigravity-cli",
|
|
96
|
-
load: () => import("./antigravity-cli-
|
|
113
|
+
load: () => import("./antigravity-cli-JO6GUTV7.js").then((m) => m.default)
|
|
97
114
|
},
|
|
98
115
|
{
|
|
99
116
|
id: "antigravity",
|
|
@@ -101,7 +118,7 @@ var ADAPTER_REGISTRY = [
|
|
|
101
118
|
},
|
|
102
119
|
{
|
|
103
120
|
id: "zed",
|
|
104
|
-
load: () => import("./zed-
|
|
121
|
+
load: () => import("./zed-ZF2OQ75O.js").then((m) => m.default)
|
|
105
122
|
},
|
|
106
123
|
{
|
|
107
124
|
id: "amp",
|
|
@@ -119,21 +136,21 @@ var ADAPTER_REGISTRY = [
|
|
|
119
136
|
// surface only (writes <piDir>/skills/<name>/SKILL.md).
|
|
120
137
|
{
|
|
121
138
|
id: "pi",
|
|
122
|
-
load: () => import("./pi-
|
|
139
|
+
load: () => import("./pi-BUADR5MJ.js").then((m) => m.default)
|
|
123
140
|
},
|
|
124
141
|
// Wave 2 — json-stdio adapters (full hook dispatch via the universal entrypoint).
|
|
125
142
|
// jetbrains-copilot before vscode-copilot is unnecessary (distinct hosts); grouped here.
|
|
126
143
|
{
|
|
127
144
|
id: "jetbrains-copilot",
|
|
128
|
-
load: () => import("./jetbrains-copilot-
|
|
145
|
+
load: () => import("./jetbrains-copilot-T2EPKROP.js").then((m) => m.default)
|
|
129
146
|
},
|
|
130
147
|
{
|
|
131
148
|
id: "qwen-code",
|
|
132
|
-
load: () => import("./qwen-code-
|
|
149
|
+
load: () => import("./qwen-code-TUJNHKNI.js").then((m) => m.default)
|
|
133
150
|
},
|
|
134
151
|
{
|
|
135
152
|
id: "kiro",
|
|
136
|
-
load: () => import("./kiro-
|
|
153
|
+
load: () => import("./kiro-4IN5IH46.js").then((m) => m.default)
|
|
137
154
|
},
|
|
138
155
|
{
|
|
139
156
|
id: "kimi",
|
|
@@ -209,6 +226,69 @@ var ADAPTER_REGISTRY = [
|
|
|
209
226
|
{
|
|
210
227
|
id: "windsurf",
|
|
211
228
|
load: () => import("./windsurf-3T3RVXKM.js").then((m) => m.default)
|
|
229
|
+
},
|
|
230
|
+
// Grok CLI (the community superagent-ai/grok-cli, npm `grok-dev`, bin `grok`,
|
|
231
|
+
// MIT) — json-stdio. Id is `grok-cli` (NOT `grok`) to stay distinct from xAI's
|
|
232
|
+
// separate "Grok Build" product. USER-SCOPE ONLY: both MCP servers (nested
|
|
233
|
+
// `mcp.servers` JSON ARRAY, keyed by `id`) and hooks (top-level `hooks`,
|
|
234
|
+
// Claude nested-rule shape) live in ~/.grok/user-settings.json (project
|
|
235
|
+
// .grok/settings.json holds neither — Grok excludes project hooks for
|
|
236
|
+
// security). Distinct ~/.grok marker — no fork-ordering constraint vs any
|
|
237
|
+
// sibling.
|
|
238
|
+
{
|
|
239
|
+
id: "grok-cli",
|
|
240
|
+
load: () => import("./grok-cli-5QD235UB.js").then((m) => m.default)
|
|
241
|
+
},
|
|
242
|
+
// Devin CLI (Cognition) — json-stdio. A Rust binary (`devin`, installed via
|
|
243
|
+
// `curl cli.devin.ai/install.sh` → ~/.local/bin/devin). MCP + hooks live in
|
|
244
|
+
// ONE config.json per scope: user ~/.config/devin/config.json
|
|
245
|
+
// (%APPDATA%\devin\config.json on Windows) / project <projectDir>/.devin/
|
|
246
|
+
// config.json. MCP root key "mcpServers" (object map; stdio { command, args?,
|
|
247
|
+
// env? }, remote { url, transport?, headers? }; native ${env:VAR}). Hooks
|
|
248
|
+
// under the same file's "hooks" key (Claude-compatible NESTED-rule shape; reply
|
|
249
|
+
// is the SIMPLE top-level {decision:"approve"|"block"|"deny", reason}). Distinct
|
|
250
|
+
// ~/.config/devin / .devin marker — no fork-ordering constraint.
|
|
251
|
+
{
|
|
252
|
+
id: "devin",
|
|
253
|
+
load: () => import("./devin-PRJY2TTD.js").then((m) => m.default)
|
|
254
|
+
},
|
|
255
|
+
// Open Interpreter (the new Rust `interpreter` / `i` CLI) — mcp-only. It is a
|
|
256
|
+
// FORK of OpenAI's Codex (README: "Open Interpreter is a fork of OpenAI's
|
|
257
|
+
// Codex"), so its native config is Codex's: a TOML `config.toml` carrying
|
|
258
|
+
// `[mcp_servers.<id>]` tables (command/args/env stdio; url/bearer_token_env_var/
|
|
259
|
+
// http_headers streamable-HTTP). The config home is DELIBERATELY isolated from
|
|
260
|
+
// Codex — the `interpreter` binary honors ONLY `$INTERPRETER_HOME` (NOT
|
|
261
|
+
// `$CODEX_HOME`, which it explicitly ignores) and defaults to ~/.openinterpreter
|
|
262
|
+
// (codex-rs/utils/home-dir/src/lib.rs). That distinct dir means there is NO
|
|
263
|
+
// fork-ordering constraint vs codex — the two never target the same file — so
|
|
264
|
+
// it simply sits at the end of the registry. Kept mcp-only (the codex hook
|
|
265
|
+
// subsystem is present in the fork, but the `interpreter` product's live hook
|
|
266
|
+
// wire contract is not first-party-verified, so hooks are not claimed).
|
|
267
|
+
{
|
|
268
|
+
id: "open-interpreter",
|
|
269
|
+
load: () => import("./open-interpreter-4PKL56AA.js").then((m) => m.default)
|
|
270
|
+
},
|
|
271
|
+
// Junie (JetBrains' OWN LLM-agnostic coding agent — DISTINCT from
|
|
272
|
+
// jetbrains-copilot, which is GitHub Copilot in JetBrains IDEs) — mcp-only.
|
|
273
|
+
// The `junie` CLI (npm @jetbrains/junie, github.com/JetBrains/junie) shares its
|
|
274
|
+
// MCP JSON config with Junie in JetBrains IDEs: object map "mcpServers" at
|
|
275
|
+
// <projectDir>/.junie/mcp/mcp.json (project) and ~/.junie/mcp/mcp.json (user);
|
|
276
|
+
// stdio { command, args?, env? }, remote { url, headers? }. No documented
|
|
277
|
+
// user-installable hook surface → mcp-only. Distinct ~/.junie marker — no
|
|
278
|
+
// fork-ordering constraint vs any sibling.
|
|
279
|
+
{
|
|
280
|
+
id: "junie",
|
|
281
|
+
load: () => import("./junie-SQ4SDLGK.js").then((m) => m.default)
|
|
282
|
+
},
|
|
283
|
+
// mistral-vibe is Mistral's coding-agent CLI — an mcp-only host. MCP config is
|
|
284
|
+
// TOML at <projectDir>/.vibe/config.toml (project, precedence) → ~/.vibe/
|
|
285
|
+
// config.toml (user); root key `mcp_servers` is a TOML ARRAY-OF-TABLES
|
|
286
|
+
// ([[mcp_servers]], each entry carries a `name` short alias — distinct from
|
|
287
|
+
// codex's table-keyed [mcp_servers.<name>]). Distinct ~/.vibe / .vibe marker —
|
|
288
|
+
// no fork-ordering constraint.
|
|
289
|
+
{
|
|
290
|
+
id: "mistral-vibe",
|
|
291
|
+
load: () => import("./mistral-vibe-TRQDHAWV.js").then((m) => m.default)
|
|
212
292
|
}
|
|
213
293
|
];
|
|
214
294
|
var REGISTRY_BY_ID = new Map(
|
|
@@ -234,4 +314,4 @@ export {
|
|
|
234
314
|
loadAdapter,
|
|
235
315
|
allAdapters
|
|
236
316
|
};
|
|
237
|
-
//# sourceMappingURL=chunk-
|
|
317
|
+
//# sourceMappingURL=chunk-25CPWJA7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/adapters/registry.ts"],"sourcesContent":["/**\n * adapters/registry — single source of truth for the platforms agent-connector\n * targets. Generalized from context-mode's `ADAPTER_REGISTRY` pattern, adapted\n * to our `Adapter` / `AdapterFactory` contract (adapters/spi.ts).\n *\n * In context-mode the same platform set was redeclared in four places (env-var\n * detection, session-dir lookup, the lazy adapter loader, and per-adapter base\n * constructors); adding a platform meant editing all of them and missing one\n * was silent. Here the list lives ONCE below: each platform is one entry with a\n * lazy `load()` thunk that resolves the adapter singleton. Adding a platform is\n * a single new entry — `getFactory` / `loadAdapter` / `allAdapters` and the\n * detection cascade in detect.ts all derive from this list.\n *\n * `load()` returns the module's default export, which every adapter file is\n * required to provide as its singleton (`export default adapter;`). It is a\n * function (not an eager import) so module loading stays lazy: an adapter is\n * only imported when it is actually needed, keeping startup cheap.\n *\n * Order is load-bearing for runtime host detection (detect.ts iterates env\n * markers in registry order): forks MUST precede their parent so a session\n * running inside a derived shell is not misclassified as the parent. For the\n * three Phase-1 adapters this is moot, but the ordering convention is fixed now\n * so later additions (cursor is a VS Code fork, etc.) slot in correctly.\n */\n\nimport type { PlatformId } from \"../core/types.js\";\nimport type { Adapter, AdapterFactory } from \"./spi.js\";\n\n/**\n * Authoritative list of installable platforms. One entry per platform; the\n * `load` thunk lazily imports the adapter module and returns its default-export\n * singleton. To add a platform: drop its `src/adapters/<id>/index.ts` in place\n * (default-exporting an `Adapter`) and add one entry here.\n */\nexport const ADAPTER_REGISTRY: readonly AdapterFactory[] = [\n // codebuddy (Tencent CodeBuddy) is a Claude Code fork that ALSO exports\n // CLAUDE_SESSION_ID at runtime (its bundle sets both CODEBUDDY_SESSION_ID and\n // CLAUDE_SESSION_ID), so it must precede claude-code: the fork's exclusive\n // runtime markers are checked first during host detection (fork-before-parent).\n {\n id: \"codebuddy\",\n load: () => import(\"./codebuddy/index.js\").then((m) => m.default),\n },\n {\n id: \"claude-code\",\n load: () => import(\"./claude-code/index.js\").then((m) => m.default),\n },\n {\n id: \"codex\",\n load: () => import(\"./codex/index.js\").then((m) => m.default),\n },\n {\n id: \"cursor\",\n load: () => import(\"./cursor/index.js\").then((m) => m.default),\n },\n // vscode-copilot after cursor: cursor is a VS Code fork, so the fork's runtime\n // markers must be checked first during host detection.\n {\n id: \"vscode-copilot\",\n load: () => import(\"./vscode-copilot/index.js\").then((m) => m.default),\n },\n {\n id: \"copilot-cli\",\n load: () => import(\"./copilot-cli/index.js\").then((m) => m.default),\n },\n {\n id: \"gemini-cli\",\n load: () => import(\"./gemini-cli/index.js\").then((m) => m.default),\n },\n {\n id: \"warp\",\n load: () => import(\"./warp/index.js\").then((m) => m.default),\n },\n // ts-plugin paradigm: OpenCode loads a generated plugin module that bridges\n // its in-process events to the universal hook entrypoint.\n {\n id: \"opencode\",\n load: () => import(\"./opencode/index.js\").then((m) => m.default),\n },\n // mimo-code is Xiaomi's MiMoCode (@mimo-ai/cli, bin `mimo`) — an OpenCode FORK\n // (ts-plugin, MCP root key \"mcp\", ~/.config/mimocode/mimocode.json). Grouped\n // beside the OpenCode family whose config dialect + plugin contract it shares;\n // detected via the DISTINCT ~/.config/mimocode dir, so there is no fork-ordering\n // constraint vs opencode (no shared config file to disambiguate).\n {\n id: \"mimo-code\",\n load: () => import(\"./mimo-code/index.js\").then((m) => m.default),\n },\n // kilo-cli is the SQLite-backed OpenCode FORK command-line product (ts-plugin,\n // loads @kilocode/plugin modules registered in kilo.jsonc's \"plugin\" array;\n // MCP root key \"mcp\", ~/.config/kilo/kilo.jsonc). Grouped beside the OpenCode\n // family whose plugin contract + config dialect it shares; distinct host from\n // the \"kilo\" extension so there is no fork-ordering constraint between them.\n {\n id: \"kilo-cli\",\n load: () => import(\"./kilo-cli/index.js\").then((m) => m.default),\n },\n // Wave 1 — mcp-only adapters (no lifecycle hooks; MCP registration only).\n {\n id: \"droid\",\n load: () => import(\"./droid/index.js\").then((m) => m.default),\n },\n // openhands is the All-Hands-AI OpenHands CLI (`openhands`, ex-OpenDevin) —\n // a standalone json-stdio host: MCP at ~/.openhands/mcp.json (\"mcpServers\",\n // FastMCP entry shape) + a SEPARATE .openhands/hooks.json carrying the\n // Claude-Code-plugin-compatible nested-rule hooks (6 events). Its persistence\n // dir (~/.openhands) is distinct, so there is no fork-ordering constraint.\n {\n id: \"openhands\",\n load: () => import(\"./openhands/index.js\").then((m) => m.default),\n },\n {\n id: \"roo-code\",\n load: () => import(\"./roo-code/index.js\").then((m) => m.default),\n },\n // kilo is the Kilo Code VS Code extension (kilocode.kilo-code) — a Roo/Cline\n // fork, so it sits beside roo-code (mcp-only, root key \"mcpServers\", VS Code\n // globalStorage / .kilocode project scope). Distinct host from \"kilo-cli\".\n {\n id: \"kilo\",\n load: () => import(\"./kilo/index.js\").then((m) => m.default),\n },\n // cline is the Cline VS Code extension (saoudrizwan.claude-dev) — the most-\n // installed AI coding extension and the PARENT that roo-code and kilo forked.\n // mcp-only (no hook layer); MCP at the globalStorage cline_mcp_settings.json\n // (\"mcpServers\"); content lives in the .clinerules tree + ~/Documents/Cline.\n // NO runtime-marker collision with roo-code (rooveterinaryinc.roo-cline / .roo)\n // or kilo (kilocode.kilo-code / .kilo) — distinct ext ids + dotdirs — so there\n // is NO fork-before-parent ordering constraint here; it simply sits beside them.\n {\n id: \"cline\",\n load: () => import(\"./cline/index.js\").then((m) => m.default),\n },\n {\n id: \"trae\",\n load: () => import(\"./trae/index.js\").then((m) => m.default),\n },\n // antigravity-cli BEFORE antigravity: the `agy` CLI is a fork of the IDE\n // adapter with its own runtime markers (the universal hook command tags the\n // host as \"antigravity-cli\"), so the more-specific CLI marker must be checked\n // before the IDE/parent during host detection.\n {\n id: \"antigravity-cli\",\n load: () => import(\"./antigravity-cli/index.js\").then((m) => m.default),\n },\n {\n id: \"antigravity\",\n load: () => import(\"./antigravity/index.js\").then((m) => m.default),\n },\n {\n id: \"zed\",\n load: () => import(\"./zed/index.js\").then((m) => m.default),\n },\n {\n id: \"amp\",\n load: () => import(\"./amp/index.js\").then((m) => m.default),\n },\n {\n id: \"codebuff\",\n load: () => import(\"./codebuff/index.js\").then((m) => m.default),\n },\n {\n id: \"mux\",\n load: () => import(\"./mux/index.js\").then((m) => m.default),\n },\n // Pi — mcp-only host with no writable MCP config; drives the Agent Skills\n // surface only (writes <piDir>/skills/<name>/SKILL.md).\n {\n id: \"pi\",\n load: () => import(\"./pi/index.js\").then((m) => m.default),\n },\n // Wave 2 — json-stdio adapters (full hook dispatch via the universal entrypoint).\n // jetbrains-copilot before vscode-copilot is unnecessary (distinct hosts); grouped here.\n {\n id: \"jetbrains-copilot\",\n load: () => import(\"./jetbrains-copilot/index.js\").then((m) => m.default),\n },\n {\n id: \"qwen-code\",\n load: () => import(\"./qwen-code/index.js\").then((m) => m.default),\n },\n {\n id: \"kiro\",\n load: () => import(\"./kiro/index.js\").then((m) => m.default),\n },\n {\n id: \"kimi\",\n load: () => import(\"./kimi/index.js\").then((m) => m.default),\n },\n {\n id: \"crush\",\n load: () => import(\"./crush/index.js\").then((m) => m.default),\n },\n // Wave 3 — json-stdio adapters with YAML config (MCP in YAML; hooks per host).\n {\n id: \"goose\",\n load: () => import(\"./goose/index.js\").then((m) => m.default),\n },\n {\n id: \"hermes\",\n load: () => import(\"./hermes/index.js\").then((m) => m.default),\n },\n // Wave 4 — ts-plugin adapters (generate a bridge module to the universal entrypoint).\n {\n id: \"omp\",\n load: () => import(\"./omp/index.js\").then((m) => m.default),\n },\n // nemoclaw BEFORE openclaw (fork-before-parent convention). NVIDIA NemoClaw\n // wraps OpenClaw and DRIVES the SAME ~/.openclaw/openclaw.json, so a NemoClaw\n // box carries BOTH the ~/.nemoclaw/ and ~/.openclaw/ markers. Exclusivity is\n // enforced at the SOURCE: OpenClawAdapter.detectInstalled BOWS OUT when\n // ~/.nemoclaw/ is present, so the shared config is never double-targeted as two\n // platforms. This ordering is the deterministic tie-break (matching the\n // antigravity-cli/antigravity precedent). nemoclaw extends OpenClawAdapter\n // (id/name/detection overridden), so inherited server/hook registration still\n // lands in the wrapped openclaw.json.\n {\n id: \"nemoclaw\",\n load: () => import(\"./nemoclaw/index.js\").then((m) => m.default),\n },\n {\n id: \"openclaw\",\n load: () => import(\"./openclaw/index.js\").then((m) => m.default),\n },\n // Wave 5 — mcp-only: Amazon Q Developer CLI. JSON MCP config under ~/.aws/amazonq/\n // (user) and .amazonq/ (project); root key \"mcpServers\"; bare stdio entry\n // { command, args, env, timeout? } or remote entry { type: \"http\", url } (no\n // headers) for http. The agent-format hooks layer (cli-agents/*.json) +\n // agents/prompts content surfaces are separate, not-yet-wired surfaces; this\n // adapter installs MCP entries + the .amazonq/rules memory surface.\n {\n id: \"amazon-q\",\n load: () => import(\"./amazon-q/index.js\").then((m) => m.default),\n },\n // Continue (the `cn` terminal agent / Continue.dev, npm @continuedev/cli) —\n // json-stdio (Claude-compatible hooks). MCP config is YAML at ~/.continue/config.yaml (user) and\n // <projectDir>/.continue/config.yaml (project); root key \"mcpServers\" is a\n // YAML ARRAY of { name, command, type?, args?, env?, cwd?, url } entries (NOT a\n // keyed map). Hooks: a Claude-compatible json-stdio layer in settings.json\n // (~/.continue/settings.json — separate from the MCP config.yaml; PR #11029) +\n // nativeHooks for the host-specific events. Distinct ~/.continue marker — no\n // fork-ordering constraint vs any sibling.\n {\n id: \"continue\",\n load: () => import(\"./continue/index.js\").then((m) => m.default),\n },\n // Windsurf (Codeium / Cognition's Cascade agent) — mcp-only. USER/GLOBAL scope\n // ONLY: MCP config is JSON at ~/.codeium/windsurf/mcp_config.json (the docs\n // document no project/workspace path), root key \"mcpServers\" is a Claude-\n // Desktop-style OBJECT map keyed by server name (like cursor). stdio entry\n // { command, args?, env? }; remote entry { serverUrl, headers? } (NOT `url`;\n // no type/disabled). No user-installable hook/plugin layer (GUI editor), so it\n // stays mcp-only paradigm — but content surfaces ARE wired: workflows\n // (.windsurf/workflows + ~/.codeium/windsurf/global_workflows), skills\n // (.windsurf/skills + ~/.codeium/windsurf/skills), and the .windsurf/rules\n // memory surface. Distinct ~/.codeium marker — no fork-ordering constraint.\n {\n id: \"windsurf\",\n load: () => import(\"./windsurf/index.js\").then((m) => m.default),\n },\n // Grok CLI (the community superagent-ai/grok-cli, npm `grok-dev`, bin `grok`,\n // MIT) — json-stdio. Id is `grok-cli` (NOT `grok`) to stay distinct from xAI's\n // separate \"Grok Build\" product. USER-SCOPE ONLY: both MCP servers (nested\n // `mcp.servers` JSON ARRAY, keyed by `id`) and hooks (top-level `hooks`,\n // Claude nested-rule shape) live in ~/.grok/user-settings.json (project\n // .grok/settings.json holds neither — Grok excludes project hooks for\n // security). Distinct ~/.grok marker — no fork-ordering constraint vs any\n // sibling.\n {\n id: \"grok-cli\",\n load: () => import(\"./grok-cli/index.js\").then((m) => m.default),\n },\n // Devin CLI (Cognition) — json-stdio. A Rust binary (`devin`, installed via\n // `curl cli.devin.ai/install.sh` → ~/.local/bin/devin). MCP + hooks live in\n // ONE config.json per scope: user ~/.config/devin/config.json\n // (%APPDATA%\\devin\\config.json on Windows) / project <projectDir>/.devin/\n // config.json. MCP root key \"mcpServers\" (object map; stdio { command, args?,\n // env? }, remote { url, transport?, headers? }; native ${env:VAR}). Hooks\n // under the same file's \"hooks\" key (Claude-compatible NESTED-rule shape; reply\n // is the SIMPLE top-level {decision:\"approve\"|\"block\"|\"deny\", reason}). Distinct\n // ~/.config/devin / .devin marker — no fork-ordering constraint.\n {\n id: \"devin\",\n load: () => import(\"./devin/index.js\").then((m) => m.default),\n },\n // Open Interpreter (the new Rust `interpreter` / `i` CLI) — mcp-only. It is a\n // FORK of OpenAI's Codex (README: \"Open Interpreter is a fork of OpenAI's\n // Codex\"), so its native config is Codex's: a TOML `config.toml` carrying\n // `[mcp_servers.<id>]` tables (command/args/env stdio; url/bearer_token_env_var/\n // http_headers streamable-HTTP). The config home is DELIBERATELY isolated from\n // Codex — the `interpreter` binary honors ONLY `$INTERPRETER_HOME` (NOT\n // `$CODEX_HOME`, which it explicitly ignores) and defaults to ~/.openinterpreter\n // (codex-rs/utils/home-dir/src/lib.rs). That distinct dir means there is NO\n // fork-ordering constraint vs codex — the two never target the same file — so\n // it simply sits at the end of the registry. Kept mcp-only (the codex hook\n // subsystem is present in the fork, but the `interpreter` product's live hook\n // wire contract is not first-party-verified, so hooks are not claimed).\n {\n id: \"open-interpreter\",\n load: () => import(\"./open-interpreter/index.js\").then((m) => m.default),\n },\n // Junie (JetBrains' OWN LLM-agnostic coding agent — DISTINCT from\n // jetbrains-copilot, which is GitHub Copilot in JetBrains IDEs) — mcp-only.\n // The `junie` CLI (npm @jetbrains/junie, github.com/JetBrains/junie) shares its\n // MCP JSON config with Junie in JetBrains IDEs: object map \"mcpServers\" at\n // <projectDir>/.junie/mcp/mcp.json (project) and ~/.junie/mcp/mcp.json (user);\n // stdio { command, args?, env? }, remote { url, headers? }. No documented\n // user-installable hook surface → mcp-only. Distinct ~/.junie marker — no\n // fork-ordering constraint vs any sibling.\n {\n id: \"junie\",\n load: () => import(\"./junie/index.js\").then((m) => m.default),\n },\n // mistral-vibe is Mistral's coding-agent CLI — an mcp-only host. MCP config is\n // TOML at <projectDir>/.vibe/config.toml (project, precedence) → ~/.vibe/\n // config.toml (user); root key `mcp_servers` is a TOML ARRAY-OF-TABLES\n // ([[mcp_servers]], each entry carries a `name` short alias — distinct from\n // codex's table-keyed [mcp_servers.<name>]). Distinct ~/.vibe / .vibe marker —\n // no fork-ordering constraint.\n {\n id: \"mistral-vibe\",\n load: () => import(\"./mistral-vibe/index.js\").then((m) => m.default),\n },\n];\n\n/** O(1) lookup index, built once at module-load time. */\nconst REGISTRY_BY_ID: ReadonlyMap<PlatformId, AdapterFactory> = new Map(\n ADAPTER_REGISTRY.map((factory) => [factory.id, factory] as const),\n);\n\n/** Every platform id present in the registry (useful for matrix tests). */\nexport const REGISTERED_PLATFORM_IDS: ReadonlySet<PlatformId> = new Set(\n ADAPTER_REGISTRY.map((factory) => factory.id),\n);\n\n/**\n * Look up the lazy factory for a platform id. Returns `undefined` for ids that\n * are not registered (including `\"unknown\"` and typos) so callers can fall back\n * deliberately rather than crash.\n */\nexport function getFactory(id: PlatformId | string): AdapterFactory | undefined {\n return REGISTRY_BY_ID.get(id as PlatformId);\n}\n\n/**\n * Resolve a platform id to its adapter singleton. Returns `undefined` when the\n * id is not registered — callers decide whether to skip or fall back.\n */\nexport async function loadAdapter(id: PlatformId | string): Promise<Adapter | undefined> {\n const factory = getFactory(id);\n return factory ? factory.load() : undefined;\n}\n\n/**\n * Load every registered adapter. Imports run in parallel; the result preserves\n * registry order so downstream detection/install logic sees forks before\n * parents.\n */\nexport async function allAdapters(): Promise<Adapter[]> {\n return Promise.all(ADAPTER_REGISTRY.map((factory) => factory.load()));\n}\n"],"mappings":";;;AAkCO,IAAM,mBAA8C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKzD;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,yBAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAClE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,2BAAwB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACpE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC9D;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,sBAAmB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC/D;AAAA;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,8BAA2B,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACvE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,2BAAwB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACpE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,0BAAuB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACnE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,oBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,wBAAqB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,yBAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,wBAAqB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACjE;AAAA;AAAA,EAEA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,yBAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAClE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,wBAAqB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA,EAIA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,oBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC9D;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,oBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,+BAA4B,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACxE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,2BAAwB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACpE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,mBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC5D;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,mBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC5D;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,wBAAqB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACjE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,mBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC5D;AAAA;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,kBAAe,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,iCAA8B,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC1E;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,yBAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAClE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,oBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC7D;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,oBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC7D;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC9D;AAAA;AAAA,EAEA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC9D;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,sBAAmB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC/D;AAAA;AAAA,EAEA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,mBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,wBAAqB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACjE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,wBAAqB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,wBAAqB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,wBAAqB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,wBAAqB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,wBAAqB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,gCAA6B,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM,MAAM,OAAO,4BAAyB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACrE;AACF;AAGA,IAAM,iBAA0D,IAAI;AAAA,EAClE,iBAAiB,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,OAAO,CAAU;AAClE;AAGO,IAAM,0BAAmD,IAAI;AAAA,EAClE,iBAAiB,IAAI,CAAC,YAAY,QAAQ,EAAE;AAC9C;AAOO,SAAS,WAAW,IAAqD;AAC9E,SAAO,eAAe,IAAI,EAAgB;AAC5C;AAMA,eAAsB,YAAY,IAAuD;AACvF,QAAM,UAAU,WAAW,EAAE;AAC7B,SAAO,UAAU,QAAQ,KAAK,IAAI;AACpC;AAOA,eAAsB,cAAkC;AACtD,SAAO,QAAQ,IAAI,iBAAiB,IAAI,CAAC,YAAY,QAAQ,KAAK,CAAC,CAAC;AACtE;","names":[]}
|
|
@@ -73,36 +73,36 @@ function renderInstallResult(result, verb) {
|
|
|
73
73
|
return lines.join("\n");
|
|
74
74
|
}
|
|
75
75
|
var COMMANDS = {
|
|
76
|
-
detect: () => import("./detect-
|
|
77
|
-
install: () => import("./install-
|
|
78
|
-
uninstall: () => import("./uninstall-
|
|
76
|
+
detect: () => import("./detect-3S46RUMK.js"),
|
|
77
|
+
install: () => import("./install-7DMK53SB.js"),
|
|
78
|
+
uninstall: () => import("./uninstall-2YYKN5DX.js"),
|
|
79
79
|
// `upgrade` is the single "bring everything current" verb (re-render host
|
|
80
80
|
// config + refresh the home pointer + managed channel guidance). `sync` and
|
|
81
81
|
// `update` are kept as back-compat aliases that route to the same module so
|
|
82
82
|
// existing scripts/docs keep working without a second concept to learn.
|
|
83
|
-
upgrade: () => import("./upgrade-
|
|
84
|
-
sync: () => import("./upgrade-
|
|
85
|
-
update: () => import("./upgrade-
|
|
86
|
-
package: () => import("./package-
|
|
87
|
-
doctor: () => import("./doctor-
|
|
88
|
-
status: () => import("./status-
|
|
89
|
-
telemetry: () => import("./telemetry-
|
|
90
|
-
usage: () => import("./usage-
|
|
91
|
-
leaderboard: () => import("./leaderboard-
|
|
92
|
-
hook: () => import("./hook-
|
|
83
|
+
upgrade: () => import("./upgrade-55AFPJEF.js"),
|
|
84
|
+
sync: () => import("./upgrade-55AFPJEF.js"),
|
|
85
|
+
update: () => import("./upgrade-55AFPJEF.js"),
|
|
86
|
+
package: () => import("./package-2EAIYSJ4.js"),
|
|
87
|
+
doctor: () => import("./doctor-3CUBPQKU.js"),
|
|
88
|
+
status: () => import("./status-E5MCFZM6.js"),
|
|
89
|
+
telemetry: () => import("./telemetry-4OC56NTM.js"),
|
|
90
|
+
usage: () => import("./usage-3PB3WZSL.js"),
|
|
91
|
+
leaderboard: () => import("./leaderboard-LF5SP6X2.js"),
|
|
92
|
+
hook: () => import("./hook-P6EKDINW.js"),
|
|
93
93
|
// Internal (omitted from USAGE): the statusline (HUD) entrypoint a host's
|
|
94
94
|
// status line config points at. Fail-safe: always exits 0 with at most a
|
|
95
95
|
// rendered line. See cli/commands/statusline.ts.
|
|
96
|
-
statusline: () => import("./statusline-
|
|
96
|
+
statusline: () => import("./statusline-LIPF2KVP.js"),
|
|
97
97
|
// Internal (omitted from USAGE): the user-invokable action entrypoint a future
|
|
98
98
|
// host affordance points at. USER-TRIGGERED: surfaces errors (exit 1 + stderr),
|
|
99
99
|
// unlike the fail-open hook / fail-safe statusline. See cli/commands/action.ts.
|
|
100
|
-
action: () => import("./action-
|
|
101
|
-
serve: () => import("./serve-
|
|
100
|
+
action: () => import("./action-L44DXFHT.js"),
|
|
101
|
+
serve: () => import("./serve-K62FW3V7.js"),
|
|
102
102
|
// Hidden (omitted from USAGE): the opt-in host-native turn-usage entrypoint an
|
|
103
103
|
// AfterModel / PostInvocation hook points at. Always exits 0; records a
|
|
104
104
|
// distinct `model_turn` row. See cli/commands/usage-event.ts.
|
|
105
|
-
"usage-event": () => import("./usage-event-
|
|
105
|
+
"usage-event": () => import("./usage-event-KD5FW6W4.js")
|
|
106
106
|
};
|
|
107
107
|
var DEFAULT_PROGRAM_NAME = "agent-connector";
|
|
108
108
|
var COMMAND_USAGE = {
|
|
@@ -198,4 +198,4 @@ export {
|
|
|
198
198
|
renderInstallResult,
|
|
199
199
|
main
|
|
200
200
|
};
|
|
201
|
-
//# sourceMappingURL=chunk-
|
|
201
|
+
//# sourceMappingURL=chunk-7HUUINPB.js.map
|
|
@@ -9,30 +9,30 @@ import {
|
|
|
9
9
|
} from "./chunk-LN76OGNR.js";
|
|
10
10
|
import {
|
|
11
11
|
detectRuntimeHost
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-ZMLVR4J7.js";
|
|
13
13
|
import {
|
|
14
14
|
attachLazyTelemetryUsage,
|
|
15
15
|
buildTelemetryAccessor,
|
|
16
16
|
measureToolCall,
|
|
17
17
|
measureToolDefs
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-LAIITCMW.js";
|
|
19
|
+
import {
|
|
20
|
+
log
|
|
21
|
+
} from "./chunk-KHO5WNTP.js";
|
|
19
22
|
import {
|
|
20
23
|
getTokenizer,
|
|
21
24
|
inferModelFamily,
|
|
22
25
|
newRecordId,
|
|
23
26
|
openStore
|
|
24
27
|
} from "./chunk-4FWETID5.js";
|
|
25
|
-
import {
|
|
26
|
-
log
|
|
27
|
-
} from "./chunk-KHO5WNTP.js";
|
|
28
28
|
import {
|
|
29
29
|
loadRegisteredConnector,
|
|
30
30
|
readRegisteredMeta
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-NWLRJNXM.js";
|
|
32
32
|
import {
|
|
33
33
|
REGISTERED_PLATFORM_IDS,
|
|
34
34
|
loadAdapter
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-25CPWJA7.js";
|
|
36
36
|
import {
|
|
37
37
|
detectLaunchMethod
|
|
38
38
|
} from "./chunk-HORHRHNG.js";
|
|
@@ -701,4 +701,4 @@ export {
|
|
|
701
701
|
runStatusline,
|
|
702
702
|
runAction
|
|
703
703
|
};
|
|
704
|
-
//# sourceMappingURL=chunk-
|
|
704
|
+
//# sourceMappingURL=chunk-BLTVZACS.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
REGISTERED_PLATFORM_IDS
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-25CPWJA7.js";
|
|
5
5
|
import {
|
|
6
6
|
CONFIG_PATCH_SEGMENT_RE,
|
|
7
7
|
configPatchNamespaceViolation,
|
|
@@ -498,4 +498,4 @@ export {
|
|
|
498
498
|
defineConfigPatch,
|
|
499
499
|
defineNativeHook
|
|
500
500
|
};
|
|
501
|
-
//# sourceMappingURL=chunk-
|
|
501
|
+
//# sourceMappingURL=chunk-G4CEELKO.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
installInstructions,
|
|
4
4
|
packageConnector
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-LF76VPGQ.js";
|
|
6
6
|
import {
|
|
7
7
|
MARKETPLACE_NAME,
|
|
8
8
|
agyPluginInstalled,
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
} from "./chunk-LN76OGNR.js";
|
|
45
45
|
import {
|
|
46
46
|
detectInstalledPlatforms
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-ZMLVR4J7.js";
|
|
48
48
|
import {
|
|
49
49
|
log
|
|
50
50
|
} from "./chunk-KHO5WNTP.js";
|
|
@@ -52,11 +52,11 @@ import {
|
|
|
52
52
|
deregisterConnector,
|
|
53
53
|
loadRegisteredConnector,
|
|
54
54
|
registerConnector
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-NWLRJNXM.js";
|
|
56
56
|
import {
|
|
57
57
|
REGISTERED_PLATFORM_IDS,
|
|
58
58
|
loadAdapter
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-25CPWJA7.js";
|
|
60
60
|
import {
|
|
61
61
|
configPatchManualEdit
|
|
62
62
|
} from "./chunk-56R2ER7K.js";
|
|
@@ -3084,4 +3084,4 @@ export {
|
|
|
3084
3084
|
upgradeViaMarketplace,
|
|
3085
3085
|
marketplaceDoctorChecks
|
|
3086
3086
|
};
|
|
3087
|
-
//# sourceMappingURL=chunk-
|
|
3087
|
+
//# sourceMappingURL=chunk-KIRCPLM4.js.map
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
log
|
|
4
|
+
} from "./chunk-KHO5WNTP.js";
|
|
2
5
|
import {
|
|
3
6
|
getTokenizer,
|
|
4
7
|
inferModelFamily,
|
|
@@ -6,17 +9,14 @@ import {
|
|
|
6
9
|
openStore,
|
|
7
10
|
worstConfidence
|
|
8
11
|
} from "./chunk-4FWETID5.js";
|
|
9
|
-
import {
|
|
10
|
-
log
|
|
11
|
-
} from "./chunk-KHO5WNTP.js";
|
|
12
12
|
import {
|
|
13
13
|
loadRegisteredConnector,
|
|
14
14
|
readRegisteredMeta
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-NWLRJNXM.js";
|
|
16
16
|
import {
|
|
17
17
|
REGISTERED_PLATFORM_IDS,
|
|
18
18
|
loadAdapter
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-25CPWJA7.js";
|
|
20
20
|
import {
|
|
21
21
|
projectIdentity
|
|
22
22
|
} from "./chunk-IXOQDZWC.js";
|
|
@@ -371,4 +371,4 @@ export {
|
|
|
371
371
|
isNativeHookDeclared,
|
|
372
372
|
runNativeHook
|
|
373
373
|
};
|
|
374
|
-
//# sourceMappingURL=chunk-
|
|
374
|
+
//# sourceMappingURL=chunk-LAIITCMW.js.map
|
|
@@ -3,6 +3,9 @@ import {
|
|
|
3
3
|
CURSOR_EVENT_MAP,
|
|
4
4
|
CURSOR_HOOKS_VERSION
|
|
5
5
|
} from "./chunk-NBUEL74R.js";
|
|
6
|
+
import {
|
|
7
|
+
writeTomlString
|
|
8
|
+
} from "./chunk-OPXAP3AC.js";
|
|
6
9
|
import {
|
|
7
10
|
MCPB_MANIFEST_VERSION,
|
|
8
11
|
MCP_SERVER_SCHEMA_URL,
|
|
@@ -11,10 +14,7 @@ import {
|
|
|
11
14
|
isConcreteSemver,
|
|
12
15
|
isPlaceholderVersion,
|
|
13
16
|
registryTransportType
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import {
|
|
16
|
-
writeTomlString
|
|
17
|
-
} from "./chunk-OPXAP3AC.js";
|
|
17
|
+
} from "./chunk-G4CEELKO.js";
|
|
18
18
|
import {
|
|
19
19
|
renderCommandMd,
|
|
20
20
|
renderSkillMd,
|
|
@@ -1062,4 +1062,4 @@ export {
|
|
|
1062
1062
|
packageConnectorAll,
|
|
1063
1063
|
installInstructions
|
|
1064
1064
|
};
|
|
1065
|
-
//# sourceMappingURL=chunk-
|
|
1065
|
+
//# sourceMappingURL=chunk-LF76VPGQ.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
defineConnector
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-G4CEELKO.js";
|
|
5
5
|
import {
|
|
6
6
|
assertNoSymlinkInPath,
|
|
7
7
|
connectorDir,
|
|
@@ -181,4 +181,4 @@ export {
|
|
|
181
181
|
connectorFromMeta,
|
|
182
182
|
listRegisteredConnectors
|
|
183
183
|
};
|
|
184
|
-
//# sourceMappingURL=chunk-
|
|
184
|
+
//# sourceMappingURL=chunk-NWLRJNXM.js.map
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
import {
|
|
3
3
|
compileMatcher,
|
|
4
4
|
eventMatcherSubject
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-LAIITCMW.js";
|
|
6
6
|
import {
|
|
7
7
|
SURFACE_PREDICATES,
|
|
8
8
|
hostCanFireEvent
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-R6LML2YS.js";
|
|
10
10
|
import {
|
|
11
11
|
allAdapters,
|
|
12
12
|
loadAdapter
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-25CPWJA7.js";
|
|
14
14
|
|
|
15
15
|
// src/sdk/test-harness.ts
|
|
16
16
|
function declaredGlobalSurfaces(connector) {
|
|
@@ -383,4 +383,4 @@ export {
|
|
|
383
383
|
simulate,
|
|
384
384
|
explainHooks
|
|
385
385
|
};
|
|
386
|
-
//# sourceMappingURL=chunk-
|
|
386
|
+
//# sourceMappingURL=chunk-QARPXSIV.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
allAdapters,
|
|
4
4
|
loadAdapter
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-25CPWJA7.js";
|
|
6
6
|
|
|
7
7
|
// src/sdk/introspect.ts
|
|
8
8
|
function hostCanFireEvent(c, event) {
|
|
@@ -87,4 +87,4 @@ export {
|
|
|
87
87
|
hostsSupporting,
|
|
88
88
|
surfaceSupport
|
|
89
89
|
};
|
|
90
|
-
//# sourceMappingURL=chunk-
|
|
90
|
+
//# sourceMappingURL=chunk-R6LML2YS.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ADAPTER_REGISTRY
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-25CPWJA7.js";
|
|
5
5
|
|
|
6
6
|
// src/adapters/detect.ts
|
|
7
7
|
async function detectInstalledPlatforms(projectDir) {
|
|
@@ -26,6 +26,11 @@ async function detectInstalledPlatforms(projectDir) {
|
|
|
26
26
|
return detected;
|
|
27
27
|
}
|
|
28
28
|
var RUNTIME_SIGNALS = [
|
|
29
|
+
{
|
|
30
|
+
platform: "codebuddy",
|
|
31
|
+
vars: ["CODEBUDDY_SESSION_ID", "CODEBUDDY_PROJECT_DIR", "CODEBUDDY_PLUGIN_ROOT"],
|
|
32
|
+
note: "CodeBuddy env marker set"
|
|
33
|
+
},
|
|
29
34
|
{
|
|
30
35
|
platform: "claude-code",
|
|
31
36
|
vars: ["CLAUDE_CODE_ENTRYPOINT", "CLAUDE_PLUGIN_ROOT", "CLAUDE_PROJECT_DIR", "CLAUDE_SESSION_ID"],
|
|
@@ -80,4 +85,4 @@ export {
|
|
|
80
85
|
detectInstalledPlatforms,
|
|
81
86
|
detectRuntimeHost
|
|
82
87
|
};
|
|
83
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-ZMLVR4J7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/adapters/detect.ts"],"sourcesContent":["/**\n * adapters/detect — two complementary detection answers.\n *\n * 1. detectInstalledPlatforms(projectDir): which hosts are INSTALLED on this\n * machine (probe each adapter's config dirs / marker files). Drives the\n * install planner (\"auto\" target expansion, `doctor`).\n *\n * 2. detectRuntimeHost(env): which host is EXECUTING right now (read env\n * markers the host runtime injects into its child processes). Drives the\n * universal hook entrypoint — it must know which adapter's wire format the\n * stdin payload is in before it can parse it.\n *\n * Both derive their platform set from `ADAPTER_REGISTRY` (the single source of\n * truth in registry.ts), generalizing context-mode's detection cascade\n * (env-var tier → config-dir tier → low-confidence fallback) to our\n * Adapter/AdapterFactory contract. The config-dir tier is delegated to each\n * adapter's `detectInstalled()` rather than duplicated here, so adding a\n * platform never requires editing this file.\n */\n\nimport type { DetectedPlatform, DetectionSignal, PlatformId } from \"../core/types.js\";\nimport { ADAPTER_REGISTRY, loadAdapter } from \"./registry.js\";\n\n/**\n * Detect every platform installed on this machine.\n *\n * Loads each registered adapter and calls its `detectInstalled(projectDir)`\n * (which probes the platform's native config dirs + marker files), returning\n * only those reported `installed === true`, in registry order. Adapters never\n * throw from detection, but we guard each call so one misbehaving adapter\n * cannot abort the whole probe.\n *\n * @param projectDir Resolved project root — lets project-scoped adapters look\n * for `<projectDir>/.mcp.json`, `<projectDir>/.cursor`, etc.\n */\nexport async function detectInstalledPlatforms(\n projectDir: string,\n): Promise<DetectedPlatform[]> {\n const adapters = await Promise.all(\n ADAPTER_REGISTRY.map(async (factory) => {\n try {\n return await factory.load();\n } catch {\n return undefined;\n }\n }),\n );\n\n const detected: DetectedPlatform[] = [];\n for (const adapter of adapters) {\n if (!adapter) continue;\n try {\n const result = adapter.detectInstalled(projectDir);\n if (result.installed) detected.push(result);\n } catch {\n // A single adapter's detection failure must not sink the whole probe.\n }\n }\n return detected;\n}\n\n/**\n * One env-marker rule for runtime-host detection. `vars` is checked in order;\n * the FIRST rule with any non-empty matching env var wins, so the table order\n * is the detection precedence (forks before parents). Each var is documented at\n * the rule so the source of the marker is auditable.\n */\ninterface RuntimeSignalRule {\n readonly platform: PlatformId;\n /** Env var names that prove \"this host is executing me\". */\n readonly vars: readonly string[];\n /** Human-readable note (printed in the DetectionSignal.reason). */\n readonly note: string;\n}\n\n/**\n * Ordered env-marker table. Forks BEFORE parents (cursor — a VS Code fork —\n * precedes any future vscode-copilot entry so a Cursor session inside a\n * VS Code-derived shell is not misclassified). Markers are verified against\n * each host's source:\n *\n * - codebuddy: CODEBUDDY_SESSION_ID / CODEBUDDY_PROJECT_DIR / CODEBUDDY_PLUGIN_ROOT\n * are CodeBuddy-exclusive (verified in @tencent-ai/codebuddy-code@2.109.0).\n * CodeBuddy is a Claude Code fork that ALSO exports CLAUDE_SESSION_ID\n * (its bundle sets both), so it MUST precede claude-code or a CodeBuddy\n * session would be misclassified as Claude Code (fork-before-parent).\n * - claude-code: CLAUDE_CODE_ENTRYPOINT is set on every Claude Code session;\n * CLAUDE_PLUGIN_ROOT is set when a plugin is loaded. Both are CC-exclusive\n * and serve as the disambiguators when CC runs inside another IDE's shell.\n * - codex: CODEX_THREAD_ID is set per exec (codex-rs/core exec_env);\n * CODEX_CI is set in CI mode (unified_exec process_manager).\n * - cursor: CURSOR_TRACE_ID is the widely-observed Cursor marker (Cursor\n * CLI / agent); CURSOR_CLI marks the Cursor terminal; CURSOR_CWD is the\n * documented workspace var.\n */\nconst RUNTIME_SIGNALS: readonly RuntimeSignalRule[] = [\n {\n platform: \"codebuddy\",\n vars: [\"CODEBUDDY_SESSION_ID\", \"CODEBUDDY_PROJECT_DIR\", \"CODEBUDDY_PLUGIN_ROOT\"],\n note: \"CodeBuddy env marker set\",\n },\n {\n platform: \"claude-code\",\n vars: [\"CLAUDE_CODE_ENTRYPOINT\", \"CLAUDE_PLUGIN_ROOT\", \"CLAUDE_PROJECT_DIR\", \"CLAUDE_SESSION_ID\"],\n note: \"Claude Code env marker set\",\n },\n {\n platform: \"cursor\",\n vars: [\"CURSOR_TRACE_ID\", \"CURSOR_CLI\", \"CURSOR_CWD\"],\n note: \"Cursor env marker set\",\n },\n {\n platform: \"codex\",\n vars: [\"CODEX_THREAD_ID\", \"CODEX_CI\"],\n note: \"Codex env marker set\",\n },\n];\n\n/**\n * Identify which host runtime is executing the current process from environment\n * markers. High confidence on an env-marker hit; otherwise an explicit\n * `AGENT_CONNECTOR_PLATFORM` override (high confidence, validated against the\n * registry) is honored; failing both, returns `unknown` at low confidence so\n * the caller can decide on a safe default.\n *\n * Pure with respect to its `env` argument (defaults to `process.env`) so it is\n * trivially testable — pass a synthetic env to assert each rule.\n */\nexport function detectRuntimeHost(env: NodeJS.ProcessEnv = process.env): DetectionSignal {\n // ── Explicit override (highest priority, validated against the registry) ──\n const override = env.AGENT_CONNECTOR_PLATFORM;\n if (override && override.trim() !== \"\") {\n if (REGISTERED_RUNTIME_IDS.has(override as PlatformId)) {\n return {\n platform: override as PlatformId,\n confidence: \"high\",\n reason: `AGENT_CONNECTOR_PLATFORM=${override} override`,\n };\n }\n }\n\n // ── Env-marker tier (forks before parents; first hit wins) ──────────────\n for (const rule of RUNTIME_SIGNALS) {\n const hit = rule.vars.find((name) => {\n const value = env[name];\n return typeof value === \"string\" && value !== \"\";\n });\n if (hit) {\n return {\n platform: rule.platform,\n confidence: \"high\",\n reason: `${rule.note} (${hit})`,\n };\n }\n }\n\n // ── Fallback: no host marker present ────────────────────────────────────\n return {\n platform: \"unknown\",\n confidence: \"low\",\n reason: \"no host runtime env marker detected\",\n };\n}\n\n/** Platform ids the runtime-signal table knows how to detect. */\nconst REGISTERED_RUNTIME_IDS: ReadonlySet<PlatformId> = new Set(\n RUNTIME_SIGNALS.map((rule) => rule.platform),\n);\n\n// Re-export for callers that resolve an adapter straight from a detection\n// result without reaching into registry.ts.\nexport { loadAdapter };\n"],"mappings":";;;;;;AAmCA,eAAsB,yBACpB,YAC6B;AAC7B,QAAM,WAAW,MAAM,QAAQ;AAAA,IAC7B,iBAAiB,IAAI,OAAO,YAAY;AACtC,UAAI;AACF,eAAO,MAAM,QAAQ,KAAK;AAAA,MAC5B,QAAQ;AACN,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,WAA+B,CAAC;AACtC,aAAW,WAAW,UAAU;AAC9B,QAAI,CAAC,QAAS;AACd,QAAI;AACF,YAAM,SAAS,QAAQ,gBAAgB,UAAU;AACjD,UAAI,OAAO,UAAW,UAAS,KAAK,MAAM;AAAA,IAC5C,QAAQ;AAAA,IAER;AAAA,EACF;AACA,SAAO;AACT;AAoCA,IAAM,kBAAgD;AAAA,EACpD;AAAA,IACE,UAAU;AAAA,IACV,MAAM,CAAC,wBAAwB,yBAAyB,uBAAuB;AAAA,IAC/E,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,MAAM,CAAC,0BAA0B,sBAAsB,sBAAsB,mBAAmB;AAAA,IAChG,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,MAAM,CAAC,mBAAmB,cAAc,YAAY;AAAA,IACpD,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,MAAM,CAAC,mBAAmB,UAAU;AAAA,IACpC,MAAM;AAAA,EACR;AACF;AAYO,SAAS,kBAAkB,MAAyB,QAAQ,KAAsB;AAEvF,QAAM,WAAW,IAAI;AACrB,MAAI,YAAY,SAAS,KAAK,MAAM,IAAI;AACtC,QAAI,uBAAuB,IAAI,QAAsB,GAAG;AACtD,aAAO;AAAA,QACL,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,QAAQ,4BAA4B,QAAQ;AAAA,MAC9C;AAAA,IACF;AAAA,EACF;AAGA,aAAW,QAAQ,iBAAiB;AAClC,UAAM,MAAM,KAAK,KAAK,KAAK,CAAC,SAAS;AACnC,YAAM,QAAQ,IAAI,IAAI;AACtB,aAAO,OAAO,UAAU,YAAY,UAAU;AAAA,IAChD,CAAC;AACD,QAAI,KAAK;AACP,aAAO;AAAA,QACL,UAAU,KAAK;AAAA,QACf,YAAY;AAAA,QACZ,QAAQ,GAAG,KAAK,IAAI,KAAK,GAAG;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AAGA,SAAO;AAAA,IACL,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,QAAQ;AAAA,EACV;AACF;AAGA,IAAM,yBAAkD,IAAI;AAAA,EAC1D,gBAAgB,IAAI,CAAC,SAAS,KAAK,QAAQ;AAC7C;","names":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
readRegisteredMeta
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-NWLRJNXM.js";
|
|
5
|
+
import "./chunk-G4CEELKO.js";
|
|
6
|
+
import "./chunk-25CPWJA7.js";
|
|
7
7
|
import {
|
|
8
8
|
addLedgerOwner,
|
|
9
9
|
configPatchManualEdit,
|
|
@@ -1493,4 +1493,4 @@ export {
|
|
|
1493
1493
|
claudeSensitiveKeyViolation,
|
|
1494
1494
|
claude_code_default as default
|
|
1495
1495
|
};
|
|
1496
|
-
//# sourceMappingURL=claude-code-
|
|
1496
|
+
//# sourceMappingURL=claude-code-WS4NAGZT.js.map
|
package/dist/cli/sdk.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
main
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-7HUUINPB.js";
|
|
5
5
|
import {
|
|
6
6
|
loadConnectorFromPath
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-NWLRJNXM.js";
|
|
8
|
+
import "../chunk-G4CEELKO.js";
|
|
9
|
+
import "../chunk-25CPWJA7.js";
|
|
10
10
|
import "../chunk-56R2ER7K.js";
|
|
11
11
|
import "../chunk-YYNXIUR2.js";
|
|
12
12
|
import "../chunk-IXOQDZWC.js";
|