@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.
Files changed (47) hide show
  1. package/README.md +5 -1
  2. package/dist/auth/mcp-jwt.d.ts +59 -0
  3. package/dist/auth/mcp-jwt.d.ts.map +1 -0
  4. package/dist/auth/mcp-jwt.js +177 -0
  5. package/dist/auth/mcp-jwt.js.map +1 -0
  6. package/dist/auto-ui/beam.d.ts +1 -0
  7. package/dist/auto-ui/beam.d.ts.map +1 -1
  8. package/dist/auto-ui/beam.js +35 -1
  9. package/dist/auto-ui/beam.js.map +1 -1
  10. package/dist/auto-ui/playground-html.d.ts.map +1 -1
  11. package/dist/auto-ui/playground-html.js +28 -38
  12. package/dist/auto-ui/playground-html.js.map +1 -1
  13. package/dist/beam.bundle.js +6 -0
  14. package/dist/beam.bundle.js.map +2 -2
  15. package/dist/cli/commands/auth.d.ts +15 -0
  16. package/dist/cli/commands/auth.d.ts.map +1 -0
  17. package/dist/cli/commands/auth.js +105 -0
  18. package/dist/cli/commands/auth.js.map +1 -0
  19. package/dist/cli/commands/host.d.ts.map +1 -1
  20. package/dist/cli/commands/host.js +9 -0
  21. package/dist/cli/commands/host.js.map +1 -1
  22. package/dist/cli/commands/run.d.ts.map +1 -1
  23. package/dist/cli/commands/run.js +3 -0
  24. package/dist/cli/commands/run.js.map +1 -1
  25. package/dist/cli/index.d.ts.map +1 -1
  26. package/dist/cli/index.js +6 -0
  27. package/dist/cli/index.js.map +1 -1
  28. package/dist/deploy/cloudflare.d.ts +2 -0
  29. package/dist/deploy/cloudflare.d.ts.map +1 -1
  30. package/dist/deploy/cloudflare.js +120 -13
  31. package/dist/deploy/cloudflare.js.map +1 -1
  32. package/dist/editor-support/docblock-tag-catalog.d.ts.map +1 -1
  33. package/dist/editor-support/docblock-tag-catalog.js +6 -0
  34. package/dist/editor-support/docblock-tag-catalog.js.map +1 -1
  35. package/dist/loader.d.ts +3 -0
  36. package/dist/loader.d.ts.map +1 -1
  37. package/dist/loader.js +49 -0
  38. package/dist/loader.js.map +1 -1
  39. package/dist/photon-doc-extractor.d.ts +1 -0
  40. package/dist/photon-doc-extractor.d.ts.map +1 -1
  41. package/dist/photon-doc-extractor.js +13 -0
  42. package/dist/photon-doc-extractor.js.map +1 -1
  43. package/dist/server.d.ts.map +1 -1
  44. package/dist/server.js +150 -168
  45. package/dist/server.js.map +1 -1
  46. package/package.json +1 -1
  47. 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,CAkG1D"}
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":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SACjC,WAAW,CAAC,qCAAqC,CAAC;SAClD,aAAa,CAAC;QACb,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CAAC,UAAU,EAAE,uCAAuC,CAAC;SAC7D,QAAQ,CAAC,QAAQ,EAAE,4CAA4C,CAAC;SAChE,MAAM,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;SAClE,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAY,EAAE,OAAY,EAAE,OAAgB,EAAE,EAAE;QAC7E,IAAI,CAAC;YACH,4CAA4C;YAC5C,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC,OAAO,CAAC;YAC/C,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;YAC7E,eAAe,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAE5E,8BAA8B;YAC9B,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAE7D,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAE9C,IAAI,gBAAgB,KAAK,YAAY,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBACnE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;gBACrE,MAAM,aAAa,CAAC;oBAClB,UAAU;oBACV,SAAS,EAAE,OAAO,CAAC,MAAM;iBAC1B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,UAAU,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,UAAU,EAAE,uCAAuC,CAAC;SAC7D,QAAQ,CAAC,QAAQ,EAAE,4CAA4C,CAAC;SAChE,MAAM,CAAC,OAAO,EAAE,8BAA8B,CAAC;SAC/C,MAAM,CAAC,WAAW,EAAE,oCAAoC,CAAC;SACzD,MAAM,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;SAClE,MAAM,CAAC,QAAQ,EAAE,0DAA0D,CAAC;SAC5E,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAY,EAAE,OAAY,EAAE,OAAgB,EAAE,EAAE;QAC7E,IAAI,CAAC;YACH,4CAA4C;YAC5C,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC,OAAO,CAAC;YAC/C,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;YAC7E,eAAe,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAE3E,8BAA8B;YAC9B,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAE7D,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAE9C,IAAI,gBAAgB,KAAK,YAAY,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBACnE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;gBAC1E,MAAM,kBAAkB,CAAC;oBACvB,UAAU;oBACV,OAAO,EAAE,OAAO,CAAC,GAAG;oBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,SAAS,EAAE,OAAO,CAAC,MAAM;oBACzB,QAAQ,EAAE,OAAO,CAAC,IAAI;iBACvB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;gBACrD,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
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,UA+D7B,CAAC;AA8HF,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"}
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
@@ -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;AAgCpC,wBAAgB,aAAa,IAAI,OAAO,CAkIvC;AAED;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6C1C"}
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
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
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;AAqWH,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;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;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,CAijBxF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BnF"}
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 <photon>/<name>/assets/** into <outputDir>/public/<name>/
652
- // for the wrangler [assets] binding. Walk every photon (host + siblings) so
653
- // a sibling's SPA chunks ship alongside the host's. Skips photons without
654
- // an `assets/` folder, leaving the [assets] block out of wrangler.toml so
655
- // the deploy stays minimal for asset-less photons.
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 assetsDir = path.join(path.dirname(sourcePhotonPath), photonBaseName, 'assets');
669
- if (existsSync(assetsDir)) {
670
- assetSourceDirs.push({ photonName: name, assetsDir });
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
- // Copy any raw `assets/**` folders (new canonical layout).
681
- for (const { photonName: name, assetsDir } of assetSourceDirs) {
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
- await fs.cp(assetsDir, path.join(publicDir, name), { recursive: true });
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.replace(/__UI_ASSET_MANIFEST__/g, JSON.stringify(uiManifest));
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.