@portel/photon-core 1.0.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-extractor.js","sourceRoot":"","sources":["../src/schema-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Photon MCP Core Types
3
+ */
4
+ export interface PhotonTool {
5
+ name: string;
6
+ description: string;
7
+ inputSchema: {
8
+ type: 'object';
9
+ properties: Record<string, any>;
10
+ required?: string[];
11
+ };
12
+ }
13
+ export interface ExtractedSchema {
14
+ name: string;
15
+ description: string;
16
+ inputSchema: {
17
+ type: 'object';
18
+ properties: Record<string, any>;
19
+ required?: string[];
20
+ };
21
+ format?: 'primitive' | 'table' | 'tree' | 'list' | 'none';
22
+ }
23
+ export interface PhotonMCPClass {
24
+ name: string;
25
+ description?: string;
26
+ tools: PhotonTool[];
27
+ instance: any;
28
+ }
29
+ export interface ConstructorParam {
30
+ name: string;
31
+ type: string;
32
+ isOptional: boolean;
33
+ hasDefault: boolean;
34
+ defaultValue?: any;
35
+ }
36
+ /**
37
+ * Template type - for text generation with variable substitution
38
+ * Maps to MCP Prompts, HTTP template endpoints, CLI help generators, etc.
39
+ */
40
+ export type Template = string & {
41
+ __brand: 'Template';
42
+ };
43
+ /**
44
+ * Static type - for read-only data/content
45
+ * Maps to MCP Resources, HTTP GET endpoints, CLI read commands, etc.
46
+ */
47
+ export type Static = string & {
48
+ __brand: 'Static';
49
+ };
50
+ /**
51
+ * Helper to cast string as Template (optional, for clarity)
52
+ */
53
+ export declare const asTemplate: (str: string) => Template;
54
+ /**
55
+ * Helper to cast string as Static (optional, for clarity)
56
+ */
57
+ export declare const asStatic: (str: string) => Static;
58
+ /**
59
+ * Message format for templates (MCP compatibility)
60
+ */
61
+ export interface TemplateMessage {
62
+ role: 'user' | 'assistant';
63
+ content: {
64
+ type: 'text' | 'image';
65
+ text?: string;
66
+ data?: string;
67
+ mimeType?: string;
68
+ };
69
+ }
70
+ /**
71
+ * Template response format (for advanced cases)
72
+ */
73
+ export interface TemplateResponse {
74
+ messages: TemplateMessage[];
75
+ }
76
+ /**
77
+ * Template metadata
78
+ */
79
+ export interface TemplateInfo {
80
+ name: string;
81
+ description: string;
82
+ inputSchema: {
83
+ type: 'object';
84
+ properties: Record<string, any>;
85
+ required?: string[];
86
+ };
87
+ }
88
+ /**
89
+ * Static resource metadata
90
+ */
91
+ export interface StaticInfo {
92
+ name: string;
93
+ uri: string;
94
+ description: string;
95
+ mimeType?: string;
96
+ inputSchema: {
97
+ type: 'object';
98
+ properties: Record<string, any>;
99
+ required?: string[];
100
+ };
101
+ }
102
+ /**
103
+ * Extended PhotonMCPClass with templates and statics
104
+ */
105
+ export interface PhotonMCPClassExtended extends PhotonMCPClass {
106
+ templates: TemplateInfo[];
107
+ statics: StaticInfo[];
108
+ }
109
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Photon MCP Core Types
3
+ */
4
+ /**
5
+ * Helper to cast string as Template (optional, for clarity)
6
+ */
7
+ export const asTemplate = (str) => str;
8
+ /**
9
+ * Helper to cast string as Static (optional, for clarity)
10
+ */
11
+ export const asStatic = (str) => str;
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkDH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAY,EAAE,CAAC,GAAe,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAa,CAAC"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@portel/photon-core",
3
+ "version": "1.0.0",
4
+ "description": "Core library for parsing, loading, and managing .photon.ts files - runtime-agnostic foundation for building custom Photon runtimes",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "src",
17
+ "README.md",
18
+ "LICENSE"
19
+ ],
20
+ "scripts": {
21
+ "build": "tsc",
22
+ "clean": "rm -rf dist",
23
+ "prepublishOnly": "npm run clean && npm run build",
24
+ "test": "echo \"Error: no test specified\" && exit 0"
25
+ },
26
+ "keywords": [
27
+ "photon",
28
+ "mcp",
29
+ "model-context-protocol",
30
+ "typescript",
31
+ "schema",
32
+ "parser",
33
+ "dependency-manager",
34
+ "rest-api",
35
+ "graphql",
36
+ "rpc",
37
+ "runtime-agnostic"
38
+ ],
39
+ "author": "Portel <support@portel.dev>",
40
+ "license": "MIT",
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "https://github.com/portel-dev/photon-core.git"
44
+ },
45
+ "bugs": {
46
+ "url": "https://github.com/portel-dev/photon-core/issues"
47
+ },
48
+ "homepage": "https://github.com/portel-dev/photon-core#readme",
49
+ "dependencies": {
50
+ "typescript": "^5.7.2"
51
+ },
52
+ "devDependencies": {
53
+ "@types/node": "^22.10.2"
54
+ },
55
+ "engines": {
56
+ "node": ">=18.0.0"
57
+ }
58
+ }
package/src/base.ts ADDED
@@ -0,0 +1,105 @@
1
+ /**
2
+ * PhotonMCP Base Class
3
+ *
4
+ * Optional base class for creating Photon MCPs.
5
+ * You don't need to extend this - any class with async methods works!
6
+ *
7
+ * Usage:
8
+ * ```typescript
9
+ * export default class Calculator extends PhotonMCP {
10
+ * /**
11
+ * * Add two numbers together
12
+ * * @param a First number
13
+ * * @param b Second number
14
+ * *\/
15
+ * async add(params: { a: number; b: number }) {
16
+ * return params.a + params.b;
17
+ * }
18
+ * }
19
+ * ```
20
+ *
21
+ * Or without extending (plain class):
22
+ * ```typescript
23
+ * export default class Calculator {
24
+ * async add(params: { a: number; b: number }) {
25
+ * return params.a + params.b;
26
+ * }
27
+ * }
28
+ * ```
29
+ */
30
+
31
+ /**
32
+ * Simple base class for creating Photon MCPs
33
+ *
34
+ * - Class name = MCP name
35
+ * - Public async methods = Tools
36
+ * - Return value = Tool result
37
+ */
38
+ export class PhotonMCP {
39
+ /**
40
+ * Get MCP name from class name
41
+ * Converts PascalCase to kebab-case (e.g., MyAwesomeMCP → my-awesome-mcp)
42
+ */
43
+ static getMCPName(): string {
44
+ return this.name
45
+ .replace(/MCP$/, '') // Remove "MCP" suffix if present
46
+ .replace(/([A-Z])/g, '-$1')
47
+ .toLowerCase()
48
+ .replace(/^-/, ''); // Remove leading dash
49
+ }
50
+
51
+ /**
52
+ * Get all tool methods from this class
53
+ * Returns all public async methods except lifecycle hooks
54
+ */
55
+ static getToolMethods(): string[] {
56
+ const prototype = this.prototype;
57
+ const methods: string[] = [];
58
+
59
+ // Get all property names from prototype chain
60
+ let current = prototype;
61
+ while (current && current !== PhotonMCP.prototype) {
62
+ Object.getOwnPropertyNames(current).forEach((name) => {
63
+ // Skip constructor, private methods (starting with _), and lifecycle hooks
64
+ if (
65
+ name !== 'constructor' &&
66
+ !name.startsWith('_') &&
67
+ name !== 'onInitialize' &&
68
+ name !== 'onShutdown' &&
69
+ typeof (prototype as any)[name] === 'function' &&
70
+ !methods.includes(name)
71
+ ) {
72
+ methods.push(name);
73
+ }
74
+ });
75
+ current = Object.getPrototypeOf(current);
76
+ }
77
+
78
+ return methods;
79
+ }
80
+
81
+ /**
82
+ * Execute a tool method
83
+ */
84
+ async executeTool(toolName: string, parameters: any): Promise<any> {
85
+ const method = (this as any)[toolName];
86
+
87
+ if (!method || typeof method !== 'function') {
88
+ throw new Error(`Tool not found: ${toolName}`);
89
+ }
90
+
91
+ try {
92
+ const result = await method.call(this, parameters);
93
+ return result;
94
+ } catch (error: any) {
95
+ console.error(`Tool execution failed: ${toolName} - ${error.message}`);
96
+ throw error;
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Optional lifecycle hooks
102
+ */
103
+ async onInitialize?(): Promise<void>;
104
+ async onShutdown?(): Promise<void>;
105
+ }
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Dependency Manager for Photon MCPs
3
+ *
4
+ * Handles automatic installation of dependencies declared in MCP files
5
+ * Similar to Python's UV or npx behavior
6
+ */
7
+
8
+ import * as fs from 'fs/promises';
9
+ import * as path from 'path';
10
+ import * as os from 'os';
11
+ import { spawn } from 'child_process';
12
+
13
+ interface DependencySpec {
14
+ name: string;
15
+ version: string;
16
+ }
17
+
18
+ /**
19
+ * Manages dependencies for Photon MCPs
20
+ */
21
+ export class DependencyManager {
22
+ private cacheDir: string;
23
+
24
+ constructor() {
25
+ // Store dependencies in ~/.cache/photon-mcp/dependencies/
26
+ this.cacheDir = path.join(os.homedir(), '.cache', 'photon-mcp', 'dependencies');
27
+ }
28
+
29
+ /**
30
+ * Extract dependencies from MCP source file
31
+ *
32
+ * Looks for @dependencies JSDoc tag:
33
+ * @dependencies axios@^1.0.0, date-fns@^2.0.0
34
+ * @dependencies octokit@^3.1.0
35
+ */
36
+ async extractDependencies(sourceFilePath: string): Promise<DependencySpec[]> {
37
+ const content = await fs.readFile(sourceFilePath, 'utf-8');
38
+
39
+ const dependencies: DependencySpec[] = [];
40
+
41
+ // Match @dependencies tags in JSDoc comments
42
+ // Regex: @dependencies package@version, package2@version2
43
+ const dependencyRegex = /@dependencies\s+([\w@^~.,\s-]+)/g;
44
+
45
+ let match;
46
+ while ((match = dependencyRegex.exec(content)) !== null) {
47
+ const depString = match[1].trim();
48
+
49
+ // Split by comma for multiple dependencies
50
+ const deps = depString.split(',').map(d => d.trim());
51
+
52
+ for (const dep of deps) {
53
+ // Parse: package@version
54
+ const parts = dep.split('@');
55
+ // Handle scoped packages like @octokit/rest@^1.0.0
56
+ let name, version;
57
+ if (dep.startsWith('@')) {
58
+ // Scoped package: @scope/package@version
59
+ const atIndex = dep.indexOf('@', 1); // Find second @
60
+ if (atIndex > 0) {
61
+ name = dep.substring(0, atIndex);
62
+ version = dep.substring(atIndex + 1);
63
+ }
64
+ } else {
65
+ // Regular package: package@version
66
+ [name, version] = parts;
67
+ }
68
+
69
+ if (name && version) {
70
+ dependencies.push({ name, version });
71
+ }
72
+ }
73
+ }
74
+
75
+ return dependencies;
76
+ }
77
+
78
+ /**
79
+ * Ensure dependencies are installed for an MCP
80
+ *
81
+ * Returns the path to node_modules where dependencies are installed
82
+ */
83
+ async ensureDependencies(
84
+ mcpName: string,
85
+ dependencies: DependencySpec[]
86
+ ): Promise<string | null> {
87
+ if (dependencies.length === 0) {
88
+ return null;
89
+ }
90
+
91
+ // Create MCP-specific directory
92
+ const mcpDir = path.join(this.cacheDir, mcpName);
93
+ const nodeModules = path.join(mcpDir, 'node_modules');
94
+
95
+ // Check if already installed
96
+ const installed = await this.checkInstalled(mcpDir, dependencies);
97
+ if (installed) {
98
+ console.error(`Dependencies already installed for ${mcpName}`);
99
+ return nodeModules;
100
+ }
101
+
102
+ // Create directory
103
+ await fs.mkdir(mcpDir, { recursive: true });
104
+
105
+ // Create minimal package.json
106
+ const packageJson = {
107
+ name: `photon-${mcpName}`,
108
+ version: '1.0.0',
109
+ type: 'module',
110
+ dependencies: Object.fromEntries(
111
+ dependencies.map(d => [d.name, d.version])
112
+ ),
113
+ };
114
+
115
+ await fs.writeFile(
116
+ path.join(mcpDir, 'package.json'),
117
+ JSON.stringify(packageJson, null, 2)
118
+ );
119
+
120
+ // Install dependencies
121
+ console.error(`📦 Installing dependencies for ${mcpName}...`);
122
+ await this.runNpmInstall(mcpDir);
123
+
124
+ console.error(`✅ Dependencies installed for ${mcpName}`);
125
+ return nodeModules;
126
+ }
127
+
128
+ /**
129
+ * Check if dependencies are already installed
130
+ */
131
+ private async checkInstalled(
132
+ mcpDir: string,
133
+ dependencies: DependencySpec[]
134
+ ): Promise<boolean> {
135
+ try {
136
+ const packageJsonPath = path.join(mcpDir, 'package.json');
137
+ const packageJson = JSON.parse(
138
+ await fs.readFile(packageJsonPath, 'utf-8')
139
+ );
140
+
141
+ // Check if all dependencies match
142
+ for (const dep of dependencies) {
143
+ if (packageJson.dependencies?.[dep.name] !== dep.version) {
144
+ return false;
145
+ }
146
+ }
147
+
148
+ // Check if node_modules exists
149
+ const nodeModules = path.join(mcpDir, 'node_modules');
150
+ await fs.access(nodeModules);
151
+
152
+ return true;
153
+ } catch {
154
+ return false;
155
+ }
156
+ }
157
+
158
+ /**
159
+ * Run npm install in a directory
160
+ */
161
+ private async runNpmInstall(cwd: string): Promise<void> {
162
+ return new Promise((resolve, reject) => {
163
+ const npmCmd = process.platform === 'win32' ? 'npm.cmd' : 'npm';
164
+
165
+ const child = spawn(npmCmd, ['install', '--omit=dev', '--silent'], {
166
+ cwd,
167
+ stdio: 'inherit',
168
+ });
169
+
170
+ child.on('exit', (code) => {
171
+ if (code === 0) {
172
+ resolve();
173
+ } else {
174
+ reject(new Error(`npm install failed with code ${code}`));
175
+ }
176
+ });
177
+
178
+ child.on('error', reject);
179
+ });
180
+ }
181
+
182
+ /**
183
+ * Clear cache for an MCP
184
+ */
185
+ async clearCache(mcpName: string): Promise<void> {
186
+ const mcpDir = path.join(this.cacheDir, mcpName);
187
+ try {
188
+ await fs.rm(mcpDir, { recursive: true, force: true });
189
+ console.error(`🗑️ Cleared cache for ${mcpName}`);
190
+ } catch (error: any) {
191
+ console.error(`Failed to clear cache for ${mcpName}: ${error.message}`);
192
+ }
193
+ }
194
+
195
+ /**
196
+ * Clear all cached dependencies
197
+ */
198
+ async clearAllCache(): Promise<void> {
199
+ try {
200
+ await fs.rm(this.cacheDir, { recursive: true, force: true });
201
+ console.error(`🗑️ Cleared all MCP dependency cache`);
202
+ } catch (error: any) {
203
+ console.error(`Failed to clear cache: ${error.message}`);
204
+ }
205
+ }
206
+ }
package/src/index.ts ADDED
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @portel/photon-core
3
+ *
4
+ * Core Photon format library for parsing, loading, and managing .photon.ts files
5
+ * WITHOUT any runtime dependencies (MCP server, CLI, etc.)
6
+ *
7
+ * Use this package to build custom runtimes that work with Photon classes:
8
+ * - Multi-protocol API servers (REST, GraphQL, RPC, MCP)
9
+ * - Orchestrators (NCP)
10
+ * - Custom tool runners
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { PhotonMCP, DependencyManager, SchemaExtractor } from '@portel/photon-core';
15
+ *
16
+ * // Load and parse a Photon class
17
+ * const photonClass = await import('./my-tool.photon.ts');
18
+ * const instance = new photonClass.default();
19
+ *
20
+ * // Extract dependencies
21
+ * const depManager = new DependencyManager();
22
+ * const deps = await depManager.extractDependencies('./my-tool.photon.ts');
23
+ * await depManager.ensureDependencies('my-tool', deps);
24
+ *
25
+ * // Extract schemas
26
+ * const extractor = new SchemaExtractor();
27
+ * const schemas = await extractor.extractFromFile('./my-tool.photon.ts');
28
+ *
29
+ * // Call lifecycle hooks
30
+ * if (instance.onInitialize) {
31
+ * await instance.onInitialize();
32
+ * }
33
+ * ```
34
+ */
35
+
36
+ // Core base class with lifecycle hooks
37
+ export { PhotonMCP } from './base.js';
38
+
39
+ // Dependency management
40
+ export { DependencyManager } from './dependency-manager.js';
41
+
42
+ // Schema extraction
43
+ export { SchemaExtractor } from './schema-extractor.js';
44
+
45
+ // Types
46
+ export * from './types.js';