@posthog/wizard 1.25.0 → 1.27.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.
Files changed (62) hide show
  1. package/dist/src/django/django-wizard-agent.d.ts +5 -0
  2. package/dist/src/django/django-wizard-agent.js +159 -0
  3. package/dist/src/django/django-wizard-agent.js.map +1 -0
  4. package/dist/src/django/utils.d.ts +31 -0
  5. package/dist/src/django/utils.js +325 -0
  6. package/dist/src/django/utils.js.map +1 -0
  7. package/dist/src/lib/agent-interface.d.ts +7 -1
  8. package/dist/src/lib/agent-interface.js +114 -20
  9. package/dist/src/lib/agent-interface.js.map +1 -1
  10. package/dist/src/lib/agent-runner.js +50 -13
  11. package/dist/src/lib/agent-runner.js.map +1 -1
  12. package/dist/src/lib/config.d.ts +12 -1
  13. package/dist/src/lib/config.js +126 -12
  14. package/dist/src/lib/config.js.map +1 -1
  15. package/dist/src/lib/constants.d.ts +2 -1
  16. package/dist/src/lib/constants.js +3 -0
  17. package/dist/src/lib/constants.js.map +1 -1
  18. package/dist/src/lib/framework-config.d.ts +16 -0
  19. package/dist/src/lib/framework-config.js.map +1 -1
  20. package/dist/src/mcp.d.ts +0 -3
  21. package/dist/src/mcp.js +2 -32
  22. package/dist/src/mcp.js.map +1 -1
  23. package/dist/src/nextjs/nextjs-wizard-agent.js +2 -0
  24. package/dist/src/nextjs/nextjs-wizard-agent.js.map +1 -1
  25. package/dist/src/react-router/react-router-wizard-agent.js +2 -0
  26. package/dist/src/react-router/react-router-wizard-agent.js.map +1 -1
  27. package/dist/src/run.js +8 -1
  28. package/dist/src/run.js.map +1 -1
  29. package/dist/src/steps/add-mcp-server-to-clients/MCPClient.d.ts +5 -4
  30. package/dist/src/steps/add-mcp-server-to-clients/MCPClient.js +6 -6
  31. package/dist/src/steps/add-mcp-server-to-clients/MCPClient.js.map +1 -1
  32. package/dist/src/steps/add-mcp-server-to-clients/__tests__/defaults.test.d.ts +1 -0
  33. package/dist/src/steps/add-mcp-server-to-clients/__tests__/defaults.test.js +92 -0
  34. package/dist/src/steps/add-mcp-server-to-clients/__tests__/defaults.test.js.map +1 -0
  35. package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/claude.test.js +11 -1
  36. package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/claude.test.js.map +1 -1
  37. package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.d.ts +8 -7
  38. package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.js +5 -3
  39. package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.js.map +1 -1
  40. package/dist/src/steps/add-mcp-server-to-clients/clients/claude.d.ts +6 -6
  41. package/dist/src/steps/add-mcp-server-to-clients/clients/codex.d.ts +8 -7
  42. package/dist/src/steps/add-mcp-server-to-clients/clients/codex.js +2 -2
  43. package/dist/src/steps/add-mcp-server-to-clients/clients/codex.js.map +1 -1
  44. package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.d.ts +9 -8
  45. package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.js +4 -4
  46. package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.js.map +1 -1
  47. package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.d.ts +9 -8
  48. package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.js +4 -4
  49. package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.js.map +1 -1
  50. package/dist/src/steps/add-mcp-server-to-clients/clients/zed.d.ts +9 -8
  51. package/dist/src/steps/add-mcp-server-to-clients/clients/zed.js +4 -4
  52. package/dist/src/steps/add-mcp-server-to-clients/clients/zed.js.map +1 -1
  53. package/dist/src/steps/add-mcp-server-to-clients/defaults.d.ts +14 -14
  54. package/dist/src/steps/add-mcp-server-to-clients/defaults.js +34 -13
  55. package/dist/src/steps/add-mcp-server-to-clients/defaults.js.map +1 -1
  56. package/dist/src/steps/add-mcp-server-to-clients/index.d.ts +1 -1
  57. package/dist/src/steps/add-mcp-server-to-clients/index.js +4 -5
  58. package/dist/src/steps/add-mcp-server-to-clients/index.js.map +1 -1
  59. package/dist/src/utils/clack-utils.d.ts +5 -0
  60. package/dist/src/utils/clack-utils.js +14 -0
  61. package/dist/src/utils/clack-utils.js.map +1 -1
  62. package/package.json +1 -1
@@ -1,19 +1,20 @@
1
1
  import { z } from 'zod';
2
2
  import { DefaultMCPClient } from '../MCPClient';
3
3
  import { DefaultMCPClientConfig } from '../defaults';
4
+ import type { CloudRegion } from '../../../utils/types';
4
5
  export declare const CodexMCPConfig: z.ZodObject<{
5
6
  mcpServers: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
6
7
  command: z.ZodOptional<z.ZodString>;
7
8
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
8
9
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
9
10
  }, "strip", z.ZodTypeAny, {
11
+ env?: Record<string, string> | undefined;
10
12
  command?: string | undefined;
11
13
  args?: string[] | undefined;
12
- env?: Record<string, string> | undefined;
13
14
  }, {
15
+ env?: Record<string, string> | undefined;
14
16
  command?: string | undefined;
15
17
  args?: string[] | undefined;
16
- env?: Record<string, string> | undefined;
17
18
  }>, z.ZodObject<{
18
19
  url: z.ZodString;
19
20
  headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -30,13 +31,13 @@ export declare const CodexMCPConfig: z.ZodObject<{
30
31
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
31
32
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
32
33
  }, "strip", z.ZodTypeAny, {
34
+ env?: Record<string, string> | undefined;
33
35
  command?: string | undefined;
34
36
  args?: string[] | undefined;
35
- env?: Record<string, string> | undefined;
36
37
  }, {
38
+ env?: Record<string, string> | undefined;
37
39
  command?: string | undefined;
38
40
  args?: string[] | undefined;
39
- env?: Record<string, string> | undefined;
40
41
  }>, z.ZodObject<{
41
42
  url: z.ZodString;
42
43
  headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -53,13 +54,13 @@ export declare const CodexMCPConfig: z.ZodObject<{
53
54
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
54
55
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
55
56
  }, "strip", z.ZodTypeAny, {
57
+ env?: Record<string, string> | undefined;
56
58
  command?: string | undefined;
57
59
  args?: string[] | undefined;
58
- env?: Record<string, string> | undefined;
59
60
  }, {
61
+ env?: Record<string, string> | undefined;
60
62
  command?: string | undefined;
61
63
  args?: string[] | undefined;
62
- env?: Record<string, string> | undefined;
63
64
  }>, z.ZodObject<{
64
65
  url: z.ZodString;
65
66
  headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -78,7 +79,7 @@ export declare class CodexMCPClient extends DefaultMCPClient {
78
79
  isClientSupported(): Promise<boolean>;
79
80
  getConfigPath(): Promise<string>;
80
81
  isServerInstalled(local?: boolean): Promise<boolean>;
81
- addServer(apiKey: string, selectedFeatures?: string[], local?: boolean): Promise<{
82
+ addServer(apiKey: string, selectedFeatures?: string[], local?: boolean, region?: CloudRegion): Promise<{
82
83
  success: boolean;
83
84
  }>;
84
85
  removeServer(local?: boolean): Promise<{
@@ -43,8 +43,8 @@ class CodexMCPClient extends MCPClient_1.DefaultMCPClient {
43
43
  return Promise.resolve(false);
44
44
  }
45
45
  }
46
- addServer(apiKey, selectedFeatures, local) {
47
- const config = (0, defaults_1.getDefaultServerConfig)(apiKey, 'sse', selectedFeatures, local);
46
+ addServer(apiKey, selectedFeatures, local, region) {
47
+ const config = (0, defaults_1.getDefaultServerConfig)(apiKey, 'sse', selectedFeatures, local, region);
48
48
  const serverName = local ? 'posthog-local' : 'posthog';
49
49
  const args = ['mcp', 'add', serverName];
50
50
  if (config.env) {
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../../src/steps/add-mcp-server-to-clients/clients/codex.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { execSync, spawnSync } from 'node:child_process';\n\nimport { DefaultMCPClient } from '../MCPClient';\nimport { DefaultMCPClientConfig, getDefaultServerConfig } from '../defaults';\n\nimport { analytics } from '../../../utils/analytics';\n\nexport const CodexMCPConfig = DefaultMCPClientConfig;\n\nexport type CodexMCPConfig = z.infer<typeof DefaultMCPClientConfig>;\n\nexport class CodexMCPClient extends DefaultMCPClient {\n name = 'Codex CLI';\n\n constructor() {\n super();\n }\n\n isClientSupported(): Promise<boolean> {\n try {\n execSync('codex --version', { stdio: 'ignore' });\n return Promise.resolve(true);\n } catch {\n return Promise.resolve(false);\n }\n }\n\n getConfigPath(): Promise<string> {\n throw new Error('Not implemented');\n }\n\n isServerInstalled(local?: boolean): Promise<boolean> {\n const serverName = local ? 'posthog-local' : 'posthog';\n\n try {\n const result = spawnSync('codex', ['mcp', 'list', '--json'], {\n encoding: 'utf-8',\n });\n\n if (result.error || result.status !== 0) {\n return Promise.resolve(false);\n }\n\n const stdout = result.stdout?.trim();\n if (!stdout) {\n return Promise.resolve(false);\n }\n\n const servers = JSON.parse(stdout) as Array<{ name: string }>;\n return Promise.resolve(\n servers.some((server) => server.name === serverName),\n );\n } catch {\n return Promise.resolve(false);\n }\n }\n\n addServer(\n apiKey: string,\n selectedFeatures?: string[],\n local?: boolean,\n ): Promise<{ success: boolean }> {\n const config = getDefaultServerConfig(\n apiKey,\n 'sse',\n selectedFeatures,\n local,\n );\n const serverName = local ? 'posthog-local' : 'posthog';\n\n const args = ['mcp', 'add', serverName];\n\n if (config.env) {\n for (const [key, value] of Object.entries(config.env)) {\n args.push('--env', `${key}=${value}`);\n }\n }\n\n args.push('--', config.command, ...(config.args ?? []));\n\n const result = spawnSync('codex', args, { stdio: 'ignore' });\n\n if (result.error || result.status !== 0) {\n analytics.captureException(\n new Error('Failed to add server to Codex CLI.'),\n );\n return Promise.resolve({ success: false });\n }\n\n return Promise.resolve({ success: true });\n }\n\n removeServer(local?: boolean): Promise<{ success: boolean }> {\n const serverName = local ? 'posthog-local' : 'posthog';\n const result = spawnSync('codex', ['mcp', 'remove', serverName], {\n stdio: 'ignore',\n });\n\n if (result.error || result.status !== 0) {\n analytics.captureException(\n new Error('Failed to remove server from Codex CLI.'),\n );\n return Promise.resolve({ success: false });\n }\n\n return Promise.resolve({ success: true });\n }\n}\n\nexport default CodexMCPClient;\n"]}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../../src/steps/add-mcp-server-to-clients/clients/codex.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { execSync, spawnSync } from 'node:child_process';\n\nimport { DefaultMCPClient } from '../MCPClient';\nimport { DefaultMCPClientConfig, getDefaultServerConfig } from '../defaults';\nimport type { CloudRegion } from '../../../utils/types';\n\nimport { analytics } from '../../../utils/analytics';\n\nexport const CodexMCPConfig = DefaultMCPClientConfig;\n\nexport type CodexMCPConfig = z.infer<typeof DefaultMCPClientConfig>;\n\nexport class CodexMCPClient extends DefaultMCPClient {\n name = 'Codex CLI';\n\n constructor() {\n super();\n }\n\n isClientSupported(): Promise<boolean> {\n try {\n execSync('codex --version', { stdio: 'ignore' });\n return Promise.resolve(true);\n } catch {\n return Promise.resolve(false);\n }\n }\n\n getConfigPath(): Promise<string> {\n throw new Error('Not implemented');\n }\n\n isServerInstalled(local?: boolean): Promise<boolean> {\n const serverName = local ? 'posthog-local' : 'posthog';\n\n try {\n const result = spawnSync('codex', ['mcp', 'list', '--json'], {\n encoding: 'utf-8',\n });\n\n if (result.error || result.status !== 0) {\n return Promise.resolve(false);\n }\n\n const stdout = result.stdout?.trim();\n if (!stdout) {\n return Promise.resolve(false);\n }\n\n const servers = JSON.parse(stdout) as Array<{ name: string }>;\n return Promise.resolve(\n servers.some((server) => server.name === serverName),\n );\n } catch {\n return Promise.resolve(false);\n }\n }\n\n addServer(\n apiKey: string,\n selectedFeatures?: string[],\n local?: boolean,\n region?: CloudRegion,\n ): Promise<{ success: boolean }> {\n const config = getDefaultServerConfig(\n apiKey,\n 'sse',\n selectedFeatures,\n local,\n region,\n );\n const serverName = local ? 'posthog-local' : 'posthog';\n\n const args = ['mcp', 'add', serverName];\n\n if (config.env) {\n for (const [key, value] of Object.entries(config.env)) {\n args.push('--env', `${key}=${value}`);\n }\n }\n\n args.push('--', config.command, ...(config.args ?? []));\n\n const result = spawnSync('codex', args, { stdio: 'ignore' });\n\n if (result.error || result.status !== 0) {\n analytics.captureException(\n new Error('Failed to add server to Codex CLI.'),\n );\n return Promise.resolve({ success: false });\n }\n\n return Promise.resolve({ success: true });\n }\n\n removeServer(local?: boolean): Promise<{ success: boolean }> {\n const serverName = local ? 'posthog-local' : 'posthog';\n const result = spawnSync('codex', ['mcp', 'remove', serverName], {\n stdio: 'ignore',\n });\n\n if (result.error || result.status !== 0) {\n analytics.captureException(\n new Error('Failed to remove server from Codex CLI.'),\n );\n return Promise.resolve({ success: false });\n }\n\n return Promise.resolve({ success: true });\n }\n}\n\nexport default CodexMCPClient;\n"]}
@@ -1,19 +1,20 @@
1
1
  import { DefaultMCPClient, MCPServerConfig } from '../MCPClient';
2
2
  import { DefaultMCPClientConfig } from '../defaults';
3
3
  import { z } from 'zod';
4
+ import type { CloudRegion } from '../../../utils/types';
4
5
  export declare const CursorMCPConfig: z.ZodObject<{
5
6
  mcpServers: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
6
7
  command: z.ZodOptional<z.ZodString>;
7
8
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
8
9
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
9
10
  }, "strip", z.ZodTypeAny, {
11
+ env?: Record<string, string> | undefined;
10
12
  command?: string | undefined;
11
13
  args?: string[] | undefined;
12
- env?: Record<string, string> | undefined;
13
14
  }, {
15
+ env?: Record<string, string> | undefined;
14
16
  command?: string | undefined;
15
17
  args?: string[] | undefined;
16
- env?: Record<string, string> | undefined;
17
18
  }>, z.ZodObject<{
18
19
  url: z.ZodString;
19
20
  headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -30,13 +31,13 @@ export declare const CursorMCPConfig: z.ZodObject<{
30
31
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
31
32
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
32
33
  }, "strip", z.ZodTypeAny, {
34
+ env?: Record<string, string> | undefined;
33
35
  command?: string | undefined;
34
36
  args?: string[] | undefined;
35
- env?: Record<string, string> | undefined;
36
37
  }, {
38
+ env?: Record<string, string> | undefined;
37
39
  command?: string | undefined;
38
40
  args?: string[] | undefined;
39
- env?: Record<string, string> | undefined;
40
41
  }>, z.ZodObject<{
41
42
  url: z.ZodString;
42
43
  headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -53,13 +54,13 @@ export declare const CursorMCPConfig: z.ZodObject<{
53
54
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
54
55
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
55
56
  }, "strip", z.ZodTypeAny, {
57
+ env?: Record<string, string> | undefined;
56
58
  command?: string | undefined;
57
59
  args?: string[] | undefined;
58
- env?: Record<string, string> | undefined;
59
60
  }, {
61
+ env?: Record<string, string> | undefined;
60
62
  command?: string | undefined;
61
63
  args?: string[] | undefined;
62
- env?: Record<string, string> | undefined;
63
64
  }>, z.ZodObject<{
64
65
  url: z.ZodString;
65
66
  headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -77,8 +78,8 @@ export declare class CursorMCPClient extends DefaultMCPClient {
77
78
  constructor();
78
79
  isClientSupported(): Promise<boolean>;
79
80
  getConfigPath(): Promise<string>;
80
- getServerConfig(apiKey: string, type: 'sse' | 'streamable-http', selectedFeatures?: string[], local?: boolean): MCPServerConfig;
81
- addServer(apiKey: string, selectedFeatures?: string[], local?: boolean): Promise<{
81
+ getServerConfig(apiKey: string | undefined, type: 'sse' | 'streamable-http', selectedFeatures?: string[], local?: boolean, region?: CloudRegion): MCPServerConfig;
82
+ addServer(apiKey?: string, selectedFeatures?: string[], local?: boolean, region?: CloudRegion): Promise<{
82
83
  success: boolean;
83
84
  }>;
84
85
  }
@@ -50,11 +50,11 @@ class CursorMCPClient extends MCPClient_1.DefaultMCPClient {
50
50
  async getConfigPath() {
51
51
  return Promise.resolve(path.join(os.homedir(), '.cursor', 'mcp.json'));
52
52
  }
53
- getServerConfig(apiKey, type, selectedFeatures, local) {
54
- return (0, defaults_1.getNativeHTTPServerConfig)(apiKey, type, selectedFeatures, local);
53
+ getServerConfig(apiKey, type, selectedFeatures, local, region) {
54
+ return (0, defaults_1.getNativeHTTPServerConfig)(apiKey, type, selectedFeatures, local, region);
55
55
  }
56
- async addServer(apiKey, selectedFeatures, local) {
57
- return this._addServerType(apiKey, 'streamable-http', selectedFeatures, local);
56
+ async addServer(apiKey, selectedFeatures, local, region) {
57
+ return this._addServerType(apiKey, 'streamable-http', selectedFeatures, local, region);
58
58
  }
59
59
  }
60
60
  exports.CursorMCPClient = CursorMCPClient;
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../../../src/steps/add-mcp-server-to-clients/clients/cursor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAiE;AACjE,2CAA6B;AAC7B,uCAAyB;AACzB,0CAAgF;AAGnE,QAAA,eAAe,GAAG,iCAAsB,CAAC;AAItD,MAAa,eAAgB,SAAQ,4BAAgB;IACnD,IAAI,GAAG,QAAQ,CAAC;IAEhB;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,OAAO,CAAC,OAAO,CACpB,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAC9D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,eAAe,CACb,MAAc,EACd,IAA+B,EAC/B,gBAA2B,EAC3B,KAAe;QAEf,OAAO,IAAA,oCAAyB,EAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAc,EACd,gBAA2B,EAC3B,KAAe;QAEf,OAAO,IAAI,CAAC,cAAc,CACxB,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,CACN,CAAC;IACJ,CAAC;CACF;AAtCD,0CAsCC","sourcesContent":["import { DefaultMCPClient, MCPServerConfig } from '../MCPClient';\nimport * as path from 'path';\nimport * as os from 'os';\nimport { DefaultMCPClientConfig, getNativeHTTPServerConfig } from '../defaults';\nimport { z } from 'zod';\n\nexport const CursorMCPConfig = DefaultMCPClientConfig;\n\nexport type CursorMCPConfig = z.infer<typeof DefaultMCPClientConfig>;\n\nexport class CursorMCPClient extends DefaultMCPClient {\n name = 'Cursor';\n\n constructor() {\n super();\n }\n\n async isClientSupported(): Promise<boolean> {\n return Promise.resolve(\n process.platform === 'darwin' || process.platform === 'win32',\n );\n }\n\n async getConfigPath(): Promise<string> {\n return Promise.resolve(path.join(os.homedir(), '.cursor', 'mcp.json'));\n }\n\n getServerConfig(\n apiKey: string,\n type: 'sse' | 'streamable-http',\n selectedFeatures?: string[],\n local?: boolean,\n ): MCPServerConfig {\n return getNativeHTTPServerConfig(apiKey, type, selectedFeatures, local);\n }\n\n async addServer(\n apiKey: string,\n selectedFeatures?: string[],\n local?: boolean,\n ): Promise<{ success: boolean }> {\n return this._addServerType(\n apiKey,\n 'streamable-http',\n selectedFeatures,\n local,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../../../src/steps/add-mcp-server-to-clients/clients/cursor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAiE;AACjE,2CAA6B;AAC7B,uCAAyB;AACzB,0CAAgF;AAInE,QAAA,eAAe,GAAG,iCAAsB,CAAC;AAItD,MAAa,eAAgB,SAAQ,4BAAgB;IACnD,IAAI,GAAG,QAAQ,CAAC;IAEhB;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,OAAO,CAAC,OAAO,CACpB,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAC9D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,eAAe,CACb,MAA0B,EAC1B,IAA+B,EAC/B,gBAA2B,EAC3B,KAAe,EACf,MAAoB;QAEpB,OAAO,IAAA,oCAAyB,EAC9B,MAAM,EACN,IAAI,EACJ,gBAAgB,EAChB,KAAK,EACL,MAAM,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAe,EACf,gBAA2B,EAC3B,KAAe,EACf,MAAoB;QAEpB,OAAO,IAAI,CAAC,cAAc,CACxB,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,EACL,MAAM,CACP,CAAC;IACJ,CAAC;CACF;AA/CD,0CA+CC","sourcesContent":["import { DefaultMCPClient, MCPServerConfig } from '../MCPClient';\nimport * as path from 'path';\nimport * as os from 'os';\nimport { DefaultMCPClientConfig, getNativeHTTPServerConfig } from '../defaults';\nimport { z } from 'zod';\nimport type { CloudRegion } from '../../../utils/types';\n\nexport const CursorMCPConfig = DefaultMCPClientConfig;\n\nexport type CursorMCPConfig = z.infer<typeof DefaultMCPClientConfig>;\n\nexport class CursorMCPClient extends DefaultMCPClient {\n name = 'Cursor';\n\n constructor() {\n super();\n }\n\n async isClientSupported(): Promise<boolean> {\n return Promise.resolve(\n process.platform === 'darwin' || process.platform === 'win32',\n );\n }\n\n async getConfigPath(): Promise<string> {\n return Promise.resolve(path.join(os.homedir(), '.cursor', 'mcp.json'));\n }\n\n getServerConfig(\n apiKey: string | undefined,\n type: 'sse' | 'streamable-http',\n selectedFeatures?: string[],\n local?: boolean,\n region?: CloudRegion,\n ): MCPServerConfig {\n return getNativeHTTPServerConfig(\n apiKey,\n type,\n selectedFeatures,\n local,\n region,\n );\n }\n\n async addServer(\n apiKey?: string,\n selectedFeatures?: string[],\n local?: boolean,\n region?: CloudRegion,\n ): Promise<{ success: boolean }> {\n return this._addServerType(\n apiKey,\n 'streamable-http',\n selectedFeatures,\n local,\n region,\n );\n }\n}\n"]}
@@ -1,18 +1,19 @@
1
1
  import z from 'zod';
2
2
  import { DefaultMCPClient, MCPServerConfig } from '../MCPClient';
3
+ import type { CloudRegion } from '../../../utils/types';
3
4
  export declare const VisualStudioCodeMCPConfig: z.ZodObject<{
4
5
  servers: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
5
6
  command: z.ZodOptional<z.ZodString>;
6
7
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
7
8
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
8
9
  }, "strip", z.ZodTypeAny, {
10
+ env?: Record<string, string> | undefined;
9
11
  command?: string | undefined;
10
12
  args?: string[] | undefined;
11
- env?: Record<string, string> | undefined;
12
13
  }, {
14
+ env?: Record<string, string> | undefined;
13
15
  command?: string | undefined;
14
16
  args?: string[] | undefined;
15
- env?: Record<string, string> | undefined;
16
17
  }>, z.ZodObject<{
17
18
  type: z.ZodEnum<["http", "sse"]>;
18
19
  url: z.ZodString;
@@ -32,13 +33,13 @@ export declare const VisualStudioCodeMCPConfig: z.ZodObject<{
32
33
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
33
34
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
34
35
  }, "strip", z.ZodTypeAny, {
36
+ env?: Record<string, string> | undefined;
35
37
  command?: string | undefined;
36
38
  args?: string[] | undefined;
37
- env?: Record<string, string> | undefined;
38
39
  }, {
40
+ env?: Record<string, string> | undefined;
39
41
  command?: string | undefined;
40
42
  args?: string[] | undefined;
41
- env?: Record<string, string> | undefined;
42
43
  }>, z.ZodObject<{
43
44
  type: z.ZodEnum<["http", "sse"]>;
44
45
  url: z.ZodString;
@@ -58,13 +59,13 @@ export declare const VisualStudioCodeMCPConfig: z.ZodObject<{
58
59
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
59
60
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
60
61
  }, "strip", z.ZodTypeAny, {
62
+ env?: Record<string, string> | undefined;
61
63
  command?: string | undefined;
62
64
  args?: string[] | undefined;
63
- env?: Record<string, string> | undefined;
64
65
  }, {
66
+ env?: Record<string, string> | undefined;
65
67
  command?: string | undefined;
66
68
  args?: string[] | undefined;
67
- env?: Record<string, string> | undefined;
68
69
  }>, z.ZodObject<{
69
70
  type: z.ZodEnum<["http", "sse"]>;
70
71
  url: z.ZodString;
@@ -85,8 +86,8 @@ export declare class VisualStudioCodeClient extends DefaultMCPClient {
85
86
  getServerPropertyName(): string;
86
87
  isClientSupported(): Promise<boolean>;
87
88
  getConfigPath(): Promise<string>;
88
- getServerConfig(apiKey: string, type: 'sse' | 'streamable-http', selectedFeatures?: string[], local?: boolean): MCPServerConfig;
89
- addServer(apiKey: string, selectedFeatures?: string[], local?: boolean): Promise<{
89
+ getServerConfig(apiKey: string, type: 'sse' | 'streamable-http', selectedFeatures?: string[], local?: boolean, region?: CloudRegion): MCPServerConfig;
90
+ addServer(apiKey: string, selectedFeatures?: string[], local?: boolean, region?: CloudRegion): Promise<{
90
91
  success: boolean;
91
92
  }>;
92
93
  }
@@ -84,17 +84,17 @@ class VisualStudioCodeClient extends MCPClient_1.DefaultMCPClient {
84
84
  }
85
85
  throw new Error(`Unsupported platform: ${process.platform}`);
86
86
  }
87
- getServerConfig(apiKey, type, selectedFeatures, local) {
87
+ getServerConfig(apiKey, type, selectedFeatures, local, region) {
88
88
  return {
89
89
  type: 'http',
90
- url: (0, defaults_1.buildMCPUrl)(type, selectedFeatures, local),
90
+ url: (0, defaults_1.buildMCPUrl)(type, selectedFeatures, local, region),
91
91
  headers: {
92
92
  Authorization: `Bearer ${apiKey}`,
93
93
  },
94
94
  };
95
95
  }
96
- async addServer(apiKey, selectedFeatures, local) {
97
- return this._addServerType(apiKey, 'streamable-http', selectedFeatures, local);
96
+ async addServer(apiKey, selectedFeatures, local, region) {
97
+ return this._addServerType(apiKey, 'streamable-http', selectedFeatures, local, region);
98
98
  }
99
99
  }
100
100
  exports.VisualStudioCodeClient = VisualStudioCodeClient;
@@ -1 +1 @@
1
- {"version":3,"file":"visual-studio-code.js","sourceRoot":"","sources":["../../../../../src/steps/add-mcp-server-to-clients/clients/visual-studio-code.ts"],"names":[],"mappings":"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","sourcesContent":["import z from 'zod';\nimport * as path from 'path';\nimport * as os from 'os';\nimport { DefaultMCPClient, MCPServerConfig } from '../MCPClient';\nimport { buildMCPUrl } from '../defaults';\n\nexport const VisualStudioCodeMCPConfig = z\n .object({\n servers: z.record(\n z.string(),\n z.union([\n z.object({\n command: z.string().optional(),\n args: z.array(z.string()).optional(),\n env: z.record(z.string(), z.string()).optional(),\n }),\n z.object({\n type: z.enum(['http', 'sse']),\n url: z.string(),\n headers: z.record(z.string(), z.string()).optional(),\n }),\n ]),\n ),\n })\n .passthrough();\n\nexport type VisualStudioCodeMCPConfig = z.infer<\n typeof VisualStudioCodeMCPConfig\n>;\n\nexport class VisualStudioCodeClient extends DefaultMCPClient {\n name = 'Visual Studio Code';\n\n getServerPropertyName(): string {\n return 'servers';\n }\n\n async isClientSupported(): Promise<boolean> {\n return Promise.resolve(\n process.platform === 'darwin' ||\n process.platform === 'win32' ||\n process.platform === 'linux',\n );\n }\n\n async getConfigPath(): Promise<string> {\n const homeDir = os.homedir();\n const isWindows = process.platform === 'win32';\n const isMac = process.platform === 'darwin';\n const isLinux = process.platform === 'linux';\n\n if (isMac) {\n return Promise.resolve(\n path.join(\n homeDir,\n 'Library',\n 'Application Support',\n 'Code',\n 'User',\n 'mcp.json',\n ),\n );\n }\n\n if (isWindows) {\n return Promise.resolve(\n path.join(process.env.APPDATA || '', 'Code', 'User', 'mcp.json'),\n );\n }\n\n if (isLinux) {\n return Promise.resolve(\n path.join(homeDir, '.config', 'Code', 'User', 'mcp.json'),\n );\n }\n\n throw new Error(`Unsupported platform: ${process.platform}`);\n }\n\n getServerConfig(\n apiKey: string,\n type: 'sse' | 'streamable-http',\n selectedFeatures?: string[],\n local?: boolean,\n ): MCPServerConfig {\n return {\n type: 'http',\n url: buildMCPUrl(type, selectedFeatures, local),\n headers: {\n Authorization: `Bearer ${apiKey}`,\n },\n };\n }\n\n async addServer(\n apiKey: string,\n selectedFeatures?: string[],\n local?: boolean,\n ): Promise<{ success: boolean }> {\n return this._addServerType(\n apiKey,\n 'streamable-http',\n selectedFeatures,\n local,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"visual-studio-code.js","sourceRoot":"","sources":["../../../../../src/steps/add-mcp-server-to-clients/clients/visual-studio-code.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAoB;AACpB,2CAA6B;AAC7B,uCAAyB;AACzB,4CAAiE;AACjE,0CAA0C;AAG7B,QAAA,yBAAyB,GAAG,aAAC;KACvC,MAAM,CAAC;IACN,OAAO,EAAE,aAAC,CAAC,MAAM,CACf,aAAC,CAAC,MAAM,EAAE,EACV,aAAC,CAAC,KAAK,CAAC;QACN,aAAC,CAAC,MAAM,CAAC;YACP,OAAO,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,IAAI,EAAE,aAAC,CAAC,KAAK,CAAC,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YACpC,GAAG,EAAE,aAAC,CAAC,MAAM,CAAC,aAAC,CAAC,MAAM,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SACjD,CAAC;QACF,aAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,aAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC7B,GAAG,EAAE,aAAC,CAAC,MAAM,EAAE;YACf,OAAO,EAAE,aAAC,CAAC,MAAM,CAAC,aAAC,CAAC,MAAM,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SACrD,CAAC;KACH,CAAC,CACH;CACF,CAAC;KACD,WAAW,EAAE,CAAC;AAMjB,MAAa,sBAAuB,SAAQ,4BAAgB;IAC1D,IAAI,GAAG,oBAAoB,CAAC;IAE5B,qBAAqB;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,OAAO,CAAC,OAAO,CACpB,OAAO,CAAC,QAAQ,KAAK,QAAQ;YAC3B,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC5B,OAAO,CAAC,QAAQ,KAAK,OAAO,CAC/B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;QAE7C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,IAAI,CACP,OAAO,EACP,SAAS,EACT,qBAAqB,EACrB,MAAM,EACN,MAAM,EACN,UAAU,CACX,CACF,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CACjE,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAC1D,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe,CACb,MAAc,EACd,IAA+B,EAC/B,gBAA2B,EAC3B,KAAe,EACf,MAAoB;QAEpB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,IAAA,sBAAW,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAAC;YACvD,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,EAAE;aAClC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAc,EACd,gBAA2B,EAC3B,KAAe,EACf,MAAoB;QAEpB,OAAO,IAAI,CAAC,cAAc,CACxB,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,EACL,MAAM,CACP,CAAC;IACJ,CAAC;CACF;AA/ED,wDA+EC","sourcesContent":["import z from 'zod';\nimport * as path from 'path';\nimport * as os from 'os';\nimport { DefaultMCPClient, MCPServerConfig } from '../MCPClient';\nimport { buildMCPUrl } from '../defaults';\nimport type { CloudRegion } from '../../../utils/types';\n\nexport const VisualStudioCodeMCPConfig = z\n .object({\n servers: z.record(\n z.string(),\n z.union([\n z.object({\n command: z.string().optional(),\n args: z.array(z.string()).optional(),\n env: z.record(z.string(), z.string()).optional(),\n }),\n z.object({\n type: z.enum(['http', 'sse']),\n url: z.string(),\n headers: z.record(z.string(), z.string()).optional(),\n }),\n ]),\n ),\n })\n .passthrough();\n\nexport type VisualStudioCodeMCPConfig = z.infer<\n typeof VisualStudioCodeMCPConfig\n>;\n\nexport class VisualStudioCodeClient extends DefaultMCPClient {\n name = 'Visual Studio Code';\n\n getServerPropertyName(): string {\n return 'servers';\n }\n\n async isClientSupported(): Promise<boolean> {\n return Promise.resolve(\n process.platform === 'darwin' ||\n process.platform === 'win32' ||\n process.platform === 'linux',\n );\n }\n\n async getConfigPath(): Promise<string> {\n const homeDir = os.homedir();\n const isWindows = process.platform === 'win32';\n const isMac = process.platform === 'darwin';\n const isLinux = process.platform === 'linux';\n\n if (isMac) {\n return Promise.resolve(\n path.join(\n homeDir,\n 'Library',\n 'Application Support',\n 'Code',\n 'User',\n 'mcp.json',\n ),\n );\n }\n\n if (isWindows) {\n return Promise.resolve(\n path.join(process.env.APPDATA || '', 'Code', 'User', 'mcp.json'),\n );\n }\n\n if (isLinux) {\n return Promise.resolve(\n path.join(homeDir, '.config', 'Code', 'User', 'mcp.json'),\n );\n }\n\n throw new Error(`Unsupported platform: ${process.platform}`);\n }\n\n getServerConfig(\n apiKey: string,\n type: 'sse' | 'streamable-http',\n selectedFeatures?: string[],\n local?: boolean,\n region?: CloudRegion,\n ): MCPServerConfig {\n return {\n type: 'http',\n url: buildMCPUrl(type, selectedFeatures, local, region),\n headers: {\n Authorization: `Bearer ${apiKey}`,\n },\n };\n }\n\n async addServer(\n apiKey: string,\n selectedFeatures?: string[],\n local?: boolean,\n region?: CloudRegion,\n ): Promise<{ success: boolean }> {\n return this._addServerType(\n apiKey,\n 'streamable-http',\n selectedFeatures,\n local,\n region,\n );\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import z from 'zod';
2
2
  import { DefaultMCPClient, MCPServerConfig } from '../MCPClient';
3
+ import type { CloudRegion } from '../../../utils/types';
3
4
  export declare const ZedMCPConfig: z.ZodObject<{
4
5
  context_servers: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
5
6
  enabled: z.ZodOptional<z.ZodBoolean>;
@@ -8,15 +9,15 @@ export declare const ZedMCPConfig: z.ZodObject<{
8
9
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
10
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
10
11
  }, "strip", z.ZodTypeAny, {
12
+ env?: Record<string, string> | undefined;
11
13
  command?: string | undefined;
12
14
  args?: string[] | undefined;
13
- env?: Record<string, string> | undefined;
14
15
  enabled?: boolean | undefined;
15
16
  source?: string | undefined;
16
17
  }, {
18
+ env?: Record<string, string> | undefined;
17
19
  command?: string | undefined;
18
20
  args?: string[] | undefined;
19
- env?: Record<string, string> | undefined;
20
21
  enabled?: boolean | undefined;
21
22
  source?: string | undefined;
22
23
  }>, z.ZodObject<{
@@ -40,15 +41,15 @@ export declare const ZedMCPConfig: z.ZodObject<{
40
41
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
41
42
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
42
43
  }, "strip", z.ZodTypeAny, {
44
+ env?: Record<string, string> | undefined;
43
45
  command?: string | undefined;
44
46
  args?: string[] | undefined;
45
- env?: Record<string, string> | undefined;
46
47
  enabled?: boolean | undefined;
47
48
  source?: string | undefined;
48
49
  }, {
50
+ env?: Record<string, string> | undefined;
49
51
  command?: string | undefined;
50
52
  args?: string[] | undefined;
51
- env?: Record<string, string> | undefined;
52
53
  enabled?: boolean | undefined;
53
54
  source?: string | undefined;
54
55
  }>, z.ZodObject<{
@@ -72,15 +73,15 @@ export declare const ZedMCPConfig: z.ZodObject<{
72
73
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
73
74
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
74
75
  }, "strip", z.ZodTypeAny, {
76
+ env?: Record<string, string> | undefined;
75
77
  command?: string | undefined;
76
78
  args?: string[] | undefined;
77
- env?: Record<string, string> | undefined;
78
79
  enabled?: boolean | undefined;
79
80
  source?: string | undefined;
80
81
  }, {
82
+ env?: Record<string, string> | undefined;
81
83
  command?: string | undefined;
82
84
  args?: string[] | undefined;
83
- env?: Record<string, string> | undefined;
84
85
  enabled?: boolean | undefined;
85
86
  source?: string | undefined;
86
87
  }>, z.ZodObject<{
@@ -103,8 +104,8 @@ export declare class ZedClient extends DefaultMCPClient {
103
104
  getServerPropertyName(): string;
104
105
  isClientSupported(): Promise<boolean>;
105
106
  getConfigPath(): Promise<string>;
106
- getServerConfig(apiKey: string, type: 'sse' | 'streamable-http', selectedFeatures?: string[], local?: boolean): MCPServerConfig;
107
- addServer(apiKey: string, selectedFeatures?: string[], local?: boolean): Promise<{
107
+ getServerConfig(apiKey: string, type: 'sse' | 'streamable-http', selectedFeatures?: string[], local?: boolean, region?: CloudRegion): MCPServerConfig;
108
+ addServer(apiKey: string, selectedFeatures?: string[], local?: boolean, region?: CloudRegion): Promise<{
108
109
  success: boolean;
109
110
  }>;
110
111
  }
@@ -85,17 +85,17 @@ class ZedClient extends MCPClient_1.DefaultMCPClient {
85
85
  }
86
86
  throw new Error(`Unsupported platform: ${process.platform}`);
87
87
  }
88
- getServerConfig(apiKey, type, selectedFeatures, local) {
88
+ getServerConfig(apiKey, type, selectedFeatures, local, region) {
89
89
  return {
90
90
  enabled: true,
91
- url: (0, defaults_1.buildMCPUrl)(type, selectedFeatures, local),
91
+ url: (0, defaults_1.buildMCPUrl)(type, selectedFeatures, local, region),
92
92
  headers: {
93
93
  Authorization: `Bearer ${apiKey}`,
94
94
  },
95
95
  };
96
96
  }
97
- async addServer(apiKey, selectedFeatures, local) {
98
- return this._addServerType(apiKey, 'streamable-http', selectedFeatures, local);
97
+ async addServer(apiKey, selectedFeatures, local, region) {
98
+ return this._addServerType(apiKey, 'streamable-http', selectedFeatures, local, region);
99
99
  }
100
100
  }
101
101
  exports.ZedClient = ZedClient;
@@ -1 +1 @@
1
- {"version":3,"file":"zed.js","sourceRoot":"","sources":["../../../../../src/steps/add-mcp-server-to-clients/clients/zed.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAoB;AACpB,2CAA6B;AAC7B,uCAAyB;AACzB,4CAAiE;AACjE,0CAA0C;AAE7B,QAAA,YAAY,GAAG,aAAC;KAC1B,MAAM,CAAC;IACN,eAAe,EAAE,aAAC,CAAC,MAAM,CACvB,aAAC,CAAC,MAAM,EAAE,EACV,aAAC,CAAC,KAAK,CAAC;QACN,aAAC,CAAC,MAAM,CAAC;YACP,OAAO,EAAE,aAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC/B,MAAM,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,OAAO,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,IAAI,EAAE,aAAC,CAAC,KAAK,CAAC,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YACpC,GAAG,EAAE,aAAC,CAAC,MAAM,CAAC,aAAC,CAAC,MAAM,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SACjD,CAAC;QACF,aAAC,CAAC,MAAM,CAAC;YACP,OAAO,EAAE,aAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC/B,GAAG,EAAE,aAAC,CAAC,MAAM,EAAE;YACf,OAAO,EAAE,aAAC,CAAC,MAAM,CAAC,aAAC,CAAC,MAAM,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SACrD,CAAC;KACH,CAAC,CACH;CACF,CAAC;KACD,WAAW,EAAE,CAAC;AAIjB,MAAa,SAAU,SAAQ,4BAAgB;IAC7C,IAAI,GAAG,KAAK,CAAC;IAEb,qBAAqB;QACnB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,OAAO,CAAC,OAAO,CACpB,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAC9D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;QAE7C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC,CACtD,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,sDAAsD;YACtD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAClD,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,eAAe,CAAC,CACjD,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC,CACtD,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe,CACb,MAAc,EACd,IAA+B,EAC/B,gBAA2B,EAC3B,KAAe;QAEf,OAAO;YACL,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,IAAA,sBAAW,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC;YAC/C,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,EAAE;aAClC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAc,EACd,gBAA2B,EAC3B,KAAe;QAEf,OAAO,IAAI,CAAC,cAAc,CACxB,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,CACN,CAAC;IACJ,CAAC;CACF;AAnED,8BAmEC","sourcesContent":["import z from 'zod';\nimport * as path from 'path';\nimport * as os from 'os';\nimport { DefaultMCPClient, MCPServerConfig } from '../MCPClient';\nimport { buildMCPUrl } from '../defaults';\n\nexport const ZedMCPConfig = z\n .object({\n context_servers: z.record(\n z.string(),\n z.union([\n z.object({\n enabled: z.boolean().optional(),\n source: z.string().optional(),\n command: z.string().optional(),\n args: z.array(z.string()).optional(),\n env: z.record(z.string(), z.string()).optional(),\n }),\n z.object({\n enabled: z.boolean().optional(),\n url: z.string(),\n headers: z.record(z.string(), z.string()).optional(),\n }),\n ]),\n ),\n })\n .passthrough();\n\nexport type ZedMCPConfig = z.infer<typeof ZedMCPConfig>;\n\nexport class ZedClient extends DefaultMCPClient {\n name = 'Zed';\n\n getServerPropertyName(): string {\n return 'context_servers';\n }\n\n async isClientSupported(): Promise<boolean> {\n return Promise.resolve(\n process.platform === 'darwin' || process.platform === 'linux',\n );\n }\n\n async getConfigPath(): Promise<string> {\n const homeDir = os.homedir();\n const isMac = process.platform === 'darwin';\n const isLinux = process.platform === 'linux';\n\n if (isMac) {\n return Promise.resolve(\n path.join(homeDir, '.config', 'zed', 'settings.json'),\n );\n }\n\n if (isLinux) {\n // https://zed.dev/docs/configuring-zed#settings-files\n const xdgConfigHome = process.env.XDG_CONFIG_HOME;\n if (xdgConfigHome) {\n return Promise.resolve(\n path.join(xdgConfigHome, 'zed', 'settings.json'),\n );\n }\n return Promise.resolve(\n path.join(homeDir, '.config', 'zed', 'settings.json'),\n );\n }\n\n throw new Error(`Unsupported platform: ${process.platform}`);\n }\n\n getServerConfig(\n apiKey: string,\n type: 'sse' | 'streamable-http',\n selectedFeatures?: string[],\n local?: boolean,\n ): MCPServerConfig {\n return {\n enabled: true,\n url: buildMCPUrl(type, selectedFeatures, local),\n headers: {\n Authorization: `Bearer ${apiKey}`,\n },\n };\n }\n\n async addServer(\n apiKey: string,\n selectedFeatures?: string[],\n local?: boolean,\n ): Promise<{ success: boolean }> {\n return this._addServerType(\n apiKey,\n 'streamable-http',\n selectedFeatures,\n local,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"zed.js","sourceRoot":"","sources":["../../../../../src/steps/add-mcp-server-to-clients/clients/zed.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAoB;AACpB,2CAA6B;AAC7B,uCAAyB;AACzB,4CAAiE;AACjE,0CAA0C;AAG7B,QAAA,YAAY,GAAG,aAAC;KAC1B,MAAM,CAAC;IACN,eAAe,EAAE,aAAC,CAAC,MAAM,CACvB,aAAC,CAAC,MAAM,EAAE,EACV,aAAC,CAAC,KAAK,CAAC;QACN,aAAC,CAAC,MAAM,CAAC;YACP,OAAO,EAAE,aAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC/B,MAAM,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,OAAO,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,IAAI,EAAE,aAAC,CAAC,KAAK,CAAC,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YACpC,GAAG,EAAE,aAAC,CAAC,MAAM,CAAC,aAAC,CAAC,MAAM,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SACjD,CAAC;QACF,aAAC,CAAC,MAAM,CAAC;YACP,OAAO,EAAE,aAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC/B,GAAG,EAAE,aAAC,CAAC,MAAM,EAAE;YACf,OAAO,EAAE,aAAC,CAAC,MAAM,CAAC,aAAC,CAAC,MAAM,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SACrD,CAAC;KACH,CAAC,CACH;CACF,CAAC;KACD,WAAW,EAAE,CAAC;AAIjB,MAAa,SAAU,SAAQ,4BAAgB;IAC7C,IAAI,GAAG,KAAK,CAAC;IAEb,qBAAqB;QACnB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,OAAO,CAAC,OAAO,CACpB,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAC9D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;QAE7C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC,CACtD,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,sDAAsD;YACtD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAClD,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,eAAe,CAAC,CACjD,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC,CACtD,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe,CACb,MAAc,EACd,IAA+B,EAC/B,gBAA2B,EAC3B,KAAe,EACf,MAAoB;QAEpB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,IAAA,sBAAW,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAAC;YACvD,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,EAAE;aAClC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAc,EACd,gBAA2B,EAC3B,KAAe,EACf,MAAoB;QAEpB,OAAO,IAAI,CAAC,cAAc,CACxB,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,EACL,MAAM,CACP,CAAC;IACJ,CAAC;CACF;AAtED,8BAsEC","sourcesContent":["import z from 'zod';\nimport * as path from 'path';\nimport * as os from 'os';\nimport { DefaultMCPClient, MCPServerConfig } from '../MCPClient';\nimport { buildMCPUrl } from '../defaults';\nimport type { CloudRegion } from '../../../utils/types';\n\nexport const ZedMCPConfig = z\n .object({\n context_servers: z.record(\n z.string(),\n z.union([\n z.object({\n enabled: z.boolean().optional(),\n source: z.string().optional(),\n command: z.string().optional(),\n args: z.array(z.string()).optional(),\n env: z.record(z.string(), z.string()).optional(),\n }),\n z.object({\n enabled: z.boolean().optional(),\n url: z.string(),\n headers: z.record(z.string(), z.string()).optional(),\n }),\n ]),\n ),\n })\n .passthrough();\n\nexport type ZedMCPConfig = z.infer<typeof ZedMCPConfig>;\n\nexport class ZedClient extends DefaultMCPClient {\n name = 'Zed';\n\n getServerPropertyName(): string {\n return 'context_servers';\n }\n\n async isClientSupported(): Promise<boolean> {\n return Promise.resolve(\n process.platform === 'darwin' || process.platform === 'linux',\n );\n }\n\n async getConfigPath(): Promise<string> {\n const homeDir = os.homedir();\n const isMac = process.platform === 'darwin';\n const isLinux = process.platform === 'linux';\n\n if (isMac) {\n return Promise.resolve(\n path.join(homeDir, '.config', 'zed', 'settings.json'),\n );\n }\n\n if (isLinux) {\n // https://zed.dev/docs/configuring-zed#settings-files\n const xdgConfigHome = process.env.XDG_CONFIG_HOME;\n if (xdgConfigHome) {\n return Promise.resolve(\n path.join(xdgConfigHome, 'zed', 'settings.json'),\n );\n }\n return Promise.resolve(\n path.join(homeDir, '.config', 'zed', 'settings.json'),\n );\n }\n\n throw new Error(`Unsupported platform: ${process.platform}`);\n }\n\n getServerConfig(\n apiKey: string,\n type: 'sse' | 'streamable-http',\n selectedFeatures?: string[],\n local?: boolean,\n region?: CloudRegion,\n ): MCPServerConfig {\n return {\n enabled: true,\n url: buildMCPUrl(type, selectedFeatures, local, region),\n headers: {\n Authorization: `Bearer ${apiKey}`,\n },\n };\n }\n\n async addServer(\n apiKey: string,\n selectedFeatures?: string[],\n local?: boolean,\n region?: CloudRegion,\n ): Promise<{ success: boolean }> {\n return this._addServerType(\n apiKey,\n 'streamable-http',\n selectedFeatures,\n local,\n region,\n );\n }\n}\n"]}
@@ -1,17 +1,18 @@
1
1
  import z from 'zod';
2
+ import type { CloudRegion } from '../../utils/types';
2
3
  export declare const DefaultMCPClientConfig: z.ZodObject<{
3
4
  mcpServers: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
4
5
  command: z.ZodOptional<z.ZodString>;
5
6
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6
7
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
7
8
  }, "strip", z.ZodTypeAny, {
9
+ env?: Record<string, string> | undefined;
8
10
  command?: string | undefined;
9
11
  args?: string[] | undefined;
10
- env?: Record<string, string> | undefined;
11
12
  }, {
13
+ env?: Record<string, string> | undefined;
12
14
  command?: string | undefined;
13
15
  args?: string[] | undefined;
14
- env?: Record<string, string> | undefined;
15
16
  }>, z.ZodObject<{
16
17
  url: z.ZodString;
17
18
  headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -28,13 +29,13 @@ export declare const DefaultMCPClientConfig: z.ZodObject<{
28
29
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
29
30
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
30
31
  }, "strip", z.ZodTypeAny, {
32
+ env?: Record<string, string> | undefined;
31
33
  command?: string | undefined;
32
34
  args?: string[] | undefined;
33
- env?: Record<string, string> | undefined;
34
35
  }, {
36
+ env?: Record<string, string> | undefined;
35
37
  command?: string | undefined;
36
38
  args?: string[] | undefined;
37
- env?: Record<string, string> | undefined;
38
39
  }>, z.ZodObject<{
39
40
  url: z.ZodString;
40
41
  headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -51,13 +52,13 @@ export declare const DefaultMCPClientConfig: z.ZodObject<{
51
52
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
52
53
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
53
54
  }, "strip", z.ZodTypeAny, {
55
+ env?: Record<string, string> | undefined;
54
56
  command?: string | undefined;
55
57
  args?: string[] | undefined;
56
- env?: Record<string, string> | undefined;
57
58
  }, {
59
+ env?: Record<string, string> | undefined;
58
60
  command?: string | undefined;
59
61
  args?: string[] | undefined;
60
- env?: Record<string, string> | undefined;
61
62
  }>, z.ZodObject<{
62
63
  url: z.ZodString;
63
64
  headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -88,14 +89,13 @@ export declare const AVAILABLE_FEATURES: {
88
89
  };
89
90
  export declare const ALL_FEATURE_VALUES: string[];
90
91
  type MCPServerType = 'sse' | 'streamable-http';
91
- export declare const buildMCPUrl: (type: MCPServerType, selectedFeatures?: string[], local?: boolean) => string;
92
- export declare const getNativeHTTPServerConfig: (apiKey: string, type: MCPServerType, selectedFeatures?: string[], local?: boolean) => {
93
- url: string;
94
- headers: {
95
- Authorization: string;
96
- };
97
- };
98
- export declare const getDefaultServerConfig: (apiKey: string, type: MCPServerType, selectedFeatures?: string[], local?: boolean) => {
92
+ export declare const buildMCPUrl: (type: MCPServerType, selectedFeatures?: string[], local?: boolean, region?: CloudRegion) => string;
93
+ export declare const getNativeHTTPServerConfig: (apiKey: string | undefined, type: MCPServerType, selectedFeatures?: string[], local?: boolean, region?: CloudRegion) => Record<string, unknown>;
94
+ export declare const getDefaultServerConfig: (apiKey: string | undefined, type: MCPServerType, selectedFeatures?: string[], local?: boolean, region?: CloudRegion) => {
95
+ command: string;
96
+ args: string[];
97
+ env?: undefined;
98
+ } | {
99
99
  command: string;
100
100
  args: string[];
101
101
  env: {
@@ -67,30 +67,51 @@ exports.AVAILABLE_FEATURES = {
67
67
  exports.ALL_FEATURE_VALUES = Object.values(exports.AVAILABLE_FEATURES)
68
68
  .flat()
69
69
  .map((feature) => feature.value);
70
- const buildMCPUrl = (type, selectedFeatures, local) => {
70
+ const buildMCPUrl = (type, selectedFeatures, local, region) => {
71
71
  const host = local ? 'http://localhost:8787' : 'https://mcp.posthog.com';
72
72
  const baseUrl = `${host}/${type === 'sse' ? 'sse' : 'mcp'}`;
73
73
  const isAllFeaturesSelected = selectedFeatures &&
74
74
  selectedFeatures.length === exports.ALL_FEATURE_VALUES.length &&
75
75
  exports.ALL_FEATURE_VALUES.every((feature) => selectedFeatures.includes(feature));
76
- return selectedFeatures &&
76
+ const params = [];
77
+ // Add features param if not all features selected
78
+ if (selectedFeatures &&
77
79
  selectedFeatures.length > 0 &&
78
- !isAllFeaturesSelected
79
- ? `${baseUrl}?features=${selectedFeatures.join(',')}`
80
- : baseUrl;
80
+ !isAllFeaturesSelected) {
81
+ params.push(`features=${selectedFeatures.join(',')}`);
82
+ }
83
+ // Add region param for non-US regions to route OAuth to the correct authorization server.
84
+ // US is the default, so we only need to specify region for EU users.
85
+ // Not needed in local mode since local dev always uses the same auth server.
86
+ if (region && region !== 'us' && !local) {
87
+ params.push(`region=${region}`);
88
+ }
89
+ return params.length > 0 ? `${baseUrl}?${params.join('&')}` : baseUrl;
81
90
  };
82
91
  exports.buildMCPUrl = buildMCPUrl;
83
- const getNativeHTTPServerConfig = (apiKey, type, selectedFeatures, local) => {
84
- return {
85
- url: (0, exports.buildMCPUrl)(type, selectedFeatures, local),
86
- headers: {
87
- Authorization: `Bearer ${apiKey}`,
88
- },
92
+ const getNativeHTTPServerConfig = (apiKey, type, selectedFeatures, local, region) => {
93
+ const config = {
94
+ url: (0, exports.buildMCPUrl)(type, selectedFeatures, local, region),
89
95
  };
96
+ // Only add auth header if API key is provided (not OAuth mode)
97
+ if (apiKey) {
98
+ config.headers = {
99
+ Authorization: `Bearer ${apiKey}`,
100
+ };
101
+ }
102
+ return config;
90
103
  };
91
104
  exports.getNativeHTTPServerConfig = getNativeHTTPServerConfig;
92
- const getDefaultServerConfig = (apiKey, type, selectedFeatures, local) => {
93
- const urlWithFeatures = (0, exports.buildMCPUrl)(type, selectedFeatures, local);
105
+ const getDefaultServerConfig = (apiKey, type, selectedFeatures, local, region) => {
106
+ const urlWithFeatures = (0, exports.buildMCPUrl)(type, selectedFeatures, local, region);
107
+ // OAuth mode: no auth header, let MCP handle OAuth
108
+ if (!apiKey) {
109
+ return {
110
+ command: 'npx',
111
+ args: ['-y', 'mcp-remote@latest', urlWithFeatures],
112
+ };
113
+ }
114
+ // API key mode: include auth header
94
115
  return {
95
116
  command: 'npx',
96
117
  args: [
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../../src/steps/add-mcp-server-to-clients/defaults.ts"],"names":[],"mappings":"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","sourcesContent":["import z from 'zod';\n\nexport const DefaultMCPClientConfig = z\n .object({\n mcpServers: z.record(\n z.string(),\n z.union([\n z.object({\n command: z.string().optional(),\n args: z.array(z.string()).optional(),\n env: z.record(z.string(), z.string()).optional(),\n }),\n z.object({\n url: z.string(),\n headers: z.record(z.string(), z.string()).optional(),\n }),\n ]),\n ),\n })\n .passthrough();\n\nexport const AVAILABLE_FEATURES = {\n 'Data & Analytics': [\n {\n value: 'dashboards',\n label: 'Dashboards',\n hint: 'Dashboard creation and management',\n },\n {\n value: 'insights',\n label: 'Insights',\n hint: 'Analytics insights and SQL queries',\n },\n {\n value: 'experiments',\n label: 'Experiments',\n hint: 'A/B testing experiments',\n },\n {\n value: 'llm-analytics',\n label: 'LLM Analytics',\n hint: 'LLM usage and cost tracking',\n },\n ],\n 'Development Tools': [\n {\n value: 'error-tracking',\n label: 'Error Tracking',\n hint: 'Error monitoring and debugging',\n },\n { value: 'flags', label: 'Feature Flags', hint: 'Feature flag management' },\n ],\n 'Platform & Management': [\n {\n value: 'workspace',\n label: 'Workspace',\n hint: 'Organization and project management',\n },\n {\n value: 'docs',\n label: 'Documentation',\n hint: 'PostHog documentation search',\n },\n ],\n};\n\nexport const ALL_FEATURE_VALUES = Object.values(AVAILABLE_FEATURES)\n .flat()\n .map((feature) => feature.value);\n\ntype MCPServerType = 'sse' | 'streamable-http';\n\nexport const buildMCPUrl = (\n type: MCPServerType,\n selectedFeatures?: string[],\n local?: boolean,\n) => {\n const host = local ? 'http://localhost:8787' : 'https://mcp.posthog.com';\n const baseUrl = `${host}/${type === 'sse' ? 'sse' : 'mcp'}`;\n\n const isAllFeaturesSelected =\n selectedFeatures &&\n selectedFeatures.length === ALL_FEATURE_VALUES.length &&\n ALL_FEATURE_VALUES.every((feature) => selectedFeatures.includes(feature));\n\n return selectedFeatures &&\n selectedFeatures.length > 0 &&\n !isAllFeaturesSelected\n ? `${baseUrl}?features=${selectedFeatures.join(',')}`\n : baseUrl;\n};\n\nexport const getNativeHTTPServerConfig = (\n apiKey: string,\n type: MCPServerType,\n selectedFeatures?: string[],\n local?: boolean,\n) => {\n return {\n url: buildMCPUrl(type, selectedFeatures, local),\n headers: {\n Authorization: `Bearer ${apiKey}`,\n },\n };\n};\n\nexport const getDefaultServerConfig = (\n apiKey: string,\n type: MCPServerType,\n selectedFeatures?: string[],\n local?: boolean,\n) => {\n const urlWithFeatures = buildMCPUrl(type, selectedFeatures, local);\n\n return {\n command: 'npx',\n args: [\n '-y',\n 'mcp-remote@latest',\n urlWithFeatures,\n '--header',\n `Authorization:\\${POSTHOG_AUTH_HEADER}`,\n ],\n env: {\n POSTHOG_AUTH_HEADER: `Bearer ${apiKey}`,\n },\n };\n};\n"]}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../../src/steps/add-mcp-server-to-clients/defaults.ts"],"names":[],"mappings":"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","sourcesContent":["import z from 'zod';\nimport type { CloudRegion } from '../../utils/types';\n\nexport const DefaultMCPClientConfig = z\n .object({\n mcpServers: z.record(\n z.string(),\n z.union([\n z.object({\n command: z.string().optional(),\n args: z.array(z.string()).optional(),\n env: z.record(z.string(), z.string()).optional(),\n }),\n z.object({\n url: z.string(),\n headers: z.record(z.string(), z.string()).optional(),\n }),\n ]),\n ),\n })\n .passthrough();\n\nexport const AVAILABLE_FEATURES = {\n 'Data & Analytics': [\n {\n value: 'dashboards',\n label: 'Dashboards',\n hint: 'Dashboard creation and management',\n },\n {\n value: 'insights',\n label: 'Insights',\n hint: 'Analytics insights and SQL queries',\n },\n {\n value: 'experiments',\n label: 'Experiments',\n hint: 'A/B testing experiments',\n },\n {\n value: 'llm-analytics',\n label: 'LLM Analytics',\n hint: 'LLM usage and cost tracking',\n },\n ],\n 'Development Tools': [\n {\n value: 'error-tracking',\n label: 'Error Tracking',\n hint: 'Error monitoring and debugging',\n },\n { value: 'flags', label: 'Feature Flags', hint: 'Feature flag management' },\n ],\n 'Platform & Management': [\n {\n value: 'workspace',\n label: 'Workspace',\n hint: 'Organization and project management',\n },\n {\n value: 'docs',\n label: 'Documentation',\n hint: 'PostHog documentation search',\n },\n ],\n};\n\nexport const ALL_FEATURE_VALUES = Object.values(AVAILABLE_FEATURES)\n .flat()\n .map((feature) => feature.value);\n\ntype MCPServerType = 'sse' | 'streamable-http';\n\nexport const buildMCPUrl = (\n type: MCPServerType,\n selectedFeatures?: string[],\n local?: boolean,\n region?: CloudRegion,\n) => {\n const host = local ? 'http://localhost:8787' : 'https://mcp.posthog.com';\n const baseUrl = `${host}/${type === 'sse' ? 'sse' : 'mcp'}`;\n\n const isAllFeaturesSelected =\n selectedFeatures &&\n selectedFeatures.length === ALL_FEATURE_VALUES.length &&\n ALL_FEATURE_VALUES.every((feature) => selectedFeatures.includes(feature));\n\n const params: string[] = [];\n\n // Add features param if not all features selected\n if (\n selectedFeatures &&\n selectedFeatures.length > 0 &&\n !isAllFeaturesSelected\n ) {\n params.push(`features=${selectedFeatures.join(',')}`);\n }\n\n // Add region param for non-US regions to route OAuth to the correct authorization server.\n // US is the default, so we only need to specify region for EU users.\n // Not needed in local mode since local dev always uses the same auth server.\n if (region && region !== 'us' && !local) {\n params.push(`region=${region}`);\n }\n\n return params.length > 0 ? `${baseUrl}?${params.join('&')}` : baseUrl;\n};\n\nexport const getNativeHTTPServerConfig = (\n apiKey: string | undefined,\n type: MCPServerType,\n selectedFeatures?: string[],\n local?: boolean,\n region?: CloudRegion,\n) => {\n const config: Record<string, unknown> = {\n url: buildMCPUrl(type, selectedFeatures, local, region),\n };\n\n // Only add auth header if API key is provided (not OAuth mode)\n if (apiKey) {\n config.headers = {\n Authorization: `Bearer ${apiKey}`,\n };\n }\n\n return config;\n};\n\nexport const getDefaultServerConfig = (\n apiKey: string | undefined,\n type: MCPServerType,\n selectedFeatures?: string[],\n local?: boolean,\n region?: CloudRegion,\n) => {\n const urlWithFeatures = buildMCPUrl(type, selectedFeatures, local, region);\n\n // OAuth mode: no auth header, let MCP handle OAuth\n if (!apiKey) {\n return {\n command: 'npx',\n args: ['-y', 'mcp-remote@latest', urlWithFeatures],\n };\n }\n\n // API key mode: include auth header\n return {\n command: 'npx',\n args: [\n '-y',\n 'mcp-remote@latest',\n urlWithFeatures,\n '--header',\n `Authorization:\\${POSTHOG_AUTH_HEADER}`,\n ],\n env: {\n POSTHOG_AUTH_HEADER: `Bearer ${apiKey}`,\n },\n };\n};\n"]}