@ken-jo/agent-connector 0.4.61 → 0.4.67
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/dist/{action-AIB2W4DU.js → action-RUM6GP23.js} +12 -12
- package/dist/{amazon-q-PH7OFPJD.js → amazon-q-KXVJFT7Q.js} +4 -4
- package/dist/{amp-ZYRC2VCH.js → amp-WAPHJYTK.js} +4 -4
- package/dist/{antigravity-PM5NMS2J.js → antigravity-GF3RU42A.js} +5 -5
- package/dist/{antigravity-cli-LN25XGWX.js → antigravity-cli-OH27IFH5.js} +5 -5
- package/dist/{chunk-D65GIBCG.js → chunk-2HCJV6UO.js} +13 -14
- package/dist/chunk-2HCJV6UO.js.map +1 -0
- package/dist/{chunk-4K5HEGVE.js → chunk-3Y23ZYYF.js} +10 -10
- package/dist/chunk-3Y23ZYYF.js.map +1 -0
- package/dist/{chunk-BZOOVTFG.js → chunk-7CZKXXBD.js} +2 -2
- package/dist/{chunk-LBOGRZGY.js → chunk-ALVXORZM.js} +2 -2
- package/dist/{chunk-WOUGWPZQ.js → chunk-AXAHW2KU.js} +2 -2
- package/dist/{chunk-RFYQXT7C.js → chunk-CSRBMJLU.js} +7 -7
- package/dist/{chunk-ZQCT63JU.js → chunk-D6ZJS4ND.js} +2 -2
- package/dist/{chunk-NFMHYIN2.js → chunk-E45SUUD7.js} +5 -5
- package/dist/{chunk-C3TFA4CJ.js → chunk-F5COBB5F.js} +2 -2
- package/dist/{chunk-QP35SRUZ.js → chunk-GCRRX4MO.js} +2 -2
- package/dist/{chunk-AEQRMVRB.js → chunk-IU42THN7.js} +2 -2
- package/dist/{chunk-FVARNRCE.js → chunk-IZ4XQ23W.js} +9 -9
- package/dist/{chunk-IDKI42JW.js → chunk-LS65GL2P.js} +36 -36
- package/dist/{chunk-KAEYJGK7.js → chunk-NXR4HM5N.js} +18 -18
- package/dist/{chunk-AAOYOAQT.js → chunk-P5KA5NVR.js} +2 -2
- package/dist/{chunk-GI4FDVWI.js → chunk-RHML2NOB.js} +3 -3
- package/dist/{chunk-O4BKQSPP.js → chunk-RQCBBLTA.js} +3 -3
- package/dist/{chunk-3QCDVSMX.js → chunk-TZ5KGCE2.js} +2 -2
- package/dist/{chunk-JZIM33C2.js → chunk-UVBAH263.js} +5 -5
- package/dist/{chunk-RGQTN7K3.js → chunk-ZEFUDBTY.js} +5 -5
- package/dist/{chunk-O3HIYTBK.js → chunk-ZSMGHEB5.js} +2 -2
- package/dist/{claude-code-GCXXEWUN.js → claude-code-WLN43K7I.js} +8 -8
- package/dist/cli/sdk.js +7 -7
- package/dist/cli.js +1 -1
- package/dist/{cline-KHZLG7CU.js → cline-PEGTGVQD.js} +4 -4
- package/dist/{codebuff-EQGWZEP4.js → codebuff-UG6LVSOM.js} +4 -4
- package/dist/{codex-7X7RC6JJ.js → codex-4LVDQXCD.js} +4 -4
- package/dist/{continue-V4MB3WQ3.js → continue-DYV5V55Y.js} +5 -5
- package/dist/{copilot-cli-7EPIJHFM.js → copilot-cli-NVFXFLUF.js} +58 -23
- package/dist/copilot-cli-NVFXFLUF.js.map +1 -0
- package/dist/{crush-3AAA75C5.js → crush-PP4HYZLT.js} +4 -4
- package/dist/{cursor-DTYZROKS.js → cursor-XMXOZKAP.js} +5 -5
- package/dist/{detect-LWZEM7SN.js → detect-IZOWP5AA.js} +4 -4
- package/dist/{doctor-54P4JFA6.js → doctor-5IVUQ2YH.js} +14 -14
- package/dist/{droid-QMNO5WZ2.js → droid-ETNOUIPJ.js} +4 -4
- package/dist/{gemini-cli-7JU7ZWQL.js → gemini-cli-P7XJXWVH.js} +4 -4
- package/dist/{goose-36TJNDKD.js → goose-UZVA6MQC.js} +5 -5
- package/dist/{hermes-S4JZ6H42.js → hermes-IC6R4CII.js} +5 -5
- package/dist/{hook-UT3Q43AB.js → hook-7IUPIHCZ.js} +12 -12
- package/dist/index.js +5 -5
- package/dist/{install-F4OIDYAK.js → install-EP6GPQ65.js} +14 -14
- package/dist/{jetbrains-copilot-6QLKUCAY.js → jetbrains-copilot-MZO2RQGJ.js} +6 -7
- package/dist/jetbrains-copilot-MZO2RQGJ.js.map +1 -0
- package/dist/{kilo-WLZOYKZK.js → kilo-CCB34CQQ.js} +4 -4
- package/dist/{kilo-cli-FBX4OFIZ.js → kilo-cli-EOMN3WC7.js} +4 -4
- package/dist/{kimi-7YXRAQ6Z.js → kimi-GUSJME55.js} +4 -4
- package/dist/{kiro-CSBQA6EX.js → kiro-6OHZ5RGV.js} +4 -4
- package/dist/{leaderboard-ZIAXBUWD.js → leaderboard-6I2E5XZK.js} +5 -5
- package/dist/{mimo-code-GYJNEULG.js → mimo-code-ZPJJ6IIW.js} +4 -4
- package/dist/{mux-DAIC3VY7.js → mux-AFTVMGGM.js} +4 -4
- package/dist/{nemoclaw-GS3XA7V2.js → nemoclaw-D5EN4G2Q.js} +5 -5
- package/dist/{omp-O6KNB4MM.js → omp-GKI2PZ7G.js} +4 -4
- package/dist/{openclaw-344VBMLY.js → openclaw-A76PCNBV.js} +5 -5
- package/dist/{opencode-JPHRZPDQ.js → opencode-M34E6PI7.js} +4 -4
- package/dist/{package-5FRMSWRT.js → package-BWLV24OO.js} +11 -11
- package/dist/{pi-EFBTBI2B.js → pi-HVG6ZWFE.js} +4 -4
- package/dist/{qwen-code-CLSMTMHX.js → qwen-code-OWLM3I5P.js} +5 -5
- package/dist/{roo-code-YIX3RPR2.js → roo-code-RFKKTNNI.js} +4 -4
- package/dist/runtime/index.js +10 -10
- package/dist/sdk/index.js +6 -6
- package/dist/sdk/test.js +9 -9
- package/dist/{serve-NQBXN4FG.js → serve-CM4HZPMP.js} +12 -12
- package/dist/{status-5ZM6LXHV.js → status-BPB4VLQX.js} +10 -10
- package/dist/{statusline-O76BCBUK.js → statusline-HIKR2I4Q.js} +11 -11
- package/dist/{telemetry-NO7UUUSJ.js → telemetry-SBVUJYNE.js} +10 -10
- package/dist/{trae-JESXQKAF.js → trae-FVHQALK3.js} +4 -4
- package/dist/{uninstall-QCROBR6A.js → uninstall-MO3RGGVE.js} +21 -14
- package/dist/uninstall-MO3RGGVE.js.map +1 -0
- package/dist/{upgrade-KJ4QRZDZ.js → upgrade-6XIGSPGY.js} +14 -14
- package/dist/{usage-UY6DCND6.js → usage-IBN36ZVW.js} +2 -2
- package/dist/{usage-event-T4HWQDZF.js → usage-event-4RJP37K6.js} +11 -11
- package/dist/{vscode-copilot-56USZ5X4.js → vscode-copilot-6FLDRTKV.js} +4 -4
- package/dist/{warp-Y6JNLLGR.js → warp-7CC52UJV.js} +4 -4
- package/dist/{windsurf-X7QCJ3XR.js → windsurf-6ZLQMBQW.js} +4 -4
- package/dist/{zed-L3ML5MHF.js → zed-FULJMNBV.js} +4 -4
- package/package.json +1 -1
- package/dist/chunk-4K5HEGVE.js.map +0 -1
- package/dist/chunk-D65GIBCG.js.map +0 -1
- package/dist/copilot-cli-7EPIJHFM.js.map +0 -1
- package/dist/jetbrains-copilot-6QLKUCAY.js.map +0 -1
- package/dist/uninstall-QCROBR6A.js.map +0 -1
- /package/dist/{action-AIB2W4DU.js.map → action-RUM6GP23.js.map} +0 -0
- /package/dist/{amazon-q-PH7OFPJD.js.map → amazon-q-KXVJFT7Q.js.map} +0 -0
- /package/dist/{amp-ZYRC2VCH.js.map → amp-WAPHJYTK.js.map} +0 -0
- /package/dist/{antigravity-PM5NMS2J.js.map → antigravity-GF3RU42A.js.map} +0 -0
- /package/dist/{antigravity-cli-LN25XGWX.js.map → antigravity-cli-OH27IFH5.js.map} +0 -0
- /package/dist/{chunk-BZOOVTFG.js.map → chunk-7CZKXXBD.js.map} +0 -0
- /package/dist/{chunk-LBOGRZGY.js.map → chunk-ALVXORZM.js.map} +0 -0
- /package/dist/{chunk-WOUGWPZQ.js.map → chunk-AXAHW2KU.js.map} +0 -0
- /package/dist/{chunk-RFYQXT7C.js.map → chunk-CSRBMJLU.js.map} +0 -0
- /package/dist/{chunk-ZQCT63JU.js.map → chunk-D6ZJS4ND.js.map} +0 -0
- /package/dist/{chunk-NFMHYIN2.js.map → chunk-E45SUUD7.js.map} +0 -0
- /package/dist/{chunk-C3TFA4CJ.js.map → chunk-F5COBB5F.js.map} +0 -0
- /package/dist/{chunk-QP35SRUZ.js.map → chunk-GCRRX4MO.js.map} +0 -0
- /package/dist/{chunk-AEQRMVRB.js.map → chunk-IU42THN7.js.map} +0 -0
- /package/dist/{chunk-FVARNRCE.js.map → chunk-IZ4XQ23W.js.map} +0 -0
- /package/dist/{chunk-IDKI42JW.js.map → chunk-LS65GL2P.js.map} +0 -0
- /package/dist/{chunk-KAEYJGK7.js.map → chunk-NXR4HM5N.js.map} +0 -0
- /package/dist/{chunk-AAOYOAQT.js.map → chunk-P5KA5NVR.js.map} +0 -0
- /package/dist/{chunk-GI4FDVWI.js.map → chunk-RHML2NOB.js.map} +0 -0
- /package/dist/{chunk-O4BKQSPP.js.map → chunk-RQCBBLTA.js.map} +0 -0
- /package/dist/{chunk-3QCDVSMX.js.map → chunk-TZ5KGCE2.js.map} +0 -0
- /package/dist/{chunk-JZIM33C2.js.map → chunk-UVBAH263.js.map} +0 -0
- /package/dist/{chunk-RGQTN7K3.js.map → chunk-ZEFUDBTY.js.map} +0 -0
- /package/dist/{chunk-O3HIYTBK.js.map → chunk-ZSMGHEB5.js.map} +0 -0
- /package/dist/{claude-code-GCXXEWUN.js.map → claude-code-WLN43K7I.js.map} +0 -0
- /package/dist/{cline-KHZLG7CU.js.map → cline-PEGTGVQD.js.map} +0 -0
- /package/dist/{codebuff-EQGWZEP4.js.map → codebuff-UG6LVSOM.js.map} +0 -0
- /package/dist/{codex-7X7RC6JJ.js.map → codex-4LVDQXCD.js.map} +0 -0
- /package/dist/{continue-V4MB3WQ3.js.map → continue-DYV5V55Y.js.map} +0 -0
- /package/dist/{crush-3AAA75C5.js.map → crush-PP4HYZLT.js.map} +0 -0
- /package/dist/{cursor-DTYZROKS.js.map → cursor-XMXOZKAP.js.map} +0 -0
- /package/dist/{detect-LWZEM7SN.js.map → detect-IZOWP5AA.js.map} +0 -0
- /package/dist/{doctor-54P4JFA6.js.map → doctor-5IVUQ2YH.js.map} +0 -0
- /package/dist/{droid-QMNO5WZ2.js.map → droid-ETNOUIPJ.js.map} +0 -0
- /package/dist/{gemini-cli-7JU7ZWQL.js.map → gemini-cli-P7XJXWVH.js.map} +0 -0
- /package/dist/{goose-36TJNDKD.js.map → goose-UZVA6MQC.js.map} +0 -0
- /package/dist/{hermes-S4JZ6H42.js.map → hermes-IC6R4CII.js.map} +0 -0
- /package/dist/{hook-UT3Q43AB.js.map → hook-7IUPIHCZ.js.map} +0 -0
- /package/dist/{install-F4OIDYAK.js.map → install-EP6GPQ65.js.map} +0 -0
- /package/dist/{kilo-WLZOYKZK.js.map → kilo-CCB34CQQ.js.map} +0 -0
- /package/dist/{kilo-cli-FBX4OFIZ.js.map → kilo-cli-EOMN3WC7.js.map} +0 -0
- /package/dist/{kimi-7YXRAQ6Z.js.map → kimi-GUSJME55.js.map} +0 -0
- /package/dist/{kiro-CSBQA6EX.js.map → kiro-6OHZ5RGV.js.map} +0 -0
- /package/dist/{leaderboard-ZIAXBUWD.js.map → leaderboard-6I2E5XZK.js.map} +0 -0
- /package/dist/{mimo-code-GYJNEULG.js.map → mimo-code-ZPJJ6IIW.js.map} +0 -0
- /package/dist/{mux-DAIC3VY7.js.map → mux-AFTVMGGM.js.map} +0 -0
- /package/dist/{nemoclaw-GS3XA7V2.js.map → nemoclaw-D5EN4G2Q.js.map} +0 -0
- /package/dist/{omp-O6KNB4MM.js.map → omp-GKI2PZ7G.js.map} +0 -0
- /package/dist/{openclaw-344VBMLY.js.map → openclaw-A76PCNBV.js.map} +0 -0
- /package/dist/{opencode-JPHRZPDQ.js.map → opencode-M34E6PI7.js.map} +0 -0
- /package/dist/{package-5FRMSWRT.js.map → package-BWLV24OO.js.map} +0 -0
- /package/dist/{pi-EFBTBI2B.js.map → pi-HVG6ZWFE.js.map} +0 -0
- /package/dist/{qwen-code-CLSMTMHX.js.map → qwen-code-OWLM3I5P.js.map} +0 -0
- /package/dist/{roo-code-YIX3RPR2.js.map → roo-code-RFKKTNNI.js.map} +0 -0
- /package/dist/{serve-NQBXN4FG.js.map → serve-CM4HZPMP.js.map} +0 -0
- /package/dist/{status-5ZM6LXHV.js.map → status-BPB4VLQX.js.map} +0 -0
- /package/dist/{statusline-O76BCBUK.js.map → statusline-HIKR2I4Q.js.map} +0 -0
- /package/dist/{telemetry-NO7UUUSJ.js.map → telemetry-SBVUJYNE.js.map} +0 -0
- /package/dist/{trae-JESXQKAF.js.map → trae-FVHQALK3.js.map} +0 -0
- /package/dist/{upgrade-KJ4QRZDZ.js.map → upgrade-6XIGSPGY.js.map} +0 -0
- /package/dist/{usage-UY6DCND6.js.map → usage-IBN36ZVW.js.map} +0 -0
- /package/dist/{usage-event-T4HWQDZF.js.map → usage-event-4RJP37K6.js.map} +0 -0
- /package/dist/{vscode-copilot-56USZ5X4.js.map → vscode-copilot-6FLDRTKV.js.map} +0 -0
- /package/dist/{warp-Y6JNLLGR.js.map → warp-7CC52UJV.js.map} +0 -0
- /package/dist/{windsurf-X7QCJ3XR.js.map → windsurf-6ZLQMBQW.js.map} +0 -0
- /package/dist/{zed-L3ML5MHF.js.map → zed-FULJMNBV.js.map} +0 -0
|
@@ -17,15 +17,15 @@ import {
|
|
|
17
17
|
renderCommandMd,
|
|
18
18
|
renderSkillMd,
|
|
19
19
|
upsertInObjectMap
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-RHML2NOB.js";
|
|
21
21
|
import {
|
|
22
22
|
buildHomeBinHookCommand,
|
|
23
23
|
buildWrappedStdio
|
|
24
24
|
} from "./chunk-TO57WYBB.js";
|
|
25
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-ALVXORZM.js";
|
|
26
26
|
import {
|
|
27
27
|
ensureDir
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-2HCJV6UO.js";
|
|
29
29
|
|
|
30
30
|
// src/adapters/codex/index.ts
|
|
31
31
|
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
@@ -763,4 +763,4 @@ export {
|
|
|
763
763
|
adapter,
|
|
764
764
|
codex_default as default
|
|
765
765
|
};
|
|
766
|
-
//# sourceMappingURL=codex-
|
|
766
|
+
//# sourceMappingURL=codex-4LVDQXCD.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
readYaml,
|
|
4
4
|
writeYaml
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-IU42THN7.js";
|
|
6
6
|
import {
|
|
7
7
|
extractSessionId,
|
|
8
8
|
normalizeSessionSource,
|
|
@@ -13,14 +13,14 @@ import {
|
|
|
13
13
|
} from "./chunk-DBQMX75U.js";
|
|
14
14
|
import {
|
|
15
15
|
BaseAdapter
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-RHML2NOB.js";
|
|
17
17
|
import {
|
|
18
18
|
buildHomeBinHookCommand,
|
|
19
19
|
buildWrappedStdio,
|
|
20
20
|
isHomeBinHookCommand
|
|
21
21
|
} from "./chunk-TO57WYBB.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-ALVXORZM.js";
|
|
23
|
+
import "./chunk-2HCJV6UO.js";
|
|
24
24
|
|
|
25
25
|
// src/adapters/continue/index.ts
|
|
26
26
|
import { existsSync, statSync } from "fs";
|
|
@@ -769,4 +769,4 @@ export {
|
|
|
769
769
|
adapter,
|
|
770
770
|
continue_default as default
|
|
771
771
|
};
|
|
772
|
-
//# sourceMappingURL=continue-
|
|
772
|
+
//# sourceMappingURL=continue-DYV5V55Y.js.map
|
|
@@ -9,14 +9,14 @@ import {
|
|
|
9
9
|
BaseAdapter,
|
|
10
10
|
renderSkillMd,
|
|
11
11
|
renderSubagentMd
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-RHML2NOB.js";
|
|
13
13
|
import {
|
|
14
14
|
buildHomeBinHookCommand,
|
|
15
15
|
buildWrappedStdio,
|
|
16
16
|
isHomeBinHookCommand
|
|
17
17
|
} from "./chunk-TO57WYBB.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-ALVXORZM.js";
|
|
19
|
+
import "./chunk-2HCJV6UO.js";
|
|
20
20
|
|
|
21
21
|
// src/adapters/copilot-cli/index.ts
|
|
22
22
|
import { existsSync } from "fs";
|
|
@@ -25,6 +25,16 @@ import { join } from "path";
|
|
|
25
25
|
var HOST = "copilot-cli";
|
|
26
26
|
var MCP_ROOT_KEY = "mcpServers";
|
|
27
27
|
var COPILOT_HOOKS_VERSION = 1;
|
|
28
|
+
var EVENT_WIRE_KEY = {
|
|
29
|
+
SessionStart: "sessionStart",
|
|
30
|
+
SessionEnd: "sessionEnd",
|
|
31
|
+
UserPromptSubmit: "userPromptSubmitted",
|
|
32
|
+
PreToolUse: "preToolUse",
|
|
33
|
+
PostToolUse: "postToolUse",
|
|
34
|
+
PreCompact: "preCompact",
|
|
35
|
+
Stop: "agentStop",
|
|
36
|
+
SubagentStop: "subagentStop"
|
|
37
|
+
};
|
|
28
38
|
var EVENT_CAPABILITY = {
|
|
29
39
|
SessionStart: "sessionStart",
|
|
30
40
|
SessionEnd: "sessionEnd",
|
|
@@ -50,22 +60,30 @@ var CopilotCliAdapter = class extends BaseAdapter {
|
|
|
50
60
|
// Memory surface: AGENTS.md-first managed block (project <projectDir>/AGENTS.md
|
|
51
61
|
// via the base default; user scope → ~/.copilot/copilot-instructions.md below).
|
|
52
62
|
supportsMemory: true,
|
|
53
|
-
// Copilot CLI
|
|
63
|
+
// Copilot CLI's file-hook loader (1.0.63) accepts exactly these of the
|
|
64
|
+
// canonical lifecycle events — every one is a member of its hardcoded
|
|
65
|
+
// camelCase validator Set (see EVENT_WIRE_KEY).
|
|
54
66
|
preToolUse: true,
|
|
55
67
|
postToolUse: true,
|
|
56
68
|
preCompact: true,
|
|
57
69
|
sessionStart: true,
|
|
58
70
|
sessionEnd: true,
|
|
59
71
|
userPromptSubmit: true,
|
|
72
|
+
// → wire key userPromptSubmitted
|
|
60
73
|
stop: true,
|
|
61
|
-
|
|
62
|
-
// Newer events — Copilot CLI has native analogs for all four:
|
|
63
|
-
// permissionRequest (decision control), postToolUseFailure (recovery
|
|
64
|
-
// guidance), subagentStart (context-only), subagentStop (blockable).
|
|
65
|
-
permissionRequest: true,
|
|
66
|
-
postToolUseFailure: true,
|
|
67
|
-
subagentStart: true,
|
|
74
|
+
// → wire key agentStop
|
|
68
75
|
subagentStop: true,
|
|
76
|
+
// DEMOTED — NOT in the installed CLI 1.0.63 file-hook validator Set, so a
|
|
77
|
+
// hooks-file key for any of these is silently dropped and never fires:
|
|
78
|
+
// notification, permissionRequest, subagentStart, postToolUseFailure.
|
|
79
|
+
// (The github/docs `main` hooks-reference describes them for a NEWER CLI;
|
|
80
|
+
// re-promote per-event once a verified bundle ships them in the Set — until
|
|
81
|
+
// then the fail-safe is false so installHooks warn-skips instead of writing
|
|
82
|
+
// a dead key.)
|
|
83
|
+
notification: false,
|
|
84
|
+
permissionRequest: false,
|
|
85
|
+
postToolUseFailure: false,
|
|
86
|
+
subagentStart: false,
|
|
69
87
|
// PreToolUse is fail-closed and can rewrite tool input (updatedInput); a
|
|
70
88
|
// PostToolUse hook cannot rewrite already-emitted tool output.
|
|
71
89
|
canModifyArgs: true,
|
|
@@ -80,12 +98,13 @@ var CopilotCliAdapter = class extends BaseAdapter {
|
|
|
80
98
|
supportsCommands: false,
|
|
81
99
|
supportsSkills: true,
|
|
82
100
|
supportsSubagents: true,
|
|
83
|
-
// Native passthrough: Copilot CLI
|
|
84
|
-
//
|
|
85
|
-
// below the >=3-host core bar (docs/research/host-specific-hook-events-design.md).
|
|
101
|
+
// Native passthrough: Copilot CLI has an `errorOccurred` lifecycle event (a
|
|
102
|
+
// member of the camelCase validator Set) with NO canonical HookEventName
|
|
103
|
+
// analog — below the >=3-host core bar (docs/research/host-specific-hook-events-design.md).
|
|
86
104
|
// A connector reaches it via platforms["copilot-cli"].nativeHooks; installHooks
|
|
87
|
-
// files the event-name key VERBATIM
|
|
88
|
-
// the
|
|
105
|
+
// files the event-name key VERBATIM (the author must supply the CLI's exact
|
|
106
|
+
// camelCase key, e.g. `errorOccurred` — the loader drops unknown keys) with
|
|
107
|
+
// the same home-bin command shape, and the generic uninstall reverses it.
|
|
89
108
|
supportsNativeHooks: true
|
|
90
109
|
};
|
|
91
110
|
// ── Detection ────────────────────────────────────────────────────────────
|
|
@@ -240,11 +259,20 @@ var CopilotCliAdapter = class extends BaseAdapter {
|
|
|
240
259
|
});
|
|
241
260
|
continue;
|
|
242
261
|
}
|
|
243
|
-
const copilotEvent = event;
|
|
262
|
+
const copilotEvent = EVENT_WIRE_KEY[event];
|
|
263
|
+
if (copilotEvent === void 0) {
|
|
264
|
+
changes.push({
|
|
265
|
+
platform: this.id,
|
|
266
|
+
action: "warn",
|
|
267
|
+
path: hooksPath,
|
|
268
|
+
detail: `${event} unsupported on copilot-cli \u2014 skipped`
|
|
269
|
+
});
|
|
270
|
+
continue;
|
|
271
|
+
}
|
|
244
272
|
const command = buildHomeBinHookCommand(ctx.homeBinPath, HOST, event, connector.id);
|
|
245
|
-
const matcher = connector.hooks[event]?.matcher
|
|
273
|
+
const matcher = connector.hooks[event]?.matcher;
|
|
246
274
|
const entry = {
|
|
247
|
-
matcher,
|
|
275
|
+
...matcher ? { matcher } : {},
|
|
248
276
|
hooks: [{ type: "command", command }]
|
|
249
277
|
};
|
|
250
278
|
const bucket = hooks[copilotEvent] ??= [];
|
|
@@ -279,8 +307,9 @@ var CopilotCliAdapter = class extends BaseAdapter {
|
|
|
279
307
|
}
|
|
280
308
|
for (const nativeEvent of nativeEvents) {
|
|
281
309
|
const command = buildHomeBinHookCommand(ctx.homeBinPath, HOST, nativeEvent, connector.id);
|
|
310
|
+
const matcher = nativeHooks[nativeEvent]?.matcher;
|
|
282
311
|
const entry = {
|
|
283
|
-
matcher
|
|
312
|
+
...matcher ? { matcher } : {},
|
|
284
313
|
hooks: [{ type: "command", command }]
|
|
285
314
|
};
|
|
286
315
|
const bucket = hooks[nativeEvent] ??= [];
|
|
@@ -344,7 +373,7 @@ var CopilotCliAdapter = class extends BaseAdapter {
|
|
|
344
373
|
const innerBefore = e.hooks?.length ?? 0;
|
|
345
374
|
const inner = (e.hooks ?? []).filter((h) => !this.isOurCommand(h.command, ctx));
|
|
346
375
|
removed += innerBefore - inner.length;
|
|
347
|
-
if (inner.length > 0) next.push({ matcher: e.matcher
|
|
376
|
+
if (inner.length > 0) next.push({ ...e.matcher ? { matcher: e.matcher } : {}, hooks: inner });
|
|
348
377
|
}
|
|
349
378
|
if (removed > 0) {
|
|
350
379
|
if (next.length > 0) hooks[copilotEvent] = next;
|
|
@@ -358,7 +387,13 @@ var CopilotCliAdapter = class extends BaseAdapter {
|
|
|
358
387
|
mutated = true;
|
|
359
388
|
}
|
|
360
389
|
}
|
|
361
|
-
if (mutated)
|
|
390
|
+
if (mutated) {
|
|
391
|
+
if (Object.keys(hooks).length === 0) {
|
|
392
|
+
this.removeManagedFile(hooksPath, ctx.dryRun);
|
|
393
|
+
} else {
|
|
394
|
+
this.writeJson(hooksPath, file, ctx.dryRun);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
362
397
|
if (changes.length === 0) {
|
|
363
398
|
changes.push({
|
|
364
399
|
platform: this.id,
|
|
@@ -741,4 +776,4 @@ export {
|
|
|
741
776
|
adapter,
|
|
742
777
|
copilot_cli_default as default
|
|
743
778
|
};
|
|
744
|
-
//# sourceMappingURL=copilot-cli-
|
|
779
|
+
//# sourceMappingURL=copilot-cli-NVFXFLUF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/adapters/copilot-cli/index.ts"],"sourcesContent":["/**\n * adapters/copilot-cli — GitHub Copilot CLI platform adapter for agent-connector.\n *\n * GitHub Copilot CLI is a json-stdio host: the host pipes a JSON payload to a\n * hook command on stdin and reads JSON/exit-code back. Its reply shape is\n * Claude-compatible (`hookSpecificOutput` wrapper), but its hooks-file event\n * KEYS are NOT — the CLI's loader honors ONLY a fixed set of lowerCamelCase\n * keys and SILENTLY DROPS anything else (see EVENT_WIRE_KEY below), so a\n * PascalCase→camelCase rename table IS required when writing the config.\n *\n * Native config (user/global only — Copilot CLI has no project-scoped config):\n * - MCP servers: ~/.copilot/mcp-config.json, root key \"mcpServers\". An stdio\n * server is written with type \"local\" (the host also accepts \"stdio\") plus\n * `tools: [\"*\"]`. Remote servers use type \"http\".\n * - Hooks: a hooks file shaped `{ version: 1, hooks: { … } }` discovered from\n * ~/.copilot/hooks/*.json. We write a single dedicated file,\n * ~/.copilot/hooks/agent-connector.json, so we never disturb a user's own\n * hook files and removal is a clean, scoped operation. Each event maps to an\n * array of flat command entries `{ matcher?, hooks: [{ type:\"command\", command }] }`\n * keyed by the CLI's lowerCamelCase wire name (EVENT_WIRE_KEY).\n * - Reply: a `hookSpecificOutput` object keyed by `hookEventName` carrying\n * `permissionDecision` (allow|deny|ask) + `permissionDecisionReason`,\n * `additionalContext`, and (PreToolUse) `updatedInput`. PreToolUse is\n * fail-closed on the host side; exit 0 + JSON refines the decision.\n *\n * Env handling: the host is not documented to support `${env:VAR}` interpolation\n * inside mcp-config.json, so env/header/url refs are resolved to literals at\n * install time via resolveEnvRefsDeep (the safe default for a no-native-interp\n * host, matching the Codex adapter's approach).\n *\n * Content surfaces (surfaces-design §4-5): Copilot CLI exposes skills and\n * subagents but NO prompt-file command surface, so commands inherit the\n * BaseAdapter skip/warn default (supportsCommands stays false).\n * - skills: folder-per-skill `<dir>/skills/<name>/SKILL.md` (+ resource files).\n * user scope → ~/.copilot/skills; project scope → <projectDir>/.github/skills.\n * - subagents: user scope → ~/.copilot/agents/<name>.agent.md; project scope →\n * <projectDir>/.github/agents/<name>.agent.md (md + frontmatter:\n * name, description, tools, model).\n * The .github/ tree is shared with the vscode-copilot and jetbrains-copilot\n * connectors; we write identical, idempotent content and on uninstall remove\n * only the files this connector wrote.\n *\n * Grounded in docs/research/understand-report.md §2 (Platform Integration\n * Matrix, \"GitHub Copilot CLI\" row).\n */\n\nimport { existsSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\n\nimport { BaseAdapter } from \"../base.js\";\nimport type { Adapter, HookReply, InstallContext, MemoryTarget, NormalizedEvent } from \"../spi.js\";\nimport type {\n ChangeRecord,\n DetectedPlatform,\n HealthCheck,\n HookEventName,\n HookParadigm,\n HookResponse,\n NotificationEvent,\n PermissionRequestEvent,\n PlatformCapabilities,\n PlatformId,\n PostToolUseEvent,\n PostToolUseFailureEvent,\n PostCompactEvent,\n PreCompactEvent,\n PreToolUseEvent,\n ServerDef,\n SessionEndEvent,\n SessionStartEvent,\n StopEvent,\n SubagentStartEvent,\n SubagentStopEvent,\n Transport,\n UserPromptSubmitEvent,\n} from \"../../core/types.js\";\nimport { resolveEnvRefsDeep } from \"../../core/interpolate.js\";\nimport {\n buildHomeBinHookCommand,\n buildWrappedStdio,\n isHomeBinHookCommand,\n} from \"../../core/spawn.js\";\nimport { renderSkillMd, renderSubagentMd } from \"../claude-code/render.js\";\nimport { normalizeSessionSource } from \"../claude-code/wire.js\";\n\nconst HOST: PlatformId = \"copilot-cli\";\nconst MCP_ROOT_KEY = \"mcpServers\";\n\n/** Native hooks-file version Copilot CLI expects (`{ version: 1, hooks: {…} }`). */\nconst COPILOT_HOOKS_VERSION = 1;\n\n/**\n * EVENT→WIRE-KEY map for the hooks file. VERIFIED against the installed GitHub\n * Copilot CLI 1.0.63 bundle (app.js): the hook loader validates every\n * `config.hooks` key against a hardcoded Set of NINE lowerCamelCase event names —\n * { sessionStart, sessionEnd, userPromptSubmitted, preToolUse, postToolUse,\n * errorOccurred, agentStop, subagentStop, preCompact }\n * — and any key NOT in that Set is SILENTLY DROPPED (logged only at debug:\n * \"Ignoring unknown hook event(s)\"). The Zod hooks schema defines the same nine\n * camelCase keys and nothing else. So a PascalCase key like `PreToolUse` never\n * registers → the hook NEVER FIRES. We therefore key the file by the camelCase\n * WIRE name, NOT the PascalCase HookEventName.\n *\n * Two mappings are NOT a naive lowercase-first-letter: Claude's `Stop` is the\n * CLI's `agentStop`, and `UserPromptSubmit` is `userPromptSubmitted`. The rest\n * are first-letter-lowercased. (PascalCase aliases are documented for a newer\n * CLI that selects the snake_case payload dialect, but they are unknown to the\n * loader in 1.0.63 and dropped — camelCase is the only safe wire form here.)\n *\n * Only events Copilot CLI's loader actually accepts appear here. Events the\n * installed loader has no file-hook key for (Notification, PermissionRequest,\n * SubagentStart, PostToolUseFailure) are demoted on `capabilities` and warn-skip\n * at install — they are NOT in this map.\n */\nconst EVENT_WIRE_KEY: Partial<Record<HookEventName, string>> = {\n SessionStart: \"sessionStart\",\n SessionEnd: \"sessionEnd\",\n UserPromptSubmit: \"userPromptSubmitted\",\n PreToolUse: \"preToolUse\",\n PostToolUse: \"postToolUse\",\n PreCompact: \"preCompact\",\n Stop: \"agentStop\",\n SubagentStop: \"subagentStop\",\n};\n\n/**\n * CAPABILITY FILTER for installHooks — maps each canonical HookEventName to the\n * `capabilities` flag that gates it. The adapter's `capabilities` literal is the\n * single source of truth for what Copilot CLI's runtime actually fires; declared\n * events (connector.hookEvents is the connector-level set, NOT pre-filtered by\n * host) are screened through this map so an unsupported event — Copilot CLI has\n * NO post-compaction hook, so `postCompact` stays unset — is reported as a\n * graceful warn/skip instead of being written as a dead `hooks.PostCompact` the\n * host would never fire. Same shape as the goose adapter's EVENT_CAPABILITY.\n */\nconst EVENT_CAPABILITY: Record<HookEventName, keyof PlatformCapabilities> = {\n SessionStart: \"sessionStart\",\n SessionEnd: \"sessionEnd\",\n UserPromptSubmit: \"userPromptSubmit\",\n PreToolUse: \"preToolUse\",\n PostToolUse: \"postToolUse\",\n PreCompact: \"preCompact\",\n Stop: \"stop\",\n Notification: \"notification\",\n PermissionRequest: \"permissionRequest\",\n PostToolUseFailure: \"postToolUseFailure\",\n SubagentStart: \"subagentStart\",\n SubagentStop: \"subagentStop\",\n // Copilot CLI has no post-compaction hook — postCompact stays unset on\n // `capabilities`, so a declared PostCompact warn-skips at install.\n PostCompact: \"postCompact\",\n};\n\n/**\n * A single Copilot CLI hook registration entry (Claude-shaped).\n *\n * `matcher` is OPTIONAL and, when present, MUST be non-empty. Copilot CLI's\n * hooks schema is `matcher: z.string().min(1).optional()` (live-verified on CLI\n * 1.0.63): an OMITTED matcher passes validation, but an EMPTY STRING fails it —\n * the loader logs \"Invalid hook configuration … matcher cannot be empty\" and\n * DISCARDS THE ENTIRE hook file, registering zero hooks. So we OMIT the key\n * entirely when there is no matcher and emit it only when non-empty; we must\n * never write `matcher: \"\"`.\n */\ninterface CopilotHookEntry {\n matcher?: string;\n hooks: Array<{ type: \"command\"; command: string }>;\n}\n\n/** The shape of the Copilot CLI hooks file we own. */\ninterface CopilotHooksFile {\n version?: number;\n hooks?: Record<string, CopilotHookEntry[]>;\n}\n\n/** Native MCP server entry shapes Copilot CLI accepts under `mcpServers`. */\ninterface CopilotLocalServer {\n /** stdio transport is registered as type \"local\" (host also accepts \"stdio\"). */\n type: \"local\";\n command: string;\n args?: string[];\n env?: Record<string, string>;\n cwd?: string;\n tools: string[];\n}\ninterface CopilotHttpServer {\n /** Remote transport: \"http\" (Streamable HTTP) or \"sse\" (legacy). */\n type: \"http\" | \"sse\";\n url: string;\n headers?: Record<string, string>;\n tools: string[];\n}\n\n/** Raw Copilot CLI hook stdin payload (Claude-style: PascalCase event, snake_case fields). */\ninterface CopilotWireInput {\n connector?: unknown;\n session_id?: string;\n transcript_path?: string;\n cwd?: string;\n hook_event_name?: string;\n\n // tool events\n tool_name?: string;\n tool_input?: Record<string, unknown>;\n // PostToolUse (VS Code-compatible dialect): the tool result rides under\n // `tool_result`, NOT `tool_response`. PostToolUse fires success-only, so\n // result_type is always \"success\" (hooks-reference.md:397-400).\n tool_result?: { result_type?: string; text_result_for_llm?: string };\n\n // SessionStart\n source?: string;\n // SessionEnd\n reason?: string;\n // UserPromptSubmit\n prompt?: string;\n // PreCompact\n trigger?: string;\n // Notification\n message?: string;\n\n // PostToolUseFailure — payload is {tool_name, tool_input, error} + base\n // (hooks-reference.md:421-430). No tool_use_id/is_interrupt/duration_ms.\n error?: string;\n\n // SubagentStart / SubagentStop — VS Code dialect identity is `agent_name`\n // (+ optional `agent_display_name`); there is no agent_id/agent_type\n // (hooks-reference.md:467-476,497-507).\n agent_name?: string;\n agent_display_name?: string;\n}\n\nexport class CopilotCliAdapter extends BaseAdapter implements Adapter {\n readonly id: PlatformId = HOST;\n readonly name = \"GitHub Copilot CLI\";\n readonly paradigm: HookParadigm = \"json-stdio\";\n\n readonly capabilities: PlatformCapabilities = {\n // Memory surface: AGENTS.md-first managed block (project <projectDir>/AGENTS.md\n // via the base default; user scope → ~/.copilot/copilot-instructions.md below).\n supportsMemory: true,\n // Copilot CLI's file-hook loader (1.0.63) accepts exactly these of the\n // canonical lifecycle events — every one is a member of its hardcoded\n // camelCase validator Set (see EVENT_WIRE_KEY).\n preToolUse: true,\n postToolUse: true,\n preCompact: true,\n sessionStart: true,\n sessionEnd: true,\n userPromptSubmit: true, // → wire key userPromptSubmitted\n stop: true, // → wire key agentStop\n subagentStop: true,\n // DEMOTED — NOT in the installed CLI 1.0.63 file-hook validator Set, so a\n // hooks-file key for any of these is silently dropped and never fires:\n // notification, permissionRequest, subagentStart, postToolUseFailure.\n // (The github/docs `main` hooks-reference describes them for a NEWER CLI;\n // re-promote per-event once a verified bundle ships them in the Set — until\n // then the fail-safe is false so installHooks warn-skips instead of writing\n // a dead key.)\n notification: false,\n permissionRequest: false,\n postToolUseFailure: false,\n subagentStart: false,\n // PreToolUse is fail-closed and can rewrite tool input (updatedInput); a\n // PostToolUse hook cannot rewrite already-emitted tool output.\n canModifyArgs: true,\n canModifyOutput: false,\n canInjectSessionContext: true,\n // Copilot CLI's mcp-config.json `type` accepts stdio (written \"local\"),\n // http (Streamable HTTP), and sse (legacy) — per GitHub's add-mcp-servers docs.\n transports: [\"stdio\", \"http\", \"sse\"],\n // Content surfaces: Copilot CLI exposes skills + subagents, but has no\n // prompt-file command surface, so commands stay false (inherits BaseAdapter\n // skip/warn).\n supportsCommands: false,\n supportsSkills: true,\n supportsSubagents: true,\n // Native passthrough: Copilot CLI has an `errorOccurred` lifecycle event (a\n // member of the camelCase validator Set) with NO canonical HookEventName\n // analog — below the >=3-host core bar (docs/research/host-specific-hook-events-design.md).\n // A connector reaches it via platforms[\"copilot-cli\"].nativeHooks; installHooks\n // files the event-name key VERBATIM (the author must supply the CLI's exact\n // camelCase key, e.g. `errorOccurred` — the loader drops unknown keys) with\n // the same home-bin command shape, and the generic uninstall reverses it.\n supportsNativeHooks: true,\n };\n\n // ── Detection ────────────────────────────────────────────────────────────\n\n detectInstalled(_projectDir: string): DetectedPlatform {\n const userDir = join(homedir(), \".copilot\");\n const mcpConfig = join(userDir, \"mcp-config.json\");\n const hooksDir = join(userDir, \"hooks\");\n const installed =\n existsSync(userDir) || existsSync(mcpConfig) || existsSync(hooksDir);\n return {\n id: this.id,\n name: this.name,\n installed,\n paradigm: this.paradigm,\n capabilities: this.capabilities,\n configPath: mcpConfig,\n scope: \"user\",\n reason: installed\n ? `found GitHub Copilot CLI config under ${userDir}`\n : `no GitHub Copilot CLI config at ${userDir}`,\n confidence: installed ? \"high\" : \"low\",\n };\n }\n\n // ── Memory surface: user-scope global instructions file ─────────────────\n // Project scope stays on the AGENTS.md base default (root AGENTS.md is the\n // primary instructions file). User scope targets Copilot CLI's documented\n // $HOME/.copilot/copilot-instructions.md — a markdown file shared with other\n // writers, so the managed block (not whole-file ownership) applies as usual.\n protected override memoryTargets(ctx: InstallContext): MemoryTarget[] {\n if (this.memoryOverride(ctx)?.path || ctx.scope !== \"user\") {\n return super.memoryTargets(ctx);\n }\n return [\n {\n path: join(homedir(), \".copilot\", \"copilot-instructions.md\"),\n reason: \"copilot-cli global instructions (~/.copilot/copilot-instructions.md)\",\n },\n ];\n }\n\n // ── Native paths ─────────────────────────────────────────────────────────\n\n /** Copilot CLI is user/global only — scope is ignored. */\n getConfigDir(_ctx: InstallContext): string {\n return join(homedir(), \".copilot\");\n }\n\n getServerConfigPath(ctx: InstallContext): string {\n return join(this.getConfigDir(ctx), \"mcp-config.json\");\n }\n\n /**\n * Copilot CLI discovers hooks from any `~/.copilot/hooks/*.json`. We write a\n * single dedicated file so we never disturb the user's own hook files and\n * uninstall is a clean, scoped operation.\n */\n getHookConfigPath(ctx: InstallContext): string {\n return join(this.getConfigDir(ctx), \"hooks\", \"agent-connector.json\");\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 copilot-cli\"\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 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 Copilot CLI's native mcpServers entry. */\n private renderServerEntry(\n ctx: InstallContext,\n server: ServerDef,\n ): CopilotLocalServer | CopilotHttpServer {\n const transport: Transport = server.transport;\n const tools = this.renderTools(server);\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 const entry: CopilotLocalServer = {\n type: \"local\",\n command: resolveEnvRefsDeep(command),\n tools,\n };\n if (args.length > 0) entry.args = args.map((a) => resolveEnvRefsDeep(a));\n const env = this.renderEnv(server.env);\n if (env) entry.env = env;\n if (server.cwd) entry.cwd = resolveEnvRefsDeep(server.cwd);\n return entry;\n }\n\n // remote (Streamable http / legacy sse) — Copilot registers a URL keyed by\n // its `type`. AC's canonical \"sse\" → \"sse\"; everything else → \"http\".\n const entry: CopilotHttpServer = {\n type: server.transport === \"sse\" ? \"sse\" : \"http\",\n url: resolveEnvRefsDeep(server.url ?? \"\"),\n tools,\n };\n const headers = this.renderEnv(server.headers);\n if (headers) entry.headers = headers;\n return entry;\n }\n\n /**\n * Render env/header values. Copilot CLI is not documented to support native\n * `${env:VAR}` interpolation in mcp-config.json, so refs resolve to literals\n * at install time (the safe default for a no-native-interp host).\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 /** Render the tool allow-list. Copilot CLI expects `tools` on every entry; default [\"*\"]. */\n private renderTools(server: ServerDef): string[] {\n const include = server.tools?.include;\n return include && include.length > 0 ? [...include] : [\"*\"];\n }\n\n // ── Hook install / uninstall ─────────────────────────────────────────────\n\n installHooks(ctx: InstallContext): ChangeRecord[] {\n const { connector } = ctx;\n const override = connector.platforms[HOST];\n const hooksDisabled = override?.hooks === false;\n // `hooks: false` disables only the NORMALIZED events; nativeHooks is a\n // sibling, copilot-cli-scoped declaration that installs regardless.\n const normalizedEvents = hooksDisabled ? [] : connector.hookEvents;\n const nativeHooks = override?.nativeHooks ?? {};\n const nativeEvents = Object.keys(nativeHooks);\n\n if (normalizedEvents.length === 0 && nativeEvents.length === 0) {\n return [\n {\n platform: this.id,\n action: \"skip\",\n detail: hooksDisabled\n ? \"hooks disabled for copilot-cli\"\n : \"connector declares no hooks\",\n },\n ];\n }\n\n const hooksPath = this.getHookConfigPath(ctx);\n const file = this.readJson<CopilotHooksFile>(hooksPath) ?? {};\n const __skip = this.malformedHookRootSkip(hooksPath, (file as Record<string, unknown>).hooks);\n if (__skip) return [__skip];\n const hooks = (file.hooks ??= {});\n\n const changes: ChangeRecord[] = [];\n let mutated = false;\n\n for (const event of normalizedEvents) {\n // CAPABILITY FILTER: an event Copilot CLI's runtime does not deliver (e.g.\n // PostCompact — postCompact unset on `capabilities`) must NOT be written as\n // a dead hook the host never fires; report a graceful warn/skip instead.\n if (this.capabilities[EVENT_CAPABILITY[event]] !== true) {\n changes.push({\n platform: this.id,\n action: \"warn\",\n path: hooksPath,\n detail: `${event} unsupported on copilot-cli — skipped`,\n });\n continue;\n }\n // Key the hooks file by the CLI's camelCase WIRE name — a PascalCase key\n // is silently dropped by the loader (see EVENT_WIRE_KEY). The home-bin\n // command keeps the PascalCase `event` token: that is the AC-internal\n // router event passed to parseEvent/formatReply, NOT a hooks-file key.\n const copilotEvent = EVENT_WIRE_KEY[event];\n if (copilotEvent === undefined) {\n // Defensive: a capability-flagged event with no wire key would write a\n // dead PascalCase key. Treat it like an unsupported event (warn-skip).\n changes.push({\n platform: this.id,\n action: \"warn\",\n path: hooksPath,\n detail: `${event} unsupported on copilot-cli — skipped`,\n });\n continue;\n }\n const command = buildHomeBinHookCommand(ctx.homeBinPath, HOST, event, connector.id);\n const matcher = connector.hooks[event]?.matcher;\n // OMIT the matcher key when there is none — Copilot CLI rejects an empty\n // string (matcher cannot be empty) and discards the whole hooks file.\n const entry: CopilotHookEntry = {\n ...(matcher ? { matcher } : {}),\n hooks: [{ type: \"command\", command }],\n };\n\n const bucket = (hooks[copilotEvent] ??= []);\n const existingIdx = bucket.findIndex((e) => this.entryHasOurCommand(e, ctx));\n\n if (existingIdx >= 0) {\n if (JSON.stringify(bucket[existingIdx]) === JSON.stringify(entry)) {\n changes.push({\n platform: this.id,\n action: \"skip\",\n path: hooksPath,\n detail: `hooks.${copilotEvent} already registered`,\n });\n continue;\n }\n bucket[existingIdx] = entry;\n changes.push({\n platform: this.id,\n action: \"update\",\n path: hooksPath,\n detail: `hooks.${copilotEvent}`,\n });\n } else {\n bucket.push(entry);\n changes.push({\n platform: this.id,\n action: \"create\",\n path: hooksPath,\n detail: `hooks.${copilotEvent}`,\n });\n }\n mutated = true;\n }\n\n // NATIVE passthrough events: copilot-cli-native event-name keys (e.g.\n // ErrorOccurred) filed VERBATIM into the hooks map — no EVENT_MAP, since they\n // ARE Copilot events. The command keeps the native token; matched by EXACT\n // command so a native key coinciding with a normalized one never clobbers it.\n for (const nativeEvent of nativeEvents) {\n const command = buildHomeBinHookCommand(ctx.homeBinPath, HOST, nativeEvent, connector.id);\n const matcher = nativeHooks[nativeEvent]?.matcher;\n // OMIT the matcher key when there is none (empty string fails validation).\n const entry: CopilotHookEntry = {\n ...(matcher ? { matcher } : {}),\n hooks: [{ type: \"command\", command }],\n };\n const bucket = (hooks[nativeEvent] ??= []);\n const existingIdx = bucket.findIndex((e) => e.hooks?.[0]?.command === command);\n if (existingIdx >= 0) {\n if (JSON.stringify(bucket[existingIdx]) === JSON.stringify(entry)) {\n changes.push({\n platform: this.id,\n action: \"skip\",\n path: hooksPath,\n detail: `hooks.${nativeEvent} (native) already registered`,\n });\n continue;\n }\n bucket[existingIdx] = entry;\n changes.push({\n platform: this.id,\n action: \"update\",\n path: hooksPath,\n detail: `hooks.${nativeEvent} (native)`,\n });\n } else {\n bucket.push(entry);\n changes.push({\n platform: this.id,\n action: \"create\",\n path: hooksPath,\n detail: `hooks.${nativeEvent} (native)`,\n });\n }\n mutated = true;\n }\n\n if (mutated) {\n file.version = COPILOT_HOOKS_VERSION;\n this.writeJson(hooksPath, file, ctx.dryRun);\n }\n return changes;\n }\n\n uninstallHooks(ctx: InstallContext): ChangeRecord[] {\n const hooksPath = this.getHookConfigPath(ctx);\n const file = this.readJson<CopilotHooksFile>(hooksPath);\n const hooks = file?.hooks;\n if (!file || !hooks) {\n return [\n {\n platform: this.id,\n action: \"skip\",\n path: hooksPath,\n detail: \"no hooks section present\",\n },\n ];\n }\n\n const changes: ChangeRecord[] = [];\n let mutated = false;\n\n for (const copilotEvent of Object.keys(hooks)) {\n const bucket = hooks[copilotEvent];\n if (!Array.isArray(bucket)) continue;\n\n // Strip our hook command from each entry; drop entries left empty so we\n // never remove another connector's (or the user's own) hook commands.\n const next: CopilotHookEntry[] = [];\n let removed = 0;\n for (const e of bucket) {\n const innerBefore = e.hooks?.length ?? 0;\n const inner = (e.hooks ?? []).filter((h) => !this.isOurCommand(h.command, ctx));\n removed += innerBefore - inner.length;\n // Preserve the entry's original matcher verbatim, but never synthesize an\n // empty string — Copilot CLI rejects `matcher: \"\"` (whole file discarded).\n if (inner.length > 0) next.push({ ...(e.matcher ? { matcher: e.matcher } : {}), hooks: inner });\n }\n\n if (removed > 0) {\n if (next.length > 0) hooks[copilotEvent] = next;\n else delete hooks[copilotEvent];\n changes.push({\n platform: this.id,\n action: \"remove\",\n path: hooksPath,\n detail: `hooks.${copilotEvent} (${removed})`,\n });\n mutated = true;\n }\n }\n\n if (mutated) {\n // When our uninstall empties the hooks map, delete this connector's\n // dedicated file rather than leaving an inert `{version:1,hooks:{}}` stub.\n // The file is owned solely by AC (see getHookConfigPath), so removing it on\n // full teardown is safe and keeps ~/.copilot/hooks clean.\n if (Object.keys(hooks).length === 0) {\n this.removeManagedFile(hooksPath, ctx.dryRun);\n } else {\n this.writeJson(hooksPath, file, ctx.dryRun);\n }\n }\n if (changes.length === 0) {\n changes.push({\n platform: this.id,\n action: \"skip\",\n path: hooksPath,\n detail: \"no matching hook entries\",\n });\n }\n return changes;\n }\n\n private entryHasOurCommand(entry: CopilotHookEntry, ctx: InstallContext): boolean {\n return (entry.hooks ?? []).some((h) => this.isOurCommand(h.command, ctx));\n }\n\n /** True when a hook command references our home binary AND this connector id\n * (anchored so a shared-prefix id can't collide — see isHomeBinHookCommand). */\n private isOurCommand(command: string | undefined, ctx: InstallContext): boolean {\n return isHomeBinHookCommand(command, ctx.homeBinPath, ctx.connector.id);\n }\n\n // ── Content surfaces: skills / subagents ─────────────────────────────────\n // CONTENT-ONLY: pure native-file writers. No runtime dispatch, no home-bin\n // pointer, no telemetry wrap. Each method is idempotent (byte-identical →\n // skip) via BaseAdapter.writeContentFile and reversible via removeContentFile.\n // Honors platforms[\"copilot-cli\"] per-surface false to skip. Commands are\n // unsupported here — they inherit the BaseAdapter skip/warn default.\n //\n // Path scoping: user scope lives under ~/.copilot (getConfigDir); project\n // scope lives under the shared <projectDir>/.github tree (the same files\n // vscode-copilot / jetbrains-copilot would write). We write identical content\n // and on uninstall remove only the files this connector wrote.\n\n /** Root dir for content surfaces: ~/.copilot (user) or <projectDir>/.github (project). */\n private contentDir(ctx: InstallContext): string {\n return ctx.scope === \"project\"\n ? join(ctx.projectDir, \".github\")\n : this.getConfigDir(ctx);\n }\n\n private skillsDir(ctx: InstallContext): string {\n return join(this.contentDir(ctx), \"skills\");\n }\n private agentsDir(ctx: InstallContext): string {\n return join(this.contentDir(ctx), \"agents\");\n }\n\n /** Native skill dir: <contentDir>/skills/<name>. */\n private skillDir(ctx: InstallContext, name: string): string {\n return join(this.skillsDir(ctx), name);\n }\n /** Native subagent file path: <contentDir>/agents/<name>.agent.md. */\n private subagentPath(ctx: InstallContext, name: string): string {\n return join(this.agentsDir(ctx), `${name}.agent.md`);\n }\n\n // ── Skills ────────────────────────────────────────────────────────────────\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 copilot-cli\" }];\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\"), renderSkillMd(skill), ctx.dryRun),\n );\n // Bundle any resource files beside SKILL.md (relative path → contents).\n // Defense-in-depth: skip+warn on any key that escapes the skill dir\n // (config-time validation already rejects these, but never trust input).\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 // Remove only the files we wrote (SKILL.md + declared resources), then the\n // skill dir itself when we own its full contents.\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; // never delete outside the skill dir\n changes.push(this.removeContentFile(target, ctx.dryRun));\n }\n // Only remove the skill dir when WE own its full contents — never rm -rf a\n // dir that still holds user-added / sibling-tool / shared files.\n changes.push(this.removeDirIfEmpty(dir, ctx.dryRun));\n }\n return changes;\n }\n\n // ── Subagents ───────────────────────────────────────────────────────────────\n\n override installSubagents(ctx: InstallContext): ChangeRecord[] {\n const { connector } = ctx;\n if (connector.platforms[HOST]?.subagents === false) {\n return [{ platform: this.id, action: \"skip\", detail: \"subagents disabled for copilot-cli\" }];\n }\n if (connector.subagents.length === 0) {\n return [{ platform: this.id, action: \"skip\", detail: \"connector declares no subagents\" }];\n }\n return connector.subagents.map((agent) =>\n this.writeContentFile(\n this.subagentPath(ctx, agent.name),\n renderSubagentMd(agent),\n ctx.dryRun,\n ),\n );\n }\n\n override uninstallSubagents(ctx: InstallContext): ChangeRecord[] {\n const { connector } = ctx;\n if (connector.subagents.length === 0) {\n return [{ platform: this.id, action: \"skip\", detail: \"connector declares no subagents\" }];\n }\n return connector.subagents.map((agent) =>\n this.removeContentFile(this.subagentPath(ctx, agent.name), ctx.dryRun),\n );\n }\n\n // ── Diagnostics ──────────────────────────────────────────────────────────\n\n override getHealthChecks(ctx: InstallContext): readonly HealthCheck[] {\n const mcpPath = this.getServerConfigPath(ctx);\n const hooksPath = this.getHookConfigPath(ctx);\n const connectorId = ctx.connector.id;\n const homeBin = ctx.homeBinPath;\n const hookEvents = ctx.connector.hookEvents;\n const checks: HealthCheck[] = [\n {\n name: `${this.name}: mcp-config.json present`,\n check: () =>\n existsSync(mcpPath)\n ? { status: \"OK\", detail: mcpPath }\n : { status: \"FAIL\", detail: `not found: ${mcpPath}` },\n },\n {\n name: `${this.name}: hook command registered`,\n check: () => {\n if (hookEvents.length === 0) {\n return { status: \"OK\", detail: \"no hooks declared\" };\n }\n const file = this.readJson<CopilotHooksFile>(hooksPath);\n if (!file) return { status: \"FAIL\", detail: `cannot read ${hooksPath}` };\n const hooks = file.hooks ?? {};\n const registered = Object.values(hooks).some((entries) =>\n (entries ?? []).some((e) =>\n (e.hooks ?? []).some((h) =>\n isHomeBinHookCommand(h.command, homeBin, connectorId),\n ),\n ),\n );\n return registered\n ? { status: \"OK\", detail: \"hook command present\" }\n : { status: \"FAIL\", detail: `no hook for ${connectorId} in ${hooksPath}` };\n },\n },\n ];\n\n // Content-surface checks: only assert presence of the surfaces this\n // connector declares (skip silently for surfaces it never asked for).\n // Commands are unsupported on Copilot CLI, so no command check.\n for (const skill of ctx.connector.skills) {\n const p = join(this.skillDir(ctx, skill.name), \"SKILL.md\");\n checks.push({\n name: `${this.name}: skill ${skill.name} present`,\n check: () =>\n existsSync(p) ? { status: \"OK\", detail: p } : { status: \"FAIL\", detail: `not found: ${p}` },\n });\n }\n for (const agent of ctx.connector.subagents) {\n const p = this.subagentPath(ctx, agent.name);\n checks.push({\n name: `${this.name}: subagent ${agent.name} present`,\n check: () =>\n existsSync(p) ? { status: \"OK\", detail: p } : { status: \"FAIL\", detail: `not found: ${p}` },\n });\n }\n return checks;\n }\n\n // ── Runtime: parse Copilot CLI stdin JSON → normalized event ─────────────\n\n parseEvent(event: HookEventName, raw: unknown): NormalizedEvent {\n const input = (raw ?? {}) as CopilotWireInput;\n const connectorId = typeof input.connector === \"string\" ? input.connector : \"\";\n const sessionId = extractSessionId(input);\n const projectDir = typeof input.cwd === \"string\" ? input.cwd : undefined;\n\n const base = {\n hostPlatform: HOST,\n connectorId,\n sessionId,\n raw,\n ...(projectDir !== undefined ? { projectDir } : {}),\n } as const;\n\n switch (event) {\n case \"PreToolUse\": {\n const ev: PreToolUseEvent = {\n ...base,\n toolName: input.tool_name ?? \"\",\n toolInput: input.tool_input ?? {},\n };\n return ev;\n }\n case \"PostToolUse\": {\n // PostToolUse fires success-only and carries the result under\n // `tool_result.text_result_for_llm` (VS Code dialect). Failures arrive\n // via the separate PostToolUseFailure event, so isError is never set\n // here (hooks-reference.md:219,397-400).\n const toolOutput = input.tool_result?.text_result_for_llm;\n const ev: PostToolUseEvent = {\n ...base,\n toolName: input.tool_name ?? \"\",\n toolInput: input.tool_input ?? {},\n ...(typeof toolOutput === \"string\" ? { toolOutput } : {}),\n };\n return ev;\n }\n case \"SessionStart\": {\n const ev: SessionStartEvent = {\n ...base,\n source: normalizeSessionSource(input.source),\n };\n return ev;\n }\n case \"SessionEnd\": {\n const ev: SessionEndEvent = {\n ...base,\n ...(typeof input.reason === \"string\" ? { reason: input.reason } : {}),\n };\n return ev;\n }\n case \"UserPromptSubmit\": {\n const ev: UserPromptSubmitEvent = {\n ...base,\n prompt: typeof input.prompt === \"string\" ? input.prompt : \"\",\n };\n return ev;\n }\n case \"PreCompact\": {\n const ev: PreCompactEvent = {\n ...base,\n ...(input.trigger === \"auto\" || input.trigger === \"manual\"\n ? { trigger: input.trigger }\n : {}),\n };\n return ev;\n }\n case \"PostCompact\": {\n // Copilot CLI does not fire PostCompact natively (postCompact unset →\n // warn-skip at install). Parsed defensively, mirroring PreCompact, so a\n // manual/mis-routed dispatch normalizes instead of hitting the guard.\n const ev: PostCompactEvent = {\n ...base,\n ...(input.trigger === \"auto\" || input.trigger === \"manual\"\n ? { trigger: input.trigger }\n : {}),\n };\n return ev;\n }\n case \"Stop\": {\n // The host signals completion via stop_reason:\"end_turn\", not the\n // stopHookActive loop-guard boolean, so nothing maps onto StopEvent\n // beyond base (hooks-reference.md:449-457).\n const ev: StopEvent = { ...base };\n return ev;\n }\n case \"Notification\": {\n const ev: NotificationEvent = {\n ...base,\n message: typeof input.message === \"string\" ? input.message : \"\",\n };\n return ev;\n }\n case \"PermissionRequest\": {\n // permissionRequest uses the PreToolUse shape (tool_name + tool_input\n // only); the host emits no permission_suggestions payload\n // (hooks-reference.md:218,627-649).\n const ev: PermissionRequestEvent = {\n ...base,\n toolName: input.tool_name ?? \"\",\n toolInput: input.tool_input ?? {},\n };\n return ev;\n }\n case \"PostToolUseFailure\": {\n // Host payload is {tool_name, tool_input, error} + base; it carries no\n // tool_use_id / is_interrupt / duration_ms correlation fields\n // (hooks-reference.md:421-430).\n const ev: PostToolUseFailureEvent = {\n ...base,\n toolName: input.tool_name ?? \"\",\n toolInput: input.tool_input ?? {},\n error: typeof input.error === \"string\" ? input.error : \"\",\n };\n return ev;\n }\n case \"SubagentStart\": {\n // The host's subagent identity field is `agent_name`; there is no\n // agent_id or agent_type (agent_display_name is a human label, not a\n // type), so agentType stays unset (hooks-reference.md:467-476).\n const ev: SubagentStartEvent = {\n ...base,\n ...(typeof input.agent_name === \"string\" ? { agentId: input.agent_name } : {}),\n };\n return ev;\n }\n case \"SubagentStop\": {\n // VS Code dialect: identity is `agent_name`, the subagent transcript is\n // the BASE `transcript_path` (not agent_transcript_path), and there is\n // no agent_type / last_assistant_message / stop_hook_active — the final\n // response is reachable only via transcript_path, and completion is\n // signalled by stop_reason (hooks-reference.md:497-507).\n const ev: SubagentStopEvent = {\n ...base,\n ...(typeof input.agent_name === \"string\" ? { agentId: input.agent_name } : {}),\n ...(typeof input.transcript_path === \"string\"\n ? { agentTranscriptPath: input.transcript_path }\n : {}),\n };\n return ev;\n }\n default: {\n // Exhaustive guard — every HookEventName is handled above.\n const _never: never = event;\n throw new Error(`unsupported copilot-cli hook event: ${String(_never)}`);\n }\n }\n }\n\n // ── Runtime: normalized response → Copilot CLI native hook reply ─────────\n\n formatReply(event: HookEventName, response: HookResponse): HookReply {\n const hookEventName = event;\n const decision = response.decision ?? \"allow\";\n\n // PermissionRequest replies use the Claude-compatible nested\n // decision{behavior} envelope and are the ONE event where an EXPLICIT\n // \"allow\" is an ACTIVE grant (it suppresses the permission dialog) rather\n // than passthrough:\n // allow → decision{behavior:\"allow\"} (+updatedInput when set);\n // the host still enforces its own deny rules.\n // modify → an allow grant carrying updatedInput.\n // deny → decision{behavior:\"deny\", message}.\n // ask/context/void → NO decision output: fall through to the native\n // dialog (the dialog IS the ask).\n if (event === \"PermissionRequest\") {\n if (response.decision === \"deny\") {\n return this.stdout({\n hookSpecificOutput: {\n hookEventName,\n decision: {\n behavior: \"deny\",\n message: response.reason ?? \"Blocked by hook\",\n },\n },\n });\n }\n if (\n response.decision === \"allow\" ||\n (response.decision === \"modify\" && response.updatedInput)\n ) {\n return this.stdout({\n hookSpecificOutput: {\n hookEventName,\n decision: {\n behavior: \"allow\",\n ...(response.updatedInput\n ? { updatedInput: response.updatedInput }\n : {}),\n },\n },\n });\n }\n return { exitCode: 0 };\n }\n\n // PostToolUseFailure (recovery guidance beside the error) and SubagentStart\n // (context prepended to the SUBAGENT's conversation — creation is not\n // blockable on Copilot CLI) are observe/context-only: \"context\" emits\n // additionalContext, and a \"deny\" DEGRADES to the same shape carrying the\n // reason. Everything else passes through.\n if (event === \"PostToolUseFailure\" || event === \"SubagentStart\") {\n const context =\n decision === \"context\"\n ? response.additionalContext\n : decision === \"deny\"\n ? response.reason ?? response.additionalContext\n : undefined;\n if (context) {\n return this.stdout({\n hookSpecificOutput: { hookEventName, additionalContext: context },\n });\n }\n return { exitCode: 0 };\n }\n\n // deny → block the action with a reason (exit 0; JSON carries the decision).\n // SubagentStop is the Stop-semantics exception: like Claude, the block is\n // the TOP-LEVEL {\"decision\":\"block\",\"reason\"} — it keeps the subagent\n // running with `reason` as its next instruction (the host \"can block and\n // force continuation\").\n if (decision === \"deny\") {\n if (event === \"SubagentStop\") {\n return this.stdout({\n decision: \"block\",\n reason: response.reason ?? \"Blocked by hook\",\n });\n }\n return this.stdout({\n hookSpecificOutput: {\n hookEventName,\n permissionDecision: \"deny\",\n permissionDecisionReason: response.reason ?? \"Blocked by hook\",\n },\n });\n }\n\n // ask → prompt the user to confirm.\n if (decision === \"ask\") {\n return this.stdout({\n hookSpecificOutput: {\n hookEventName,\n permissionDecision: \"ask\",\n permissionDecisionReason: response.reason ?? \"Confirmation required by hook\",\n },\n });\n }\n\n // modify → rewrite PreToolUse input (only where Copilot CLI supports it).\n if (decision === \"modify\") {\n if (event === \"PreToolUse\" && response.updatedInput) {\n return this.stdout({\n hookSpecificOutput: { hookEventName, updatedInput: response.updatedInput },\n });\n }\n // Output rewrite is unsupported on Copilot CLI; fall through to allow.\n }\n\n // context → inject soft guidance (also the SessionStart context path).\n if (decision === \"context\" && response.additionalContext) {\n return this.stdout({\n hookSpecificOutput: { hookEventName, additionalContext: response.additionalContext },\n });\n }\n\n // allow / void / unsupported-degradation → pass through with exit 0.\n return { exitCode: 0 };\n }\n\n private stdout(payload: unknown): HookReply {\n return { exitCode: 0, stdout: JSON.stringify(payload) };\n }\n}\n\n/**\n * Extract a stable session id from a Copilot CLI wire payload.\n * Priority mirrors the Claude wire protocol: transcript UUID > session_id > \"\".\n */\nfunction extractSessionId(input: CopilotWireInput): string {\n if (typeof input.transcript_path === \"string\") {\n const m = input.transcript_path.match(/([a-f0-9-]{36})\\.jsonl$/);\n if (m && m[1]) return m[1];\n }\n if (typeof input.session_id === \"string\" && input.session_id !== \"\") {\n return input.session_id;\n }\n return \"\";\n}\n\nexport const adapter = new CopilotCliAdapter();\nexport default adapter;\n"],"mappings":"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","names":["entry"]}
|
|
@@ -9,14 +9,14 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
BaseAdapter,
|
|
11
11
|
renderSkillMd
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-RHML2NOB.js";
|
|
13
13
|
import {
|
|
14
14
|
buildHomeBinHookCommand,
|
|
15
15
|
buildWrappedStdio,
|
|
16
16
|
isHomeBinHookCommand
|
|
17
17
|
} from "./chunk-TO57WYBB.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-ALVXORZM.js";
|
|
19
|
+
import "./chunk-2HCJV6UO.js";
|
|
20
20
|
|
|
21
21
|
// src/adapters/crush/index.ts
|
|
22
22
|
import { existsSync, statSync } from "fs";
|
|
@@ -485,4 +485,4 @@ export {
|
|
|
485
485
|
adapter,
|
|
486
486
|
crush_default as default
|
|
487
487
|
};
|
|
488
|
-
//# sourceMappingURL=crush-
|
|
488
|
+
//# sourceMappingURL=crush-PP4HYZLT.js.map
|
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
CursorAdapter,
|
|
6
6
|
adapter,
|
|
7
7
|
cursor_default
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ZSMGHEB5.js";
|
|
9
9
|
import "./chunk-H53QZQJI.js";
|
|
10
10
|
import "./chunk-DBQMX75U.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-RHML2NOB.js";
|
|
12
12
|
import "./chunk-TO57WYBB.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-ALVXORZM.js";
|
|
14
|
+
import "./chunk-2HCJV6UO.js";
|
|
15
15
|
export {
|
|
16
16
|
CURSOR_EVENT_MAP,
|
|
17
17
|
CURSOR_HOOKS_VERSION,
|
|
@@ -19,4 +19,4 @@ export {
|
|
|
19
19
|
adapter,
|
|
20
20
|
cursor_default as default
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=cursor-
|
|
22
|
+
//# sourceMappingURL=cursor-XMXOZKAP.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
print
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-NXR4HM5N.js";
|
|
5
5
|
import {
|
|
6
6
|
detectInstalledPlatforms
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-GCRRX4MO.js";
|
|
8
|
+
import "./chunk-LS65GL2P.js";
|
|
9
9
|
|
|
10
10
|
// src/cli/commands/detect.ts
|
|
11
11
|
import { parseArgs } from "util";
|
|
@@ -71,4 +71,4 @@ async function run(argv) {
|
|
|
71
71
|
export {
|
|
72
72
|
run
|
|
73
73
|
};
|
|
74
|
-
//# sourceMappingURL=detect-
|
|
74
|
+
//# sourceMappingURL=detect-IZOWP5AA.js.map
|
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
import {
|
|
3
3
|
marketplaceDoctorChecks,
|
|
4
4
|
syncConnector
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-IZ4XQ23W.js";
|
|
6
|
+
import "./chunk-ZEFUDBTY.js";
|
|
7
7
|
import {
|
|
8
8
|
readMarketplaceInstalls
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-AXAHW2KU.js";
|
|
10
|
+
import "./chunk-ZSMGHEB5.js";
|
|
11
11
|
import {
|
|
12
12
|
fail,
|
|
13
13
|
parseScope,
|
|
14
14
|
parseTargets,
|
|
15
15
|
print
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-NXR4HM5N.js";
|
|
17
17
|
import {
|
|
18
18
|
LineBuffer,
|
|
19
19
|
idKey,
|
|
@@ -24,33 +24,33 @@ import {
|
|
|
24
24
|
} from "./chunk-7QRUZAUG.js";
|
|
25
25
|
import {
|
|
26
26
|
detectInstalledPlatforms
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-GCRRX4MO.js";
|
|
28
28
|
import "./chunk-KHO5WNTP.js";
|
|
29
29
|
import {
|
|
30
30
|
findConnectorConfig,
|
|
31
31
|
listRegisteredConnectors,
|
|
32
32
|
loadConnectorFromPath,
|
|
33
33
|
readRegisteredMeta
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-RQCBBLTA.js";
|
|
35
35
|
import {
|
|
36
36
|
MCP_PROTOCOL_VERSION
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-UVBAH263.js";
|
|
38
38
|
import {
|
|
39
39
|
REGISTERED_PLATFORM_IDS,
|
|
40
40
|
loadAdapter
|
|
41
|
-
} from "./chunk-
|
|
42
|
-
import "./chunk-
|
|
41
|
+
} from "./chunk-LS65GL2P.js";
|
|
42
|
+
import "./chunk-7CZKXXBD.js";
|
|
43
43
|
import "./chunk-OPXAP3AC.js";
|
|
44
44
|
import "./chunk-UM5S7DKK.js";
|
|
45
45
|
import "./chunk-H53QZQJI.js";
|
|
46
46
|
import "./chunk-DBQMX75U.js";
|
|
47
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-RHML2NOB.js";
|
|
48
48
|
import "./chunk-TO57WYBB.js";
|
|
49
|
-
import "./chunk-
|
|
49
|
+
import "./chunk-ALVXORZM.js";
|
|
50
50
|
import {
|
|
51
51
|
dataRoot,
|
|
52
52
|
homeBinPath
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-2HCJV6UO.js";
|
|
54
54
|
|
|
55
55
|
// src/cli/commands/doctor.ts
|
|
56
56
|
import { parseArgs } from "util";
|
|
@@ -541,4 +541,4 @@ async function run(argv) {
|
|
|
541
541
|
export {
|
|
542
542
|
run
|
|
543
543
|
};
|
|
544
|
-
//# sourceMappingURL=doctor-
|
|
544
|
+
//# sourceMappingURL=doctor-5IVUQ2YH.js.map
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
BaseAdapter,
|
|
10
10
|
renderCommandMd
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-RHML2NOB.js";
|
|
12
12
|
import {
|
|
13
13
|
buildWrappedStdio,
|
|
14
14
|
isHomeBinHookCommand
|
|
15
15
|
} from "./chunk-TO57WYBB.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-ALVXORZM.js";
|
|
17
|
+
import "./chunk-2HCJV6UO.js";
|
|
18
18
|
|
|
19
19
|
// src/adapters/droid/index.ts
|
|
20
20
|
import { existsSync } from "fs";
|
|
@@ -649,4 +649,4 @@ export {
|
|
|
649
649
|
adapter,
|
|
650
650
|
droid_default as default
|
|
651
651
|
};
|
|
652
|
-
//# sourceMappingURL=droid-
|
|
652
|
+
//# sourceMappingURL=droid-ETNOUIPJ.js.map
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
BaseAdapter,
|
|
13
13
|
renderSkillMd,
|
|
14
14
|
renderSubagentMd
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-RHML2NOB.js";
|
|
16
16
|
import {
|
|
17
17
|
buildHomeBinHookCommand,
|
|
18
18
|
buildUsageEventCommand,
|
|
@@ -21,8 +21,8 @@ import {
|
|
|
21
21
|
isHostNativeUsageEnabled,
|
|
22
22
|
isUsageEventCommand
|
|
23
23
|
} from "./chunk-TO57WYBB.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-ALVXORZM.js";
|
|
25
|
+
import "./chunk-2HCJV6UO.js";
|
|
26
26
|
|
|
27
27
|
// src/adapters/gemini-cli/index.ts
|
|
28
28
|
import { existsSync } from "fs";
|
|
@@ -770,4 +770,4 @@ export {
|
|
|
770
770
|
adapter,
|
|
771
771
|
gemini_cli_default as default
|
|
772
772
|
};
|
|
773
|
-
//# sourceMappingURL=gemini-cli-
|
|
773
|
+
//# sourceMappingURL=gemini-cli-P7XJXWVH.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
readYaml,
|
|
4
4
|
yamlObjectMapCodec
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-IU42THN7.js";
|
|
6
6
|
import {
|
|
7
7
|
roamingAppData
|
|
8
8
|
} from "./chunk-UM5S7DKK.js";
|
|
@@ -17,13 +17,13 @@ import {
|
|
|
17
17
|
removeFromObjectMap,
|
|
18
18
|
renderSkillMd,
|
|
19
19
|
upsertInObjectMap
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-RHML2NOB.js";
|
|
21
21
|
import {
|
|
22
22
|
buildWrappedStdio,
|
|
23
23
|
isHomeBinHookCommand
|
|
24
24
|
} from "./chunk-TO57WYBB.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-ALVXORZM.js";
|
|
26
|
+
import "./chunk-2HCJV6UO.js";
|
|
27
27
|
|
|
28
28
|
// src/adapters/goose/index.ts
|
|
29
29
|
import { existsSync } from "fs";
|
|
@@ -603,4 +603,4 @@ export {
|
|
|
603
603
|
adapter,
|
|
604
604
|
goose_default as default
|
|
605
605
|
};
|
|
606
|
-
//# sourceMappingURL=goose-
|
|
606
|
+
//# sourceMappingURL=goose-UZVA6MQC.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
readYaml,
|
|
4
4
|
writeYaml,
|
|
5
5
|
yamlObjectMapCodec
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-IU42THN7.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveEnvRefsDeep
|
|
9
9
|
} from "./chunk-DBQMX75U.js";
|
|
@@ -12,15 +12,15 @@ import {
|
|
|
12
12
|
removeFromObjectMap,
|
|
13
13
|
renderSkillMd,
|
|
14
14
|
upsertInObjectMap
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-RHML2NOB.js";
|
|
16
16
|
import {
|
|
17
17
|
buildHomeBinHookCommand,
|
|
18
18
|
buildWrappedStdio,
|
|
19
19
|
isHomeBinActionCommand,
|
|
20
20
|
isHomeBinHookCommand
|
|
21
21
|
} from "./chunk-TO57WYBB.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-ALVXORZM.js";
|
|
23
|
+
import "./chunk-2HCJV6UO.js";
|
|
24
24
|
|
|
25
25
|
// src/adapters/hermes/index.ts
|
|
26
26
|
import { existsSync, statSync } from "fs";
|
|
@@ -836,4 +836,4 @@ export {
|
|
|
836
836
|
adapter,
|
|
837
837
|
hermes_default as default
|
|
838
838
|
};
|
|
839
|
-
//# sourceMappingURL=hermes-
|
|
839
|
+
//# sourceMappingURL=hermes-IC6R4CII.js.map
|