@portel/photon 1.18.0 → 1.19.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.d.ts.map +1 -1
- package/dist/auto-ui/beam.js +14 -4
- package/dist/auto-ui/beam.js.map +1 -1
- package/dist/beam-form.bundle.js +5 -3
- package/dist/beam-form.bundle.js.map +2 -2
- package/dist/beam.bundle.js +686 -30
- package/dist/beam.bundle.js.map +3 -3
- package/dist/claude-code-plugin.js +1 -1
- package/dist/cli/commands/beam.d.ts.map +1 -1
- package/dist/cli/commands/beam.js +8 -2
- package/dist/cli/commands/beam.js.map +1 -1
- package/dist/cli/commands/changelog.d.ts +9 -0
- package/dist/cli/commands/changelog.d.ts.map +1 -0
- package/dist/cli/commands/changelog.js +133 -0
- package/dist/cli/commands/changelog.js.map +1 -0
- package/dist/cli/commands/maker.d.ts.map +1 -1
- package/dist/cli/commands/maker.js +23 -2
- package/dist/cli/commands/maker.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +53 -0
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/package.d.ts.map +1 -1
- package/dist/cli/commands/package.js +18 -2
- package/dist/cli/commands/package.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +1 -0
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/update.d.ts +3 -2
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +50 -43
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +16 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli-alias.js +1 -1
- package/dist/cli-alias.js.map +1 -1
- package/dist/context-store.d.ts +23 -33
- package/dist/context-store.d.ts.map +1 -1
- package/dist/context-store.js +147 -97
- package/dist/context-store.js.map +1 -1
- package/dist/context.d.ts +15 -10
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +37 -13
- package/dist/context.js.map +1 -1
- package/dist/daemon/server.js +4 -2
- package/dist/daemon/server.js.map +1 -1
- package/dist/data-migration.d.ts +27 -0
- package/dist/data-migration.d.ts.map +1 -0
- package/dist/data-migration.js +307 -0
- package/dist/data-migration.js.map +1 -0
- 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 +10 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +97 -12
- package/dist/loader.js.map +1 -1
- package/dist/marketplace-manager.d.ts.map +1 -1
- package/dist/marketplace-manager.js +25 -5
- package/dist/marketplace-manager.js.map +1 -1
- package/dist/photon-cli-runner.d.ts.map +1 -1
- package/dist/photon-cli-runner.js +47 -21
- package/dist/photon-cli-runner.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 +6 -0
- package/dist/photon-doc-extractor.js.map +1 -1
- package/dist/readme-syncer.d.ts.map +1 -1
- package/dist/readme-syncer.js +6 -1
- package/dist/readme-syncer.js.map +1 -1
- package/dist/server.d.ts +40 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +143 -28
- package/dist/server.js.map +1 -1
- package/dist/shared/audit.js +4 -4
- package/dist/shared/audit.js.map +1 -1
- package/dist/tasks/store.d.ts.map +1 -1
- package/dist/tasks/store.js +6 -2
- package/dist/tasks/store.js.map +1 -1
- package/dist/version-notify.d.ts +27 -0
- package/dist/version-notify.d.ts.map +1 -0
- package/dist/version-notify.js +142 -0
- package/dist/version-notify.js.map +1 -0
- package/package.json +2 -2
- package/dist/auto-ui/bridge/openai-shim.d.ts +0 -20
- package/dist/auto-ui/bridge/openai-shim.d.ts.map +0 -1
- package/dist/auto-ui/bridge/openai-shim.js +0 -231
- package/dist/auto-ui/bridge/openai-shim.js.map +0 -1
- package/dist/auto-ui/bridge/photon-app.d.ts +0 -162
- package/dist/auto-ui/bridge/photon-app.d.ts.map +0 -1
- package/dist/auto-ui/bridge/photon-app.js +0 -460
- package/dist/auto-ui/bridge/photon-app.js.map +0 -1
- package/dist/auto-ui/daemon-tools.d.ts +0 -45
- package/dist/auto-ui/daemon-tools.d.ts.map +0 -1
- package/dist/auto-ui/daemon-tools.js +0 -581
- package/dist/auto-ui/daemon-tools.js.map +0 -1
- package/dist/auto-ui/design-system/index.d.ts +0 -21
- package/dist/auto-ui/design-system/index.d.ts.map +0 -1
- package/dist/auto-ui/design-system/index.js +0 -27
- package/dist/auto-ui/design-system/index.js.map +0 -1
- package/dist/auto-ui/design-system/transaction-ui.d.ts +0 -70
- package/dist/auto-ui/design-system/transaction-ui.d.ts.map +0 -1
- package/dist/auto-ui/design-system/transaction-ui.js +0 -982
- package/dist/auto-ui/design-system/transaction-ui.js.map +0 -1
- package/dist/auto-ui/playground-server.d.ts +0 -7
- package/dist/auto-ui/playground-server.d.ts.map +0 -1
- package/dist/auto-ui/playground-server.js +0 -840
- package/dist/auto-ui/playground-server.js.map +0 -1
- package/dist/auto-ui/rendering/components.d.ts +0 -29
- package/dist/auto-ui/rendering/components.d.ts.map +0 -1
- package/dist/auto-ui/rendering/components.js +0 -1341
- package/dist/auto-ui/rendering/components.js.map +0 -1
- package/dist/auto-ui/rendering/field-analyzer.d.ts +0 -104
- package/dist/auto-ui/rendering/field-analyzer.d.ts.map +0 -1
- package/dist/auto-ui/rendering/field-analyzer.js +0 -447
- package/dist/auto-ui/rendering/field-analyzer.js.map +0 -1
- package/dist/auto-ui/rendering/field-renderers.d.ts +0 -64
- package/dist/auto-ui/rendering/field-renderers.d.ts.map +0 -1
- package/dist/auto-ui/rendering/field-renderers.js +0 -317
- package/dist/auto-ui/rendering/field-renderers.js.map +0 -1
- package/dist/auto-ui/rendering/index.d.ts +0 -28
- package/dist/auto-ui/rendering/index.d.ts.map +0 -1
- package/dist/auto-ui/rendering/index.js +0 -60
- package/dist/auto-ui/rendering/index.js.map +0 -1
- package/dist/auto-ui/rendering/layout-selector.d.ts +0 -60
- package/dist/auto-ui/rendering/layout-selector.d.ts.map +0 -1
- package/dist/auto-ui/rendering/layout-selector.js +0 -476
- package/dist/auto-ui/rendering/layout-selector.js.map +0 -1
- package/dist/markdown-utils.d.ts +0 -8
- package/dist/markdown-utils.d.ts.map +0 -1
- package/dist/markdown-utils.js +0 -64
- package/dist/markdown-utils.js.map +0 -1
- package/dist/mcp-client.d.ts +0 -9
- package/dist/mcp-client.d.ts.map +0 -1
- package/dist/mcp-client.js +0 -11
- package/dist/mcp-client.js.map +0 -1
- package/dist/mcp-elicitation.d.ts +0 -32
- package/dist/mcp-elicitation.d.ts.map +0 -1
- package/dist/mcp-elicitation.js +0 -26
- package/dist/mcp-elicitation.js.map +0 -1
- package/dist/photons/builder-compass.photon.d.ts +0 -167
- package/dist/photons/builder-compass.photon.d.ts.map +0 -1
- package/dist/photons/builder-compass.photon.js +0 -816
- package/dist/photons/builder-compass.photon.js.map +0 -1
- package/dist/photons/builder-compass.photon.ts +0 -1129
- package/dist/photons/docs/ui/docs.html +0 -441
- package/dist/photons/docs.photon.d.ts +0 -237
- package/dist/photons/docs.photon.d.ts.map +0 -1
- package/dist/photons/docs.photon.js +0 -483
- package/dist/photons/docs.photon.js.map +0 -1
- package/dist/photons/docs.photon.ts +0 -536
- package/dist/photons/slides.photon.d.ts +0 -212
- package/dist/photons/slides.photon.d.ts.map +0 -1
- package/dist/photons/slides.photon.js +0 -355
- package/dist/photons/slides.photon.js.map +0 -1
- package/dist/photons/slides.photon.ts +0 -370
- package/dist/photons/spreadsheet/ui/spreadsheet.html +0 -779
- package/dist/photons/spreadsheet.photon.d.ts +0 -554
- package/dist/photons/spreadsheet.photon.d.ts.map +0 -1
- package/dist/photons/spreadsheet.photon.js +0 -1050
- package/dist/photons/spreadsheet.photon.js.map +0 -1
- package/dist/photons/spreadsheet.photon.ts +0 -1239
- package/dist/photons/ui/builder-compass.html +0 -1199
- package/dist/photons/ui/builder-compass.photon.html +0 -380
- package/dist/security-scanner.d.ts +0 -52
- package/dist/security-scanner.d.ts.map +0 -1
- package/dist/security-scanner.js +0 -181
- package/dist/security-scanner.js.map +0 -1
- package/dist/shared/performance.d.ts +0 -65
- package/dist/shared/performance.d.ts.map +0 -1
- package/dist/shared/performance.js +0 -136
- package/dist/shared/performance.js.map +0 -1
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version Upgrade Notification
|
|
3
|
+
*
|
|
4
|
+
* Checks npm registry for newer versions and displays an unobtrusive notice
|
|
5
|
+
* with changelog highlights. Non-blocking — spawns a detached child process
|
|
6
|
+
* on cache miss so CLI startup is never delayed.
|
|
7
|
+
*
|
|
8
|
+
* Cache: .data/.version-check.json (24h TTL)
|
|
9
|
+
* Notice: shown once per new version (tracks notifiedVersion)
|
|
10
|
+
*/
|
|
11
|
+
import * as fs from 'fs';
|
|
12
|
+
import * as path from 'path';
|
|
13
|
+
import { spawn } from 'child_process';
|
|
14
|
+
import { getDataRoot } from '@portel/photon-core';
|
|
15
|
+
import { PHOTON_VERSION } from './version.js';
|
|
16
|
+
const CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
17
|
+
function getCachePath() {
|
|
18
|
+
return path.join(getDataRoot(), '.version-check.json');
|
|
19
|
+
}
|
|
20
|
+
function readCache() {
|
|
21
|
+
try {
|
|
22
|
+
const cachePath = getCachePath();
|
|
23
|
+
if (!fs.existsSync(cachePath))
|
|
24
|
+
return null;
|
|
25
|
+
return JSON.parse(fs.readFileSync(cachePath, 'utf-8'));
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function writeCache(cache) {
|
|
32
|
+
try {
|
|
33
|
+
const cachePath = getCachePath();
|
|
34
|
+
fs.mkdirSync(path.dirname(cachePath), { recursive: true });
|
|
35
|
+
fs.writeFileSync(cachePath, JSON.stringify(cache, null, 2));
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Best effort
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function isStale(cache) {
|
|
42
|
+
const checkedAt = new Date(cache.checkedAt).getTime();
|
|
43
|
+
return Date.now() - checkedAt > CACHE_TTL_MS;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Compare two semver strings.
|
|
47
|
+
* Returns 1 if a > b, -1 if a < b, 0 if equal.
|
|
48
|
+
*/
|
|
49
|
+
function compareSemver(a, b) {
|
|
50
|
+
const pa = a.split('.').map(Number);
|
|
51
|
+
const pb = b.split('.').map(Number);
|
|
52
|
+
for (let i = 0; i < 3; i++) {
|
|
53
|
+
if ((pa[i] || 0) > (pb[i] || 0))
|
|
54
|
+
return 1;
|
|
55
|
+
if ((pa[i] || 0) < (pb[i] || 0))
|
|
56
|
+
return -1;
|
|
57
|
+
}
|
|
58
|
+
return 0;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Spawn a detached background process that fetches the latest version
|
|
62
|
+
* and changelog, then writes the cache file. The parent process does
|
|
63
|
+
* not wait for this — CLI exits immediately.
|
|
64
|
+
*/
|
|
65
|
+
export function refreshUpdateCache() {
|
|
66
|
+
const cache = readCache();
|
|
67
|
+
if (cache && !isStale(cache))
|
|
68
|
+
return;
|
|
69
|
+
const cachePath = getCachePath();
|
|
70
|
+
const script = `
|
|
71
|
+
const fs = require('fs');
|
|
72
|
+
const { execSync } = require('child_process');
|
|
73
|
+
|
|
74
|
+
let latest = null;
|
|
75
|
+
try {
|
|
76
|
+
latest = execSync('npm view @portel/photon version', {
|
|
77
|
+
encoding: 'utf-8', timeout: 10000,
|
|
78
|
+
stdio: ['pipe', 'pipe', 'pipe']
|
|
79
|
+
}).trim();
|
|
80
|
+
} catch { process.exit(0); }
|
|
81
|
+
|
|
82
|
+
if (!latest) process.exit(0);
|
|
83
|
+
|
|
84
|
+
const existing = (() => {
|
|
85
|
+
try { return JSON.parse(fs.readFileSync(${JSON.stringify(cachePath)}, 'utf-8')); }
|
|
86
|
+
catch { return {}; }
|
|
87
|
+
})();
|
|
88
|
+
const data = {
|
|
89
|
+
latest,
|
|
90
|
+
checkedAt: new Date().toISOString(),
|
|
91
|
+
notifiedVersion: existing.notifiedVersion || undefined,
|
|
92
|
+
};
|
|
93
|
+
try {
|
|
94
|
+
fs.mkdirSync(require('path').dirname(${JSON.stringify(cachePath)}), { recursive: true });
|
|
95
|
+
fs.writeFileSync(${JSON.stringify(cachePath)}, JSON.stringify(data, null, 2));
|
|
96
|
+
} catch {}
|
|
97
|
+
`;
|
|
98
|
+
// Spawn detached — parent doesn't wait
|
|
99
|
+
const child = spawn(process.execPath, ['-e', script], {
|
|
100
|
+
detached: true,
|
|
101
|
+
stdio: 'ignore',
|
|
102
|
+
});
|
|
103
|
+
child.unref();
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Show update notice to stderr if a newer version is available.
|
|
107
|
+
*
|
|
108
|
+
* Returns silently if:
|
|
109
|
+
* - No cache exists (background refresh hasn't completed yet)
|
|
110
|
+
* - Current version is up to date
|
|
111
|
+
* - Already notified for this version
|
|
112
|
+
* - Running in MCP STDIO mode
|
|
113
|
+
*/
|
|
114
|
+
export function showUpdateNotice() {
|
|
115
|
+
if (process.env.PHOTON_TRANSPORT === 'stdio')
|
|
116
|
+
return;
|
|
117
|
+
const cache = readCache();
|
|
118
|
+
if (!cache)
|
|
119
|
+
return;
|
|
120
|
+
if (compareSemver(cache.latest, PHOTON_VERSION) <= 0)
|
|
121
|
+
return;
|
|
122
|
+
if (cache.notifiedVersion === cache.latest)
|
|
123
|
+
return;
|
|
124
|
+
const current = PHOTON_VERSION;
|
|
125
|
+
const latest = cache.latest;
|
|
126
|
+
const lines = [];
|
|
127
|
+
lines.push(` Update available: ${current} → ${latest}`);
|
|
128
|
+
lines.push(` Update: photon update`);
|
|
129
|
+
lines.push(` What's new: photon changelog`);
|
|
130
|
+
const width = Math.max(...lines.map((l) => l.length)) + 2;
|
|
131
|
+
const pad = (s) => s + ' '.repeat(Math.max(0, width - s.length));
|
|
132
|
+
console.error('');
|
|
133
|
+
console.error(`╭${'─'.repeat(width)}╮`);
|
|
134
|
+
for (const line of lines) {
|
|
135
|
+
console.error(`│${pad(line)}│`);
|
|
136
|
+
}
|
|
137
|
+
console.error(`╰${'─'.repeat(width)}╯`);
|
|
138
|
+
// Mark as notified so we don't show again for this version
|
|
139
|
+
cache.notifiedVersion = cache.latest;
|
|
140
|
+
writeCache(cache);
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=version-notify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-notify.js","sourceRoot":"","sources":["../src/version-notify.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@portel/photon",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.19.0",
|
|
4
4
|
"description": "You focus on the business logic. We'll enable the rest. Build MCP servers and CLI tools in a single TypeScript file.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"@modelcontextprotocol/ext-apps": "^1.0.1",
|
|
113
113
|
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
114
114
|
"@portel/cli": "^1.1.0",
|
|
115
|
-
"@portel/photon-core": "^2.
|
|
115
|
+
"@portel/photon-core": "^2.18.0",
|
|
116
116
|
"boxen": "^8.0.1",
|
|
117
117
|
"chalk": "^5.4.1",
|
|
118
118
|
"chart.js": "^4.5.1",
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OpenAI Apps SDK Compatibility Shim
|
|
3
|
-
*
|
|
4
|
-
* Provides window.openai API that translates to MCP Apps protocol.
|
|
5
|
-
* This allows apps built for ChatGPT to work in Photon hosts.
|
|
6
|
-
*/
|
|
7
|
-
import type { PhotonApp } from './photon-app.js';
|
|
8
|
-
import type { OpenAIAPI } from './types.js';
|
|
9
|
-
/**
|
|
10
|
-
* Generate the OpenAI shim code as inline JavaScript
|
|
11
|
-
*
|
|
12
|
-
* This gets injected into the iframe along with the PhotonApp.
|
|
13
|
-
* It creates a window.openai object that delegates to window.photon.
|
|
14
|
-
*/
|
|
15
|
-
export declare function generateOpenAIShimCode(): string;
|
|
16
|
-
/**
|
|
17
|
-
* Create OpenAI shim wrapper (for use with PhotonApp in browser)
|
|
18
|
-
*/
|
|
19
|
-
export declare function createOpenAIShim(photonApp: PhotonApp): OpenAIAPI;
|
|
20
|
-
//# sourceMappingURL=openai-shim.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-shim.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/bridge/openai-shim.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAkK/C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAoEhE"}
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generate the OpenAI shim code as inline JavaScript
|
|
3
|
-
*
|
|
4
|
-
* This gets injected into the iframe along with the PhotonApp.
|
|
5
|
-
* It creates a window.openai object that delegates to window.photon.
|
|
6
|
-
*/
|
|
7
|
-
export function generateOpenAIShimCode() {
|
|
8
|
-
return `
|
|
9
|
-
// OpenAI Apps SDK Shim - delegates to window.photon
|
|
10
|
-
(function() {
|
|
11
|
-
'use strict';
|
|
12
|
-
|
|
13
|
-
var widgetState = {};
|
|
14
|
-
var pendingCalls = {};
|
|
15
|
-
var callIdCounter = 0;
|
|
16
|
-
|
|
17
|
-
function generateCallId() {
|
|
18
|
-
return 'openai_' + (++callIdCounter) + '_' + Math.random().toString(36).slice(2);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function postToHost(msg) {
|
|
22
|
-
window.parent.postMessage(msg, '*');
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
window.openai = {
|
|
26
|
-
// Context properties - delegate to photon
|
|
27
|
-
get theme() { return window.photon ? window.photon.theme : 'dark'; },
|
|
28
|
-
get displayMode() { return 'inline'; },
|
|
29
|
-
get locale() { return window.photon ? window.photon.locale : 'en-US'; },
|
|
30
|
-
get maxHeight() { return 800; },
|
|
31
|
-
get toolInput() { return window.photon ? window.photon.toolInput : {}; },
|
|
32
|
-
get toolOutput() { return window.photon ? window.photon.toolOutput : null; },
|
|
33
|
-
get widgetState() { return widgetState; },
|
|
34
|
-
get toolResponseMetadata() { return {}; },
|
|
35
|
-
|
|
36
|
-
// Methods
|
|
37
|
-
setWidgetState: function(state) {
|
|
38
|
-
widgetState = state;
|
|
39
|
-
if (window.photon) window.photon.setWidgetState(state);
|
|
40
|
-
},
|
|
41
|
-
|
|
42
|
-
callTool: function(name, args) {
|
|
43
|
-
if (window.photon) return window.photon.invoke(name, args);
|
|
44
|
-
return Promise.reject(new Error('Photon not initialized'));
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
sendFollowUpMessage: function(opts) {
|
|
48
|
-
postToHost({ type: 'photon:follow-up', message: opts.prompt });
|
|
49
|
-
return Promise.resolve();
|
|
50
|
-
},
|
|
51
|
-
|
|
52
|
-
uploadFile: function(file) {
|
|
53
|
-
var callId = generateCallId();
|
|
54
|
-
return new Promise(function(resolve, reject) {
|
|
55
|
-
pendingCalls[callId] = { resolve: resolve, reject: reject };
|
|
56
|
-
|
|
57
|
-
var reader = new FileReader();
|
|
58
|
-
reader.onload = function() {
|
|
59
|
-
postToHost({
|
|
60
|
-
type: 'photon:upload-file',
|
|
61
|
-
callId: callId,
|
|
62
|
-
fileName: file.name,
|
|
63
|
-
fileType: file.type,
|
|
64
|
-
fileSize: file.size,
|
|
65
|
-
data: reader.result
|
|
66
|
-
});
|
|
67
|
-
};
|
|
68
|
-
reader.onerror = function() {
|
|
69
|
-
delete pendingCalls[callId];
|
|
70
|
-
reject(new Error('Failed to read file'));
|
|
71
|
-
};
|
|
72
|
-
reader.readAsDataURL(file);
|
|
73
|
-
|
|
74
|
-
setTimeout(function() {
|
|
75
|
-
if (pendingCalls[callId]) {
|
|
76
|
-
delete pendingCalls[callId];
|
|
77
|
-
reject(new Error('File upload timeout'));
|
|
78
|
-
}
|
|
79
|
-
}, 60000);
|
|
80
|
-
});
|
|
81
|
-
},
|
|
82
|
-
|
|
83
|
-
getFileDownloadUrl: function(opts) {
|
|
84
|
-
var callId = generateCallId();
|
|
85
|
-
return new Promise(function(resolve, reject) {
|
|
86
|
-
pendingCalls[callId] = { resolve: resolve, reject: reject };
|
|
87
|
-
postToHost({
|
|
88
|
-
type: 'photon:get-file-url',
|
|
89
|
-
callId: callId,
|
|
90
|
-
fileId: opts.fileId
|
|
91
|
-
});
|
|
92
|
-
setTimeout(function() {
|
|
93
|
-
if (pendingCalls[callId]) {
|
|
94
|
-
delete pendingCalls[callId];
|
|
95
|
-
reject(new Error('Get file URL timeout'));
|
|
96
|
-
}
|
|
97
|
-
}, 30000);
|
|
98
|
-
});
|
|
99
|
-
},
|
|
100
|
-
|
|
101
|
-
requestDisplayMode: function(mode) {
|
|
102
|
-
postToHost({ type: 'photon:request-display-mode', mode: mode });
|
|
103
|
-
return Promise.resolve();
|
|
104
|
-
},
|
|
105
|
-
|
|
106
|
-
requestModal: function(opts) {
|
|
107
|
-
var callId = generateCallId();
|
|
108
|
-
return new Promise(function(resolve, reject) {
|
|
109
|
-
pendingCalls[callId] = { resolve: resolve, reject: reject };
|
|
110
|
-
postToHost({
|
|
111
|
-
type: 'photon:request-modal',
|
|
112
|
-
callId: callId,
|
|
113
|
-
template: opts.template,
|
|
114
|
-
params: opts.params
|
|
115
|
-
});
|
|
116
|
-
setTimeout(function() {
|
|
117
|
-
if (pendingCalls[callId]) {
|
|
118
|
-
delete pendingCalls[callId];
|
|
119
|
-
reject(new Error('Modal request timeout'));
|
|
120
|
-
}
|
|
121
|
-
}, 300000);
|
|
122
|
-
});
|
|
123
|
-
},
|
|
124
|
-
|
|
125
|
-
notifyIntrinsicHeight: function(height) {
|
|
126
|
-
// Use MCP Apps size notification
|
|
127
|
-
window.parent.postMessage({
|
|
128
|
-
jsonrpc: '2.0',
|
|
129
|
-
method: 'ui/notifications/size-changed',
|
|
130
|
-
params: { height: height }
|
|
131
|
-
}, '*');
|
|
132
|
-
},
|
|
133
|
-
|
|
134
|
-
openExternal: function(opts) {
|
|
135
|
-
window.open(opts.href, '_blank', 'noopener,noreferrer');
|
|
136
|
-
},
|
|
137
|
-
|
|
138
|
-
setOpenInAppUrl: function(opts) {
|
|
139
|
-
postToHost({ type: 'photon:set-open-in-app-url', href: opts.href });
|
|
140
|
-
}
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
// Handle responses from host
|
|
144
|
-
window.addEventListener('message', function(e) {
|
|
145
|
-
var m = e.data;
|
|
146
|
-
if (!m || typeof m !== 'object') return;
|
|
147
|
-
|
|
148
|
-
if (m.type === 'photon:upload-file-response' && pendingCalls[m.callId]) {
|
|
149
|
-
var p = pendingCalls[m.callId];
|
|
150
|
-
delete pendingCalls[m.callId];
|
|
151
|
-
if (m.error) p.reject(new Error(m.error));
|
|
152
|
-
else p.resolve({ fileId: m.fileId });
|
|
153
|
-
}
|
|
154
|
-
if (m.type === 'photon:get-file-url-response' && pendingCalls[m.callId]) {
|
|
155
|
-
var p = pendingCalls[m.callId];
|
|
156
|
-
delete pendingCalls[m.callId];
|
|
157
|
-
if (m.error) p.reject(new Error(m.error));
|
|
158
|
-
else p.resolve(m.url);
|
|
159
|
-
}
|
|
160
|
-
if (m.type === 'photon:request-modal-response' && pendingCalls[m.callId]) {
|
|
161
|
-
var p = pendingCalls[m.callId];
|
|
162
|
-
delete pendingCalls[m.callId];
|
|
163
|
-
if (m.error) p.reject(new Error(m.error));
|
|
164
|
-
else p.resolve(m.result);
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
})();
|
|
168
|
-
`;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Create OpenAI shim wrapper (for use with PhotonApp in browser)
|
|
172
|
-
*/
|
|
173
|
-
export function createOpenAIShim(photonApp) {
|
|
174
|
-
let widgetState = {};
|
|
175
|
-
return {
|
|
176
|
-
get theme() {
|
|
177
|
-
return photonApp.theme;
|
|
178
|
-
},
|
|
179
|
-
get displayMode() {
|
|
180
|
-
return 'inline';
|
|
181
|
-
},
|
|
182
|
-
get locale() {
|
|
183
|
-
return photonApp.locale;
|
|
184
|
-
},
|
|
185
|
-
get maxHeight() {
|
|
186
|
-
return 800;
|
|
187
|
-
},
|
|
188
|
-
get toolInput() {
|
|
189
|
-
return photonApp.toolInput;
|
|
190
|
-
},
|
|
191
|
-
get toolOutput() {
|
|
192
|
-
return photonApp.toolOutput;
|
|
193
|
-
},
|
|
194
|
-
get widgetState() {
|
|
195
|
-
return widgetState;
|
|
196
|
-
},
|
|
197
|
-
setWidgetState(state) {
|
|
198
|
-
widgetState = state;
|
|
199
|
-
photonApp.setWidgetState(state);
|
|
200
|
-
},
|
|
201
|
-
callTool(name, args) {
|
|
202
|
-
return photonApp.invoke(name, args);
|
|
203
|
-
},
|
|
204
|
-
sendFollowUpMessage(_options) {
|
|
205
|
-
// Not supported in Photon
|
|
206
|
-
return Promise.resolve();
|
|
207
|
-
},
|
|
208
|
-
uploadFile(_file) {
|
|
209
|
-
return Promise.reject(new Error('File upload not supported'));
|
|
210
|
-
},
|
|
211
|
-
getFileDownloadUrl(_options) {
|
|
212
|
-
return Promise.reject(new Error('File download not supported'));
|
|
213
|
-
},
|
|
214
|
-
requestDisplayMode(_mode) {
|
|
215
|
-
return Promise.resolve();
|
|
216
|
-
},
|
|
217
|
-
requestModal(_options) {
|
|
218
|
-
return Promise.reject(new Error('Modal not supported'));
|
|
219
|
-
},
|
|
220
|
-
notifyIntrinsicHeight(height) {
|
|
221
|
-
photonApp.sendSizeChanged({ height });
|
|
222
|
-
},
|
|
223
|
-
openExternal(options) {
|
|
224
|
-
window.open(options.href, '_blank', 'noopener,noreferrer');
|
|
225
|
-
},
|
|
226
|
-
setOpenInAppUrl(_options) {
|
|
227
|
-
// Not supported
|
|
228
|
-
},
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
//# sourceMappingURL=openai-shim.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-shim.js","sourceRoot":"","sources":["../../../src/auto-ui/bridge/openai-shim.ts"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgKR,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAoB;IACnD,IAAI,WAAW,GAAY,EAAE,CAAC;IAE9B,OAAO;QACL,IAAI,KAAK;YACP,OAAO,SAAS,CAAC,KAAK,CAAC;QACzB,CAAC;QACD,IAAI,WAAW;YACb,OAAO,QAAiB,CAAC;QAC3B,CAAC;QACD,IAAI,MAAM;YACR,OAAO,SAAS,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,IAAI,SAAS;YACX,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,SAAS;YACX,OAAO,SAAS,CAAC,SAAS,CAAC;QAC7B,CAAC;QACD,IAAI,UAAU;YACZ,OAAO,SAAS,CAAC,UAAU,CAAC;QAC9B,CAAC;QACD,IAAI,WAAW;YACb,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,cAAc,CAAC,KAAc;YAC3B,WAAW,GAAG,KAAK,CAAC;YACpB,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,QAAQ,CAAC,IAAY,EAAE,IAA6B;YAClD,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,mBAAmB,CAAC,QAA4B;YAC9C,0BAA0B;YAC1B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,UAAU,CAAC,KAAW;YACpB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,kBAAkB,CAAC,QAA4B;YAC7C,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,kBAAkB,CAAC,KAAsC;YACvD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,YAAY,CAAC,QAA+C;YAC1D,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,qBAAqB,CAAC,MAAc;YAClC,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,YAAY,CAAC,OAAyB;YACpC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QAC7D,CAAC;QAED,eAAe,CAAC,QAA0B;YACxC,gBAAgB;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PhotonApp - View-side bridge using MCP Apps Extension SDK
|
|
3
|
-
*
|
|
4
|
-
* Extends the standard App class from @modelcontextprotocol/ext-apps
|
|
5
|
-
* to provide the window.photon API for photon UIs.
|
|
6
|
-
*
|
|
7
|
-
* Usage in UI templates:
|
|
8
|
-
* ```javascript
|
|
9
|
-
* const app = new PhotonApp('kanban');
|
|
10
|
-
* await app.connect();
|
|
11
|
-
*
|
|
12
|
-
* app.onResult((data) => renderBoard(data));
|
|
13
|
-
* const boards = await app.invoke('boards');
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
import type { ProgressNotification, StatusNotification, StreamNotification, EmitNotification, SizeConstraints } from './types.js';
|
|
17
|
-
type Listener<T> = (data: T) => void;
|
|
18
|
-
/**
|
|
19
|
-
* PhotonApp class for UI templates
|
|
20
|
-
*
|
|
21
|
-
* This runs in the browser iframe and communicates with the host
|
|
22
|
-
* using the MCP Apps Extension protocol.
|
|
23
|
-
*/
|
|
24
|
-
export declare class PhotonApp {
|
|
25
|
-
private _name;
|
|
26
|
-
private _toolOutput;
|
|
27
|
-
private _toolInput;
|
|
28
|
-
private _widgetState;
|
|
29
|
-
private _theme;
|
|
30
|
-
private _locale;
|
|
31
|
-
private _hostContext;
|
|
32
|
-
private _pendingCalls;
|
|
33
|
-
private _callIdCounter;
|
|
34
|
-
private _resultListeners;
|
|
35
|
-
private _themeListeners;
|
|
36
|
-
private _progressListeners;
|
|
37
|
-
private _statusListeners;
|
|
38
|
-
private _streamListeners;
|
|
39
|
-
private _emitListeners;
|
|
40
|
-
constructor(name: string);
|
|
41
|
-
/**
|
|
42
|
-
* Set up message handler for communication with host
|
|
43
|
-
*/
|
|
44
|
-
private _setupMessageHandler;
|
|
45
|
-
/**
|
|
46
|
-
* Handle JSON-RPC 2.0 messages (MCP Apps protocol)
|
|
47
|
-
*/
|
|
48
|
-
private _handleJsonRpcMessage;
|
|
49
|
-
/**
|
|
50
|
-
* Handle legacy photon: messages for backward compatibility
|
|
51
|
-
*/
|
|
52
|
-
private _handleLegacyMessage;
|
|
53
|
-
/**
|
|
54
|
-
* Handle ui/initialize message
|
|
55
|
-
*/
|
|
56
|
-
private _handleInitialize;
|
|
57
|
-
/**
|
|
58
|
-
* Handle host context changes (theme, etc.)
|
|
59
|
-
*/
|
|
60
|
-
private _handleHostContextChanged;
|
|
61
|
-
/**
|
|
62
|
-
* Apply theme class to document
|
|
63
|
-
*/
|
|
64
|
-
private _applyTheme;
|
|
65
|
-
/**
|
|
66
|
-
* Apply theme CSS variables
|
|
67
|
-
*/
|
|
68
|
-
private _applyThemeTokens;
|
|
69
|
-
/**
|
|
70
|
-
* Post message to host
|
|
71
|
-
*/
|
|
72
|
-
private _postToHost;
|
|
73
|
-
/**
|
|
74
|
-
* Generate unique call ID
|
|
75
|
-
*/
|
|
76
|
-
private _generateCallId;
|
|
77
|
-
/**
|
|
78
|
-
* Extract data from MCP result format
|
|
79
|
-
*/
|
|
80
|
-
private _extractData;
|
|
81
|
-
/**
|
|
82
|
-
* Connect to host and perform MCP Apps handshake
|
|
83
|
-
*/
|
|
84
|
-
connect(): Promise<void>;
|
|
85
|
-
/**
|
|
86
|
-
* Current tool output data
|
|
87
|
-
*/
|
|
88
|
-
get toolOutput(): any;
|
|
89
|
-
/**
|
|
90
|
-
* Current tool input
|
|
91
|
-
*/
|
|
92
|
-
get toolInput(): Record<string, unknown>;
|
|
93
|
-
/**
|
|
94
|
-
* Widget state
|
|
95
|
-
*/
|
|
96
|
-
get widgetState(): unknown;
|
|
97
|
-
/**
|
|
98
|
-
* Set widget state
|
|
99
|
-
*/
|
|
100
|
-
setWidgetState(state: unknown): void;
|
|
101
|
-
/**
|
|
102
|
-
* Current theme
|
|
103
|
-
*/
|
|
104
|
-
get theme(): 'light' | 'dark';
|
|
105
|
-
/**
|
|
106
|
-
* Current locale
|
|
107
|
-
*/
|
|
108
|
-
get locale(): string;
|
|
109
|
-
/**
|
|
110
|
-
* Host context from initialization
|
|
111
|
-
*/
|
|
112
|
-
get hostContext(): any;
|
|
113
|
-
/**
|
|
114
|
-
* Register result handler
|
|
115
|
-
*/
|
|
116
|
-
onResult(cb: Listener<any>): () => void;
|
|
117
|
-
/**
|
|
118
|
-
* Register theme change handler
|
|
119
|
-
*/
|
|
120
|
-
onThemeChange(cb: Listener<'light' | 'dark'>): () => void;
|
|
121
|
-
/**
|
|
122
|
-
* Register progress notification handler
|
|
123
|
-
*/
|
|
124
|
-
onProgress(cb: Listener<ProgressNotification>): () => void;
|
|
125
|
-
/**
|
|
126
|
-
* Register status notification handler
|
|
127
|
-
*/
|
|
128
|
-
onStatus(cb: Listener<StatusNotification>): () => void;
|
|
129
|
-
/**
|
|
130
|
-
* Register stream notification handler
|
|
131
|
-
*/
|
|
132
|
-
onStream(cb: Listener<StreamNotification>): () => void;
|
|
133
|
-
/**
|
|
134
|
-
* Register emit notification handler
|
|
135
|
-
*/
|
|
136
|
-
onEmit(cb: Listener<EmitNotification>): () => void;
|
|
137
|
-
/**
|
|
138
|
-
* Call a tool on the server
|
|
139
|
-
*/
|
|
140
|
-
invoke(name: string, args?: Record<string, unknown>): Promise<any>;
|
|
141
|
-
/**
|
|
142
|
-
* Alias for invoke (compatibility)
|
|
143
|
-
*/
|
|
144
|
-
callTool(name: string, args?: Record<string, unknown>): Promise<any>;
|
|
145
|
-
/**
|
|
146
|
-
* Send size change notification to host
|
|
147
|
-
*/
|
|
148
|
-
sendSizeChanged(size: {
|
|
149
|
-
width?: number;
|
|
150
|
-
height?: number;
|
|
151
|
-
}): void;
|
|
152
|
-
/**
|
|
153
|
-
* Parse size constraints from meta tag
|
|
154
|
-
*/
|
|
155
|
-
static parseSizeMeta(): SizeConstraints;
|
|
156
|
-
/**
|
|
157
|
-
* Set up automatic size reporting with ResizeObserver
|
|
158
|
-
*/
|
|
159
|
-
setupAutoResize(target?: HTMLElement): () => void;
|
|
160
|
-
}
|
|
161
|
-
export {};
|
|
162
|
-
//# sourceMappingURL=photon-app.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"photon-app.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/bridge/photon-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAEV,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAGpB,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAErC;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,aAAa,CAAgF;IACrG,OAAO,CAAC,cAAc,CAAK;IAG3B,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,kBAAkB,CAAwC;IAClE,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,cAAc,CAAoC;gBAE9C,IAAI,EAAE,MAAM;IAKxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgE7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAcjC;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,YAAY;IA2BpB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B9B;;OAEG;IACH,IAAI,UAAU,IAAI,GAAG,CAEpB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvC;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAKpC;;OAEG;IACH,IAAI,KAAK,IAAI,OAAO,GAAG,MAAM,CAE5B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,GAAG,CAErB;IAED;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI;IAQvC;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI;IAQzD;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM,IAAI;IAQ1D;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,MAAM,IAAI;IAQtD;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,MAAM,IAAI;IAQtD;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,MAAM,IAAI;IAQlD;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAuBxE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAIpE;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAQhE;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,eAAe;IAwBvC;;OAEG;IACH,eAAe,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,IAAI;CA+BlD"}
|