agent-recorder 0.0.8 → 0.0.10
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/package.json +1 -1
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.js +1 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/cli/commands/configure-wrap.d.ts +15 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/configure-wrap.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/configure-wrap.js +207 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/configure-wrap.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/configure.d.ts +2 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/configure.d.ts.map +1 -1
- package/vendor/node_modules/@agent-recorder/cli/commands/configure.js +117 -1
- package/vendor/node_modules/@agent-recorder/cli/commands/configure.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.d.ts.map +1 -1
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.js +113 -19
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.test.js +152 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/install.d.ts +7 -1
- package/vendor/node_modules/@agent-recorder/cli/commands/install.d.ts.map +1 -1
- package/vendor/node_modules/@agent-recorder/cli/commands/install.js +98 -14
- package/vendor/node_modules/@agent-recorder/cli/commands/install.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/cli/commands/install.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/install.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/install.test.js +173 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/install.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/config/hubify.d.ts +51 -0
- package/vendor/node_modules/@agent-recorder/cli/config/hubify.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/config/hubify.js +125 -0
- package/vendor/node_modules/@agent-recorder/cli/config/hubify.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/config/hubify.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/config/hubify.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/config/hubify.test.js +329 -0
- package/vendor/node_modules/@agent-recorder/cli/config/hubify.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/index.js +18 -3
- package/vendor/node_modules/@agent-recorder/cli/index.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/core/claude-config.d.ts +32 -0
- package/vendor/node_modules/@agent-recorder/core/claude-config.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/claude-config.js +65 -0
- package/vendor/node_modules/@agent-recorder/core/claude-config.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/config.d.ts +4 -0
- package/vendor/node_modules/@agent-recorder/core/config.d.ts.map +1 -1
- package/vendor/node_modules/@agent-recorder/core/config.js +6 -0
- package/vendor/node_modules/@agent-recorder/core/config.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/core/db/events.d.ts +3 -0
- package/vendor/node_modules/@agent-recorder/core/db/events.d.ts.map +1 -1
- package/vendor/node_modules/@agent-recorder/core/db/events.js +8 -3
- package/vendor/node_modules/@agent-recorder/core/db/events.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/core/db/events.test.js +34 -0
- package/vendor/node_modules/@agent-recorder/core/db/events.test.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/core/index.d.ts +4 -1
- package/vendor/node_modules/@agent-recorder/core/index.d.ts.map +1 -1
- package/vendor/node_modules/@agent-recorder/core/index.js +4 -1
- package/vendor/node_modules/@agent-recorder/core/index.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/core/migrations/006_add_upstream_key.sql +7 -0
- package/vendor/node_modules/@agent-recorder/core/providers/index.d.ts +9 -0
- package/vendor/node_modules/@agent-recorder/core/providers/index.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/providers/index.js +9 -0
- package/vendor/node_modules/@agent-recorder/core/providers/index.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/providers/io.d.ts +36 -0
- package/vendor/node_modules/@agent-recorder/core/providers/io.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/providers/io.js +88 -0
- package/vendor/node_modules/@agent-recorder/core/providers/io.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/providers/io.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/core/providers/io.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/providers/io.test.js +248 -0
- package/vendor/node_modules/@agent-recorder/core/providers/io.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/providers/types.d.ts +36 -0
- package/vendor/node_modules/@agent-recorder/core/providers/types.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/providers/types.js +6 -0
- package/vendor/node_modules/@agent-recorder/core/providers/types.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/types/events.d.ts +2 -0
- package/vendor/node_modules/@agent-recorder/core/types/events.d.ts.map +1 -1
- package/vendor/node_modules/@agent-recorder/core/wrap-utils.d.ts +42 -0
- package/vendor/node_modules/@agent-recorder/core/wrap-utils.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/wrap-utils.js +80 -0
- package/vendor/node_modules/@agent-recorder/core/wrap-utils.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/index.d.ts.map +1 -1
- package/vendor/node_modules/@agent-recorder/service/index.js +19 -0
- package/vendor/node_modules/@agent-recorder/service/index.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/service/mcp/auto-wrap-manager.d.ts +43 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/auto-wrap-manager.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/auto-wrap-manager.js +221 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/auto-wrap-manager.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/hub.test.d.ts +6 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/hub.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/hub.test.js +319 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/hub.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts.map +1 -1
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js +267 -17
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.js +165 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/service/mcp/recorder.d.ts +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/recorder.d.ts.map +1 -1
- package/vendor/node_modules/@agent-recorder/service/mcp/recorder.js +5 -2
- package/vendor/node_modules/@agent-recorder/service/mcp/recorder.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/service/routes/events.d.ts.map +1 -1
- package/vendor/node_modules/@agent-recorder/service/routes/events.js +1 -0
- package/vendor/node_modules/@agent-recorder/service/routes/events.js.map +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Doctor command - comprehensive health check and configuration diagnostics.
|
|
3
3
|
*/
|
|
4
|
-
import { loadConfig, readPidFile, isProcessRunning, } from "@agent-recorder/core";
|
|
4
|
+
import { loadConfig, readPidFile, isProcessRunning, readProvidersFile, getDefaultProvidersPath, } from "@agent-recorder/core";
|
|
5
5
|
import { detectClaudeConfig, readJsonFile, getMcpServerEntry, formatPath, getV2ConfigPath, getLegacyConfigPath, } from "../config/claude-paths.js";
|
|
6
6
|
/**
|
|
7
7
|
* Format uptime in human-readable form.
|
|
@@ -91,6 +91,43 @@ async function categorizeError(url) {
|
|
|
91
91
|
return "unreachable";
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Check if an HTTP provider is reachable by calling tools/list.
|
|
96
|
+
*/
|
|
97
|
+
async function checkHttpProvider(provider) {
|
|
98
|
+
try {
|
|
99
|
+
const response = await fetch(provider.url, {
|
|
100
|
+
method: "POST",
|
|
101
|
+
headers: {
|
|
102
|
+
"Content-Type": "application/json",
|
|
103
|
+
Accept: "application/json",
|
|
104
|
+
...(provider.headers ?? {}),
|
|
105
|
+
},
|
|
106
|
+
body: JSON.stringify({
|
|
107
|
+
jsonrpc: "2.0",
|
|
108
|
+
method: "tools/list",
|
|
109
|
+
id: 1,
|
|
110
|
+
}),
|
|
111
|
+
signal: AbortSignal.timeout(3000),
|
|
112
|
+
});
|
|
113
|
+
return response.ok;
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Check if Claude config is in hubify mode (only agent-recorder entry).
|
|
121
|
+
*/
|
|
122
|
+
function isHubified(configData) {
|
|
123
|
+
if (!configData || typeof configData !== "object")
|
|
124
|
+
return false;
|
|
125
|
+
const config = configData;
|
|
126
|
+
if (!config.mcpServers || typeof config.mcpServers !== "object")
|
|
127
|
+
return false;
|
|
128
|
+
const keys = Object.keys(config.mcpServers);
|
|
129
|
+
return keys.length === 1 && keys[0] === "agent-recorder";
|
|
130
|
+
}
|
|
94
131
|
export async function doctorCommand() {
|
|
95
132
|
const config = loadConfig();
|
|
96
133
|
const restBaseUrl = `http://127.0.0.1:${config.listenPort}`;
|
|
@@ -178,30 +215,75 @@ export async function doctorCommand() {
|
|
|
178
215
|
}
|
|
179
216
|
}
|
|
180
217
|
console.log("");
|
|
181
|
-
// ===
|
|
182
|
-
console.log("
|
|
183
|
-
console.log("
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
218
|
+
// === HUB MODE ===
|
|
219
|
+
console.log("Hub Mode");
|
|
220
|
+
console.log("========");
|
|
221
|
+
const providersPath = getDefaultProvidersPath();
|
|
222
|
+
let providersFile;
|
|
223
|
+
try {
|
|
224
|
+
providersFile = readProvidersFile(providersPath);
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
providersFile = null;
|
|
228
|
+
}
|
|
229
|
+
const httpProviders = providersFile?.providers.filter((p) => p.type === "http") ?? [];
|
|
230
|
+
const hubEnabled = httpProviders.length > 0;
|
|
231
|
+
console.log(`Status: ${hubEnabled ? "enabled" : "disabled"}`);
|
|
232
|
+
if (hubEnabled) {
|
|
233
|
+
console.log(`Providers: ${formatPath(providersPath)}`);
|
|
234
|
+
console.log(`Total: ${providersFile.providers.length}`);
|
|
235
|
+
console.log(`HTTP: ${httpProviders.length}`);
|
|
236
|
+
// Check reachability of HTTP providers
|
|
237
|
+
const reachabilityResults = await Promise.all(httpProviders.map((p) => checkHttpProvider(p)));
|
|
238
|
+
const reachableCount = reachabilityResults.filter((r) => r).length;
|
|
239
|
+
console.log(`Reachable: ${reachableCount}/${httpProviders.length}`);
|
|
240
|
+
if (reachableCount < httpProviders.length) {
|
|
241
|
+
hasErrors = true;
|
|
242
|
+
suggestions.push("Check unreachable HTTP providers (see providers.json)");
|
|
243
|
+
}
|
|
244
|
+
// Check if Claude config is hubified
|
|
245
|
+
if (claudeConfig.kind !== "none" && claudeConfig.path) {
|
|
246
|
+
const configData = readJsonFile(claudeConfig.path);
|
|
247
|
+
if (configData && !isHubified(configData)) {
|
|
248
|
+
console.log("Claude Config: not hubified");
|
|
249
|
+
suggestions.push("Run: agent-recorder install (or configure claude --hubify)");
|
|
250
|
+
}
|
|
251
|
+
}
|
|
189
252
|
}
|
|
190
253
|
else {
|
|
191
|
-
console.log(
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
254
|
+
console.log(" (no HTTP providers configured)");
|
|
255
|
+
if (claudeConfig.kind !== "none") {
|
|
256
|
+
suggestions.push("Run: agent-recorder install to set up hub mode");
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
console.log("");
|
|
260
|
+
// === DOWNSTREAM MCP ===
|
|
261
|
+
// Only show this section if hub mode is disabled (legacy mode)
|
|
262
|
+
if (!hubEnabled) {
|
|
263
|
+
console.log("Downstream MCP (Legacy Mode)");
|
|
264
|
+
console.log("=============================");
|
|
265
|
+
if (!config.downstreamMcpUrl) {
|
|
266
|
+
console.log("Configured: not set");
|
|
267
|
+
console.log(" (proxy will return 503 for MCP requests)");
|
|
268
|
+
suggestions.push("Set AR_DOWNSTREAM_MCP_URL environment variable");
|
|
269
|
+
suggestions.push("Or test with: agent-recorder mock-mcp --port 9999");
|
|
195
270
|
}
|
|
196
271
|
else {
|
|
197
|
-
console.log(`
|
|
198
|
-
|
|
199
|
-
if (errorType === "
|
|
200
|
-
|
|
272
|
+
console.log(`Configured: ${config.downstreamMcpUrl}`);
|
|
273
|
+
const errorType = await categorizeError(config.downstreamMcpUrl);
|
|
274
|
+
if (errorType === "ok") {
|
|
275
|
+
console.log("Reachable: \u2713");
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
console.log(`Reachable: \u2717 (${errorType})`);
|
|
279
|
+
hasErrors = true;
|
|
280
|
+
if (errorType === "connection refused") {
|
|
281
|
+
suggestions.push("Check if downstream MCP server is running");
|
|
282
|
+
}
|
|
201
283
|
}
|
|
202
284
|
}
|
|
285
|
+
console.log("");
|
|
203
286
|
}
|
|
204
|
-
console.log("");
|
|
205
287
|
// === RECORDING HEALTH ===
|
|
206
288
|
console.log("Recording");
|
|
207
289
|
console.log("=========");
|
|
@@ -218,7 +300,19 @@ export async function doctorCommand() {
|
|
|
218
300
|
// Get latest tool_call
|
|
219
301
|
const latestEvent = await fetchJson(`${restBaseUrl}/api/sessions/${currentSession.id}/events/latest-tool-call`);
|
|
220
302
|
if (latestEvent) {
|
|
221
|
-
const
|
|
303
|
+
const parts = [];
|
|
304
|
+
// Show provider if available (hub mode)
|
|
305
|
+
if (latestEvent.upstreamKey) {
|
|
306
|
+
parts.push(latestEvent.upstreamKey);
|
|
307
|
+
}
|
|
308
|
+
// Show tool name
|
|
309
|
+
if (latestEvent.toolName) {
|
|
310
|
+
parts.push(latestEvent.toolName);
|
|
311
|
+
}
|
|
312
|
+
else if (latestEvent.mcpMethod) {
|
|
313
|
+
parts.push(latestEvent.mcpMethod);
|
|
314
|
+
}
|
|
315
|
+
const name = parts.length > 0 ? parts.join(".") : "unknown";
|
|
222
316
|
console.log(`Last tool_call: ${formatTimeAgo(latestEvent.startedAt)} (${name})`);
|
|
223
317
|
}
|
|
224
318
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.test.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for doctor command hub mode integration.
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
|
|
5
|
+
import { doctorCommand } from "./doctor.js";
|
|
6
|
+
import * as fs from "node:fs";
|
|
7
|
+
import * as os from "node:os";
|
|
8
|
+
import * as path from "node:path";
|
|
9
|
+
describe("Doctor Command - Hub Mode", () => {
|
|
10
|
+
let tempDir;
|
|
11
|
+
let originalHome;
|
|
12
|
+
let consoleLogSpy;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
// Create temp directory to act as home
|
|
15
|
+
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "ar-doctor-test-"));
|
|
16
|
+
originalHome = process.env.HOME || "";
|
|
17
|
+
process.env.HOME = tempDir;
|
|
18
|
+
// Spy on console.log to capture output
|
|
19
|
+
consoleLogSpy = vi.spyOn(console, "log").mockImplementation(() => { });
|
|
20
|
+
// Create .agent-recorder directory
|
|
21
|
+
const dataDir = path.join(tempDir, ".agent-recorder");
|
|
22
|
+
fs.mkdirSync(dataDir, { recursive: true });
|
|
23
|
+
});
|
|
24
|
+
afterEach(() => {
|
|
25
|
+
// Restore original HOME
|
|
26
|
+
process.env.HOME = originalHome;
|
|
27
|
+
// Restore console.log
|
|
28
|
+
consoleLogSpy.mockRestore();
|
|
29
|
+
// Cleanup temp directory
|
|
30
|
+
if (fs.existsSync(tempDir)) {
|
|
31
|
+
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
it("shows hub mode disabled when no providers exist", async () => {
|
|
35
|
+
// Run doctor command (will exit with error code, but we capture output)
|
|
36
|
+
try {
|
|
37
|
+
await doctorCommand();
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// Expected to fail since daemon isn't running
|
|
41
|
+
}
|
|
42
|
+
// Get all console.log calls
|
|
43
|
+
const output = consoleLogSpy.mock.calls.map((call) => call[0]).join("\n");
|
|
44
|
+
// Verify hub mode section exists
|
|
45
|
+
expect(output).toContain("Hub Mode");
|
|
46
|
+
expect(output).toContain("Status: disabled");
|
|
47
|
+
expect(output).toContain("(no HTTP providers configured)");
|
|
48
|
+
});
|
|
49
|
+
it("shows hub mode enabled when HTTP providers exist", async () => {
|
|
50
|
+
// Create providers.json with HTTP providers
|
|
51
|
+
const dataDir = path.join(tempDir, ".agent-recorder");
|
|
52
|
+
const providersPath = path.join(dataDir, "providers.json");
|
|
53
|
+
const providersData = {
|
|
54
|
+
version: 1,
|
|
55
|
+
providers: [
|
|
56
|
+
{
|
|
57
|
+
id: "github",
|
|
58
|
+
type: "http",
|
|
59
|
+
url: "http://127.0.0.1:9999/",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: "playwright",
|
|
63
|
+
type: "stdio",
|
|
64
|
+
command: "npx",
|
|
65
|
+
args: ["-y", "@playwright/mcp"],
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
};
|
|
69
|
+
fs.writeFileSync(providersPath, JSON.stringify(providersData, null, 2));
|
|
70
|
+
// Run doctor command
|
|
71
|
+
try {
|
|
72
|
+
await doctorCommand();
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// Expected to fail since daemon isn't running
|
|
76
|
+
}
|
|
77
|
+
// Get all console.log calls
|
|
78
|
+
const output = consoleLogSpy.mock.calls.map((call) => call[0]).join("\n");
|
|
79
|
+
// Verify hub mode section shows enabled
|
|
80
|
+
expect(output).toContain("Hub Mode");
|
|
81
|
+
expect(output).toContain("Status: enabled");
|
|
82
|
+
expect(output).toContain("Total: 2");
|
|
83
|
+
expect(output).toContain("HTTP: 1");
|
|
84
|
+
expect(output).toContain("Reachable: 0/1"); // Provider not actually running
|
|
85
|
+
});
|
|
86
|
+
it("suggests hubify when Claude config exists but is not hubified", async () => {
|
|
87
|
+
// Create providers.json
|
|
88
|
+
const dataDir = path.join(tempDir, ".agent-recorder");
|
|
89
|
+
const providersPath = path.join(dataDir, "providers.json");
|
|
90
|
+
fs.writeFileSync(providersPath, JSON.stringify({
|
|
91
|
+
version: 1,
|
|
92
|
+
providers: [
|
|
93
|
+
{ id: "github", type: "http", url: "http://127.0.0.1:9999/" },
|
|
94
|
+
],
|
|
95
|
+
}));
|
|
96
|
+
// Create non-hubified Claude config
|
|
97
|
+
const claudeDir = path.join(tempDir, ".claude");
|
|
98
|
+
fs.mkdirSync(claudeDir, { recursive: true });
|
|
99
|
+
const claudeConfigPath = path.join(claudeDir, "settings.json");
|
|
100
|
+
fs.writeFileSync(claudeConfigPath, JSON.stringify({
|
|
101
|
+
mcpServers: {
|
|
102
|
+
github: { url: "http://127.0.0.1:3000/" },
|
|
103
|
+
playwright: { command: "npx", args: ["@playwright/mcp"] },
|
|
104
|
+
},
|
|
105
|
+
}));
|
|
106
|
+
// Run doctor command
|
|
107
|
+
try {
|
|
108
|
+
await doctorCommand();
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// Expected to fail
|
|
112
|
+
}
|
|
113
|
+
// Get all console.log calls
|
|
114
|
+
const output = consoleLogSpy.mock.calls.map((call) => call[0]).join("\n");
|
|
115
|
+
// Verify it shows not hubified
|
|
116
|
+
expect(output).toContain("Claude Config: not hubified");
|
|
117
|
+
expect(output).toContain("Suggested Actions");
|
|
118
|
+
expect(output).toContain("install (or configure claude --hubify)");
|
|
119
|
+
});
|
|
120
|
+
it("does not suggest hubify when Claude config is hubified", async () => {
|
|
121
|
+
// Create providers.json
|
|
122
|
+
const dataDir = path.join(tempDir, ".agent-recorder");
|
|
123
|
+
const providersPath = path.join(dataDir, "providers.json");
|
|
124
|
+
fs.writeFileSync(providersPath, JSON.stringify({
|
|
125
|
+
version: 1,
|
|
126
|
+
providers: [
|
|
127
|
+
{ id: "github", type: "http", url: "http://127.0.0.1:9999/" },
|
|
128
|
+
],
|
|
129
|
+
}));
|
|
130
|
+
// Create hubified Claude config (only agent-recorder entry)
|
|
131
|
+
const claudeDir = path.join(tempDir, ".claude");
|
|
132
|
+
fs.mkdirSync(claudeDir, { recursive: true });
|
|
133
|
+
const claudeConfigPath = path.join(claudeDir, "settings.json");
|
|
134
|
+
fs.writeFileSync(claudeConfigPath, JSON.stringify({
|
|
135
|
+
mcpServers: {
|
|
136
|
+
"agent-recorder": { url: "http://127.0.0.1:8788/" },
|
|
137
|
+
},
|
|
138
|
+
}));
|
|
139
|
+
// Run doctor command
|
|
140
|
+
try {
|
|
141
|
+
await doctorCommand();
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// Expected to fail
|
|
145
|
+
}
|
|
146
|
+
// Get all console.log calls
|
|
147
|
+
const output = consoleLogSpy.mock.calls.map((call) => call[0]).join("\n");
|
|
148
|
+
// Verify it does NOT show "not hubified"
|
|
149
|
+
expect(output).not.toContain("Claude Config: not hubified");
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
//# sourceMappingURL=doctor.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.test.js","sourceRoot":"","sources":["../../src/commands/doctor.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Install command - set up ~/.agent-recorder/ and print configuration.
|
|
3
3
|
* This command is idempotent - it won't overwrite existing files.
|
|
4
|
+
* Automatically configures Claude Code with hubify mode unless --no-configure is specified.
|
|
4
5
|
*/
|
|
6
|
+
export interface InstallOptions {
|
|
7
|
+
/** Skip automatic Claude Code configuration (default: false) */
|
|
8
|
+
noConfigure?: boolean;
|
|
9
|
+
}
|
|
5
10
|
/**
|
|
6
11
|
* Install Agent Recorder - create data directory and env file template.
|
|
7
12
|
* This command is idempotent:
|
|
8
13
|
* - Creates ~/.agent-recorder/ if it doesn't exist
|
|
9
14
|
* - Creates ~/.agent-recorder/.env ONLY if it doesn't exist
|
|
10
15
|
* - Never overwrites user files
|
|
16
|
+
* - Automatically configures Claude Code with hubify mode unless --no-configure
|
|
11
17
|
*/
|
|
12
|
-
export declare function installCommand(): Promise<void>;
|
|
18
|
+
export declare function installCommand(options?: InstallOptions): Promise<void>;
|
|
13
19
|
//# sourceMappingURL=install.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsCH,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAsDf"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Install command - set up ~/.agent-recorder/ and print configuration.
|
|
3
3
|
* This command is idempotent - it won't overwrite existing files.
|
|
4
|
+
* Automatically configures Claude Code with hubify mode unless --no-configure is specified.
|
|
4
5
|
*/
|
|
5
6
|
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
6
7
|
import { homedir } from "node:os";
|
|
7
8
|
import { join } from "node:path";
|
|
8
|
-
import { loadConfig } from "@agent-recorder/core";
|
|
9
|
+
import { loadConfig, readProvidersFile, writeProvidersFile, getDefaultProvidersPath, } from "@agent-recorder/core";
|
|
10
|
+
import { detectClaudeConfig, readJsonFile, writeJsonFileAtomic, createBackup, formatPath, } from "../config/claude-paths.js";
|
|
11
|
+
import { hubifyClaudeConfig, mergeProviders } from "../config/hubify.js";
|
|
9
12
|
/** Default .env file template */
|
|
10
13
|
const ENV_TEMPLATE = `# Agent Recorder Configuration
|
|
11
14
|
# See docs/bootstrap.md for more options
|
|
@@ -29,11 +32,13 @@ AR_MCP_PROXY_PORT=8788
|
|
|
29
32
|
* - Creates ~/.agent-recorder/ if it doesn't exist
|
|
30
33
|
* - Creates ~/.agent-recorder/.env ONLY if it doesn't exist
|
|
31
34
|
* - Never overwrites user files
|
|
35
|
+
* - Automatically configures Claude Code with hubify mode unless --no-configure
|
|
32
36
|
*/
|
|
33
|
-
export async function installCommand() {
|
|
37
|
+
export async function installCommand(options = {}) {
|
|
34
38
|
const config = loadConfig();
|
|
35
39
|
const dataDir = join(homedir(), ".agent-recorder");
|
|
36
40
|
const envFile = join(dataDir, ".env");
|
|
41
|
+
const upstreamsFile = join(dataDir, "upstreams.json");
|
|
37
42
|
// Create data directory if missing
|
|
38
43
|
if (!existsSync(dataDir)) {
|
|
39
44
|
mkdirSync(dataDir, { recursive: true });
|
|
@@ -50,6 +55,25 @@ export async function installCommand() {
|
|
|
50
55
|
else {
|
|
51
56
|
console.log(`Already exists: ${envFile}`);
|
|
52
57
|
}
|
|
58
|
+
// Create upstreams.json ONLY if it doesn't exist
|
|
59
|
+
if (!existsSync(upstreamsFile)) {
|
|
60
|
+
writeFileSync(upstreamsFile, "{}\n");
|
|
61
|
+
console.log(`Created: ${upstreamsFile}`);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
console.log(`Already exists: ${upstreamsFile}`);
|
|
65
|
+
}
|
|
66
|
+
console.log("");
|
|
67
|
+
// Automatically configure Claude Code with hubify mode unless --no-configure
|
|
68
|
+
if (!options.noConfigure) {
|
|
69
|
+
await runAutoHubify(config);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
console.log("Skipped Claude Code configuration (--no-configure specified)");
|
|
73
|
+
console.log("");
|
|
74
|
+
console.log("To configure Claude Code manually, run:");
|
|
75
|
+
console.log(" agent-recorder configure claude --hubify");
|
|
76
|
+
}
|
|
53
77
|
// Print next steps
|
|
54
78
|
console.log(`
|
|
55
79
|
Agent Recorder installed!
|
|
@@ -57,21 +81,81 @@ Agent Recorder installed!
|
|
|
57
81
|
Data directory: ${dataDir}
|
|
58
82
|
Env file: ${envFile}
|
|
59
83
|
|
|
60
|
-
Claude Code v2 (recommended):
|
|
61
|
-
Add to ~/.claude/settings.json:
|
|
62
|
-
|
|
63
|
-
{
|
|
64
|
-
"mcpServers": {
|
|
65
|
-
"agent-recorder": {
|
|
66
|
-
"url": "http://127.0.0.1:${config.mcpProxyPort}/"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
84
|
Next steps:
|
|
72
85
|
1. Edit ${envFile} if needed
|
|
73
86
|
2. Start the daemon: agent-recorder start --env-file ${envFile}
|
|
74
|
-
3. Restart Claude Code to
|
|
87
|
+
3. Restart Claude Code to apply changes
|
|
75
88
|
`);
|
|
76
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Automatically configure Claude Code with hubify mode.
|
|
92
|
+
* This is the equivalent of running: agent-recorder configure claude --hubify
|
|
93
|
+
*/
|
|
94
|
+
async function runAutoHubify(config) {
|
|
95
|
+
const expectedUrl = `http://127.0.0.1:${config.mcpProxyPort}/`;
|
|
96
|
+
// Detect Claude config
|
|
97
|
+
const detected = detectClaudeConfig();
|
|
98
|
+
if (detected.kind === "none" || !detected.path) {
|
|
99
|
+
console.log("No Claude Code config found.");
|
|
100
|
+
console.log("Claude Code will need to be configured manually.");
|
|
101
|
+
console.log("");
|
|
102
|
+
console.log("To configure later, run:");
|
|
103
|
+
console.log(" agent-recorder configure claude --hubify");
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const configPath = detected.path;
|
|
107
|
+
// Read existing config
|
|
108
|
+
const existingConfig = readJsonFile(configPath);
|
|
109
|
+
if (existingConfig === null) {
|
|
110
|
+
console.log(`Error: Could not read config at ${formatPath(configPath)}`);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
// Transform config to hubify mode
|
|
114
|
+
const hubifyResult = hubifyClaudeConfig(existingConfig, expectedUrl);
|
|
115
|
+
// Get mcpServers keys before and after
|
|
116
|
+
const beforeKeys = Object.keys(existingConfig.mcpServers ?? {});
|
|
117
|
+
const afterKeys = ["agent-recorder"];
|
|
118
|
+
// Create backup
|
|
119
|
+
const backupPath = createBackup(configPath);
|
|
120
|
+
// Write updated Claude config
|
|
121
|
+
writeJsonFileAtomic(configPath, hubifyResult.newClaudeConfig);
|
|
122
|
+
// Merge providers into providers.json
|
|
123
|
+
const providersPath = getDefaultProvidersPath();
|
|
124
|
+
const existingProviders = readProvidersFile(providersPath);
|
|
125
|
+
const mergedProviders = mergeProviders(existingProviders, hubifyResult.providers);
|
|
126
|
+
writeProvidersFile(mergedProviders, providersPath);
|
|
127
|
+
// Report results
|
|
128
|
+
console.log("Configured Claude Code with hubify mode");
|
|
129
|
+
console.log("");
|
|
130
|
+
console.log(`Config file: ${formatPath(configPath)} (${detected.kind})`);
|
|
131
|
+
console.log(`Backup: ${formatPath(backupPath)}`);
|
|
132
|
+
console.log("");
|
|
133
|
+
console.log(`Imported ${hubifyResult.importedKeys.length} provider(s):`);
|
|
134
|
+
if (hubifyResult.importedKeys.length === 0) {
|
|
135
|
+
console.log(" (none - no existing MCP servers found)");
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
for (const key of hubifyResult.importedKeys) {
|
|
139
|
+
const provider = hubifyResult.providers.find((p) => p.id === key);
|
|
140
|
+
if (provider) {
|
|
141
|
+
console.log(` - ${key} (${provider.type}${provider.type === "http" ? `: ${provider.url}` : ""})`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (hubifyResult.skippedKeys.length > 0) {
|
|
146
|
+
console.log("");
|
|
147
|
+
console.log(`Skipped ${hubifyResult.skippedKeys.length} key(s):`);
|
|
148
|
+
for (const key of hubifyResult.skippedKeys) {
|
|
149
|
+
console.log(` - ${key} (already agent-recorder)`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
console.log("");
|
|
153
|
+
console.log("mcpServers updated:");
|
|
154
|
+
console.log(` Before: [${beforeKeys.join(", ") || "empty"}]`);
|
|
155
|
+
console.log(` After: [${afterKeys.join(", ")}]`);
|
|
156
|
+
console.log("");
|
|
157
|
+
console.log(`Providers file: ${formatPath(providersPath)}`);
|
|
158
|
+
console.log(`Total providers: ${mergedProviders.providers.length}`);
|
|
159
|
+
console.log("");
|
|
160
|
+
}
|
|
77
161
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzE,iCAAiC;AACjC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;CAepB,CAAC;AAOF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAA0B,EAAE;IAE5B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAEtD,mCAAmC;IACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,iDAAiD;IACjD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,YAAY,aAAa,EAAE,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,aAAa,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,6EAA6E;IAC7E,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;IAED,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC;;;kBAGI,OAAO;YACb,OAAO;;;UAGT,OAAO;uDACsC,OAAO;;CAE7D,CAAC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,aAAa,CAC1B,MAAqC;IAErC,MAAM,WAAW,GAAG,oBAAoB,MAAM,CAAC,YAAY,GAAG,CAAC;IAE/D,uBAAuB;IACvB,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IAEtC,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;IAEjC,uBAAuB;IACvB,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,mCAAmC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,kCAAkC;IAClC,MAAM,YAAY,GAAG,kBAAkB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAErE,uCAAuC;IACvC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAC3B,cAAc,CAAC,UAAsC,IAAI,EAAE,CAC7D,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAErC,gBAAgB;IAChB,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAE5C,8BAA8B;IAC9B,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;IAE9D,sCAAsC;IACtC,MAAM,aAAa,GAAG,uBAAuB,EAAE,CAAC;IAChD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,cAAc,CACpC,iBAAiB,EACjB,YAAY,CAAC,SAAS,CACvB,CAAC;IACF,kBAAkB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAEnD,iBAAiB;IACjB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,OAAO,CAAC,GAAG,CAAC,YAAY,YAAY,CAAC,YAAY,CAAC,MAAM,eAAe,CAAC,CAAC;IACzE,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;YAClE,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CACT,OAAO,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CACtF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,WAAW,YAAY,CAAC,WAAW,CAAC,MAAM,UAAU,CAAC,CAAC;QAClE,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,2BAA2B,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,oBAAoB,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.test.d.ts","sourceRoot":"","sources":["../../src/commands/install.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|