@portel/photon 1.19.0 → 1.20.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/auto-ui/beam/routes/api-browse.d.ts.map +1 -1
- package/dist/auto-ui/beam/routes/api-browse.js +16 -4
- package/dist/auto-ui/beam/routes/api-browse.js.map +1 -1
- package/dist/auto-ui/beam/routes/api-config.js +4 -4
- package/dist/auto-ui/beam/routes/api-config.js.map +1 -1
- package/dist/auto-ui/beam/routes/api-marketplace.d.ts.map +1 -1
- package/dist/auto-ui/beam/routes/api-marketplace.js +14 -1
- package/dist/auto-ui/beam/routes/api-marketplace.js.map +1 -1
- package/dist/auto-ui/beam.d.ts.map +1 -1
- package/dist/auto-ui/beam.js +183 -74
- package/dist/auto-ui/beam.js.map +1 -1
- package/dist/auto-ui/bridge/index.d.ts.map +1 -1
- package/dist/auto-ui/bridge/index.js +17 -0
- package/dist/auto-ui/bridge/index.js.map +1 -1
- package/dist/auto-ui/streamable-http-transport.d.ts +1 -0
- package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
- package/dist/auto-ui/streamable-http-transport.js +64 -16
- package/dist/auto-ui/streamable-http-transport.js.map +1 -1
- package/dist/auto-ui/types.d.ts +12 -0
- package/dist/auto-ui/types.d.ts.map +1 -1
- package/dist/auto-ui/types.js.map +1 -1
- package/dist/beam-form.bundle.js +44 -3
- package/dist/beam-form.bundle.js.map +2 -2
- package/dist/beam.bundle.js +1404 -482
- package/dist/beam.bundle.js.map +4 -4
- package/dist/capability-negotiator.d.ts +67 -0
- package/dist/capability-negotiator.d.ts.map +1 -0
- package/dist/capability-negotiator.js +104 -0
- package/dist/capability-negotiator.js.map +1 -0
- package/dist/channel-manager.d.ts +122 -0
- package/dist/channel-manager.d.ts.map +1 -0
- package/dist/channel-manager.js +266 -0
- package/dist/channel-manager.js.map +1 -0
- package/dist/cli/commands/package.d.ts.map +1 -1
- package/dist/cli/commands/package.js +25 -7
- package/dist/cli/commands/package.js.map +1 -1
- package/dist/daemon/client.d.ts.map +1 -1
- package/dist/daemon/client.js +12 -0
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/server.js +30 -49
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/worker-manager.d.ts.map +1 -1
- package/dist/daemon/worker-manager.js +21 -7
- package/dist/daemon/worker-manager.js.map +1 -1
- package/dist/loader.d.ts +4 -1
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +73 -11
- package/dist/loader.js.map +1 -1
- package/dist/marketplace-manager.d.ts +6 -0
- package/dist/marketplace-manager.d.ts.map +1 -1
- package/dist/marketplace-manager.js +161 -58
- package/dist/marketplace-manager.js.map +1 -1
- package/dist/namespace-migration.d.ts +1 -0
- package/dist/namespace-migration.d.ts.map +1 -1
- package/dist/namespace-migration.js +86 -0
- package/dist/namespace-migration.js.map +1 -1
- package/dist/resource-server.d.ts +105 -0
- package/dist/resource-server.d.ts.map +1 -0
- package/dist/resource-server.js +723 -0
- package/dist/resource-server.js.map +1 -0
- package/dist/serv/auth/jwt.d.ts +2 -0
- package/dist/serv/auth/jwt.d.ts.map +1 -1
- package/dist/serv/auth/jwt.js +11 -5
- package/dist/serv/auth/jwt.js.map +1 -1
- package/dist/serv/vault/token-vault.d.ts +2 -0
- package/dist/serv/vault/token-vault.d.ts.map +1 -1
- package/dist/serv/vault/token-vault.js +6 -0
- package/dist/serv/vault/token-vault.js.map +1 -1
- package/dist/server.d.ts +20 -149
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +232 -1217
- package/dist/server.js.map +1 -1
- package/dist/shared/audit.d.ts.map +1 -1
- package/dist/shared/audit.js +7 -0
- package/dist/shared/audit.js.map +1 -1
- package/dist/shared/security.d.ts +10 -0
- package/dist/shared/security.d.ts.map +1 -1
- package/dist/shared/security.js +27 -0
- package/dist/shared/security.js.map +1 -1
- package/dist/task-executor.d.ts +69 -0
- package/dist/task-executor.d.ts.map +1 -0
- package/dist/task-executor.js +182 -0
- package/dist/task-executor.js.map +1 -0
- package/dist/types/photon-instance.d.ts +50 -0
- package/dist/types/photon-instance.d.ts.map +1 -0
- package/dist/types/photon-instance.js +9 -0
- package/dist/types/photon-instance.js.map +1 -0
- package/dist/types/server-types.d.ts +61 -0
- package/dist/types/server-types.d.ts.map +1 -0
- package/dist/types/server-types.js +8 -0
- package/dist/types/server-types.js.map +1 -0
- package/package.json +2 -2
package/dist/loader.d.ts
CHANGED
|
@@ -253,6 +253,9 @@ export declare class PhotonLoader {
|
|
|
253
253
|
*/
|
|
254
254
|
private resolvePhotonPath;
|
|
255
255
|
private resolveMarketplacePhoton;
|
|
256
|
+
private resolveRealPhotonPath;
|
|
257
|
+
private materializeSiblingDependencySymlink;
|
|
258
|
+
private createSymlinkIfMissing;
|
|
256
259
|
private normalizeMarketplaceSource;
|
|
257
260
|
private fetchPhotonFromMarketplace;
|
|
258
261
|
private fetchPhotonFromSpecificMarketplace;
|
|
@@ -392,7 +395,7 @@ export declare class PhotonLoader {
|
|
|
392
395
|
*
|
|
393
396
|
* Examples:
|
|
394
397
|
* ~/.photon/portel-dev/todo.photon.ts → 'portel-dev'
|
|
395
|
-
* ~/.photon/
|
|
398
|
+
* ~/.photon/acme/todo.photon.ts → 'acme'
|
|
396
399
|
* ~/.photon/todo.photon.ts → detected from git or 'local'
|
|
397
400
|
*/
|
|
398
401
|
private resolveNamespace;
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH,OAAO,EAGL,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EAYnB,KAAK,aAAa,EAClB,KAAK,aAAa,EAWlB,KAAK,gBAAgB,EAgCrB,KAAK,UAAU,EAchB,MAAM,qBAAqB,CAAC;AAgB7B,OAAO,EAAgB,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AA0FzE;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AA6CD,qBAAa,YAAY;IACvB,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,sDAAsD;IACtD,OAAO,CAAC,aAAa,CAA+C;IAEpE,kFAAkF;IAClF,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAGpD,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB,CAAwC;IACpE,4CAA4C;IAC5C,OAAO,CAAC,UAAU,CAA+B;IACjD,yFAAyF;IACzF,OAAO,CAAC,iBAAiB,CAAwC;IACjE,mDAAmD;IACnD,OAAO,CAAC,SAAS,CAAC,CAAkB;IACpC,4DAA4D;IAC5D,OAAO,CAAC,gBAAgB,CAAC,CAA2B;IACpD,iDAAiD;IACjD,OAAO,CAAC,gBAAgB,CAA0B;IAClD,uDAAuD;IACvD,OAAO,CAAC,kBAAkB,CAAC,CAAqB;IAChD,OAAO,CAAC,yBAAyB,CAAC,CAA8B;IAChE,OAAO,CAAC,MAAM,CAAS;IAMvB,gFAAgF;IAChF,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,8EAA8E;IAC9E,OAAO,CAAC,gBAAgB,CAA6C;IAErE,oEAAoE;IAC7D,OAAO,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;IACI,sBAAsB,CAAC,EAAE,CAC9B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,MAAM,KACxB,OAAO,CAAC,GAAG,CAAC,CAAC;IAElB;;;;;OAKG;IACI,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAEjE;;;;OAIG;IACI,qBAAqB,CAAC,EAAE,GAAG,CAChC,MAAM,EACN;QAAE,MAAM,EAAE;YAAE,OAAO,EAAE,GAAG,CAAC;YAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAA;SAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CACnF,CAAC;gBAEU,OAAO,GAAE,OAAe,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAOvE;;;OAGG;YACW,eAAe;YAgBf,qBAAqB;IAgBnC;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAIpD;;OAEG;IACH,OAAO,CAAC,GAAG;IAMX;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;YAIZ,oBAAoB;YAgBpB,UAAU;IAiBxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,gBAAgB;YAIV,eAAe;YAKf,oBAAoB;YAIpB,cAAc;IAK5B;;OAEG;IACH,OAAO,CAAC,yBAAyB;YAInB,sBAAsB;YAWtB,UAAU;IASxB,OAAO,CAAC,iBAAiB;YAeX,uBAAuB;YAiBvB,0BAA0B;IAiFxC,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,MAAM,CAAC,2BAA2B;IA4C1C,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAcnC;;OAEG;IACG,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5D,OAAO,CAAC,mBAAmB,CAAC;IA2pB/B;;;;;OAKG;IACG,cAAc,CAClB,MAAM,EAAE;QAAE,OAAO,EAAE,GAAG,CAAC;QAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,EAC5C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5D,OAAO,CAAC,mBAAmB,CAAC;IA8U/B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAgChE;;;OAGG;YACW,iBAAiB;IAW/B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACH,OAAO,CAAC,OAAO;IAIf;;OAEG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACH,OAAO,CAAC,cAAc;IA0CtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;YACW,YAAY;IAkJ1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;YACW,YAAY;IAY1B;;OAEG;YACW,eAAe;IAW7B;;;;;OAKG;YACW,cAAc;IA2C5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;;;;OAKG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EAC3C,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,aAAa,CAAC;QAAC,aAAa,CAAC,EAAE,aAAa,CAAA;KAAE,GACzE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAgF/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;OAEG;IACG,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAW7E;;;;;;;OAOG;YACW,oBAAoB;IAiLlC;;;;;;;;OAQG;YACW,YAAY;YAoBZ,gBAAgB;IAqE9B;;;;;OAKG;YACW,iBAAiB;IAkF/B;;;;;;;;OAQG;IACG,oBAAoB,CACxB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC;IAaf;;OAEG;YACW,iBAAiB;YA6BjB,wBAAwB;YAyFxB,qBAAqB;YAQrB,mCAAmC;YAwBnC,sBAAsB;IAmBpC,OAAO,CAAC,0BAA0B;YA2BpB,0BAA0B;YAqC1B,kCAAkC;YA+BlC,iBAAiB;IAgB/B,OAAO,CAAC,iBAAiB;YAiDX,gBAAgB;IAgC9B,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,qBAAqB;YAQf,yBAAyB;YAwBzB,cAAc;IAkC5B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA8D/B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAoFvB;;;;;;;;;;;;OAYG;IACG,WAAW,CACf,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,GAAG,EACf,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,MAAM,CAAC,EAAE,UAAU,CAAC;KACrB,GACA,OAAO,CAAC,GAAG,CAAC;IA4Wf;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA0C3B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAgG3B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,uBAAuB;IAiC/B;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAuH3B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAqBhC;;;;;;;;;;;;;;OAcG;YACW,qBAAqB;IAwDnC;;;;;;;;;;;;;;;OAeG;YACW,oBAAoB;IAsClC;;OAEG;YACW,cAAc;IAU5B;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;;OAIG;YACW,cAAc;IAqB5B;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmEzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CA2B3B"}
|
package/dist/loader.js
CHANGED
|
@@ -706,9 +706,17 @@ export class PhotonLoader {
|
|
|
706
706
|
timestamp: Date.now(),
|
|
707
707
|
source: name,
|
|
708
708
|
})
|
|
709
|
-
.catch(() => {
|
|
709
|
+
.catch((e) => {
|
|
710
|
+
this.logger.debug('Failed to publish broker event', {
|
|
711
|
+
error: e?.message || e,
|
|
712
|
+
});
|
|
713
|
+
});
|
|
710
714
|
})
|
|
711
|
-
.catch(() => {
|
|
715
|
+
.catch((e) => {
|
|
716
|
+
this.logger.debug('Failed to import photon-core for broker', {
|
|
717
|
+
error: e?.message || e,
|
|
718
|
+
});
|
|
719
|
+
});
|
|
712
720
|
}
|
|
713
721
|
};
|
|
714
722
|
// Also inject render() — convenience wrapper around emit
|
|
@@ -1158,9 +1166,15 @@ export class PhotonLoader {
|
|
|
1158
1166
|
timestamp: Date.now(),
|
|
1159
1167
|
source: name,
|
|
1160
1168
|
})
|
|
1161
|
-
.catch(() => {
|
|
1169
|
+
.catch((e) => {
|
|
1170
|
+
this.logger.debug('Failed to publish broker event', { error: e?.message || e });
|
|
1171
|
+
});
|
|
1162
1172
|
})
|
|
1163
|
-
.catch(() => {
|
|
1173
|
+
.catch((e) => {
|
|
1174
|
+
this.logger.debug('Failed to import photon-core for broker', {
|
|
1175
|
+
error: e?.message || e,
|
|
1176
|
+
});
|
|
1177
|
+
});
|
|
1164
1178
|
}
|
|
1165
1179
|
};
|
|
1166
1180
|
// Also inject render() — convenience wrapper around emit
|
|
@@ -2043,6 +2057,7 @@ export class PhotonLoader {
|
|
|
2043
2057
|
}
|
|
2044
2058
|
// Resolve the Photon path
|
|
2045
2059
|
const resolvedPath = await this.resolvePhotonPath(dep, currentPhotonPath);
|
|
2060
|
+
await this.materializeSiblingDependencySymlink(dep, currentPhotonPath, resolvedPath);
|
|
2046
2061
|
// Cache key includes instance name to allow multiple instances of the same photon
|
|
2047
2062
|
const cacheKey = dep.instanceName ? `${resolvedPath}::${dep.instanceName}` : resolvedPath;
|
|
2048
2063
|
// Check cache
|
|
@@ -2106,14 +2121,15 @@ export class PhotonLoader {
|
|
|
2106
2121
|
* Resolve Photon dependency path based on source type
|
|
2107
2122
|
*/
|
|
2108
2123
|
async resolvePhotonPath(dep, currentPhotonPath) {
|
|
2124
|
+
const resolvedCurrentPhotonPath = await this.resolveRealPhotonPath(currentPhotonPath);
|
|
2109
2125
|
switch (dep.sourceType) {
|
|
2110
2126
|
case 'local':
|
|
2111
2127
|
if (dep.source.startsWith('./') || dep.source.startsWith('../')) {
|
|
2112
|
-
return path.resolve(path.dirname(
|
|
2128
|
+
return path.resolve(path.dirname(resolvedCurrentPhotonPath), dep.source);
|
|
2113
2129
|
}
|
|
2114
2130
|
return dep.source;
|
|
2115
2131
|
case 'marketplace':
|
|
2116
|
-
return await this.resolveMarketplacePhoton(dep,
|
|
2132
|
+
return await this.resolveMarketplacePhoton(dep, resolvedCurrentPhotonPath);
|
|
2117
2133
|
case 'github':
|
|
2118
2134
|
return await this.fetchGithubPhoton(dep);
|
|
2119
2135
|
case 'npm':
|
|
@@ -2195,6 +2211,48 @@ export class PhotonLoader {
|
|
|
2195
2211
|
throw new Error(`Photon "${dep.source}" not found in local paths or configured marketplaces. ` +
|
|
2196
2212
|
`Checked: ${candidates.join(', ')}`);
|
|
2197
2213
|
}
|
|
2214
|
+
async resolveRealPhotonPath(currentPhotonPath) {
|
|
2215
|
+
try {
|
|
2216
|
+
return await fs.realpath(currentPhotonPath);
|
|
2217
|
+
}
|
|
2218
|
+
catch {
|
|
2219
|
+
return currentPhotonPath;
|
|
2220
|
+
}
|
|
2221
|
+
}
|
|
2222
|
+
async materializeSiblingDependencySymlink(dep, currentPhotonPath, resolvedPath) {
|
|
2223
|
+
if (dep.sourceType !== 'marketplace')
|
|
2224
|
+
return;
|
|
2225
|
+
if (dep.source.includes(':'))
|
|
2226
|
+
return;
|
|
2227
|
+
if (dep.source.includes('/'))
|
|
2228
|
+
return;
|
|
2229
|
+
const realCurrentPhotonPath = await this.resolveRealPhotonPath(currentPhotonPath);
|
|
2230
|
+
if (realCurrentPhotonPath === currentPhotonPath)
|
|
2231
|
+
return;
|
|
2232
|
+
if (path.dirname(realCurrentPhotonPath) !== path.dirname(resolvedPath))
|
|
2233
|
+
return;
|
|
2234
|
+
const linkPath = path.join(this.baseDir, path.basename(resolvedPath));
|
|
2235
|
+
await this.createSymlinkIfMissing(resolvedPath, linkPath);
|
|
2236
|
+
const depName = path.basename(resolvedPath).replace(/\.photon\.(ts|js)$/, '');
|
|
2237
|
+
const sourceAssetDir = path.join(path.dirname(resolvedPath), depName);
|
|
2238
|
+
const targetAssetDir = path.join(this.baseDir, depName);
|
|
2239
|
+
if (existsSync(sourceAssetDir)) {
|
|
2240
|
+
await this.createSymlinkIfMissing(sourceAssetDir, targetAssetDir, 'dir');
|
|
2241
|
+
}
|
|
2242
|
+
}
|
|
2243
|
+
async createSymlinkIfMissing(sourcePath, targetPath, type) {
|
|
2244
|
+
try {
|
|
2245
|
+
const existing = await fs.lstat(targetPath).catch(() => null);
|
|
2246
|
+
if (existing)
|
|
2247
|
+
return;
|
|
2248
|
+
await fs.mkdir(path.dirname(targetPath), { recursive: true });
|
|
2249
|
+
symlinkSync(sourcePath, targetPath, type);
|
|
2250
|
+
this.log(`🔗 Materialized sibling photon symlink: ${path.basename(targetPath)}`);
|
|
2251
|
+
}
|
|
2252
|
+
catch (error) {
|
|
2253
|
+
this.log(`⚠️ Failed to materialize sibling symlink ${path.basename(targetPath)}: ${getErrorMessage(error)}`);
|
|
2254
|
+
}
|
|
2255
|
+
}
|
|
2198
2256
|
normalizeMarketplaceSource(source) {
|
|
2199
2257
|
let slugSource = source;
|
|
2200
2258
|
let marketplaceHint;
|
|
@@ -2701,9 +2759,9 @@ Run: photon mcp ${mcpName} --config
|
|
|
2701
2759
|
if (process.env.PHOTON_DEBUG_EMIT === '1') {
|
|
2702
2760
|
console.error(`[EMIT-DEBUG] Sending event: method=${eventPayload.method}, channel=${eventData.channel}, hasMeta=${!!result?.__meta}`);
|
|
2703
2761
|
}
|
|
2704
|
-
// Cast to
|
|
2705
|
-
void Promise.resolve(options.outputHandler(eventData)).catch(() => {
|
|
2706
|
-
|
|
2762
|
+
// Cast to DaemonEventEnvelope - outputHandler is flexible and routes any object with channel property
|
|
2763
|
+
void Promise.resolve(options.outputHandler(eventData)).catch((e) => {
|
|
2764
|
+
this.logger.debug('Output handler failed for event', { error: e?.message || e });
|
|
2707
2765
|
});
|
|
2708
2766
|
if (process.env.PHOTON_DEBUG_EMIT === '1') {
|
|
2709
2767
|
console.error(`[EMIT-DEBUG] Event transmitted to outputHandler`);
|
|
@@ -3082,7 +3140,11 @@ Run: photon mcp ${mcpName} --config
|
|
|
3082
3140
|
// Call the original method
|
|
3083
3141
|
const result = original.apply(this, args);
|
|
3084
3142
|
// Attach __meta to returned objects for audit trail
|
|
3085
|
-
|
|
3143
|
+
const resultObj = result;
|
|
3144
|
+
if (resultObj &&
|
|
3145
|
+
typeof resultObj === 'object' &&
|
|
3146
|
+
!Array.isArray(resultObj) &&
|
|
3147
|
+
!resultObj.__meta) {
|
|
3086
3148
|
const timestamp = new Date().toISOString();
|
|
3087
3149
|
Object.defineProperty(result, '__meta', {
|
|
3088
3150
|
value: {
|
|
@@ -3283,7 +3345,7 @@ Run: photon mcp ${mcpName} --config
|
|
|
3283
3345
|
*
|
|
3284
3346
|
* Examples:
|
|
3285
3347
|
* ~/.photon/portel-dev/todo.photon.ts → 'portel-dev'
|
|
3286
|
-
* ~/.photon/
|
|
3348
|
+
* ~/.photon/acme/todo.photon.ts → 'acme'
|
|
3287
3349
|
* ~/.photon/todo.photon.ts → detected from git or 'local'
|
|
3288
3350
|
*/
|
|
3289
3351
|
resolveNamespace(absolutePath) {
|