@portel/photon 1.12.0 → 1.13.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 (55) hide show
  1. package/dist/auto-ui/beam.d.ts.map +1 -1
  2. package/dist/auto-ui/beam.js +120 -14
  3. package/dist/auto-ui/beam.js.map +1 -1
  4. package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
  5. package/dist/auto-ui/streamable-http-transport.js +37 -10
  6. package/dist/auto-ui/streamable-http-transport.js.map +1 -1
  7. package/dist/auto-ui/types.d.ts +27 -0
  8. package/dist/auto-ui/types.d.ts.map +1 -1
  9. package/dist/auto-ui/types.js +23 -0
  10. package/dist/auto-ui/types.js.map +1 -1
  11. package/dist/beam.bundle.js +101 -8
  12. package/dist/beam.bundle.js.map +3 -3
  13. package/dist/cli/commands/build.d.ts +3 -0
  14. package/dist/cli/commands/build.d.ts.map +1 -0
  15. package/dist/cli/commands/build.js +339 -0
  16. package/dist/cli/commands/build.js.map +1 -0
  17. package/dist/cli/commands/run.d.ts.map +1 -1
  18. package/dist/cli/commands/run.js +2 -0
  19. package/dist/cli/commands/run.js.map +1 -1
  20. package/dist/cli/index.d.ts.map +1 -1
  21. package/dist/cli/index.js +2 -0
  22. package/dist/cli/index.js.map +1 -1
  23. package/dist/daemon/client.d.ts.map +1 -1
  24. package/dist/daemon/client.js +81 -0
  25. package/dist/daemon/client.js.map +1 -1
  26. package/dist/daemon/protocol.d.ts +3 -1
  27. package/dist/daemon/protocol.d.ts.map +1 -1
  28. package/dist/daemon/protocol.js +1 -1
  29. package/dist/daemon/protocol.js.map +1 -1
  30. package/dist/daemon/server.js +210 -12
  31. package/dist/daemon/server.js.map +1 -1
  32. package/dist/embedded-runtime.d.ts +38 -0
  33. package/dist/embedded-runtime.d.ts.map +1 -0
  34. package/dist/embedded-runtime.js +326 -0
  35. package/dist/embedded-runtime.js.map +1 -0
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +1 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/loader.d.ts +34 -1
  41. package/dist/loader.d.ts.map +1 -1
  42. package/dist/loader.js +269 -14
  43. package/dist/loader.js.map +1 -1
  44. package/dist/photon-cli-runner.d.ts +22 -0
  45. package/dist/photon-cli-runner.d.ts.map +1 -1
  46. package/dist/photon-cli-runner.js +223 -11
  47. package/dist/photon-cli-runner.js.map +1 -1
  48. package/dist/server.d.ts +30 -0
  49. package/dist/server.d.ts.map +1 -1
  50. package/dist/server.js +128 -8
  51. package/dist/server.js.map +1 -1
  52. package/dist/version.d.ts.map +1 -1
  53. package/dist/version.js +10 -2
  54. package/dist/version.js.map +1 -1
  55. package/package.json +3 -2
@@ -0,0 +1,326 @@
1
+ /**
2
+ * Embedded Runtime
3
+ *
4
+ * Lightweight in-process runtime for compiled photon binaries.
5
+ * Provides the subset of daemon functionality needed to run standalone:
6
+ * - In-process pub/sub broker (replaces daemon Unix socket broker)
7
+ * - In-process cron scheduler (replaces daemon job scheduler)
8
+ *
9
+ * This module is bundled into the binary by Bun, so the binary
10
+ * is fully self-contained — no external daemon needed.
11
+ */
12
+ import { setBroker } from '@portel/photon-core';
13
+ import { createLogger } from './shared/logger.js';
14
+ import { getErrorMessage } from './shared/error-handler.js';
15
+ const logger = createLogger({ component: 'embedded-runtime', minimal: true });
16
+ // ════════════════════════════════════════════════════════════════════════════════
17
+ // IN-PROCESS BROKER
18
+ // ════════════════════════════════════════════════════════════════════════════════
19
+ class EmbeddedBroker {
20
+ type = 'embedded';
21
+ handlers = new Map();
22
+ async publish(message) {
23
+ const channel = message.channel;
24
+ // Deliver to exact channel subscribers
25
+ const handlers = this.handlers.get(channel);
26
+ if (handlers) {
27
+ for (const handler of handlers) {
28
+ try {
29
+ handler(message);
30
+ }
31
+ catch (err) {
32
+ logger.warn('Broker handler error', { channel, error: getErrorMessage(err) });
33
+ }
34
+ }
35
+ }
36
+ // Deliver to wildcard subscribers (e.g. "task:*" matches "task:completed")
37
+ for (const [pattern, patternHandlers] of this.handlers) {
38
+ if (pattern.endsWith(':*') && channel.startsWith(pattern.slice(0, -1))) {
39
+ for (const handler of patternHandlers) {
40
+ try {
41
+ handler(message);
42
+ }
43
+ catch (err) {
44
+ logger.warn('Broker wildcard handler error', {
45
+ pattern,
46
+ channel,
47
+ error: getErrorMessage(err),
48
+ });
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ async subscribe(channel, handler) {
55
+ let handlers = this.handlers.get(channel);
56
+ if (!handlers) {
57
+ handlers = new Set();
58
+ this.handlers.set(channel, handlers);
59
+ }
60
+ handlers.add(handler);
61
+ return {
62
+ channel,
63
+ active: true,
64
+ unsubscribe: () => {
65
+ handlers.delete(handler);
66
+ if (handlers.size === 0)
67
+ this.handlers.delete(channel);
68
+ },
69
+ };
70
+ }
71
+ isConnected() {
72
+ return true;
73
+ }
74
+ async connect() { }
75
+ async disconnect() {
76
+ this.handlers.clear();
77
+ }
78
+ }
79
+ function parseCronField(field, min, max) {
80
+ if (field === '*') {
81
+ const values = [];
82
+ for (let i = min; i <= max; i++)
83
+ values.push(i);
84
+ return values;
85
+ }
86
+ if (field.includes(',')) {
87
+ const values = new Set();
88
+ for (const part of field.split(',')) {
89
+ const partValues = parseCronField(part, min, max);
90
+ if (!partValues)
91
+ return null;
92
+ partValues.forEach((v) => values.add(v));
93
+ }
94
+ return Array.from(values).sort((a, b) => a - b);
95
+ }
96
+ if (field.includes('/')) {
97
+ const slashIdx = field.indexOf('/');
98
+ const range = field.slice(0, slashIdx);
99
+ const step = parseInt(field.slice(slashIdx + 1));
100
+ if (isNaN(step) || step <= 0)
101
+ return null;
102
+ let start = min;
103
+ let end = max;
104
+ if (range !== '*') {
105
+ if (range.includes('-')) {
106
+ const [s, e] = range.split('-').map(Number);
107
+ if (isNaN(s) || isNaN(e))
108
+ return null;
109
+ start = s;
110
+ end = e;
111
+ }
112
+ else {
113
+ start = parseInt(range);
114
+ if (isNaN(start))
115
+ return null;
116
+ }
117
+ }
118
+ const values = [];
119
+ for (let i = start; i <= end; i += step)
120
+ values.push(i);
121
+ return values;
122
+ }
123
+ if (field.includes('-')) {
124
+ const [s, e] = field.split('-').map(Number);
125
+ if (isNaN(s) || isNaN(e) || s < min || e > max)
126
+ return null;
127
+ const values = [];
128
+ for (let i = s; i <= e; i++)
129
+ values.push(i);
130
+ return values;
131
+ }
132
+ const value = parseInt(field);
133
+ if (isNaN(value) || value < min || value > max)
134
+ return null;
135
+ return [value];
136
+ }
137
+ function getNextCronRun(cron) {
138
+ const parts = cron.trim().split(/\s+/);
139
+ if (parts.length !== 5)
140
+ return { isValid: false, nextRun: 0 };
141
+ const [minuteField, hourField, domField, monthField, dowField] = parts;
142
+ const minutes = parseCronField(minuteField, 0, 59);
143
+ const hours = parseCronField(hourField, 0, 23);
144
+ const doms = parseCronField(domField, 1, 31);
145
+ const months = parseCronField(monthField, 1, 12);
146
+ const dows = parseCronField(dowField, 0, 7);
147
+ if (!minutes || !hours || !doms || !months || !dows) {
148
+ return { isValid: false, nextRun: 0 };
149
+ }
150
+ const minuteSet = new Set(minutes);
151
+ const hourSet = new Set(hours);
152
+ const domSet = new Set(doms);
153
+ const monthSet = new Set(months);
154
+ const dowSet = new Set(dows.map((d) => (d === 7 ? 0 : d)));
155
+ const domIsWild = domField === '*';
156
+ const dowIsWild = dowField === '*';
157
+ const candidate = new Date();
158
+ candidate.setSeconds(0);
159
+ candidate.setMilliseconds(0);
160
+ candidate.setMinutes(candidate.getMinutes() + 1);
161
+ const limit = new Date(candidate);
162
+ limit.setFullYear(limit.getFullYear() + 4);
163
+ while (candidate < limit) {
164
+ if (!monthSet.has(candidate.getMonth() + 1)) {
165
+ candidate.setMonth(candidate.getMonth() + 1);
166
+ candidate.setDate(1);
167
+ candidate.setHours(0);
168
+ candidate.setMinutes(0);
169
+ continue;
170
+ }
171
+ let dayMatch;
172
+ if (domIsWild && dowIsWild) {
173
+ dayMatch = true;
174
+ }
175
+ else if (domIsWild) {
176
+ dayMatch = dowSet.has(candidate.getDay());
177
+ }
178
+ else if (dowIsWild) {
179
+ dayMatch = domSet.has(candidate.getDate());
180
+ }
181
+ else {
182
+ dayMatch = domSet.has(candidate.getDate()) || dowSet.has(candidate.getDay());
183
+ }
184
+ if (!dayMatch) {
185
+ candidate.setDate(candidate.getDate() + 1);
186
+ candidate.setHours(0);
187
+ candidate.setMinutes(0);
188
+ continue;
189
+ }
190
+ if (!hourSet.has(candidate.getHours())) {
191
+ const nextHour = [...hourSet].find((h) => h > candidate.getHours());
192
+ if (nextHour !== undefined) {
193
+ candidate.setHours(nextHour);
194
+ candidate.setMinutes(0);
195
+ }
196
+ else {
197
+ candidate.setDate(candidate.getDate() + 1);
198
+ candidate.setHours(0);
199
+ candidate.setMinutes(0);
200
+ }
201
+ continue;
202
+ }
203
+ if (!minuteSet.has(candidate.getMinutes())) {
204
+ const nextMinute = [...minuteSet].find((m) => m > candidate.getMinutes());
205
+ if (nextMinute !== undefined) {
206
+ candidate.setMinutes(nextMinute);
207
+ }
208
+ else {
209
+ candidate.setHours(candidate.getHours() + 1);
210
+ candidate.setMinutes(0);
211
+ }
212
+ continue;
213
+ }
214
+ return { isValid: true, nextRun: candidate.getTime() };
215
+ }
216
+ return { isValid: false, nextRun: 0 };
217
+ }
218
+ class EmbeddedScheduler {
219
+ jobs = new Map();
220
+ timers = new Map();
221
+ mcp = null;
222
+ loader = null;
223
+ setExecutionTarget(mcp, loader) {
224
+ this.mcp = mcp;
225
+ this.loader = loader;
226
+ }
227
+ schedule(job) {
228
+ const { isValid, nextRun } = getNextCronRun(job.cron);
229
+ if (!isValid) {
230
+ logger.error('Invalid cron expression', { jobId: job.id, cron: job.cron });
231
+ return false;
232
+ }
233
+ job.nextRun = nextRun;
234
+ this.jobs.set(job.id, job);
235
+ const existing = this.timers.get(job.id);
236
+ if (existing)
237
+ clearTimeout(existing);
238
+ const delay = nextRun - Date.now();
239
+ const timer = setTimeout(() => void this.runJob(job.id), delay);
240
+ this.timers.set(job.id, timer);
241
+ logger.info('Job scheduled', {
242
+ jobId: job.id,
243
+ method: job.method,
244
+ nextRun: new Date(nextRun).toISOString(),
245
+ });
246
+ return true;
247
+ }
248
+ async runJob(jobId) {
249
+ const job = this.jobs.get(jobId);
250
+ if (!job)
251
+ return;
252
+ if (!this.mcp || !this.loader) {
253
+ logger.warn('Cannot run job — photon not initialized', { jobId });
254
+ this.schedule(job); // Reschedule
255
+ return;
256
+ }
257
+ logger.info('Running scheduled job', { jobId, method: job.method });
258
+ try {
259
+ await this.loader.executeTool(this.mcp, job.method, job.args || {});
260
+ job.runCount++;
261
+ logger.info('Job completed', { jobId, method: job.method, runCount: job.runCount });
262
+ }
263
+ catch (error) {
264
+ logger.error('Job failed', { jobId, method: job.method, error: getErrorMessage(error) });
265
+ }
266
+ // Reschedule for next occurrence
267
+ this.schedule(job);
268
+ }
269
+ stop() {
270
+ for (const timer of this.timers.values()) {
271
+ clearTimeout(timer);
272
+ }
273
+ this.timers.clear();
274
+ this.jobs.clear();
275
+ }
276
+ }
277
+ // ════════════════════════════════════════════════════════════════════════════════
278
+ // PUBLIC API
279
+ // ════════════════════════════════════════════════════════════════════════════════
280
+ /**
281
+ * Embedded runtime for compiled photon binaries.
282
+ * Call `start()` before `PhotonServer.start()` to wire up the in-process broker and scheduler.
283
+ */
284
+ export class EmbeddedRuntime {
285
+ broker;
286
+ scheduler;
287
+ constructor() {
288
+ this.broker = new EmbeddedBroker();
289
+ this.scheduler = new EmbeddedScheduler();
290
+ }
291
+ /**
292
+ * Start the embedded runtime.
293
+ * Sets the global broker so all photon pub/sub works in-process.
294
+ */
295
+ start() {
296
+ setBroker(this.broker);
297
+ logger.info('Embedded runtime started (in-process broker + scheduler)');
298
+ }
299
+ /**
300
+ * Register scheduled jobs from a loaded photon's tool metadata.
301
+ * Call after PhotonServer.start() once the photon is loaded.
302
+ */
303
+ registerScheduledJobs(mcp, loader) {
304
+ this.scheduler.setExecutionTarget(mcp, loader);
305
+ for (const tool of mcp.tools) {
306
+ // The schema extractor adds `scheduled` to tool objects (not in PhotonTool type)
307
+ const cronExpr = tool.scheduled;
308
+ if (cronExpr) {
309
+ this.scheduler.schedule({
310
+ id: `auto-${tool.name}`,
311
+ method: tool.name,
312
+ cron: cronExpr,
313
+ runCount: 0,
314
+ });
315
+ }
316
+ }
317
+ }
318
+ /**
319
+ * Stop the runtime and clean up timers.
320
+ */
321
+ stop() {
322
+ this.scheduler.stop();
323
+ void this.broker.disconnect();
324
+ }
325
+ }
326
+ //# sourceMappingURL=embedded-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded-runtime.js","sourceRoot":"","sources":["../src/embedded-runtime.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,4 +10,5 @@ export * from '@portel/photon-core';
10
10
  export { PhotonLoader } from './loader.js';
11
11
  export { PhotonServer } from './server.js';
12
12
  export { PhotonDocExtractor } from './photon-doc-extractor.js';
13
+ export { EmbeddedRuntime } from './embedded-runtime.js';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -12,4 +12,5 @@ export * from '@portel/photon-core';
12
12
  export { PhotonLoader } from './loader.js';
13
13
  export { PhotonServer } from './server.js';
14
14
  export { PhotonDocExtractor } from './photon-doc-extractor.js';
15
+ export { EmbeddedRuntime } from './embedded-runtime.js';
15
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gDAAgD;AAChD,cAAc,qBAAqB,CAAC;AAEpC,4CAA4C;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gDAAgD;AAChD,cAAc,qBAAqB,CAAC;AAEpC,4CAA4C;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/loader.d.ts CHANGED
@@ -5,7 +5,6 @@
5
5
  */
6
6
  import { ConstructorParam, PhotonClass, PhotonClassExtended, type InputProvider, type OutputHandler, type MCPClientFactory } from '@portel/photon-core';
7
7
  import { Logger } from './shared/logger.js';
8
- /** Cache entry for @cached tag */
9
8
  export declare class PhotonLoader {
10
9
  private dependencyManager;
11
10
  private verbose;
@@ -36,6 +35,26 @@ export declare class PhotonLoader {
36
35
  private photonMiddleware;
37
36
  /** Base directory for state/config/cache (defaults to ~/.photon) */
38
37
  baseDir: string;
38
+ /**
39
+ * Optional resolver for @photon dependencies.
40
+ * When set (by the daemon), the loader asks the daemon for an existing shared instance
41
+ * instead of creating a new isolated one. This ensures injected photons share the
42
+ * same instance as the one the daemon manages (e.g., WhatsApp socket reuse).
43
+ */
44
+ photonInstanceResolver?: (photonName: string, photonPath: string) => Promise<any>;
45
+ /**
46
+ * Pre-loaded dependency modules for compiled binaries.
47
+ * Maps dependency name → { module, source } so @photon deps can be resolved
48
+ * without file I/O when running as a standalone binary.
49
+ */
50
+ preloadedDependencies?: Map<string, {
51
+ module: {
52
+ default: any;
53
+ middleware?: any[];
54
+ };
55
+ source: string;
56
+ filePath: string;
57
+ }>;
39
58
  constructor(verbose?: boolean, logger?: Logger, baseDir?: string);
40
59
  /**
41
60
  * Load MCP configuration from ~/.photon/config.json
@@ -84,6 +103,20 @@ export declare class PhotonLoader {
84
103
  */
85
104
  loadFile(filePath: string, options?: {
86
105
  instanceName?: string;
106
+ skipInitialize?: boolean;
107
+ }): Promise<PhotonClassExtended>;
108
+ /**
109
+ * Load a photon from a pre-imported module (for compiled binaries).
110
+ * Skips file I/O, compilation, and dependency installation — the module is
111
+ * already bundled. Still does class extraction, constructor injection,
112
+ * capability wiring, middleware, and metadata extraction from embedded source.
113
+ */
114
+ loadFromModule(module: {
115
+ default: any;
116
+ middleware?: any[];
117
+ }, filePath: string, sourceCode: string, options?: {
118
+ instanceName?: string;
119
+ skipInitialize?: boolean;
87
120
  }): Promise<PhotonClassExtended>;
88
121
  /**
89
122
  * Reload a Photon MCP file (for hot reload)
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}