@newrelic/preflight 1.39.0 → 1.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/dist/data/dashboards/ai-coding-assistant-adoption-cost.json +1948 -0
- package/dist/deploy/data-paths.d.ts +3 -2
- package/dist/deploy/data-paths.d.ts.map +1 -1
- package/dist/deploy/data-paths.js +2 -1
- package/dist/deploy/data-paths.js.map +1 -1
- package/dist/install/cli.d.ts.map +1 -1
- package/dist/install/cli.js +302 -4
- package/dist/install/cli.js.map +1 -1
- package/dist/install/copilot-install-helper.d.ts +84 -0
- package/dist/install/copilot-install-helper.d.ts.map +1 -0
- package/dist/install/copilot-install-helper.js +385 -0
- package/dist/install/copilot-install-helper.js.map +1 -0
- package/dist/install/schedule.d.ts +1 -0
- package/dist/install/schedule.d.ts.map +1 -1
- package/dist/install/schedule.js +9 -6
- package/dist/install/schedule.js.map +1 -1
- package/dist/install/setup-wizard.d.ts.map +1 -1
- package/dist/install/setup-wizard.js +30 -0
- package/dist/install/setup-wizard.js.map +1 -1
- package/dist/metrics/local-session-aggregator.d.ts +11 -0
- package/dist/metrics/local-session-aggregator.d.ts.map +1 -1
- package/dist/metrics/local-session-aggregator.js +7 -1
- package/dist/metrics/local-session-aggregator.js.map +1 -1
- package/dist/platforms/copilot-adapter.d.ts.map +1 -1
- package/dist/platforms/copilot-adapter.js +12 -4
- package/dist/platforms/copilot-adapter.js.map +1 -1
- package/dist/platforms/copilot-sdk-adapter.d.ts.map +1 -1
- package/dist/platforms/copilot-sdk-adapter.js +9 -2
- package/dist/platforms/copilot-sdk-adapter.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logic for generating and merging GitHub Copilot hook/MCP settings — the
|
|
3
|
+
* Copilot analog of `install-helper.ts`. Covers three separate files:
|
|
4
|
+
*
|
|
5
|
+
* - `~/.copilot/hooks/preflight.json` (or `.github/hooks/preflight.json`) —
|
|
6
|
+
* shared by both the Copilot CLI and VS Code Copilot Chat.
|
|
7
|
+
* - VS Code's own `Code/User/mcp.json` — makes nr_observe_* tools available
|
|
8
|
+
* inside a VS Code Copilot Chat session.
|
|
9
|
+
* - VS Code's own `Code/User/settings.json` — the token-exact-cost debug
|
|
10
|
+
* log setting, and the fix for VS Code reading hook files from multiple
|
|
11
|
+
* locations at once (see `applyHookCollisionFix`).
|
|
12
|
+
*
|
|
13
|
+
* Most functions are pure/side-effect-free, with file I/O happening in the
|
|
14
|
+
* CLI layer (cli.ts). `applyHookCollisionFix` is the one exception that reads
|
|
15
|
+
* settings files directly, mirroring `readAndCheckHooks`'s documented
|
|
16
|
+
* exception in `install-helper.ts`.
|
|
17
|
+
*
|
|
18
|
+
* The hooks file's commands embed the resolved platform tag directly
|
|
19
|
+
* (`NEW_RELIC_AI_PLATFORM=copilot ...`) rather than relying on inherited
|
|
20
|
+
* environment: Copilot's hooks-runner executes these commands with a plain
|
|
21
|
+
* environment that does NOT include any `--env` vars set on a `copilot mcp
|
|
22
|
+
* add` MCP-server registration — verified live against a real New Relic
|
|
23
|
+
* account. Every hook-sourced Copilot event (CLI and VS Code Copilot Chat
|
|
24
|
+
* both, since they share this one file) is tagged simply `'copilot'`.
|
|
25
|
+
*/
|
|
26
|
+
export declare const COPILOT_MCP_SERVER_KEY = "newrelic-preflight";
|
|
27
|
+
export declare const AGENT_DEBUG_LOG_SETTING = "github.copilot.chat.agentDebugLog.fileLogging.enabled";
|
|
28
|
+
export interface CopilotHookCommand {
|
|
29
|
+
type: 'command';
|
|
30
|
+
command: string;
|
|
31
|
+
}
|
|
32
|
+
export interface CopilotHooksFile {
|
|
33
|
+
version: 1;
|
|
34
|
+
hooks: {
|
|
35
|
+
PreToolUse: CopilotHookCommand[];
|
|
36
|
+
PostToolUse: CopilotHookCommand[];
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export interface VsCodeMcpServerConfig {
|
|
40
|
+
type: 'stdio';
|
|
41
|
+
command: string;
|
|
42
|
+
args: string[];
|
|
43
|
+
env: Record<string, string>;
|
|
44
|
+
}
|
|
45
|
+
export declare function generateCopilotHooksFile(binPath?: string | null): CopilotHooksFile;
|
|
46
|
+
export declare function generateVsCodeMcpEntry(binPath?: string | null, creds?: {
|
|
47
|
+
licenseKey?: string;
|
|
48
|
+
accountId?: string;
|
|
49
|
+
}): Record<string, VsCodeMcpServerConfig>;
|
|
50
|
+
export declare function generateHookFilesLocationsPatch(claudeSettingsPath: string): Record<string, Record<string, boolean>>;
|
|
51
|
+
export declare function detectCopilotHooksPath(scope?: 'user' | 'project'): string;
|
|
52
|
+
export declare function detectVsCodeMcpPath(): string | null;
|
|
53
|
+
export declare function detectVsCodeSettingsPath(): string | null;
|
|
54
|
+
export declare function mergeCopilotHooksFile(existing: Record<string, unknown>, binPath?: string | null): Record<string, unknown>;
|
|
55
|
+
export declare function removeCopilotHooksFile(existing: Record<string, unknown>): Record<string, unknown>;
|
|
56
|
+
export declare function mergeVsCodeMcpConfig(existing: Record<string, unknown>, binPath?: string | null, creds?: {
|
|
57
|
+
licenseKey?: string;
|
|
58
|
+
accountId?: string;
|
|
59
|
+
}): Record<string, unknown>;
|
|
60
|
+
export declare function removeVsCodeMcpConfig(existing: Record<string, unknown>): Record<string, unknown>;
|
|
61
|
+
export declare function mergeVsCodeSettings(existing: Record<string, unknown>, patch: {
|
|
62
|
+
hookFilesLocationsPatch?: Record<string, boolean>;
|
|
63
|
+
enableAgentDebugLog?: boolean;
|
|
64
|
+
}): Record<string, unknown>;
|
|
65
|
+
export declare function removeVsCodeHookFilesLocationsEntry(existing: Record<string, unknown>, claudeSettingsPath: string): Record<string, unknown>;
|
|
66
|
+
export interface HookCollisionFixResult {
|
|
67
|
+
applied: boolean;
|
|
68
|
+
reason?: 'vscode-settings-not-found' | 'claude-hooks-absent' | 'copilot-hooks-absent' | 'error';
|
|
69
|
+
}
|
|
70
|
+
export declare function applyHookCollisionFix(opts: {
|
|
71
|
+
claudeSettingsPath: string;
|
|
72
|
+
copilotHooksPath: string;
|
|
73
|
+
vsCodeSettingsPath: string | null;
|
|
74
|
+
claudeHooksJustInstalled?: boolean;
|
|
75
|
+
copilotHooksJustInstalled?: boolean;
|
|
76
|
+
/** Forwarded to writeJsonFile's symlink guard — lets tests use a temp dir. */
|
|
77
|
+
additionalAllowedBase?: string;
|
|
78
|
+
}): HookCollisionFixResult;
|
|
79
|
+
export interface SdkExtensionInstallResult {
|
|
80
|
+
copied: boolean;
|
|
81
|
+
reason?: string;
|
|
82
|
+
}
|
|
83
|
+
export declare function installCopilotSdkExtension(): SdkExtensionInstallResult;
|
|
84
|
+
//# sourceMappingURL=copilot-install-helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-install-helper.d.ts","sourceRoot":"","sources":["../../src/install/copilot-install-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logic for generating and merging GitHub Copilot hook/MCP settings — the
|
|
3
|
+
* Copilot analog of `install-helper.ts`. Covers three separate files:
|
|
4
|
+
*
|
|
5
|
+
* - `~/.copilot/hooks/preflight.json` (or `.github/hooks/preflight.json`) —
|
|
6
|
+
* shared by both the Copilot CLI and VS Code Copilot Chat.
|
|
7
|
+
* - VS Code's own `Code/User/mcp.json` — makes nr_observe_* tools available
|
|
8
|
+
* inside a VS Code Copilot Chat session.
|
|
9
|
+
* - VS Code's own `Code/User/settings.json` — the token-exact-cost debug
|
|
10
|
+
* log setting, and the fix for VS Code reading hook files from multiple
|
|
11
|
+
* locations at once (see `applyHookCollisionFix`).
|
|
12
|
+
*
|
|
13
|
+
* Most functions are pure/side-effect-free, with file I/O happening in the
|
|
14
|
+
* CLI layer (cli.ts). `applyHookCollisionFix` is the one exception that reads
|
|
15
|
+
* settings files directly, mirroring `readAndCheckHooks`'s documented
|
|
16
|
+
* exception in `install-helper.ts`.
|
|
17
|
+
*
|
|
18
|
+
* The hooks file's commands embed the resolved platform tag directly
|
|
19
|
+
* (`NEW_RELIC_AI_PLATFORM=copilot ...`) rather than relying on inherited
|
|
20
|
+
* environment: Copilot's hooks-runner executes these commands with a plain
|
|
21
|
+
* environment that does NOT include any `--env` vars set on a `copilot mcp
|
|
22
|
+
* add` MCP-server registration — verified live against a real New Relic
|
|
23
|
+
* account. Every hook-sourced Copilot event (CLI and VS Code Copilot Chat
|
|
24
|
+
* both, since they share this one file) is tagged simply `'copilot'`.
|
|
25
|
+
*/
|
|
26
|
+
import { dirname, join, resolve } from 'node:path';
|
|
27
|
+
import { homedir } from 'node:os';
|
|
28
|
+
import { existsSync, mkdirSync, copyFileSync } from 'node:fs';
|
|
29
|
+
import { z } from 'zod';
|
|
30
|
+
import { readJsonFileStrict, writeJsonFile, errMsg } from './json-utils.js';
|
|
31
|
+
import { entryContainsNrObserve } from './install-helper.js';
|
|
32
|
+
import { resolveDataDir } from '../deploy/data-paths.js';
|
|
33
|
+
import { copilotSdkExtensionInstallPath } from '../hooks/copilot-sdk-extension-health.js';
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
// Constants
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
const COLLECTOR_COMMAND = 'preflight-collector';
|
|
38
|
+
const MCP_SERVER_COMMAND = 'preflight';
|
|
39
|
+
export const COPILOT_MCP_SERVER_KEY = 'newrelic-preflight';
|
|
40
|
+
export const AGENT_DEBUG_LOG_SETTING = 'github.copilot.chat.agentDebugLog.fileLogging.enabled';
|
|
41
|
+
const HOOK_FILE_LOCATIONS_SETTING = 'chat.hookFilesLocations';
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
// Generators
|
|
44
|
+
// ---------------------------------------------------------------------------
|
|
45
|
+
export function generateCopilotHooksFile(binPath) {
|
|
46
|
+
// Quote the path so shells with sh -c don't split on spaces, matching
|
|
47
|
+
// install-helper.ts's generateHookEntries() for Claude.
|
|
48
|
+
const bin = binPath
|
|
49
|
+
? `"${join(dirname(binPath), COLLECTOR_COMMAND).replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`
|
|
50
|
+
: COLLECTOR_COMMAND;
|
|
51
|
+
const pre = `NEW_RELIC_AI_PLATFORM=copilot ${bin} pre-tool`;
|
|
52
|
+
const post = `NEW_RELIC_AI_PLATFORM=copilot ${bin} post-tool`;
|
|
53
|
+
// Flat shape per GitHub's own Copilot hooks reference — each PreToolUse/
|
|
54
|
+
// PostToolUse array entry is a command hook directly ({type, command}),
|
|
55
|
+
// unlike Claude Code's settings.json which nests it one level deeper under
|
|
56
|
+
// {matcher, hooks: [...]}. Wrapping it in Claude's shape here previously
|
|
57
|
+
// made Copilot's hooks-runner silently fail to execute these commands at
|
|
58
|
+
// all (confirmed live: zero hook events reached the collector after this
|
|
59
|
+
// was written in the wrong shape, despite the file existing and validating
|
|
60
|
+
// as JSON) — see docs/ADAPTERS.md and the adapters' own
|
|
61
|
+
// getHookInstallInstructions() for the same flat shape.
|
|
62
|
+
return {
|
|
63
|
+
version: 1,
|
|
64
|
+
hooks: {
|
|
65
|
+
PreToolUse: [{ type: 'command', command: pre }],
|
|
66
|
+
PostToolUse: [{ type: 'command', command: post }],
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
// MCP_CLIENT=copilot here is deliberately independent of the Copilot CLI's
|
|
71
|
+
// own `copilot mcp add --env MCP_CLIENT=copilot-sdk` registration (see
|
|
72
|
+
// registerCopilotMcpServer in cli.ts) — this env var only affects the MCP
|
|
73
|
+
// *server* process's own platform self-detection (session-level dashboard
|
|
74
|
+
// summaries, CopilotSdkAdapter's tool-name normalization for CLI sessions),
|
|
75
|
+
// not the hooks file's per-event NR tagging, which is controlled entirely by
|
|
76
|
+
// generateCopilotHooksFile's embedded NEW_RELIC_AI_PLATFORM=copilot above.
|
|
77
|
+
export function generateVsCodeMcpEntry(binPath, creds) {
|
|
78
|
+
const command = binPath ? join(dirname(binPath), MCP_SERVER_COMMAND) : MCP_SERVER_COMMAND;
|
|
79
|
+
const env = { MCP_CLIENT: 'copilot' };
|
|
80
|
+
if (creds?.licenseKey)
|
|
81
|
+
env.NEW_RELIC_LICENSE_KEY = creds.licenseKey;
|
|
82
|
+
if (creds?.accountId)
|
|
83
|
+
env.NEW_RELIC_ACCOUNT_ID = creds.accountId;
|
|
84
|
+
return { [COPILOT_MCP_SERVER_KEY]: { type: 'stdio', command, args: ['--stdio'], env } };
|
|
85
|
+
}
|
|
86
|
+
export function generateHookFilesLocationsPatch(claudeSettingsPath) {
|
|
87
|
+
return { [HOOK_FILE_LOCATIONS_SETTING]: { [claudeSettingsPath]: false } };
|
|
88
|
+
}
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
// Path detection
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
export function detectCopilotHooksPath(scope = 'user') {
|
|
93
|
+
if (scope === 'user')
|
|
94
|
+
return resolve(homedir(), '.copilot', 'hooks', 'preflight.json');
|
|
95
|
+
return resolve(process.cwd(), '.github', 'hooks', 'preflight.json');
|
|
96
|
+
}
|
|
97
|
+
// Resolves VS Code's "Code/User" user-data directory. macOS/Linux paths are
|
|
98
|
+
// confirmed only by strong analogy to settings.json's documented location
|
|
99
|
+
// (same "user profile folder" language VS Code's own docs use for both
|
|
100
|
+
// files); the Windows path is independently confirmed via a real user
|
|
101
|
+
// report. Callers must still check the resolved directory actually exists
|
|
102
|
+
// on disk before treating VS Code as present — this function only computes
|
|
103
|
+
// where the file *would* be.
|
|
104
|
+
function vsCodeUserDir() {
|
|
105
|
+
if (process.platform === 'darwin') {
|
|
106
|
+
return resolve(homedir(), 'Library', 'Application Support', 'Code', 'User');
|
|
107
|
+
}
|
|
108
|
+
if (process.platform === 'linux') {
|
|
109
|
+
const xdgConfig = process.env.XDG_CONFIG_HOME?.trim();
|
|
110
|
+
const configBase = xdgConfig && xdgConfig.length > 0 ? xdgConfig : resolve(homedir(), '.config');
|
|
111
|
+
return resolve(configBase, 'Code', 'User');
|
|
112
|
+
}
|
|
113
|
+
if (process.platform === 'win32') {
|
|
114
|
+
const appData = process.env.APPDATA?.trim();
|
|
115
|
+
if (!appData)
|
|
116
|
+
return null;
|
|
117
|
+
return resolve(appData, 'Code', 'User');
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
export function detectVsCodeMcpPath() {
|
|
122
|
+
const dir = vsCodeUserDir();
|
|
123
|
+
return dir ? resolve(dir, 'mcp.json') : null;
|
|
124
|
+
}
|
|
125
|
+
export function detectVsCodeSettingsPath() {
|
|
126
|
+
const dir = vsCodeUserDir();
|
|
127
|
+
return dir ? resolve(dir, 'settings.json') : null;
|
|
128
|
+
}
|
|
129
|
+
// ---------------------------------------------------------------------------
|
|
130
|
+
// Zod schemas — validate existing file shapes before merging
|
|
131
|
+
// ---------------------------------------------------------------------------
|
|
132
|
+
const HooksFieldSchema = z
|
|
133
|
+
.object({
|
|
134
|
+
PreToolUse: z.array(z.unknown()).optional(),
|
|
135
|
+
PostToolUse: z.array(z.unknown()).optional(),
|
|
136
|
+
})
|
|
137
|
+
.passthrough();
|
|
138
|
+
const CopilotHooksSchema = z
|
|
139
|
+
.object({ version: z.number().optional(), hooks: HooksFieldSchema.optional() })
|
|
140
|
+
.passthrough();
|
|
141
|
+
const VsCodeMcpConfigSchema = z
|
|
142
|
+
.object({ servers: z.record(z.string(), z.unknown()).optional() })
|
|
143
|
+
.passthrough();
|
|
144
|
+
// ---------------------------------------------------------------------------
|
|
145
|
+
// mergeCopilotHooksFile / removeCopilotHooksFile
|
|
146
|
+
// ---------------------------------------------------------------------------
|
|
147
|
+
export function mergeCopilotHooksFile(existing, binPath) {
|
|
148
|
+
const parsed = CopilotHooksSchema.safeParse(existing);
|
|
149
|
+
if (!parsed.success) {
|
|
150
|
+
throw new Error(`Existing Copilot hooks file has unexpected shape — fix manually before running install.\n${parsed.error.message}`);
|
|
151
|
+
}
|
|
152
|
+
const result = { ...existing, version: 1 };
|
|
153
|
+
const hookEntries = generateCopilotHooksFile(binPath).hooks;
|
|
154
|
+
const hooks = typeof result.hooks === 'object' && result.hooks !== null
|
|
155
|
+
? { ...result.hooks }
|
|
156
|
+
: {};
|
|
157
|
+
for (const hookType of ['PreToolUse', 'PostToolUse']) {
|
|
158
|
+
const existingArr = Array.isArray(hooks[hookType]) ? [...hooks[hookType]] : [];
|
|
159
|
+
if (binPath !== null && binPath !== undefined) {
|
|
160
|
+
// Resolved path available: remove stale entry and re-add with the
|
|
161
|
+
// current absolute path so re-install always upgrades a bare-name or
|
|
162
|
+
// outdated entry (matches mergeSettings's behavior for Claude).
|
|
163
|
+
const withoutNr = existingArr.filter((e) => !entryContainsNrObserve(e));
|
|
164
|
+
hooks[hookType] = [...withoutNr, ...hookEntries[hookType]];
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
// No path resolved: leave any existing entry untouched so a working
|
|
168
|
+
// absolute-path hook is not downgraded to a bare name.
|
|
169
|
+
if (!existingArr.some(entryContainsNrObserve)) {
|
|
170
|
+
existingArr.push(...hookEntries[hookType]);
|
|
171
|
+
}
|
|
172
|
+
hooks[hookType] = existingArr;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
result.hooks = hooks;
|
|
176
|
+
return result;
|
|
177
|
+
}
|
|
178
|
+
export function removeCopilotHooksFile(existing) {
|
|
179
|
+
const result = { ...existing };
|
|
180
|
+
if (typeof result.hooks === 'object' && result.hooks !== null) {
|
|
181
|
+
const hooks = { ...result.hooks };
|
|
182
|
+
for (const hookType of ['PreToolUse', 'PostToolUse']) {
|
|
183
|
+
if (Array.isArray(hooks[hookType])) {
|
|
184
|
+
const filtered = hooks[hookType].filter((e) => !entryContainsNrObserve(e));
|
|
185
|
+
if (filtered.length > 0) {
|
|
186
|
+
hooks[hookType] = filtered;
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
delete hooks[hookType];
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if (Object.keys(hooks).length > 0) {
|
|
194
|
+
result.hooks = hooks;
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
delete result.hooks;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
202
|
+
// ---------------------------------------------------------------------------
|
|
203
|
+
// mergeVsCodeMcpConfig / removeVsCodeMcpConfig — operates on VS Code's own
|
|
204
|
+
// Code/User/mcp.json (top-level key is `servers`, not `mcpServers` — a real
|
|
205
|
+
// shape difference from Claude's .mcp.json).
|
|
206
|
+
// ---------------------------------------------------------------------------
|
|
207
|
+
export function mergeVsCodeMcpConfig(existing, binPath, creds) {
|
|
208
|
+
const parsed = VsCodeMcpConfigSchema.safeParse(existing);
|
|
209
|
+
if (!parsed.success) {
|
|
210
|
+
throw new Error(`Existing VS Code MCP config file has unexpected shape — fix manually before running install.\n${parsed.error.message}`);
|
|
211
|
+
}
|
|
212
|
+
const result = { ...existing };
|
|
213
|
+
const servers = typeof result.servers === 'object' && result.servers !== null
|
|
214
|
+
? { ...result.servers }
|
|
215
|
+
: {};
|
|
216
|
+
if (binPath !== null && binPath !== undefined) {
|
|
217
|
+
const newEntry = generateVsCodeMcpEntry(binPath, creds);
|
|
218
|
+
const existingEntry = typeof servers[COPILOT_MCP_SERVER_KEY] === 'object' &&
|
|
219
|
+
servers[COPILOT_MCP_SERVER_KEY] !== null
|
|
220
|
+
? servers[COPILOT_MCP_SERVER_KEY]
|
|
221
|
+
: {};
|
|
222
|
+
servers[COPILOT_MCP_SERVER_KEY] = { ...existingEntry, ...newEntry[COPILOT_MCP_SERVER_KEY] };
|
|
223
|
+
}
|
|
224
|
+
else if (!(COPILOT_MCP_SERVER_KEY in servers)) {
|
|
225
|
+
servers[COPILOT_MCP_SERVER_KEY] = generateVsCodeMcpEntry(null, creds)[COPILOT_MCP_SERVER_KEY];
|
|
226
|
+
}
|
|
227
|
+
result.servers = servers;
|
|
228
|
+
return result;
|
|
229
|
+
}
|
|
230
|
+
export function removeVsCodeMcpConfig(existing) {
|
|
231
|
+
const result = { ...existing };
|
|
232
|
+
if (typeof result.servers === 'object' && result.servers !== null) {
|
|
233
|
+
const servers = { ...result.servers };
|
|
234
|
+
delete servers[COPILOT_MCP_SERVER_KEY];
|
|
235
|
+
if (Object.keys(servers).length > 0) {
|
|
236
|
+
result.servers = servers;
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
delete result.servers;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return result;
|
|
243
|
+
}
|
|
244
|
+
// ---------------------------------------------------------------------------
|
|
245
|
+
// mergeVsCodeSettings / removeVsCodeHookFilesLocationsEntry — operates on VS
|
|
246
|
+
// Code's own Code/User/settings.json. No Zod schema here: settings.json
|
|
247
|
+
// legitimately holds arbitrary keys of arbitrary shape from many extensions,
|
|
248
|
+
// so there's no meaningful sub-shape to validate beyond "it's an object",
|
|
249
|
+
// which readJsonFileStrict's contract already guarantees.
|
|
250
|
+
// ---------------------------------------------------------------------------
|
|
251
|
+
export function mergeVsCodeSettings(existing, patch) {
|
|
252
|
+
const result = { ...existing };
|
|
253
|
+
if (patch.hookFilesLocationsPatch) {
|
|
254
|
+
const existingLocations = typeof result[HOOK_FILE_LOCATIONS_SETTING] === 'object' &&
|
|
255
|
+
result[HOOK_FILE_LOCATIONS_SETTING] !== null
|
|
256
|
+
? result[HOOK_FILE_LOCATIONS_SETTING]
|
|
257
|
+
: {};
|
|
258
|
+
result[HOOK_FILE_LOCATIONS_SETTING] = {
|
|
259
|
+
...existingLocations,
|
|
260
|
+
...patch.hookFilesLocationsPatch,
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
if (patch.enableAgentDebugLog) {
|
|
264
|
+
result[AGENT_DEBUG_LOG_SETTING] = true;
|
|
265
|
+
}
|
|
266
|
+
return result;
|
|
267
|
+
}
|
|
268
|
+
// Uninstall only removes the specific claudeSettingsPath entry this
|
|
269
|
+
// installer added, and only if it's still exactly `false` (our fix) — never
|
|
270
|
+
// the whole chat.hookFilesLocations object, in case the user has unrelated
|
|
271
|
+
// entries there. The debug-log setting is deliberately left alone on
|
|
272
|
+
// uninstall — it's a user-facing preference, not exclusively ours.
|
|
273
|
+
export function removeVsCodeHookFilesLocationsEntry(existing, claudeSettingsPath) {
|
|
274
|
+
const result = { ...existing };
|
|
275
|
+
if (typeof result[HOOK_FILE_LOCATIONS_SETTING] === 'object' &&
|
|
276
|
+
result[HOOK_FILE_LOCATIONS_SETTING] !== null) {
|
|
277
|
+
const locations = { ...result[HOOK_FILE_LOCATIONS_SETTING] };
|
|
278
|
+
if (locations[claudeSettingsPath] === false) {
|
|
279
|
+
delete locations[claudeSettingsPath];
|
|
280
|
+
}
|
|
281
|
+
if (Object.keys(locations).length > 0) {
|
|
282
|
+
result[HOOK_FILE_LOCATIONS_SETTING] = locations;
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
delete result[HOOK_FILE_LOCATIONS_SETTING];
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return result;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* VS Code Copilot Chat reads hook files from both ~/.claude/settings.json
|
|
292
|
+
* (Claude-format, read by default via chat.hookFilesLocations) and the
|
|
293
|
+
* Copilot hooks file at the same time, with no dedup — verified live, every
|
|
294
|
+
* tool call double-executes ("Executing 2 hook(s)") whenever both are
|
|
295
|
+
* present, silently doubling toolCallCount and estimated cost. This patches
|
|
296
|
+
* VS Code's settings.json to disable the Claude-format location so only the
|
|
297
|
+
* Copilot hooks file fires.
|
|
298
|
+
*
|
|
299
|
+
* Called from BOTH the Claude-hooks install flow and the Copilot-hooks
|
|
300
|
+
* install flow so the fix applies correctly regardless of install order —
|
|
301
|
+
* pass `claudeHooksJustInstalled`/`copilotHooksJustInstalled` when the
|
|
302
|
+
* caller just wrote that file this run (so this function doesn't need to
|
|
303
|
+
* re-read a file its own caller already knows the state of).
|
|
304
|
+
*/
|
|
305
|
+
/**
|
|
306
|
+
* Whether a hooks file has NR-pattern PreToolUse AND PostToolUse entries —
|
|
307
|
+
* the two event types VS Code actually double-fires when it reads hooks from
|
|
308
|
+
* both a Claude-format file and a Copilot-format file at once. Deliberately
|
|
309
|
+
* narrower than install-helper.ts's own `areHooksInstalled` (which also
|
|
310
|
+
* requires PermissionRequest/PermissionDenied, added for Claude's own
|
|
311
|
+
* upgrade-detection): Copilot's hooks file never defines those two event
|
|
312
|
+
* types at all (see generateCopilotHooksFile), so reusing that broader check
|
|
313
|
+
* here would make this fix permanently unable to detect Copilot hooks as
|
|
314
|
+
* present, and would also stop detecting older/partial Claude installs that
|
|
315
|
+
* still double-fire.
|
|
316
|
+
*/
|
|
317
|
+
function hasNrToolUseHooks(content) {
|
|
318
|
+
const hooks = content.hooks;
|
|
319
|
+
if (typeof hooks !== 'object' || hooks === null)
|
|
320
|
+
return false;
|
|
321
|
+
const h = hooks;
|
|
322
|
+
return ['PreToolUse', 'PostToolUse'].every((hookType) => {
|
|
323
|
+
const arr = h[hookType];
|
|
324
|
+
return Array.isArray(arr) && arr.some(entryContainsNrObserve);
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
export function applyHookCollisionFix(opts) {
|
|
328
|
+
if (!opts.vsCodeSettingsPath || !existsSync(dirname(opts.vsCodeSettingsPath))) {
|
|
329
|
+
return { applied: false, reason: 'vscode-settings-not-found' };
|
|
330
|
+
}
|
|
331
|
+
const claudeHooksPresent = opts.claudeHooksJustInstalled ??
|
|
332
|
+
(() => {
|
|
333
|
+
try {
|
|
334
|
+
return hasNrToolUseHooks(readJsonFileStrict(opts.claudeSettingsPath));
|
|
335
|
+
}
|
|
336
|
+
catch {
|
|
337
|
+
return false;
|
|
338
|
+
}
|
|
339
|
+
})();
|
|
340
|
+
if (!claudeHooksPresent)
|
|
341
|
+
return { applied: false, reason: 'claude-hooks-absent' };
|
|
342
|
+
const copilotHooksPresent = opts.copilotHooksJustInstalled ??
|
|
343
|
+
(() => {
|
|
344
|
+
try {
|
|
345
|
+
return hasNrToolUseHooks(readJsonFileStrict(opts.copilotHooksPath));
|
|
346
|
+
}
|
|
347
|
+
catch {
|
|
348
|
+
return false;
|
|
349
|
+
}
|
|
350
|
+
})();
|
|
351
|
+
if (!copilotHooksPresent)
|
|
352
|
+
return { applied: false, reason: 'copilot-hooks-absent' };
|
|
353
|
+
try {
|
|
354
|
+
const existing = readJsonFileStrict(opts.vsCodeSettingsPath);
|
|
355
|
+
const merged = mergeVsCodeSettings(existing, {
|
|
356
|
+
hookFilesLocationsPatch: generateHookFilesLocationsPatch(opts.claudeSettingsPath)[HOOK_FILE_LOCATIONS_SETTING],
|
|
357
|
+
});
|
|
358
|
+
writeJsonFile(opts.vsCodeSettingsPath, merged, opts.additionalAllowedBase);
|
|
359
|
+
return { applied: true };
|
|
360
|
+
}
|
|
361
|
+
catch {
|
|
362
|
+
return { applied: false, reason: 'error' };
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
export function installCopilotSdkExtension() {
|
|
366
|
+
const destPath = copilotSdkExtensionInstallPath();
|
|
367
|
+
if (existsSync(destPath))
|
|
368
|
+
return { copied: false, reason: 'exists' };
|
|
369
|
+
let sourceDir;
|
|
370
|
+
try {
|
|
371
|
+
sourceDir = resolveDataDir('copilot-sdk-extension');
|
|
372
|
+
}
|
|
373
|
+
catch (err) {
|
|
374
|
+
return { copied: false, reason: errMsg(err) };
|
|
375
|
+
}
|
|
376
|
+
try {
|
|
377
|
+
mkdirSync(dirname(destPath), { recursive: true, mode: 0o700 });
|
|
378
|
+
copyFileSync(resolve(sourceDir, 'extension.mjs'), destPath);
|
|
379
|
+
return { copied: true };
|
|
380
|
+
}
|
|
381
|
+
catch (err) {
|
|
382
|
+
return { copied: false, reason: errMsg(err) };
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
//# sourceMappingURL=copilot-install-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-install-helper.js","sourceRoot":"","sources":["../../src/install/copilot-install-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,5 +28,6 @@ export interface DashboardDaemonStatus {
|
|
|
28
28
|
export declare function installDashboardDaemon(binaryPath: string): void;
|
|
29
29
|
export declare function removeDashboardDaemon(): boolean;
|
|
30
30
|
export declare function getDashboardDaemonStatus(): DashboardDaemonStatus;
|
|
31
|
+
export declare function resolveNamedBinaryOnPath(name: string): string | null;
|
|
31
32
|
export declare function resolveBinaryPath(): string | null;
|
|
32
33
|
//# sourceMappingURL=schedule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/install/schedule.ts"],"names":[],"mappings":"AA4BA,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO7C;AAKD,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAUD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC;AAMD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,2BAA2B,CA0BjF;AAcD,wBAAgB,cAAc,IAAI,MAAM,CAiBvC;AAoCD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAetF;AAED,wBAAgB,cAAc,IAAI,OAAO,CAuBxC;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAoBlD;AAiCD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,uHAAuH;IACvH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAe/D;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAuB/C;AAED,wBAAgB,wBAAwB,IAAI,qBAAqB,CAkBhE;
|
|
1
|
+
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/install/schedule.ts"],"names":[],"mappings":"AA4BA,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO7C;AAKD,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAUD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC;AAMD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,2BAA2B,CA0BjF;AAcD,wBAAgB,cAAc,IAAI,MAAM,CAiBvC;AAoCD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAetF;AAED,wBAAgB,cAAc,IAAI,OAAO,CAuBxC;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAoBlD;AAiCD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,uHAAuH;IACvH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAe/D;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAuB/C;AAED,wBAAgB,wBAAwB,IAAI,qBAAqB,CAkBhE;AAQD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBpE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAEjD"}
|
package/dist/install/schedule.js
CHANGED
|
@@ -290,17 +290,17 @@ export function getDashboardDaemonStatus() {
|
|
|
290
290
|
}
|
|
291
291
|
}
|
|
292
292
|
const WINDOWS_BINARY_SUFFIXES = ['.cmd', '.ps1', ''];
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
293
|
+
// Walk PATH directly — avoids hardcoding the `which` location and is safe
|
|
294
|
+
// for Nix/Homebrew installs where binaries live outside /usr/bin.
|
|
295
|
+
// PATH is ':'-delimited on POSIX and ';'-delimited on Windows (whose
|
|
296
|
+
// entries themselves contain drive-letter colons, e.g. "C:\foo").
|
|
297
|
+
export function resolveNamedBinaryOnPath(name) {
|
|
298
298
|
const delimiter = process.platform === 'win32' ? ';' : ':';
|
|
299
299
|
const pathDirs = (process.env.PATH ?? '').split(delimiter).filter(Boolean);
|
|
300
300
|
const suffixes = process.platform === 'win32' ? WINDOWS_BINARY_SUFFIXES : [''];
|
|
301
301
|
for (const dir of pathDirs) {
|
|
302
302
|
for (const suffix of suffixes) {
|
|
303
|
-
const candidate = join(dir,
|
|
303
|
+
const candidate = join(dir, `${name}${suffix}`);
|
|
304
304
|
try {
|
|
305
305
|
if (statSync(candidate).isFile()) {
|
|
306
306
|
accessSync(candidate, constants.X_OK);
|
|
@@ -314,4 +314,7 @@ export function resolveBinaryPath() {
|
|
|
314
314
|
}
|
|
315
315
|
return null;
|
|
316
316
|
}
|
|
317
|
+
export function resolveBinaryPath() {
|
|
318
|
+
return resolveNamedBinaryOnPath('preflight');
|
|
319
|
+
}
|
|
317
320
|
//# sourceMappingURL=schedule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/install/schedule.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/install/schedule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-wizard.d.ts","sourceRoot":"","sources":["../../src/install/setup-wizard.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAA0B,gBAAgB,EAAwB,MAAM,cAAc,CAAC;AAC9F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAkBzC,UAAU,YAAY;IACpB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAkBD,MAAM,WAAW,4BAA4B;IAC3C,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,4BAA4B,GACjC,2BAA2B,CA6B7B;AA2CD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC;AAE9B,wBAAgB,WAAW,CACzB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC,EACnD,MAAM,EAAE;IACN,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,GACA,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAkB3C;AAcD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAOnF;AAED,wBAAsB,cAAc,CAAC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"setup-wizard.d.ts","sourceRoot":"","sources":["../../src/install/setup-wizard.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAA0B,gBAAgB,EAAwB,MAAM,cAAc,CAAC;AAC9F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAkBzC,UAAU,YAAY;IACpB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAkBD,MAAM,WAAW,4BAA4B;IAC3C,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,4BAA4B,GACjC,2BAA2B,CA6B7B;AA2CD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC;AAE9B,wBAAgB,WAAW,CACzB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC,EACnD,MAAM,EAAE;IACN,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,GACA,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAkB3C;AAcD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAOnF;AAED,wBAAsB,cAAc,CAAC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA6kBpF"}
|
|
@@ -495,6 +495,36 @@ export async function runSetupWizard(opts = {}) {
|
|
|
495
495
|
}
|
|
496
496
|
}
|
|
497
497
|
}
|
|
498
|
+
// Step 6c: Copilot hook install (GitHub Copilot CLI + VS Code Copilot Chat)
|
|
499
|
+
// Always asked, unconditionally — mirrors the Claude Code hooks question
|
|
500
|
+
// above exactly. Independent of mode, matching that question's own
|
|
501
|
+
// independence from mode: hook-based tool-call capture works the same
|
|
502
|
+
// regardless of where telemetry ships.
|
|
503
|
+
//
|
|
504
|
+
// Unlike the Claude step above, credentials ARE passed here even though
|
|
505
|
+
// config.json already has them — the Copilot CLI's own `copilot mcp add`
|
|
506
|
+
// bakes the literal license key/account ID into Copilot's own MCP
|
|
507
|
+
// config, which is separate from and doesn't read our config.json.
|
|
508
|
+
const installCopilotHooks = (await rl.question('\nInstall GitHub Copilot hooks now? Configures both the Copilot CLI and VS Code Copilot Chat [Y/n]: '))
|
|
509
|
+
.trim()
|
|
510
|
+
.toLowerCase();
|
|
511
|
+
if (installCopilotHooks !== 'n' && installCopilotHooks !== 'no') {
|
|
512
|
+
print('\nRunning Copilot installer...');
|
|
513
|
+
const copilotInstallArgs = ['install', '--copilot'];
|
|
514
|
+
if (mode !== 'local' && licenseKey && accountId) {
|
|
515
|
+
copilotInstallArgs.push('--license-key', licenseKey, '--account-id', accountId);
|
|
516
|
+
}
|
|
517
|
+
try {
|
|
518
|
+
await runInstallCli(copilotInstallArgs);
|
|
519
|
+
print('Copilot hooks installed.');
|
|
520
|
+
}
|
|
521
|
+
catch {
|
|
522
|
+
// handleCopilotInstall already printed the specific error. Set exit
|
|
523
|
+
// code and continue — daemon, schedule, and dashboard steps do not
|
|
524
|
+
// depend on Copilot hook installation.
|
|
525
|
+
process.exitCode = 1;
|
|
526
|
+
}
|
|
527
|
+
}
|
|
498
528
|
// Step 6b: Always-on background dashboard daemon
|
|
499
529
|
if ((mode === 'local' || mode === 'both') && process.platform === 'darwin') {
|
|
500
530
|
const binaryPath = resolveBinaryPath();
|