@portel/photon-core 1.4.0 → 2.1.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 (169) hide show
  1. package/README.md +123 -0
  2. package/dist/auto-ui.d.ts +103 -0
  3. package/dist/auto-ui.d.ts.map +1 -0
  4. package/dist/auto-ui.js +275 -0
  5. package/dist/auto-ui.js.map +1 -0
  6. package/dist/base.d.ts +9 -2
  7. package/dist/base.d.ts.map +1 -1
  8. package/dist/base.js +23 -10
  9. package/dist/base.js.map +1 -1
  10. package/dist/cli-ui-renderer.d.ts +31 -0
  11. package/dist/cli-ui-renderer.d.ts.map +1 -0
  12. package/dist/cli-ui-renderer.js +224 -0
  13. package/dist/cli-ui-renderer.js.map +1 -0
  14. package/dist/dependency-manager.d.ts.map +1 -1
  15. package/dist/dependency-manager.js +0 -1
  16. package/dist/dependency-manager.js.map +1 -1
  17. package/dist/design-system/index.d.ts +21 -0
  18. package/dist/design-system/index.d.ts.map +1 -0
  19. package/dist/design-system/index.js +27 -0
  20. package/dist/design-system/index.js.map +1 -0
  21. package/dist/design-system/tokens.d.ts +149 -0
  22. package/dist/design-system/tokens.d.ts.map +1 -0
  23. package/dist/design-system/tokens.js +413 -0
  24. package/dist/design-system/tokens.js.map +1 -0
  25. package/dist/design-system/transaction-ui.d.ts +70 -0
  26. package/dist/design-system/transaction-ui.d.ts.map +1 -0
  27. package/dist/design-system/transaction-ui.js +982 -0
  28. package/dist/design-system/transaction-ui.js.map +1 -0
  29. package/dist/generator.d.ts +58 -8
  30. package/dist/generator.d.ts.map +1 -1
  31. package/dist/generator.js +9 -4
  32. package/dist/generator.js.map +1 -1
  33. package/dist/index.d.ts +10 -7
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +48 -44
  36. package/dist/index.js.map +1 -1
  37. package/dist/io.d.ts +395 -0
  38. package/dist/io.d.ts.map +1 -0
  39. package/dist/io.js +304 -0
  40. package/dist/io.js.map +1 -0
  41. package/dist/path-resolver.d.ts.map +1 -1
  42. package/dist/path-resolver.js +2 -1
  43. package/dist/path-resolver.js.map +1 -1
  44. package/dist/rendering/components.d.ts +29 -0
  45. package/dist/rendering/components.d.ts.map +1 -0
  46. package/dist/rendering/components.js +773 -0
  47. package/dist/rendering/components.js.map +1 -0
  48. package/dist/rendering/field-analyzer.d.ts +48 -0
  49. package/dist/rendering/field-analyzer.d.ts.map +1 -0
  50. package/dist/rendering/field-analyzer.js +270 -0
  51. package/dist/rendering/field-analyzer.js.map +1 -0
  52. package/dist/rendering/field-renderers.d.ts +64 -0
  53. package/dist/rendering/field-renderers.d.ts.map +1 -0
  54. package/dist/rendering/field-renderers.js +317 -0
  55. package/dist/rendering/field-renderers.js.map +1 -0
  56. package/dist/rendering/index.d.ts +28 -0
  57. package/dist/rendering/index.d.ts.map +1 -0
  58. package/dist/rendering/index.js +60 -0
  59. package/dist/rendering/index.js.map +1 -0
  60. package/dist/rendering/layout-selector.d.ts +48 -0
  61. package/dist/rendering/layout-selector.d.ts.map +1 -0
  62. package/dist/rendering/layout-selector.js +347 -0
  63. package/dist/rendering/layout-selector.js.map +1 -0
  64. package/dist/rendering/template-engine.d.ts +41 -0
  65. package/dist/rendering/template-engine.d.ts.map +1 -0
  66. package/dist/rendering/template-engine.js +236 -0
  67. package/dist/rendering/template-engine.js.map +1 -0
  68. package/dist/schema-extractor.d.ts +30 -0
  69. package/dist/schema-extractor.d.ts.map +1 -1
  70. package/dist/schema-extractor.js +205 -12
  71. package/dist/schema-extractor.js.map +1 -1
  72. package/dist/stateful.d.ts +63 -0
  73. package/dist/stateful.d.ts.map +1 -1
  74. package/dist/stateful.js +222 -0
  75. package/dist/stateful.js.map +1 -1
  76. package/dist/types.d.ts +9 -1
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/types.js.map +1 -1
  79. package/dist/ucp/ap2/handlers.d.ts +242 -0
  80. package/dist/ucp/ap2/handlers.d.ts.map +1 -0
  81. package/dist/ucp/ap2/handlers.js +482 -0
  82. package/dist/ucp/ap2/handlers.js.map +1 -0
  83. package/dist/ucp/ap2/mandates.d.ts +95 -0
  84. package/dist/ucp/ap2/mandates.d.ts.map +1 -0
  85. package/dist/ucp/ap2/mandates.js +234 -0
  86. package/dist/ucp/ap2/mandates.js.map +1 -0
  87. package/dist/ucp/ap2/types.d.ts +305 -0
  88. package/dist/ucp/ap2/types.d.ts.map +1 -0
  89. package/dist/ucp/ap2/types.js +8 -0
  90. package/dist/ucp/ap2/types.js.map +1 -0
  91. package/dist/ucp/capabilities/checkout.d.ts +118 -0
  92. package/dist/ucp/capabilities/checkout.d.ts.map +1 -0
  93. package/dist/ucp/capabilities/checkout.js +344 -0
  94. package/dist/ucp/capabilities/checkout.js.map +1 -0
  95. package/dist/ucp/capabilities/identity.d.ts +130 -0
  96. package/dist/ucp/capabilities/identity.d.ts.map +1 -0
  97. package/dist/ucp/capabilities/identity.js +290 -0
  98. package/dist/ucp/capabilities/identity.js.map +1 -0
  99. package/dist/ucp/capabilities/order.d.ts +142 -0
  100. package/dist/ucp/capabilities/order.d.ts.map +1 -0
  101. package/dist/ucp/capabilities/order.js +383 -0
  102. package/dist/ucp/capabilities/order.js.map +1 -0
  103. package/dist/ucp/index.d.ts +18 -0
  104. package/dist/ucp/index.d.ts.map +1 -0
  105. package/dist/ucp/index.js +19 -0
  106. package/dist/ucp/index.js.map +1 -0
  107. package/dist/ucp/manifest.d.ts +62 -0
  108. package/dist/ucp/manifest.d.ts.map +1 -0
  109. package/dist/ucp/manifest.js +180 -0
  110. package/dist/ucp/manifest.js.map +1 -0
  111. package/dist/ucp/types.d.ts +327 -0
  112. package/dist/ucp/types.d.ts.map +1 -0
  113. package/dist/ucp/types.js +8 -0
  114. package/dist/ucp/types.js.map +1 -0
  115. package/package.json +3 -4
  116. package/src/auto-ui.ts +413 -0
  117. package/src/base.ts +22 -9
  118. package/src/cli-ui-renderer.ts +264 -0
  119. package/src/dependency-manager.ts +0 -1
  120. package/src/design-system/index.ts +30 -0
  121. package/src/design-system/tokens.ts +451 -0
  122. package/src/design-system/transaction-ui.ts +1038 -0
  123. package/src/generator.ts +68 -8
  124. package/src/index.ts +159 -101
  125. package/src/io.ts +493 -0
  126. package/src/path-resolver.ts +2 -1
  127. package/src/rendering/components.ts +785 -0
  128. package/src/rendering/field-analyzer.ts +299 -0
  129. package/src/rendering/field-renderers.ts +356 -0
  130. package/src/rendering/index.ts +63 -0
  131. package/src/rendering/layout-selector.ts +390 -0
  132. package/src/rendering/template-engine.ts +254 -0
  133. package/src/schema-extractor.ts +225 -12
  134. package/src/stateful.ts +301 -0
  135. package/src/types.ts +10 -1
  136. package/src/ucp/ap2/handlers.ts +779 -0
  137. package/src/ucp/ap2/mandates.ts +354 -0
  138. package/src/ucp/ap2/types.ts +441 -0
  139. package/src/ucp/capabilities/checkout.ts +497 -0
  140. package/src/ucp/capabilities/identity.ts +425 -0
  141. package/src/ucp/capabilities/order.ts +549 -0
  142. package/src/ucp/index.ts +27 -0
  143. package/src/ucp/manifest.ts +257 -0
  144. package/src/ucp/types.ts +454 -0
  145. package/dist/cli-formatter.d.ts +0 -92
  146. package/dist/cli-formatter.d.ts.map +0 -1
  147. package/dist/cli-formatter.js +0 -486
  148. package/dist/cli-formatter.js.map +0 -1
  149. package/dist/elicit.d.ts +0 -93
  150. package/dist/elicit.d.ts.map +0 -1
  151. package/dist/elicit.js +0 -373
  152. package/dist/elicit.js.map +0 -1
  153. package/dist/mcp-client.d.ts +0 -218
  154. package/dist/mcp-client.d.ts.map +0 -1
  155. package/dist/mcp-client.js +0 -424
  156. package/dist/mcp-client.js.map +0 -1
  157. package/dist/mcp-sdk-transport.d.ts +0 -88
  158. package/dist/mcp-sdk-transport.d.ts.map +0 -1
  159. package/dist/mcp-sdk-transport.js +0 -360
  160. package/dist/mcp-sdk-transport.js.map +0 -1
  161. package/dist/photon-config.d.ts +0 -86
  162. package/dist/photon-config.d.ts.map +0 -1
  163. package/dist/photon-config.js +0 -156
  164. package/dist/photon-config.js.map +0 -1
  165. package/src/cli-formatter.ts +0 -579
  166. package/src/elicit.ts +0 -438
  167. package/src/mcp-client.ts +0 -561
  168. package/src/mcp-sdk-transport.ts +0 -449
  169. package/src/photon-config.ts +0 -201
@@ -1,88 +0,0 @@
1
- /**
2
- * MCP SDK Transport for Photon Core
3
- *
4
- * Uses the official @modelcontextprotocol/sdk for connecting to MCP servers.
5
- * Supports multiple transports:
6
- * - stdio: Local processes (command + args)
7
- * - sse: Server-Sent Events over HTTP
8
- * - streamable-http: HTTP streaming
9
- * - websocket: WebSocket connections
10
- *
11
- * Configuration formats:
12
- * 1. stdio (local process):
13
- * { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"] }
14
- *
15
- * 2. sse (HTTP SSE):
16
- * { "url": "http://localhost:3000/mcp", "transport": "sse" }
17
- *
18
- * 3. streamable-http:
19
- * { "url": "http://localhost:3000/mcp", "transport": "streamable-http" }
20
- *
21
- * 4. websocket:
22
- * { "url": "ws://localhost:3000/mcp", "transport": "websocket" }
23
- */
24
- import { MCPClient, MCPTransport, MCPClientFactory, MCPToolInfo, MCPToolResult, createMCPProxy } from './mcp-client.js';
25
- /**
26
- * MCP Server configuration
27
- * Supports multiple transport types
28
- */
29
- export interface MCPServerConfig {
30
- command?: string;
31
- args?: string[];
32
- cwd?: string;
33
- env?: Record<string, string>;
34
- url?: string;
35
- transport?: 'stdio' | 'sse' | 'streamable-http' | 'websocket';
36
- headers?: Record<string, string>;
37
- }
38
- /**
39
- * Full MCP configuration file format
40
- */
41
- export interface MCPConfig {
42
- mcpServers: Record<string, MCPServerConfig>;
43
- }
44
- /**
45
- * SDK-based MCP Transport using official @modelcontextprotocol/sdk
46
- */
47
- export declare class SDKMCPTransport implements MCPTransport {
48
- private config;
49
- private verbose;
50
- private connections;
51
- constructor(config: MCPConfig, verbose?: boolean);
52
- private log;
53
- /**
54
- * Get or create connection to an MCP server
55
- */
56
- private getConnection;
57
- callTool(mcpName: string, toolName: string, parameters: Record<string, any>): Promise<MCPToolResult>;
58
- listTools(mcpName: string): Promise<MCPToolInfo[]>;
59
- isConnected(mcpName: string): Promise<boolean>;
60
- listServers(): string[];
61
- disconnectAll(): Promise<void>;
62
- }
63
- /**
64
- * SDK-based MCP Client Factory
65
- */
66
- export declare class SDKMCPClientFactory implements MCPClientFactory {
67
- private transport;
68
- constructor(config: MCPConfig, verbose?: boolean);
69
- create(mcpName: string): MCPClient;
70
- listServers(): Promise<string[]>;
71
- disconnect(): Promise<void>;
72
- getTransport(): SDKMCPTransport;
73
- }
74
- /**
75
- * Resolve an MCP source to a runnable configuration
76
- * Handles: GitHub shorthand, npm packages, URLs, local paths
77
- */
78
- export declare function resolveMCPSource(name: string, source: string, sourceType: 'github' | 'npm' | 'url' | 'local'): MCPServerConfig;
79
- /**
80
- * Load MCP configuration from standard locations
81
- */
82
- export declare function loadMCPConfig(verbose?: boolean): Promise<MCPConfig>;
83
- /**
84
- * Create an SDK-based MCP client factory from default config
85
- */
86
- export declare function createSDKMCPClientFactory(verbose?: boolean): Promise<SDKMCPClientFactory>;
87
- export { MCPClient, createMCPProxy };
88
- //# sourceMappingURL=mcp-sdk-transport.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-sdk-transport.d.ts","sourceRoot":"","sources":["../src/mcp-sdk-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAUH,OAAO,EACL,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,aAAa,EAGb,cAAc,EACf,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,MAAM,WAAW,eAAe;IAE9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,iBAAiB,GAAG,WAAW,CAAC;IAG9D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC7C;AAoLD;;GAEG;AACH,qBAAa,eAAgB,YAAW,YAAY;IAIhD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAJjB,OAAO,CAAC,WAAW,CAA4C;gBAGrD,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,OAAe;IAGlC,OAAO,CAAC,GAAG;IAMX;;OAEG;YACW,aAAa;IAmBrB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAKpG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAKlD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQpD,WAAW,IAAI,MAAM,EAAE;IAIjB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAMrC;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IAC1D,OAAO,CAAC,SAAS,CAAkB;gBAEvB,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,OAAe;IAIvD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IAI5B,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,YAAY,IAAI,eAAe;CAGhC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAC7C,eAAe,CAkDjB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CA6BhF;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAG9B;AAGD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC"}
@@ -1,360 +0,0 @@
1
- /**
2
- * MCP SDK Transport for Photon Core
3
- *
4
- * Uses the official @modelcontextprotocol/sdk for connecting to MCP servers.
5
- * Supports multiple transports:
6
- * - stdio: Local processes (command + args)
7
- * - sse: Server-Sent Events over HTTP
8
- * - streamable-http: HTTP streaming
9
- * - websocket: WebSocket connections
10
- *
11
- * Configuration formats:
12
- * 1. stdio (local process):
13
- * { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"] }
14
- *
15
- * 2. sse (HTTP SSE):
16
- * { "url": "http://localhost:3000/mcp", "transport": "sse" }
17
- *
18
- * 3. streamable-http:
19
- * { "url": "http://localhost:3000/mcp", "transport": "streamable-http" }
20
- *
21
- * 4. websocket:
22
- * { "url": "ws://localhost:3000/mcp", "transport": "websocket" }
23
- */
24
- import { Client } from '@modelcontextprotocol/sdk/client/index.js';
25
- import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
26
- import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
27
- import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
28
- import { WebSocketClientTransport } from '@modelcontextprotocol/sdk/client/websocket.js';
29
- import * as fs from 'fs/promises';
30
- import * as path from 'path';
31
- import * as os from 'os';
32
- import { MCPClient, MCPNotConnectedError, MCPToolError, createMCPProxy, } from './mcp-client.js';
33
- /**
34
- * Manages a single MCP server connection using official SDK
35
- */
36
- class SDKMCPConnection {
37
- name;
38
- config;
39
- verbose;
40
- client = null;
41
- transport = null;
42
- tools = [];
43
- initialized = false;
44
- constructor(name, config, verbose = false) {
45
- this.name = name;
46
- this.config = config;
47
- this.verbose = verbose;
48
- }
49
- log(message) {
50
- if (this.verbose) {
51
- console.error(`[MCP:${this.name}] ${message}`);
52
- }
53
- }
54
- /**
55
- * Create appropriate transport based on config
56
- */
57
- createTransport() {
58
- const transportType = this.config.transport || (this.config.command ? 'stdio' : 'sse');
59
- switch (transportType) {
60
- case 'stdio': {
61
- if (!this.config.command) {
62
- throw new Error(`stdio transport requires 'command' in config for ${this.name}`);
63
- }
64
- this.log(`Creating stdio transport: ${this.config.command} ${(this.config.args || []).join(' ')}`);
65
- return new StdioClientTransport({
66
- command: this.config.command,
67
- args: this.config.args,
68
- cwd: this.config.cwd,
69
- env: this.config.env,
70
- });
71
- }
72
- case 'sse': {
73
- if (!this.config.url) {
74
- throw new Error(`sse transport requires 'url' in config for ${this.name}`);
75
- }
76
- this.log(`Creating SSE transport: ${this.config.url}`);
77
- return new SSEClientTransport(new URL(this.config.url), {
78
- requestInit: this.config.headers ? { headers: this.config.headers } : undefined,
79
- });
80
- }
81
- case 'streamable-http': {
82
- if (!this.config.url) {
83
- throw new Error(`streamable-http transport requires 'url' in config for ${this.name}`);
84
- }
85
- this.log(`Creating streamable HTTP transport: ${this.config.url}`);
86
- return new StreamableHTTPClientTransport(new URL(this.config.url), {
87
- requestInit: this.config.headers ? { headers: this.config.headers } : undefined,
88
- });
89
- }
90
- case 'websocket': {
91
- if (!this.config.url) {
92
- throw new Error(`websocket transport requires 'url' in config for ${this.name}`);
93
- }
94
- this.log(`Creating WebSocket transport: ${this.config.url}`);
95
- return new WebSocketClientTransport(new URL(this.config.url));
96
- }
97
- default:
98
- throw new Error(`Unknown transport type: ${transportType}`);
99
- }
100
- }
101
- /**
102
- * Connect to the MCP server
103
- */
104
- async connect() {
105
- if (this.client) {
106
- return; // Already connected
107
- }
108
- this.transport = this.createTransport();
109
- this.client = new Client({
110
- name: 'photon-core',
111
- version: '1.0.0',
112
- }, {
113
- capabilities: {
114
- roots: { listChanged: false },
115
- },
116
- });
117
- this.log('Connecting...');
118
- await this.client.connect(this.transport);
119
- this.log('Connected');
120
- // List available tools
121
- const toolsResult = await this.client.listTools();
122
- this.tools = (toolsResult.tools || []).map((t) => ({
123
- name: t.name,
124
- description: t.description,
125
- inputSchema: t.inputSchema,
126
- }));
127
- this.log(`Loaded ${this.tools.length} tools`);
128
- this.initialized = true;
129
- }
130
- /**
131
- * Call a tool
132
- */
133
- async callTool(toolName, parameters) {
134
- if (!this.client || !this.initialized) {
135
- throw new MCPNotConnectedError(this.name);
136
- }
137
- try {
138
- const result = await this.client.callTool({
139
- name: toolName,
140
- arguments: parameters,
141
- });
142
- // Convert to MCPToolResult format
143
- if (result?.content && Array.isArray(result.content)) {
144
- return {
145
- content: result.content.map((c) => ({
146
- type: c.type || 'text',
147
- text: c.text,
148
- data: c.data,
149
- mimeType: c.mimeType,
150
- })),
151
- isError: result.isError,
152
- };
153
- }
154
- return {
155
- content: [{
156
- type: 'text',
157
- text: typeof result === 'string' ? result : JSON.stringify(result),
158
- }],
159
- isError: false,
160
- };
161
- }
162
- catch (error) {
163
- throw new MCPToolError(this.name, toolName, error.message);
164
- }
165
- }
166
- /**
167
- * List available tools
168
- */
169
- listTools() {
170
- return this.tools;
171
- }
172
- /**
173
- * Check if connected
174
- */
175
- isConnected() {
176
- return this.initialized && this.client !== null;
177
- }
178
- /**
179
- * Disconnect
180
- */
181
- async disconnect() {
182
- if (this.client) {
183
- this.log('Disconnecting...');
184
- await this.client.close();
185
- this.client = null;
186
- this.transport = null;
187
- this.initialized = false;
188
- }
189
- }
190
- }
191
- /**
192
- * SDK-based MCP Transport using official @modelcontextprotocol/sdk
193
- */
194
- export class SDKMCPTransport {
195
- config;
196
- verbose;
197
- connections = new Map();
198
- constructor(config, verbose = false) {
199
- this.config = config;
200
- this.verbose = verbose;
201
- }
202
- log(message) {
203
- if (this.verbose) {
204
- console.error(`[MCPTransport] ${message}`);
205
- }
206
- }
207
- /**
208
- * Get or create connection to an MCP server
209
- */
210
- async getConnection(mcpName) {
211
- let connection = this.connections.get(mcpName);
212
- if (connection?.isConnected()) {
213
- return connection;
214
- }
215
- const serverConfig = this.config.mcpServers[mcpName];
216
- if (!serverConfig) {
217
- throw new MCPNotConnectedError(mcpName);
218
- }
219
- connection = new SDKMCPConnection(mcpName, serverConfig, this.verbose);
220
- await connection.connect();
221
- this.connections.set(mcpName, connection);
222
- return connection;
223
- }
224
- async callTool(mcpName, toolName, parameters) {
225
- const connection = await this.getConnection(mcpName);
226
- return connection.callTool(toolName, parameters);
227
- }
228
- async listTools(mcpName) {
229
- const connection = await this.getConnection(mcpName);
230
- return connection.listTools();
231
- }
232
- async isConnected(mcpName) {
233
- if (!this.config.mcpServers[mcpName]) {
234
- return false;
235
- }
236
- const connection = this.connections.get(mcpName);
237
- return connection?.isConnected() ?? false;
238
- }
239
- listServers() {
240
- return Object.keys(this.config.mcpServers);
241
- }
242
- async disconnectAll() {
243
- for (const connection of this.connections.values()) {
244
- await connection.disconnect();
245
- }
246
- this.connections.clear();
247
- }
248
- }
249
- /**
250
- * SDK-based MCP Client Factory
251
- */
252
- export class SDKMCPClientFactory {
253
- transport;
254
- constructor(config, verbose = false) {
255
- this.transport = new SDKMCPTransport(config, verbose);
256
- }
257
- create(mcpName) {
258
- return new MCPClient(mcpName, this.transport);
259
- }
260
- async listServers() {
261
- return this.transport.listServers();
262
- }
263
- async disconnect() {
264
- await this.transport.disconnectAll();
265
- }
266
- getTransport() {
267
- return this.transport;
268
- }
269
- }
270
- /**
271
- * Resolve an MCP source to a runnable configuration
272
- * Handles: GitHub shorthand, npm packages, URLs, local paths
273
- */
274
- export function resolveMCPSource(name, source, sourceType) {
275
- switch (sourceType) {
276
- case 'npm': {
277
- // npm:@scope/package or npm:package
278
- const packageName = source.replace(/^npm:/, '');
279
- return {
280
- command: 'npx',
281
- args: ['-y', packageName],
282
- transport: 'stdio',
283
- };
284
- }
285
- case 'github': {
286
- // GitHub shorthand: owner/repo
287
- // Try to run via npx assuming it's published to npm
288
- return {
289
- command: 'npx',
290
- args: ['-y', `@${source}`],
291
- transport: 'stdio',
292
- };
293
- }
294
- case 'url': {
295
- // Full URL - determine transport from protocol
296
- if (source.startsWith('ws://') || source.startsWith('wss://')) {
297
- return {
298
- url: source,
299
- transport: 'websocket',
300
- };
301
- }
302
- // Default to SSE for HTTP URLs
303
- return {
304
- url: source,
305
- transport: 'sse',
306
- };
307
- }
308
- case 'local': {
309
- // Local path - run directly with node
310
- const resolvedPath = source.replace(/^~/, process.env.HOME || '');
311
- return {
312
- command: 'node',
313
- args: [resolvedPath],
314
- transport: 'stdio',
315
- };
316
- }
317
- default:
318
- throw new Error(`Unknown MCP source type: ${sourceType}`);
319
- }
320
- }
321
- /**
322
- * Load MCP configuration from standard locations
323
- */
324
- export async function loadMCPConfig(verbose = false) {
325
- const log = verbose ? (msg) => console.error(`[MCPConfig] ${msg}`) : () => { };
326
- const configPaths = [
327
- process.env.PHOTON_MCP_CONFIG,
328
- path.join(process.cwd(), 'photon.mcp.json'),
329
- path.join(os.homedir(), '.config', 'photon', 'mcp.json'),
330
- path.join(os.homedir(), '.photon', 'mcp.json'),
331
- ].filter(Boolean);
332
- for (const configPath of configPaths) {
333
- try {
334
- const content = await fs.readFile(configPath, 'utf-8');
335
- const config = JSON.parse(content);
336
- if (config.mcpServers && typeof config.mcpServers === 'object') {
337
- log(`Loaded MCP config from ${configPath}`);
338
- log(`Found ${Object.keys(config.mcpServers).length} MCP servers`);
339
- return config;
340
- }
341
- }
342
- catch (error) {
343
- if (error.code !== 'ENOENT') {
344
- log(`Failed to load ${configPath}: ${error.message}`);
345
- }
346
- }
347
- }
348
- log('No MCP config found, MCP access will be unavailable');
349
- return { mcpServers: {} };
350
- }
351
- /**
352
- * Create an SDK-based MCP client factory from default config
353
- */
354
- export async function createSDKMCPClientFactory(verbose = false) {
355
- const config = await loadMCPConfig(verbose);
356
- return new SDKMCPClientFactory(config, verbose);
357
- }
358
- // Re-export for convenience
359
- export { MCPClient, createMCPProxy };
360
- //# sourceMappingURL=mcp-sdk-transport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-sdk-transport.js","sourceRoot":"","sources":["../src/mcp-sdk-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EACL,SAAS,EAKT,oBAAoB,EACpB,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AA4BzB;;GAEG;AACH,MAAM,gBAAgB;IAOV;IACA;IACA;IARF,MAAM,GAAkB,IAAI,CAAC;IAC7B,SAAS,GAAQ,IAAI,CAAC;IACtB,KAAK,GAAkB,EAAE,CAAC;IAC1B,WAAW,GAAG,KAAK,CAAC;IAE5B,YACU,IAAY,EACZ,MAAuB,EACvB,UAAmB,KAAK;QAFxB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAiB;QACvB,YAAO,GAAP,OAAO,CAAiB;IAC/B,CAAC;IAEI,GAAG,CAAC,OAAe;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEvF,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,oDAAoD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnF,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnG,OAAO,IAAI,oBAAoB,CAAC;oBAC9B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;oBACtB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;oBACpB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;iBACrB,CAAC,CAAC;YACL,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7E,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvD,OAAO,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBACtD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;iBAChF,CAAC,CAAC;YACL,CAAC;YAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,0DAA0D,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,uCAAuC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBACnE,OAAO,IAAI,6BAA6B,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBACjE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;iBAChF,CAAC,CAAC;YACL,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,oDAAoD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnF,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,iCAAiC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC7D,OAAO,IAAI,wBAAwB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,aAAa,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,oBAAoB;QAC9B,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACtB;YACE,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;aAC9B;SACF,CACF,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEtB,uBAAuB;QACvB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,UAA+B;QAC9D,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACxC,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;YAEH,kCAAkC;YAClC,IAAI,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrD,OAAO;oBACL,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;wBACvC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM;wBACtB,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;qBACrB,CAAC,CAAC;oBACH,OAAO,EAAE,MAAM,CAAC,OAA8B;iBAC/C,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;qBACnE,CAAC;gBACF,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAe;IAIhB;IACA;IAJF,WAAW,GAAkC,IAAI,GAAG,EAAE,CAAC;IAE/D,YACU,MAAiB,EACjB,UAAmB,KAAK;QADxB,WAAM,GAAN,MAAM,CAAW;QACjB,YAAO,GAAP,OAAO,CAAiB;IAC/B,CAAC;IAEI,GAAG,CAAC,OAAe;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,OAAe;QACzC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,UAAU,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE1C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,QAAgB,EAAE,UAA+B;QAC/E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,UAAU,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,UAAU,EAAE,WAAW,EAAE,IAAI,KAAK,CAAC;IAC5C,CAAC;IAED,WAAW;QACT,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACtB,SAAS,CAAkB;IAEnC,YAAY,MAAiB,EAAE,UAAmB,KAAK;QACrD,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,MAAc,EACd,UAA8C;IAE9C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,oCAAoC;YACpC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAChD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC;gBACzB,SAAS,EAAE,OAAO;aACnB,CAAC;QACJ,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,+BAA+B;YAC/B,oDAAoD;YACpD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;gBAC1B,SAAS,EAAE,OAAO;aACnB,CAAC;QACJ,CAAC;QAED,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,+CAA+C;YAC/C,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9D,OAAO;oBACL,GAAG,EAAE,MAAM;oBACX,SAAS,EAAE,WAAW;iBACvB,CAAC;YACJ,CAAC;YACD,+BAA+B;YAC/B,OAAO;gBACL,GAAG,EAAE,MAAM;gBACX,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,sCAAsC;YACtC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAClE,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,YAAY,CAAC;gBACpB,SAAS,EAAE,OAAO;aACnB,CAAC;QACJ,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAmB,KAAK;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;IAEtF,MAAM,WAAW,GAAG;QAClB,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC;KAC/C,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;IAE9B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAc,CAAC;YAEhD,IAAI,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC/D,GAAG,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;gBAC5C,GAAG,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,cAAc,CAAC,CAAC;gBAClE,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,GAAG,CAAC,kBAAkB,UAAU,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,qDAAqD,CAAC,CAAC;IAC3D,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,UAAmB,KAAK;IAExB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,IAAI,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,4BAA4B;AAC5B,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC"}
@@ -1,86 +0,0 @@
1
- /**
2
- * Photon Runtime Configuration
3
- *
4
- * Manages ~/.photon/mcp-servers.json for MCP server configuration.
5
- * Compatible with Claude Desktop's mcpServers format.
6
- */
7
- import type { MCPConfig, MCPServerConfig } from './mcp-sdk-transport.js';
8
- /**
9
- * Default config directory
10
- */
11
- export declare const PHOTON_CONFIG_DIR: string;
12
- /**
13
- * Default MCP servers config file
14
- */
15
- export declare const MCP_SERVERS_CONFIG_FILE: string;
16
- /**
17
- * Photon MCP servers configuration file format
18
- * Compatible with Claude Desktop's mcpServers format
19
- */
20
- export interface PhotonMCPConfig {
21
- mcpServers: Record<string, MCPServerConfig>;
22
- }
23
- /**
24
- * Load MCP servers configuration from ~/.photon/mcp-servers.json
25
- *
26
- * @param configPath Optional custom config path (defaults to ~/.photon/mcp-servers.json)
27
- * @returns The MCP configuration, or empty config if file doesn't exist
28
- */
29
- export declare function loadPhotonMCPConfig(configPath?: string): Promise<PhotonMCPConfig>;
30
- /**
31
- * Save MCP servers configuration to ~/.photon/mcp-servers.json
32
- *
33
- * @param config The configuration to save
34
- * @param configPath Optional custom config path
35
- */
36
- export declare function savePhotonMCPConfig(config: PhotonMCPConfig, configPath?: string): Promise<void>;
37
- /**
38
- * Check if an MCP server is configured
39
- *
40
- * @param mcpName The MCP server name to check
41
- * @param config Optional pre-loaded config (loads from file if not provided)
42
- */
43
- export declare function isMCPConfigured(mcpName: string, config?: PhotonMCPConfig): Promise<boolean>;
44
- /**
45
- * Get configuration for a specific MCP server
46
- *
47
- * @param mcpName The MCP server name
48
- * @param config Optional pre-loaded config
49
- * @returns The server config or undefined if not found
50
- */
51
- export declare function getMCPServerConfig(mcpName: string, config?: PhotonMCPConfig): Promise<MCPServerConfig | undefined>;
52
- /**
53
- * Add or update an MCP server configuration
54
- *
55
- * @param mcpName The MCP server name
56
- * @param serverConfig The server configuration
57
- * @param configPath Optional custom config path
58
- */
59
- export declare function setMCPServerConfig(mcpName: string, serverConfig: MCPServerConfig, configPath?: string): Promise<void>;
60
- /**
61
- * Remove an MCP server configuration
62
- *
63
- * @param mcpName The MCP server name to remove
64
- * @param configPath Optional custom config path
65
- */
66
- export declare function removeMCPServerConfig(mcpName: string, configPath?: string): Promise<void>;
67
- /**
68
- * List all configured MCP servers
69
- *
70
- * @param configPath Optional custom config path
71
- * @returns Array of MCP server names
72
- */
73
- export declare function listMCPServers(configPath?: string): Promise<string[]>;
74
- /**
75
- * Convert PhotonMCPConfig to MCPConfig (for SDK transport)
76
- */
77
- export declare function toMCPConfig(config: PhotonMCPConfig): MCPConfig;
78
- /**
79
- * Merge environment variables into MCP server config
80
- * Supports ${VAR_NAME} syntax for env var references
81
- *
82
- * @param serverConfig The server config to process
83
- * @returns Config with env vars resolved
84
- */
85
- export declare function resolveEnvVars(serverConfig: MCPServerConfig): MCPServerConfig;
86
- //# sourceMappingURL=photon-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"photon-config.d.ts","sourceRoot":"","sources":["../src/photon-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAqC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAmD,CAAC;AAExF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAsBvF;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,eAAe,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAGtC;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,eAAe,EAC7B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAG3E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAI9D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,eAAe,GAAG,eAAe,CAuB7E"}