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
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for install command with automatic hubify configuration.
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
5
|
+
import { installCommand } from "./install.js";
|
|
6
|
+
import * as fs from "node:fs";
|
|
7
|
+
import * as os from "node:os";
|
|
8
|
+
import * as path from "node:path";
|
|
9
|
+
describe("Install Command", () => {
|
|
10
|
+
let tempDir;
|
|
11
|
+
let originalHome;
|
|
12
|
+
let mockClaudeConfigPath;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
// Create temp directory to act as home
|
|
15
|
+
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "ar-install-test-"));
|
|
16
|
+
originalHome = process.env.HOME || "";
|
|
17
|
+
process.env.HOME = tempDir;
|
|
18
|
+
// Create mock Claude config directory
|
|
19
|
+
const claudeDir = path.join(tempDir, ".claude");
|
|
20
|
+
fs.mkdirSync(claudeDir, { recursive: true });
|
|
21
|
+
mockClaudeConfigPath = path.join(claudeDir, "settings.json");
|
|
22
|
+
});
|
|
23
|
+
afterEach(() => {
|
|
24
|
+
// Restore original HOME
|
|
25
|
+
process.env.HOME = originalHome;
|
|
26
|
+
// Cleanup temp directory
|
|
27
|
+
if (fs.existsSync(tempDir)) {
|
|
28
|
+
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
it("creates .agent-recorder directory and files", async () => {
|
|
32
|
+
await installCommand({ noConfigure: true });
|
|
33
|
+
const dataDir = path.join(tempDir, ".agent-recorder");
|
|
34
|
+
const envFile = path.join(dataDir, ".env");
|
|
35
|
+
const upstreamsFile = path.join(dataDir, "upstreams.json");
|
|
36
|
+
expect(fs.existsSync(dataDir)).toBe(true);
|
|
37
|
+
expect(fs.existsSync(envFile)).toBe(true);
|
|
38
|
+
expect(fs.existsSync(upstreamsFile)).toBe(true);
|
|
39
|
+
// Verify .env has expected content
|
|
40
|
+
const envContent = fs.readFileSync(envFile, "utf-8");
|
|
41
|
+
expect(envContent).toContain("AR_LISTEN_PORT=8787");
|
|
42
|
+
expect(envContent).toContain("AR_MCP_PROXY_PORT=8788");
|
|
43
|
+
// Verify upstreams.json is empty object
|
|
44
|
+
const upstreamsContent = fs.readFileSync(upstreamsFile, "utf-8");
|
|
45
|
+
expect(upstreamsContent.trim()).toBe("{}");
|
|
46
|
+
});
|
|
47
|
+
it("is idempotent - does not overwrite existing files", async () => {
|
|
48
|
+
const dataDir = path.join(tempDir, ".agent-recorder");
|
|
49
|
+
const envFile = path.join(dataDir, ".env");
|
|
50
|
+
// First run
|
|
51
|
+
await installCommand({ noConfigure: true });
|
|
52
|
+
// Modify .env file
|
|
53
|
+
fs.writeFileSync(envFile, "# Custom config\nAR_LISTEN_PORT=9999\n");
|
|
54
|
+
// Second run
|
|
55
|
+
await installCommand({ noConfigure: true });
|
|
56
|
+
// Verify .env was NOT overwritten
|
|
57
|
+
const envContent = fs.readFileSync(envFile, "utf-8");
|
|
58
|
+
expect(envContent).toContain("# Custom config");
|
|
59
|
+
expect(envContent).toContain("AR_LISTEN_PORT=9999");
|
|
60
|
+
expect(envContent).not.toContain("AR_LISTEN_PORT=8787");
|
|
61
|
+
});
|
|
62
|
+
it("automatically hubifies Claude config when Claude config exists", async () => {
|
|
63
|
+
// Create mock Claude config with existing MCP servers
|
|
64
|
+
const mockConfig = {
|
|
65
|
+
mcpServers: {
|
|
66
|
+
github: {
|
|
67
|
+
url: "https://api.github.com/mcp",
|
|
68
|
+
},
|
|
69
|
+
playwright: {
|
|
70
|
+
command: "npx",
|
|
71
|
+
args: ["@playwright/mcp"],
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
otherSetting: "preserved",
|
|
75
|
+
};
|
|
76
|
+
fs.writeFileSync(mockClaudeConfigPath, JSON.stringify(mockConfig, null, 2));
|
|
77
|
+
// Run install (hubify should run automatically)
|
|
78
|
+
await installCommand();
|
|
79
|
+
// Verify Claude config was updated
|
|
80
|
+
const updatedConfig = JSON.parse(fs.readFileSync(mockClaudeConfigPath, "utf-8"));
|
|
81
|
+
// Should only have agent-recorder entry
|
|
82
|
+
expect(Object.keys(updatedConfig.mcpServers)).toEqual(["agent-recorder"]);
|
|
83
|
+
expect(updatedConfig.mcpServers["agent-recorder"]).toEqual({
|
|
84
|
+
url: "http://127.0.0.1:8788/",
|
|
85
|
+
});
|
|
86
|
+
// Should preserve other settings
|
|
87
|
+
expect(updatedConfig.otherSetting).toBe("preserved");
|
|
88
|
+
// Verify backup was created
|
|
89
|
+
const backupFiles = fs
|
|
90
|
+
.readdirSync(path.join(tempDir, ".claude"))
|
|
91
|
+
.filter((f) => f.startsWith("settings.json") && f.includes(".bak"));
|
|
92
|
+
expect(backupFiles.length).toBeGreaterThan(0);
|
|
93
|
+
// Verify providers.json was created
|
|
94
|
+
const providersPath = path.join(tempDir, ".agent-recorder", "providers.json");
|
|
95
|
+
expect(fs.existsSync(providersPath)).toBe(true);
|
|
96
|
+
const providersFile = JSON.parse(fs.readFileSync(providersPath, "utf-8"));
|
|
97
|
+
// Should have 2 providers (github and playwright)
|
|
98
|
+
expect(providersFile.version).toBe(1);
|
|
99
|
+
expect(providersFile.providers).toHaveLength(2);
|
|
100
|
+
const providerIds = providersFile.providers.map((p) => p.id);
|
|
101
|
+
expect(providerIds).toContain("github");
|
|
102
|
+
expect(providerIds).toContain("playwright");
|
|
103
|
+
// Verify provider types
|
|
104
|
+
const githubProvider = providersFile.providers.find((p) => p.id === "github");
|
|
105
|
+
expect(githubProvider.type).toBe("http");
|
|
106
|
+
expect(githubProvider.url).toBe("https://api.github.com/mcp");
|
|
107
|
+
const playwrightProvider = providersFile.providers.find((p) => p.id === "playwright");
|
|
108
|
+
expect(playwrightProvider.type).toBe("stdio");
|
|
109
|
+
expect(playwrightProvider.command).toBe("npx");
|
|
110
|
+
expect(playwrightProvider.args).toEqual(["@playwright/mcp"]);
|
|
111
|
+
});
|
|
112
|
+
it("skips hubify when --no-configure is specified", async () => {
|
|
113
|
+
// Create mock Claude config
|
|
114
|
+
const mockConfig = {
|
|
115
|
+
mcpServers: {
|
|
116
|
+
github: {
|
|
117
|
+
url: "https://api.github.com/mcp",
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
fs.writeFileSync(mockClaudeConfigPath, JSON.stringify(mockConfig, null, 2));
|
|
122
|
+
// Run install with --no-configure
|
|
123
|
+
await installCommand({ noConfigure: true });
|
|
124
|
+
// Verify Claude config was NOT modified
|
|
125
|
+
const config = JSON.parse(fs.readFileSync(mockClaudeConfigPath, "utf-8"));
|
|
126
|
+
expect(config.mcpServers.github).toEqual({
|
|
127
|
+
url: "https://api.github.com/mcp",
|
|
128
|
+
});
|
|
129
|
+
// Should not have agent-recorder entry
|
|
130
|
+
expect(config.mcpServers["agent-recorder"]).toBeUndefined();
|
|
131
|
+
// Verify providers.json was NOT created
|
|
132
|
+
const providersPath = path.join(tempDir, ".agent-recorder", "providers.json");
|
|
133
|
+
expect(fs.existsSync(providersPath)).toBe(false);
|
|
134
|
+
// Verify no backup was created
|
|
135
|
+
const backupFiles = fs
|
|
136
|
+
.readdirSync(path.join(tempDir, ".claude"))
|
|
137
|
+
.filter((f) => f.includes(".bak"));
|
|
138
|
+
expect(backupFiles).toHaveLength(0);
|
|
139
|
+
});
|
|
140
|
+
it("handles case when Claude config does not exist", async () => {
|
|
141
|
+
// Don't create Claude config - it doesn't exist
|
|
142
|
+
// Run install (should handle gracefully)
|
|
143
|
+
await installCommand();
|
|
144
|
+
// Should still create .agent-recorder directory
|
|
145
|
+
const dataDir = path.join(tempDir, ".agent-recorder");
|
|
146
|
+
expect(fs.existsSync(dataDir)).toBe(true);
|
|
147
|
+
// Should not crash or create providers.json
|
|
148
|
+
const providersPath = path.join(dataDir, "providers.json");
|
|
149
|
+
expect(fs.existsSync(providersPath)).toBe(false);
|
|
150
|
+
});
|
|
151
|
+
it("skips already-agent-recorder entries during hubify", async () => {
|
|
152
|
+
// Create mock Claude config that already has agent-recorder
|
|
153
|
+
const mockConfig = {
|
|
154
|
+
mcpServers: {
|
|
155
|
+
"agent-recorder": {
|
|
156
|
+
url: "http://127.0.0.1:8788/",
|
|
157
|
+
},
|
|
158
|
+
github: {
|
|
159
|
+
url: "https://api.github.com/mcp",
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
fs.writeFileSync(mockClaudeConfigPath, JSON.stringify(mockConfig, null, 2));
|
|
164
|
+
// Run install
|
|
165
|
+
await installCommand();
|
|
166
|
+
// Verify providers.json has only github (not agent-recorder)
|
|
167
|
+
const providersPath = path.join(tempDir, ".agent-recorder", "providers.json");
|
|
168
|
+
const providersFile = JSON.parse(fs.readFileSync(providersPath, "utf-8"));
|
|
169
|
+
expect(providersFile.providers).toHaveLength(1);
|
|
170
|
+
expect(providersFile.providers[0].id).toBe("github");
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
//# sourceMappingURL=install.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.test.js","sourceRoot":"","sources":["../../src/commands/install.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hubify transformation logic.
|
|
3
|
+
* Extracts MCP servers from Claude config and converts to providers.
|
|
4
|
+
*/
|
|
5
|
+
import type { Provider, ProvidersFile } from "@agent-recorder/core";
|
|
6
|
+
export interface McpServerEntry {
|
|
7
|
+
url?: string;
|
|
8
|
+
command?: string;
|
|
9
|
+
args?: string[];
|
|
10
|
+
env?: Record<string, string>;
|
|
11
|
+
headers?: Record<string, string>;
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
}
|
|
14
|
+
export interface HubifyResult {
|
|
15
|
+
/** New Claude config with only agent-recorder MCP entry */
|
|
16
|
+
newClaudeConfig: Record<string, unknown>;
|
|
17
|
+
/** Providers extracted from original config */
|
|
18
|
+
providers: Provider[];
|
|
19
|
+
/** Keys that were imported as providers */
|
|
20
|
+
importedKeys: string[];
|
|
21
|
+
/** Keys that were skipped (e.g., agent-recorder itself) */
|
|
22
|
+
skippedKeys: string[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Extract providers from Claude config mcpServers.
|
|
26
|
+
* Converts each MCP server entry to a Provider.
|
|
27
|
+
*
|
|
28
|
+
* @param mcpServers - The mcpServers object from Claude config
|
|
29
|
+
* @returns Array of providers
|
|
30
|
+
*/
|
|
31
|
+
export declare function extractProviders(mcpServers: Record<string, unknown>): Provider[];
|
|
32
|
+
/**
|
|
33
|
+
* Transform Claude config for hubify mode.
|
|
34
|
+
* Replaces mcpServers with only agent-recorder entry.
|
|
35
|
+
* Preserves all other Claude config fields.
|
|
36
|
+
*
|
|
37
|
+
* @param claudeConfig - Original Claude config
|
|
38
|
+
* @param agentRecorderUrl - URL for agent-recorder MCP entry
|
|
39
|
+
* @returns Hubify transformation result
|
|
40
|
+
*/
|
|
41
|
+
export declare function hubifyClaudeConfig(claudeConfig: Record<string, unknown>, agentRecorderUrl: string): HubifyResult;
|
|
42
|
+
/**
|
|
43
|
+
* Merge providers into providers file.
|
|
44
|
+
* Upserts providers by ID.
|
|
45
|
+
*
|
|
46
|
+
* @param existingFile - Existing providers file
|
|
47
|
+
* @param newProviders - Providers to merge
|
|
48
|
+
* @returns Updated providers file
|
|
49
|
+
*/
|
|
50
|
+
export declare function mergeProviders(existingFile: ProvidersFile, newProviders: Provider[]): ProvidersFile;
|
|
51
|
+
//# sourceMappingURL=hubify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hubify.d.ts","sourceRoot":"","sources":["../../src/config/hubify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,+CAA+C;IAC/C,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,QAAQ,EAAE,CAqDZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,gBAAgB,EAAE,MAAM,GACvB,YAAY,CAwCd;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,aAAa,EAC3B,YAAY,EAAE,QAAQ,EAAE,GACvB,aAAa,CAiBf"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hubify transformation logic.
|
|
3
|
+
* Extracts MCP servers from Claude config and converts to providers.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Extract providers from Claude config mcpServers.
|
|
7
|
+
* Converts each MCP server entry to a Provider.
|
|
8
|
+
*
|
|
9
|
+
* @param mcpServers - The mcpServers object from Claude config
|
|
10
|
+
* @returns Array of providers
|
|
11
|
+
*/
|
|
12
|
+
export function extractProviders(mcpServers) {
|
|
13
|
+
const providers = [];
|
|
14
|
+
for (const [key, entry] of Object.entries(mcpServers)) {
|
|
15
|
+
// Skip agent-recorder itself
|
|
16
|
+
if (key === "agent-recorder") {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
const serverEntry = entry;
|
|
23
|
+
// HTTP provider (has url field)
|
|
24
|
+
if (typeof serverEntry.url === "string") {
|
|
25
|
+
const httpProvider = {
|
|
26
|
+
id: key,
|
|
27
|
+
type: "http",
|
|
28
|
+
url: serverEntry.url,
|
|
29
|
+
...(serverEntry.headers && { headers: serverEntry.headers }),
|
|
30
|
+
};
|
|
31
|
+
providers.push(httpProvider);
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
// Stdio provider (has command field)
|
|
35
|
+
if (typeof serverEntry.command === "string") {
|
|
36
|
+
const args = Array.isArray(serverEntry.args)
|
|
37
|
+
? serverEntry.args
|
|
38
|
+
: undefined;
|
|
39
|
+
const env = serverEntry.env &&
|
|
40
|
+
typeof serverEntry.env === "object" &&
|
|
41
|
+
!Array.isArray(serverEntry.env)
|
|
42
|
+
? serverEntry.env
|
|
43
|
+
: undefined;
|
|
44
|
+
const stdioProvider = {
|
|
45
|
+
id: key,
|
|
46
|
+
type: "stdio",
|
|
47
|
+
command: serverEntry.command,
|
|
48
|
+
...(args && { args }),
|
|
49
|
+
...(env && { env }),
|
|
50
|
+
};
|
|
51
|
+
providers.push(stdioProvider);
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return providers;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Transform Claude config for hubify mode.
|
|
59
|
+
* Replaces mcpServers with only agent-recorder entry.
|
|
60
|
+
* Preserves all other Claude config fields.
|
|
61
|
+
*
|
|
62
|
+
* @param claudeConfig - Original Claude config
|
|
63
|
+
* @param agentRecorderUrl - URL for agent-recorder MCP entry
|
|
64
|
+
* @returns Hubify transformation result
|
|
65
|
+
*/
|
|
66
|
+
export function hubifyClaudeConfig(claudeConfig, agentRecorderUrl) {
|
|
67
|
+
// Extract existing mcpServers
|
|
68
|
+
const mcpServers = claudeConfig.mcpServers &&
|
|
69
|
+
typeof claudeConfig.mcpServers === "object" &&
|
|
70
|
+
!Array.isArray(claudeConfig.mcpServers)
|
|
71
|
+
? claudeConfig.mcpServers
|
|
72
|
+
: {};
|
|
73
|
+
// Extract providers from existing servers
|
|
74
|
+
const providers = extractProviders(mcpServers);
|
|
75
|
+
// Track imported and skipped keys
|
|
76
|
+
const importedKeys = [];
|
|
77
|
+
const skippedKeys = [];
|
|
78
|
+
for (const key of Object.keys(mcpServers)) {
|
|
79
|
+
if (key === "agent-recorder") {
|
|
80
|
+
skippedKeys.push(key);
|
|
81
|
+
}
|
|
82
|
+
else if (providers.some((p) => p.id === key)) {
|
|
83
|
+
importedKeys.push(key);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Create new config with only agent-recorder
|
|
87
|
+
const newClaudeConfig = {
|
|
88
|
+
...claudeConfig,
|
|
89
|
+
mcpServers: {
|
|
90
|
+
"agent-recorder": {
|
|
91
|
+
url: agentRecorderUrl,
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
return {
|
|
96
|
+
newClaudeConfig,
|
|
97
|
+
providers,
|
|
98
|
+
importedKeys,
|
|
99
|
+
skippedKeys,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Merge providers into providers file.
|
|
104
|
+
* Upserts providers by ID.
|
|
105
|
+
*
|
|
106
|
+
* @param existingFile - Existing providers file
|
|
107
|
+
* @param newProviders - Providers to merge
|
|
108
|
+
* @returns Updated providers file
|
|
109
|
+
*/
|
|
110
|
+
export function mergeProviders(existingFile, newProviders) {
|
|
111
|
+
const providerMap = new Map();
|
|
112
|
+
// Add existing providers
|
|
113
|
+
for (const provider of existingFile.providers) {
|
|
114
|
+
providerMap.set(provider.id, provider);
|
|
115
|
+
}
|
|
116
|
+
// Upsert new providers
|
|
117
|
+
for (const provider of newProviders) {
|
|
118
|
+
providerMap.set(provider.id, provider);
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
version: 1,
|
|
122
|
+
providers: Array.from(providerMap.values()),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=hubify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hubify.js","sourceRoot":"","sources":["../../src/config/hubify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hubify.test.d.ts","sourceRoot":"","sources":["../../src/config/hubify.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|