synthos 0.7.2 → 0.9.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 (380) hide show
  1. package/README.md +215 -65
  2. package/default-pages/application/page.html +42 -0
  3. package/default-pages/application/page.json +10 -0
  4. package/default-pages/elevenlabs_effects_studio/page.html +1363 -0
  5. package/default-pages/elevenlabs_effects_studio/page.json +11 -0
  6. package/default-pages/elevenlabs_voice_studio/page.html +801 -0
  7. package/default-pages/elevenlabs_voice_studio/page.json +11 -0
  8. package/default-pages/{json_tools.html → json_tools/page.html} +13 -11
  9. package/default-pages/json_tools/page.json +10 -0
  10. package/default-pages/my_notes/notes/a1b2c3d4-e5f6-7890-abcd-ef1234567890.json +5 -0
  11. package/default-pages/my_notes/page.html +132 -0
  12. package/default-pages/{my_notes.json → my_notes/page.json} +2 -2
  13. package/default-pages/neon_asteroids/files/Ambient_Space.mp3 +0 -0
  14. package/default-pages/neon_asteroids/files/Ambient_Space2.mp3 +0 -0
  15. package/default-pages/neon_asteroids/files/Ambient_Space3.mp3 +0 -0
  16. package/default-pages/neon_asteroids/files/Asteroid_Explosion.mp3 +0 -0
  17. package/default-pages/neon_asteroids/files/Hyperspace_Jump.mp3 +0 -0
  18. package/default-pages/neon_asteroids/files/Laser_Fire.mp3 +0 -0
  19. package/default-pages/neon_asteroids/files/Menu_Navigate.mp3 +0 -0
  20. package/default-pages/neon_asteroids/files/Power_Up_Collect.mp3 +0 -0
  21. package/default-pages/neon_asteroids/files/Saucer_Alert.mp3 +0 -0
  22. package/default-pages/neon_asteroids/files/Ship_Thrust.mp3 +0 -0
  23. package/default-pages/neon_asteroids/files/effects.json +74 -0
  24. package/default-pages/neon_asteroids/page.html +1822 -0
  25. package/default-pages/{neon_asteroids.json → neon_asteroids/page.json} +3 -3
  26. package/default-pages/oregon_trail/page.html +323 -0
  27. package/default-pages/oregon_trail/page.json +12 -0
  28. package/default-pages/retro_game_starter/page.html +1308 -0
  29. package/default-pages/retro_game_starter/page.json +12 -0
  30. package/default-pages/{sidebar_builder.html → sidebar_page/page.html} +12 -10
  31. package/default-pages/sidebar_page/page.json +10 -0
  32. package/default-pages/{solar_explorer.html → solar_explorer/page.html} +24 -29
  33. package/default-pages/{solar_explorer.json → solar_explorer/page.json} +4 -4
  34. package/default-pages/{solar_tutorial.html → solar_tutorial/page.html} +12 -10
  35. package/default-pages/solar_tutorial/page.json +10 -0
  36. package/default-pages/{two-panel_builder.html → two-panel_page/page.html} +13 -11
  37. package/default-pages/two-panel_page/page.json +10 -0
  38. package/default-pages/us_map/page.html +193 -0
  39. package/default-pages/us_map/page.json +12 -0
  40. package/default-pages/us_map_1850/page.html +326 -0
  41. package/default-pages/us_map_1850/page.json +12 -0
  42. package/default-pages/western_cities_1850/page.html +527 -0
  43. package/default-pages/western_cities_1850/page.json +12 -0
  44. package/default-themes/aurora-dawn.json +19 -0
  45. package/default-themes/aurora-dawn.v3.css +198 -0
  46. package/default-themes/aurora-dusk.json +19 -0
  47. package/default-themes/aurora-dusk.v3.css +200 -0
  48. package/default-themes/cosmos-dawn.json +19 -0
  49. package/default-themes/cosmos-dawn.v3.css +198 -0
  50. package/default-themes/cosmos-dusk.json +19 -0
  51. package/default-themes/cosmos-dusk.v3.css +200 -0
  52. package/default-themes/high-contrast-dark.json +19 -0
  53. package/default-themes/high-contrast-dark.v3.css +200 -0
  54. package/default-themes/high-contrast-light.json +19 -0
  55. package/default-themes/high-contrast-light.v3.css +198 -0
  56. package/default-themes/{nebula-dawn.css → nebula-dawn.v2.css} +134 -0
  57. package/default-themes/nebula-dawn.v3.css +199 -0
  58. package/default-themes/{nebula-dusk.css → nebula-dusk.v2.css} +128 -0
  59. package/default-themes/nebula-dusk.v3.css +201 -0
  60. package/default-themes/solar-flare-dawn.json +19 -0
  61. package/default-themes/solar-flare-dawn.v3.css +198 -0
  62. package/default-themes/solar-flare-dusk.json +19 -0
  63. package/default-themes/solar-flare-dusk.v3.css +200 -0
  64. package/dist/agents/a2a/a2aProvider.d.ts.map +1 -0
  65. package/dist/agents/a2a/a2aProvider.js +126 -0
  66. package/dist/agents/a2a/a2aProvider.js.map +1 -0
  67. package/dist/agents/discovery.d.ts.map +1 -0
  68. package/dist/agents/discovery.js +52 -0
  69. package/dist/agents/discovery.js.map +1 -0
  70. package/dist/agents/index.d.ts +7 -0
  71. package/dist/agents/index.d.ts.map +1 -0
  72. package/dist/agents/index.js +20 -0
  73. package/dist/agents/index.js.map +1 -0
  74. package/dist/agents/openclaw/gatewayManager.d.ts +117 -0
  75. package/dist/agents/openclaw/gatewayManager.d.ts.map +1 -0
  76. package/dist/agents/openclaw/gatewayManager.js +486 -0
  77. package/dist/agents/openclaw/gatewayManager.js.map +1 -0
  78. package/dist/agents/openclaw/openclawProvider.d.ts.map +1 -0
  79. package/dist/agents/openclaw/openclawProvider.js +237 -0
  80. package/dist/agents/openclaw/openclawProvider.js.map +1 -0
  81. package/dist/agents/openclaw/sshTunnelManager.d.ts +25 -0
  82. package/dist/agents/openclaw/sshTunnelManager.d.ts.map +1 -0
  83. package/dist/agents/openclaw/sshTunnelManager.js +359 -0
  84. package/dist/agents/openclaw/sshTunnelManager.js.map +1 -0
  85. package/dist/agents/types.d.ts.map +1 -0
  86. package/dist/agents/types.js +6 -0
  87. package/dist/agents/types.js.map +1 -0
  88. package/dist/builders/anthropic.d.ts +31 -0
  89. package/dist/builders/anthropic.d.ts.map +1 -0
  90. package/dist/builders/anthropic.js +227 -0
  91. package/dist/builders/anthropic.js.map +1 -0
  92. package/dist/builders/fireworksai.d.ts +9 -0
  93. package/dist/builders/fireworksai.d.ts.map +1 -0
  94. package/dist/builders/fireworksai.js +57 -0
  95. package/dist/builders/fireworksai.js.map +1 -0
  96. package/dist/builders/index.d.ts +13 -0
  97. package/dist/builders/index.d.ts.map +1 -0
  98. package/dist/builders/index.js +31 -0
  99. package/dist/builders/index.js.map +1 -0
  100. package/dist/builders/openai.d.ts +8 -0
  101. package/dist/builders/openai.d.ts.map +1 -0
  102. package/dist/builders/openai.js +87 -0
  103. package/dist/builders/openai.js.map +1 -0
  104. package/dist/builders/types.d.ts +54 -0
  105. package/dist/builders/types.d.ts.map +1 -0
  106. package/dist/builders/types.js +211 -0
  107. package/dist/builders/types.js.map +1 -0
  108. package/dist/connectors/index.d.ts.map +1 -1
  109. package/dist/connectors/index.js +3 -2
  110. package/dist/connectors/index.js.map +1 -1
  111. package/dist/connectors/registry.d.ts +2 -1
  112. package/dist/connectors/registry.d.ts.map +1 -1
  113. package/dist/connectors/registry.js +65 -96
  114. package/dist/connectors/registry.js.map +1 -1
  115. package/dist/connectors/types.d.ts.map +1 -1
  116. package/dist/customizer/Customizer.d.ts +57 -0
  117. package/dist/customizer/Customizer.d.ts.map +1 -0
  118. package/dist/customizer/Customizer.js +124 -0
  119. package/dist/customizer/Customizer.js.map +1 -0
  120. package/dist/customizer/index.d.ts.map +1 -0
  121. package/dist/customizer/index.js +9 -0
  122. package/dist/customizer/index.js.map +1 -0
  123. package/dist/files.d.ts +17 -0
  124. package/dist/files.d.ts.map +1 -1
  125. package/dist/files.js +75 -1
  126. package/dist/files.js.map +1 -1
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +1 -0
  129. package/dist/index.js.map +1 -1
  130. package/dist/init.d.ts +10 -6
  131. package/dist/init.d.ts.map +1 -1
  132. package/dist/init.js +97 -86
  133. package/dist/init.js.map +1 -1
  134. package/dist/migrations.d.ts.map +1 -1
  135. package/dist/migrations.js +142 -145
  136. package/dist/migrations.js.map +1 -1
  137. package/dist/models/anthropic.d.ts +24 -0
  138. package/dist/models/anthropic.d.ts.map +1 -0
  139. package/dist/models/anthropic.js +103 -0
  140. package/dist/models/anthropic.js.map +1 -0
  141. package/dist/models/chainOfThought.d.ts.map +1 -0
  142. package/dist/models/chainOfThought.js +45 -0
  143. package/dist/models/chainOfThought.js.map +1 -0
  144. package/dist/models/fireworksai.d.ts.map +1 -0
  145. package/dist/models/fireworksai.js +141 -0
  146. package/dist/models/fireworksai.js.map +1 -0
  147. package/dist/models/index.d.ts +7 -1
  148. package/dist/models/index.d.ts.map +1 -1
  149. package/dist/models/index.js +20 -1
  150. package/dist/models/index.js.map +1 -1
  151. package/dist/models/logCompletePrompt.d.ts.map +1 -0
  152. package/dist/models/logCompletePrompt.js +23 -0
  153. package/dist/models/logCompletePrompt.js.map +1 -0
  154. package/dist/models/openai.d.ts +24 -0
  155. package/dist/models/openai.d.ts.map +1 -0
  156. package/dist/models/openai.js +101 -0
  157. package/dist/models/openai.js.map +1 -0
  158. package/dist/models/providers.d.ts.map +1 -1
  159. package/dist/models/providers.js +12 -4
  160. package/dist/models/providers.js.map +1 -1
  161. package/dist/models/types.d.ts +53 -2
  162. package/dist/models/types.d.ts.map +1 -1
  163. package/dist/models/types.js +21 -0
  164. package/dist/models/types.js.map +1 -1
  165. package/dist/models/utils.d.ts.map +1 -0
  166. package/dist/models/utils.js +21 -0
  167. package/dist/models/utils.js.map +1 -0
  168. package/dist/pages.d.ts +30 -7
  169. package/dist/pages.d.ts.map +1 -1
  170. package/dist/pages.js +177 -55
  171. package/dist/pages.js.map +1 -1
  172. package/dist/scripts.d.ts.map +1 -1
  173. package/dist/scripts.js +4 -3
  174. package/dist/scripts.js.map +1 -1
  175. package/dist/service/createCompletePrompt.d.ts.map +1 -1
  176. package/dist/service/createCompletePrompt.js +9 -6
  177. package/dist/service/createCompletePrompt.js.map +1 -1
  178. package/dist/service/generateImage.d.ts.map +1 -1
  179. package/dist/service/generateImage.js +3 -3
  180. package/dist/service/generateImage.js.map +1 -1
  181. package/dist/service/server.d.ts.map +1 -1
  182. package/dist/service/server.js +39 -7
  183. package/dist/service/server.js.map +1 -1
  184. package/dist/service/transformPage.d.ts +47 -18
  185. package/dist/service/transformPage.d.ts.map +1 -1
  186. package/dist/service/transformPage.js +559 -270
  187. package/dist/service/transformPage.js.map +1 -1
  188. package/dist/service/useAgentRoutes.d.ts +5 -0
  189. package/dist/service/useAgentRoutes.d.ts.map +1 -0
  190. package/dist/service/useAgentRoutes.js +392 -0
  191. package/dist/service/useAgentRoutes.js.map +1 -0
  192. package/dist/service/useApiRoutes.d.ts.map +1 -1
  193. package/dist/service/useApiRoutes.js +380 -138
  194. package/dist/service/useApiRoutes.js.map +1 -1
  195. package/dist/service/useConnectorRoutes.d.ts.map +1 -1
  196. package/dist/service/useConnectorRoutes.js +20 -9
  197. package/dist/service/useConnectorRoutes.js.map +1 -1
  198. package/dist/service/useFileRoutes.d.ts +4 -0
  199. package/dist/service/useFileRoutes.d.ts.map +1 -0
  200. package/dist/service/useFileRoutes.js +122 -0
  201. package/dist/service/useFileRoutes.js.map +1 -0
  202. package/dist/service/usePageRoutes.d.ts.map +1 -1
  203. package/dist/service/usePageRoutes.js +660 -68
  204. package/dist/service/usePageRoutes.js.map +1 -1
  205. package/dist/service/useSharedDataRoutes.d.ts +4 -0
  206. package/dist/service/useSharedDataRoutes.d.ts.map +1 -0
  207. package/dist/service/useSharedDataRoutes.js +104 -0
  208. package/dist/service/useSharedDataRoutes.js.map +1 -0
  209. package/dist/service/useSharedFileRoutes.d.ts +4 -0
  210. package/dist/service/useSharedFileRoutes.d.ts.map +1 -0
  211. package/dist/service/useSharedFileRoutes.js +121 -0
  212. package/dist/service/useSharedFileRoutes.js.map +1 -0
  213. package/dist/settings.d.ts +3 -1
  214. package/dist/settings.d.ts.map +1 -1
  215. package/dist/settings.js +5 -8
  216. package/dist/settings.js.map +1 -1
  217. package/dist/synthos-cli.d.ts.map +1 -1
  218. package/dist/synthos-cli.js +4 -3
  219. package/dist/synthos-cli.js.map +1 -1
  220. package/dist/themes.d.ts +15 -0
  221. package/dist/themes.d.ts.map +1 -1
  222. package/dist/themes.js +106 -20
  223. package/dist/themes.js.map +1 -1
  224. package/migration-rules/v1-to-v2.md +193 -0
  225. package/migration-rules/v2-to-v3.md +481 -0
  226. package/package.json +15 -11
  227. package/required-pages/builder/page.html +43 -0
  228. package/required-pages/builder/page.json +10 -0
  229. package/required-pages/pages/page.html +924 -0
  230. package/required-pages/pages/page.json +10 -0
  231. package/required-pages/settings/page.html +1753 -0
  232. package/required-pages/settings/page.json +10 -0
  233. package/required-pages/synthos_apis/page.html +846 -0
  234. package/required-pages/synthos_apis/page.json +10 -0
  235. package/required-pages/{synthos_scripts.html → synthos_scripts/page.html} +13 -11
  236. package/required-pages/synthos_scripts/page.json +10 -0
  237. package/service-connectors/airtable/connector.json +27 -0
  238. package/service-connectors/alpha-vantage/connector.json +26 -0
  239. package/service-connectors/brave-search/connector.json +26 -0
  240. package/service-connectors/cloudinary/connector.json +27 -0
  241. package/service-connectors/deepl/connector.json +28 -0
  242. package/service-connectors/elevenlabs/connector.json +30 -0
  243. package/service-connectors/giphy/connector.json +27 -0
  244. package/service-connectors/github/connector.json +29 -0
  245. package/service-connectors/huggingface/connector.json +27 -0
  246. package/service-connectors/imgur/connector.json +29 -0
  247. package/service-connectors/instagram/connector.json +43 -0
  248. package/service-connectors/jira/connector.json +28 -0
  249. package/service-connectors/mapbox/connector.json +26 -0
  250. package/service-connectors/nasa/connector.json +27 -0
  251. package/service-connectors/newsapi/connector.json +27 -0
  252. package/service-connectors/notion/connector.json +28 -0
  253. package/service-connectors/open-exchange-rates/connector.json +27 -0
  254. package/service-connectors/openweathermap/connector.json +26 -0
  255. package/service-connectors/pexels/connector.json +27 -0
  256. package/service-connectors/resend/connector.json +29 -0
  257. package/service-connectors/rss2json/connector.json +27 -0
  258. package/service-connectors/sendgrid/connector.json +27 -0
  259. package/service-connectors/spoonacular/connector.json +28 -0
  260. package/service-connectors/stability-ai/connector.json +27 -0
  261. package/service-connectors/twilio/connector.json +28 -0
  262. package/service-connectors/unsplash/connector.json +27 -0
  263. package/service-connectors/wolfram-alpha/connector.json +26 -0
  264. package/service-connectors/youtube-data/connector.json +30 -0
  265. package/src/agents/a2a/a2aProvider.ts +110 -0
  266. package/src/agents/discovery.ts +74 -0
  267. package/src/agents/index.ts +6 -0
  268. package/src/agents/openclaw/gatewayManager.ts +570 -0
  269. package/src/agents/openclaw/openclawProvider.ts +259 -0
  270. package/src/agents/openclaw/sshTunnelManager.ts +393 -0
  271. package/src/agents/types.ts +82 -0
  272. package/src/builders/anthropic.ts +283 -0
  273. package/src/builders/fireworksai.ts +59 -0
  274. package/src/builders/index.ts +33 -0
  275. package/src/builders/openai.ts +89 -0
  276. package/src/builders/types.ts +261 -0
  277. package/src/connectors/index.ts +3 -1
  278. package/src/connectors/registry.ts +40 -96
  279. package/src/connectors/types.ts +25 -0
  280. package/src/customizer/Customizer.ts +151 -0
  281. package/src/customizer/index.ts +5 -0
  282. package/src/files.ts +71 -0
  283. package/src/index.ts +2 -1
  284. package/src/init.ts +138 -97
  285. package/src/migrations.ts +148 -145
  286. package/src/models/anthropic.ts +119 -0
  287. package/src/models/chainOfThought.ts +56 -0
  288. package/src/models/fireworksai.ts +143 -0
  289. package/src/models/index.ts +7 -1
  290. package/src/models/logCompletePrompt.ts +25 -0
  291. package/src/models/openai.ts +110 -0
  292. package/src/models/providers.ts +12 -3
  293. package/src/models/types.ts +97 -2
  294. package/src/models/utils.ts +16 -0
  295. package/src/pages.ts +176 -54
  296. package/src/scripts.ts +2 -2
  297. package/src/service/createCompletePrompt.ts +3 -1
  298. package/src/service/generateImage.ts +2 -2
  299. package/src/service/server.ts +39 -8
  300. package/src/service/transformPage.ts +605 -301
  301. package/src/service/useAgentRoutes.ts +428 -0
  302. package/src/service/useApiRoutes.ts +309 -45
  303. package/src/service/useConnectorRoutes.ts +21 -10
  304. package/src/service/useFileRoutes.ts +127 -0
  305. package/src/service/usePageRoutes.ts +736 -75
  306. package/src/service/useSharedDataRoutes.ts +106 -0
  307. package/src/service/useSharedFileRoutes.ts +126 -0
  308. package/src/settings.ts +8 -10
  309. package/src/synthos-cli.ts +4 -3
  310. package/src/themes.ts +103 -20
  311. package/static-files/favicon.svg +12 -0
  312. package/static-files/fluentlm-instructions.llmd +868 -0
  313. package/static-files/fluentlm-instructions.md +1595 -0
  314. package/static-files/fluentlm.css +4844 -0
  315. package/static-files/fluentlm.js +3602 -0
  316. package/static-files/fluentlm.min.css +1 -0
  317. package/static-files/fluentlm.min.js +1 -0
  318. package/static-files/helpers.v3.js +304 -0
  319. package/static-files/page.v3.js +1290 -0
  320. package/static-files/recommended-frameworks.llmd +81 -0
  321. package/static-files/recommended-frameworks.md +137 -0
  322. package/static-files/retro-game.js +877 -0
  323. package/static-files/shell.css +797 -0
  324. package/static-files/theme-dark.css +169 -0
  325. package/static-files/theme-light.css +169 -0
  326. package/tests/anthropic.spec.ts +84 -0
  327. package/tests/builders.spec.ts +139 -0
  328. package/tests/chainOfThought.spec.ts +108 -0
  329. package/tests/ensureScripts.spec.ts +82 -0
  330. package/tests/files.spec.ts +233 -0
  331. package/tests/fireworksai.spec.ts +92 -0
  332. package/tests/logCompletePrompt.spec.ts +74 -0
  333. package/tests/migrations.spec.ts +79 -1
  334. package/tests/openai.spec.ts +71 -0
  335. package/tests/pages.spec.ts +226 -1
  336. package/tests/providers.spec.ts +144 -0
  337. package/tests/scripts.spec.ts +209 -0
  338. package/tests/transformPage.spec.ts +456 -0
  339. package/tests/types.spec.ts +23 -0
  340. package/default-pages/app_builder.html +0 -40
  341. package/default-pages/app_builder.json +0 -1
  342. package/default-pages/json_tools.json +0 -1
  343. package/default-pages/my_notes.html +0 -33
  344. package/default-pages/neon_asteroids.html +0 -77
  345. package/default-pages/sidebar_builder.json +0 -1
  346. package/default-pages/solar_tutorial.json +0 -1
  347. package/default-pages/two-panel_builder.json +0 -1
  348. package/dist/connectors/index.d.ts +0 -3
  349. package/dist/connectors/types.d.ts +0 -61
  350. package/dist/index.d.ts +0 -7
  351. package/dist/migrations.d.ts +0 -11
  352. package/dist/models/providers.d.ts +0 -7
  353. package/dist/scripts.d.ts +0 -14
  354. package/dist/service/createCompletePrompt.d.ts +0 -5
  355. package/dist/service/debugLog.d.ts +0 -11
  356. package/dist/service/generateImage.d.ts +0 -32
  357. package/dist/service/index.d.ts +0 -8
  358. package/dist/service/modelInstructions.d.ts +0 -7
  359. package/dist/service/requiresSettings.d.ts +0 -3
  360. package/dist/service/server.d.ts +0 -4
  361. package/dist/service/useApiRoutes.d.ts +0 -4
  362. package/dist/service/useConnectorRoutes.d.ts +0 -4
  363. package/dist/service/useDataRoutes.d.ts +0 -4
  364. package/dist/service/usePageRoutes.d.ts +0 -5
  365. package/dist/synthos-cli.d.ts +0 -2
  366. package/images/home.png +0 -0
  367. package/images/page-management.png +0 -0
  368. package/images/settings.png +0 -0
  369. package/images/synthos-square.png +0 -0
  370. package/page-scripts/helpers-v2.js +0 -121
  371. package/page-scripts/page-v2.js +0 -615
  372. package/required-pages/builder.html +0 -74
  373. package/required-pages/builder.json +0 -1
  374. package/required-pages/pages.html +0 -196
  375. package/required-pages/pages.json +0 -1
  376. package/required-pages/settings.html +0 -841
  377. package/required-pages/settings.json +0 -1
  378. package/required-pages/synthos_apis.html +0 -272
  379. package/required-pages/synthos_apis.json +0 -1
  380. package/required-pages/synthos_scripts.json +0 -1
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.discoverOpenClawAgent = exports.discoverA2AAgent = exports.getTunnelStatus = exports.stopTunnel = exports.startTunnel = exports.setOpenClawDebug = exports.getAgentStatus = exports.disconnectAgent = exports.connectAgent = exports.openclawProvider = exports.a2aProvider = void 0;
4
+ var a2aProvider_1 = require("./a2a/a2aProvider");
5
+ Object.defineProperty(exports, "a2aProvider", { enumerable: true, get: function () { return a2aProvider_1.a2aProvider; } });
6
+ var openclawProvider_1 = require("./openclaw/openclawProvider");
7
+ Object.defineProperty(exports, "openclawProvider", { enumerable: true, get: function () { return openclawProvider_1.openclawProvider; } });
8
+ var gatewayManager_1 = require("./openclaw/gatewayManager");
9
+ Object.defineProperty(exports, "connectAgent", { enumerable: true, get: function () { return gatewayManager_1.connectAgent; } });
10
+ Object.defineProperty(exports, "disconnectAgent", { enumerable: true, get: function () { return gatewayManager_1.disconnectAgent; } });
11
+ Object.defineProperty(exports, "getAgentStatus", { enumerable: true, get: function () { return gatewayManager_1.getAgentStatus; } });
12
+ Object.defineProperty(exports, "setOpenClawDebug", { enumerable: true, get: function () { return gatewayManager_1.setOpenClawDebug; } });
13
+ var sshTunnelManager_1 = require("./openclaw/sshTunnelManager");
14
+ Object.defineProperty(exports, "startTunnel", { enumerable: true, get: function () { return sshTunnelManager_1.startTunnel; } });
15
+ Object.defineProperty(exports, "stopTunnel", { enumerable: true, get: function () { return sshTunnelManager_1.stopTunnel; } });
16
+ Object.defineProperty(exports, "getTunnelStatus", { enumerable: true, get: function () { return sshTunnelManager_1.getTunnelStatus; } });
17
+ var discovery_1 = require("./discovery");
18
+ Object.defineProperty(exports, "discoverA2AAgent", { enumerable: true, get: function () { return discovery_1.discoverA2AAgent; } });
19
+ Object.defineProperty(exports, "discoverOpenClawAgent", { enumerable: true, get: function () { return discovery_1.discoverOpenClawAgent; } });
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":";;;AACA,iDAAgD;AAAvC,0GAAA,WAAW,OAAA;AACpB,gEAA+D;AAAtD,oHAAA,gBAAgB,OAAA;AACzB,4DAA4G;AAAnG,8GAAA,YAAY,OAAA;AAAE,iHAAA,eAAe,OAAA;AAAE,gHAAA,cAAc,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AACxE,gEAAuF;AAA9E,+GAAA,WAAW,OAAA;AAAE,8GAAA,UAAU,OAAA;AAAE,mHAAA,eAAe,OAAA;AACjD,yCAAsE;AAA7D,6GAAA,gBAAgB,OAAA;AAAE,kHAAA,qBAAqB,OAAA"}
@@ -0,0 +1,117 @@
1
+ /** Internal gateway config for WebSocket connections (not exported). */
2
+ export interface GatewayConfig {
3
+ id: string;
4
+ name: string;
5
+ url: string;
6
+ token: string;
7
+ enabled: boolean;
8
+ role: 'operator';
9
+ scopes: string[];
10
+ productName?: string;
11
+ }
12
+ interface PendingRequest {
13
+ resolve: (payload: unknown) => void;
14
+ reject: (err: Error) => void;
15
+ timer: ReturnType<typeof setTimeout>;
16
+ /** When true, skip resolution on intermediate { status: "accepted" } responses. */
17
+ expectFinal?: boolean;
18
+ }
19
+ export interface GatewayConnection {
20
+ gatewayId: string;
21
+ ws: WebSocket | null;
22
+ config: GatewayConfig;
23
+ connected: boolean;
24
+ authenticated: boolean;
25
+ /** Granted scopes and role from the hello-ok response */
26
+ grantedAuth?: {
27
+ role: string;
28
+ scopes: string[];
29
+ deviceToken?: string;
30
+ };
31
+ pendingRequests: Map<string, PendingRequest>;
32
+ eventListeners: Map<string, Array<(data: unknown) => void>>;
33
+ lastTick: number;
34
+ tickIntervalMs: number;
35
+ tickTimer: ReturnType<typeof setInterval> | null;
36
+ reconnectTimer: ReturnType<typeof setTimeout> | null;
37
+ reconnectAttempts: number;
38
+ /** Set to true when disconnect() is called explicitly — suppresses auto-reconnect */
39
+ intentionalClose: boolean;
40
+ }
41
+ /** Enable or disable OpenClaw + SSH tunnel debug logging. */
42
+ export declare function setOpenClawDebug(enabled: boolean): void;
43
+ /**
44
+ * Connect to an OpenClaw gateway. Resolves once the auth handshake completes.
45
+ *
46
+ * Protocol (from https://docs.openclaw.ai/gateway/protocol):
47
+ * 1. Client opens WebSocket
48
+ * 2. Server sends {type:"event", event:"connect.challenge", payload:{nonce,ts}}
49
+ * 3. Client sends {type:"req", id, method:"connect", params:{auth:{token}, role, scopes, ...}}
50
+ * 4. Server sends {type:"res", id, ok:true, payload:{type:"hello-ok", policy:{tickIntervalMs}, auth:{...}}}
51
+ */
52
+ export declare function connect(config: GatewayConfig): Promise<GatewayConnection>;
53
+ /**
54
+ * Disconnect from a gateway.
55
+ */
56
+ export declare function disconnect(gatewayId: string): void;
57
+ /**
58
+ * Get an existing connection (connects on demand if not yet connected).
59
+ */
60
+ export declare function getConnection(config: GatewayConfig): Promise<GatewayConnection>;
61
+ /**
62
+ * Get connection status without connecting.
63
+ */
64
+ export declare function getConnectionStatus(gatewayId: string): {
65
+ connected: boolean;
66
+ authenticated: boolean;
67
+ };
68
+ /**
69
+ * Send an RPC request to the gateway and wait for the correlated response.
70
+ */
71
+ export declare function request(conn: GatewayConnection, method: string, params?: unknown, opts?: {
72
+ expectFinal?: boolean;
73
+ }): Promise<unknown>;
74
+ /**
75
+ * Subscribe to gateway events by event type.
76
+ */
77
+ export declare function onEvent(conn: GatewayConnection, eventType: string, listener: (data: unknown) => void): void;
78
+ /**
79
+ * Remove a specific event listener.
80
+ */
81
+ export declare function offEvent(conn: GatewayConnection, eventType: string, listener: (data: unknown) => void): void;
82
+ /**
83
+ * Connect an OpenClaw agent via WebSocket.
84
+ * Converts the agent's HTTP URL to a WS URL and uses default operator role/scopes.
85
+ */
86
+ export declare function connectAgent(agent: {
87
+ id: string;
88
+ name: string;
89
+ url: string;
90
+ token: string;
91
+ sshTunnel?: {
92
+ enabled: boolean;
93
+ command: string;
94
+ password: string;
95
+ };
96
+ productName?: string;
97
+ }): Promise<GatewayConnection>;
98
+ /**
99
+ * Disconnect an agent's WebSocket connection.
100
+ */
101
+ export declare function disconnectAgent(agentId: string): void;
102
+ /**
103
+ * Get an agent's WebSocket connection status without connecting.
104
+ */
105
+ export declare function getAgentStatus(agentId: string): {
106
+ connected: boolean;
107
+ authenticated: boolean;
108
+ };
109
+ /**
110
+ * Convert a ws:// or wss:// URL to http:// or https:// for the HTTP API.
111
+ * Also passes through http/https URLs unchanged.
112
+ */
113
+ export declare function httpBaseUrl(config: {
114
+ url: string;
115
+ }): string;
116
+ export {};
117
+ //# sourceMappingURL=gatewayManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gatewayManager.d.ts","sourceRoot":"","sources":["../../../src/agents/openclaw/gatewayManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,486 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.httpBaseUrl = exports.getAgentStatus = exports.disconnectAgent = exports.connectAgent = exports.offEvent = exports.onEvent = exports.request = exports.getConnectionStatus = exports.getConnection = exports.disconnect = exports.connect = exports.setOpenClawDebug = void 0;
4
+ const sshTunnelManager_1 = require("./sshTunnelManager");
5
+ const RPC_TIMEOUT_MS = 30_000;
6
+ const AUTH_TIMEOUT_MS = 15_000;
7
+ const MAX_RECONNECT_DELAY_MS = 60_000;
8
+ const BASE_RECONNECT_DELAY_MS = 1_000;
9
+ // ---------------------------------------------------------------------------
10
+ // Module-level connection pool
11
+ // ---------------------------------------------------------------------------
12
+ let _debug = false;
13
+ /** Enable or disable OpenClaw + SSH tunnel debug logging. */
14
+ function setOpenClawDebug(enabled) {
15
+ _debug = enabled;
16
+ (0, sshTunnelManager_1.setSshTunnelDebug)(enabled);
17
+ }
18
+ exports.setOpenClawDebug = setOpenClawDebug;
19
+ const connections = new Map();
20
+ let _nextId = 1;
21
+ function nextRequestId() {
22
+ return `req-${_nextId++}`;
23
+ }
24
+ // ---------------------------------------------------------------------------
25
+ // Public API
26
+ // ---------------------------------------------------------------------------
27
+ /**
28
+ * Connect to an OpenClaw gateway. Resolves once the auth handshake completes.
29
+ *
30
+ * Protocol (from https://docs.openclaw.ai/gateway/protocol):
31
+ * 1. Client opens WebSocket
32
+ * 2. Server sends {type:"event", event:"connect.challenge", payload:{nonce,ts}}
33
+ * 3. Client sends {type:"req", id, method:"connect", params:{auth:{token}, role, scopes, ...}}
34
+ * 4. Server sends {type:"res", id, ok:true, payload:{type:"hello-ok", policy:{tickIntervalMs}, auth:{...}}}
35
+ */
36
+ async function connect(config) {
37
+ const existing = connections.get(config.id);
38
+ if (existing?.connected && existing.authenticated) {
39
+ return existing;
40
+ }
41
+ const conn = existing ?? {
42
+ gatewayId: config.id,
43
+ ws: null,
44
+ config,
45
+ connected: false,
46
+ authenticated: false,
47
+ pendingRequests: new Map(),
48
+ eventListeners: new Map(),
49
+ lastTick: Date.now(),
50
+ tickIntervalMs: 0,
51
+ tickTimer: null,
52
+ reconnectTimer: null,
53
+ reconnectAttempts: 0,
54
+ intentionalClose: false,
55
+ };
56
+ // Update config in case it changed
57
+ conn.config = config;
58
+ conn.intentionalClose = false;
59
+ connections.set(config.id, conn);
60
+ return new Promise((resolve, reject) => {
61
+ let settled = false;
62
+ function settle(err) {
63
+ if (settled)
64
+ return;
65
+ settled = true;
66
+ clearTimeout(authTimeout);
67
+ if (err)
68
+ reject(err);
69
+ else
70
+ resolve(conn);
71
+ }
72
+ const authTimeout = setTimeout(() => {
73
+ settle(new Error(`Gateway auth timed out after ${AUTH_TIMEOUT_MS}ms: ${config.url}`));
74
+ conn.ws?.close();
75
+ }, AUTH_TIMEOUT_MS);
76
+ try {
77
+ const ws = new WebSocket(config.url);
78
+ conn.ws = ws;
79
+ ws.addEventListener('open', () => {
80
+ conn.connected = true;
81
+ conn.reconnectAttempts = 0;
82
+ // Wait for connect.challenge event from server
83
+ });
84
+ ws.addEventListener('message', (rawEvent) => {
85
+ const data = typeof rawEvent.data === 'string' ? rawEvent.data : rawEvent.data.toString();
86
+ let msg;
87
+ try {
88
+ msg = JSON.parse(data);
89
+ }
90
+ catch {
91
+ return;
92
+ }
93
+ handleMessage(conn, msg, () => settle());
94
+ });
95
+ ws.addEventListener('close', (ev) => {
96
+ const wasAuthenticated = conn.authenticated;
97
+ conn.connected = false;
98
+ conn.authenticated = false;
99
+ stopTickWatch(conn);
100
+ // Reject all pending requests
101
+ for (const [, pending] of conn.pendingRequests) {
102
+ clearTimeout(pending.timer);
103
+ pending.reject(new Error('Gateway connection closed'));
104
+ }
105
+ conn.pendingRequests.clear();
106
+ // If we never finished auth, reject the connect promise
107
+ settle(new Error(`Gateway WebSocket closed (code ${ev.code}) before auth completed`));
108
+ // Auto-reconnect only if: was previously authenticated, not intentionally closed, and config is enabled
109
+ if (wasAuthenticated && !conn.intentionalClose && config.enabled) {
110
+ scheduleReconnect(conn);
111
+ }
112
+ });
113
+ ws.addEventListener('error', () => {
114
+ // The close event will fire after this, so we don't settle here.
115
+ // Just log for diagnostics.
116
+ if (_debug)
117
+ console.error(`[OpenClaw] WebSocket error on gateway ${config.name}`);
118
+ });
119
+ }
120
+ catch (err) {
121
+ settle(err instanceof Error ? err : new Error(String(err)));
122
+ }
123
+ });
124
+ }
125
+ exports.connect = connect;
126
+ /**
127
+ * Disconnect from a gateway.
128
+ */
129
+ function disconnect(gatewayId) {
130
+ const conn = connections.get(gatewayId);
131
+ if (!conn)
132
+ return;
133
+ conn.intentionalClose = true;
134
+ if (conn.reconnectTimer) {
135
+ clearTimeout(conn.reconnectTimer);
136
+ conn.reconnectTimer = null;
137
+ }
138
+ stopTickWatch(conn);
139
+ if (conn.ws) {
140
+ conn.ws.close();
141
+ conn.ws = null;
142
+ }
143
+ conn.connected = false;
144
+ conn.authenticated = false;
145
+ connections.delete(gatewayId);
146
+ }
147
+ exports.disconnect = disconnect;
148
+ /**
149
+ * Get an existing connection (connects on demand if not yet connected).
150
+ */
151
+ async function getConnection(config) {
152
+ const existing = connections.get(config.id);
153
+ if (existing?.connected && existing.authenticated) {
154
+ return existing;
155
+ }
156
+ return connect(config);
157
+ }
158
+ exports.getConnection = getConnection;
159
+ /**
160
+ * Get connection status without connecting.
161
+ */
162
+ function getConnectionStatus(gatewayId) {
163
+ const conn = connections.get(gatewayId);
164
+ return {
165
+ connected: conn?.connected ?? false,
166
+ authenticated: conn?.authenticated ?? false,
167
+ };
168
+ }
169
+ exports.getConnectionStatus = getConnectionStatus;
170
+ /**
171
+ * Send an RPC request to the gateway and wait for the correlated response.
172
+ */
173
+ function request(conn, method, params, opts) {
174
+ return new Promise((resolve, reject) => {
175
+ if (!conn.ws || !conn.connected || !conn.authenticated) {
176
+ reject(new Error('Gateway not connected or not authenticated'));
177
+ return;
178
+ }
179
+ const id = nextRequestId();
180
+ const timer = setTimeout(() => {
181
+ conn.pendingRequests.delete(id);
182
+ reject(new Error(`RPC timeout for method "${method}" (id: ${id})`));
183
+ }, RPC_TIMEOUT_MS);
184
+ conn.pendingRequests.set(id, { resolve, reject, timer, expectFinal: opts?.expectFinal });
185
+ const msg = { type: 'req', id, method };
186
+ if (params !== undefined) {
187
+ msg.params = params;
188
+ }
189
+ if (_debug)
190
+ console.log(`[OpenClaw] → req: ${id} ${method}`);
191
+ conn.ws.send(JSON.stringify(msg));
192
+ });
193
+ }
194
+ exports.request = request;
195
+ /**
196
+ * Subscribe to gateway events by event type.
197
+ */
198
+ function onEvent(conn, eventType, listener) {
199
+ if (!conn.eventListeners.has(eventType)) {
200
+ conn.eventListeners.set(eventType, []);
201
+ }
202
+ conn.eventListeners.get(eventType).push(listener);
203
+ }
204
+ exports.onEvent = onEvent;
205
+ /**
206
+ * Remove a specific event listener.
207
+ */
208
+ function offEvent(conn, eventType, listener) {
209
+ const listeners = conn.eventListeners.get(eventType);
210
+ if (!listeners)
211
+ return;
212
+ const idx = listeners.indexOf(listener);
213
+ if (idx !== -1)
214
+ listeners.splice(idx, 1);
215
+ }
216
+ exports.offEvent = offEvent;
217
+ // ---------------------------------------------------------------------------
218
+ // Agent-level helpers (bridge from AgentConfig to internal GatewayConfig)
219
+ // ---------------------------------------------------------------------------
220
+ /**
221
+ * Convert an http(s) URL to a ws(s) URL for WebSocket connections.
222
+ */
223
+ function wsUrl(url) {
224
+ return url
225
+ .replace(/^https:\/\//, 'wss://')
226
+ .replace(/^http:\/\//, 'ws://')
227
+ .replace(/\/+$/, '');
228
+ }
229
+ /**
230
+ * Connect an OpenClaw agent via WebSocket.
231
+ * Converts the agent's HTTP URL to a WS URL and uses default operator role/scopes.
232
+ */
233
+ async function connectAgent(agent) {
234
+ // Start SSH tunnel first if configured
235
+ if (agent.sshTunnel?.enabled && agent.sshTunnel.command) {
236
+ const tunnelConfig = {
237
+ command: agent.sshTunnel.command,
238
+ password: agent.sshTunnel.password,
239
+ };
240
+ await (0, sshTunnelManager_1.startTunnel)(agent.id, tunnelConfig);
241
+ }
242
+ const gwConfig = {
243
+ id: agent.id,
244
+ name: agent.name,
245
+ url: wsUrl(agent.url),
246
+ token: agent.token,
247
+ enabled: true,
248
+ role: 'operator',
249
+ scopes: ['operator.read', 'operator.write', 'operator.approvals'],
250
+ productName: agent.productName,
251
+ };
252
+ return connect(gwConfig);
253
+ }
254
+ exports.connectAgent = connectAgent;
255
+ /**
256
+ * Disconnect an agent's WebSocket connection.
257
+ */
258
+ function disconnectAgent(agentId) {
259
+ disconnect(agentId);
260
+ (0, sshTunnelManager_1.stopTunnel)(agentId);
261
+ }
262
+ exports.disconnectAgent = disconnectAgent;
263
+ /**
264
+ * Get an agent's WebSocket connection status without connecting.
265
+ */
266
+ function getAgentStatus(agentId) {
267
+ return getConnectionStatus(agentId);
268
+ }
269
+ exports.getAgentStatus = getAgentStatus;
270
+ // ---------------------------------------------------------------------------
271
+ // Derive the HTTP base URL from the WebSocket URL
272
+ // ---------------------------------------------------------------------------
273
+ /**
274
+ * Convert a ws:// or wss:// URL to http:// or https:// for the HTTP API.
275
+ * Also passes through http/https URLs unchanged.
276
+ */
277
+ function httpBaseUrl(config) {
278
+ return config.url
279
+ .replace(/^wss:\/\//, 'https://')
280
+ .replace(/^ws:\/\//, 'http://')
281
+ .replace(/\/+$/, '');
282
+ }
283
+ exports.httpBaseUrl = httpBaseUrl;
284
+ // ---------------------------------------------------------------------------
285
+ // Internal helpers
286
+ // ---------------------------------------------------------------------------
287
+ function handleMessage(conn, msg, onAuthenticated) {
288
+ const type = msg.type;
289
+ switch (type) {
290
+ // --- Events from the server ---
291
+ case 'event': {
292
+ const eventName = msg.event;
293
+ if (eventName === 'tick' || eventName === 'health') {
294
+ if (eventName === 'tick')
295
+ conn.lastTick = Date.now();
296
+ break;
297
+ }
298
+ // Skip noisy per-token agent events
299
+ if (eventName === 'agent') {
300
+ // Still dispatch to listeners below, just don't log
301
+ }
302
+ else if (_debug) {
303
+ console.log(`[OpenClaw] ← event: ${eventName}`);
304
+ if (eventName === 'chat') {
305
+ console.log(`[OpenClaw] ← ${eventName} payload:\n${JSON.stringify(msg.payload, null, 2)}`);
306
+ }
307
+ }
308
+ if (eventName === 'connect.challenge') {
309
+ sendConnectRequest(conn);
310
+ break;
311
+ }
312
+ // Dispatch to registered event listeners
313
+ const listeners = conn.eventListeners.get(eventName);
314
+ if (listeners) {
315
+ for (const listener of listeners) {
316
+ try {
317
+ listener(msg.payload);
318
+ }
319
+ catch (err) {
320
+ if (_debug)
321
+ console.error(`[OpenClaw] Event listener error (${eventName}):`, err);
322
+ }
323
+ }
324
+ }
325
+ // Wildcard listeners
326
+ const wildcardListeners = conn.eventListeners.get('*');
327
+ if (wildcardListeners) {
328
+ for (const listener of wildcardListeners) {
329
+ try {
330
+ listener(msg);
331
+ }
332
+ catch (err) {
333
+ if (_debug)
334
+ console.error(`[OpenClaw] Wildcard listener error:`, err);
335
+ }
336
+ }
337
+ }
338
+ break;
339
+ }
340
+ // --- RPC responses (including connect handshake) ---
341
+ case 'res': {
342
+ const id = msg.id;
343
+ const ok = msg.ok;
344
+ const payload = (msg.payload ?? msg.result ?? msg.data ?? {});
345
+ const error = msg.error;
346
+ const payloadType = payload.type;
347
+ if (_debug)
348
+ console.log(`[OpenClaw] ← res: ${id} ${ok ? (payloadType ?? 'ok') : 'ERROR'}`);
349
+ if (!ok || error) {
350
+ if (_debug)
351
+ console.error(`[OpenClaw] ← error (id: ${id}):\n${JSON.stringify(msg, null, 2)}`);
352
+ }
353
+ // Check if this is the hello-ok response to our connect request
354
+ if (payload.type === 'hello-ok') {
355
+ conn.authenticated = true;
356
+ const policy = payload.policy;
357
+ if (policy?.tickIntervalMs && typeof policy.tickIntervalMs === 'number') {
358
+ conn.tickIntervalMs = policy.tickIntervalMs;
359
+ conn.lastTick = Date.now();
360
+ startTickWatch(conn);
361
+ }
362
+ const auth = payload.auth;
363
+ if (auth) {
364
+ conn.grantedAuth = {
365
+ role: auth.role ?? conn.config.role,
366
+ scopes: auth.scopes ?? conn.config.scopes,
367
+ deviceToken: auth.deviceToken,
368
+ };
369
+ }
370
+ onAuthenticated();
371
+ // Also resolve the pending request if tracked
372
+ const pending = conn.pendingRequests.get(id);
373
+ if (pending) {
374
+ clearTimeout(pending.timer);
375
+ conn.pendingRequests.delete(id);
376
+ pending.resolve(payload);
377
+ }
378
+ break;
379
+ }
380
+ // Regular RPC response
381
+ const pending = conn.pendingRequests.get(id);
382
+ if (pending) {
383
+ // Skip intermediate "accepted" acks for long-running requests
384
+ if (pending.expectFinal && payload.status === 'accepted') {
385
+ break;
386
+ }
387
+ clearTimeout(pending.timer);
388
+ conn.pendingRequests.delete(id);
389
+ if (!ok || error) {
390
+ const errMsg = typeof error === 'string' ? error
391
+ : error?.message ?? JSON.stringify(error ?? 'Unknown error');
392
+ pending.reject(new Error(errMsg));
393
+ }
394
+ else {
395
+ pending.resolve(payload);
396
+ }
397
+ }
398
+ break;
399
+ }
400
+ }
401
+ }
402
+ /**
403
+ * Send the `connect` RPC request after receiving the server challenge.
404
+ *
405
+ * OpenClaw protocol requires:
406
+ * - client: { id: 'gateway-client', version, platform, mode: 'backend' }
407
+ * - device: { id, publicKey, signature, signedAt, nonce }
408
+ * - auth: { token }
409
+ *
410
+ * Device signature payload (pipe-delimited):
411
+ * v2 (with nonce): "v2|deviceId|clientId|clientMode|role|scopes|signedAt|token|nonce"
412
+ * v1 (no nonce): "v1|deviceId|clientId|clientMode|role|scopes|signedAt|token"
413
+ */
414
+ function sendConnectRequest(conn) {
415
+ const id = nextRequestId();
416
+ const connectMsg = {
417
+ type: 'req',
418
+ id,
419
+ method: 'connect',
420
+ params: {
421
+ minProtocol: 3,
422
+ maxProtocol: 3,
423
+ client: {
424
+ id: 'gateway-client',
425
+ version: '1.0.0',
426
+ platform: process.platform,
427
+ mode: 'backend',
428
+ },
429
+ role: conn.config.role,
430
+ scopes: conn.config.scopes,
431
+ caps: [],
432
+ commands: [],
433
+ permissions: {},
434
+ auth: { token: conn.config.token },
435
+ locale: 'en-US',
436
+ userAgent: `${conn.config.productName ?? 'SynthOS'}/1.0`,
437
+ },
438
+ };
439
+ // Track as a pending request so we can correlate the response
440
+ conn.pendingRequests.set(id, {
441
+ resolve: () => { },
442
+ reject: (err) => {
443
+ if (_debug)
444
+ console.error(`[OpenClaw] Connect request failed for ${conn.config.name}: ${err.message}`);
445
+ },
446
+ timer: setTimeout(() => {
447
+ conn.pendingRequests.delete(id);
448
+ }, AUTH_TIMEOUT_MS),
449
+ });
450
+ conn.ws?.send(JSON.stringify(connectMsg));
451
+ }
452
+ /** Monitor server tick events — close if stalled (2x interval with no tick). */
453
+ function startTickWatch(conn) {
454
+ stopTickWatch(conn);
455
+ if (conn.tickIntervalMs <= 0)
456
+ return;
457
+ conn.tickTimer = setInterval(() => {
458
+ const elapsed = Date.now() - conn.lastTick;
459
+ if (elapsed > conn.tickIntervalMs * 2) {
460
+ conn.ws?.close(4000, 'tick stall');
461
+ }
462
+ }, conn.tickIntervalMs);
463
+ }
464
+ function stopTickWatch(conn) {
465
+ if (conn.tickTimer) {
466
+ clearInterval(conn.tickTimer);
467
+ conn.tickTimer = null;
468
+ }
469
+ }
470
+ function scheduleReconnect(conn) {
471
+ if (conn.reconnectTimer || conn.intentionalClose)
472
+ return;
473
+ conn.reconnectAttempts++;
474
+ const delay = Math.min(BASE_RECONNECT_DELAY_MS * Math.pow(2, conn.reconnectAttempts - 1), MAX_RECONNECT_DELAY_MS);
475
+ conn.reconnectTimer = setTimeout(async () => {
476
+ conn.reconnectTimer = null;
477
+ try {
478
+ await connect(conn.config);
479
+ }
480
+ catch (err) {
481
+ if (_debug)
482
+ console.error(`[OpenClaw] Reconnect failed for ${conn.config.name}:`, err instanceof Error ? err.message : err);
483
+ }
484
+ }, delay);
485
+ }
486
+ //# sourceMappingURL=gatewayManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gatewayManager.js","sourceRoot":"","sources":["../../../src/agents/openclaw/gatewayManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclawProvider.d.ts","sourceRoot":"","sources":["../../../src/agents/openclaw/openclawProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAA0C,aAAa,EAA2B,MAAM,UAAU,CAAC;AA2D1G,eAAO,MAAM,gBAAgB,EAAE,aAsM9B,CAAC"}