synthos 0.9.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/default-pages/neon_asteroids/page.html +2 -21
- package/default-pages/oregon_trail/page.html +3 -19
- package/default-pages/solar_explorer/page.html +1 -1
- package/default-pages/western_cities_1850/page.html +2 -2
- package/dist/agents/a2a/a2aProvider.d.ts +3 -0
- package/dist/agents/discovery.d.ts +30 -0
- package/dist/agents/openclaw/openclawProvider.d.ts +3 -0
- package/dist/agents/types.d.ts +64 -0
- package/dist/connectors/index.d.ts +3 -0
- package/dist/connectors/types.d.ts +84 -0
- package/dist/customizer/Customizer.d.ts +5 -0
- package/dist/customizer/Customizer.d.ts.map +1 -1
- package/dist/customizer/Customizer.js +10 -0
- package/dist/customizer/Customizer.js.map +1 -1
- package/dist/customizer/index.d.ts +4 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +2 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +71 -37
- package/dist/init.js.map +1 -1
- package/dist/migrations.d.ts +12 -0
- package/dist/models/chainOfThought.d.ts +12 -0
- package/dist/models/fireworksai.d.ts +30 -0
- package/dist/models/logCompletePrompt.d.ts +3 -0
- package/dist/models/providers.d.ts +8 -0
- package/dist/models/utils.d.ts +6 -0
- package/dist/pages.d.ts +12 -11
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +94 -66
- package/dist/pages.js.map +1 -1
- package/dist/scripts.d.ts +15 -0
- package/dist/service/createCompletePrompt.d.ts +6 -0
- package/dist/service/createCompletePrompt.d.ts.map +1 -1
- package/dist/service/createCompletePrompt.js +2 -2
- package/dist/service/createCompletePrompt.js.map +1 -1
- package/dist/service/debugLog.d.ts +11 -0
- package/dist/service/generateImage.d.ts +32 -0
- package/dist/service/index.d.ts +8 -0
- package/dist/service/modelInstructions.d.ts +7 -0
- package/dist/service/requiresSettings.d.ts +4 -0
- package/dist/service/requiresSettings.d.ts.map +1 -1
- package/dist/service/requiresSettings.js +3 -3
- package/dist/service/requiresSettings.js.map +1 -1
- package/dist/service/server.d.ts +5 -0
- package/dist/service/useAgentRoutes.js +12 -12
- package/dist/service/useAgentRoutes.js.map +1 -1
- package/dist/service/useApiRoutes.d.ts +5 -0
- package/dist/service/useApiRoutes.d.ts.map +1 -1
- package/dist/service/useApiRoutes.js +74 -60
- package/dist/service/useApiRoutes.js.map +1 -1
- package/dist/service/useConnectorRoutes.d.ts +4 -0
- package/dist/service/useConnectorRoutes.js +11 -11
- package/dist/service/useConnectorRoutes.js.map +1 -1
- package/dist/service/useDataRoutes.d.ts +4 -0
- package/dist/service/useDataRoutes.d.ts.map +1 -1
- package/dist/service/useDataRoutes.js +13 -10
- package/dist/service/useDataRoutes.js.map +1 -1
- package/dist/service/useFileRoutes.d.ts.map +1 -1
- package/dist/service/useFileRoutes.js +13 -13
- package/dist/service/useFileRoutes.js.map +1 -1
- package/dist/service/usePageRoutes.d.ts +6 -0
- package/dist/service/usePageRoutes.d.ts.map +1 -1
- package/dist/service/usePageRoutes.js +54 -38
- package/dist/service/usePageRoutes.js.map +1 -1
- package/dist/service/useSharedDataRoutes.d.ts.map +1 -1
- package/dist/service/useSharedDataRoutes.js +13 -10
- package/dist/service/useSharedDataRoutes.js.map +1 -1
- package/dist/service/useSharedFileRoutes.d.ts.map +1 -1
- package/dist/service/useSharedFileRoutes.js +13 -13
- package/dist/service/useSharedFileRoutes.js.map +1 -1
- package/dist/settings.d.ts +4 -3
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +11 -10
- package/dist/settings.js.map +1 -1
- package/dist/storage/FsStorageProvider.d.ts +25 -0
- package/dist/storage/FsStorageProvider.d.ts.map +1 -0
- package/dist/storage/FsStorageProvider.js +103 -0
- package/dist/storage/FsStorageProvider.js.map +1 -0
- package/dist/storage/StorageProvider.d.ts +31 -0
- package/dist/storage/StorageProvider.d.ts.map +1 -0
- package/dist/storage/StorageProvider.js +3 -0
- package/dist/storage/StorageProvider.js.map +1 -0
- package/dist/storage/index.d.ts +3 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +6 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/synthos-cli.d.ts +2 -0
- package/dist/themes.d.ts.map +1 -1
- package/dist/themes.js +42 -18
- package/dist/themes.js.map +1 -1
- package/package.json +1 -1
- package/src/builders/anthropic.ts +5 -5
- package/src/customizer/Customizer.ts +12 -0
- package/src/index.ts +2 -1
- package/src/init.ts +78 -42
- package/src/models/providers.ts +2 -2
- package/src/pages.ts +98 -67
- package/src/service/createCompletePrompt.ts +3 -2
- package/src/service/requiresSettings.ts +4 -3
- package/src/service/useAgentRoutes.ts +12 -12
- package/src/service/useApiRoutes.ts +76 -61
- package/src/service/useConnectorRoutes.ts +11 -11
- package/src/service/useDataRoutes.ts +13 -10
- package/src/service/useFileRoutes.ts +14 -13
- package/src/service/usePageRoutes.ts +42 -40
- package/src/service/useSharedDataRoutes.ts +13 -10
- package/src/service/useSharedFileRoutes.ts +14 -13
- package/src/settings.ts +12 -10
- package/src/storage/FsStorageProvider.ts +87 -0
- package/src/storage/StorageProvider.ts +34 -0
- package/src/storage/index.ts +2 -0
- package/src/themes.ts +44 -18
- package/tests/builders.spec.ts +2 -2
- package/tests/pages.spec.ts +54 -84
- package/tests/providers.spec.ts +1 -1
|
@@ -39,7 +39,7 @@ function useAgentRoutes(config, app, customizer) {
|
|
|
39
39
|
// Auto-connect all enabled OpenClaw agents on startup
|
|
40
40
|
(async () => {
|
|
41
41
|
try {
|
|
42
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
42
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
43
43
|
for (const agent of settings.agents ?? []) {
|
|
44
44
|
tryConnectAgent(agent);
|
|
45
45
|
}
|
|
@@ -51,7 +51,7 @@ function useAgentRoutes(config, app, customizer) {
|
|
|
51
51
|
// GET /api/agents — List configured agents (with optional filters)
|
|
52
52
|
app.get('/api/agents', async (req, res) => {
|
|
53
53
|
try {
|
|
54
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
54
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
55
55
|
let agents = settings.agents ?? [];
|
|
56
56
|
// Filter by enabled
|
|
57
57
|
if (req.query.enabled === 'true') {
|
|
@@ -103,7 +103,7 @@ function useAgentRoutes(config, app, customizer) {
|
|
|
103
103
|
res.status(400).json({ error: 'url and name are required' });
|
|
104
104
|
return;
|
|
105
105
|
}
|
|
106
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
106
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
107
107
|
const agents = settings.agents ? [...settings.agents] : [];
|
|
108
108
|
const agentConfig = {
|
|
109
109
|
id: body.id || (0, uuid_1.v4)(),
|
|
@@ -138,7 +138,7 @@ function useAgentRoutes(config, app, customizer) {
|
|
|
138
138
|
else {
|
|
139
139
|
agents.push(agentConfig);
|
|
140
140
|
}
|
|
141
|
-
await (0, settings_1.saveSettings)(config
|
|
141
|
+
await (0, settings_1.saveSettings)(config, { agents });
|
|
142
142
|
// Auto-connect OpenClaw agents after save
|
|
143
143
|
tryConnectAgent(agentConfig);
|
|
144
144
|
res.json(toClientAgent(agentConfig));
|
|
@@ -152,7 +152,7 @@ function useAgentRoutes(config, app, customizer) {
|
|
|
152
152
|
app.patch('/api/agents/:id', async (req, res) => {
|
|
153
153
|
try {
|
|
154
154
|
const { id } = req.params;
|
|
155
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
155
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
156
156
|
const agents = settings.agents ? [...settings.agents] : [];
|
|
157
157
|
const idx = agents.findIndex(a => a.id === id);
|
|
158
158
|
if (idx === -1) {
|
|
@@ -166,7 +166,7 @@ function useAgentRoutes(config, app, customizer) {
|
|
|
166
166
|
agents[idx].name = body.name;
|
|
167
167
|
if (typeof body.description === 'string')
|
|
168
168
|
agents[idx].description = body.description;
|
|
169
|
-
await (0, settings_1.saveSettings)(config
|
|
169
|
+
await (0, settings_1.saveSettings)(config, { agents });
|
|
170
170
|
// Connect or disconnect based on enabled state
|
|
171
171
|
if (agents[idx].provider === 'openclaw') {
|
|
172
172
|
if (agents[idx].enabled) {
|
|
@@ -187,14 +187,14 @@ function useAgentRoutes(config, app, customizer) {
|
|
|
187
187
|
app.delete('/api/agents/:id', async (req, res) => {
|
|
188
188
|
try {
|
|
189
189
|
const { id } = req.params;
|
|
190
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
190
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
191
191
|
const agent = (settings.agents ?? []).find(a => a.id === id);
|
|
192
192
|
// Disconnect if OpenClaw
|
|
193
193
|
if (agent?.provider === 'openclaw') {
|
|
194
194
|
(0, agents_1.disconnectAgent)(id);
|
|
195
195
|
}
|
|
196
196
|
const agents = (settings.agents ?? []).filter(a => a.id !== id);
|
|
197
|
-
await (0, settings_1.saveSettings)(config
|
|
197
|
+
await (0, settings_1.saveSettings)(config, { agents });
|
|
198
198
|
res.json({ deleted: true });
|
|
199
199
|
}
|
|
200
200
|
catch (err) {
|
|
@@ -206,7 +206,7 @@ function useAgentRoutes(config, app, customizer) {
|
|
|
206
206
|
app.post('/api/agents/:id/connect', async (req, res) => {
|
|
207
207
|
try {
|
|
208
208
|
const { id } = req.params;
|
|
209
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
209
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
210
210
|
const agent = (settings.agents ?? []).find(a => a.id === id);
|
|
211
211
|
if (!agent) {
|
|
212
212
|
res.status(404).json({ error: `Agent "${id}" not found` });
|
|
@@ -250,7 +250,7 @@ function useAgentRoutes(config, app, customizer) {
|
|
|
250
250
|
res.status(400).json({ error: 'message is required' });
|
|
251
251
|
return;
|
|
252
252
|
}
|
|
253
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
253
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
254
254
|
const agent = (settings.agents ?? []).find(a => a.id === id);
|
|
255
255
|
if (!agent) {
|
|
256
256
|
res.status(404).json({ error: `Agent "${id}" not found` });
|
|
@@ -274,7 +274,7 @@ function useAgentRoutes(config, app, customizer) {
|
|
|
274
274
|
// Helper: load agent + resolve provider, return 404/400 on failure
|
|
275
275
|
// -----------------------------------------------------------------------
|
|
276
276
|
async function withAgent(id, res, fn) {
|
|
277
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
277
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
278
278
|
const agent = (settings.agents ?? []).find(a => a.id === id);
|
|
279
279
|
if (!agent) {
|
|
280
280
|
res.status(404).json({ error: `Agent "${id}" not found` });
|
|
@@ -350,7 +350,7 @@ function useAgentRoutes(config, app, customizer) {
|
|
|
350
350
|
res.status(400).json({ error: 'message is required' });
|
|
351
351
|
return;
|
|
352
352
|
}
|
|
353
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
353
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
354
354
|
const agent = (settings.agents ?? []).find(a => a.id === id);
|
|
355
355
|
if (!agent) {
|
|
356
356
|
res.status(404).json({ error: `Agent "${id}" not found` });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentRoutes.js","sourceRoot":"","sources":["../../src/service/useAgentRoutes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useAgentRoutes.js","sourceRoot":"","sources":["../../src/service/useAgentRoutes.ts"],"names":[],"mappings":";;;AAEA,0CAAyD;AACzD,sCAYmB;AACnB,+BAAoC;AAGpC,SAAgB,cAAc,CAAC,MAAqB,EAAE,GAAgB,EAAE,UAAuB;IAC3F,4DAA4D;IAC5D,IAAA,yBAAgB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE/B,uGAAuG;IACvG,SAAS,aAAa,CAAC,KAAkB;QACrC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,IAAA,uBAAc,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,MAAM,YAAY,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,IAAA,wBAAe,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,+CAA+C;QAC/C,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3G,OAAO;YACH,GAAG,IAAI;YACP,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC;IACN,CAAC;IAED,uEAAuE;IACvE,SAAS,eAAe,CAAC,KAAkB;QACvC,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,OAAO;QAC5E,IAAA,qBAAY,EAAC;YACT,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,UAAU,EAAE,WAAW;SACvC,CAAC;aACG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,2CAA2C,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;aACjF,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,qCAAqC,KAAK,CAAC,IAAI,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACrI,CAAC;IAED,sDAAsD;IACtD,CAAC,KAAK,IAAI,EAAE;QACR,IAAI;YACA,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,MAAM,CAAC,CAAC;YAC5C,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE;gBACvC,eAAe,CAAC,KAAK,CAAC,CAAC;aAC1B;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,IAAI,CAAC,oDAAoD,EAAE,GAAG,CAAC,CAAC;SAC3E;IACL,CAAC,CAAC,EAAE,CAAC;IAEL,mEAAmE;IACnE,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACtC,IAAI;YACA,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;YAEnC,oBAAoB;YACpB,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;gBAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;aAC1C;YAED,qBAAqB;YACrB,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBACxC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aAClE;YAED,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;SACvC;QAAC,OAAO,GAAY,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3D;IACL,CAAC,CAAC,CAAC;IAEH,2DAA2D;IAC3D,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAChD,IAAI;YACA,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YACtC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;gBACjC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBACnD,OAAO;aACV;YAED,IAAI,IAAI,KAAK,UAAU,EAAE;gBACrB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBACrC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC,CAAC;oBAC5E,OAAO;iBACV;gBACD,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAqB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACpB;iBAAM;gBACH,iBAAiB;gBACjB,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAgB,EAAC,GAAG,CAAC,CAAC;gBACzC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClB;SACJ;QAAC,OAAO,GAAY,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6BAA8B,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SAC1F;IACL,CAAC,CAAC,CAAC;IAEH,yCAAyC;IACzC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,IAAI;YACA,MAAM,IAAI,GAAG,GAAG,CAAC,IAA4B,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACzB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;gBAC7D,OAAO;aACV;YAED,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAE3D,MAAM,WAAW,GAAgB;gBAC7B,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,IAAA,SAAM,GAAE;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;gBACnC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;gBAChC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC5B,CAAC;YAEF,sDAAsD;YACtD,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;gBACZ,+DAA+D;gBAC/D,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;oBACzC,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;iBACzC;gBACD,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE;oBACnD,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;iBACnD;gBACD,wDAAwD;gBACxD,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE;oBACjD,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;iBACjD;gBACD,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;aAC7B;iBAAM;gBACH,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC5B;YAED,MAAM,IAAA,uBAAY,EAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAEvC,0CAA0C;YAC1C,eAAe,CAAC,WAAW,CAAC,CAAC;YAE7B,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;SACxC;QAAC,OAAO,GAAY,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3D;IACL,CAAC,CAAC,CAAC;IAEH,oEAAoE;IACpE,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5C,IAAI;YACA,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/C,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;gBACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;gBAC3D,OAAO;aACV;YAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAA4B,CAAC;YAC9C,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC1E,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAChE,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAErF,MAAM,IAAA,uBAAY,EAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAEvC,+CAA+C;YAC/C,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,UAAU,EAAE;gBACrC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;oBACrB,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;iBAChC;qBAAM;oBACH,IAAA,wBAAe,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;iBACnC;aACJ;YAED,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxC;QAAC,OAAO,GAAY,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3D;IACL,CAAC,CAAC,CAAC;IAEH,wCAAwC;IACxC,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC7C,IAAI;YACA,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAE7D,yBAAyB;YACzB,IAAI,KAAK,EAAE,QAAQ,KAAK,UAAU,EAAE;gBAChC,IAAA,wBAAe,EAAC,EAAE,CAAC,CAAC;aACvB;YAED,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,MAAM,IAAA,uBAAY,EAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SAC/B;QAAC,OAAO,GAAY,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3D;IACL,CAAC,CAAC,CAAC;IAEH,uEAAuE;IACvE,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACnD,IAAI;YACA,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,KAAK,EAAE;gBACR,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;gBAC3D,OAAO;aACV;YACD,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE;gBAC/B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC,CAAC;gBACtF,OAAO;aACV;YACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAC;gBACjE,OAAO;aACV;YAED,MAAM,IAAA,qBAAY,EAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;YAC7J,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;SAClF;QAAC,OAAO,GAAY,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3D;IACL,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACtD,IAAI;YACA,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,IAAA,wBAAe,EAAC,EAAE,CAAC,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;SACpC;QAAC,OAAO,GAAY,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3D;IACL,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAC7E,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAChD,IAAI;YACA,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBACzC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;gBACvD,OAAO;aACV;YAED,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,KAAK,EAAE;gBACR,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;gBAC3D,OAAO;aACV;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;gBACrE,OAAO;aACV;YAED,mCAAmC;YACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,yBAAgB,CAAC,CAAC,CAAC,oBAAW,CAAC;YAChF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACpB;QAAC,OAAO,GAAY,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3D;IACL,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAC1E,mEAAmE;IACnE,0EAA0E;IAC1E,KAAK,UAAU,SAAS,CACpB,EAAU,EACV,GAA+B,EAC/B,EAAkE;QAElE,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,EAAE;YACR,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;YAC3D,OAAO;SACV;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;YACrE,OAAO;SACV;QACD,MAAM,QAAQ,GAAkB,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,yBAAgB,CAAC,CAAC,CAAC,oBAAW,CAAC;QAC/F,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,0EAA0E;IAC1E,kCAAkC;IAClC,0EAA0E;IAE1E,uDAAuD;IACvD,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACxD,IAAI;YACA,MAAM,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBAC1D,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;oBACtB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gDAAgD,EAAE,CAAC,CAAC;oBAClF,OAAO;iBACV;gBACD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClD,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;SACN;QAAC,OAAO,GAAY,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3D;IACL,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACtD,IAAI;YACA,MAAM,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBAC1D,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;oBACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gDAAgD,EAAE,CAAC,CAAC;oBAClF,OAAO;iBACV;gBACD,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAChC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;SACN;QAAC,OAAO,GAAY,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3D;IACL,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACtD,IAAI;YACA,MAAM,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;oBACxB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gDAAgD,EAAE,CAAC,CAAC;oBAClF,OAAO;iBACV;gBACD,MAAM,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;SACN;QAAC,OAAO,GAAY,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3D;IACL,CAAC,CAAC,CAAC;IAEH,uDAAuD;IACvD,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClD,IAAI;YACA,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBACzC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;gBACvD,OAAO;aACV;YAED,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,KAAK,EAAE;gBACR,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;gBAC3D,OAAO;aACV;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;gBACrE,OAAO;aACV;YAED,qBAAqB;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;YACnD,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAC3C,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAC1C,GAAG,CAAC,YAAY,EAAE,CAAC;YAEnB,sDAAsD;YACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,yBAAgB,CAAC,CAAC,CAAC,oBAAW,CAAC;YAEhF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;gBACxE,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;oBAAE,MAAM;aAC9D;YAED,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC9B,GAAG,CAAC,GAAG,EAAE,CAAC;SACb;QAAC,OAAO,GAAY,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,+CAA+C;YAC/C,IAAI,GAAG,CAAC,WAAW,EAAE;gBACjB,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC1F,GAAG,CAAC,GAAG,EAAE,CAAC;aACb;iBAAM;gBACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;aAC3D;SACJ;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAxZD,wCAwZC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Application } from 'express';
|
|
2
|
+
import { SynthOSConfig } from "../init";
|
|
3
|
+
import { Customizer } from "../customizer";
|
|
4
|
+
export declare function useApiRoutes(config: SynthOSConfig, app: Application, customizer?: Customizer): void;
|
|
5
|
+
//# sourceMappingURL=useApiRoutes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useApiRoutes.d.ts","sourceRoot":"","sources":["../../src/service/useApiRoutes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useApiRoutes.d.ts","sourceRoot":"","sources":["../../src/service/useApiRoutes.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AASxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAkC3C,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CA26BnG"}
|
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.useApiRoutes = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const promises_1 = __importDefault(require("fs/promises"));
|
|
9
8
|
const adm_zip_1 = __importDefault(require("adm-zip"));
|
|
10
9
|
const pages_1 = require("../pages");
|
|
11
10
|
const files_1 = require("../files");
|
|
@@ -32,9 +31,10 @@ const SERVICE_REGISTRY = [
|
|
|
32
31
|
}
|
|
33
32
|
];
|
|
34
33
|
function useApiRoutes(config, app, customizer) {
|
|
34
|
+
const sp = config.storageProvider;
|
|
35
35
|
// List pages
|
|
36
36
|
app.get('/api/pages', async (req, res) => {
|
|
37
|
-
const pages = await (0, pages_1.listPages)(config
|
|
37
|
+
const pages = await (0, pages_1.listPages)(config, config.requiredPagesFolders);
|
|
38
38
|
res.json(pages);
|
|
39
39
|
});
|
|
40
40
|
// Import a page from a zip file
|
|
@@ -75,12 +75,12 @@ function useApiRoutes(config, app, customizer) {
|
|
|
75
75
|
// Auto-append _1, _2, etc. on name conflicts
|
|
76
76
|
let finalName = pageName;
|
|
77
77
|
let suffix = 0;
|
|
78
|
-
while (await
|
|
78
|
+
while (await sp.checkIfExists(path_1.default.join(config.pagesFolder, 'pages', finalName))) {
|
|
79
79
|
suffix++;
|
|
80
80
|
finalName = `${pageName}_${suffix}`;
|
|
81
81
|
}
|
|
82
82
|
const targetDir = path_1.default.join(config.pagesFolder, 'pages', finalName);
|
|
83
|
-
await
|
|
83
|
+
await sp.ensureFolderExists(targetDir);
|
|
84
84
|
// Extract entries with path traversal protection
|
|
85
85
|
for (const entry of entries) {
|
|
86
86
|
if (entry.isDirectory)
|
|
@@ -94,12 +94,12 @@ function useApiRoutes(config, app, customizer) {
|
|
|
94
94
|
// Path traversal — skip this entry
|
|
95
95
|
continue;
|
|
96
96
|
}
|
|
97
|
-
await
|
|
98
|
-
await
|
|
97
|
+
await sp.ensureFolderExists(path_1.default.dirname(resolvedPath));
|
|
98
|
+
await sp.saveBuffer(resolvedPath, entry.getData());
|
|
99
99
|
}
|
|
100
100
|
// Update metadata: set createdDate and lastModified to now
|
|
101
101
|
const now = new Date().toISOString();
|
|
102
|
-
const existingMeta = await (0, pages_1.loadPageMetadata)(config
|
|
102
|
+
const existingMeta = await (0, pages_1.loadPageMetadata)(config, finalName);
|
|
103
103
|
const metadata = {
|
|
104
104
|
title: existingMeta?.title ?? '',
|
|
105
105
|
categories: existingMeta?.categories ?? [],
|
|
@@ -110,7 +110,7 @@ function useApiRoutes(config, app, customizer) {
|
|
|
110
110
|
pageVersion: existingMeta?.pageVersion ?? pages_1.PAGE_VERSION,
|
|
111
111
|
mode: existingMeta?.mode ?? 'unlocked',
|
|
112
112
|
};
|
|
113
|
-
await (0, pages_1.savePageMetadata)(config
|
|
113
|
+
await (0, pages_1.savePageMetadata)(config, finalName, metadata);
|
|
114
114
|
res.status(201).json({ name: finalName, title: metadata.title });
|
|
115
115
|
}
|
|
116
116
|
catch (err) {
|
|
@@ -122,7 +122,7 @@ function useApiRoutes(config, app, customizer) {
|
|
|
122
122
|
app.get('/api/pages/:name', async (req, res) => {
|
|
123
123
|
try {
|
|
124
124
|
const { name } = req.params;
|
|
125
|
-
const metadata = await (0, pages_1.loadPageMetadata)(config
|
|
125
|
+
const metadata = await (0, pages_1.loadPageMetadata)(config, name, config.requiredPagesFolders);
|
|
126
126
|
if (metadata) {
|
|
127
127
|
res.json(metadata);
|
|
128
128
|
}
|
|
@@ -172,7 +172,7 @@ function useApiRoutes(config, app, customizer) {
|
|
|
172
172
|
return;
|
|
173
173
|
}
|
|
174
174
|
// Load existing metadata (or defaults)
|
|
175
|
-
const existing = await (0, pages_1.loadPageMetadata)(config
|
|
175
|
+
const existing = await (0, pages_1.loadPageMetadata)(config, name, config.requiredPagesFolders);
|
|
176
176
|
const metadata = {
|
|
177
177
|
title: existing?.title ?? '',
|
|
178
178
|
categories: existing?.categories ?? [],
|
|
@@ -199,19 +199,22 @@ function useApiRoutes(config, app, customizer) {
|
|
|
199
199
|
// Promote required page to user folder if being unlocked/designed
|
|
200
200
|
if (metadata.mode !== 'locked') {
|
|
201
201
|
const userPagePath = path_1.default.join(config.pagesFolder, 'pages', name, 'page.html');
|
|
202
|
-
if (!(await
|
|
202
|
+
if (!(await sp.checkIfExists(userPagePath))) {
|
|
203
|
+
// Read from required pages (package content, always local fs)
|
|
203
204
|
let html;
|
|
204
205
|
for (const folder of config.requiredPagesFolders) {
|
|
205
|
-
|
|
206
|
-
if (
|
|
206
|
+
const candidate = path_1.default.join(folder, name, 'page.html');
|
|
207
|
+
if (await (0, files_1.checkIfExists)(candidate)) {
|
|
208
|
+
html = await (0, files_1.loadFile)(candidate);
|
|
207
209
|
break;
|
|
210
|
+
}
|
|
208
211
|
}
|
|
209
212
|
if (html) {
|
|
210
|
-
await (0, pages_1.savePageState)(config
|
|
213
|
+
await (0, pages_1.savePageState)(config, name, html);
|
|
211
214
|
}
|
|
212
215
|
}
|
|
213
216
|
}
|
|
214
|
-
await (0, pages_1.savePageMetadata)(config
|
|
217
|
+
await (0, pages_1.savePageMetadata)(config, name, metadata);
|
|
215
218
|
res.json(metadata);
|
|
216
219
|
}
|
|
217
220
|
catch (err) {
|
|
@@ -229,7 +232,7 @@ function useApiRoutes(config, app, customizer) {
|
|
|
229
232
|
return;
|
|
230
233
|
}
|
|
231
234
|
// Load existing metadata (user override → fallback .json → defaults)
|
|
232
|
-
let metadata = await (0, pages_1.loadPageMetadata)(config
|
|
235
|
+
let metadata = await (0, pages_1.loadPageMetadata)(config, name, config.requiredPagesFolders);
|
|
233
236
|
if (!metadata) {
|
|
234
237
|
metadata = {
|
|
235
238
|
title: '',
|
|
@@ -243,7 +246,7 @@ function useApiRoutes(config, app, customizer) {
|
|
|
243
246
|
};
|
|
244
247
|
}
|
|
245
248
|
metadata.pinned = pinned;
|
|
246
|
-
await (0, pages_1.savePageMetadata)(config
|
|
249
|
+
await (0, pages_1.savePageMetadata)(config, name, metadata);
|
|
247
250
|
res.json(metadata);
|
|
248
251
|
}
|
|
249
252
|
catch (err) {
|
|
@@ -263,12 +266,12 @@ function useApiRoutes(config, app, customizer) {
|
|
|
263
266
|
// Check if page exists (folder-based or legacy flat file)
|
|
264
267
|
const folderPath = path_1.default.join(config.pagesFolder, 'pages', name, 'page.html');
|
|
265
268
|
const flatPath = path_1.default.join(config.pagesFolder, `${name}.html`);
|
|
266
|
-
const exists = await
|
|
269
|
+
const exists = await sp.checkIfExists(folderPath) || await sp.checkIfExists(flatPath);
|
|
267
270
|
if (!exists) {
|
|
268
271
|
res.status(404).json({ error: `Page "${name}" not found` });
|
|
269
272
|
return;
|
|
270
273
|
}
|
|
271
|
-
await (0, pages_1.deletePage)(config
|
|
274
|
+
await (0, pages_1.deletePage)(config, name);
|
|
272
275
|
res.json({ deleted: true });
|
|
273
276
|
}
|
|
274
277
|
catch (err) {
|
|
@@ -283,7 +286,7 @@ function useApiRoutes(config, app, customizer) {
|
|
|
283
286
|
// Resolve page folder: user pages first, then required pages
|
|
284
287
|
let pageFolder;
|
|
285
288
|
const userFolder = path_1.default.join(config.pagesFolder, 'pages', name);
|
|
286
|
-
if (await
|
|
289
|
+
if (await sp.checkIfExists(path_1.default.join(userFolder, 'page.html'))) {
|
|
287
290
|
pageFolder = userFolder;
|
|
288
291
|
}
|
|
289
292
|
else {
|
|
@@ -301,13 +304,22 @@ function useApiRoutes(config, app, customizer) {
|
|
|
301
304
|
}
|
|
302
305
|
// List subdirectories, filtering out non-table entries
|
|
303
306
|
const EXCLUDED = new Set(['files']);
|
|
304
|
-
|
|
307
|
+
// Use provider for user folder, local fs for required pages
|
|
308
|
+
const isUserFolder = pageFolder === userFolder;
|
|
309
|
+
const subdirs = isUserFolder
|
|
310
|
+
? await sp.listFolders(pageFolder)
|
|
311
|
+
: await (0, files_1.listFolders)(pageFolder);
|
|
305
312
|
const tables = subdirs.filter(d => !EXCLUDED.has(d));
|
|
306
313
|
// Check if files/ exists and has entries
|
|
307
314
|
const filesDir = path_1.default.join(pageFolder, 'files');
|
|
308
315
|
let hasFiles = false;
|
|
309
|
-
|
|
310
|
-
|
|
316
|
+
const filesDirExists = isUserFolder
|
|
317
|
+
? await sp.checkIfExists(filesDir)
|
|
318
|
+
: await (0, files_1.checkIfExists)(filesDir);
|
|
319
|
+
if (filesDirExists) {
|
|
320
|
+
const entries = isUserFolder
|
|
321
|
+
? await sp.listFiles(filesDir)
|
|
322
|
+
: await (0, files_1.listFiles)(filesDir);
|
|
311
323
|
hasFiles = entries.length > 0;
|
|
312
324
|
}
|
|
313
325
|
res.json({ tables, hasFiles });
|
|
@@ -347,8 +359,8 @@ function useApiRoutes(config, app, customizer) {
|
|
|
347
359
|
break;
|
|
348
360
|
}
|
|
349
361
|
}
|
|
350
|
-
const sourceExists = await
|
|
351
|
-
|| await
|
|
362
|
+
const sourceExists = await sp.checkIfExists(sourceFolderPath)
|
|
363
|
+
|| await sp.checkIfExists(sourceFlatPath)
|
|
352
364
|
|| !!sourceRequiredPath;
|
|
353
365
|
if (!sourceExists) {
|
|
354
366
|
res.status(404).json({ error: `Source page "${sourceName}" not found` });
|
|
@@ -357,16 +369,16 @@ function useApiRoutes(config, app, customizer) {
|
|
|
357
369
|
// Check target doesn't already exist
|
|
358
370
|
const targetFolderPath = path_1.default.join(config.pagesFolder, 'pages', targetName, 'page.html');
|
|
359
371
|
const targetFlatPath = path_1.default.join(config.pagesFolder, `${targetName}.html`);
|
|
360
|
-
if (await
|
|
372
|
+
if (await sp.checkIfExists(targetFolderPath) || await sp.checkIfExists(targetFlatPath)) {
|
|
361
373
|
res.status(409).json({ error: `Page "${targetName}" already exists` });
|
|
362
374
|
return;
|
|
363
375
|
}
|
|
364
|
-
await (0, pages_1.copyPage)(config
|
|
376
|
+
await (0, pages_1.copyPage)(config, sourceName, targetName, typeof title === 'string' ? title : '', Array.isArray(categories) ? categories : [], config.requiredPagesFolders, {
|
|
365
377
|
copyTables: copyTables === true,
|
|
366
378
|
copyFiles: copyFiles !== false, // default true
|
|
367
379
|
});
|
|
368
380
|
// Return the new page metadata
|
|
369
|
-
const metadata = await (0, pages_1.loadPageMetadata)(config
|
|
381
|
+
const metadata = await (0, pages_1.loadPageMetadata)(config, targetName);
|
|
370
382
|
res.status(201).json({ name: targetName, ...metadata });
|
|
371
383
|
}
|
|
372
384
|
catch (err) {
|
|
@@ -376,7 +388,7 @@ function useApiRoutes(config, app, customizer) {
|
|
|
376
388
|
});
|
|
377
389
|
// Define a route to return settings
|
|
378
390
|
app.get('/api/settings', async (req, res) => {
|
|
379
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
391
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
380
392
|
const providers = createCompletePrompt_1.PROVIDERS.map(p => ({ name: p.name, builderModels: p.builderModels, chatModels: p.chatModels }));
|
|
381
393
|
res.json({ ...settings, providers });
|
|
382
394
|
});
|
|
@@ -395,7 +407,7 @@ function useApiRoutes(config, app, customizer) {
|
|
|
395
407
|
}
|
|
396
408
|
}
|
|
397
409
|
// Save settings
|
|
398
|
-
await (0, settings_1.saveSettings)(config
|
|
410
|
+
await (0, settings_1.saveSettings)(config, settings);
|
|
399
411
|
res.redirect('/builder');
|
|
400
412
|
}
|
|
401
413
|
catch (err) {
|
|
@@ -405,7 +417,7 @@ function useApiRoutes(config, app, customizer) {
|
|
|
405
417
|
});
|
|
406
418
|
// Define a route to generate an image
|
|
407
419
|
app.post('/api/generate/image', async (req, res) => {
|
|
408
|
-
await (0, requiresSettings_1.requiresSettings)(res, config
|
|
420
|
+
await (0, requiresSettings_1.requiresSettings)(res, config, async (settings) => {
|
|
409
421
|
const { prompt, shape, style } = req.body;
|
|
410
422
|
const builder = (0, settings_1.getModelEntry)(settings, 'builder');
|
|
411
423
|
const { configuration, imageQuality, provider } = builder;
|
|
@@ -422,9 +434,9 @@ function useApiRoutes(config, app, customizer) {
|
|
|
422
434
|
});
|
|
423
435
|
// Define a route to generate a completion using chain-of-thought
|
|
424
436
|
app.post('/api/generate/completion', async (req, res) => {
|
|
425
|
-
await (0, requiresSettings_1.requiresSettings)(res, config
|
|
437
|
+
await (0, requiresSettings_1.requiresSettings)(res, config, async (settings) => {
|
|
426
438
|
const { prompt, temperature } = req.body;
|
|
427
|
-
const completePrompt = await (0, createCompletePrompt_1.createCompletePrompt)(config
|
|
439
|
+
const completePrompt = await (0, createCompletePrompt_1.createCompletePrompt)(config, 'chat', req.body.model);
|
|
428
440
|
const response = await (0, models_1.chainOfThought)({ question: prompt, temperature, completePrompt });
|
|
429
441
|
if (response.completed) {
|
|
430
442
|
res.json(response.value ?? {});
|
|
@@ -438,9 +450,9 @@ function useApiRoutes(config, app, customizer) {
|
|
|
438
450
|
// Brainstorm endpoint
|
|
439
451
|
if (!customizer || customizer.isEnabled('brainstorm'))
|
|
440
452
|
app.post('/api/brainstorm', async (req, res) => {
|
|
441
|
-
await (0, requiresSettings_1.requiresSettings)(res, config
|
|
453
|
+
await (0, requiresSettings_1.requiresSettings)(res, config, async (settings) => {
|
|
442
454
|
const { context, messages } = req.body;
|
|
443
|
-
const completePrompt = await (0, createCompletePrompt_1.createCompletePrompt)(config
|
|
455
|
+
const completePrompt = await (0, createCompletePrompt_1.createCompletePrompt)(config, 'chat');
|
|
444
456
|
const productName = customizer?.productName ?? 'SynthOS';
|
|
445
457
|
const system = {
|
|
446
458
|
role: 'system',
|
|
@@ -509,11 +521,10 @@ Return ONLY the JSON object.`
|
|
|
509
521
|
// Define a route for running configured scripts
|
|
510
522
|
if (!customizer || customizer.isEnabled('scripts'))
|
|
511
523
|
app.post('/api/scripts/:id', async (req, res) => {
|
|
512
|
-
await (0, requiresSettings_1.requiresSettings)(res, config
|
|
524
|
+
await (0, requiresSettings_1.requiresSettings)(res, config, async (settings) => {
|
|
513
525
|
const { id } = req.params;
|
|
514
|
-
const pagesFolder = config.pagesFolder;
|
|
515
526
|
const scriptId = id;
|
|
516
|
-
const response = await (0, scripts_1.executeScript)({ pagesFolder, scriptId, variables: req.body });
|
|
527
|
+
const response = await (0, scripts_1.executeScript)({ pagesFolder: config.pagesFolder, scriptId, variables: req.body });
|
|
517
528
|
if (response.completed) {
|
|
518
529
|
// Return the response as text
|
|
519
530
|
const value = (response.value?.output ?? (response.value?.errors ?? []).join('\n')).trim();
|
|
@@ -529,7 +540,7 @@ Return ONLY the JSON object.`
|
|
|
529
540
|
// Return theme info as a self-executing JS script
|
|
530
541
|
app.get('/api/theme-info.js', async (req, res) => {
|
|
531
542
|
try {
|
|
532
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
543
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
533
544
|
const themeName = settings.theme ?? 'nebula-dusk';
|
|
534
545
|
const info = await (0, themes_1.loadThemeInfo)(themeName, config);
|
|
535
546
|
if (!info) {
|
|
@@ -559,12 +570,13 @@ Return ONLY the JSON object.`
|
|
|
559
570
|
res.status(400).send('// Missing page query parameter');
|
|
560
571
|
return;
|
|
561
572
|
}
|
|
562
|
-
const metadata = await (0, pages_1.loadPageMetadata)(config
|
|
573
|
+
const metadata = await (0, pages_1.loadPageMetadata)(config, page, config.requiredPagesFolders);
|
|
563
574
|
const mode = metadata?.mode ?? 'unlocked';
|
|
564
575
|
const title = metadata?.title ?? '';
|
|
565
576
|
const categories = metadata?.categories ?? [];
|
|
566
577
|
const isRequiredPage = config.requiredPages.includes(page);
|
|
567
|
-
const
|
|
578
|
+
const productName = customizer?.productName ?? 'SynthOS';
|
|
579
|
+
const info = JSON.stringify({ name: page, mode, latestPageVersion: pages_1.PAGE_VERSION, title, categories, isRequiredPage, productName });
|
|
568
580
|
const js = [
|
|
569
581
|
`window.pageInfo=${info};`,
|
|
570
582
|
`if(window.pageInfo.mode==="locked"){`,
|
|
@@ -585,7 +597,7 @@ Return ONLY the JSON object.`
|
|
|
585
597
|
// Return the current theme as CSS
|
|
586
598
|
app.get('/api/theme.css', async (req, res) => {
|
|
587
599
|
try {
|
|
588
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
600
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
589
601
|
const themeName = settings.theme ?? 'nebula-dusk';
|
|
590
602
|
const css = await (0, themes_1.loadTheme)(themeName, config);
|
|
591
603
|
if (!css) {
|
|
@@ -667,7 +679,7 @@ Return ONLY the JSON object.`
|
|
|
667
679
|
// Return user's configured services (API keys masked)
|
|
668
680
|
app.get('/api/services', async (_req, res) => {
|
|
669
681
|
try {
|
|
670
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
682
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
671
683
|
const services = settings.services ?? {};
|
|
672
684
|
const masked = {};
|
|
673
685
|
for (const [id, cfg] of Object.entries(services)) {
|
|
@@ -687,7 +699,7 @@ Return ONLY the JSON object.`
|
|
|
687
699
|
app.post('/api/services', async (req, res) => {
|
|
688
700
|
try {
|
|
689
701
|
const incoming = req.body;
|
|
690
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
702
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
691
703
|
const existing = settings.services ?? {};
|
|
692
704
|
// Build merged config — empty apiKey means "keep existing"
|
|
693
705
|
const merged = {};
|
|
@@ -707,7 +719,7 @@ Return ONLY the JSON object.`
|
|
|
707
719
|
}
|
|
708
720
|
}
|
|
709
721
|
}
|
|
710
|
-
await (0, settings_1.saveSettings)(config
|
|
722
|
+
await (0, settings_1.saveSettings)(config, { services: merged });
|
|
711
723
|
res.json({ saved: true });
|
|
712
724
|
}
|
|
713
725
|
catch (err) {
|
|
@@ -726,7 +738,7 @@ Return ONLY the JSON object.`
|
|
|
726
738
|
res.status(400).json({ error: 'query is required' });
|
|
727
739
|
return;
|
|
728
740
|
}
|
|
729
|
-
const settings = await (0, settings_1.loadSettings)(config
|
|
741
|
+
const settings = await (0, settings_1.loadSettings)(config);
|
|
730
742
|
const braveConfig = settings.connectors?.['brave-search'] ?? settings.services?.['brave-search'];
|
|
731
743
|
if (!braveConfig || !braveConfig.enabled || !braveConfig.apiKey) {
|
|
732
744
|
res.status(400).json({ error: 'Brave Search is not configured or not enabled. Add your API key in Settings > Services.' });
|
|
@@ -769,7 +781,7 @@ Return ONLY the JSON object.`
|
|
|
769
781
|
try {
|
|
770
782
|
const { name } = req.params;
|
|
771
783
|
// Load current metadata
|
|
772
|
-
const metadata = await (0, pages_1.loadPageMetadata)(config
|
|
784
|
+
const metadata = await (0, pages_1.loadPageMetadata)(config, name, config.requiredPagesFolders);
|
|
773
785
|
if (!metadata) {
|
|
774
786
|
res.status(404).json({ error: `Page "${name}" not found` });
|
|
775
787
|
return;
|
|
@@ -786,29 +798,31 @@ Return ONLY the JSON object.`
|
|
|
786
798
|
return;
|
|
787
799
|
}
|
|
788
800
|
// Run LLM-based migration
|
|
789
|
-
const completePrompt = await (0, createCompletePrompt_1.createCompletePrompt)(config
|
|
801
|
+
const completePrompt = await (0, createCompletePrompt_1.createCompletePrompt)(config, 'builder');
|
|
790
802
|
const migratedHtml = await (0, migrations_1.migratePage)(html, currentVersion, pages_1.PAGE_VERSION, completePrompt);
|
|
791
803
|
// Save upgraded HTML to v2 folder structure
|
|
792
|
-
await (0, pages_1.savePageState)(config
|
|
804
|
+
await (0, pages_1.savePageState)(config, name, migratedHtml);
|
|
793
805
|
// Backup original page to .migrated/ before overwriting
|
|
794
806
|
const migratedFolder = path_1.default.join(config.pagesFolder, '.migrated');
|
|
795
807
|
// Handle legacy flat file (<localFolder>/pagename.html)
|
|
796
808
|
const flatPath = path_1.default.join(config.pagesFolder, `${name}.html`);
|
|
797
|
-
if (await
|
|
798
|
-
await
|
|
799
|
-
await
|
|
809
|
+
if (await sp.checkIfExists(flatPath)) {
|
|
810
|
+
await sp.ensureFolderExists(migratedFolder);
|
|
811
|
+
const flatData = await sp.loadBuffer(flatPath);
|
|
812
|
+
await sp.saveBuffer(path_1.default.join(migratedFolder, `${name}.html`), flatData);
|
|
813
|
+
await sp.deleteFile(flatPath);
|
|
800
814
|
}
|
|
801
815
|
// Handle folder-based page (<localFolder>/pages/name/)
|
|
802
816
|
const folderPath = path_1.default.join(config.pagesFolder, 'pages', name);
|
|
803
|
-
if (await
|
|
804
|
-
await
|
|
817
|
+
if (await sp.checkIfExists(folderPath)) {
|
|
818
|
+
await sp.copyFolderRecursive(folderPath, path_1.default.join(migratedFolder, name));
|
|
805
819
|
}
|
|
806
820
|
// Clear stale version files (undo snapshots from the old page version)
|
|
807
|
-
await (0, pages_1.clearVersions)(config
|
|
821
|
+
await (0, pages_1.clearVersions)(config, name);
|
|
808
822
|
// Update metadata
|
|
809
823
|
metadata.pageVersion = pages_1.PAGE_VERSION;
|
|
810
824
|
metadata.lastModified = new Date().toISOString();
|
|
811
|
-
await (0, pages_1.savePageMetadata)(config
|
|
825
|
+
await (0, pages_1.savePageMetadata)(config, name, metadata);
|
|
812
826
|
res.json({ upgraded: true, fromVersion: currentVersion, toVersion: pages_1.PAGE_VERSION });
|
|
813
827
|
}
|
|
814
828
|
catch (err) {
|
|
@@ -824,13 +838,13 @@ Return ONLY the JSON object.`
|
|
|
824
838
|
const userPageDir = path_1.default.join(config.pagesFolder, 'pages', name);
|
|
825
839
|
let requiredPageDir;
|
|
826
840
|
for (const folder of config.requiredPagesFolders) {
|
|
827
|
-
if (await (0, files_1.checkIfExists)(path_1.default.join(folder, name, 'page.html'))) {
|
|
841
|
+
if (await (0, files_1.checkIfExists)(path_1.default.join(folder, name, 'page.html'))) { // package content, local fs
|
|
828
842
|
requiredPageDir = path_1.default.join(folder, name);
|
|
829
843
|
break;
|
|
830
844
|
}
|
|
831
845
|
}
|
|
832
846
|
let sourceDir = null;
|
|
833
|
-
if (await
|
|
847
|
+
if (await sp.checkIfExists(path_1.default.join(userPageDir, 'page.html'))) {
|
|
834
848
|
sourceDir = userPageDir;
|
|
835
849
|
}
|
|
836
850
|
else if (requiredPageDir) {
|
|
@@ -869,7 +883,7 @@ Return ONLY the JSON object.`
|
|
|
869
883
|
});
|
|
870
884
|
// Ask a question about a page (with full page HTML context)
|
|
871
885
|
app.post('/api/pages/:name/ask', async (req, res) => {
|
|
872
|
-
await (0, requiresSettings_1.requiresSettings)(res, config
|
|
886
|
+
await (0, requiresSettings_1.requiresSettings)(res, config, async (settings) => {
|
|
873
887
|
const { name } = req.params;
|
|
874
888
|
const { question } = req.body;
|
|
875
889
|
if (typeof question !== 'string' || !question.trim()) {
|
|
@@ -883,7 +897,7 @@ Return ONLY the JSON object.`
|
|
|
883
897
|
return;
|
|
884
898
|
}
|
|
885
899
|
// Create completion (uses 'chat' model, not 'builder')
|
|
886
|
-
const complete = await (0, createCompletePrompt_1.createCompletePrompt)(config
|
|
900
|
+
const complete = await (0, createCompletePrompt_1.createCompletePrompt)(config, 'chat', req.body.model);
|
|
887
901
|
const system = {
|
|
888
902
|
role: 'system',
|
|
889
903
|
content: `You are a helpful assistant. The user will ask questions about a web page. Answer based on the page content provided.\n\n<PAGE_HTML>\n${html}`
|