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.
Files changed (263) hide show
  1. package/README.md +215 -65
  2. package/default-pages/application.json +1 -0
  3. package/default-pages/json_tools.json +1 -1
  4. package/default-pages/oregon_trail.html +321 -0
  5. package/default-pages/oregon_trail.json +12 -0
  6. package/default-pages/sidebar_page.json +1 -0
  7. package/default-pages/solar_explorer.html +10 -18
  8. package/default-pages/solar_explorer.json +2 -2
  9. package/default-pages/two-panel_page.json +1 -0
  10. package/default-pages/us_map.html +192 -0
  11. package/default-pages/us_map.json +12 -0
  12. package/default-pages/us_map_1850.html +325 -0
  13. package/default-pages/us_map_1850.json +12 -0
  14. package/default-pages/western_cities_1850.html +526 -0
  15. package/default-pages/western_cities_1850.json +12 -0
  16. package/default-themes/{nebula-dawn.css → nebula-dawn.v2.css} +24 -0
  17. package/default-themes/{nebula-dusk.css → nebula-dusk.v2.css} +24 -0
  18. package/dist/agents/a2a/a2aProvider.d.ts +3 -0
  19. package/dist/agents/a2a/a2aProvider.d.ts.map +1 -0
  20. package/dist/agents/a2a/a2aProvider.js +126 -0
  21. package/dist/agents/a2a/a2aProvider.js.map +1 -0
  22. package/dist/agents/discovery.d.ts +30 -0
  23. package/dist/agents/discovery.d.ts.map +1 -0
  24. package/dist/agents/discovery.js +52 -0
  25. package/dist/agents/discovery.js.map +1 -0
  26. package/dist/agents/index.d.ts +7 -0
  27. package/dist/agents/index.d.ts.map +1 -0
  28. package/dist/agents/index.js +19 -0
  29. package/dist/agents/index.js.map +1 -0
  30. package/dist/agents/openclaw/gatewayManager.d.ts +113 -0
  31. package/dist/agents/openclaw/gatewayManager.d.ts.map +1 -0
  32. package/dist/agents/openclaw/gatewayManager.js +470 -0
  33. package/dist/agents/openclaw/gatewayManager.js.map +1 -0
  34. package/dist/agents/openclaw/openclawProvider.d.ts +3 -0
  35. package/dist/agents/openclaw/openclawProvider.d.ts.map +1 -0
  36. package/dist/agents/openclaw/openclawProvider.js +239 -0
  37. package/dist/agents/openclaw/openclawProvider.js.map +1 -0
  38. package/dist/agents/openclaw/sshTunnelManager.d.ts +23 -0
  39. package/dist/agents/openclaw/sshTunnelManager.d.ts.map +1 -0
  40. package/dist/agents/openclaw/sshTunnelManager.js +340 -0
  41. package/dist/agents/openclaw/sshTunnelManager.js.map +1 -0
  42. package/dist/agents/types.d.ts +64 -0
  43. package/dist/agents/types.d.ts.map +1 -0
  44. package/dist/agents/types.js +6 -0
  45. package/dist/agents/types.js.map +1 -0
  46. package/dist/connectors/airtable/connector.json +27 -0
  47. package/dist/connectors/alpha-vantage/connector.json +26 -0
  48. package/dist/connectors/brave-search/connector.json +26 -0
  49. package/dist/connectors/cloudinary/connector.json +27 -0
  50. package/dist/connectors/deepl/connector.json +28 -0
  51. package/dist/connectors/elevenlabs/connector.json +30 -0
  52. package/dist/connectors/giphy/connector.json +27 -0
  53. package/dist/connectors/github/connector.json +29 -0
  54. package/dist/connectors/huggingface/connector.json +27 -0
  55. package/dist/connectors/imgur/connector.json +29 -0
  56. package/dist/connectors/index.d.ts +1 -1
  57. package/dist/connectors/index.d.ts.map +1 -1
  58. package/dist/connectors/instagram/connector.json +43 -0
  59. package/dist/connectors/jira/connector.json +28 -0
  60. package/dist/connectors/mapbox/connector.json +26 -0
  61. package/dist/connectors/nasa/connector.json +27 -0
  62. package/dist/connectors/newsapi/connector.json +27 -0
  63. package/dist/connectors/notion/connector.json +28 -0
  64. package/dist/connectors/open-exchange-rates/connector.json +27 -0
  65. package/dist/connectors/openweathermap/connector.json +26 -0
  66. package/dist/connectors/pexels/connector.json +27 -0
  67. package/dist/connectors/registry.d.ts.map +1 -1
  68. package/dist/connectors/registry.js +42 -96
  69. package/dist/connectors/registry.js.map +1 -1
  70. package/dist/connectors/resend/connector.json +29 -0
  71. package/dist/connectors/rss2json/connector.json +27 -0
  72. package/dist/connectors/sendgrid/connector.json +27 -0
  73. package/dist/connectors/spoonacular/connector.json +28 -0
  74. package/dist/connectors/stability-ai/connector.json +27 -0
  75. package/dist/connectors/twilio/connector.json +28 -0
  76. package/dist/connectors/types.d.ts +23 -0
  77. package/dist/connectors/types.d.ts.map +1 -1
  78. package/dist/connectors/unsplash/connector.json +27 -0
  79. package/dist/connectors/wolfram-alpha/connector.json +26 -0
  80. package/dist/connectors/youtube-data/connector.json +30 -0
  81. package/dist/files.d.ts +1 -0
  82. package/dist/files.d.ts.map +1 -1
  83. package/dist/files.js +16 -1
  84. package/dist/files.js.map +1 -1
  85. package/dist/init.d.ts.map +1 -1
  86. package/dist/init.js +28 -0
  87. package/dist/init.js.map +1 -1
  88. package/dist/migrations.d.ts +3 -2
  89. package/dist/migrations.d.ts.map +1 -1
  90. package/dist/migrations.js +122 -138
  91. package/dist/migrations.js.map +1 -1
  92. package/dist/models/anthropic.d.ts +22 -0
  93. package/dist/models/anthropic.d.ts.map +1 -0
  94. package/dist/models/anthropic.js +76 -0
  95. package/dist/models/anthropic.js.map +1 -0
  96. package/dist/models/chainOfThought.d.ts +12 -0
  97. package/dist/models/chainOfThought.d.ts.map +1 -0
  98. package/dist/models/chainOfThought.js +45 -0
  99. package/dist/models/chainOfThought.js.map +1 -0
  100. package/dist/models/fireworksai.d.ts +30 -0
  101. package/dist/models/fireworksai.d.ts.map +1 -0
  102. package/dist/models/fireworksai.js +133 -0
  103. package/dist/models/fireworksai.js.map +1 -0
  104. package/dist/models/index.d.ts +7 -1
  105. package/dist/models/index.d.ts.map +1 -1
  106. package/dist/models/index.js +19 -1
  107. package/dist/models/index.js.map +1 -1
  108. package/dist/models/logCompletePrompt.d.ts +3 -0
  109. package/dist/models/logCompletePrompt.d.ts.map +1 -0
  110. package/dist/models/logCompletePrompt.js +23 -0
  111. package/dist/models/logCompletePrompt.js.map +1 -0
  112. package/dist/models/openai.d.ts +24 -0
  113. package/dist/models/openai.d.ts.map +1 -0
  114. package/dist/models/openai.js +80 -0
  115. package/dist/models/openai.js.map +1 -0
  116. package/dist/models/providers.d.ts +1 -0
  117. package/dist/models/providers.d.ts.map +1 -1
  118. package/dist/models/providers.js +12 -4
  119. package/dist/models/providers.js.map +1 -1
  120. package/dist/models/types.d.ts +34 -2
  121. package/dist/models/types.d.ts.map +1 -1
  122. package/dist/models/types.js +16 -0
  123. package/dist/models/types.js.map +1 -1
  124. package/dist/models/utils.d.ts +6 -0
  125. package/dist/models/utils.d.ts.map +1 -0
  126. package/dist/models/utils.js +21 -0
  127. package/dist/models/utils.js.map +1 -0
  128. package/dist/scripts.d.ts +2 -1
  129. package/dist/scripts.d.ts.map +1 -1
  130. package/dist/scripts.js +4 -3
  131. package/dist/scripts.js.map +1 -1
  132. package/dist/service/createCompletePrompt.d.ts +1 -1
  133. package/dist/service/createCompletePrompt.d.ts.map +1 -1
  134. package/dist/service/createCompletePrompt.js +9 -6
  135. package/dist/service/createCompletePrompt.js.map +1 -1
  136. package/dist/service/generateImage.d.ts +1 -1
  137. package/dist/service/generateImage.d.ts.map +1 -1
  138. package/dist/service/generateImage.js +3 -3
  139. package/dist/service/generateImage.js.map +1 -1
  140. package/dist/service/server.d.ts.map +1 -1
  141. package/dist/service/server.js +3 -0
  142. package/dist/service/server.js.map +1 -1
  143. package/dist/service/transformPage.d.ts +4 -2
  144. package/dist/service/transformPage.d.ts.map +1 -1
  145. package/dist/service/transformPage.js +74 -6
  146. package/dist/service/transformPage.js.map +1 -1
  147. package/dist/service/useAgentRoutes.d.ts +4 -0
  148. package/dist/service/useAgentRoutes.d.ts.map +1 -0
  149. package/dist/service/useAgentRoutes.js +389 -0
  150. package/dist/service/useAgentRoutes.js.map +1 -0
  151. package/dist/service/useApiRoutes.d.ts.map +1 -1
  152. package/dist/service/useApiRoutes.js +157 -16
  153. package/dist/service/useApiRoutes.js.map +1 -1
  154. package/dist/service/useConnectorRoutes.d.ts.map +1 -1
  155. package/dist/service/useConnectorRoutes.js +14 -3
  156. package/dist/service/useConnectorRoutes.js.map +1 -1
  157. package/dist/service/useGatewayRoutes.d.ts +4 -0
  158. package/dist/service/useGatewayRoutes.d.ts.map +1 -0
  159. package/dist/service/useGatewayRoutes.js +168 -0
  160. package/dist/service/useGatewayRoutes.js.map +1 -0
  161. package/dist/service/usePageRoutes.d.ts.map +1 -1
  162. package/dist/service/usePageRoutes.js +16 -5
  163. package/dist/service/usePageRoutes.js.map +1 -1
  164. package/dist/settings.d.ts +2 -1
  165. package/dist/settings.d.ts.map +1 -1
  166. package/dist/settings.js +4 -8
  167. package/dist/settings.js.map +1 -1
  168. package/dist/themes.d.ts +14 -0
  169. package/dist/themes.d.ts.map +1 -1
  170. package/dist/themes.js +86 -13
  171. package/dist/themes.js.map +1 -1
  172. package/package.json +10 -5
  173. package/page-scripts/helpers-v2.js +222 -0
  174. package/page-scripts/page-v2.js +656 -0
  175. package/required-pages/builder.html +1 -27
  176. package/required-pages/pages.html +745 -22
  177. package/required-pages/settings.html +819 -21
  178. package/required-pages/synthos_apis.html +56 -1
  179. package/src/agents/a2a/a2aProvider.ts +110 -0
  180. package/src/agents/discovery.ts +74 -0
  181. package/src/agents/index.ts +6 -0
  182. package/src/agents/openclaw/gatewayManager.ts +559 -0
  183. package/src/agents/openclaw/openclawProvider.ts +261 -0
  184. package/src/agents/openclaw/sshTunnelManager.ts +385 -0
  185. package/src/agents/types.ts +82 -0
  186. package/src/connectors/airtable/connector.json +27 -0
  187. package/src/connectors/alpha-vantage/connector.json +26 -0
  188. package/src/connectors/brave-search/connector.json +26 -0
  189. package/src/connectors/cloudinary/connector.json +27 -0
  190. package/src/connectors/deepl/connector.json +28 -0
  191. package/src/connectors/elevenlabs/connector.json +30 -0
  192. package/src/connectors/giphy/connector.json +27 -0
  193. package/src/connectors/github/connector.json +29 -0
  194. package/src/connectors/huggingface/connector.json +27 -0
  195. package/src/connectors/imgur/connector.json +29 -0
  196. package/src/connectors/index.ts +2 -0
  197. package/src/connectors/instagram/connector.json +43 -0
  198. package/src/connectors/jira/connector.json +28 -0
  199. package/src/connectors/mapbox/connector.json +26 -0
  200. package/src/connectors/nasa/connector.json +27 -0
  201. package/src/connectors/newsapi/connector.json +27 -0
  202. package/src/connectors/notion/connector.json +28 -0
  203. package/src/connectors/open-exchange-rates/connector.json +27 -0
  204. package/src/connectors/openweathermap/connector.json +26 -0
  205. package/src/connectors/pexels/connector.json +27 -0
  206. package/src/connectors/registry.ts +21 -97
  207. package/src/connectors/resend/connector.json +29 -0
  208. package/src/connectors/rss2json/connector.json +27 -0
  209. package/src/connectors/sendgrid/connector.json +27 -0
  210. package/src/connectors/spoonacular/connector.json +28 -0
  211. package/src/connectors/stability-ai/connector.json +27 -0
  212. package/src/connectors/twilio/connector.json +28 -0
  213. package/src/connectors/types.ts +25 -0
  214. package/src/connectors/unsplash/connector.json +27 -0
  215. package/src/connectors/wolfram-alpha/connector.json +26 -0
  216. package/src/connectors/youtube-data/connector.json +30 -0
  217. package/src/files.ts +14 -0
  218. package/src/init.ts +27 -0
  219. package/src/migrations.ts +121 -138
  220. package/src/models/anthropic.ts +89 -0
  221. package/src/models/chainOfThought.ts +56 -0
  222. package/src/models/fireworksai.ts +136 -0
  223. package/src/models/index.ts +7 -1
  224. package/src/models/logCompletePrompt.ts +25 -0
  225. package/src/models/openai.ts +90 -0
  226. package/src/models/providers.ts +12 -3
  227. package/src/models/types.ts +67 -2
  228. package/src/models/utils.ts +16 -0
  229. package/src/scripts.ts +2 -2
  230. package/src/service/createCompletePrompt.ts +3 -1
  231. package/src/service/generateImage.ts +2 -2
  232. package/src/service/server.ts +4 -0
  233. package/src/service/transformPage.ts +81 -8
  234. package/src/service/useAgentRoutes.ts +423 -0
  235. package/src/service/useApiRoutes.ts +173 -18
  236. package/src/service/useConnectorRoutes.ts +14 -3
  237. package/src/service/usePageRoutes.ts +20 -6
  238. package/src/settings.ts +6 -10
  239. package/src/themes.ts +84 -12
  240. package/tests/README.md +12 -0
  241. package/tests/anthropic.spec.ts +84 -0
  242. package/tests/chainOfThought.spec.ts +108 -0
  243. package/tests/ensureScripts.spec.ts +82 -0
  244. package/tests/files.spec.ts +233 -0
  245. package/tests/fireworksai.spec.ts +92 -0
  246. package/tests/logCompletePrompt.spec.ts +74 -0
  247. package/tests/migrations.spec.ts +169 -0
  248. package/tests/openai.spec.ts +71 -0
  249. package/tests/pages.spec.ts +328 -0
  250. package/tests/providers.spec.ts +144 -0
  251. package/tests/scripts.spec.ts +209 -0
  252. package/tests/transformPage.spec.ts +931 -0
  253. package/tests/types.spec.ts +23 -0
  254. package/default-pages/app_builder.json +0 -1
  255. package/default-pages/sidebar_builder.json +0 -1
  256. package/default-pages/two-panel_builder.json +0 -1
  257. package/images/home.png +0 -0
  258. package/images/page-management.png +0 -0
  259. package/images/settings.png +0 -0
  260. package/images/synthos-square.png +0 -0
  261. /package/default-pages/{app_builder.html → application.html} +0 -0
  262. /package/default-pages/{sidebar_builder.html → sidebar_page.html} +0 -0
  263. /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":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { completePrompt } from 'agentm-core';
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
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAW7C;;;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;AAgLD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA4DlD"}
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"}
@@ -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 classes that belong to the shared theme and must NOT appear in page-specific <style> blocks. */
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
- '.chat-panel',
57
- '.chat-header',
58
- '.chat-messages',
59
- '.chat-message',
60
- '.chat-message p',
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
- '.loading-overlay',
71
- '.spinner',
72
- '.viewer-panel',
73
- '#loadingOverlay',
74
- '.chat-submit:disabled',
75
- '.chat-input:disabled',
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
- const V1_TO_V2_SYSTEM_PROMPT = `You are a code migration tool. You convert SynthOS v1 pages to v2 format.
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
- <!-- chat messages preserved -->
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
- <div class="viewer-panel" id="viewerPanel">
185
- <!-- page content preserved -->
186
- <div id="loadingOverlay" class="loading-overlay"><div class="spinner"></div></div>
187
- </div>
188
- <div id="thoughts" style="display: none;">...</div>
189
- <script>
190
- // Only page-specific JS here — no shared chat handlers
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 system = { role: 'system', content: V1_TO_V2_SYSTEM_PROMPT };
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, maxTokens: 16000 });
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
- // Remove leftover shared CSS selectors from <style> blocks
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
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"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"}
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"}