@portel/photon 1.34.2 → 1.35.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 (105) hide show
  1. package/README.md +1 -0
  2. package/dist/a2a/card-generator.js +1 -1
  3. package/dist/auto-ui/beam/external-mcp.js.map +1 -1
  4. package/dist/auto-ui/beam/routes/api-browse.js +1 -1
  5. package/dist/auto-ui/beam/routes/api-browse.js.map +1 -1
  6. package/dist/auto-ui/beam/routes/api-config.d.ts.map +1 -1
  7. package/dist/auto-ui/beam/routes/api-config.js +27 -8
  8. package/dist/auto-ui/beam/routes/api-config.js.map +1 -1
  9. package/dist/auto-ui/beam/subscription.d.ts.map +1 -1
  10. package/dist/auto-ui/beam/subscription.js +4 -1
  11. package/dist/auto-ui/beam/subscription.js.map +1 -1
  12. package/dist/auto-ui/beam.d.ts +2 -0
  13. package/dist/auto-ui/beam.d.ts.map +1 -1
  14. package/dist/auto-ui/beam.js +60 -3
  15. package/dist/auto-ui/beam.js.map +1 -1
  16. package/dist/auto-ui/bridge/renderers.d.ts.map +1 -1
  17. package/dist/auto-ui/bridge/renderers.js +44 -1
  18. package/dist/auto-ui/bridge/renderers.js.map +1 -1
  19. package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
  20. package/dist/auto-ui/streamable-http-transport.js +1 -1
  21. package/dist/auto-ui/streamable-http-transport.js.map +1 -1
  22. package/dist/beam.bundle.js +81 -83
  23. package/dist/beam.bundle.js.map +3 -3
  24. package/dist/cli/commands/info.d.ts.map +1 -1
  25. package/dist/cli/commands/info.js +3 -1
  26. package/dist/cli/commands/info.js.map +1 -1
  27. package/dist/cli/commands/ps.d.ts +2 -4
  28. package/dist/cli/commands/ps.d.ts.map +1 -1
  29. package/dist/cli/commands/ps.js +5 -11
  30. package/dist/cli/commands/ps.js.map +1 -1
  31. package/dist/cli-alias.js +1 -0
  32. package/dist/cli-alias.js.map +1 -1
  33. package/dist/daemon/client.d.ts.map +1 -1
  34. package/dist/daemon/client.js +31 -19
  35. package/dist/daemon/client.js.map +1 -1
  36. package/dist/daemon/manager.d.ts.map +1 -1
  37. package/dist/daemon/manager.js +9 -0
  38. package/dist/daemon/manager.js.map +1 -1
  39. package/dist/daemon/registry-keys.d.ts +6 -0
  40. package/dist/daemon/registry-keys.d.ts.map +1 -1
  41. package/dist/daemon/registry-keys.js +9 -0
  42. package/dist/daemon/registry-keys.js.map +1 -1
  43. package/dist/daemon/server.js +154 -30
  44. package/dist/daemon/server.js.map +1 -1
  45. package/dist/deploy/cloudflare.js.map +1 -1
  46. package/dist/formats/format-registry.d.ts +32 -0
  47. package/dist/formats/format-registry.d.ts.map +1 -0
  48. package/dist/formats/format-registry.js +67 -0
  49. package/dist/formats/format-registry.js.map +1 -0
  50. package/dist/loader.d.ts +6 -0
  51. package/dist/loader.d.ts.map +1 -1
  52. package/dist/loader.js +121 -30
  53. package/dist/loader.js.map +1 -1
  54. package/dist/marketplace-manager.js +1 -1
  55. package/dist/marketplace-manager.js.map +1 -1
  56. package/dist/photon-cli-runner.d.ts.map +1 -1
  57. package/dist/photon-cli-runner.js +1 -0
  58. package/dist/photon-cli-runner.js.map +1 -1
  59. package/dist/serv/middleware/tenant.d.ts.map +1 -1
  60. package/dist/serv/middleware/tenant.js +1 -0
  61. package/dist/serv/middleware/tenant.js.map +1 -1
  62. package/dist/server.d.ts +10 -0
  63. package/dist/server.d.ts.map +1 -1
  64. package/dist/server.js +158 -153
  65. package/dist/server.js.map +1 -1
  66. package/dist/settings-persistence.d.ts +10 -0
  67. package/dist/settings-persistence.d.ts.map +1 -1
  68. package/dist/settings-persistence.js +25 -4
  69. package/dist/settings-persistence.js.map +1 -1
  70. package/dist/shared/audit.d.ts.map +1 -1
  71. package/dist/shared/audit.js +2 -1
  72. package/dist/shared/audit.js.map +1 -1
  73. package/dist/shared/identity.d.ts +50 -0
  74. package/dist/shared/identity.d.ts.map +1 -0
  75. package/dist/shared/identity.js +61 -0
  76. package/dist/shared/identity.js.map +1 -0
  77. package/dist/shared/memory-sqlite.d.ts.map +1 -1
  78. package/dist/shared/memory-sqlite.js +1 -0
  79. package/dist/shared/memory-sqlite.js.map +1 -1
  80. package/dist/shared/security.d.ts.map +1 -1
  81. package/dist/shared/security.js +7 -1
  82. package/dist/shared/security.js.map +1 -1
  83. package/dist/shared-utils.d.ts.map +1 -1
  84. package/dist/shared-utils.js +2 -2
  85. package/dist/shared-utils.js.map +1 -1
  86. package/dist/tasks/store.d.ts.map +1 -1
  87. package/dist/tasks/store.js +2 -1
  88. package/dist/tasks/store.js.map +1 -1
  89. package/dist/telemetry/context.d.ts.map +1 -1
  90. package/dist/telemetry/context.js +8 -2
  91. package/dist/telemetry/context.js.map +1 -1
  92. package/dist/types/server-types.d.ts +12 -0
  93. package/dist/types/server-types.d.ts.map +1 -1
  94. package/dist/version-notify.d.ts.map +1 -1
  95. package/dist/version-notify.js +2 -1
  96. package/dist/version-notify.js.map +1 -1
  97. package/package.json +4 -3
  98. package/templates/cloudflare/worker.ts.template +182 -4
  99. package/dist/photons/canvas/ui/canvas.photon.html +0 -1493
  100. package/dist/photons/canvas.photon.d.ts +0 -400
  101. package/dist/photons/canvas.photon.d.ts.map +0 -1
  102. package/dist/photons/canvas.photon.js +0 -662
  103. package/dist/photons/canvas.photon.js.map +0 -1
  104. package/dist/photons/canvas.photon.ts +0 -814
  105. package/dist/photons/ui/canvas.photon.html +0 -624
@@ -32902,7 +32902,7 @@ var MCPClientService = class {
32902
32902
  async discoverAuthServer() {
32903
32903
  if (!this._resourceMetadataUrl) return null;
32904
32904
  try {
32905
- const res = await fetch(this._resourceMetadataUrl);
32905
+ const res = await fetch(this._resourceMetadataUrl, { signal: AbortSignal.timeout(5e3) });
32906
32906
  if (!res.ok) return null;
32907
32907
  const prm = await res.json();
32908
32908
  return {
@@ -34698,10 +34698,10 @@ var BeamApp = class extends i4 {
34698
34698
  );
34699
34699
  };
34700
34700
  // Maker instance method handlers - operate on the current photon
34701
- this._handleRenamePhoton = () => {
34701
+ this._handleRenamePhoton = async () => {
34702
34702
  this._closeSettingsMenu();
34703
34703
  const currentName = this._selectedPhoton?.name || "";
34704
- const newName = prompt(`Enter new name for "${currentName}":`, currentName);
34704
+ const newName = await promptElicit(`Enter new name for "${currentName}":`, currentName);
34705
34705
  if (newName && newName !== currentName) {
34706
34706
  void this._invokeMakerMethod("rename", { name: newName });
34707
34707
  }
@@ -35449,7 +35449,7 @@ var BeamApp = class extends i4 {
35449
35449
  this._toggleVerboseLogging();
35450
35450
  break;
35451
35451
  case "rename":
35452
- this._handleRenamePhoton();
35452
+ void this._handleRenamePhoton();
35453
35453
  break;
35454
35454
  case "view-source":
35455
35455
  void this._handleViewSource();
@@ -35569,13 +35569,13 @@ var BeamApp = class extends i4 {
35569
35569
  }
35570
35570
  }
35571
35571
  };
35572
- this._handlePromptSelect = async (prompt2) => {
35573
- this._selectedPrompt = prompt2;
35572
+ this._handlePromptSelect = async (prompt) => {
35573
+ this._selectedPrompt = prompt;
35574
35574
  this._promptArguments = {};
35575
35575
  this._renderedPrompt = "";
35576
35576
  if (this._mcpReady && this._selectedPhoton) {
35577
35577
  try {
35578
- const uri = `prompt://${this._selectedPhoton.name}/${prompt2.id}`;
35578
+ const uri = `prompt://${this._selectedPhoton.name}/${prompt.id}`;
35579
35579
  const content2 = await mcpClient.readResource(uri);
35580
35580
  if (content2?.text) {
35581
35581
  this._selectedPrompt = {
@@ -35583,7 +35583,7 @@ var BeamApp = class extends i4 {
35583
35583
  content: content2.text,
35584
35584
  renderedContent: content2.text,
35585
35585
  variables: this._extractVariables(content2.text),
35586
- description: prompt2.description
35586
+ description: prompt.description
35587
35587
  };
35588
35588
  for (const v2 of this._selectedPrompt.variables) {
35589
35589
  this._promptArguments[v2] = "";
@@ -35709,7 +35709,8 @@ var BeamApp = class extends i4 {
35709
35709
  const res = await fetch("/api/create-photon", {
35710
35710
  method: "POST",
35711
35711
  headers: { "Content-Type": "application/json" },
35712
- body: JSON.stringify({ filename, template })
35712
+ body: JSON.stringify({ filename, template }),
35713
+ signal: AbortSignal.timeout(1e4)
35713
35714
  });
35714
35715
  if (!res.ok) {
35715
35716
  const err = await res.json().catch(() => ({ error: "Failed to create photon" }));
@@ -39579,7 +39580,7 @@ ${photon.errorMessage || "Unknown error"}</pre
39579
39580
  navigator.clipboard.writeText(shareUrl).then(() => {
39580
39581
  showToast("Share link copied to clipboard", "success");
39581
39582
  }).catch(() => {
39582
- prompt("Copy this link to share:", shareUrl);
39583
+ void promptElicit("Copy this link to share:", shareUrl);
39583
39584
  });
39584
39585
  }
39585
39586
  _applyOklchTheme(config3) {
@@ -39835,8 +39836,8 @@ ${photon.errorMessage || "Unknown error"}</pre
39835
39836
  if (photon.prompts && photon.prompts.length > 0) {
39836
39837
  lines.push("## Prompts");
39837
39838
  lines.push("");
39838
- for (const prompt2 of photon.prompts) {
39839
- lines.push(`- **${prompt2.name}**: ${prompt2.description || "No description"}`);
39839
+ for (const prompt of photon.prompts) {
39840
+ lines.push(`- **${prompt.name}**: ${prompt.description || "No description"}`);
39840
39841
  }
39841
39842
  lines.push("");
39842
39843
  }
@@ -40241,20 +40242,20 @@ ${photon.errorMessage || "Unknown error"}</pre
40241
40242
  </h3>
40242
40243
  <div class="cards-grid">
40243
40244
  ${prompts2.map(
40244
- (prompt2) => b2`
40245
+ (prompt) => b2`
40245
40246
  <button
40246
40247
  type="button"
40247
40248
  class="asset-card glass-panel"
40248
- @click=${() => this._handlePromptSelect(prompt2)}
40249
+ @click=${() => this._handlePromptSelect(prompt)}
40249
40250
  >
40250
40251
  <div class="asset-header">
40251
40252
  <div class="asset-icon prompt">${prompts}</div>
40252
- <span class="asset-name">${prompt2.id}</span>
40253
+ <span class="asset-name">${prompt.id}</span>
40253
40254
  </div>
40254
40255
  <div class="asset-desc">
40255
- ${prompt2.description || "Click to view and customize this prompt"}
40256
+ ${prompt.description || "Click to view and customize this prompt"}
40256
40257
  </div>
40257
- <div class="asset-meta">${prompt2.path}</div>
40258
+ <div class="asset-meta">${prompt.path}</div>
40258
40259
  </button>
40259
40260
  `
40260
40261
  )}
@@ -45009,7 +45010,7 @@ var MethodCard = class extends i4 {
45009
45010
  this._handleDocumentClick = (e8) => {
45010
45011
  if (this._editingIcon) {
45011
45012
  const path = e8.composedPath();
45012
- const picker = this.shadowRoot?.querySelector(".emoji-picker");
45013
+ const picker = this.shadowRoot?.querySelector(".icon-picker");
45013
45014
  const icon2 = this.shadowRoot?.querySelector(".method-icon");
45014
45015
  if (picker && !path.includes(picker) && !path.includes(icon2)) {
45015
45016
  this._editingIcon = false;
@@ -45101,7 +45102,7 @@ var MethodCard = class extends i4 {
45101
45102
  ${emitsEvent ? b2`<span
45102
45103
  class="badge event"
45103
45104
  title="Automatically emits event: ${this.method.eventName}"
45104
- >📡 Event</span
45105
+ >Event</span
45105
45106
  >` : ""}
45106
45107
  ${this.method.audience ? b2`<span
45107
45108
  class="badge audience"
@@ -45157,7 +45158,7 @@ var MethodCard = class extends i4 {
45157
45158
  ${requiresInput ? formInput : play}
45158
45159
  </div>`;
45159
45160
  })()}
45160
- ${this._editingIcon ? this._renderEmojiPicker() : ""}
45161
+ ${this._editingIcon ? this._renderIconPicker() : ""}
45161
45162
  </div>
45162
45163
  `;
45163
45164
  }
@@ -45177,53 +45178,53 @@ var MethodCard = class extends i4 {
45177
45178
  _requiresInput() {
45178
45179
  return methodRequiresInput(this.method);
45179
45180
  }
45180
- _renderEmojiPicker() {
45181
- const emojis = [
45182
- "\u{1F4E5}",
45183
- "\u{1F4E4}",
45184
- "\u{1F50D}",
45185
- "\u{1F50E}",
45186
- "\u{1F4CA}",
45187
- "\u{1F4C8}",
45188
- "\u{1F4BE}",
45189
- "\u{1F4C1}",
45190
- "\u{1F4DD}",
45191
- "\u270F\uFE0F",
45192
- "\u{1F5D1}\uFE0F",
45193
- "\u2795",
45194
- "\u{1F504}",
45195
- "\u26A1",
45196
- "\u{1F527}",
45197
- "\u2699\uFE0F",
45198
- "\u{1F6E0}\uFE0F",
45199
- "\u{1F528}",
45200
- "\u{1F512}",
45201
- "\u{1F513}",
45202
- "\u{1F511}",
45203
- "\u{1F6E1}\uFE0F",
45204
- "\u{1F464}",
45205
- "\u{1F465}",
45206
- "\u{1F4E7}",
45207
- "\u{1F4AC}",
45208
- "\u{1F514}",
45209
- "\u{1F4E3}",
45210
- "\u{1F310}",
45211
- "\u{1F517}",
45212
- "\u2705",
45213
- "\u274C",
45214
- "\u2B50",
45215
- "\u{1F3AF}",
45216
- "\u{1F4A1}",
45217
- "\u{1F680}"
45181
+ _renderIconPicker() {
45182
+ const symbols = [
45183
+ "\u25C6",
45184
+ "\u25C7",
45185
+ "\u25CF",
45186
+ "\u25CB",
45187
+ "\u25A0",
45188
+ "\u25A1",
45189
+ "\u25B2",
45190
+ "\u25B3",
45191
+ "\u25B8",
45192
+ "\u25B9",
45193
+ "\u2605",
45194
+ "\u2606",
45195
+ "\u2713",
45196
+ "\u2717",
45197
+ "\u2192",
45198
+ "\u2190",
45199
+ "\u2191",
45200
+ "\u2193",
45201
+ "\u21BB",
45202
+ "\u2295",
45203
+ "\u2296",
45204
+ "\u2297",
45205
+ "\xA7",
45206
+ "\xB6",
45207
+ "\u2211",
45208
+ "\u2206",
45209
+ "\u03A9",
45210
+ "\u03C0",
45211
+ "\u03BB",
45212
+ "\u0192",
45213
+ "#",
45214
+ "@",
45215
+ "&",
45216
+ "%",
45217
+ "+",
45218
+ "~"
45218
45219
  ];
45219
45220
  return b2`
45220
45221
  <div
45221
- class="emoji-picker"
45222
+ class="icon-picker"
45222
45223
  style="top:${this._pickerPos.top}px;left:${this._pickerPos.left}px"
45223
45224
  @click=${(e8) => e8.stopPropagation()}
45224
45225
  >
45225
- ${emojis.map(
45226
- (emoji3) => b2` <button @click=${() => this._selectIcon(emoji3)}>${emoji3}</button> `
45226
+ ${symbols.map(
45227
+ (symbol2) => b2` <button @click=${() => this._selectIcon(symbol2)}>${symbol2}</button> `
45227
45228
  )}
45228
45229
  ${this.method.icon ? b2`
45229
45230
  <button class="remove-btn" @click=${() => this._selectIcon("")}>Remove icon</button>
@@ -45673,7 +45674,7 @@ MethodCard.styles = [
45673
45674
  }
45674
45675
 
45675
45676
  /* Emoji Picker */
45676
- .emoji-picker {
45677
+ .icon-picker {
45677
45678
  position: fixed;
45678
45679
  background: var(--bg-panel);
45679
45680
  border: 1px solid var(--border-glass);
@@ -45687,7 +45688,7 @@ MethodCard.styles = [
45687
45688
  max-width: 200px;
45688
45689
  }
45689
45690
 
45690
- .emoji-picker button {
45691
+ .icon-picker button {
45691
45692
  background: none;
45692
45693
  border: none;
45693
45694
  font-size: var(--text-xl);
@@ -45699,12 +45700,12 @@ MethodCard.styles = [
45699
45700
  transform 0.1s ease;
45700
45701
  }
45701
45702
 
45702
- .emoji-picker button:hover {
45703
+ .icon-picker button:hover {
45703
45704
  background: var(--bg-glass);
45704
45705
  transform: scale(1.15);
45705
45706
  }
45706
45707
 
45707
- .emoji-picker .remove-btn {
45708
+ .icon-picker .remove-btn {
45708
45709
  font-size: var(--text-xs);
45709
45710
  color: var(--t-muted);
45710
45711
  grid-column: span 6;
@@ -45713,7 +45714,7 @@ MethodCard.styles = [
45713
45714
  border-top: 1px solid var(--border-glass);
45714
45715
  }
45715
45716
 
45716
- .emoji-picker .remove-btn:hover {
45717
+ .icon-picker .remove-btn:hover {
45717
45718
  color: var(--color-error);
45718
45719
  background: var(--color-error-bg);
45719
45720
  }
@@ -45736,7 +45737,7 @@ MethodCard.styles = [
45736
45737
  opacity: 0.4;
45737
45738
  }
45738
45739
 
45739
- .emoji-picker {
45740
+ .icon-picker {
45740
45741
  position: fixed;
45741
45742
  top: 50%;
45742
45743
  left: 50%;
@@ -50748,10 +50749,12 @@ ${code}</pre>`;
50748
50749
  try {
50749
50750
  const photonName = this.photonName || "";
50750
50751
  const res = await fetch(
50751
- `/api/platform-bridge?photon=${encodeURIComponent(photonName)}&method=&theme=${encodeURIComponent(this.theme)}`
50752
+ `/api/platform-bridge?photon=${encodeURIComponent(photonName)}&method=&theme=${encodeURIComponent(this.theme)}`,
50753
+ { signal: AbortSignal.timeout(1e4) }
50752
50754
  );
50753
50755
  this._slidesBridgeScript = await res.text();
50754
- } catch {
50756
+ } catch (e8) {
50757
+ console.warn("[result-viewer] Failed to load platform bridge script:", e8);
50755
50758
  this._slidesBridgeScript = "";
50756
50759
  }
50757
50760
  this._slidesBridgeLoading = false;
@@ -52973,15 +52976,19 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
52973
52976
  } else {
52974
52977
  window._photonRenderersLoading = true;
52975
52978
  window._photonRenderersQueue = [doRender];
52976
- fetch("/api/photon-renderers.js").then((r7) => r7.text()).then((code) => {
52979
+ fetch("/api/photon-renderers.js", { signal: AbortSignal.timeout(1e4) }).then((r7) => r7.text()).then((code) => {
52977
52980
  try {
52978
52981
  (0, eval)(code);
52979
- } catch {
52982
+ } catch (e8) {
52983
+ console.warn("[result-viewer] Photon renderers eval failed:", e8);
52980
52984
  }
52985
+ window._photonRenderersLoading = false;
52981
52986
  const queue = window._photonRenderersQueue || [];
52982
52987
  window._photonRenderersQueue = [];
52983
52988
  queue.forEach((fn2) => fn2());
52984
- }).catch(() => {
52989
+ }).catch((e8) => {
52990
+ console.warn("[result-viewer] Failed to load photon renderers:", e8);
52991
+ window._photonRenderersLoading = false;
52985
52992
  const queue = window._photonRenderersQueue || [];
52986
52993
  window._photonRenderersQueue = [];
52987
52994
  queue.forEach((fn2) => fn2());
@@ -104639,22 +104646,13 @@ var ElicitationModal = class extends i4 {
104639
104646
  }
104640
104647
  }
104641
104648
  _renderOAuth() {
104642
- const providerIcons = {
104643
- google: "\u{1F535}",
104644
- github: "\u26AB",
104645
- microsoft: "\u{1F7E6}",
104646
- slack: "\u{1F49C}",
104647
- notion: "\u2B1B",
104648
- default: "\u{1F510}"
104649
- };
104650
104649
  const provider = this.data?.provider || "OAuth";
104651
- const icon2 = providerIcons[provider.toLowerCase()] || providerIcons.default;
104652
104650
  const scopes = (this.data?.scopes || []).join(", ");
104653
104651
  const customMessage = this.data?.message;
104654
104652
  const buttonLabel = customMessage ? "Open" : `Authorize ${provider}`;
104655
104653
  return b2`
104656
104654
  <div class="oauth-content">
104657
- <div class="oauth-icon">${icon2}</div>
104655
+ <div class="oauth-icon">${sizedIcon(shieldCheck, 40)}</div>
104658
104656
  <p class="oauth-message">
104659
104657
  ${customMessage || `Authorization is required to access ${provider}.`}
104660
104658
  </p>
@@ -109628,7 +109626,7 @@ MarkdownInput = __decorateClass([
109628
109626
  ], MarkdownInput);
109629
109627
 
109630
109628
  // src/auto-ui/frontend/main.ts
109631
- console.log("\u2728 Beam UI Initialized");
109629
+ console.log("Beam UI initialized");
109632
109630
  /*! Bundled license information:
109633
109631
 
109634
109632
  @lit/reactive-element/css-tag.js: