agent-recorder 0.0.9 → 0.0.11

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.
Files changed (82) hide show
  1. package/package.json +1 -1
  2. package/vendor/node_modules/@agent-recorder/cli/commands/configure-wrap.d.ts.map +1 -1
  3. package/vendor/node_modules/@agent-recorder/cli/commands/configure-wrap.js +5 -31
  4. package/vendor/node_modules/@agent-recorder/cli/commands/configure-wrap.js.map +1 -1
  5. package/vendor/node_modules/@agent-recorder/cli/commands/configure.d.ts +2 -0
  6. package/vendor/node_modules/@agent-recorder/cli/commands/configure.d.ts.map +1 -1
  7. package/vendor/node_modules/@agent-recorder/cli/commands/configure.js +117 -1
  8. package/vendor/node_modules/@agent-recorder/cli/commands/configure.js.map +1 -1
  9. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.d.ts.map +1 -1
  10. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.js +113 -19
  11. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.js.map +1 -1
  12. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.test.d.ts +5 -0
  13. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.test.d.ts.map +1 -0
  14. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.test.js +152 -0
  15. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.test.js.map +1 -0
  16. package/vendor/node_modules/@agent-recorder/cli/commands/install.d.ts +7 -1
  17. package/vendor/node_modules/@agent-recorder/cli/commands/install.d.ts.map +1 -1
  18. package/vendor/node_modules/@agent-recorder/cli/commands/install.js +89 -14
  19. package/vendor/node_modules/@agent-recorder/cli/commands/install.js.map +1 -1
  20. package/vendor/node_modules/@agent-recorder/cli/commands/install.test.d.ts +5 -0
  21. package/vendor/node_modules/@agent-recorder/cli/commands/install.test.d.ts.map +1 -0
  22. package/vendor/node_modules/@agent-recorder/cli/commands/install.test.js +173 -0
  23. package/vendor/node_modules/@agent-recorder/cli/commands/install.test.js.map +1 -0
  24. package/vendor/node_modules/@agent-recorder/cli/commands/start.d.ts.map +1 -1
  25. package/vendor/node_modules/@agent-recorder/cli/commands/start.js +29 -4
  26. package/vendor/node_modules/@agent-recorder/cli/commands/start.js.map +1 -1
  27. package/vendor/node_modules/@agent-recorder/cli/config/hubify.d.ts +51 -0
  28. package/vendor/node_modules/@agent-recorder/cli/config/hubify.d.ts.map +1 -0
  29. package/vendor/node_modules/@agent-recorder/cli/config/hubify.js +125 -0
  30. package/vendor/node_modules/@agent-recorder/cli/config/hubify.js.map +1 -0
  31. package/vendor/node_modules/@agent-recorder/cli/config/hubify.test.d.ts +5 -0
  32. package/vendor/node_modules/@agent-recorder/cli/config/hubify.test.d.ts.map +1 -0
  33. package/vendor/node_modules/@agent-recorder/cli/config/hubify.test.js +329 -0
  34. package/vendor/node_modules/@agent-recorder/cli/config/hubify.test.js.map +1 -0
  35. package/vendor/node_modules/@agent-recorder/cli/index.js +7 -3
  36. package/vendor/node_modules/@agent-recorder/cli/index.js.map +1 -1
  37. package/vendor/node_modules/@agent-recorder/core/claude-config.d.ts +32 -0
  38. package/vendor/node_modules/@agent-recorder/core/claude-config.d.ts.map +1 -0
  39. package/vendor/node_modules/@agent-recorder/core/claude-config.js +65 -0
  40. package/vendor/node_modules/@agent-recorder/core/claude-config.js.map +1 -0
  41. package/vendor/node_modules/@agent-recorder/core/index.d.ts +3 -0
  42. package/vendor/node_modules/@agent-recorder/core/index.d.ts.map +1 -1
  43. package/vendor/node_modules/@agent-recorder/core/index.js +3 -0
  44. package/vendor/node_modules/@agent-recorder/core/index.js.map +1 -1
  45. package/vendor/node_modules/@agent-recorder/core/providers/index.d.ts +9 -0
  46. package/vendor/node_modules/@agent-recorder/core/providers/index.d.ts.map +1 -0
  47. package/vendor/node_modules/@agent-recorder/core/providers/index.js +9 -0
  48. package/vendor/node_modules/@agent-recorder/core/providers/index.js.map +1 -0
  49. package/vendor/node_modules/@agent-recorder/core/providers/io.d.ts +36 -0
  50. package/vendor/node_modules/@agent-recorder/core/providers/io.d.ts.map +1 -0
  51. package/vendor/node_modules/@agent-recorder/core/providers/io.js +88 -0
  52. package/vendor/node_modules/@agent-recorder/core/providers/io.js.map +1 -0
  53. package/vendor/node_modules/@agent-recorder/core/providers/io.test.d.ts +5 -0
  54. package/vendor/node_modules/@agent-recorder/core/providers/io.test.d.ts.map +1 -0
  55. package/vendor/node_modules/@agent-recorder/core/providers/io.test.js +248 -0
  56. package/vendor/node_modules/@agent-recorder/core/providers/io.test.js.map +1 -0
  57. package/vendor/node_modules/@agent-recorder/core/providers/types.d.ts +36 -0
  58. package/vendor/node_modules/@agent-recorder/core/providers/types.d.ts.map +1 -0
  59. package/vendor/node_modules/@agent-recorder/core/providers/types.js +6 -0
  60. package/vendor/node_modules/@agent-recorder/core/providers/types.js.map +1 -0
  61. package/vendor/node_modules/@agent-recorder/core/wrap-utils.d.ts +42 -0
  62. package/vendor/node_modules/@agent-recorder/core/wrap-utils.d.ts.map +1 -0
  63. package/vendor/node_modules/@agent-recorder/core/wrap-utils.js +80 -0
  64. package/vendor/node_modules/@agent-recorder/core/wrap-utils.js.map +1 -0
  65. package/vendor/node_modules/@agent-recorder/service/index.d.ts.map +1 -1
  66. package/vendor/node_modules/@agent-recorder/service/index.js +19 -0
  67. package/vendor/node_modules/@agent-recorder/service/index.js.map +1 -1
  68. package/vendor/node_modules/@agent-recorder/service/mcp/auto-wrap-manager.d.ts +43 -0
  69. package/vendor/node_modules/@agent-recorder/service/mcp/auto-wrap-manager.d.ts.map +1 -0
  70. package/vendor/node_modules/@agent-recorder/service/mcp/auto-wrap-manager.js +221 -0
  71. package/vendor/node_modules/@agent-recorder/service/mcp/auto-wrap-manager.js.map +1 -0
  72. package/vendor/node_modules/@agent-recorder/service/mcp/hub.test.d.ts +6 -0
  73. package/vendor/node_modules/@agent-recorder/service/mcp/hub.test.d.ts.map +1 -0
  74. package/vendor/node_modules/@agent-recorder/service/mcp/hub.test.js +319 -0
  75. package/vendor/node_modules/@agent-recorder/service/mcp/hub.test.js.map +1 -0
  76. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts +1 -0
  77. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts.map +1 -1
  78. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js +239 -34
  79. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js.map +1 -1
  80. package/vendor/node_modules/@agent-recorder/service/routes/events.d.ts.map +1 -1
  81. package/vendor/node_modules/@agent-recorder/service/routes/events.js +1 -0
  82. package/vendor/node_modules/@agent-recorder/service/routes/events.js.map +1 -1
@@ -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,5 @@
1
+ /**
2
+ * Tests for hubify transformation logic.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=hubify.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hubify.test.d.ts","sourceRoot":"","sources":["../../src/config/hubify.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,329 @@
1
+ /**
2
+ * Tests for hubify transformation logic.
3
+ */
4
+ import { describe, it, expect } from "vitest";
5
+ import { extractProviders, hubifyClaudeConfig, mergeProviders, } from "./hubify.js";
6
+ describe("Hubify", () => {
7
+ describe("extractProviders", () => {
8
+ it("extracts HTTP providers correctly", () => {
9
+ const mcpServers = {
10
+ github: {
11
+ url: "https://api.github.com/mcp",
12
+ headers: { Authorization: "Bearer token" },
13
+ },
14
+ local: {
15
+ url: "http://localhost:3000",
16
+ },
17
+ };
18
+ const providers = extractProviders(mcpServers);
19
+ expect(providers).toHaveLength(2);
20
+ expect(providers[0]).toEqual({
21
+ id: "github",
22
+ type: "http",
23
+ url: "https://api.github.com/mcp",
24
+ headers: { Authorization: "Bearer token" },
25
+ });
26
+ expect(providers[1]).toEqual({
27
+ id: "local",
28
+ type: "http",
29
+ url: "http://localhost:3000",
30
+ headers: undefined,
31
+ });
32
+ });
33
+ it("extracts stdio providers correctly", () => {
34
+ const mcpServers = {
35
+ playwright: {
36
+ command: "npx",
37
+ args: ["@playwright/mcp"],
38
+ env: { NODE_ENV: "test" },
39
+ },
40
+ filesystem: {
41
+ command: "node",
42
+ args: ["server.js", "--port", "8080"],
43
+ },
44
+ };
45
+ const providers = extractProviders(mcpServers);
46
+ expect(providers).toHaveLength(2);
47
+ expect(providers[0]).toEqual({
48
+ id: "playwright",
49
+ type: "stdio",
50
+ command: "npx",
51
+ args: ["@playwright/mcp"],
52
+ env: { NODE_ENV: "test" },
53
+ });
54
+ expect(providers[1]).toEqual({
55
+ id: "filesystem",
56
+ type: "stdio",
57
+ command: "node",
58
+ args: ["server.js", "--port", "8080"],
59
+ env: undefined,
60
+ });
61
+ });
62
+ it("skips agent-recorder itself", () => {
63
+ const mcpServers = {
64
+ "agent-recorder": {
65
+ url: "http://127.0.0.1:8788/",
66
+ },
67
+ github: {
68
+ url: "https://api.github.com/mcp",
69
+ },
70
+ };
71
+ const providers = extractProviders(mcpServers);
72
+ expect(providers).toHaveLength(1);
73
+ expect(providers[0]?.id).toBe("github");
74
+ });
75
+ it("handles mixed HTTP and stdio providers", () => {
76
+ const mcpServers = {
77
+ github: {
78
+ url: "https://api.github.com/mcp",
79
+ },
80
+ playwright: {
81
+ command: "npx",
82
+ args: ["@playwright/mcp"],
83
+ },
84
+ local: {
85
+ url: "http://localhost:3000",
86
+ },
87
+ };
88
+ const providers = extractProviders(mcpServers);
89
+ expect(providers).toHaveLength(3);
90
+ expect(providers.find((p) => p.id === "github")?.type).toBe("http");
91
+ expect(providers.find((p) => p.id === "playwright")?.type).toBe("stdio");
92
+ expect(providers.find((p) => p.id === "local")?.type).toBe("http");
93
+ });
94
+ it("skips invalid entries", () => {
95
+ const mcpServers = {
96
+ valid: {
97
+ url: "http://localhost:3000",
98
+ },
99
+ invalid1: null,
100
+ invalid2: "string",
101
+ invalid3: [],
102
+ invalid4: {
103
+ // No url or command
104
+ someField: "value",
105
+ },
106
+ };
107
+ const providers = extractProviders(mcpServers);
108
+ expect(providers).toHaveLength(1);
109
+ expect(providers[0]?.id).toBe("valid");
110
+ });
111
+ it("returns empty array for empty mcpServers", () => {
112
+ const providers = extractProviders({});
113
+ expect(providers).toEqual([]);
114
+ });
115
+ });
116
+ describe("hubifyClaudeConfig", () => {
117
+ it("replaces mcpServers with only agent-recorder", () => {
118
+ const claudeConfig = {
119
+ mcpServers: {
120
+ github: {
121
+ url: "https://api.github.com/mcp",
122
+ },
123
+ playwright: {
124
+ command: "npx",
125
+ args: ["@playwright/mcp"],
126
+ },
127
+ },
128
+ otherSetting: "preserved",
129
+ };
130
+ const result = hubifyClaudeConfig(claudeConfig, "http://127.0.0.1:8788/");
131
+ expect(result.newClaudeConfig).toEqual({
132
+ mcpServers: {
133
+ "agent-recorder": {
134
+ url: "http://127.0.0.1:8788/",
135
+ },
136
+ },
137
+ otherSetting: "preserved",
138
+ });
139
+ });
140
+ it("extracts providers from original config", () => {
141
+ const claudeConfig = {
142
+ mcpServers: {
143
+ github: {
144
+ url: "https://api.github.com/mcp",
145
+ },
146
+ playwright: {
147
+ command: "npx",
148
+ args: ["@playwright/mcp"],
149
+ },
150
+ },
151
+ };
152
+ const result = hubifyClaudeConfig(claudeConfig, "http://127.0.0.1:8788/");
153
+ expect(result.providers).toHaveLength(2);
154
+ expect(result.providers.find((p) => p.id === "github")).toBeDefined();
155
+ expect(result.providers.find((p) => p.id === "playwright")).toBeDefined();
156
+ });
157
+ it("tracks imported and skipped keys", () => {
158
+ const claudeConfig = {
159
+ mcpServers: {
160
+ "agent-recorder": {
161
+ url: "http://127.0.0.1:8788/",
162
+ },
163
+ github: {
164
+ url: "https://api.github.com/mcp",
165
+ },
166
+ playwright: {
167
+ command: "npx",
168
+ args: ["@playwright/mcp"],
169
+ },
170
+ },
171
+ };
172
+ const result = hubifyClaudeConfig(claudeConfig, "http://127.0.0.1:8788/");
173
+ expect(result.importedKeys).toEqual(["github", "playwright"]);
174
+ expect(result.skippedKeys).toEqual(["agent-recorder"]);
175
+ });
176
+ it("preserves all other Claude config fields", () => {
177
+ const claudeConfig = {
178
+ mcpServers: {
179
+ github: {
180
+ url: "https://api.github.com/mcp",
181
+ },
182
+ },
183
+ plugins: ["some-plugin"],
184
+ theme: "dark",
185
+ editor: {
186
+ fontSize: 14,
187
+ tabSize: 2,
188
+ },
189
+ };
190
+ const result = hubifyClaudeConfig(claudeConfig, "http://127.0.0.1:8788/");
191
+ expect(result.newClaudeConfig.plugins).toEqual(["some-plugin"]);
192
+ expect(result.newClaudeConfig.theme).toBe("dark");
193
+ expect(result.newClaudeConfig.editor).toEqual({
194
+ fontSize: 14,
195
+ tabSize: 2,
196
+ });
197
+ });
198
+ it("handles config with no mcpServers", () => {
199
+ const claudeConfig = {
200
+ theme: "dark",
201
+ };
202
+ const result = hubifyClaudeConfig(claudeConfig, "http://127.0.0.1:8788/");
203
+ expect(result.newClaudeConfig).toEqual({
204
+ theme: "dark",
205
+ mcpServers: {
206
+ "agent-recorder": {
207
+ url: "http://127.0.0.1:8788/",
208
+ },
209
+ },
210
+ });
211
+ expect(result.providers).toEqual([]);
212
+ expect(result.importedKeys).toEqual([]);
213
+ expect(result.skippedKeys).toEqual([]);
214
+ });
215
+ it("handles config with only agent-recorder", () => {
216
+ const claudeConfig = {
217
+ mcpServers: {
218
+ "agent-recorder": {
219
+ url: "http://127.0.0.1:8788/",
220
+ },
221
+ },
222
+ };
223
+ const result = hubifyClaudeConfig(claudeConfig, "http://127.0.0.1:8788/");
224
+ expect(result.providers).toEqual([]);
225
+ expect(result.importedKeys).toEqual([]);
226
+ expect(result.skippedKeys).toEqual(["agent-recorder"]);
227
+ });
228
+ });
229
+ describe("mergeProviders", () => {
230
+ it("adds new providers to empty file", () => {
231
+ const existingFile = {
232
+ version: 1,
233
+ providers: [],
234
+ };
235
+ const newProviders = [
236
+ {
237
+ id: "github",
238
+ type: "http",
239
+ url: "https://api.github.com/mcp",
240
+ },
241
+ ];
242
+ const result = mergeProviders(existingFile, newProviders);
243
+ expect(result.version).toBe(1);
244
+ expect(result.providers).toHaveLength(1);
245
+ expect(result.providers[0]).toEqual(newProviders[0]);
246
+ });
247
+ it("replaces existing provider with same id", () => {
248
+ const existingFile = {
249
+ version: 1,
250
+ providers: [
251
+ {
252
+ id: "github",
253
+ type: "http",
254
+ url: "https://old-url.com",
255
+ },
256
+ ],
257
+ };
258
+ const newProviders = [
259
+ {
260
+ id: "github",
261
+ type: "http",
262
+ url: "https://new-url.com",
263
+ },
264
+ ];
265
+ const result = mergeProviders(existingFile, newProviders);
266
+ expect(result.providers).toHaveLength(1);
267
+ expect(result.providers[0].url).toBe("https://new-url.com");
268
+ });
269
+ it("merges new and existing providers", () => {
270
+ const existingFile = {
271
+ version: 1,
272
+ providers: [
273
+ {
274
+ id: "existing",
275
+ type: "http",
276
+ url: "https://existing.com",
277
+ },
278
+ ],
279
+ };
280
+ const newProviders = [
281
+ {
282
+ id: "new",
283
+ type: "stdio",
284
+ command: "npx",
285
+ args: ["@playwright/mcp"],
286
+ },
287
+ ];
288
+ const result = mergeProviders(existingFile, newProviders);
289
+ expect(result.providers).toHaveLength(2);
290
+ expect(result.providers.find((p) => p.id === "existing")).toBeDefined();
291
+ expect(result.providers.find((p) => p.id === "new")).toBeDefined();
292
+ });
293
+ it("handles multiple providers with same ids", () => {
294
+ const existingFile = {
295
+ version: 1,
296
+ providers: [
297
+ {
298
+ id: "provider1",
299
+ type: "http",
300
+ url: "https://old1.com",
301
+ },
302
+ {
303
+ id: "provider2",
304
+ type: "http",
305
+ url: "https://old2.com",
306
+ },
307
+ ],
308
+ };
309
+ const newProviders = [
310
+ {
311
+ id: "provider1",
312
+ type: "http",
313
+ url: "https://new1.com",
314
+ },
315
+ {
316
+ id: "provider3",
317
+ type: "stdio",
318
+ command: "node",
319
+ },
320
+ ];
321
+ const result = mergeProviders(existingFile, newProviders);
322
+ expect(result.providers).toHaveLength(3);
323
+ expect(result.providers.find((p) => p.id === "provider1").url).toBe("https://new1.com");
324
+ expect(result.providers.find((p) => p.id === "provider2").url).toBe("https://old2.com");
325
+ expect(result.providers.find((p) => p.id === "provider3")).toBeDefined();
326
+ });
327
+ });
328
+ });
329
+ //# sourceMappingURL=hubify.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hubify.test.js","sourceRoot":"","sources":["../../src/config/hubify.test.ts"],"names":[],"mappings":"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"}
@@ -137,9 +137,13 @@ program
137
137
  // Install command
138
138
  program
139
139
  .command("install")
140
- .description("Set up ~/.agent-recorder/ and print configuration")
141
- .action(async () => {
142
- await installCommand();
140
+ .description("Set up ~/.agent-recorder/ and configure Claude Code (with hubify mode)")
141
+ .option("--no-configure", "Skip automatic Claude Code configuration")
142
+ .action(async (options) => {
143
+ const installOpts = options.noConfigure
144
+ ? { noConfigure: options.noConfigure }
145
+ : {};
146
+ await installCommand(installOpts);
143
147
  });
144
148
  // Doctor command
145
149
  program
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Claude Code configuration detection and management utilities.
3
+ * Shared between CLI and service packages.
4
+ */
5
+ export interface ClaudeConfigInfo {
6
+ kind: "v2" | "legacy" | "none";
7
+ path: string | null;
8
+ }
9
+ /**
10
+ * Get the v2 Claude config path (~/.claude/settings.json)
11
+ */
12
+ export declare function getV2ConfigPath(): string;
13
+ /**
14
+ * Get the legacy Claude config path (~/.config/claude/mcp.json)
15
+ */
16
+ export declare function getLegacyConfigPath(): string;
17
+ /**
18
+ * Detect which Claude config file exists.
19
+ * Checks v2 first, then legacy. Returns 'none' if neither exists.
20
+ */
21
+ export declare function detectClaudeConfig(): ClaudeConfigInfo;
22
+ /**
23
+ * Safely read and parse a JSON file.
24
+ * Returns null if file doesn't exist or is invalid JSON.
25
+ */
26
+ export declare function readJsonFile(filePath: string): Record<string, unknown> | null;
27
+ /**
28
+ * Write JSON to file atomically (write to temp, then rename).
29
+ * Creates parent directories if needed.
30
+ */
31
+ export declare function writeJsonFileAtomic(filePath: string, data: Record<string, unknown> | unknown): void;
32
+ //# sourceMappingURL=claude-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-config.d.ts","sourceRoot":"","sources":["../src/claude-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,gBAAgB,CAarD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAU7E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,GACtC,IAAI,CAWN"}