@portel/photon-core 1.3.0 → 1.4.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.
- package/dist/generator.d.ts +236 -2
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +30 -0
- package/dist/generator.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp-client.d.ts +39 -0
- package/dist/mcp-client.d.ts.map +1 -1
- package/dist/mcp-client.js +213 -0
- package/dist/mcp-client.js.map +1 -1
- package/dist/photon-config.d.ts +86 -0
- package/dist/photon-config.d.ts.map +1 -0
- package/dist/photon-config.js +156 -0
- package/dist/photon-config.js.map +1 -0
- package/dist/schema-extractor.d.ts +99 -1
- package/dist/schema-extractor.d.ts.map +1 -1
- package/dist/schema-extractor.js +311 -5
- package/dist/schema-extractor.js.map +1 -1
- package/dist/stateful.d.ts +238 -0
- package/dist/stateful.d.ts.map +1 -0
- package/dist/stateful.js +469 -0
- package/dist/stateful.js.map +1 -0
- package/dist/types.d.ts +260 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -2
- package/src/generator.ts +270 -2
- package/src/index.ts +73 -1
- package/src/mcp-client.ts +254 -0
- package/src/photon-config.ts +201 -0
- package/src/schema-extractor.ts +353 -6
- package/src/stateful.ts +659 -0
- package/src/types.ts +289 -0
package/dist/mcp-client.js
CHANGED
|
@@ -186,6 +186,219 @@ export class MCPToolError extends MCPError {
|
|
|
186
186
|
this.name = 'MCPToolError';
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Error thrown when MCP is not configured correctly
|
|
191
|
+
* Provides detailed, actionable guidance for users
|
|
192
|
+
*/
|
|
193
|
+
export class MCPConfigurationError extends MCPError {
|
|
194
|
+
configPath;
|
|
195
|
+
missingMCPs;
|
|
196
|
+
constructor(missingMCPs) {
|
|
197
|
+
const configPath = `~/.photon/mcp-servers.json`;
|
|
198
|
+
const message = MCPConfigurationError.formatMessage(missingMCPs, configPath);
|
|
199
|
+
super(missingMCPs[0]?.name || 'unknown', message);
|
|
200
|
+
this.name = 'MCPConfigurationError';
|
|
201
|
+
this.configPath = configPath;
|
|
202
|
+
this.missingMCPs = missingMCPs;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Format detailed error message with configuration instructions
|
|
206
|
+
*/
|
|
207
|
+
static formatMessage(missingMCPs, configPath) {
|
|
208
|
+
const lines = [
|
|
209
|
+
'',
|
|
210
|
+
'━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━',
|
|
211
|
+
'❌ MCP Configuration Required',
|
|
212
|
+
'━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━',
|
|
213
|
+
'',
|
|
214
|
+
];
|
|
215
|
+
// List missing MCPs
|
|
216
|
+
lines.push(`The following MCP server${missingMCPs.length > 1 ? 's are' : ' is'} required but not configured:`);
|
|
217
|
+
lines.push('');
|
|
218
|
+
for (const mcp of missingMCPs) {
|
|
219
|
+
lines.push(` • ${mcp.name}`);
|
|
220
|
+
if (mcp.source) {
|
|
221
|
+
lines.push(` Source: ${mcp.source} (${mcp.sourceType})`);
|
|
222
|
+
}
|
|
223
|
+
if (mcp.declaredIn) {
|
|
224
|
+
lines.push(` Declared in: ${mcp.declaredIn}`);
|
|
225
|
+
}
|
|
226
|
+
if (mcp.originalError) {
|
|
227
|
+
lines.push(` Error: ${mcp.originalError}`);
|
|
228
|
+
}
|
|
229
|
+
lines.push('');
|
|
230
|
+
}
|
|
231
|
+
// Configuration instructions
|
|
232
|
+
lines.push('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
233
|
+
lines.push('🔧 How to Fix');
|
|
234
|
+
lines.push('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
235
|
+
lines.push('');
|
|
236
|
+
lines.push(`Add the following to ${configPath}:`);
|
|
237
|
+
lines.push('');
|
|
238
|
+
// Generate example config
|
|
239
|
+
const exampleConfig = MCPConfigurationError.generateExampleConfig(missingMCPs);
|
|
240
|
+
lines.push(exampleConfig);
|
|
241
|
+
lines.push('');
|
|
242
|
+
// Step-by-step instructions
|
|
243
|
+
lines.push('Steps:');
|
|
244
|
+
lines.push(` 1. Create or edit ${configPath}`);
|
|
245
|
+
lines.push(' 2. Add the configuration above');
|
|
246
|
+
lines.push(' 3. Replace placeholder values with your actual configuration');
|
|
247
|
+
lines.push(' 4. Restart the Photon');
|
|
248
|
+
lines.push('');
|
|
249
|
+
// Per-source-type guidance
|
|
250
|
+
const uniqueTypes = new Set(missingMCPs.map(m => m.sourceType));
|
|
251
|
+
if (uniqueTypes.size > 0) {
|
|
252
|
+
lines.push('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
253
|
+
lines.push('📖 Configuration Guide');
|
|
254
|
+
lines.push('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
255
|
+
lines.push('');
|
|
256
|
+
for (const type of uniqueTypes) {
|
|
257
|
+
lines.push(...MCPConfigurationError.getSourceTypeGuide(type));
|
|
258
|
+
lines.push('');
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
lines.push('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
262
|
+
return lines.join('\n');
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Generate example JSON config for missing MCPs
|
|
266
|
+
*/
|
|
267
|
+
static generateExampleConfig(missingMCPs) {
|
|
268
|
+
const servers = {};
|
|
269
|
+
for (const mcp of missingMCPs) {
|
|
270
|
+
servers[mcp.name] = MCPConfigurationError.getExampleServerConfig(mcp);
|
|
271
|
+
}
|
|
272
|
+
const config = { mcpServers: servers };
|
|
273
|
+
return JSON.stringify(config, null, 2)
|
|
274
|
+
.split('\n')
|
|
275
|
+
.map(line => ' ' + line)
|
|
276
|
+
.join('\n');
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Get example server config based on source type
|
|
280
|
+
*/
|
|
281
|
+
static getExampleServerConfig(mcp) {
|
|
282
|
+
switch (mcp.sourceType) {
|
|
283
|
+
case 'npm':
|
|
284
|
+
return {
|
|
285
|
+
command: 'npx',
|
|
286
|
+
args: ['-y', mcp.source],
|
|
287
|
+
env: {
|
|
288
|
+
'// Add required environment variables here': '',
|
|
289
|
+
},
|
|
290
|
+
};
|
|
291
|
+
case 'github': {
|
|
292
|
+
// Parse github source: owner/repo or owner/repo#branch
|
|
293
|
+
const [repo, branch] = mcp.source.split('#');
|
|
294
|
+
const args = ['-y', `github:${repo}`];
|
|
295
|
+
if (branch) {
|
|
296
|
+
args[1] = `github:${repo}#${branch}`;
|
|
297
|
+
}
|
|
298
|
+
return {
|
|
299
|
+
command: 'npx',
|
|
300
|
+
args,
|
|
301
|
+
env: {
|
|
302
|
+
'// Add required environment variables here': '',
|
|
303
|
+
},
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
case 'url':
|
|
307
|
+
if (mcp.source.startsWith('ws://') || mcp.source.startsWith('wss://')) {
|
|
308
|
+
return {
|
|
309
|
+
url: mcp.source,
|
|
310
|
+
transport: 'websocket',
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
return {
|
|
314
|
+
url: mcp.source,
|
|
315
|
+
transport: 'sse',
|
|
316
|
+
};
|
|
317
|
+
case 'local':
|
|
318
|
+
return {
|
|
319
|
+
command: mcp.source,
|
|
320
|
+
args: [],
|
|
321
|
+
cwd: '// Optional: working directory',
|
|
322
|
+
};
|
|
323
|
+
default:
|
|
324
|
+
return {
|
|
325
|
+
'// Configure this MCP server': '',
|
|
326
|
+
command: 'npx',
|
|
327
|
+
args: ['-y', '<package-name>'],
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Get source-type specific guidance
|
|
333
|
+
*/
|
|
334
|
+
static getSourceTypeGuide(type) {
|
|
335
|
+
switch (type) {
|
|
336
|
+
case 'npm':
|
|
337
|
+
return [
|
|
338
|
+
'📦 NPM Packages:',
|
|
339
|
+
' MCP servers from npm are run via npx.',
|
|
340
|
+
' Example: @modelcontextprotocol/server-github',
|
|
341
|
+
'',
|
|
342
|
+
' {',
|
|
343
|
+
' "command": "npx",',
|
|
344
|
+
' "args": ["-y", "@modelcontextprotocol/server-github"],',
|
|
345
|
+
' "env": {',
|
|
346
|
+
' "GITHUB_TOKEN": "ghp_your_token_here"',
|
|
347
|
+
' }',
|
|
348
|
+
' }',
|
|
349
|
+
];
|
|
350
|
+
case 'github':
|
|
351
|
+
return [
|
|
352
|
+
'🐙 GitHub Repositories:',
|
|
353
|
+
' MCP servers from GitHub repos are cloned and run.',
|
|
354
|
+
' Format: owner/repo or owner/repo#branch',
|
|
355
|
+
'',
|
|
356
|
+
' {',
|
|
357
|
+
' "command": "npx",',
|
|
358
|
+
' "args": ["-y", "github:anthropics/mcp-server-github"],',
|
|
359
|
+
' "env": {',
|
|
360
|
+
' "GITHUB_TOKEN": "ghp_your_token_here"',
|
|
361
|
+
' }',
|
|
362
|
+
' }',
|
|
363
|
+
];
|
|
364
|
+
case 'url':
|
|
365
|
+
return [
|
|
366
|
+
'🌐 Remote URLs:',
|
|
367
|
+
' MCP servers running on remote hosts.',
|
|
368
|
+
'',
|
|
369
|
+
' HTTP/SSE:',
|
|
370
|
+
' {',
|
|
371
|
+
' "url": "https://mcp.example.com/api",',
|
|
372
|
+
' "transport": "sse",',
|
|
373
|
+
' "headers": { "Authorization": "Bearer token" }',
|
|
374
|
+
' }',
|
|
375
|
+
'',
|
|
376
|
+
' WebSocket:',
|
|
377
|
+
' {',
|
|
378
|
+
' "url": "wss://mcp.example.com/ws",',
|
|
379
|
+
' "transport": "websocket"',
|
|
380
|
+
' }',
|
|
381
|
+
];
|
|
382
|
+
case 'local':
|
|
383
|
+
return [
|
|
384
|
+
'💻 Local Commands:',
|
|
385
|
+
' MCP servers running as local processes.',
|
|
386
|
+
'',
|
|
387
|
+
' {',
|
|
388
|
+
' "command": "/path/to/mcp-server",',
|
|
389
|
+
' "args": ["--port", "3000"],',
|
|
390
|
+
' "cwd": "/working/directory",',
|
|
391
|
+
' "env": { "CONFIG": "value" }',
|
|
392
|
+
' }',
|
|
393
|
+
];
|
|
394
|
+
default:
|
|
395
|
+
return [
|
|
396
|
+
'⚙️ Custom Configuration:',
|
|
397
|
+
' Configure the MCP server based on its documentation.',
|
|
398
|
+
];
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
189
402
|
/**
|
|
190
403
|
* Create a proxy-based MCP client that allows direct method calls
|
|
191
404
|
*
|
package/dist/mcp-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
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 * as fs from 'fs/promises';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import * as os from 'os';
|
|
10
|
+
/**
|
|
11
|
+
* Default config directory
|
|
12
|
+
*/
|
|
13
|
+
export const PHOTON_CONFIG_DIR = path.join(os.homedir(), '.photon');
|
|
14
|
+
/**
|
|
15
|
+
* Default MCP servers config file
|
|
16
|
+
*/
|
|
17
|
+
export const MCP_SERVERS_CONFIG_FILE = path.join(PHOTON_CONFIG_DIR, 'mcp-servers.json');
|
|
18
|
+
/**
|
|
19
|
+
* Load MCP servers configuration from ~/.photon/mcp-servers.json
|
|
20
|
+
*
|
|
21
|
+
* @param configPath Optional custom config path (defaults to ~/.photon/mcp-servers.json)
|
|
22
|
+
* @returns The MCP configuration, or empty config if file doesn't exist
|
|
23
|
+
*/
|
|
24
|
+
export async function loadPhotonMCPConfig(configPath) {
|
|
25
|
+
const filePath = configPath || MCP_SERVERS_CONFIG_FILE;
|
|
26
|
+
try {
|
|
27
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
28
|
+
const config = JSON.parse(content);
|
|
29
|
+
// Validate structure
|
|
30
|
+
if (!config.mcpServers || typeof config.mcpServers !== 'object') {
|
|
31
|
+
console.error(`Invalid config format in ${filePath}: missing mcpServers`);
|
|
32
|
+
return { mcpServers: {} };
|
|
33
|
+
}
|
|
34
|
+
return config;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
if (error.code === 'ENOENT') {
|
|
38
|
+
// File doesn't exist - return empty config
|
|
39
|
+
return { mcpServers: {} };
|
|
40
|
+
}
|
|
41
|
+
console.error(`Failed to load config from ${filePath}: ${error.message}`);
|
|
42
|
+
return { mcpServers: {} };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Save MCP servers configuration to ~/.photon/mcp-servers.json
|
|
47
|
+
*
|
|
48
|
+
* @param config The configuration to save
|
|
49
|
+
* @param configPath Optional custom config path
|
|
50
|
+
*/
|
|
51
|
+
export async function savePhotonMCPConfig(config, configPath) {
|
|
52
|
+
const filePath = configPath || MCP_SERVERS_CONFIG_FILE;
|
|
53
|
+
const dir = path.dirname(filePath);
|
|
54
|
+
// Ensure directory exists
|
|
55
|
+
await fs.mkdir(dir, { recursive: true });
|
|
56
|
+
// Write config with pretty formatting
|
|
57
|
+
await fs.writeFile(filePath, JSON.stringify(config, null, 2), 'utf-8');
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check if an MCP server is configured
|
|
61
|
+
*
|
|
62
|
+
* @param mcpName The MCP server name to check
|
|
63
|
+
* @param config Optional pre-loaded config (loads from file if not provided)
|
|
64
|
+
*/
|
|
65
|
+
export async function isMCPConfigured(mcpName, config) {
|
|
66
|
+
const cfg = config || await loadPhotonMCPConfig();
|
|
67
|
+
return mcpName in cfg.mcpServers;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get configuration for a specific MCP server
|
|
71
|
+
*
|
|
72
|
+
* @param mcpName The MCP server name
|
|
73
|
+
* @param config Optional pre-loaded config
|
|
74
|
+
* @returns The server config or undefined if not found
|
|
75
|
+
*/
|
|
76
|
+
export async function getMCPServerConfig(mcpName, config) {
|
|
77
|
+
const cfg = config || await loadPhotonMCPConfig();
|
|
78
|
+
return cfg.mcpServers[mcpName];
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Add or update an MCP server configuration
|
|
82
|
+
*
|
|
83
|
+
* @param mcpName The MCP server name
|
|
84
|
+
* @param serverConfig The server configuration
|
|
85
|
+
* @param configPath Optional custom config path
|
|
86
|
+
*/
|
|
87
|
+
export async function setMCPServerConfig(mcpName, serverConfig, configPath) {
|
|
88
|
+
const config = await loadPhotonMCPConfig(configPath);
|
|
89
|
+
config.mcpServers[mcpName] = serverConfig;
|
|
90
|
+
await savePhotonMCPConfig(config, configPath);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Remove an MCP server configuration
|
|
94
|
+
*
|
|
95
|
+
* @param mcpName The MCP server name to remove
|
|
96
|
+
* @param configPath Optional custom config path
|
|
97
|
+
*/
|
|
98
|
+
export async function removeMCPServerConfig(mcpName, configPath) {
|
|
99
|
+
const config = await loadPhotonMCPConfig(configPath);
|
|
100
|
+
delete config.mcpServers[mcpName];
|
|
101
|
+
await savePhotonMCPConfig(config, configPath);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* List all configured MCP servers
|
|
105
|
+
*
|
|
106
|
+
* @param configPath Optional custom config path
|
|
107
|
+
* @returns Array of MCP server names
|
|
108
|
+
*/
|
|
109
|
+
export async function listMCPServers(configPath) {
|
|
110
|
+
const config = await loadPhotonMCPConfig(configPath);
|
|
111
|
+
return Object.keys(config.mcpServers);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Convert PhotonMCPConfig to MCPConfig (for SDK transport)
|
|
115
|
+
*/
|
|
116
|
+
export function toMCPConfig(config) {
|
|
117
|
+
return {
|
|
118
|
+
mcpServers: config.mcpServers,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Merge environment variables into MCP server config
|
|
123
|
+
* Supports ${VAR_NAME} syntax for env var references
|
|
124
|
+
*
|
|
125
|
+
* @param serverConfig The server config to process
|
|
126
|
+
* @returns Config with env vars resolved
|
|
127
|
+
*/
|
|
128
|
+
export function resolveEnvVars(serverConfig) {
|
|
129
|
+
const resolved = { ...serverConfig };
|
|
130
|
+
// Process env object if present
|
|
131
|
+
if (resolved.env) {
|
|
132
|
+
const processedEnv = {};
|
|
133
|
+
for (const [key, value] of Object.entries(resolved.env)) {
|
|
134
|
+
processedEnv[key] = resolveEnvValue(value);
|
|
135
|
+
}
|
|
136
|
+
resolved.env = processedEnv;
|
|
137
|
+
}
|
|
138
|
+
// Process args if present
|
|
139
|
+
if (resolved.args) {
|
|
140
|
+
resolved.args = resolved.args.map(resolveEnvValue);
|
|
141
|
+
}
|
|
142
|
+
// Process url if present
|
|
143
|
+
if (resolved.url) {
|
|
144
|
+
resolved.url = resolveEnvValue(resolved.url);
|
|
145
|
+
}
|
|
146
|
+
return resolved;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Resolve ${VAR_NAME} references in a string value
|
|
150
|
+
*/
|
|
151
|
+
function resolveEnvValue(value) {
|
|
152
|
+
return value.replace(/\$\{([^}]+)\}/g, (_, varName) => {
|
|
153
|
+
return process.env[varName] || '';
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=photon-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"photon-config.js","sourceRoot":"","sources":["../src/photon-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Now uses TypeScript's compiler API for robust type parsing
|
|
9
9
|
*/
|
|
10
|
-
import { ExtractedSchema, ConstructorParam, TemplateInfo, StaticInfo, MCPDependency } from './types.js';
|
|
10
|
+
import { ExtractedSchema, ConstructorParam, TemplateInfo, StaticInfo, MCPDependency, PhotonDependency, ResolvedInjection, PhotonAssets } from './types.js';
|
|
11
11
|
export interface ExtractedMetadata {
|
|
12
12
|
tools: ExtractedSchema[];
|
|
13
13
|
templates: TemplateInfo[];
|
|
@@ -53,6 +53,11 @@ export declare class SchemaExtractor {
|
|
|
53
53
|
* Returns null if the union should use standard anyOf processing
|
|
54
54
|
*/
|
|
55
55
|
private extractEnumFromUnion;
|
|
56
|
+
/**
|
|
57
|
+
* Check if a type is a primitive (string, number, boolean)
|
|
58
|
+
* Primitives are injected from environment variables
|
|
59
|
+
*/
|
|
60
|
+
private isPrimitiveType;
|
|
56
61
|
/**
|
|
57
62
|
* Extract constructor parameters for config injection
|
|
58
63
|
*/
|
|
@@ -91,6 +96,11 @@ export declare class SchemaExtractor {
|
|
|
91
96
|
* Check if JSDoc contains @Static tag
|
|
92
97
|
*/
|
|
93
98
|
private hasStaticTag;
|
|
99
|
+
/**
|
|
100
|
+
* Check if JSDoc contains @stateful tag
|
|
101
|
+
* Indicates this method is a stateful workflow that supports checkpoint/resume
|
|
102
|
+
*/
|
|
103
|
+
private hasStatefulTag;
|
|
94
104
|
/**
|
|
95
105
|
* Extract URI pattern from @Static tag
|
|
96
106
|
* Example: @Static github://repos/{owner}/{repo}/readme
|
|
@@ -139,5 +149,93 @@ export declare class SchemaExtractor {
|
|
|
139
149
|
* Classify MCP source type based on format
|
|
140
150
|
*/
|
|
141
151
|
private classifyMCPSource;
|
|
152
|
+
/**
|
|
153
|
+
* Extract Photon dependencies from source code
|
|
154
|
+
* Parses @photon tags in file-level or class-level JSDoc comments
|
|
155
|
+
*
|
|
156
|
+
* Format: @photon <name> <source>
|
|
157
|
+
*
|
|
158
|
+
* Source formats:
|
|
159
|
+
* - Marketplace: rss-feed (simple name from marketplace)
|
|
160
|
+
* - GitHub: portel-dev/photons/rss-feed
|
|
161
|
+
* - npm package: npm:@portel/rss-feed-photon
|
|
162
|
+
* - Local path: ./my-photon.photon.ts
|
|
163
|
+
*
|
|
164
|
+
* Example:
|
|
165
|
+
* ```
|
|
166
|
+
* /**
|
|
167
|
+
* * @photon rssFeed rss-feed
|
|
168
|
+
* * @photon custom ./my-photon.photon.ts
|
|
169
|
+
* *\/
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
extractPhotonDependencies(source: string): PhotonDependency[];
|
|
173
|
+
/**
|
|
174
|
+
* Classify Photon source type based on format
|
|
175
|
+
*/
|
|
176
|
+
private classifyPhotonSource;
|
|
177
|
+
/**
|
|
178
|
+
* Resolve all injections for a Photon class
|
|
179
|
+
* Determines how each constructor parameter should be injected:
|
|
180
|
+
* - Primitives (string, number, boolean) → env var
|
|
181
|
+
* - Non-primitives matching @mcp → MCP client
|
|
182
|
+
* - Non-primitives matching @photon → Photon instance
|
|
183
|
+
*
|
|
184
|
+
* @param source The Photon source code
|
|
185
|
+
* @param mcpName The MCP name (for env var prefixing)
|
|
186
|
+
*/
|
|
187
|
+
resolveInjections(source: string, mcpName: string): ResolvedInjection[];
|
|
188
|
+
/**
|
|
189
|
+
* Convert MCP name and parameter name to environment variable name
|
|
190
|
+
* Example: (filesystem, workdir) → FILESYSTEM_WORKDIR
|
|
191
|
+
*/
|
|
192
|
+
private toEnvVarName;
|
|
193
|
+
/**
|
|
194
|
+
* Extract all assets from Photon source code
|
|
195
|
+
* Parses @ui, @prompt, @resource annotations from class-level JSDoc
|
|
196
|
+
*
|
|
197
|
+
* Format:
|
|
198
|
+
* - @ui <id> <path> - UI templates for MCP Apps
|
|
199
|
+
* - @prompt <id> <path> - Static MCP prompts
|
|
200
|
+
* - @resource <id> <path> - Static MCP resources
|
|
201
|
+
*
|
|
202
|
+
* Example:
|
|
203
|
+
* ```
|
|
204
|
+
* /**
|
|
205
|
+
* * @ui preferences ./ui/preferences.html
|
|
206
|
+
* * @prompt system ./prompts/system.md
|
|
207
|
+
* * @resource config ./resources/config.json
|
|
208
|
+
* *\/
|
|
209
|
+
* export default class MyPhoton extends PhotonMCP { ... }
|
|
210
|
+
* ```
|
|
211
|
+
*/
|
|
212
|
+
extractAssets(source: string, assetFolder?: string): PhotonAssets;
|
|
213
|
+
/**
|
|
214
|
+
* Extract UI assets from @ui annotations
|
|
215
|
+
* Format: @ui <id> <path>
|
|
216
|
+
* Path must start with ./ or / to distinguish from method-level @ui references
|
|
217
|
+
*/
|
|
218
|
+
private extractUIAssets;
|
|
219
|
+
/**
|
|
220
|
+
* Extract prompt assets from @prompt annotations
|
|
221
|
+
* Format: @prompt <id> <path>
|
|
222
|
+
* Path must start with ./ or / to be a valid declaration
|
|
223
|
+
*/
|
|
224
|
+
private extractPromptAssets;
|
|
225
|
+
/**
|
|
226
|
+
* Extract resource assets from @resource annotations
|
|
227
|
+
* Format: @resource <id> <path>
|
|
228
|
+
* Path must start with ./ or / to be a valid declaration
|
|
229
|
+
*/
|
|
230
|
+
private extractResourceAssets;
|
|
231
|
+
/**
|
|
232
|
+
* Extract method-level @ui annotations that link UI to tools
|
|
233
|
+
* Format: @ui <id> on a method's JSDoc
|
|
234
|
+
*/
|
|
235
|
+
private extractMethodUILinks;
|
|
236
|
+
/**
|
|
237
|
+
* Get MIME type from file extension
|
|
238
|
+
*/
|
|
239
|
+
private getMimeTypeFromPath;
|
|
142
240
|
}
|
|
143
241
|
//# sourceMappingURL=schema-extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-extractor.d.ts","sourceRoot":"","sources":["../src/schema-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAA2B,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-extractor.d.ts","sourceRoot":"","sources":["../src/schema-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAA2B,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAuC,MAAM,YAAY,CAAC;AAEzN,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAUnE;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB;IAkIvD;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE;IAIpD;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyGxB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IA0F5B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAoD5D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IA2G/B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IA0FxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAItB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAsBrB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAKvB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE;IAyBvD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAyB7D;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;;;;;;;;;OASG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAgDvE;;;OAGG;IACH,OAAO,CAAC,YAAY;IAapB;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY;IAgBjE;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAkBvB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAuC5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAiC5B"}
|