@ken-jo/agent-connector 0.4.75 → 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-TCKBTTZX.js → action-L44DXFHT.js} +14 -14
- package/dist/{amazon-q-CB4XFX7T.js → amazon-q-B52EY2SV.js} +5 -5
- package/dist/{amp-6Q5OYHNW.js → amp-UXABVUKC.js} +5 -5
- package/dist/{antigravity-WIK3XBN5.js → antigravity-RZHN53VB.js} +6 -6
- package/dist/antigravity-cli-JO6GUTV7.js +436 -0
- package/dist/antigravity-cli-JO6GUTV7.js.map +1 -0
- package/dist/{chunk-Q5LECKZL.js → chunk-25CPWJA7.js} +116 -36
- package/dist/chunk-25CPWJA7.js.map +1 -0
- package/dist/{chunk-D6ZJS4ND.js → chunk-4FWETID5.js} +2 -2
- package/dist/{chunk-Q42SEI7W.js → chunk-4HVQ7IUM.js} +3 -3
- package/dist/{chunk-IU42THN7.js → chunk-4NSU3KWX.js} +2 -2
- package/dist/{chunk-7CZKXXBD.js → chunk-56R2ER7K.js} +2 -2
- package/dist/{chunk-HKM3HUOK.js → chunk-7HUUINPB.js} +18 -18
- package/dist/{chunk-TZ5KGCE2.js → chunk-AY3RGRTT.js} +2 -2
- package/dist/{chunk-MHDQWZ4A.js → chunk-BLTVZACS.js} +23 -13
- package/dist/chunk-BLTVZACS.js.map +1 -0
- package/dist/{chunk-7ITLLYWB.js → chunk-G4CEELKO.js} +5 -5
- package/dist/{chunk-TO57WYBB.js → chunk-HORHRHNG.js} +9 -3
- package/dist/chunk-HORHRHNG.js.map +1 -0
- package/dist/{chunk-2HCJV6UO.js → chunk-IXOQDZWC.js} +9 -2
- package/dist/chunk-IXOQDZWC.js.map +1 -0
- package/dist/{chunk-2L6LTQ6L.js → chunk-KIRCPLM4.js} +21 -10
- package/dist/chunk-KIRCPLM4.js.map +1 -0
- package/dist/{chunk-24K6JOKV.js → chunk-LAIITCMW.js} +8 -8
- package/dist/{chunk-OEQJGBBW.js → chunk-LF76VPGQ.js} +9 -9
- package/dist/{chunk-7QRUZAUG.js → chunk-LN76OGNR.js} +2 -2
- package/dist/{chunk-DI6OWKH2.js → chunk-NBUEL74R.js} +3 -3
- package/dist/{chunk-IRUYJD23.js → chunk-NLE2J5P4.js} +1 -1
- package/dist/{chunk-5LAFKXFM.js → chunk-NWLRJNXM.js} +3 -3
- package/dist/{chunk-ECSRTK4M.js → chunk-QARPXSIV.js} +4 -4
- package/dist/{chunk-AXAHW2KU.js → chunk-QKLJU4JX.js} +2 -2
- package/dist/{chunk-MDZG5QHB.js → chunk-R6LML2YS.js} +2 -2
- package/dist/{chunk-FUXUEXDP.js → chunk-UBB7T54N.js} +3 -3
- package/dist/{chunk-NUGMVVV2.js → chunk-VVFDU4IX.js} +4 -4
- package/dist/{chunk-ALVXORZM.js → chunk-YYNXIUR2.js} +2 -2
- package/dist/{chunk-TW4DVR4V.js → chunk-ZMLVR4J7.js} +7 -2
- package/dist/chunk-ZMLVR4J7.js.map +1 -0
- package/dist/{claude-code-HFBAAVWS.js → claude-code-WS4NAGZT.js} +9 -9
- package/dist/cli/sdk.js +7 -7
- package/dist/cli.js +1 -1
- package/dist/{cline-26W4FEZ6.js → cline-NNMVCECA.js} +5 -5
- package/dist/codebuddy-RBEZGXBG.js +643 -0
- package/dist/codebuddy-RBEZGXBG.js.map +1 -0
- package/dist/{codebuff-J5KEEBIL.js → codebuff-RJIDSEU3.js} +5 -5
- package/dist/{codex-JKQ6TLRI.js → codex-ZZ434GYR.js} +8 -8
- package/dist/{continue-KQSJUSWX.js → continue-MNM7YVJY.js} +6 -6
- package/dist/{copilot-cli-YBNKLYUB.js → copilot-cli-SMTX5F65.js} +5 -5
- package/dist/{crush-JTWTZIPB.js → crush-NYDBHIJE.js} +5 -5
- package/dist/{cursor-2NIZSDZ4.js → cursor-AOELDNZU.js} +6 -6
- package/dist/{detect-CWEIQCRC.js → detect-3S46RUMK.js} +4 -4
- package/dist/devin-PRJY2TTD.js +510 -0
- package/dist/devin-PRJY2TTD.js.map +1 -0
- package/dist/{doctor-AC437ZAW.js → doctor-3CUBPQKU.js} +22 -22
- package/dist/{droid-HF2AIFB2.js → droid-PTCH2K7Y.js} +5 -5
- package/dist/{gemini-cli-2EOK26S2.js → gemini-cli-QGLN2UMS.js} +5 -5
- package/dist/{goose-55JOTXS5.js → goose-DQ6GSZ5O.js} +6 -6
- package/dist/grok-cli-5QD235UB.js +482 -0
- package/dist/grok-cli-5QD235UB.js.map +1 -0
- package/dist/{hermes-QVZOZU4B.js → hermes-E47IG63A.js} +6 -6
- package/dist/{hook-VYD3OCLM.js → hook-P6EKDINW.js} +14 -14
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -5
- package/dist/{install-S6BYIJ62.js → install-7DMK53SB.js} +18 -18
- package/dist/{introspect-5o5ick0_.d.ts → introspect-DYOIX8Ov.d.ts} +1 -1
- package/dist/{jetbrains-copilot-DZ2ATXFN.js → jetbrains-copilot-T2EPKROP.js} +13 -7
- 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-GJNSBWVV.js → kilo-OU2ZLZKB.js} +8 -8
- package/dist/{kilo-cli-2CCB3DBI.js → kilo-cli-NMWGYF4F.js} +8 -8
- package/dist/{kimi-YRPCSB6N.js → kimi-Z7L2LEEI.js} +5 -5
- package/dist/{kiro-BUOQFASX.js → kiro-4IN5IH46.js} +81 -6
- package/dist/kiro-4IN5IH46.js.map +1 -0
- package/dist/{leaderboard-SUSUDKHR.js → leaderboard-LF5SP6X2.js} +7 -7
- package/dist/{mimo-code-V4FP5PUJ.js → mimo-code-G2CBZ4M6.js} +5 -5
- package/dist/mistral-vibe-TRQDHAWV.js +300 -0
- package/dist/mistral-vibe-TRQDHAWV.js.map +1 -0
- package/dist/{mux-CMJSM42O.js → mux-JNM3F2NW.js} +5 -5
- package/dist/{nemoclaw-VP56PGKC.js → nemoclaw-SHA4IUML.js} +6 -6
- package/dist/{omp-OOFGD3GG.js → omp-OOVUNXME.js} +5 -5
- package/dist/open-interpreter-4PKL56AA.js +264 -0
- package/dist/open-interpreter-4PKL56AA.js.map +1 -0
- package/dist/openclaw-BD56E5MV.js +17 -0
- package/dist/{opencode-MKLHSQRD.js → opencode-W2RK4M7G.js} +5 -5
- package/dist/openhands-5LNH3BKB.js +384 -0
- package/dist/openhands-5LNH3BKB.js.map +1 -0
- package/dist/{package-KOAAVKHH.js → package-2EAIYSJ4.js} +13 -13
- package/dist/{pi-NMVL7OFL.js → pi-BUADR5MJ.js} +143 -6
- package/dist/pi-BUADR5MJ.js.map +1 -0
- package/dist/{qwen-code-2XE2T6F4.js → qwen-code-TUJNHKNI.js} +9 -9
- package/dist/{roo-code-YJOIKCCS.js → roo-code-L5F7S6QH.js} +5 -5
- package/dist/runtime/index.d.ts +12 -1
- package/dist/runtime/index.js +12 -12
- package/dist/sdk/index.d.ts +3 -3
- package/dist/sdk/index.js +6 -6
- package/dist/sdk/test.d.ts +2 -2
- package/dist/sdk/test.js +10 -10
- package/dist/{serve-BU23QUSJ.js → serve-K62FW3V7.js} +24 -17
- package/dist/serve-K62FW3V7.js.map +1 -0
- package/dist/{status-N5LCQQ3R.js → status-E5MCFZM6.js} +11 -11
- package/dist/{statusline-442XOF7R.js → statusline-LIPF2KVP.js} +13 -13
- package/dist/{telemetry-V4YQL2NU.js → telemetry-4OC56NTM.js} +10 -10
- package/dist/{trae-QSV2JZFT.js → trae-Z7CQ2A2Q.js} +5 -5
- package/dist/{types-D6RWGXm1.d.ts → types-C4qMgbJn.d.ts} +10 -9
- package/dist/{uninstall-WGEKTCDZ.js → uninstall-2YYKN5DX.js} +18 -18
- package/dist/{upgrade-IH7CKPTO.js → upgrade-55AFPJEF.js} +18 -18
- package/dist/{usage-DI7XRCKM.js → usage-3PB3WZSL.js} +3 -3
- package/dist/{usage-event-2FCU55AN.js → usage-event-KD5FW6W4.js} +13 -13
- package/dist/{vscode-copilot-R23RTVST.js → vscode-copilot-LU5NC4ZS.js} +5 -5
- package/dist/{warp-B72XSQ5G.js → warp-4PPG5LOM.js} +5 -5
- package/dist/{windsurf-642VBMQ2.js → windsurf-3T3RVXKM.js} +5 -5
- package/dist/{zed-6UJS7JKB.js → zed-ZF2OQ75O.js} +123 -7
- package/dist/zed-ZF2OQ75O.js.map +1 -0
- package/package.json +1 -1
- package/dist/antigravity-cli-L3RZMF6V.js +0 -87
- package/dist/antigravity-cli-L3RZMF6V.js.map +0 -1
- package/dist/chunk-2HCJV6UO.js.map +0 -1
- package/dist/chunk-2L6LTQ6L.js.map +0 -1
- package/dist/chunk-MHDQWZ4A.js.map +0 -1
- package/dist/chunk-Q5LECKZL.js.map +0 -1
- package/dist/chunk-TO57WYBB.js.map +0 -1
- package/dist/chunk-TW4DVR4V.js.map +0 -1
- package/dist/jetbrains-copilot-DZ2ATXFN.js.map +0 -1
- package/dist/kiro-BUOQFASX.js.map +0 -1
- package/dist/openclaw-V73XHPXP.js +0 -17
- package/dist/pi-NMVL7OFL.js.map +0 -1
- package/dist/serve-BU23QUSJ.js.map +0 -1
- package/dist/zed-6UJS7JKB.js.map +0 -1
- /package/dist/{action-TCKBTTZX.js.map → action-L44DXFHT.js.map} +0 -0
- /package/dist/{amazon-q-CB4XFX7T.js.map → amazon-q-B52EY2SV.js.map} +0 -0
- /package/dist/{amp-6Q5OYHNW.js.map → amp-UXABVUKC.js.map} +0 -0
- /package/dist/{antigravity-WIK3XBN5.js.map → antigravity-RZHN53VB.js.map} +0 -0
- /package/dist/{chunk-D6ZJS4ND.js.map → chunk-4FWETID5.js.map} +0 -0
- /package/dist/{chunk-Q42SEI7W.js.map → chunk-4HVQ7IUM.js.map} +0 -0
- /package/dist/{chunk-IU42THN7.js.map → chunk-4NSU3KWX.js.map} +0 -0
- /package/dist/{chunk-7CZKXXBD.js.map → chunk-56R2ER7K.js.map} +0 -0
- /package/dist/{chunk-HKM3HUOK.js.map → chunk-7HUUINPB.js.map} +0 -0
- /package/dist/{chunk-TZ5KGCE2.js.map → chunk-AY3RGRTT.js.map} +0 -0
- /package/dist/{chunk-7ITLLYWB.js.map → chunk-G4CEELKO.js.map} +0 -0
- /package/dist/{chunk-24K6JOKV.js.map → chunk-LAIITCMW.js.map} +0 -0
- /package/dist/{chunk-OEQJGBBW.js.map → chunk-LF76VPGQ.js.map} +0 -0
- /package/dist/{chunk-7QRUZAUG.js.map → chunk-LN76OGNR.js.map} +0 -0
- /package/dist/{chunk-DI6OWKH2.js.map → chunk-NBUEL74R.js.map} +0 -0
- /package/dist/{chunk-IRUYJD23.js.map → chunk-NLE2J5P4.js.map} +0 -0
- /package/dist/{chunk-5LAFKXFM.js.map → chunk-NWLRJNXM.js.map} +0 -0
- /package/dist/{chunk-ECSRTK4M.js.map → chunk-QARPXSIV.js.map} +0 -0
- /package/dist/{chunk-AXAHW2KU.js.map → chunk-QKLJU4JX.js.map} +0 -0
- /package/dist/{chunk-MDZG5QHB.js.map → chunk-R6LML2YS.js.map} +0 -0
- /package/dist/{chunk-FUXUEXDP.js.map → chunk-UBB7T54N.js.map} +0 -0
- /package/dist/{chunk-NUGMVVV2.js.map → chunk-VVFDU4IX.js.map} +0 -0
- /package/dist/{chunk-ALVXORZM.js.map → chunk-YYNXIUR2.js.map} +0 -0
- /package/dist/{claude-code-HFBAAVWS.js.map → claude-code-WS4NAGZT.js.map} +0 -0
- /package/dist/{cline-26W4FEZ6.js.map → cline-NNMVCECA.js.map} +0 -0
- /package/dist/{codebuff-J5KEEBIL.js.map → codebuff-RJIDSEU3.js.map} +0 -0
- /package/dist/{codex-JKQ6TLRI.js.map → codex-ZZ434GYR.js.map} +0 -0
- /package/dist/{continue-KQSJUSWX.js.map → continue-MNM7YVJY.js.map} +0 -0
- /package/dist/{copilot-cli-YBNKLYUB.js.map → copilot-cli-SMTX5F65.js.map} +0 -0
- /package/dist/{crush-JTWTZIPB.js.map → crush-NYDBHIJE.js.map} +0 -0
- /package/dist/{cursor-2NIZSDZ4.js.map → cursor-AOELDNZU.js.map} +0 -0
- /package/dist/{detect-CWEIQCRC.js.map → detect-3S46RUMK.js.map} +0 -0
- /package/dist/{doctor-AC437ZAW.js.map → doctor-3CUBPQKU.js.map} +0 -0
- /package/dist/{droid-HF2AIFB2.js.map → droid-PTCH2K7Y.js.map} +0 -0
- /package/dist/{gemini-cli-2EOK26S2.js.map → gemini-cli-QGLN2UMS.js.map} +0 -0
- /package/dist/{goose-55JOTXS5.js.map → goose-DQ6GSZ5O.js.map} +0 -0
- /package/dist/{hermes-QVZOZU4B.js.map → hermes-E47IG63A.js.map} +0 -0
- /package/dist/{hook-VYD3OCLM.js.map → hook-P6EKDINW.js.map} +0 -0
- /package/dist/{install-S6BYIJ62.js.map → install-7DMK53SB.js.map} +0 -0
- /package/dist/{kilo-GJNSBWVV.js.map → kilo-OU2ZLZKB.js.map} +0 -0
- /package/dist/{kilo-cli-2CCB3DBI.js.map → kilo-cli-NMWGYF4F.js.map} +0 -0
- /package/dist/{kimi-YRPCSB6N.js.map → kimi-Z7L2LEEI.js.map} +0 -0
- /package/dist/{leaderboard-SUSUDKHR.js.map → leaderboard-LF5SP6X2.js.map} +0 -0
- /package/dist/{mimo-code-V4FP5PUJ.js.map → mimo-code-G2CBZ4M6.js.map} +0 -0
- /package/dist/{mux-CMJSM42O.js.map → mux-JNM3F2NW.js.map} +0 -0
- /package/dist/{nemoclaw-VP56PGKC.js.map → nemoclaw-SHA4IUML.js.map} +0 -0
- /package/dist/{omp-OOFGD3GG.js.map → omp-OOVUNXME.js.map} +0 -0
- /package/dist/{openclaw-V73XHPXP.js.map → openclaw-BD56E5MV.js.map} +0 -0
- /package/dist/{opencode-MKLHSQRD.js.map → opencode-W2RK4M7G.js.map} +0 -0
- /package/dist/{package-KOAAVKHH.js.map → package-2EAIYSJ4.js.map} +0 -0
- /package/dist/{qwen-code-2XE2T6F4.js.map → qwen-code-TUJNHKNI.js.map} +0 -0
- /package/dist/{roo-code-YJOIKCCS.js.map → roo-code-L5F7S6QH.js.map} +0 -0
- /package/dist/{status-N5LCQQ3R.js.map → status-E5MCFZM6.js.map} +0 -0
- /package/dist/{statusline-442XOF7R.js.map → statusline-LIPF2KVP.js.map} +0 -0
- /package/dist/{telemetry-V4YQL2NU.js.map → telemetry-4OC56NTM.js.map} +0 -0
- /package/dist/{trae-QSV2JZFT.js.map → trae-Z7CQ2A2Q.js.map} +0 -0
- /package/dist/{uninstall-WGEKTCDZ.js.map → uninstall-2YYKN5DX.js.map} +0 -0
- /package/dist/{upgrade-IH7CKPTO.js.map → upgrade-55AFPJEF.js.map} +0 -0
- /package/dist/{usage-DI7XRCKM.js.map → usage-3PB3WZSL.js.map} +0 -0
- /package/dist/{usage-event-2FCU55AN.js.map → usage-event-KD5FW6W4.js.map} +0 -0
- /package/dist/{vscode-copilot-R23RTVST.js.map → vscode-copilot-LU5NC4ZS.js.map} +0 -0
- /package/dist/{warp-B72XSQ5G.js.map → warp-4PPG5LOM.js.map} +0 -0
- /package/dist/{windsurf-642VBMQ2.js.map → windsurf-3T3RVXKM.js.map} +0 -0
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runStatusline
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BLTVZACS.js";
|
|
5
5
|
import "./chunk-OP4KBXUO.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-D6ZJS4ND.js";
|
|
6
|
+
import "./chunk-LN76OGNR.js";
|
|
7
|
+
import "./chunk-ZMLVR4J7.js";
|
|
8
|
+
import "./chunk-LAIITCMW.js";
|
|
10
9
|
import "./chunk-KHO5WNTP.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-4FWETID5.js";
|
|
11
|
+
import "./chunk-NWLRJNXM.js";
|
|
12
|
+
import "./chunk-G4CEELKO.js";
|
|
13
|
+
import "./chunk-25CPWJA7.js";
|
|
14
|
+
import "./chunk-56R2ER7K.js";
|
|
15
|
+
import "./chunk-HORHRHNG.js";
|
|
16
|
+
import "./chunk-YYNXIUR2.js";
|
|
17
|
+
import "./chunk-IXOQDZWC.js";
|
|
18
18
|
|
|
19
19
|
// src/cli/commands/statusline.ts
|
|
20
20
|
import { parseArgs } from "util";
|
|
@@ -57,4 +57,4 @@ async function run(argv) {
|
|
|
57
57
|
export {
|
|
58
58
|
run
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=statusline-
|
|
60
|
+
//# sourceMappingURL=statusline-LIPF2KVP.js.map
|
|
@@ -8,25 +8,25 @@ import {
|
|
|
8
8
|
mcpLeaderboard,
|
|
9
9
|
surfaceLeaderboard,
|
|
10
10
|
toolLeaderboard
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-AY3RGRTT.js";
|
|
12
12
|
import {
|
|
13
13
|
fail,
|
|
14
14
|
print
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-7HUUINPB.js";
|
|
16
16
|
import {
|
|
17
17
|
openStore
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-4FWETID5.js";
|
|
19
19
|
import {
|
|
20
20
|
connectorFromMeta,
|
|
21
21
|
listRegisteredConnectors,
|
|
22
22
|
loadRegisteredConnector,
|
|
23
23
|
readRegisteredMeta
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
24
|
+
} from "./chunk-NWLRJNXM.js";
|
|
25
|
+
import "./chunk-G4CEELKO.js";
|
|
26
|
+
import "./chunk-25CPWJA7.js";
|
|
27
|
+
import "./chunk-56R2ER7K.js";
|
|
28
|
+
import "./chunk-YYNXIUR2.js";
|
|
29
|
+
import "./chunk-IXOQDZWC.js";
|
|
30
30
|
|
|
31
31
|
// src/cli/commands/telemetry.ts
|
|
32
32
|
import { writeFileSync } from "fs";
|
|
@@ -349,4 +349,4 @@ export {
|
|
|
349
349
|
parseSince,
|
|
350
350
|
run
|
|
351
351
|
};
|
|
352
|
-
//# sourceMappingURL=telemetry-
|
|
352
|
+
//# sourceMappingURL=telemetry-4OC56NTM.js.map
|
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
BaseAdapter,
|
|
7
7
|
renderSkillMd
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-VVFDU4IX.js";
|
|
9
9
|
import {
|
|
10
10
|
buildWrappedStdio,
|
|
11
11
|
isHomeBinHookCommand
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-HORHRHNG.js";
|
|
13
|
+
import "./chunk-YYNXIUR2.js";
|
|
14
|
+
import "./chunk-IXOQDZWC.js";
|
|
15
15
|
|
|
16
16
|
// src/adapters/trae/index.ts
|
|
17
17
|
import { existsSync } from "fs";
|
|
@@ -271,4 +271,4 @@ export {
|
|
|
271
271
|
adapter,
|
|
272
272
|
trae_default as default
|
|
273
273
|
};
|
|
274
|
-
//# sourceMappingURL=trae-
|
|
274
|
+
//# sourceMappingURL=trae-Z7CQ2A2Q.js.map
|
|
@@ -23,23 +23,24 @@
|
|
|
23
23
|
* exposes no writable MCP config to install into. The registry-completeness test
|
|
24
24
|
* (tests/adapters/registry-completeness.test.ts) allowlists it for this reason.
|
|
25
25
|
*/
|
|
26
|
-
type PlatformId = "claude-code" | "codex" | "cursor" | "vscode-copilot" | "jetbrains-copilot" | "copilot-cli" | "gemini-cli" | "opencode" | "mimo-code" | "kilo" | "kilo-cli" | "warp" | "hermes" | "nemoclaw" | "openclaw" | "zed" | "antigravity" | "antigravity-cli" | "kiro" | "qwen-code" | "kimi" | "pi" | "omp" | "droid" | "roo-code" | "cline" | "trae" | "amp" | "codebuff" | "mux" | "crush" | "goose" | "amazon-q" | "continue" | "windsurf" | "synthetic" | "unknown";
|
|
26
|
+
type PlatformId = "claude-code" | "codebuddy" | "codex" | "cursor" | "vscode-copilot" | "jetbrains-copilot" | "copilot-cli" | "gemini-cli" | "opencode" | "mimo-code" | "kilo" | "kilo-cli" | "warp" | "hermes" | "nemoclaw" | "openclaw" | "zed" | "antigravity" | "antigravity-cli" | "kiro" | "qwen-code" | "kimi" | "pi" | "omp" | "droid" | "openhands" | "roo-code" | "cline" | "trae" | "amp" | "codebuff" | "mux" | "crush" | "goose" | "amazon-q" | "continue" | "windsurf" | "grok-cli" | "devin" | "open-interpreter" | "junie" | "mistral-vibe" | "synthetic" | "unknown";
|
|
27
27
|
/**
|
|
28
28
|
* Hook I/O paradigm — the deepest cross-platform divergence (report §4).
|
|
29
29
|
* Canonical shipped sets (keep in sync with src/adapters/registry.ts — this
|
|
30
30
|
* comment once drifted and seeded a docs-wide misclassification):
|
|
31
|
-
* - "json-stdio" (
|
|
32
|
-
* JSON/exit-code back — Claude Code,
|
|
33
|
-
*
|
|
34
|
-
* Droid (Factory), Antigravity (+
|
|
35
|
-
* universal entrypoint binary handles
|
|
31
|
+
* - "json-stdio" (19): host pipes JSON to a command on stdin, reads
|
|
32
|
+
* JSON/exit-code back — Claude Code, CodeBuddy (Tencent, a Claude Code
|
|
33
|
+
* fork), Codex, Cursor, VS Code/JetBrains Copilot, Copilot CLI, Gemini CLI,
|
|
34
|
+
* Qwen, Kiro, Kimi, Crush, Goose, Hermes, Droid (Factory), Antigravity (+
|
|
35
|
+
* the agy CLI), Continue, Amazon Q. One universal entrypoint binary handles
|
|
36
|
+
* all of them.
|
|
36
37
|
* - "ts-plugin" (8): host loads a JS/TS module exporting lifecycle functions
|
|
37
38
|
* — OpenCode, MiMoCode (an OpenCode fork), Kilo CLI, Kilo, OMP, OpenClaw,
|
|
38
39
|
* NemoClaw (an OpenClaw wrapper/fork), Amp (.amp/plugins/*.ts). Framework
|
|
39
40
|
* generates the module.
|
|
40
|
-
* - "mcp-only" (
|
|
41
|
-
* Codebuff, Mux, Pi, Windsurf. Only the MCP server (or skills
|
|
42
|
-
* installed; hooks are reported unavailable.
|
|
41
|
+
* - "mcp-only" (10): no hook layer at all — Warp, Roo Code, Cline, Trae, Zed,
|
|
42
|
+
* Codebuff, Mux, Pi, Windsurf, Mistral Vibe. Only the MCP server (or skills
|
|
43
|
+
* surface) is installed; hooks are reported unavailable.
|
|
43
44
|
*/
|
|
44
45
|
type HookParadigm = "json-stdio" | "ts-plugin" | "mcp-only";
|
|
45
46
|
/**
|
|
@@ -5,40 +5,40 @@ import {
|
|
|
5
5
|
resolveUninstallTargets,
|
|
6
6
|
uninstallConnector,
|
|
7
7
|
uninstallViaMarketplace
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-KIRCPLM4.js";
|
|
9
|
+
import "./chunk-LF76VPGQ.js";
|
|
10
10
|
import {
|
|
11
11
|
marketplaceEvidence,
|
|
12
12
|
readMarketplaceInstalls
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-QKLJU4JX.js";
|
|
14
|
+
import "./chunk-UM5S7DKK.js";
|
|
15
|
+
import "./chunk-NBUEL74R.js";
|
|
16
|
+
import "./chunk-OPXAP3AC.js";
|
|
15
17
|
import {
|
|
16
18
|
fail,
|
|
17
19
|
parseScope,
|
|
18
20
|
parseTargets,
|
|
19
21
|
print,
|
|
20
22
|
renderInstallResult
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-7HUUINPB.js";
|
|
24
|
+
import "./chunk-LN76OGNR.js";
|
|
25
|
+
import "./chunk-ZMLVR4J7.js";
|
|
24
26
|
import "./chunk-KHO5WNTP.js";
|
|
25
27
|
import {
|
|
26
28
|
findConnectorConfig,
|
|
27
29
|
loadConnectorFromPath
|
|
28
|
-
} from "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-OPXAP3AC.js";
|
|
33
|
-
import "./chunk-UM5S7DKK.js";
|
|
30
|
+
} from "./chunk-NWLRJNXM.js";
|
|
31
|
+
import "./chunk-G4CEELKO.js";
|
|
32
|
+
import "./chunk-25CPWJA7.js";
|
|
33
|
+
import "./chunk-56R2ER7K.js";
|
|
34
34
|
import "./chunk-H53QZQJI.js";
|
|
35
35
|
import "./chunk-BEFVJ2OE.js";
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
38
|
-
import "./chunk-
|
|
36
|
+
import "./chunk-VVFDU4IX.js";
|
|
37
|
+
import "./chunk-HORHRHNG.js";
|
|
38
|
+
import "./chunk-YYNXIUR2.js";
|
|
39
39
|
import {
|
|
40
40
|
assertConnectorId
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-IXOQDZWC.js";
|
|
42
42
|
|
|
43
43
|
// src/cli/commands/uninstall.ts
|
|
44
44
|
import { parseArgs } from "util";
|
|
@@ -173,4 +173,4 @@ async function run(argv) {
|
|
|
173
173
|
export {
|
|
174
174
|
run
|
|
175
175
|
};
|
|
176
|
-
//# sourceMappingURL=uninstall-
|
|
176
|
+
//# sourceMappingURL=uninstall-2YYKN5DX.js.map
|
|
@@ -4,38 +4,38 @@ import {
|
|
|
4
4
|
resolveCliEntry,
|
|
5
5
|
syncConnector,
|
|
6
6
|
upgradeViaMarketplace
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-KIRCPLM4.js";
|
|
8
|
+
import "./chunk-LF76VPGQ.js";
|
|
9
|
+
import "./chunk-QKLJU4JX.js";
|
|
10
|
+
import "./chunk-UM5S7DKK.js";
|
|
11
|
+
import "./chunk-NBUEL74R.js";
|
|
12
|
+
import "./chunk-OPXAP3AC.js";
|
|
11
13
|
import {
|
|
12
14
|
fail,
|
|
13
15
|
parseScope,
|
|
14
16
|
parseTargets,
|
|
15
17
|
print,
|
|
16
18
|
renderInstallResult
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
19
|
+
} from "./chunk-7HUUINPB.js";
|
|
20
|
+
import "./chunk-LN76OGNR.js";
|
|
21
|
+
import "./chunk-ZMLVR4J7.js";
|
|
20
22
|
import "./chunk-KHO5WNTP.js";
|
|
21
23
|
import {
|
|
22
24
|
findConnectorConfig,
|
|
23
25
|
loadConnectorFromPath
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-OPXAP3AC.js";
|
|
29
|
-
import "./chunk-UM5S7DKK.js";
|
|
26
|
+
} from "./chunk-NWLRJNXM.js";
|
|
27
|
+
import "./chunk-G4CEELKO.js";
|
|
28
|
+
import "./chunk-25CPWJA7.js";
|
|
29
|
+
import "./chunk-56R2ER7K.js";
|
|
30
30
|
import "./chunk-H53QZQJI.js";
|
|
31
31
|
import "./chunk-BEFVJ2OE.js";
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-VVFDU4IX.js";
|
|
33
|
+
import "./chunk-HORHRHNG.js";
|
|
34
|
+
import "./chunk-YYNXIUR2.js";
|
|
35
35
|
import {
|
|
36
36
|
ensureHomeBin,
|
|
37
37
|
homeBinPath
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-IXOQDZWC.js";
|
|
39
39
|
|
|
40
40
|
// src/cli/commands/upgrade.ts
|
|
41
41
|
import { parseArgs } from "util";
|
|
@@ -127,4 +127,4 @@ Refreshed home binary pointer: ${binPath}`);
|
|
|
127
127
|
export {
|
|
128
128
|
run
|
|
129
129
|
};
|
|
130
|
-
//# sourceMappingURL=upgrade-
|
|
130
|
+
//# sourceMappingURL=upgrade-55AFPJEF.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
formatHostLeaderboard,
|
|
4
4
|
hostLeaderboard,
|
|
5
5
|
scanUsage
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-NLE2J5P4.js";
|
|
7
7
|
import {
|
|
8
8
|
aggregateBy,
|
|
9
9
|
sumTokens
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
fail,
|
|
13
13
|
print
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-7HUUINPB.js";
|
|
15
15
|
|
|
16
16
|
// src/cli/commands/usage.ts
|
|
17
17
|
import { writeFileSync } from "fs";
|
|
@@ -321,4 +321,4 @@ export {
|
|
|
321
321
|
parseSince,
|
|
322
322
|
run
|
|
323
323
|
};
|
|
324
|
-
//# sourceMappingURL=usage-
|
|
324
|
+
//# sourceMappingURL=usage-3PB3WZSL.js.map
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runUsageEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BLTVZACS.js";
|
|
5
5
|
import "./chunk-OP4KBXUO.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-D6ZJS4ND.js";
|
|
6
|
+
import "./chunk-LN76OGNR.js";
|
|
7
|
+
import "./chunk-ZMLVR4J7.js";
|
|
8
|
+
import "./chunk-LAIITCMW.js";
|
|
10
9
|
import "./chunk-KHO5WNTP.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-4FWETID5.js";
|
|
11
|
+
import "./chunk-NWLRJNXM.js";
|
|
12
|
+
import "./chunk-G4CEELKO.js";
|
|
13
|
+
import "./chunk-25CPWJA7.js";
|
|
14
|
+
import "./chunk-56R2ER7K.js";
|
|
15
|
+
import "./chunk-HORHRHNG.js";
|
|
16
|
+
import "./chunk-YYNXIUR2.js";
|
|
17
|
+
import "./chunk-IXOQDZWC.js";
|
|
18
18
|
|
|
19
19
|
// src/cli/commands/usage-event.ts
|
|
20
20
|
import { parseArgs } from "util";
|
|
@@ -50,4 +50,4 @@ async function run(argv) {
|
|
|
50
50
|
export {
|
|
51
51
|
run
|
|
52
52
|
};
|
|
53
|
-
//# sourceMappingURL=usage-event-
|
|
53
|
+
//# sourceMappingURL=usage-event-KD5FW6W4.js.map
|
|
@@ -9,14 +9,14 @@ import {
|
|
|
9
9
|
BaseAdapter,
|
|
10
10
|
renderSkillMd,
|
|
11
11
|
renderSubagentMd
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-VVFDU4IX.js";
|
|
13
13
|
import {
|
|
14
14
|
buildHomeBinHookCommand,
|
|
15
15
|
buildWrappedStdio,
|
|
16
16
|
isHomeBinHookCommand
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
17
|
+
} from "./chunk-HORHRHNG.js";
|
|
18
|
+
import "./chunk-YYNXIUR2.js";
|
|
19
|
+
import "./chunk-IXOQDZWC.js";
|
|
20
20
|
|
|
21
21
|
// src/adapters/vscode-copilot/index.ts
|
|
22
22
|
import { existsSync } from "fs";
|
|
@@ -748,4 +748,4 @@ export {
|
|
|
748
748
|
adapter,
|
|
749
749
|
vscode_copilot_default as default
|
|
750
750
|
};
|
|
751
|
-
//# sourceMappingURL=vscode-copilot-
|
|
751
|
+
//# sourceMappingURL=vscode-copilot-LU5NC4ZS.js.map
|
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
BaseAdapter,
|
|
7
7
|
renderSkillMd
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-VVFDU4IX.js";
|
|
9
9
|
import {
|
|
10
10
|
buildWrappedStdio,
|
|
11
11
|
isHomeBinHookCommand
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-HORHRHNG.js";
|
|
13
|
+
import "./chunk-YYNXIUR2.js";
|
|
14
|
+
import "./chunk-IXOQDZWC.js";
|
|
15
15
|
|
|
16
16
|
// src/adapters/warp/index.ts
|
|
17
17
|
import { existsSync } from "fs";
|
|
@@ -339,4 +339,4 @@ export {
|
|
|
339
339
|
adapter,
|
|
340
340
|
warp_default as default
|
|
341
341
|
};
|
|
342
|
-
//# sourceMappingURL=warp-
|
|
342
|
+
//# sourceMappingURL=warp-4PPG5LOM.js.map
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
BaseAdapter,
|
|
7
7
|
renderCommandMd,
|
|
8
8
|
renderSkillMd
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VVFDU4IX.js";
|
|
10
10
|
import {
|
|
11
11
|
buildWrappedStdio
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-HORHRHNG.js";
|
|
13
|
+
import "./chunk-YYNXIUR2.js";
|
|
14
|
+
import "./chunk-IXOQDZWC.js";
|
|
15
15
|
|
|
16
16
|
// src/adapters/windsurf/index.ts
|
|
17
17
|
import { existsSync, statSync } from "fs";
|
|
@@ -426,4 +426,4 @@ export {
|
|
|
426
426
|
adapter,
|
|
427
427
|
windsurf_default as default
|
|
428
428
|
};
|
|
429
|
-
//# sourceMappingURL=windsurf-
|
|
429
|
+
//# sourceMappingURL=windsurf-3T3RVXKM.js.map
|
|
@@ -8,12 +8,13 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
BaseAdapter,
|
|
10
10
|
renderSkillMd
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-VVFDU4IX.js";
|
|
12
12
|
import {
|
|
13
|
-
buildWrappedStdio
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
import "./chunk-
|
|
13
|
+
buildWrappedStdio,
|
|
14
|
+
isHomeBinActionCommand
|
|
15
|
+
} from "./chunk-HORHRHNG.js";
|
|
16
|
+
import "./chunk-YYNXIUR2.js";
|
|
17
|
+
import "./chunk-IXOQDZWC.js";
|
|
17
18
|
|
|
18
19
|
// src/adapters/zed/index.ts
|
|
19
20
|
import { existsSync } from "fs";
|
|
@@ -47,7 +48,13 @@ var ZedAdapter = class _ZedAdapter extends BaseAdapter {
|
|
|
47
48
|
transports: ["stdio", "sse", "http"],
|
|
48
49
|
// Skills: Zed reads SKILL.md from .agents/skills/<name>/SKILL.md (project)
|
|
49
50
|
// and ~/.agents/skills/<name>/SKILL.md (user).
|
|
50
|
-
supportsSkills: true
|
|
51
|
+
supportsSkills: true,
|
|
52
|
+
// Actions: Zed reads tasks.json (a JSON ARRAY of { label, command, args? })
|
|
53
|
+
// spawned in its integrated terminal + surfaced in the command palette
|
|
54
|
+
// (zed.dev/docs/tasks). Each AC action becomes one owned task whose `command`
|
|
55
|
+
// execs the home-bin action verb — a headless exec (zed runs it in a shell).
|
|
56
|
+
// user → ~/.config/zed/tasks.json; project → <projectDir>/.zed/tasks.json.
|
|
57
|
+
supportsActions: true
|
|
51
58
|
};
|
|
52
59
|
// ── Detection ────────────────────────────────────────────────────────────
|
|
53
60
|
detectInstalled(projectDir) {
|
|
@@ -254,6 +261,115 @@ var ZedAdapter = class _ZedAdapter extends BaseAdapter {
|
|
|
254
261
|
renderSkill(skill) {
|
|
255
262
|
return renderSkillMd(skill);
|
|
256
263
|
}
|
|
264
|
+
// ── Action surface (owned entries array-merged into tasks.json) ───────────
|
|
265
|
+
// Zed reads tasks.json (zed.dev/docs/tasks): a JSON ARRAY of tasks
|
|
266
|
+
// `{ label, command, args? }` spawned in the integrated terminal + invocable
|
|
267
|
+
// from the command palette (`task: spawn`). Per AC action we add ONE task
|
|
268
|
+
// whose `command` execs the home-bin action verb. Zed runs `command` in a
|
|
269
|
+
// shell, so this is a HEADLESS exec (not Warp's paste-into-input).
|
|
270
|
+
//
|
|
271
|
+
// OWNERSHIP: tasks.json is a USER-OWNED array, so we never clobber it. We
|
|
272
|
+
// read the whole array, upsert only OUR tasks (identity = isHomeBinActionCommand
|
|
273
|
+
// on `command`, anchored to this connector id so a sibling connector's tasks
|
|
274
|
+
// are foreign), and write back. Idempotent (byte-identical entry → skip).
|
|
275
|
+
// Uninstall filters out ONLY our entries, leaving every foreign task intact.
|
|
276
|
+
/** tasks.json path: <configDir>/tasks.json (~/.config/zed | <projectDir>/.zed). */
|
|
277
|
+
tasksPath(ctx) {
|
|
278
|
+
return join(this.getConfigDir(ctx), "tasks.json");
|
|
279
|
+
}
|
|
280
|
+
/** Render the owned task entry: minimal { label, command }. */
|
|
281
|
+
renderTask(trigger) {
|
|
282
|
+
return { label: trigger.label, command: trigger.command };
|
|
283
|
+
}
|
|
284
|
+
installActions(ctx) {
|
|
285
|
+
const { connector, dryRun } = ctx;
|
|
286
|
+
if (connector.platforms[HOST]?.actions === false) {
|
|
287
|
+
return [{ platform: this.id, action: "skip", detail: "actions disabled for zed" }];
|
|
288
|
+
}
|
|
289
|
+
const triggers = this.actionTriggers(ctx);
|
|
290
|
+
if (triggers.length === 0) {
|
|
291
|
+
return [{ platform: this.id, action: "skip", detail: "connector declares no actions" }];
|
|
292
|
+
}
|
|
293
|
+
const path = this.tasksPath(ctx);
|
|
294
|
+
const symlink = this.symlinkPathWarning(path);
|
|
295
|
+
if (symlink) return [symlink];
|
|
296
|
+
if (this.isPresentButUnparseable(path)) {
|
|
297
|
+
return [
|
|
298
|
+
{
|
|
299
|
+
platform: this.id,
|
|
300
|
+
action: "warn",
|
|
301
|
+
path,
|
|
302
|
+
detail: `${path} is present but not parseable as JSON; left untouched (fix it, then re-run)`
|
|
303
|
+
}
|
|
304
|
+
];
|
|
305
|
+
}
|
|
306
|
+
const raw = this.readJson(path);
|
|
307
|
+
if (raw !== null && !Array.isArray(raw)) {
|
|
308
|
+
return [
|
|
309
|
+
{
|
|
310
|
+
platform: this.id,
|
|
311
|
+
action: "warn",
|
|
312
|
+
path,
|
|
313
|
+
detail: `${path} is not a JSON array of tasks; left untouched (fix it, then re-run)`
|
|
314
|
+
}
|
|
315
|
+
];
|
|
316
|
+
}
|
|
317
|
+
const list = raw ?? [];
|
|
318
|
+
const changes = [];
|
|
319
|
+
let mutated = false;
|
|
320
|
+
for (const trigger of triggers) {
|
|
321
|
+
const entry = this.renderTask(trigger);
|
|
322
|
+
const slot = list.findIndex(
|
|
323
|
+
(t) => this.isOurTask(t, ctx) && t.command === entry.command
|
|
324
|
+
);
|
|
325
|
+
if (slot < 0) {
|
|
326
|
+
list.push(entry);
|
|
327
|
+
mutated = true;
|
|
328
|
+
changes.push({ platform: this.id, action: "create", path, detail: `tasks.json [${trigger.id}]` });
|
|
329
|
+
} else if (JSON.stringify(list[slot]) === JSON.stringify(entry)) {
|
|
330
|
+
changes.push({ platform: this.id, action: "skip", path, detail: `tasks.json [${trigger.id}]` });
|
|
331
|
+
} else {
|
|
332
|
+
list[slot] = entry;
|
|
333
|
+
mutated = true;
|
|
334
|
+
changes.push({ platform: this.id, action: "update", path, detail: `tasks.json [${trigger.id}]` });
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
if (mutated && !dryRun) this.writeJson(path, list);
|
|
338
|
+
return changes;
|
|
339
|
+
}
|
|
340
|
+
uninstallActions(ctx) {
|
|
341
|
+
const { connector, dryRun } = ctx;
|
|
342
|
+
if (connector.actions.length === 0) {
|
|
343
|
+
return [{ platform: this.id, action: "skip", detail: "connector declares no actions" }];
|
|
344
|
+
}
|
|
345
|
+
const path = this.tasksPath(ctx);
|
|
346
|
+
const raw = this.readJson(path);
|
|
347
|
+
if (raw === null || !Array.isArray(raw)) {
|
|
348
|
+
return [{ platform: this.id, action: "skip", detail: "tasks.json absent or not an array" }];
|
|
349
|
+
}
|
|
350
|
+
const list = raw;
|
|
351
|
+
const kept = list.filter((t) => !this.isOurTask(t, ctx));
|
|
352
|
+
if (kept.length === list.length) {
|
|
353
|
+
return [{ platform: this.id, action: "skip", detail: "no owned tasks in tasks.json" }];
|
|
354
|
+
}
|
|
355
|
+
if (!dryRun) this.writeJson(path, kept);
|
|
356
|
+
return [
|
|
357
|
+
{
|
|
358
|
+
platform: this.id,
|
|
359
|
+
action: "remove",
|
|
360
|
+
path,
|
|
361
|
+
detail: `tasks.json (${list.length - kept.length} owned task(s) removed)`
|
|
362
|
+
}
|
|
363
|
+
];
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* True when a task entry is OURS — its `command` is the home-bin action verb
|
|
367
|
+
* for exactly this connector id (anchored so a shared-prefix id can't collide,
|
|
368
|
+
* and the ` action ` verb so a future hook/serve task is never misread).
|
|
369
|
+
*/
|
|
370
|
+
isOurTask(task, ctx) {
|
|
371
|
+
return isHomeBinActionCommand(task?.command, ctx.homeBinPath, ctx.connector.id);
|
|
372
|
+
}
|
|
257
373
|
// ── Hooks (unavailable — Zed is mcp-only) ────────────────────────────────
|
|
258
374
|
installHooks(_ctx) {
|
|
259
375
|
return [
|
|
@@ -309,4 +425,4 @@ export {
|
|
|
309
425
|
adapter,
|
|
310
426
|
zed_default as default
|
|
311
427
|
};
|
|
312
|
-
//# sourceMappingURL=zed-
|
|
428
|
+
//# sourceMappingURL=zed-ZF2OQ75O.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/adapters/zed/index.ts"],"sourcesContent":["/**\n * adapters/zed — Zed editor platform adapter for agent-connector.\n *\n * Zed is an **mcp-only** host: it is an IDE, not a CLI with a hook pipeline, so\n * there is NO lifecycle hook system. MCP (\"context servers\") is the only\n * integration path, so this adapter installs only the MCP server and reports\n * hooks as unavailable — like Warp, it exercises the `mcp-only` paradigm.\n *\n * MCP config (one JSON-with-comments settings file, NOT a dedicated MCP file):\n * - user scope → settings.json under Zed's OS-native config dir (Rust\n * `dirs::config_dir()`):\n * • Windows: %APPDATA%\\Zed\\settings.json (Roaming, NOT %LOCALAPPDATA%)\n * • macOS / Linux: ~/.config/zed/settings.json\n * - project scope → <projectDir>/.zed/settings.json\n * Root key is \"context_servers\" (NOT \"mcpServers\"). The same file holds the\n * (non-existent) hook config — there is no separate hook file here.\n *\n * MERGE CONTRACT: Zed's settings.json is a large user-owned IDE config. We read\n * the whole file, set ONLY context_servers[<id>], and write it back — every\n * other top-level key and sibling context server is preserved. (Zed accepts\n * JSONC; we WRITE plain JSON, mirroring the other JSON-config adapters.)\n *\n * ENTRY SHAPE QUIRK (verified against context-mode's proven Zed adapter +\n * zed-industries/zed crates/settings_content/src/project.rs): Zed's\n * context_servers Stdio variant flattens ContextServerCommand and renames its\n * `path` field to the JSON key `command`. The accepted shape is therefore a\n * FLAT entry: { \"command\": \"<exe>\", \"args\": [...], \"env\": {...} }. The nested\n * { command: { path, args } } form fails to deserialize under Zed's\n * #[serde(untagged)] enum and is silently dropped (the server never loads).\n *\n * Zed documents no native ${env:VAR} interpolation token for context_servers,\n * so env refs are resolved to literals at install time (the no-native-token\n * path, same as Warp).\n *\n * Skills surface: Zed reads SKILL.md files from:\n * project scope → <projectDir>/.agents/skills/<name>/SKILL.md\n * user scope → ~/.agents/skills/<name>/SKILL.md\n *\n * Actions surface: Zed reads `tasks.json` — a JSON ARRAY of tasks\n * `{ label, command, args?, … }` spawned in its integrated terminal and surfaced\n * in the command palette (`task: spawn`) / bindable (zed.dev/docs/tasks):\n * user scope → ~/.config/zed/tasks.json (%APPDATA%\\Zed on Windows — the\n * SAME OS-native config dir as settings.json)\n * project scope → <projectDir>/.zed/tasks.json\n * For each AC action we add ONE owned task whose `command` execs the home-bin\n * action verb. Zed runs `command` in a shell (\"tasks act just like your shell\"),\n * so the full `<homeBin> action zed <id> --connector <id>` line is a HEADLESS\n * exec (unlike Warp's paste-into-input semantics). tasks.json is a user-owned\n * ARRAY, so we array-merge: set-if-absent, keyed on OUR action command (the\n * isHomeBinActionCommand ownership predicate), idempotent, and uninstall removes\n * ONLY our entries — every foreign task survives.\n */\n\nimport { existsSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\n\nimport { BaseAdapter, type ActionTrigger } from \"../base.js\";\nimport type { Adapter, InstallContext, MemoryTarget } from \"../spi.js\";\nimport type {\n ChangeRecord,\n DetectedPlatform,\n HealthCheck,\n HookParadigm,\n PlatformCapabilities,\n PlatformId,\n ServerDef,\n SkillDef,\n Transport,\n} from \"../../core/types.js\";\nimport { resolveEnvRefsDeep } from \"../../core/interpolate.js\";\nimport { roamingAppData } from \"../../core/host-paths.js\";\nimport {\n buildWrappedStdio,\n isHomeBinActionCommand,\n} from \"../../core/spawn.js\";\nimport { renderSkillMd } from \"../claude-code/render.js\";\n\nconst HOST: PlatformId = \"zed\";\nconst MCP_ROOT_KEY = \"context_servers\";\n\n/**\n * Zed's context_servers Stdio entry. FLAT shape — `command` is a string, NOT a\n * nested { path, args } object (see file header). Remote transports are\n * represented as a URL-bearing entry.\n */\ninterface ZedStdioServer {\n command: string;\n args?: string[];\n env?: Record<string, string>;\n}\ninterface ZedHttpServer {\n url: string;\n headers?: Record<string, string>;\n}\n\n/**\n * One Zed task entry in tasks.json (zed.dev/docs/tasks). Zed accepts many\n * optional keys (env, cwd, reveal, …); we write only the minimal owned trio\n * { label, command } and preserve every key on FOREIGN entries untouched.\n */\ninterface ZedTask {\n label: string;\n command: string;\n [key: string]: unknown;\n}\n\nexport class ZedAdapter extends BaseAdapter implements Adapter {\n readonly id: PlatformId = HOST;\n readonly name = \"Zed\";\n readonly paradigm: HookParadigm = \"mcp-only\";\n\n readonly capabilities: PlatformCapabilities = {\n // Memory surface: AGENTS.md-first managed block. Zed's project rules file\n // is FIRST-MATCH across nine candidates — memoryTargets below probes that\n // order and writes into the file Zed will actually read; user scope is the\n // personal ~/.config/zed/AGENTS.md (%APPDATA%\\Zed on Windows, base map).\n supportsMemory: true,\n // Zed has no lifecycle hook system — every hook capability is false.\n preToolUse: false,\n postToolUse: false,\n preCompact: false,\n sessionStart: false,\n sessionEnd: false,\n userPromptSubmit: false,\n stop: false,\n notification: false,\n canModifyArgs: false,\n canModifyOutput: false,\n canInjectSessionContext: false,\n // Zed registers stdio context servers; remote URLs are also accepted.\n transports: [\"stdio\", \"sse\", \"http\"],\n // Skills: Zed reads SKILL.md from .agents/skills/<name>/SKILL.md (project)\n // and ~/.agents/skills/<name>/SKILL.md (user).\n supportsSkills: true,\n // Actions: Zed reads tasks.json (a JSON ARRAY of { label, command, args? })\n // spawned in its integrated terminal + surfaced in the command palette\n // (zed.dev/docs/tasks). Each AC action becomes one owned task whose `command`\n // execs the home-bin action verb — a headless exec (zed runs it in a shell).\n // user → ~/.config/zed/tasks.json; project → <projectDir>/.zed/tasks.json.\n supportsActions: true,\n };\n\n // ── Detection ────────────────────────────────────────────────────────────\n\n detectInstalled(projectDir: string): DetectedPlatform {\n const userDir = this.userConfigDir();\n const userSettings = this.userSettingsPath();\n const projDir = join(projectDir, \".zed\");\n const projSettings = join(projDir, \"settings.json\");\n\n const userInstalled = existsSync(userDir) || existsSync(userSettings);\n const projInstalled = existsSync(projDir) || existsSync(projSettings);\n const installed = userInstalled || projInstalled;\n const scope = projInstalled && !userInstalled ? \"project\" : \"user\";\n const configPath = scope === \"project\" ? projSettings : userSettings;\n\n return {\n id: this.id,\n name: this.name,\n installed,\n paradigm: this.paradigm,\n capabilities: this.capabilities,\n configPath,\n scope,\n reason: installed\n ? `found Zed config (${scope}) at ${configPath}`\n : `no Zed config at ${userSettings} or ${projSettings}`,\n confidence: installed ? \"high\" : \"low\",\n };\n }\n\n // ── Native paths ─────────────────────────────────────────────────────────\n\n getConfigDir(ctx: InstallContext): string {\n return ctx.scope === \"project\"\n ? join(ctx.projectDir, \".zed\")\n : this.userConfigDir();\n }\n\n getServerConfigPath(ctx: InstallContext): string {\n return join(this.getConfigDir(ctx), \"settings.json\");\n }\n\n /**\n * Zed has no hook file — hooks are not a thing here. The hook \"config path\"\n * is the same settings.json so the generic doctor/backup behave sensibly.\n */\n getHookConfigPath(ctx: InstallContext): string {\n return this.getServerConfigPath(ctx);\n }\n\n /**\n * Zed's user config dir is OS-native (Rust `dirs::config_dir()`), NOT a\n * uniform ~/.config:\n * - Windows: %APPDATA%\\Zed (Roaming, NOT Local/%LOCALAPPDATA%)\n * - macOS / Linux: ~/.config/zed\n */\n private userConfigDir(): string {\n if (process.platform === \"win32\") {\n return join(roamingAppData(), \"Zed\");\n }\n return join(homedir(), \".config\", \"zed\");\n }\n\n private userSettingsPath(): string {\n return join(this.userConfigDir(), \"settings.json\");\n }\n\n // ── Memory surface: first-match project rules probe ─────────────────────\n /**\n * Zed reads exactly ONE project rules file — the FIRST existing of these\n * worktree-root candidates (zed docs/src/ai/instructions.md order). A block\n * in AGENTS.md is silently ignored when e.g. `.cursorrules` exists, so the\n * probe targets the file Zed will actually pick; AGENTS.md is created only\n * when nothing shadows it.\n */\n private static readonly PROJECT_RULES_PROBE_ORDER = [\n \".rules\",\n \".cursorrules\",\n \".windsurfrules\",\n \".clinerules\",\n join(\".github\", \"copilot-instructions.md\"),\n \"AGENT.md\",\n \"AGENTS.md\",\n \"CLAUDE.md\",\n \"GEMINI.md\",\n ];\n\n protected override memoryTargets(ctx: InstallContext): MemoryTarget[] {\n if (this.memoryOverride(ctx)?.path || ctx.scope !== \"project\") {\n return super.memoryTargets(ctx); // user scope: personal AGENTS.md (base map)\n }\n for (const rel of ZedAdapter.PROJECT_RULES_PROBE_ORDER) {\n const candidate = join(ctx.projectDir, rel);\n if (existsSync(candidate)) {\n return [\n {\n path: candidate,\n reason: `zed first-match project rules file (${rel} shadows later candidates)`,\n },\n ];\n }\n }\n return [\n {\n path: join(ctx.projectDir, \"AGENTS.md\"),\n reason: \"AGENTS.md (created; no zed first-match rules file present)\",\n },\n ];\n }\n\n // ── MCP server install / uninstall ───────────────────────────────────────\n\n installServer(ctx: InstallContext): ChangeRecord[] {\n const { connector } = ctx;\n const override = connector.platforms[HOST]?.server;\n if (!connector.server || override === false) {\n return [\n {\n platform: this.id,\n action: \"skip\",\n detail: connector.server\n ? \"server registration disabled for zed\"\n : \"connector declares no MCP server\",\n },\n ];\n }\n\n // Shallow-merge any per-platform server override into the base ServerDef.\n const server: ServerDef =\n override && typeof override === \"object\"\n ? { ...connector.server, ...override }\n : connector.server;\n\n const serverPath = this.getServerConfigPath(ctx);\n const entry = this.renderServerEntry(ctx, server);\n\n // upsertServerInJson reads the WHOLE settings file, sets only\n // context_servers[<id>], and writes it back — preserving every other\n // top-level key and sibling context server (the merge contract).\n return [\n this.upsertServerInJson(serverPath, MCP_ROOT_KEY, connector.id, entry, ctx.dryRun),\n ];\n }\n\n uninstallServer(ctx: InstallContext): ChangeRecord[] {\n const serverPath = this.getServerConfigPath(ctx);\n return [\n this.removeServerFromJson(serverPath, MCP_ROOT_KEY, ctx.connector.id, ctx.dryRun),\n ];\n }\n\n /** Render a normalized ServerDef into Zed's native context_servers entry. */\n private renderServerEntry(\n ctx: InstallContext,\n server: ServerDef,\n ): ZedStdioServer | ZedHttpServer {\n const transport: Transport = server.transport;\n\n if (transport === \"stdio\") {\n let command = server.command ?? \"\";\n let args = [...(server.args ?? [])];\n\n // Transparent telemetry wrapping: route the real command through\n // `<homeBin> serve --connector <id> -- <command> <args...>`.\n ({ command, args } = buildWrappedStdio(ctx, server, this.id, command, args));\n\n // Zed has no documented native interpolation token, so resolve every\n // ${env:VAR} to a literal at install time.\n // FLAT shape: `command` is a string, never a nested { path, args }.\n const entry: ZedStdioServer = { command: resolveEnvRefsDeep(command) };\n if (args.length > 0) entry.args = resolveEnvRefsDeep(args);\n const env = this.renderEnv(server.env);\n if (env) entry.env = env;\n return entry;\n }\n\n // sse / http (and any other remote transport) — Zed registers a URL.\n const entry: ZedHttpServer = { url: resolveEnvRefsDeep(server.url ?? \"\") };\n const headers = this.renderEnv(server.headers);\n if (headers) entry.headers = headers;\n return entry;\n }\n\n /**\n * Render env/header values. Zed documents no native interpolation token, so\n * resolve `${env:VAR}` references to literals at install time.\n */\n private renderEnv(\n env: Record<string, string> | undefined,\n ): Record<string, string> | undefined {\n if (!env || Object.keys(env).length === 0) return undefined;\n return resolveEnvRefsDeep({ ...env });\n }\n\n // ── Skills surface ───────────────────────────────────────────────────────\n // Zed reads SKILL.md files from:\n // project scope → <projectDir>/.agents/skills/<name>/SKILL.md\n // user scope → ~/.agents/skills/<name>/SKILL.md\n\n private skillsDir(ctx: InstallContext): string {\n return ctx.scope === \"project\"\n ? join(ctx.projectDir, \".agents\", \"skills\")\n : join(homedir(), \".agents\", \"skills\");\n }\n\n private skillDir(ctx: InstallContext, name: string): string {\n return join(this.skillsDir(ctx), name);\n }\n\n override installSkills(ctx: InstallContext): ChangeRecord[] {\n const { connector } = ctx;\n if (connector.platforms[HOST]?.skills === false) {\n return [{ platform: this.id, action: \"skip\", detail: \"skills disabled for zed\" }];\n }\n if (connector.skills.length === 0) {\n return [{ platform: this.id, action: \"skip\", detail: \"connector declares no skills\" }];\n }\n const changes: ChangeRecord[] = [];\n for (const skill of connector.skills) {\n const dir = this.skillDir(ctx, skill.name);\n changes.push(\n this.writeContentFile(join(dir, \"SKILL.md\"), this.renderSkill(skill), ctx.dryRun),\n );\n for (const [rel, contents] of Object.entries(skill.resources ?? {})) {\n const target = this.resolveWithin(dir, rel);\n if (target === null) {\n changes.push({\n platform: this.id,\n action: \"warn\",\n detail: `skill resource \"${rel}\" escapes the skill dir; skipped`,\n });\n continue;\n }\n changes.push(this.writeContentFile(target, contents, ctx.dryRun));\n }\n }\n return changes;\n }\n\n override uninstallSkills(ctx: InstallContext): ChangeRecord[] {\n const { connector } = ctx;\n if (connector.skills.length === 0) {\n return [{ platform: this.id, action: \"skip\", detail: \"connector declares no skills\" }];\n }\n const changes: ChangeRecord[] = [];\n for (const skill of connector.skills) {\n const dir = this.skillDir(ctx, skill.name);\n changes.push(this.removeContentFile(join(dir, \"SKILL.md\"), ctx.dryRun));\n for (const rel of Object.keys(skill.resources ?? {})) {\n const target = this.resolveWithin(dir, rel);\n if (target === null) continue;\n changes.push(this.removeContentFile(target, ctx.dryRun));\n }\n changes.push(this.removeDirIfEmpty(dir, ctx.dryRun));\n }\n return changes;\n }\n\n private renderSkill(skill: SkillDef): string {\n return renderSkillMd(skill);\n }\n\n // ── Action surface (owned entries array-merged into tasks.json) ───────────\n // Zed reads tasks.json (zed.dev/docs/tasks): a JSON ARRAY of tasks\n // `{ label, command, args? }` spawned in the integrated terminal + invocable\n // from the command palette (`task: spawn`). Per AC action we add ONE task\n // whose `command` execs the home-bin action verb. Zed runs `command` in a\n // shell, so this is a HEADLESS exec (not Warp's paste-into-input).\n //\n // OWNERSHIP: tasks.json is a USER-OWNED array, so we never clobber it. We\n // read the whole array, upsert only OUR tasks (identity = isHomeBinActionCommand\n // on `command`, anchored to this connector id so a sibling connector's tasks\n // are foreign), and write back. Idempotent (byte-identical entry → skip).\n // Uninstall filters out ONLY our entries, leaving every foreign task intact.\n\n /** tasks.json path: <configDir>/tasks.json (~/.config/zed | <projectDir>/.zed). */\n private tasksPath(ctx: InstallContext): string {\n return join(this.getConfigDir(ctx), \"tasks.json\");\n }\n\n /** Render the owned task entry: minimal { label, command }. */\n private renderTask(trigger: ActionTrigger): ZedTask {\n return { label: trigger.label, command: trigger.command };\n }\n\n override installActions(ctx: InstallContext): ChangeRecord[] {\n const { connector, dryRun } = ctx;\n if (connector.platforms[HOST]?.actions === false) {\n return [{ platform: this.id, action: \"skip\", detail: \"actions disabled for zed\" }];\n }\n const triggers = this.actionTriggers(ctx);\n if (triggers.length === 0) {\n return [{ platform: this.id, action: \"skip\", detail: \"connector declares no actions\" }];\n }\n\n const path = this.tasksPath(ctx);\n const symlink = this.symlinkPathWarning(path);\n if (symlink) return [symlink];\n\n // Overwrite guard: a present-but-unparseable tasks.json must never be blanked\n // (symmetric with the settings.json merge contract — see review-fixes tests).\n if (this.isPresentButUnparseable(path)) {\n return [\n {\n platform: this.id,\n action: \"warn\",\n path,\n detail: `${path} is present but not parseable as JSON; left untouched (fix it, then re-run)`,\n },\n ];\n }\n\n // tasks.json IS a top-level array. A null parse means \"absent\" (create\n // fresh); a present non-array value was hand-edited to the wrong shape, so\n // warn-skip rather than clobber it (mirrors continue's mcpServers guard).\n const raw = this.readJson<unknown>(path);\n if (raw !== null && !Array.isArray(raw)) {\n return [\n {\n platform: this.id,\n action: \"warn\",\n path,\n detail: `${path} is not a JSON array of tasks; left untouched (fix it, then re-run)`,\n },\n ];\n }\n const list = (raw ?? []) as ZedTask[];\n\n const changes: ChangeRecord[] = [];\n let mutated = false;\n for (const trigger of triggers) {\n const entry = this.renderTask(trigger);\n // Identity is OUR action command (anchored to this connector id), NOT the\n // label — a user could relabel. Match the SPECIFIC action by its command,\n // which is unique per action id (one slot per action).\n const slot = list.findIndex(\n (t) => this.isOurTask(t, ctx) && t.command === entry.command,\n );\n if (slot < 0) {\n list.push(entry);\n mutated = true;\n changes.push({ platform: this.id, action: \"create\", path, detail: `tasks.json [${trigger.id}]` });\n } else if (JSON.stringify(list[slot]) === JSON.stringify(entry)) {\n changes.push({ platform: this.id, action: \"skip\", path, detail: `tasks.json [${trigger.id}]` });\n } else {\n list[slot] = entry;\n mutated = true;\n changes.push({ platform: this.id, action: \"update\", path, detail: `tasks.json [${trigger.id}]` });\n }\n }\n\n if (mutated && !dryRun) this.writeJson(path, list);\n return changes;\n }\n\n override uninstallActions(ctx: InstallContext): ChangeRecord[] {\n const { connector, dryRun } = ctx;\n if (connector.actions.length === 0) {\n return [{ platform: this.id, action: \"skip\", detail: \"connector declares no actions\" }];\n }\n\n const path = this.tasksPath(ctx);\n const raw = this.readJson<unknown>(path);\n if (raw === null || !Array.isArray(raw)) {\n return [{ platform: this.id, action: \"skip\", detail: \"tasks.json absent or not an array\" }];\n }\n\n const list = raw as ZedTask[];\n const kept = list.filter((t) => !this.isOurTask(t, ctx));\n if (kept.length === list.length) {\n return [{ platform: this.id, action: \"skip\", detail: \"no owned tasks in tasks.json\" }];\n }\n if (!dryRun) this.writeJson(path, kept);\n return [\n {\n platform: this.id,\n action: \"remove\",\n path,\n detail: `tasks.json (${list.length - kept.length} owned task(s) removed)`,\n },\n ];\n }\n\n /**\n * True when a task entry is OURS — its `command` is the home-bin action verb\n * for exactly this connector id (anchored so a shared-prefix id can't collide,\n * and the ` action ` verb so a future hook/serve task is never misread).\n */\n private isOurTask(task: ZedTask | undefined, ctx: InstallContext): boolean {\n return isHomeBinActionCommand(task?.command, ctx.homeBinPath, ctx.connector.id);\n }\n\n // ── Hooks (unavailable — Zed is mcp-only) ────────────────────────────────\n\n installHooks(_ctx: InstallContext): ChangeRecord[] {\n return [\n {\n platform: this.id,\n action: \"skip\",\n detail: \"hooks unavailable (Zed is mcp-only)\",\n },\n ];\n }\n\n uninstallHooks(_ctx: InstallContext): ChangeRecord[] {\n return [\n {\n platform: this.id,\n action: \"skip\",\n detail: \"hooks unavailable (Zed is mcp-only)\",\n },\n ];\n }\n\n // ── Diagnostics ──────────────────────────────────────────────────────────\n\n override getHealthChecks(ctx: InstallContext): readonly HealthCheck[] {\n const settingsPath = this.getServerConfigPath(ctx);\n const connectorId = ctx.connector.id;\n return [\n {\n name: `${this.name}: settings.json present`,\n check: () =>\n existsSync(settingsPath)\n ? { status: \"OK\", detail: settingsPath }\n : { status: \"FAIL\", detail: `not found: ${settingsPath}` },\n },\n {\n name: `${this.name}: context server entry registered`,\n check: () => {\n // Only assert what the connector declares: a server-less connector —\n // e.g. a catalog-only bundle of agents/skills/commands — never writes\n // a context_servers entry, so its absence is healthy.\n if (!ctx.connector.server) {\n return { status: \"OK\", detail: \"no MCP server declared\" };\n }\n const cfg = this.readJson<{ [k: string]: Record<string, unknown> }>(settingsPath);\n const bucket = cfg?.[MCP_ROOT_KEY];\n if (!cfg || !bucket) {\n return { status: \"FAIL\", detail: `no ${MCP_ROOT_KEY} in ${settingsPath}` };\n }\n return connectorId in bucket\n ? { status: \"OK\", detail: `${MCP_ROOT_KEY}.${connectorId} present` }\n : {\n status: \"FAIL\",\n detail: `no ${MCP_ROOT_KEY}.${connectorId} in ${settingsPath}`,\n };\n },\n },\n ];\n }\n}\n\nexport const adapter = new ZedAdapter();\nexport default adapter;\n"],"mappings":"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","names":["entry"]}
|