@portel/photon 1.33.0 → 1.33.1
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/README.md +5 -1
- package/dist/auth/mcp-jwt.d.ts +59 -0
- package/dist/auth/mcp-jwt.d.ts.map +1 -0
- package/dist/auth/mcp-jwt.js +177 -0
- package/dist/auth/mcp-jwt.js.map +1 -0
- package/dist/auto-ui/beam.d.ts +1 -0
- package/dist/auto-ui/beam.d.ts.map +1 -1
- package/dist/auto-ui/beam.js +35 -1
- package/dist/auto-ui/beam.js.map +1 -1
- package/dist/auto-ui/playground-html.d.ts.map +1 -1
- package/dist/auto-ui/playground-html.js +28 -38
- package/dist/auto-ui/playground-html.js.map +1 -1
- package/dist/beam.bundle.js +6 -0
- package/dist/beam.bundle.js.map +2 -2
- package/dist/cli/commands/auth.d.ts +15 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +105 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/host.d.ts.map +1 -1
- package/dist/cli/commands/host.js +9 -0
- package/dist/cli/commands/host.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +3 -0
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +6 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/deploy/cloudflare.d.ts +2 -0
- package/dist/deploy/cloudflare.d.ts.map +1 -1
- package/dist/deploy/cloudflare.js +120 -13
- package/dist/deploy/cloudflare.js.map +1 -1
- package/dist/editor-support/docblock-tag-catalog.d.ts.map +1 -1
- package/dist/editor-support/docblock-tag-catalog.js +6 -0
- package/dist/editor-support/docblock-tag-catalog.js.map +1 -1
- package/dist/loader.d.ts +3 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +49 -0
- package/dist/loader.js.map +1 -1
- package/dist/photon-doc-extractor.d.ts +1 -0
- package/dist/photon-doc-extractor.d.ts.map +1 -1
- package/dist/photon-doc-extractor.js +13 -0
- package/dist/photon-doc-extractor.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +150 -168
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
- package/templates/cloudflare/worker.ts.template +314 -47
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
import type { JsonWebKey } from 'node:crypto';
|
|
3
|
+
import { type PhotonAuthIssuer } from '../../auth/mcp-jwt.js';
|
|
4
|
+
export declare function photonAuthDir(name: string): string;
|
|
5
|
+
export declare function loadPhotonAuth(name: string): Promise<{
|
|
6
|
+
dir: string;
|
|
7
|
+
issuer: PhotonAuthIssuer;
|
|
8
|
+
privateJwk: JsonWebKey;
|
|
9
|
+
publicJwk: JsonWebKey;
|
|
10
|
+
jwks: {
|
|
11
|
+
keys: JsonWebKey[];
|
|
12
|
+
};
|
|
13
|
+
}>;
|
|
14
|
+
export declare function registerAuthCommands(program: Command): void;
|
|
15
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAM/B,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKlD;AAoBD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;IACtB,IAAI,EAAE;QAAE,IAAI,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;CAC9B,CAAC,CASD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4E3D"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import { homedir } from 'node:os';
|
|
5
|
+
import { createPhotonAuthKeypair, normalizeScopes, signPhotonAuthToken, verifyPhotonAuthToken, } from '../../auth/mcp-jwt.js';
|
|
6
|
+
function authRoot() {
|
|
7
|
+
return path.join(process.env.PHOTON_DIR || path.join(homedir(), '.photon'), 'auth');
|
|
8
|
+
}
|
|
9
|
+
export function photonAuthDir(name) {
|
|
10
|
+
if (!/^[a-z0-9][a-z0-9_-]*$/i.test(name)) {
|
|
11
|
+
throw new Error(`Invalid photon auth name: ${name}`);
|
|
12
|
+
}
|
|
13
|
+
return path.join(authRoot(), name);
|
|
14
|
+
}
|
|
15
|
+
async function readJson(file) {
|
|
16
|
+
return JSON.parse(await fs.readFile(file, 'utf-8'));
|
|
17
|
+
}
|
|
18
|
+
async function writeJson(file, value, mode) {
|
|
19
|
+
await fs.writeFile(file, JSON.stringify(value, null, 2) + '\n', { mode });
|
|
20
|
+
}
|
|
21
|
+
function parseTtlSeconds(input, fallback) {
|
|
22
|
+
if (!input)
|
|
23
|
+
return fallback;
|
|
24
|
+
const match = input.trim().match(/^(\d+)(s|m|h)?$/i);
|
|
25
|
+
if (!match)
|
|
26
|
+
throw new Error(`Invalid TTL: ${input}. Use values like 900s, 15m, or 1h.`);
|
|
27
|
+
const value = Number(match[1]);
|
|
28
|
+
const unit = (match[2] ?? 's').toLowerCase();
|
|
29
|
+
const multiplier = unit === 'h' ? 3600 : unit === 'm' ? 60 : 1;
|
|
30
|
+
return value * multiplier;
|
|
31
|
+
}
|
|
32
|
+
export async function loadPhotonAuth(name) {
|
|
33
|
+
const dir = photonAuthDir(name);
|
|
34
|
+
return {
|
|
35
|
+
dir,
|
|
36
|
+
issuer: await readJson(path.join(dir, 'issuer.json')),
|
|
37
|
+
privateJwk: await readJson(path.join(dir, 'private.jwk')),
|
|
38
|
+
publicJwk: await readJson(path.join(dir, 'public.jwk')),
|
|
39
|
+
jwks: await readJson(path.join(dir, 'jwks.json')),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export function registerAuthCommands(program) {
|
|
43
|
+
const auth = program.command('auth').description('Manage Photon MCP OAuth/JWT auth');
|
|
44
|
+
auth
|
|
45
|
+
.command('init')
|
|
46
|
+
.argument('<name>', 'Photon auth profile name')
|
|
47
|
+
.option('--rotate', 'Overwrite an existing keypair')
|
|
48
|
+
.description('Create a local ES256 issuer and keypair for deployed MCP JWT auth')
|
|
49
|
+
.action(async (name, options) => {
|
|
50
|
+
const dir = photonAuthDir(name);
|
|
51
|
+
if (existsSync(path.join(dir, 'private.jwk')) && !options.rotate) {
|
|
52
|
+
throw new Error(`${dir} already exists. Pass --rotate to replace the signing key.`);
|
|
53
|
+
}
|
|
54
|
+
const material = createPhotonAuthKeypair(name);
|
|
55
|
+
await fs.mkdir(dir, { recursive: true, mode: 0o700 });
|
|
56
|
+
await fs.chmod(dir, 0o700).catch(() => { });
|
|
57
|
+
await writeJson(path.join(dir, 'private.jwk'), material.privateJwk, 0o600);
|
|
58
|
+
await fs.chmod(path.join(dir, 'private.jwk'), 0o600).catch(() => { });
|
|
59
|
+
await writeJson(path.join(dir, 'public.jwk'), material.publicJwk, 0o644);
|
|
60
|
+
await writeJson(path.join(dir, 'jwks.json'), material.jwks, 0o644);
|
|
61
|
+
await writeJson(path.join(dir, 'issuer.json'), material.issuer, 0o644);
|
|
62
|
+
console.log(`Created Photon auth issuer: ${material.issuer.issuer}`);
|
|
63
|
+
console.log(`Public JWKS: ${path.join(dir, 'jwks.json')}`);
|
|
64
|
+
});
|
|
65
|
+
auth
|
|
66
|
+
.command('token')
|
|
67
|
+
.argument('<name>', 'Photon auth profile name')
|
|
68
|
+
.requiredOption('--agent <id>', 'Stable agent/client identifier')
|
|
69
|
+
.requiredOption('--audience <url>', 'MCP resource audience, usually https://host/mcp')
|
|
70
|
+
.option('--tenant <id>', 'Tenant id claim', 'default')
|
|
71
|
+
.option('--scope <scope...>', 'OAuth scopes; may be repeated or space-delimited')
|
|
72
|
+
.option('--ttl <duration>', 'TTL such as 900s, 15m, or 1h')
|
|
73
|
+
.description('Sign a short-lived JWT access token for an agent')
|
|
74
|
+
.action(async (name, options) => {
|
|
75
|
+
const auth = await loadPhotonAuth(name);
|
|
76
|
+
const token = signPhotonAuthToken(auth.issuer, auth.privateJwk, {
|
|
77
|
+
agent: options.agent,
|
|
78
|
+
audience: options.audience,
|
|
79
|
+
tenant: options.tenant,
|
|
80
|
+
scopes: normalizeScopes(options.scope ?? []),
|
|
81
|
+
ttlSeconds: parseTtlSeconds(options.ttl, auth.issuer.defaultTtlSeconds),
|
|
82
|
+
});
|
|
83
|
+
console.log(token);
|
|
84
|
+
});
|
|
85
|
+
auth
|
|
86
|
+
.command('verify')
|
|
87
|
+
.argument('<name>', 'Photon auth profile name')
|
|
88
|
+
.argument('<token>', 'JWT access token')
|
|
89
|
+
.requiredOption('--audience <url>', 'Expected MCP resource audience')
|
|
90
|
+
.description('Verify a Photon local-issuer JWT')
|
|
91
|
+
.action(async (name, token, options) => {
|
|
92
|
+
const auth = await loadPhotonAuth(name);
|
|
93
|
+
const result = verifyPhotonAuthToken(token, {
|
|
94
|
+
issuer: auth.issuer.issuer,
|
|
95
|
+
audience: options.audience,
|
|
96
|
+
jwks: auth.jwks,
|
|
97
|
+
});
|
|
98
|
+
if (!result.ok) {
|
|
99
|
+
console.error(`Invalid token: ${result.reason}`);
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
console.log(JSON.stringify(result.claims, null, 2));
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/host.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/host.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8G1D"}
|
|
@@ -65,6 +65,8 @@ export function registerHostCommand(program) {
|
|
|
65
65
|
.option('--dry-run', 'Generate project without deploying')
|
|
66
66
|
.option('--output <dir>', 'Output directory for generated project')
|
|
67
67
|
.option('--logs', 'Enable Workers Logs (Cloudflare dashboard observability)')
|
|
68
|
+
.option('--mcp-auth <mode>', 'MCP auth mode: jwt, bearer, or open')
|
|
69
|
+
.option('--mcp-audience <url>', 'Expected MCP JWT audience URL, for example https://app.example.com/mcp')
|
|
68
70
|
.description('Deploy a Photon to cloud platforms')
|
|
69
71
|
.action(async (target, name, options, command) => {
|
|
70
72
|
try {
|
|
@@ -82,6 +84,11 @@ export function registerHostCommand(program) {
|
|
|
82
84
|
}
|
|
83
85
|
const normalizedTarget = target.toLowerCase();
|
|
84
86
|
if (normalizedTarget === 'cloudflare' || normalizedTarget === 'cf') {
|
|
87
|
+
if (options.mcpAuth && !['jwt', 'bearer', 'open'].includes(String(options.mcpAuth))) {
|
|
88
|
+
logger.error(`Unknown MCP auth mode: ${options.mcpAuth}`);
|
|
89
|
+
console.error('Supported MCP auth modes: jwt, bearer, open');
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
85
92
|
const { deployToCloudflare } = await import('../../deploy/cloudflare.js');
|
|
86
93
|
await deployToCloudflare({
|
|
87
94
|
photonPath,
|
|
@@ -89,6 +96,8 @@ export function registerHostCommand(program) {
|
|
|
89
96
|
dryRun: options.dryRun,
|
|
90
97
|
outputDir: options.output,
|
|
91
98
|
withLogs: options.logs,
|
|
99
|
+
mcpAuth: options.mcpAuth,
|
|
100
|
+
mcpAudience: options.mcpAudience,
|
|
92
101
|
});
|
|
93
102
|
}
|
|
94
103
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../../src/cli/commands/host.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../../src/cli/commands/host.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,eAAO,MAAM,iBAAiB,UAgE7B,CAAC;AAgIF,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,CAkDjD;AAMD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgIzD"}
|
package/dist/cli/commands/run.js
CHANGED
|
@@ -69,6 +69,7 @@ export const RESERVED_COMMANDS = [
|
|
|
69
69
|
'enable',
|
|
70
70
|
'disable',
|
|
71
71
|
'claim',
|
|
72
|
+
'auth',
|
|
72
73
|
// Help/version (handled by commander)
|
|
73
74
|
'help',
|
|
74
75
|
'--help',
|
|
@@ -120,6 +121,7 @@ const knownCommands = [
|
|
|
120
121
|
'diagram',
|
|
121
122
|
'diagrams',
|
|
122
123
|
'claim',
|
|
124
|
+
'auth',
|
|
123
125
|
];
|
|
124
126
|
const knownSubcommands = {
|
|
125
127
|
marketplace: ['list', 'add', 'remove', 'enable', 'disable'],
|
|
@@ -128,6 +130,7 @@ const knownSubcommands = {
|
|
|
128
130
|
uninit: ['cli'],
|
|
129
131
|
cf: ['bindings', 'set', 'reset'],
|
|
130
132
|
config: ['set', 'get', 'list'],
|
|
133
|
+
auth: ['init', 'token', 'verify'],
|
|
131
134
|
};
|
|
132
135
|
// ══════════════════════════════════════════════════════════════════════════════
|
|
133
136
|
// PRIVATE HELPERS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,iFAAiF;AACjF,oBAAoB;AACpB,iFAAiF;AAEjF,gEAAgE;AAChE,8FAA8F;AAC9F,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,gBAAgB;IAChB,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,oBAAoB;IACpB,KAAK;IACL,MAAM;IACN,UAAU;IACV,MAAM;IACN,KAAK;IACL,QAAQ;IACR,IAAI;IACJ,cAAc;IACd,SAAS;IACT,IAAI;IACJ,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,OAAO;IACP,aAAa;IACb,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,eAAe;IACf,KAAK;IACL,WAAW;IACX,KAAK;IACL,QAAQ;IACR,UAAU;IACV,KAAK;IACL,OAAO;IACP,SAAS;IACT,SAAS;IACT,cAAc;IACd,aAAa;IACb,YAAY;IACZ,SAAS;IACT,SAAS;IACT,OAAO;IACP,kBAAkB;IAClB,KAAK;IACL,QAAQ;IACR,OAAO;IACP,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,SAAS;IACT,UAAU;IACV,QAAQ;IACR,SAAS;IACT,OAAO;IACP,sCAAsC;IACtC,MAAM;IACN,QAAQ;IACR,IAAI;IACJ,SAAS;IACT,WAAW;IACX,IAAI;CACL,CAAC;AAEF,oDAAoD;AACpD,MAAM,aAAa,GAAG;IACpB,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,UAAU;IACV,MAAM;IACN,KAAK;IACL,QAAQ;IACR,IAAI;IACJ,SAAS;IACT,IAAI;IACJ,QAAQ;IACR,aAAa;IACb,OAAO;IACP,QAAQ;IACR,OAAO;IACP,KAAK;IACL,WAAW;IACX,KAAK;IACL,QAAQ;IACR,KAAK;IACL,OAAO;IACP,SAAS;IACT,SAAS;IACT,KAAK;IACL,QAAQ;IACR,aAAa;IACb,OAAO;IACP,MAAM;IACN,IAAI;IACJ,OAAO;IACP,OAAO;IACP,SAAS;IACT,SAAS;IACT,UAAU;IACV,OAAO;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiCpC,wBAAgB,aAAa,IAAI,OAAO,CAuIvC;AAED;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6C1C"}
|
package/dist/cli/index.js
CHANGED
|
@@ -34,6 +34,7 @@ import { registerAliasCommands } from './commands/alias.js';
|
|
|
34
34
|
import { registerAuditCommand } from './commands/audit.js';
|
|
35
35
|
import { registerBuildCommand } from './commands/build.js';
|
|
36
36
|
import { registerClaimCommands } from './commands/claim.js';
|
|
37
|
+
import { registerAuthCommands } from './commands/auth.js';
|
|
37
38
|
import { preprocessArgs } from './commands/run.js';
|
|
38
39
|
export function createProgram() {
|
|
39
40
|
const program = new Command();
|
|
@@ -116,6 +117,10 @@ Publishing:
|
|
|
116
117
|
claim Scope a remote MCP session to photons via claim code
|
|
117
118
|
claim list List active claim codes
|
|
118
119
|
claim revoke <code> Remove a claim code
|
|
120
|
+
auth <command> Manage deployed MCP OAuth/JWT auth
|
|
121
|
+
auth init <name> Create a local ES256 issuer
|
|
122
|
+
auth token <name> Sign a short-lived scoped JWT
|
|
123
|
+
auth verify <name> Verify a local-issuer JWT
|
|
119
124
|
|
|
120
125
|
Maintenance:
|
|
121
126
|
update Update the Photon CLI itself (not installed photons)
|
|
@@ -158,6 +163,7 @@ Run 'photon <command> --help' for detailed usage.
|
|
|
158
163
|
registerAuditCommand(program);
|
|
159
164
|
registerBuildCommand(program);
|
|
160
165
|
registerClaimCommands(program);
|
|
166
|
+
registerAuthCommands(program);
|
|
161
167
|
return program;
|
|
162
168
|
}
|
|
163
169
|
/**
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,+DAA+D;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,uDAAuD,CAAC;SACpE,OAAO,CAAC,cAAc,CAAC;SACvB,MAAM,CAAC,qBAAqB,EAAE,2CAA2C,EAAE,MAAM,CAAC;SAClF,MAAM,CAAC,aAAa,EAAE,qDAAqD,CAAC;SAC5E,aAAa,CAAC;QACb,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE;KAC1B,CAAC;SACD,WAAW,CACV,OAAO,EACP
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ export interface CloudflareDeployOptions {
|
|
|
6
6
|
outputDir?: string;
|
|
7
7
|
devMode?: boolean;
|
|
8
8
|
dryRun?: boolean;
|
|
9
|
+
mcpAuth?: 'jwt' | 'bearer' | 'open';
|
|
10
|
+
mcpAudience?: string;
|
|
9
11
|
/**
|
|
10
12
|
* Enable Cloudflare Workers Logs in the generated `wrangler.toml`.
|
|
11
13
|
* When true, every Worker invocation is captured in the CF dashboard
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/deploy/cloudflare.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/deploy/cloudflare.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyaH,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAwBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3C,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAiDD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAylBxF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BnF"}
|
|
@@ -108,6 +108,75 @@ function parsePhotonPhotons(source) {
|
|
|
108
108
|
}
|
|
109
109
|
return Array.from(seen);
|
|
110
110
|
}
|
|
111
|
+
function parseToolScopesFromSource(source) {
|
|
112
|
+
const scopesByMethod = {};
|
|
113
|
+
const classRe = /(\/\*\*[\s\S]*?\*\/)\s*(?:export\s+)?(?:default\s+)?(?:abstract\s+)?class\s+/g;
|
|
114
|
+
const classScopes = [];
|
|
115
|
+
let classMatch;
|
|
116
|
+
while ((classMatch = classRe.exec(source)) !== null) {
|
|
117
|
+
for (const s of extractScopes(classMatch[1])) {
|
|
118
|
+
if (!classScopes.includes(s))
|
|
119
|
+
classScopes.push(s);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const methodRe = /(\/\*\*[\s\S]*?\*\/)\s*(?:async\s+)?(?:public\s+|protected\s+|private\s+)?([A-Za-z_$][\w$]*)\s*\(/g;
|
|
123
|
+
let match;
|
|
124
|
+
while ((match = methodRe.exec(source)) !== null) {
|
|
125
|
+
const name = match[2];
|
|
126
|
+
if (name === 'constructor')
|
|
127
|
+
continue;
|
|
128
|
+
const methodScopes = extractScopes(match[1]);
|
|
129
|
+
const merged = [];
|
|
130
|
+
for (const s of classScopes)
|
|
131
|
+
if (!merged.includes(s))
|
|
132
|
+
merged.push(s);
|
|
133
|
+
for (const s of methodScopes)
|
|
134
|
+
if (!merged.includes(s))
|
|
135
|
+
merged.push(s);
|
|
136
|
+
if (merged.length > 0)
|
|
137
|
+
scopesByMethod[name] = merged;
|
|
138
|
+
}
|
|
139
|
+
return scopesByMethod;
|
|
140
|
+
}
|
|
141
|
+
function extractScopes(jsdoc) {
|
|
142
|
+
const scopes = [];
|
|
143
|
+
const re = /@scope\s+([^\r\n*]+)/g;
|
|
144
|
+
let match;
|
|
145
|
+
while ((match = re.exec(jsdoc)) !== null) {
|
|
146
|
+
for (const scope of match[1].trim().split(/\s+/)) {
|
|
147
|
+
if (scope && !scopes.includes(scope))
|
|
148
|
+
scopes.push(scope);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return scopes;
|
|
152
|
+
}
|
|
153
|
+
function inferToolScopes(tool, explicitScopes) {
|
|
154
|
+
if (explicitScopes && explicitScopes.length > 0)
|
|
155
|
+
return explicitScopes;
|
|
156
|
+
return [`${tool.name}:${tool.readOnlyHint ? 'read' : 'write'}`];
|
|
157
|
+
}
|
|
158
|
+
function normalizeAssetRelativePath(value) {
|
|
159
|
+
return value.split(path.sep).join('/');
|
|
160
|
+
}
|
|
161
|
+
async function collectAssetFiles(root, prefix = '') {
|
|
162
|
+
const result = {};
|
|
163
|
+
if (!existsSync(root))
|
|
164
|
+
return result;
|
|
165
|
+
const entries = await fs.readdir(root, { withFileTypes: true });
|
|
166
|
+
for (const entry of entries) {
|
|
167
|
+
const absolute = path.join(root, entry.name);
|
|
168
|
+
const relative = prefix ? path.join(prefix, entry.name) : entry.name;
|
|
169
|
+
if (entry.isDirectory()) {
|
|
170
|
+
Object.assign(result, await collectAssetFiles(absolute, relative));
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
if (!entry.isFile())
|
|
174
|
+
continue;
|
|
175
|
+
const key = normalizeAssetRelativePath(relative);
|
|
176
|
+
result[key] = readFileSync(absolute).toString('base64');
|
|
177
|
+
}
|
|
178
|
+
return result;
|
|
179
|
+
}
|
|
111
180
|
/**
|
|
112
181
|
* Resolve a sibling photon name to its `.photon.ts` file. Searches alongside
|
|
113
182
|
* the caller first, then PHOTON_DIR / `~/.photon`. Returns null if not
|
|
@@ -341,6 +410,12 @@ function wranglerEnv() {
|
|
|
341
410
|
return process.env;
|
|
342
411
|
return { ...process.env, CLOUDFLARE_API_TOKEN: resolved.token };
|
|
343
412
|
}
|
|
413
|
+
async function loadDeployJwtConfig(photonName, audience) {
|
|
414
|
+
const authDir = path.join(process.env.PHOTON_DIR || path.join(homedir(), '.photon'), 'auth', photonName);
|
|
415
|
+
const issuer = JSON.parse(await fs.readFile(path.join(authDir, 'issuer.json'), 'utf-8'));
|
|
416
|
+
const jwks = JSON.parse(await fs.readFile(path.join(authDir, 'jwks.json'), 'utf-8'));
|
|
417
|
+
return { mode: 'jwt', issuer: issuer.issuer, audience, jwks };
|
|
418
|
+
}
|
|
344
419
|
/**
|
|
345
420
|
* Generate the wrangler.toml binding blocks for a deployment.
|
|
346
421
|
*
|
|
@@ -501,6 +576,7 @@ export async function deployToCloudflare(options) {
|
|
|
501
576
|
// `@expose` that collides with an explicit `@get`/`@post` so the
|
|
502
577
|
// explicit declaration wins exactly as in `src/loader.ts`.
|
|
503
578
|
const exposeDefs = extractExposesFromSource(sourceCode).filter((e) => !routeHandlerNames.has(e.handler));
|
|
579
|
+
const hostScopes = parseToolScopesFromSource(sourceCode);
|
|
504
580
|
const toolDefs = metadata.tools
|
|
505
581
|
.filter((tool) => !routeHandlerNames.has(tool.name))
|
|
506
582
|
.map((tool) => ({
|
|
@@ -508,8 +584,17 @@ export async function deployToCloudflare(options) {
|
|
|
508
584
|
description: tool.description,
|
|
509
585
|
inputSchema: tool.inputSchema,
|
|
510
586
|
...(tool.simpleParams ? { simpleParams: true } : {}),
|
|
587
|
+
scopes: inferToolScopes(tool, hostScopes[tool.name]),
|
|
511
588
|
}));
|
|
512
589
|
const cfAccessEnabled = metadata.auth === 'cf-access';
|
|
590
|
+
const jwtAudience = options.mcpAudience || process.env.PHOTON_MCP_JWT_AUDIENCE;
|
|
591
|
+
if (options.mcpAuth === 'jwt' && !jwtAudience) {
|
|
592
|
+
throw new Error('MCP JWT auth requires an audience. Pass --mcp-audience <url> or set PHOTON_MCP_JWT_AUDIENCE.');
|
|
593
|
+
}
|
|
594
|
+
const jwtConfig = options.mcpAuth === 'jwt' ? await loadDeployJwtConfig(photonName, jwtAudience) : null;
|
|
595
|
+
if (jwtConfig) {
|
|
596
|
+
logger.warn('MCP JWT auth is enabled. Existing PHOTON_MCP_BEARER clients will not authenticate unless they switch to JWT.');
|
|
597
|
+
}
|
|
513
598
|
logger.info(`Found ${toolDefs.length} tools, ${routeDefs.length} HTTP routes, ${exposeDefs.length} @expose'd methods`);
|
|
514
599
|
// Extract `@dependencies` from the photon source. These get bundled into
|
|
515
600
|
// the Worker by wrangler, so they must land in package.json's dependencies
|
|
@@ -580,6 +665,7 @@ export async function deployToCloudflare(options) {
|
|
|
580
665
|
const sibRoutes = extractHttpRoutesFromSource(sibSource);
|
|
581
666
|
const sibRouteHandlers = new Set(sibRoutes.map((r) => r.handler));
|
|
582
667
|
const sibExposes = extractExposesFromSource(sibSource).filter((e) => !sibRouteHandlers.has(e.handler));
|
|
668
|
+
const sibScopes = parseToolScopesFromSource(sibSource);
|
|
583
669
|
const sibTools = sibMeta.tools
|
|
584
670
|
.filter((tool) => !sibRouteHandlers.has(tool.name))
|
|
585
671
|
.map((tool) => ({
|
|
@@ -587,6 +673,7 @@ export async function deployToCloudflare(options) {
|
|
|
587
673
|
description: tool.description,
|
|
588
674
|
inputSchema: tool.inputSchema,
|
|
589
675
|
...(tool.simpleParams ? { simpleParams: true } : {}),
|
|
676
|
+
scopes: inferToolScopes(tool, sibScopes[tool.name]),
|
|
590
677
|
}));
|
|
591
678
|
// Sibling-level @photons are not recursively bundled in v1 — flag so the
|
|
592
679
|
// user knows their indirect dependency isn't carried along.
|
|
@@ -642,17 +729,21 @@ export async function deployToCloudflare(options) {
|
|
|
642
729
|
.replace(/__HOST_PHOTON_NAME__/g, photonName)
|
|
643
730
|
.replace(/__HOST_BINDING__/g, 'PHOTON')
|
|
644
731
|
.replace(/__DEV_MODE__/g, String(devMode))
|
|
645
|
-
.replace(/__CF_ACCESS_ENABLED__/g, String(cfAccessEnabled))
|
|
732
|
+
.replace(/__CF_ACCESS_ENABLED__/g, String(cfAccessEnabled))
|
|
733
|
+
.replace(/__MCP_AUTH_MODE__/g, JSON.stringify(jwtConfig?.mode ?? options.mcpAuth ?? 'legacy'))
|
|
734
|
+
.replace(/__MCP_JWT_ISSUER__/g, JSON.stringify(jwtConfig?.issuer ?? ''))
|
|
735
|
+
.replace(/__MCP_JWT_AUDIENCE__/g, JSON.stringify(jwtConfig?.audience ?? ''))
|
|
736
|
+
.replace(/__MCP_JWT_JWKS__/g, JSON.stringify(jwtConfig?.jwks ?? null));
|
|
646
737
|
// Write photon source files (host + each sibling)
|
|
647
738
|
await fs.writeFile(path.join(outputDir, 'src', 'worker.ts'), workerCode);
|
|
648
739
|
for (const p of photons) {
|
|
649
740
|
await fs.writeFile(path.join(outputDir, 'src', p.sourceFileBase), p.source);
|
|
650
741
|
}
|
|
651
|
-
// Track E: bundle
|
|
652
|
-
//
|
|
653
|
-
//
|
|
654
|
-
//
|
|
655
|
-
//
|
|
742
|
+
// Track E: bundle each photon's companion folder into the Worker. The local
|
|
743
|
+
// runtime resolves `this.assets('x')` relative to `<name>/` when that folder
|
|
744
|
+
// exists, and falls back to legacy `<name>/assets/` contents. Keep both
|
|
745
|
+
// layouts available on Cloudflare so deployed photons preserve local
|
|
746
|
+
// `this.assets()` behavior while older [assets] URLs remain stable.
|
|
656
747
|
const assetSourceDirs = [];
|
|
657
748
|
const hostPhotonDir = path.dirname(absolutePath);
|
|
658
749
|
const candidateDirs = [
|
|
@@ -665,9 +756,14 @@ export async function deployToCloudflare(options) {
|
|
|
665
756
|
}
|
|
666
757
|
for (const { photonName: name, sourcePhotonPath } of candidateDirs) {
|
|
667
758
|
const photonBaseName = path.basename(sourcePhotonPath, '.photon.ts');
|
|
668
|
-
const
|
|
669
|
-
|
|
670
|
-
|
|
759
|
+
const companionDir = path.join(path.dirname(sourcePhotonPath), photonBaseName);
|
|
760
|
+
const legacyAssetsDir = path.join(companionDir, 'assets');
|
|
761
|
+
if (existsSync(companionDir) || existsSync(legacyAssetsDir)) {
|
|
762
|
+
assetSourceDirs.push({
|
|
763
|
+
photonName: name,
|
|
764
|
+
companionDir: existsSync(companionDir) ? companionDir : undefined,
|
|
765
|
+
legacyAssetsDir: existsSync(legacyAssetsDir) ? legacyAssetsDir : undefined,
|
|
766
|
+
});
|
|
671
767
|
}
|
|
672
768
|
}
|
|
673
769
|
// uiId → precompiled-asset descriptor, injected into the worker so
|
|
@@ -677,10 +773,19 @@ export async function deployToCloudflare(options) {
|
|
|
677
773
|
const uiManifest = {};
|
|
678
774
|
let assetsBlock = '';
|
|
679
775
|
const publicDir = path.join(outputDir, 'public');
|
|
680
|
-
|
|
681
|
-
|
|
776
|
+
const embeddedAssetContents = {};
|
|
777
|
+
// Copy companion folders and legacy `assets/**` contents into public/.
|
|
778
|
+
for (const { photonName: name, companionDir, legacyAssetsDir } of assetSourceDirs) {
|
|
682
779
|
await fs.mkdir(publicDir, { recursive: true });
|
|
683
|
-
|
|
780
|
+
embeddedAssetContents[name] = {};
|
|
781
|
+
if (companionDir) {
|
|
782
|
+
await fs.cp(companionDir, path.join(publicDir, name), { recursive: true });
|
|
783
|
+
Object.assign(embeddedAssetContents[name], await collectAssetFiles(companionDir));
|
|
784
|
+
}
|
|
785
|
+
if (legacyAssetsDir) {
|
|
786
|
+
await fs.cp(legacyAssetsDir, path.join(publicDir, name), { recursive: true });
|
|
787
|
+
Object.assign(embeddedAssetContents[name], await collectAssetFiles(legacyAssetsDir));
|
|
788
|
+
}
|
|
684
789
|
}
|
|
685
790
|
// Precompile every @ui .tsx view: esbuild runs here on the deploy
|
|
686
791
|
// machine (it cannot run inside a Worker). Emit the shell + hashed
|
|
@@ -731,7 +836,9 @@ export async function deployToCloudflare(options) {
|
|
|
731
836
|
}
|
|
732
837
|
// Inject the precompiled-UI manifest now that asset processing is done,
|
|
733
838
|
// then rewrite the worker so `/api/ui/<id>` resolves on Cloudflare.
|
|
734
|
-
workerCode = workerCode
|
|
839
|
+
workerCode = workerCode
|
|
840
|
+
.replace(/__UI_ASSET_MANIFEST__/g, JSON.stringify(uiManifest))
|
|
841
|
+
.replace(/__PHOTON_ASSET_CONTENTS__/g, JSON.stringify(embeddedAssetContents));
|
|
735
842
|
await fs.writeFile(path.join(outputDir, 'src', 'worker.ts'), workerCode);
|
|
736
843
|
// Reference for clarity in the wrangler.toml: hostPhotonDir is unused for
|
|
737
844
|
// path generation but kept above for symmetry with sibling resolution.
|