synthos 0.7.1 → 0.8.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/README.md +215 -65
- package/default-pages/application.json +1 -0
- package/default-pages/json_tools.json +1 -1
- package/default-pages/oregon_trail.html +321 -0
- package/default-pages/oregon_trail.json +12 -0
- package/default-pages/sidebar_page.json +1 -0
- package/default-pages/solar_explorer.html +10 -18
- package/default-pages/solar_explorer.json +2 -2
- package/default-pages/two-panel_page.json +1 -0
- package/default-pages/us_map.html +192 -0
- package/default-pages/us_map.json +12 -0
- package/default-pages/us_map_1850.html +325 -0
- package/default-pages/us_map_1850.json +12 -0
- package/default-pages/western_cities_1850.html +526 -0
- package/default-pages/western_cities_1850.json +12 -0
- package/default-themes/{nebula-dawn.css → nebula-dawn.v2.css} +24 -0
- package/default-themes/{nebula-dusk.css → nebula-dusk.v2.css} +24 -0
- package/dist/agents/a2a/a2aProvider.d.ts +3 -0
- package/dist/agents/a2a/a2aProvider.d.ts.map +1 -0
- package/dist/agents/a2a/a2aProvider.js +126 -0
- package/dist/agents/a2a/a2aProvider.js.map +1 -0
- package/dist/agents/discovery.d.ts +30 -0
- package/dist/agents/discovery.d.ts.map +1 -0
- package/dist/agents/discovery.js +52 -0
- package/dist/agents/discovery.js.map +1 -0
- package/dist/agents/index.d.ts +7 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +19 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/openclaw/gatewayManager.d.ts +113 -0
- package/dist/agents/openclaw/gatewayManager.d.ts.map +1 -0
- package/dist/agents/openclaw/gatewayManager.js +470 -0
- package/dist/agents/openclaw/gatewayManager.js.map +1 -0
- package/dist/agents/openclaw/openclawProvider.d.ts +3 -0
- package/dist/agents/openclaw/openclawProvider.d.ts.map +1 -0
- package/dist/agents/openclaw/openclawProvider.js +239 -0
- package/dist/agents/openclaw/openclawProvider.js.map +1 -0
- package/dist/agents/openclaw/sshTunnelManager.d.ts +23 -0
- package/dist/agents/openclaw/sshTunnelManager.d.ts.map +1 -0
- package/dist/agents/openclaw/sshTunnelManager.js +340 -0
- package/dist/agents/openclaw/sshTunnelManager.js.map +1 -0
- package/dist/agents/types.d.ts +64 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +6 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/connectors/airtable/connector.json +27 -0
- package/dist/connectors/alpha-vantage/connector.json +26 -0
- package/dist/connectors/brave-search/connector.json +26 -0
- package/dist/connectors/cloudinary/connector.json +27 -0
- package/dist/connectors/deepl/connector.json +28 -0
- package/dist/connectors/elevenlabs/connector.json +30 -0
- package/dist/connectors/giphy/connector.json +27 -0
- package/dist/connectors/github/connector.json +29 -0
- package/dist/connectors/huggingface/connector.json +27 -0
- package/dist/connectors/imgur/connector.json +29 -0
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.d.ts.map +1 -1
- package/dist/connectors/instagram/connector.json +43 -0
- package/dist/connectors/jira/connector.json +28 -0
- package/dist/connectors/mapbox/connector.json +26 -0
- package/dist/connectors/nasa/connector.json +27 -0
- package/dist/connectors/newsapi/connector.json +27 -0
- package/dist/connectors/notion/connector.json +28 -0
- package/dist/connectors/open-exchange-rates/connector.json +27 -0
- package/dist/connectors/openweathermap/connector.json +26 -0
- package/dist/connectors/pexels/connector.json +27 -0
- package/dist/connectors/registry.d.ts.map +1 -1
- package/dist/connectors/registry.js +42 -96
- package/dist/connectors/registry.js.map +1 -1
- package/dist/connectors/resend/connector.json +29 -0
- package/dist/connectors/rss2json/connector.json +27 -0
- package/dist/connectors/sendgrid/connector.json +27 -0
- package/dist/connectors/spoonacular/connector.json +28 -0
- package/dist/connectors/stability-ai/connector.json +27 -0
- package/dist/connectors/twilio/connector.json +28 -0
- package/dist/connectors/types.d.ts +23 -0
- package/dist/connectors/types.d.ts.map +1 -1
- package/dist/connectors/unsplash/connector.json +27 -0
- package/dist/connectors/wolfram-alpha/connector.json +26 -0
- package/dist/connectors/youtube-data/connector.json +30 -0
- package/dist/files.d.ts +1 -0
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +16 -1
- package/dist/files.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +28 -0
- package/dist/init.js.map +1 -1
- package/dist/migrations.d.ts +3 -2
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +122 -138
- package/dist/migrations.js.map +1 -1
- package/dist/models/anthropic.d.ts +22 -0
- package/dist/models/anthropic.d.ts.map +1 -0
- package/dist/models/anthropic.js +76 -0
- package/dist/models/anthropic.js.map +1 -0
- package/dist/models/chainOfThought.d.ts +12 -0
- package/dist/models/chainOfThought.d.ts.map +1 -0
- package/dist/models/chainOfThought.js +45 -0
- package/dist/models/chainOfThought.js.map +1 -0
- package/dist/models/fireworksai.d.ts +30 -0
- package/dist/models/fireworksai.d.ts.map +1 -0
- package/dist/models/fireworksai.js +133 -0
- package/dist/models/fireworksai.js.map +1 -0
- package/dist/models/index.d.ts +7 -1
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +19 -1
- package/dist/models/index.js.map +1 -1
- package/dist/models/logCompletePrompt.d.ts +3 -0
- package/dist/models/logCompletePrompt.d.ts.map +1 -0
- package/dist/models/logCompletePrompt.js +23 -0
- package/dist/models/logCompletePrompt.js.map +1 -0
- package/dist/models/openai.d.ts +24 -0
- package/dist/models/openai.d.ts.map +1 -0
- package/dist/models/openai.js +80 -0
- package/dist/models/openai.js.map +1 -0
- package/dist/models/providers.d.ts +1 -0
- package/dist/models/providers.d.ts.map +1 -1
- package/dist/models/providers.js +12 -4
- package/dist/models/providers.js.map +1 -1
- package/dist/models/types.d.ts +34 -2
- package/dist/models/types.d.ts.map +1 -1
- package/dist/models/types.js +16 -0
- package/dist/models/types.js.map +1 -1
- package/dist/models/utils.d.ts +6 -0
- package/dist/models/utils.d.ts.map +1 -0
- package/dist/models/utils.js +21 -0
- package/dist/models/utils.js.map +1 -0
- package/dist/scripts.d.ts +2 -1
- package/dist/scripts.d.ts.map +1 -1
- package/dist/scripts.js +4 -3
- package/dist/scripts.js.map +1 -1
- package/dist/service/createCompletePrompt.d.ts +1 -1
- package/dist/service/createCompletePrompt.d.ts.map +1 -1
- package/dist/service/createCompletePrompt.js +9 -6
- package/dist/service/createCompletePrompt.js.map +1 -1
- package/dist/service/generateImage.d.ts +1 -1
- package/dist/service/generateImage.d.ts.map +1 -1
- package/dist/service/generateImage.js +3 -3
- package/dist/service/generateImage.js.map +1 -1
- package/dist/service/server.d.ts.map +1 -1
- package/dist/service/server.js +3 -0
- package/dist/service/server.js.map +1 -1
- package/dist/service/transformPage.d.ts +4 -2
- package/dist/service/transformPage.d.ts.map +1 -1
- package/dist/service/transformPage.js +74 -6
- package/dist/service/transformPage.js.map +1 -1
- package/dist/service/useAgentRoutes.d.ts +4 -0
- package/dist/service/useAgentRoutes.d.ts.map +1 -0
- package/dist/service/useAgentRoutes.js +389 -0
- package/dist/service/useAgentRoutes.js.map +1 -0
- package/dist/service/useApiRoutes.d.ts.map +1 -1
- package/dist/service/useApiRoutes.js +157 -16
- package/dist/service/useApiRoutes.js.map +1 -1
- package/dist/service/useConnectorRoutes.d.ts.map +1 -1
- package/dist/service/useConnectorRoutes.js +14 -3
- package/dist/service/useConnectorRoutes.js.map +1 -1
- package/dist/service/useGatewayRoutes.d.ts +4 -0
- package/dist/service/useGatewayRoutes.d.ts.map +1 -0
- package/dist/service/useGatewayRoutes.js +168 -0
- package/dist/service/useGatewayRoutes.js.map +1 -0
- package/dist/service/usePageRoutes.d.ts.map +1 -1
- package/dist/service/usePageRoutes.js +16 -5
- package/dist/service/usePageRoutes.js.map +1 -1
- package/dist/settings.d.ts +2 -1
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +4 -8
- package/dist/settings.js.map +1 -1
- package/dist/themes.d.ts +14 -0
- package/dist/themes.d.ts.map +1 -1
- package/dist/themes.js +86 -13
- package/dist/themes.js.map +1 -1
- package/package.json +10 -5
- package/page-scripts/helpers-v2.js +222 -0
- package/page-scripts/page-v2.js +656 -0
- package/required-pages/builder.html +1 -27
- package/required-pages/pages.html +745 -22
- package/required-pages/settings.html +819 -21
- package/required-pages/synthos_apis.html +56 -1
- package/src/agents/a2a/a2aProvider.ts +110 -0
- package/src/agents/discovery.ts +74 -0
- package/src/agents/index.ts +6 -0
- package/src/agents/openclaw/gatewayManager.ts +559 -0
- package/src/agents/openclaw/openclawProvider.ts +261 -0
- package/src/agents/openclaw/sshTunnelManager.ts +385 -0
- package/src/agents/types.ts +82 -0
- package/src/connectors/airtable/connector.json +27 -0
- package/src/connectors/alpha-vantage/connector.json +26 -0
- package/src/connectors/brave-search/connector.json +26 -0
- package/src/connectors/cloudinary/connector.json +27 -0
- package/src/connectors/deepl/connector.json +28 -0
- package/src/connectors/elevenlabs/connector.json +30 -0
- package/src/connectors/giphy/connector.json +27 -0
- package/src/connectors/github/connector.json +29 -0
- package/src/connectors/huggingface/connector.json +27 -0
- package/src/connectors/imgur/connector.json +29 -0
- package/src/connectors/index.ts +2 -0
- package/src/connectors/instagram/connector.json +43 -0
- package/src/connectors/jira/connector.json +28 -0
- package/src/connectors/mapbox/connector.json +26 -0
- package/src/connectors/nasa/connector.json +27 -0
- package/src/connectors/newsapi/connector.json +27 -0
- package/src/connectors/notion/connector.json +28 -0
- package/src/connectors/open-exchange-rates/connector.json +27 -0
- package/src/connectors/openweathermap/connector.json +26 -0
- package/src/connectors/pexels/connector.json +27 -0
- package/src/connectors/registry.ts +21 -97
- package/src/connectors/resend/connector.json +29 -0
- package/src/connectors/rss2json/connector.json +27 -0
- package/src/connectors/sendgrid/connector.json +27 -0
- package/src/connectors/spoonacular/connector.json +28 -0
- package/src/connectors/stability-ai/connector.json +27 -0
- package/src/connectors/twilio/connector.json +28 -0
- package/src/connectors/types.ts +25 -0
- package/src/connectors/unsplash/connector.json +27 -0
- package/src/connectors/wolfram-alpha/connector.json +26 -0
- package/src/connectors/youtube-data/connector.json +30 -0
- package/src/files.ts +14 -0
- package/src/init.ts +27 -0
- package/src/migrations.ts +121 -138
- package/src/models/anthropic.ts +89 -0
- package/src/models/chainOfThought.ts +56 -0
- package/src/models/fireworksai.ts +136 -0
- package/src/models/index.ts +7 -1
- package/src/models/logCompletePrompt.ts +25 -0
- package/src/models/openai.ts +90 -0
- package/src/models/providers.ts +12 -3
- package/src/models/types.ts +67 -2
- package/src/models/utils.ts +16 -0
- package/src/scripts.ts +2 -2
- package/src/service/createCompletePrompt.ts +3 -1
- package/src/service/generateImage.ts +2 -2
- package/src/service/server.ts +4 -0
- package/src/service/transformPage.ts +81 -8
- package/src/service/useAgentRoutes.ts +423 -0
- package/src/service/useApiRoutes.ts +173 -18
- package/src/service/useConnectorRoutes.ts +14 -3
- package/src/service/usePageRoutes.ts +20 -6
- package/src/settings.ts +6 -10
- package/src/themes.ts +84 -12
- package/tests/README.md +12 -0
- package/tests/anthropic.spec.ts +84 -0
- package/tests/chainOfThought.spec.ts +108 -0
- package/tests/ensureScripts.spec.ts +82 -0
- package/tests/files.spec.ts +233 -0
- package/tests/fireworksai.spec.ts +92 -0
- package/tests/logCompletePrompt.spec.ts +74 -0
- package/tests/migrations.spec.ts +169 -0
- package/tests/openai.spec.ts +71 -0
- package/tests/pages.spec.ts +328 -0
- package/tests/providers.spec.ts +144 -0
- package/tests/scripts.spec.ts +209 -0
- package/tests/transformPage.spec.ts +931 -0
- package/tests/types.spec.ts +23 -0
- package/default-pages/app_builder.json +0 -1
- package/default-pages/sidebar_builder.json +0 -1
- package/default-pages/two-panel_builder.json +0 -1
- package/images/home.png +0 -0
- package/images/page-management.png +0 -0
- package/images/settings.png +0 -0
- package/images/synthos-square.png +0 -0
- /package/default-pages/{app_builder.html → application.html} +0 -0
- /package/default-pages/{sidebar_builder.html → sidebar_page.html} +0 -0
- /package/default-pages/{two-panel_builder.html → two-panel_page.html} +0 -0
package/dist/init.js
CHANGED
|
@@ -32,6 +32,7 @@ const path_1 = __importDefault(require("path"));
|
|
|
32
32
|
const files_1 = require("./files");
|
|
33
33
|
const pages_1 = require("./pages");
|
|
34
34
|
const settings_1 = require("./settings");
|
|
35
|
+
const themes_1 = require("./themes");
|
|
35
36
|
function createConfig(pagesFolder = '.synthos', options) {
|
|
36
37
|
return {
|
|
37
38
|
pagesFolder: path_1.default.join(process.cwd(), pagesFolder),
|
|
@@ -121,6 +122,31 @@ async function repairMissingFolders(config) {
|
|
|
121
122
|
await (0, files_1.ensureFolderExists)(themesFolder);
|
|
122
123
|
await (0, files_1.copyFiles)(config.defaultThemesFolder, themesFolder);
|
|
123
124
|
}
|
|
125
|
+
else {
|
|
126
|
+
// Upgrade outdated themes — copy newer versioned CSS from defaults
|
|
127
|
+
const outdated = await (0, themes_1.getOutdatedThemes)(config);
|
|
128
|
+
if (outdated.length > 0) {
|
|
129
|
+
console.log(`Upgrading ${outdated.length} theme(s): ${outdated.join(', ')}...`);
|
|
130
|
+
const defaultFiles = await (0, files_1.listFiles)(config.defaultThemesFolder);
|
|
131
|
+
for (const themeName of outdated) {
|
|
132
|
+
// Remove old versioned CSS files for this theme
|
|
133
|
+
const localFiles = await (0, files_1.listFiles)(themesFolder);
|
|
134
|
+
for (const f of localFiles) {
|
|
135
|
+
const parsed = (0, themes_1.parseThemeFilename)(f);
|
|
136
|
+
if (parsed && parsed.name === themeName) {
|
|
137
|
+
await (0, files_1.deleteFile)(path_1.default.join(themesFolder, f));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Copy the new versioned CSS from defaults
|
|
141
|
+
for (const f of defaultFiles) {
|
|
142
|
+
const parsed = (0, themes_1.parseThemeFilename)(f);
|
|
143
|
+
if (parsed && parsed.name === themeName) {
|
|
144
|
+
await (0, files_1.copyFile)(path_1.default.join(config.defaultThemesFolder, f), themesFolder);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
124
150
|
// Ensure pages/ subfolder exists
|
|
125
151
|
const pagesSubdir = path_1.default.join(config.pagesFolder, 'pages');
|
|
126
152
|
if (!await (0, files_1.checkIfExists)(pagesSubdir)) {
|
|
@@ -163,6 +189,7 @@ async function migrateFlatPages(pagesFolder) {
|
|
|
163
189
|
title,
|
|
164
190
|
categories: [category],
|
|
165
191
|
pinned: false,
|
|
192
|
+
showInAll: true,
|
|
166
193
|
createdDate: now,
|
|
167
194
|
lastModified: now,
|
|
168
195
|
pageVersion: 1,
|
|
@@ -199,6 +226,7 @@ async function copyDefaultPages(srcFolder, destFolder) {
|
|
|
199
226
|
title: typeof metadata.title === 'string' ? metadata.title : '',
|
|
200
227
|
categories: Array.isArray(metadata.categories) ? metadata.categories : [],
|
|
201
228
|
pinned: typeof metadata.pinned === 'boolean' ? metadata.pinned : false,
|
|
229
|
+
showInAll: typeof metadata.showInAll === 'boolean' ? metadata.showInAll : true,
|
|
202
230
|
createdDate: now,
|
|
203
231
|
lastModified: now,
|
|
204
232
|
pageVersion: typeof metadata.pageVersion === 'number' ? metadata.pageVersion
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,gDAAwB;AACxB,mCAAkH;AAClH,mCAAuC;AACvC,yCAA6C;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,gDAAwB;AACxB,mCAAkH;AAClH,mCAAuC;AACvC,yCAA6C;AAC7C,qCAAiE;AAajE,SAAgB,YAAY,CAAC,WAAW,GAAG,UAAU,EAAE,OAAyD;IAC5G,OAAO;QACH,WAAW,EAAE,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC;QAClD,mBAAmB,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC;QAC9D,kBAAkB,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC;QAC5D,oBAAoB,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC;QAChE,mBAAmB,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC;QAC9D,iBAAiB,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC;QAC1D,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK;QAC9B,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,IAAI,KAAK;KACvD,CAAC;AACN,CAAC;AAXD,oCAWC;AAEM,KAAK,UAAU,IAAI,CAAC,MAAqB,EAAE,sBAA+B,IAAI;IACjF,4BAA4B;IAC5B,IAAI,MAAM,IAAA,qBAAa,EAAC,MAAM,CAAC,WAAW,CAAC,EAAE;QACzC,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAE/C,sBAAsB;IACtB,MAAM,IAAA,0BAAkB,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAE7C,yBAAyB;IACzB,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC/E,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,0BAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,0BAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEjH,wBAAwB;IACxB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC/D,MAAM,IAAA,0BAAkB,EAAC,aAAa,CAAC,CAAC;IACxC,QAAQ,OAAO,CAAC,QAAQ,EAAE;QACtB,KAAK,OAAO;YACR,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,EAAE,aAAa,CAAC,CAAC;YAC/F,MAAM;QACV,KAAK,QAAQ;YACT,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC;YAC3F,MAAM;QACV,KAAK,SAAS;YACV,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,EAAE,aAAa,CAAC,CAAC;YAC/F,MAAM;QACV,KAAK,OAAO,CAAC;QACb;YACI,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,EAAE,aAAa,CAAC,CAAC;YAC7F,MAAM;KACb;IAED,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,6NAA6N,CAAC,CAAC;IAEtR,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,IAAA,0BAAkB,EAAC,YAAY,CAAC,CAAC;IACvC,MAAM,IAAA,iBAAS,EAAC,MAAM,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAE1D,aAAa;IACb,IAAI,mBAAmB,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,MAAM,gBAAgB,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;KACzE;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AApDD,oBAoDC;AAED,KAAK,UAAU,oBAAoB,CAAC,MAAqB;IACrD,kDAAkD;IAClD,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,aAAa,CAAC,EAAE;QACrC,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,MAAM,IAAA,0BAAkB,EAAC,aAAa,CAAC,CAAC;QACxC,QAAQ,OAAO,CAAC,QAAQ,EAAE;YACtB,KAAK,OAAO;gBACR,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,EAAE,aAAa,CAAC,CAAC;gBAC/F,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC;gBAC3F,MAAM;YACV,KAAK,SAAS;gBACV,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,EAAE,aAAa,CAAC,CAAC;gBAC/F,MAAM;YACV,KAAK,OAAO,CAAC;YACb;gBACI,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,EAAE,aAAa,CAAC,CAAC;gBAC7F,MAAM;SACb;QACD,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,6NAA6N,CAAC,CAAC;KACzR;IAED,iDAAiD;IACjD,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,YAAY,CAAC,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,MAAM,IAAA,0BAAkB,EAAC,YAAY,CAAC,CAAC;QACvC,MAAM,IAAA,iBAAS,EAAC,MAAM,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;KAC7D;SAAM;QACH,mEAAmE;QACnE,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAiB,EAAC,MAAM,CAAC,CAAC;QACjD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,MAAM,cAAc,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChF,MAAM,YAAY,GAAG,MAAM,IAAA,iBAAS,EAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACjE,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE;gBAC9B,gDAAgD;gBAChD,MAAM,UAAU,GAAG,MAAM,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC;gBACjD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;oBACxB,MAAM,MAAM,GAAG,IAAA,2BAAkB,EAAC,CAAC,CAAC,CAAC;oBACrC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;wBACrC,MAAM,IAAA,kBAAU,EAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;qBAChD;iBACJ;gBACD,2CAA2C;gBAC3C,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE;oBAC1B,MAAM,MAAM,GAAG,IAAA,2BAAkB,EAAC,CAAC,CAAC,CAAC;oBACrC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;wBACrC,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;qBAC1E;iBACJ;aACJ;SACJ;KACJ;IAED,iCAAiC;IACjC,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,WAAW,CAAC,EAAE;QACnC,4DAA4D;QAC5D,MAAM,SAAS,GAAG,CAAC,MAAM,IAAA,iBAAS,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACzF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YACpE,MAAM,gBAAgB,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;SACzE;aAAM;YACH,MAAM,IAAA,0BAAkB,EAAC,WAAW,CAAC,CAAC;SACzC;KACJ;IAED,kEAAkE;IAClE,MAAM,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC7B,qFAAqF;IACrF,OAAO,IAAI;SACN,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,WAAmB;IAC/C,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,CAAC,MAAM,IAAA,iBAAS,EAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAClF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEnC,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,CAAC,MAAM,uCAAuC,CAAC,CAAC;IAClF,MAAM,IAAA,0BAAkB,EAAC,WAAW,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QAChE,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACpD,MAAM,IAAA,0BAAkB,EAAC,UAAU,CAAC,CAAC;QACrC,MAAM,EAAE,CAAC,QAAQ,CACb,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAC5B,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CACrC,CAAC;QACF,MAAM,IAAA,gBAAQ,EACV,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAClC,IAAI,CAAC,SAAS,CAAC;YACX,KAAK;YACL,UAAU,EAAE,CAAC,QAAQ,CAAC;YACtB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,GAAG;YAChB,YAAY,EAAE,GAAG;YACjB,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,UAAU;SACnB,EAAE,IAAI,EAAE,CAAC,CAAC,CACd,CAAC;QACF,MAAM,IAAA,kBAAU,EAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;KAClD;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,SAAiB,EAAE,UAAkB;IACjE,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,IAAA,0BAAkB,EAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,IAAA,0BAAkB,EAAC,UAAU,CAAC,CAAC;QACrC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QAElF,0EAA0E;QAC1E,IAAI,QAAQ,GAA4B,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;QAC1D,IAAI,MAAM,IAAA,qBAAa,EAAC,QAAQ,CAAC,EAAE;YAC/B,IAAI;gBACA,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACjD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAC9B;YAAC,MAAM;gBACJ,eAAe;aAClB;SACJ;QACD,MAAM,YAAY,GAAG;YACjB,KAAK,EAAE,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAC/D,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;YACzE,MAAM,EAAE,OAAO,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;YACtE,SAAS,EAAE,OAAO,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YAC9E,WAAW,EAAE,GAAG;YAChB,YAAY,EAAE,GAAG;YACjB,WAAW,EAAE,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW;gBACxE,CAAC,CAAC,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAY;YAChF,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;SAC3D,CAAC;QACF,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;KAC7F;AACL,CAAC"}
|
package/dist/migrations.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { completePrompt } from '
|
|
1
|
+
import { completePrompt } from './models';
|
|
2
2
|
/**
|
|
3
3
|
* Migrate a page's HTML from one version to another by applying
|
|
4
4
|
* sequential migration steps.
|
|
@@ -6,6 +6,7 @@ import { completePrompt } from 'agentm-core';
|
|
|
6
6
|
export declare function migratePage(html: string, fromVersion: number, toVersion: number, completePrompt: completePrompt): Promise<string>;
|
|
7
7
|
/**
|
|
8
8
|
* Cheerio-based post-processing to verify the LLM output meets v2 requirements.
|
|
9
|
+
* Uses the original HTML as a fallback source for critical elements.
|
|
9
10
|
*/
|
|
10
|
-
export declare function postProcessV2(html: string): string;
|
|
11
|
+
export declare function postProcessV2(html: string, originalHtml?: string): string;
|
|
11
12
|
//# sourceMappingURL=migrations.d.ts.map
|
package/dist/migrations.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAW1C;;;GAGG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAUvI;AAmGD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAqHzE"}
|
package/dist/migrations.js
CHANGED
|
@@ -22,9 +22,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
25
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
29
|
exports.postProcessV2 = exports.migratePage = void 0;
|
|
27
30
|
const cheerio = __importStar(require("cheerio"));
|
|
31
|
+
const fs = __importStar(require("fs/promises"));
|
|
32
|
+
const path_1 = __importDefault(require("path"));
|
|
28
33
|
const transformPage_1 = require("./service/transformPage");
|
|
29
34
|
/**
|
|
30
35
|
* Registry of migration functions: fromVersion -> transform.
|
|
@@ -49,127 +54,56 @@ async function migratePage(html, fromVersion, toVersion, completePrompt) {
|
|
|
49
54
|
return current;
|
|
50
55
|
}
|
|
51
56
|
exports.migratePage = migratePage;
|
|
52
|
-
/** CSS
|
|
57
|
+
/** CSS selectors provided by the shared theme — used by post-processing to strip leftovers. */
|
|
53
58
|
const SHARED_CSS_SELECTORS = [
|
|
54
|
-
|
|
55
|
-
'body',
|
|
56
|
-
|
|
57
|
-
'.chat-header',
|
|
58
|
-
'.chat-
|
|
59
|
-
'.chat-message',
|
|
60
|
-
'.
|
|
61
|
-
'.chat-message strong',
|
|
62
|
-
'.chat-message pre',
|
|
63
|
-
'.chat-message code',
|
|
64
|
-
'.chat-message a',
|
|
65
|
-
'.link-group',
|
|
66
|
-
'.link-group a',
|
|
59
|
+
// Base
|
|
60
|
+
':root', '*', 'body', 'html',
|
|
61
|
+
// Chat panel
|
|
62
|
+
'.chat-panel', '.chat-header', '.chat-messages',
|
|
63
|
+
'.chat-message', '.chat-message p', '.chat-message p strong', '.chat-message p code',
|
|
64
|
+
'.chat-message strong', '.chat-message pre', '.chat-message code', '.chat-message a',
|
|
65
|
+
'.link-group', '.link-group a', '.link-group a:hover',
|
|
67
66
|
'form',
|
|
68
|
-
'.chat-input',
|
|
69
|
-
'.chat-submit',
|
|
70
|
-
'.
|
|
71
|
-
|
|
72
|
-
'.viewer-panel',
|
|
73
|
-
|
|
74
|
-
'.
|
|
75
|
-
|
|
67
|
+
'.chat-input', '.chat-input:focus', '.chat-input::placeholder', '.chat-input:disabled',
|
|
68
|
+
'.chat-submit', '.chat-submit:hover', '.chat-submit:active', '.chat-submit:disabled',
|
|
69
|
+
'.chat-input-wrapper', '.chat-input-wrapper .chat-input',
|
|
70
|
+
// Viewer panel
|
|
71
|
+
'.viewer-panel', '.viewer-panel::before', '.viewer-panel.full-viewer',
|
|
72
|
+
// Loading
|
|
73
|
+
'.loading-overlay', '.spinner', '#loadingOverlay',
|
|
74
|
+
// Chat toggle
|
|
75
|
+
'.chat-toggle', '.chat-toggle:hover', '.chat-toggle-dots', '.chat-toggle-dot',
|
|
76
|
+
'.chat-toggle:hover .chat-toggle-dot',
|
|
77
|
+
'body.chat-collapsed .chat-panel', 'body.chat-collapsed .chat-toggle',
|
|
78
|
+
// Modal system
|
|
79
|
+
'.modal-overlay', '.modal-overlay.show', '.modal-content', '.modal-header',
|
|
80
|
+
'.modal-body', '.modal-footer', '.modal-footer-right',
|
|
81
|
+
'.modal-btn', '.modal-btn-primary', '.modal-btn-primary:hover',
|
|
82
|
+
'.modal-btn-secondary', '.modal-btn-secondary:hover',
|
|
83
|
+
'.modal-btn-danger', '.modal-btn-danger:hover',
|
|
84
|
+
// Form elements
|
|
85
|
+
'.form-group', '.form-group:last-child', '.form-label',
|
|
86
|
+
'.form-input', '.form-input:focus', '.form-input:read-only', '.form-input::placeholder',
|
|
87
|
+
'.checkbox-label', '.checkbox-label input[type="checkbox"]', '.checkbox-label span',
|
|
88
|
+
// Brainstorm
|
|
89
|
+
'.brainstorm-icon-btn', '.brainstorm-icon-btn:hover',
|
|
90
|
+
'.brainstorm-modal .modal-content', '.brainstorm-modal .modal-header',
|
|
91
|
+
'.brainstorm-close-btn', '.brainstorm-close-btn:hover',
|
|
92
|
+
'.brainstorm-messages', '.brainstorm-message', '.brainstorm-user', '.brainstorm-assistant',
|
|
93
|
+
'.brainstorm-input-row', '.brainstorm-input', '.brainstorm-input:focus', '.brainstorm-input::placeholder',
|
|
94
|
+
'.brainstorm-send-btn', '.brainstorm-send-btn:hover', '.brainstorm-send-btn:disabled',
|
|
95
|
+
'.brainstorm-assistant p', '.brainstorm-assistant pre', '.brainstorm-assistant code',
|
|
96
|
+
'.brainstorm-build-row', '.brainstorm-build-btn', '.brainstorm-build-btn:hover',
|
|
97
|
+
'.brainstorm-suggestions', '.brainstorm-suggestion-chip',
|
|
98
|
+
'.brainstorm-suggestion-chip:hover', '.brainstorm-suggestion-chip:disabled',
|
|
99
|
+
'.brainstorm-thinking',
|
|
76
100
|
];
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
## Rules — What to REMOVE
|
|
80
|
-
|
|
81
|
-
1. **Shared CSS rules** — Remove CSS rules that match these selectors **exactly** (they are now in theme.css):
|
|
82
|
-
\`*\`, \`body\`, \`.chat-panel\`, \`.chat-header\`, \`.chat-messages\`, \`.chat-message\` (and descendants like \`.chat-message p\`, \`.chat-message strong\`, \`.chat-message pre\`, \`.chat-message code\`, \`.chat-message a\`), \`.link-group\`, \`.link-group a\`, \`form\`, \`.chat-input\`, \`.chat-submit\`, \`.loading-overlay\`, \`.spinner\`, \`.viewer-panel\`, \`#loadingOverlay\`, \`.chat-submit:disabled\`, \`.chat-input:disabled\`
|
|
83
|
-
Also remove any \`@keyframes spin\` and scrollbar pseudo-element rules (\`::-webkit-scrollbar\`, \`::-webkit-scrollbar-track\`, \`::-webkit-scrollbar-thumb\`).
|
|
84
|
-
**Important:** Only remove rules matching these selectors exactly. Do NOT remove pseudo-element variants (\`.viewer-panel::before\`, \`.viewer-panel::after\`), pseudo-class variants (\`.chat-input:focus\`, \`.chat-submit:hover\`), or any other compound selectors that extend the shared selectors — those are page-specific styles and must be preserved. Also preserve any \`@keyframes\` referenced by page-specific rules (e.g. if a page has \`.viewer-panel::before\` using a custom animation, keep that \`@keyframes\`).
|
|
85
|
-
|
|
86
|
-
2. **Shared inline JS** — Remove these specific code blocks from \`<script>\` tags:
|
|
87
|
-
- \`document.getElementById('chatInput').focus()\` line
|
|
88
|
-
- \`chatForm\` submit event listener (the one with setTimeout and loading overlay)
|
|
89
|
-
- \`saveLink\` click handler
|
|
90
|
-
- \`resetLink\` click handler
|
|
91
|
-
- \`window.onload\` that ONLY scrolls chatMessages (keep other onload logic!)
|
|
92
|
-
- Chat panel toggle IIFE (references \`synthos-chat-collapsed\`)
|
|
93
|
-
- Focus management IIFE (references \`stopImmediatePropagation\`)
|
|
94
|
-
- \`// Basic chat functionality\` comment
|
|
95
|
-
|
|
96
|
-
3. **Empty \`<script>\` tags** — If a script block becomes empty after stripping, remove it entirely.
|
|
97
|
-
|
|
98
|
-
## Rules — What to ADD
|
|
99
|
-
|
|
100
|
-
1. In \`<head>\`, add these two lines right after the \`<title>\` tag (if not already present):
|
|
101
|
-
\`\`\`
|
|
102
|
-
<script src="/api/theme-info.js"></script>
|
|
103
|
-
<link rel="stylesheet" href="/api/theme.css">
|
|
104
|
-
\`\`\`
|
|
105
|
-
|
|
106
|
-
## Rules — What to TRANSFORM
|
|
107
|
-
|
|
108
|
-
### Data/Table API migration
|
|
109
|
-
The data API changed from global tables to **page-scoped** tables:
|
|
110
|
-
- Old: \`/api/data/:table\` → New: \`/api/data/:page/:table\`
|
|
111
|
-
- Old: \`/api/data/:table/:id\` → New: \`/api/data/:page/:table/:id\`
|
|
112
|
-
- Tables are now stored as sub-folders of each page's folder.
|
|
113
|
-
- **Raw fetch() calls** must be updated: e.g. \`fetch('/api/data/notes')\` → \`fetch('/api/data/' + pageName + '/notes')\`
|
|
114
|
-
- **synthos.data.\* helpers** handle this automatically — they read the current page name from \`window.pageInfo.name\`. Prefer converting raw fetch data calls to use the helpers instead:
|
|
115
|
-
- \`fetch('/api/data/notes')\` → \`synthos.data.list('notes')\`
|
|
116
|
-
- \`fetch('/api/data/notes/' + id)\` → \`synthos.data.get('notes', id)\`
|
|
117
|
-
- \`fetch('/api/data/notes', { method: 'POST', ... })\` → \`synthos.data.save('notes', row)\`
|
|
118
|
-
- \`fetch('/api/data/notes/' + id, { method: 'DELETE' })\` → \`synthos.data.remove('notes', id)\`
|
|
119
|
-
|
|
120
|
-
### Color variables
|
|
121
|
-
Replace hardcoded Nebula Dusk colors with CSS variables in **page-specific** CSS only:
|
|
122
|
-
| Hardcoded | CSS Variable |
|
|
123
|
-
|-----------|-------------|
|
|
124
|
-
| \`#667eea\` | \`var(--accent-primary)\` |
|
|
125
|
-
| \`#764ba2\` | \`var(--accent-secondary)\` |
|
|
126
|
-
| \`#f093fb\` | \`var(--accent-tertiary)\` |
|
|
127
|
-
| \`#b794f6\` | \`var(--text-secondary)\` |
|
|
128
|
-
| \`#e0e0e0\` | \`var(--text-primary)\` |
|
|
129
|
-
| \`rgba(138, 43, 226, 0.3)\` or similar purple rgba | \`var(--border-color)\` or \`var(--accent-glow)\` (use border-color for borders, accent-glow for shadows) |
|
|
130
|
-
| \`#1a1a2e\` | \`var(--bg-primary)\` |
|
|
131
|
-
| \`#16213e\` | \`var(--bg-secondary)\` |
|
|
132
|
-
| \`#0f0f23\` | \`var(--bg-tertiary)\` |
|
|
133
|
-
|
|
134
|
-
For gradients using these colors (e.g. \`linear-gradient(135deg, #667eea, #764ba2)\`), replace with \`linear-gradient(135deg, var(--accent-primary), var(--accent-secondary))\`.
|
|
135
|
-
|
|
136
|
-
## Rules — What to PRESERVE (do NOT modify)
|
|
137
|
-
|
|
138
|
-
- ALL viewer-panel HTML content (games, presentations, tools, etc.)
|
|
139
|
-
- ALL page-specific JavaScript (game logic, presentation logic, keyboard handlers, etc.)
|
|
140
|
-
- ALL page-specific CSS (game styles, presentation styles, layout rules for non-shared classes)
|
|
141
|
-
- Chat message history in \`.chat-messages\`
|
|
142
|
-
- \`<div id="thoughts">\` content
|
|
143
|
-
- External CDN script tags (\`<script src="...">\`)
|
|
144
|
-
- The two-panel layout structure (chat-panel + viewer-panel)
|
|
145
|
-
- The \`<div id="loadingOverlay" class="loading-overlay"><div class="spinner"></div></div>\` element
|
|
146
|
-
- The chat form, link-group, chat-header elements (structure only, their CSS is handled by theme)
|
|
147
|
-
|
|
148
|
-
## V2 page structure example
|
|
149
|
-
|
|
150
|
-
\`\`\`html
|
|
151
|
-
<!DOCTYPE html>
|
|
152
|
-
<html lang="en">
|
|
153
|
-
<head>
|
|
154
|
-
<meta charset="UTF-8">
|
|
155
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
156
|
-
<title>SynthOS - Page Title</title>
|
|
157
|
-
<script src="/api/theme-info.js"></script>
|
|
158
|
-
<link rel="stylesheet" href="/api/theme.css">
|
|
159
|
-
<style>
|
|
160
|
-
/* Only page-specific styles here — no shared chat/layout CSS */
|
|
161
|
-
.my-custom-element {
|
|
162
|
-
color: var(--text-primary);
|
|
163
|
-
background: var(--bg-secondary);
|
|
164
|
-
}
|
|
165
|
-
</style>
|
|
166
|
-
<!-- external CDN scripts if needed -->
|
|
167
|
-
</head>
|
|
168
|
-
<body>
|
|
101
|
+
/** Default chat panel HTML — restored by post-processing if the LLM removes it. */
|
|
102
|
+
const DEFAULT_CHAT_PANEL = `
|
|
169
103
|
<div class="chat-panel">
|
|
170
104
|
<div class="chat-header">SynthOS</div>
|
|
171
105
|
<div class="chat-messages" id="chatMessages">
|
|
172
|
-
|
|
106
|
+
<div class="chat-message"><p>Welcome! How can I help you?</p></div>
|
|
173
107
|
</div>
|
|
174
108
|
<div class="link-group">
|
|
175
109
|
<a href="#" id="saveLink">Save</a>
|
|
@@ -180,30 +114,23 @@ For gradients using these colors (e.g. \`linear-gradient(135deg, #667eea, #764ba
|
|
|
180
114
|
<input type="text" class="chat-input" id="chatInput" name="message" placeholder="Type a message...">
|
|
181
115
|
<button type="submit" class="chat-submit">Send</button>
|
|
182
116
|
</form>
|
|
183
|
-
</div
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
</script>
|
|
192
|
-
</body>
|
|
193
|
-
</html>
|
|
194
|
-
\`\`\`
|
|
195
|
-
|
|
196
|
-
## Output format
|
|
197
|
-
|
|
198
|
-
Return ONLY the complete migrated HTML. No markdown fences, no explanation, no commentary. Just the raw HTML starting with \`<!DOCTYPE html>\`.`;
|
|
117
|
+
</div>`;
|
|
118
|
+
/**
|
|
119
|
+
* Load migration rules from the migration-rules/ folder.
|
|
120
|
+
*/
|
|
121
|
+
async function loadMigrationRules(filename) {
|
|
122
|
+
const rulesPath = path_1.default.join(__dirname, '..', 'migration-rules', filename);
|
|
123
|
+
return await fs.readFile(rulesPath, 'utf8');
|
|
124
|
+
}
|
|
199
125
|
/**
|
|
200
126
|
* v1 -> v2: LLM-based migration that strips shared code and adds theme support.
|
|
201
127
|
* Post-processes with cheerio to verify critical elements are present.
|
|
202
128
|
*/
|
|
203
129
|
async function migrateV1toV2(html, completePrompt) {
|
|
204
|
-
const
|
|
130
|
+
const rules = await loadMigrationRules('v1-to-v2.md');
|
|
131
|
+
const system = { role: 'system', content: rules };
|
|
205
132
|
const prompt = { role: 'user', content: `Convert this v1 page to v2 format:\n\n${html}` };
|
|
206
|
-
const result = await completePrompt({ prompt, system
|
|
133
|
+
const result = await completePrompt({ prompt, system });
|
|
207
134
|
if (!result.completed || !result.value) {
|
|
208
135
|
throw new Error('LLM migration failed: ' + (result.error?.message ?? 'no response'));
|
|
209
136
|
}
|
|
@@ -213,14 +140,70 @@ async function migrateV1toV2(html, completePrompt) {
|
|
|
213
140
|
migrated = migrated.replace(/^```(?:html)?\s*\n?/, '').replace(/\n?```\s*$/, '');
|
|
214
141
|
}
|
|
215
142
|
// Post-process with cheerio to verify and fix critical elements
|
|
216
|
-
migrated = postProcessV2(migrated);
|
|
143
|
+
migrated = postProcessV2(migrated, html);
|
|
217
144
|
return migrated;
|
|
218
145
|
}
|
|
219
146
|
/**
|
|
220
147
|
* Cheerio-based post-processing to verify the LLM output meets v2 requirements.
|
|
148
|
+
* Uses the original HTML as a fallback source for critical elements.
|
|
221
149
|
*/
|
|
222
|
-
function postProcessV2(html) {
|
|
150
|
+
function postProcessV2(html, originalHtml) {
|
|
223
151
|
const $ = cheerio.load(html, { decodeEntities: false });
|
|
152
|
+
const $original = originalHtml ? cheerio.load(originalHtml, { decodeEntities: false }) : null;
|
|
153
|
+
// --- Critical structural checks ---
|
|
154
|
+
// Ensure chat-panel exists with chatForm
|
|
155
|
+
if ($('#chatForm').length === 0) {
|
|
156
|
+
if ($('.chat-panel').length > 0) {
|
|
157
|
+
// Chat panel exists but form is missing — restore form from original or default
|
|
158
|
+
const originalForm = $original?.('#chatForm').parent('.chat-panel');
|
|
159
|
+
if (originalForm && originalForm.length > 0) {
|
|
160
|
+
$('.chat-panel').replaceWith(originalForm.html());
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
// Append default form
|
|
164
|
+
$('.chat-panel').append(`
|
|
165
|
+
<form action="/" method="POST" id="chatForm">
|
|
166
|
+
<input type="text" class="chat-input" id="chatInput" name="message" placeholder="Type a message...">
|
|
167
|
+
<button type="submit" class="chat-submit">Send</button>
|
|
168
|
+
</form>`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
// Entire chat panel is missing — restore from original or use default
|
|
173
|
+
const originalPanel = $original?.('.chat-panel');
|
|
174
|
+
if (originalPanel && originalPanel.length > 0) {
|
|
175
|
+
$('body').prepend($.html(originalPanel));
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
$('body').prepend(DEFAULT_CHAT_PANEL);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// Ensure thoughts div exists
|
|
183
|
+
if ($('#thoughts').length === 0) {
|
|
184
|
+
const originalThoughts = $original?.('#thoughts');
|
|
185
|
+
if (originalThoughts && originalThoughts.length > 0) {
|
|
186
|
+
$('body').append($.html(originalThoughts));
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
$('body').append('<div id="thoughts" style="display: none;"></div>');
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// Ensure loadingOverlay exists inside viewer-panel
|
|
193
|
+
const overlay = $('#loadingOverlay');
|
|
194
|
+
const viewerPanel = $('.viewer-panel');
|
|
195
|
+
if (overlay.length === 0 && viewerPanel.length > 0) {
|
|
196
|
+
viewerPanel.append('<div id="loadingOverlay" class="loading-overlay"><div class="spinner"></div></div>');
|
|
197
|
+
}
|
|
198
|
+
else if (overlay.length > 0 && viewerPanel.length > 0) {
|
|
199
|
+
// Move inside viewer-panel if it's outside
|
|
200
|
+
if (overlay.closest('.viewer-panel').length === 0) {
|
|
201
|
+
const overlayHtml = $.html(overlay);
|
|
202
|
+
overlay.remove();
|
|
203
|
+
viewerPanel.append(overlayHtml);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// --- Theme refs ---
|
|
224
207
|
// Ensure theme-info.js is in <head>
|
|
225
208
|
if ($('script[src="/api/theme-info.js"]').length === 0) {
|
|
226
209
|
const titleEl = $('title');
|
|
@@ -241,7 +224,7 @@ function postProcessV2(html) {
|
|
|
241
224
|
$('head').append('<link rel="stylesheet" href="/api/theme.css">\n');
|
|
242
225
|
}
|
|
243
226
|
}
|
|
244
|
-
//
|
|
227
|
+
// --- Strip leftover shared CSS ---
|
|
245
228
|
$('style').each(function (_, el) {
|
|
246
229
|
let css = $(el).html() ?? '';
|
|
247
230
|
for (const selector of SHARED_CSS_SELECTORS) {
|
|
@@ -251,10 +234,11 @@ function postProcessV2(html) {
|
|
|
251
234
|
const pattern = new RegExp(`(?:^|\\n)\\s*${escaped}\\s*\\{[^}]*\\}`, 'g');
|
|
252
235
|
css = css.replace(pattern, '');
|
|
253
236
|
}
|
|
254
|
-
// Remove @keyframes spin
|
|
237
|
+
// Remove @keyframes spin and nebula-pulse
|
|
255
238
|
css = css.replace(/@keyframes\s+spin\s*\{[^}]*(?:\{[^}]*\}[^}]*)*\}/g, '');
|
|
239
|
+
css = css.replace(/@keyframes\s+nebula-pulse\s*\{[^}]*(?:\{[^}]*\}[^}]*)*\}/g, '');
|
|
256
240
|
// Remove scrollbar pseudo-element rules
|
|
257
|
-
css = css.replace(/(?:^|\n)\s*(?:\*|body|)::-webkit-scrollbar(?:-(?:track|thumb))?\s*\{[^}]*\}/g, '');
|
|
241
|
+
css = css.replace(/(?:^|\n)\s*(?:\*|body|)::-webkit-scrollbar(?:-(?:track|thumb|corner))?(?::hover)?\s*\{[^}]*\}/g, '');
|
|
258
242
|
$(el).html(css);
|
|
259
243
|
});
|
|
260
244
|
// Remove empty <style> blocks
|
package/dist/migrations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { completePrompt, PromptCompletionArgs } from './types';
|
|
2
|
+
export interface AnthropicArgs {
|
|
3
|
+
apiKey: string;
|
|
4
|
+
model: string;
|
|
5
|
+
baseURL?: string;
|
|
6
|
+
temperature?: number;
|
|
7
|
+
maxRetries?: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Build the messages array and system content for an Anthropic API request.
|
|
11
|
+
* Pure function — no SDK dependency.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildAnthropicRequest(args: PromptCompletionArgs, defaultTemp: number): {
|
|
14
|
+
messages: {
|
|
15
|
+
role: string;
|
|
16
|
+
content: string;
|
|
17
|
+
}[];
|
|
18
|
+
system: string | undefined;
|
|
19
|
+
temperature: number;
|
|
20
|
+
};
|
|
21
|
+
export declare function anthropic(args: AnthropicArgs): completePrompt;
|
|
22
|
+
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/models/anthropic.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,cAAc,EAAE,oBAAoB,EAAgB,MAAM,SAAS,CAAC;AAE9F,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,GAAG;IACpF,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACvB,CAyBA;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CA0C7D"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.anthropic = exports.buildAnthropicRequest = void 0;
|
|
7
|
+
const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
|
|
8
|
+
const types_1 = require("./types");
|
|
9
|
+
/**
|
|
10
|
+
* Build the messages array and system content for an Anthropic API request.
|
|
11
|
+
* Pure function — no SDK dependency.
|
|
12
|
+
*/
|
|
13
|
+
function buildAnthropicRequest(args, defaultTemp) {
|
|
14
|
+
const reqTemp = args.temperature ?? defaultTemp;
|
|
15
|
+
const messages = [];
|
|
16
|
+
if (args.history) {
|
|
17
|
+
for (const msg of args.history) {
|
|
18
|
+
messages.push({ role: msg.role, content: msg.content });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const useJsonPrefill = args.jsonMode || args.jsonSchema;
|
|
22
|
+
if (useJsonPrefill) {
|
|
23
|
+
messages.push({ role: 'user', content: args.prompt.content });
|
|
24
|
+
messages.push({ role: 'assistant', content: '{' });
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
messages.push({ role: 'user', content: args.prompt.content });
|
|
28
|
+
}
|
|
29
|
+
let system = args.system?.content;
|
|
30
|
+
if (args.jsonSchema) {
|
|
31
|
+
const schemaInstruction = `\n\nYou must return valid JSON conforming to this schema:\n${JSON.stringify(args.jsonSchema)}`;
|
|
32
|
+
system = system ? system + schemaInstruction : schemaInstruction;
|
|
33
|
+
}
|
|
34
|
+
return { messages, system, temperature: reqTemp };
|
|
35
|
+
}
|
|
36
|
+
exports.buildAnthropicRequest = buildAnthropicRequest;
|
|
37
|
+
function anthropic(args) {
|
|
38
|
+
const { apiKey, model, baseURL, temperature = 0.0, maxRetries } = args;
|
|
39
|
+
const client = new sdk_1.default({ apiKey, baseURL, maxRetries });
|
|
40
|
+
return async (completionArgs) => {
|
|
41
|
+
const { messages, system: systemContent, temperature: reqTemp } = buildAnthropicRequest(completionArgs, temperature);
|
|
42
|
+
const useJsonPrefill = completionArgs.jsonMode || completionArgs.jsonSchema;
|
|
43
|
+
try {
|
|
44
|
+
const stream = await client.messages.create({
|
|
45
|
+
model,
|
|
46
|
+
max_tokens: 32768,
|
|
47
|
+
temperature: reqTemp,
|
|
48
|
+
system: systemContent,
|
|
49
|
+
messages: messages,
|
|
50
|
+
stream: true,
|
|
51
|
+
});
|
|
52
|
+
let text = '';
|
|
53
|
+
for await (const event of stream) {
|
|
54
|
+
if (event.type === 'content_block_delta' && event.delta.type === 'text_delta') {
|
|
55
|
+
text += event.delta.text;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (useJsonPrefill) {
|
|
59
|
+
text = '{' + text;
|
|
60
|
+
}
|
|
61
|
+
return { completed: true, value: text };
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
let error;
|
|
65
|
+
if (err instanceof sdk_1.default.APIError && err.status !== undefined) {
|
|
66
|
+
error = new types_1.RequestError(err.message, err.status, err.name);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
error = err;
|
|
70
|
+
}
|
|
71
|
+
return { completed: false, error };
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
exports.anthropic = anthropic;
|
|
76
|
+
//# sourceMappingURL=anthropic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/models/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AgentCompletion, AgentArgs } from './types';
|
|
2
|
+
export interface ExplainedAnswer {
|
|
3
|
+
explanation: string;
|
|
4
|
+
answer: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ChainOfThoughtArgs extends AgentArgs {
|
|
7
|
+
question: string;
|
|
8
|
+
temperature?: number;
|
|
9
|
+
instructions?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function chainOfThought(args: ChainOfThoughtArgs): Promise<AgentCompletion<ExplainedAnswer>>;
|
|
12
|
+
//# sourceMappingURL=chainOfThought.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chainOfThought.d.ts","sourceRoot":"","sources":["../../src/models/chainOfThought.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAA8B,MAAM,SAAS,CAAC;AAEjF,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CA0CxG"}
|