@creezio/electron-shell 0.22.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 (563) hide show
  1. package/README.md +351 -0
  2. package/dist/.creezio-src-hash.json +4 -0
  3. package/dist/admin-window.d.ts +18 -0
  4. package/dist/admin-window.d.ts.map +1 -0
  5. package/dist/admin-window.js +75 -0
  6. package/dist/admin-window.js.map +1 -0
  7. package/dist/boot.d.ts +36 -0
  8. package/dist/boot.d.ts.map +1 -0
  9. package/dist/boot.js +99 -0
  10. package/dist/boot.js.map +1 -0
  11. package/dist/desktop/assistant-chrome.d.ts +42 -0
  12. package/dist/desktop/assistant-chrome.d.ts.map +1 -0
  13. package/dist/desktop/assistant-chrome.js +178 -0
  14. package/dist/desktop/assistant-chrome.js.map +1 -0
  15. package/dist/desktop/brand-desktop-runtime.d.ts +72 -0
  16. package/dist/desktop/brand-desktop-runtime.d.ts.map +1 -0
  17. package/dist/desktop/brand-desktop-runtime.js +3926 -0
  18. package/dist/desktop/brand-desktop-runtime.js.map +1 -0
  19. package/dist/desktop/desktop-session.d.ts +85 -0
  20. package/dist/desktop/desktop-session.d.ts.map +1 -0
  21. package/dist/desktop/desktop-session.js +163 -0
  22. package/dist/desktop/desktop-session.js.map +1 -0
  23. package/dist/desktop/error-page-html.d.ts +16 -0
  24. package/dist/desktop/error-page-html.d.ts.map +1 -0
  25. package/dist/desktop/error-page-html.js +88 -0
  26. package/dist/desktop/error-page-html.js.map +1 -0
  27. package/dist/desktop/legacy-brand-compat.d.ts +45 -0
  28. package/dist/desktop/legacy-brand-compat.d.ts.map +1 -0
  29. package/dist/desktop/legacy-brand-compat.js +49 -0
  30. package/dist/desktop/legacy-brand-compat.js.map +1 -0
  31. package/dist/desktop/oauth-loopback.d.ts +28 -0
  32. package/dist/desktop/oauth-loopback.d.ts.map +1 -0
  33. package/dist/desktop/oauth-loopback.js +137 -0
  34. package/dist/desktop/oauth-loopback.js.map +1 -0
  35. package/dist/desktop/profile-picker-html.d.ts +27 -0
  36. package/dist/desktop/profile-picker-html.d.ts.map +1 -0
  37. package/dist/desktop/profile-picker-html.js +213 -0
  38. package/dist/desktop/profile-picker-html.js.map +1 -0
  39. package/dist/desktop/remote-offline-html.d.ts +14 -0
  40. package/dist/desktop/remote-offline-html.d.ts.map +1 -0
  41. package/dist/desktop/remote-offline-html.js +88 -0
  42. package/dist/desktop/remote-offline-html.js.map +1 -0
  43. package/dist/factory-reset-runtime.d.ts +11 -0
  44. package/dist/factory-reset-runtime.d.ts.map +1 -0
  45. package/dist/factory-reset-runtime.js +77 -0
  46. package/dist/factory-reset-runtime.js.map +1 -0
  47. package/dist/host/ai-workspace/actions.d.ts +12 -0
  48. package/dist/host/ai-workspace/actions.d.ts.map +1 -0
  49. package/dist/host/ai-workspace/actions.js +243 -0
  50. package/dist/host/ai-workspace/actions.js.map +1 -0
  51. package/dist/host/ai-workspace/bindings.d.ts +51 -0
  52. package/dist/host/ai-workspace/bindings.d.ts.map +1 -0
  53. package/dist/host/ai-workspace/bindings.js +40 -0
  54. package/dist/host/ai-workspace/bindings.js.map +1 -0
  55. package/dist/host/ai-workspace/index.d.ts +11 -0
  56. package/dist/host/ai-workspace/index.d.ts.map +1 -0
  57. package/dist/host/ai-workspace/index.js +6 -0
  58. package/dist/host/ai-workspace/index.js.map +1 -0
  59. package/dist/host/ai-workspace/manager.d.ts +128 -0
  60. package/dist/host/ai-workspace/manager.d.ts.map +1 -0
  61. package/dist/host/ai-workspace/manager.js +519 -0
  62. package/dist/host/ai-workspace/manager.js.map +1 -0
  63. package/dist/host/ai-workspace/profile-window.d.ts +37 -0
  64. package/dist/host/ai-workspace/profile-window.d.ts.map +1 -0
  65. package/dist/host/ai-workspace/profile-window.js +121 -0
  66. package/dist/host/ai-workspace/profile-window.js.map +1 -0
  67. package/dist/host/ai-workspace/screencast.d.ts +56 -0
  68. package/dist/host/ai-workspace/screencast.d.ts.map +1 -0
  69. package/dist/host/ai-workspace/screencast.js +245 -0
  70. package/dist/host/ai-workspace/screencast.js.map +1 -0
  71. package/dist/host/ai-workspace/types.d.ts +40 -0
  72. package/dist/host/ai-workspace/types.d.ts.map +1 -0
  73. package/dist/host/ai-workspace/types.js +6 -0
  74. package/dist/host/ai-workspace/types.js.map +1 -0
  75. package/dist/host/brand-host-runtime.d.ts +107 -0
  76. package/dist/host/brand-host-runtime.d.ts.map +1 -0
  77. package/dist/host/brand-host-runtime.js +274 -0
  78. package/dist/host/brand-host-runtime.js.map +1 -0
  79. package/dist/host/brand-host-stack.d.ts +117 -0
  80. package/dist/host/brand-host-stack.d.ts.map +1 -0
  81. package/dist/host/brand-host-stack.js +253 -0
  82. package/dist/host/brand-host-stack.js.map +1 -0
  83. package/dist/host/brand-kernel-http.d.ts +34 -0
  84. package/dist/host/brand-kernel-http.d.ts.map +1 -0
  85. package/dist/host/brand-kernel-http.js +95 -0
  86. package/dist/host/brand-kernel-http.js.map +1 -0
  87. package/dist/host/brand-meili-boot.d.ts +67 -0
  88. package/dist/host/brand-meili-boot.d.ts.map +1 -0
  89. package/dist/host/brand-meili-boot.js +100 -0
  90. package/dist/host/brand-meili-boot.js.map +1 -0
  91. package/dist/host/bridge-client.d.ts +54 -0
  92. package/dist/host/bridge-client.d.ts.map +1 -0
  93. package/dist/host/bridge-client.js +187 -0
  94. package/dist/host/bridge-client.js.map +1 -0
  95. package/dist/host/browser-tabs/browser-tab-driver.d.ts +45 -0
  96. package/dist/host/browser-tabs/browser-tab-driver.d.ts.map +1 -0
  97. package/dist/host/browser-tabs/browser-tab-driver.js +154 -0
  98. package/dist/host/browser-tabs/browser-tab-driver.js.map +1 -0
  99. package/dist/host/browser-tabs/browser-tab-manager.d.ts +208 -0
  100. package/dist/host/browser-tabs/browser-tab-manager.d.ts.map +1 -0
  101. package/dist/host/browser-tabs/browser-tab-manager.js +758 -0
  102. package/dist/host/browser-tabs/browser-tab-manager.js.map +1 -0
  103. package/dist/host/browser-tabs/browser-tab-preload-path.d.ts +2 -0
  104. package/dist/host/browser-tabs/browser-tab-preload-path.d.ts.map +1 -0
  105. package/dist/host/browser-tabs/browser-tab-preload-path.js +29 -0
  106. package/dist/host/browser-tabs/browser-tab-preload-path.js.map +1 -0
  107. package/dist/host/browser-tabs/browser-tab-preload.d.ts +11 -0
  108. package/dist/host/browser-tabs/browser-tab-preload.d.ts.map +1 -0
  109. package/dist/host/browser-tabs/browser-tab-preload.js +11 -0
  110. package/dist/host/browser-tabs/browser-tab-preload.js.map +1 -0
  111. package/dist/host/browser-tabs/chrome-ua.d.ts +19 -0
  112. package/dist/host/browser-tabs/chrome-ua.d.ts.map +1 -0
  113. package/dist/host/browser-tabs/chrome-ua.js +37 -0
  114. package/dist/host/browser-tabs/chrome-ua.js.map +1 -0
  115. package/dist/host/browser-tabs/fake-cursor-inject.d.ts +7 -0
  116. package/dist/host/browser-tabs/fake-cursor-inject.d.ts.map +1 -0
  117. package/dist/host/browser-tabs/fake-cursor-inject.js +7 -0
  118. package/dist/host/browser-tabs/fake-cursor-inject.js.map +1 -0
  119. package/dist/host/browser-tabs/index.d.ts +13 -0
  120. package/dist/host/browser-tabs/index.d.ts.map +1 -0
  121. package/dist/host/browser-tabs/index.js +13 -0
  122. package/dist/host/browser-tabs/index.js.map +1 -0
  123. package/dist/host/browser-tabs/tab-load-state.d.ts +56 -0
  124. package/dist/host/browser-tabs/tab-load-state.d.ts.map +1 -0
  125. package/dist/host/browser-tabs/tab-load-state.js +56 -0
  126. package/dist/host/browser-tabs/tab-load-state.js.map +1 -0
  127. package/dist/host/browser-tabs/tab-url.d.ts +10 -0
  128. package/dist/host/browser-tabs/tab-url.d.ts.map +1 -0
  129. package/dist/host/browser-tabs/tab-url.js +57 -0
  130. package/dist/host/browser-tabs/tab-url.js.map +1 -0
  131. package/dist/host/context.d.ts +70 -0
  132. package/dist/host/context.d.ts.map +1 -0
  133. package/dist/host/context.js +16 -0
  134. package/dist/host/context.js.map +1 -0
  135. package/dist/host/contracts.d.ts +39 -0
  136. package/dist/host/contracts.d.ts.map +1 -0
  137. package/dist/host/contracts.js +26 -0
  138. package/dist/host/contracts.js.map +1 -0
  139. package/dist/host/crash-reporter.d.ts +65 -0
  140. package/dist/host/crash-reporter.d.ts.map +1 -0
  141. package/dist/host/crash-reporter.js +371 -0
  142. package/dist/host/crash-reporter.js.map +1 -0
  143. package/dist/host/ensure-kit-binaries.d.ts +17 -0
  144. package/dist/host/ensure-kit-binaries.d.ts.map +1 -0
  145. package/dist/host/ensure-kit-binaries.js +205 -0
  146. package/dist/host/ensure-kit-binaries.js.map +1 -0
  147. package/dist/host/feature-off-host.d.ts +130 -0
  148. package/dist/host/feature-off-host.d.ts.map +1 -0
  149. package/dist/host/feature-off-host.js +138 -0
  150. package/dist/host/feature-off-host.js.map +1 -0
  151. package/dist/host/hermes/crm-key.d.ts +49 -0
  152. package/dist/host/hermes/crm-key.d.ts.map +1 -0
  153. package/dist/host/hermes/crm-key.js +126 -0
  154. package/dist/host/hermes/crm-key.js.map +1 -0
  155. package/dist/host/hermes/ensure-crm-key-db.d.ts +7 -0
  156. package/dist/host/hermes/ensure-crm-key-db.d.ts.map +1 -0
  157. package/dist/host/hermes/ensure-crm-key-db.js +84 -0
  158. package/dist/host/hermes/ensure-crm-key-db.js.map +1 -0
  159. package/dist/host/hermes/launcher.d.ts +98 -0
  160. package/dist/host/hermes/launcher.d.ts.map +1 -0
  161. package/dist/host/hermes/launcher.js +972 -0
  162. package/dist/host/hermes/launcher.js.map +1 -0
  163. package/dist/host/hermes/runtime-bootstrap.d.ts +172 -0
  164. package/dist/host/hermes/runtime-bootstrap.d.ts.map +1 -0
  165. package/dist/host/hermes/runtime-bootstrap.js +789 -0
  166. package/dist/host/hermes/runtime-bootstrap.js.map +1 -0
  167. package/dist/host/hermes/skills-seed.d.ts +40 -0
  168. package/dist/host/hermes/skills-seed.d.ts.map +1 -0
  169. package/dist/host/hermes/skills-seed.js +100 -0
  170. package/dist/host/hermes/skills-seed.js.map +1 -0
  171. package/dist/host/host-stack.d.ts +35 -0
  172. package/dist/host/host-stack.d.ts.map +1 -0
  173. package/dist/host/host-stack.js +38 -0
  174. package/dist/host/host-stack.js.map +1 -0
  175. package/dist/host/kit-os-resources.d.ts +6 -0
  176. package/dist/host/kit-os-resources.d.ts.map +1 -0
  177. package/dist/host/kit-os-resources.js +88 -0
  178. package/dist/host/kit-os-resources.js.map +1 -0
  179. package/dist/host/load-electron.d.ts +2 -0
  180. package/dist/host/load-electron.d.ts.map +1 -0
  181. package/dist/host/load-electron.js +44 -0
  182. package/dist/host/load-electron.js.map +1 -0
  183. package/dist/host/local-config.d.ts +120 -0
  184. package/dist/host/local-config.d.ts.map +1 -0
  185. package/dist/host/local-config.js +633 -0
  186. package/dist/host/local-config.js.map +1 -0
  187. package/dist/host/meili/browse.d.ts +58 -0
  188. package/dist/host/meili/browse.d.ts.map +1 -0
  189. package/dist/host/meili/browse.js +98 -0
  190. package/dist/host/meili/browse.js.map +1 -0
  191. package/dist/host/meili/coherence-db.d.ts +35 -0
  192. package/dist/host/meili/coherence-db.d.ts.map +1 -0
  193. package/dist/host/meili/coherence-db.js +129 -0
  194. package/dist/host/meili/coherence-db.js.map +1 -0
  195. package/dist/host/meili/coherence-query.d.ts +10 -0
  196. package/dist/host/meili/coherence-query.d.ts.map +1 -0
  197. package/dist/host/meili/coherence-query.js +23 -0
  198. package/dist/host/meili/coherence-query.js.map +1 -0
  199. package/dist/host/meili/coherence.d.ts +53 -0
  200. package/dist/host/meili/coherence.d.ts.map +1 -0
  201. package/dist/host/meili/coherence.js +148 -0
  202. package/dist/host/meili/coherence.js.map +1 -0
  203. package/dist/host/meili/feed.d.ts +82 -0
  204. package/dist/host/meili/feed.d.ts.map +1 -0
  205. package/dist/host/meili/feed.js +100 -0
  206. package/dist/host/meili/feed.js.map +1 -0
  207. package/dist/host/meili/generic-indexer.d.ts +34 -0
  208. package/dist/host/meili/generic-indexer.d.ts.map +1 -0
  209. package/dist/host/meili/generic-indexer.js +333 -0
  210. package/dist/host/meili/generic-indexer.js.map +1 -0
  211. package/dist/host/meili/index-schema.d.ts +64 -0
  212. package/dist/host/meili/index-schema.d.ts.map +1 -0
  213. package/dist/host/meili/index-schema.js +70 -0
  214. package/dist/host/meili/index-schema.js.map +1 -0
  215. package/dist/host/meili/index.d.ts +13 -0
  216. package/dist/host/meili/index.d.ts.map +1 -0
  217. package/dist/host/meili/index.js +8 -0
  218. package/dist/host/meili/index.js.map +1 -0
  219. package/dist/host/meili/indexer.d.ts +31 -0
  220. package/dist/host/meili/indexer.d.ts.map +1 -0
  221. package/dist/host/meili/indexer.js +49 -0
  222. package/dist/host/meili/indexer.js.map +1 -0
  223. package/dist/host/meili-launcher.d.ts +30 -0
  224. package/dist/host/meili-launcher.d.ts.map +1 -0
  225. package/dist/host/meili-launcher.js +115 -0
  226. package/dist/host/meili-launcher.js.map +1 -0
  227. package/dist/host/n8n/agent-isolation.d.ts +55 -0
  228. package/dist/host/n8n/agent-isolation.d.ts.map +1 -0
  229. package/dist/host/n8n/agent-isolation.js +158 -0
  230. package/dist/host/n8n/agent-isolation.js.map +1 -0
  231. package/dist/host/n8n/api-key.d.ts +67 -0
  232. package/dist/host/n8n/api-key.d.ts.map +1 -0
  233. package/dist/host/n8n/api-key.js +297 -0
  234. package/dist/host/n8n/api-key.js.map +1 -0
  235. package/dist/host/n8n/launcher.d.ts +126 -0
  236. package/dist/host/n8n/launcher.d.ts.map +1 -0
  237. package/dist/host/n8n/launcher.js +1170 -0
  238. package/dist/host/n8n/launcher.js.map +1 -0
  239. package/dist/host/n8n/runtime-bootstrap.d.ts +44 -0
  240. package/dist/host/n8n/runtime-bootstrap.d.ts.map +1 -0
  241. package/dist/host/n8n/runtime-bootstrap.js +230 -0
  242. package/dist/host/n8n/runtime-bootstrap.js.map +1 -0
  243. package/dist/host/node-runtime.d.ts +52 -0
  244. package/dist/host/node-runtime.d.ts.map +1 -0
  245. package/dist/host/node-runtime.js +257 -0
  246. package/dist/host/node-runtime.js.map +1 -0
  247. package/dist/host/npm-cli.d.ts +43 -0
  248. package/dist/host/npm-cli.d.ts.map +1 -0
  249. package/dist/host/npm-cli.js +213 -0
  250. package/dist/host/npm-cli.js.map +1 -0
  251. package/dist/host/plugins/accept-check.d.ts +19 -0
  252. package/dist/host/plugins/accept-check.d.ts.map +1 -0
  253. package/dist/host/plugins/accept-check.js +172 -0
  254. package/dist/host/plugins/accept-check.js.map +1 -0
  255. package/dist/host/plugins/brand-bindings.d.ts +103 -0
  256. package/dist/host/plugins/brand-bindings.d.ts.map +1 -0
  257. package/dist/host/plugins/brand-bindings.js +65 -0
  258. package/dist/host/plugins/brand-bindings.js.map +1 -0
  259. package/dist/host/plugins/control-adapters.d.ts +11 -0
  260. package/dist/host/plugins/control-adapters.d.ts.map +1 -0
  261. package/dist/host/plugins/control-adapters.js +83 -0
  262. package/dist/host/plugins/control-adapters.js.map +1 -0
  263. package/dist/host/plugins/control-extras.d.ts +61 -0
  264. package/dist/host/plugins/control-extras.d.ts.map +1 -0
  265. package/dist/host/plugins/control-extras.js +382 -0
  266. package/dist/host/plugins/control-extras.js.map +1 -0
  267. package/dist/host/plugins/control-plane.d.ts +42 -0
  268. package/dist/host/plugins/control-plane.d.ts.map +1 -0
  269. package/dist/host/plugins/control-plane.js +124 -0
  270. package/dist/host/plugins/control-plane.js.map +1 -0
  271. package/dist/host/plugins/control-token.d.ts +24 -0
  272. package/dist/host/plugins/control-token.d.ts.map +1 -0
  273. package/dist/host/plugins/control-token.js +77 -0
  274. package/dist/host/plugins/control-token.js.map +1 -0
  275. package/dist/host/plugins/crm-key.d.ts +25 -0
  276. package/dist/host/plugins/crm-key.d.ts.map +1 -0
  277. package/dist/host/plugins/crm-key.js +126 -0
  278. package/dist/host/plugins/crm-key.js.map +1 -0
  279. package/dist/host/plugins/data.d.ts +21 -0
  280. package/dist/host/plugins/data.d.ts.map +1 -0
  281. package/dist/host/plugins/data.js +100 -0
  282. package/dist/host/plugins/data.js.map +1 -0
  283. package/dist/host/plugins/events.d.ts +6 -0
  284. package/dist/host/plugins/events.d.ts.map +1 -0
  285. package/dist/host/plugins/events.js +6 -0
  286. package/dist/host/plugins/events.js.map +1 -0
  287. package/dist/host/plugins/execution-grant.d.ts +6 -0
  288. package/dist/host/plugins/execution-grant.d.ts.map +1 -0
  289. package/dist/host/plugins/execution-grant.js +6 -0
  290. package/dist/host/plugins/execution-grant.js.map +1 -0
  291. package/dist/host/plugins/git.d.ts +56 -0
  292. package/dist/host/plugins/git.d.ts.map +1 -0
  293. package/dist/host/plugins/git.js +357 -0
  294. package/dist/host/plugins/git.js.map +1 -0
  295. package/dist/host/plugins/host.d.ts +68 -0
  296. package/dist/host/plugins/host.d.ts.map +1 -0
  297. package/dist/host/plugins/host.js +276 -0
  298. package/dist/host/plugins/host.js.map +1 -0
  299. package/dist/host/plugins/launcher.d.ts +146 -0
  300. package/dist/host/plugins/launcher.d.ts.map +1 -0
  301. package/dist/host/plugins/launcher.js +489 -0
  302. package/dist/host/plugins/launcher.js.map +1 -0
  303. package/dist/host/plugins/runtime.d.ts +28 -0
  304. package/dist/host/plugins/runtime.d.ts.map +1 -0
  305. package/dist/host/plugins/runtime.js +430 -0
  306. package/dist/host/plugins/runtime.js.map +1 -0
  307. package/dist/host/plugins/test-runner.d.ts +15 -0
  308. package/dist/host/plugins/test-runner.d.ts.map +1 -0
  309. package/dist/host/plugins/test-runner.js +106 -0
  310. package/dist/host/plugins/test-runner.js.map +1 -0
  311. package/dist/host/safe-storage.d.ts +21 -0
  312. package/dist/host/safe-storage.d.ts.map +1 -0
  313. package/dist/host/safe-storage.js +55 -0
  314. package/dist/host/safe-storage.js.map +1 -0
  315. package/dist/host/sandbox/embed-sandbox.d.ts +133 -0
  316. package/dist/host/sandbox/embed-sandbox.d.ts.map +1 -0
  317. package/dist/host/sandbox/embed-sandbox.js +378 -0
  318. package/dist/host/sandbox/embed-sandbox.js.map +1 -0
  319. package/dist/host/sandbox/os-sandbox.d.ts +41 -0
  320. package/dist/host/sandbox/os-sandbox.d.ts.map +1 -0
  321. package/dist/host/sandbox/os-sandbox.js +98 -0
  322. package/dist/host/sandbox/os-sandbox.js.map +1 -0
  323. package/dist/host/server-env.d.ts +50 -0
  324. package/dist/host/server-env.d.ts.map +1 -0
  325. package/dist/host/server-env.js +64 -0
  326. package/dist/host/server-env.js.map +1 -0
  327. package/dist/host/server-launcher.d.ts +49 -0
  328. package/dist/host/server-launcher.d.ts.map +1 -0
  329. package/dist/host/server-launcher.js +43 -0
  330. package/dist/host/server-launcher.js.map +1 -0
  331. package/dist/host/tunnel/cloudflared-respawn.d.ts +58 -0
  332. package/dist/host/tunnel/cloudflared-respawn.d.ts.map +1 -0
  333. package/dist/host/tunnel/cloudflared-respawn.js +73 -0
  334. package/dist/host/tunnel/cloudflared-respawn.js.map +1 -0
  335. package/dist/host/tunnel/tunnel.d.ts +72 -0
  336. package/dist/host/tunnel/tunnel.d.ts.map +1 -0
  337. package/dist/host/tunnel/tunnel.js +462 -0
  338. package/dist/host/tunnel/tunnel.js.map +1 -0
  339. package/dist/host/web-telemetry.d.ts +16 -0
  340. package/dist/host/web-telemetry.d.ts.map +1 -0
  341. package/dist/host/web-telemetry.js +97 -0
  342. package/dist/host/web-telemetry.js.map +1 -0
  343. package/dist/index.d.ts +198 -0
  344. package/dist/index.d.ts.map +1 -0
  345. package/dist/index.js +102 -0
  346. package/dist/index.js.map +1 -0
  347. package/dist/logger.d.ts +44 -0
  348. package/dist/logger.d.ts.map +1 -0
  349. package/dist/logger.js +252 -0
  350. package/dist/logger.js.map +1 -0
  351. package/dist/main-facade.d.ts +51 -0
  352. package/dist/main-facade.d.ts.map +1 -0
  353. package/dist/main-facade.js +96 -0
  354. package/dist/main-facade.js.map +1 -0
  355. package/dist/meili.d.ts +19 -0
  356. package/dist/meili.d.ts.map +1 -0
  357. package/dist/meili.js +14 -0
  358. package/dist/meili.js.map +1 -0
  359. package/dist/splash-ui.d.ts +69 -0
  360. package/dist/splash-ui.d.ts.map +1 -0
  361. package/dist/splash-ui.js +431 -0
  362. package/dist/splash-ui.js.map +1 -0
  363. package/dist/tray.d.ts +44 -0
  364. package/dist/tray.d.ts.map +1 -0
  365. package/dist/tray.js +173 -0
  366. package/dist/tray.js.map +1 -0
  367. package/dist/updater.d.ts +36 -0
  368. package/dist/updater.d.ts.map +1 -0
  369. package/dist/updater.js +257 -0
  370. package/dist/updater.js.map +1 -0
  371. package/dist/window-chrome.d.ts +12 -0
  372. package/dist/window-chrome.d.ts.map +1 -0
  373. package/dist/window-chrome.js +93 -0
  374. package/dist/window-chrome.js.map +1 -0
  375. package/dist-cjs/admin-window.js +116 -0
  376. package/dist-cjs/admin-window.js.map +1 -0
  377. package/dist-cjs/boot.js +139 -0
  378. package/dist-cjs/boot.js.map +1 -0
  379. package/dist-cjs/desktop/assistant-chrome.js +184 -0
  380. package/dist-cjs/desktop/assistant-chrome.js.map +1 -0
  381. package/dist-cjs/desktop/brand-desktop-runtime.js +3932 -0
  382. package/dist-cjs/desktop/brand-desktop-runtime.js.map +1 -0
  383. package/dist-cjs/desktop/desktop-session.js +171 -0
  384. package/dist-cjs/desktop/desktop-session.js.map +1 -0
  385. package/dist-cjs/desktop/error-page-html.js +92 -0
  386. package/dist-cjs/desktop/error-page-html.js.map +1 -0
  387. package/dist-cjs/desktop/legacy-brand-compat.js +56 -0
  388. package/dist-cjs/desktop/legacy-brand-compat.js.map +1 -0
  389. package/dist-cjs/desktop/oauth-loopback.js +144 -0
  390. package/dist-cjs/desktop/oauth-loopback.js.map +1 -0
  391. package/dist-cjs/desktop/profile-picker-html.js +216 -0
  392. package/dist-cjs/desktop/profile-picker-html.js.map +1 -0
  393. package/dist-cjs/desktop/remote-offline-html.js +91 -0
  394. package/dist-cjs/desktop/remote-offline-html.js.map +1 -0
  395. package/dist-cjs/factory-reset-runtime.js +117 -0
  396. package/dist-cjs/factory-reset-runtime.js.map +1 -0
  397. package/dist-cjs/host/ai-workspace/actions.js +247 -0
  398. package/dist-cjs/host/ai-workspace/actions.js.map +1 -0
  399. package/dist-cjs/host/ai-workspace/bindings.js +49 -0
  400. package/dist-cjs/host/ai-workspace/bindings.js.map +1 -0
  401. package/dist-cjs/host/ai-workspace/index.js +21 -0
  402. package/dist-cjs/host/ai-workspace/index.js.map +1 -0
  403. package/dist-cjs/host/ai-workspace/manager.js +528 -0
  404. package/dist-cjs/host/ai-workspace/manager.js.map +1 -0
  405. package/dist-cjs/host/ai-workspace/profile-window.js +125 -0
  406. package/dist-cjs/host/ai-workspace/profile-window.js.map +1 -0
  407. package/dist-cjs/host/ai-workspace/screencast.js +249 -0
  408. package/dist-cjs/host/ai-workspace/screencast.js.map +1 -0
  409. package/dist-cjs/host/ai-workspace/types.js +7 -0
  410. package/dist-cjs/host/ai-workspace/types.js.map +1 -0
  411. package/dist-cjs/host/brand-host-runtime.js +286 -0
  412. package/dist-cjs/host/brand-host-runtime.js.map +1 -0
  413. package/dist-cjs/host/brand-host-stack.js +259 -0
  414. package/dist-cjs/host/brand-host-stack.js.map +1 -0
  415. package/dist-cjs/host/brand-kernel-http.js +101 -0
  416. package/dist-cjs/host/brand-kernel-http.js.map +1 -0
  417. package/dist-cjs/host/brand-meili-boot.js +106 -0
  418. package/dist-cjs/host/brand-meili-boot.js.map +1 -0
  419. package/dist-cjs/host/bridge-client.js +191 -0
  420. package/dist-cjs/host/bridge-client.js.map +1 -0
  421. package/dist-cjs/host/browser-tabs/browser-tab-driver.js +158 -0
  422. package/dist-cjs/host/browser-tabs/browser-tab-driver.js.map +1 -0
  423. package/dist-cjs/host/browser-tabs/browser-tab-manager.js +766 -0
  424. package/dist-cjs/host/browser-tabs/browser-tab-manager.js.map +1 -0
  425. package/dist-cjs/host/browser-tabs/browser-tab-preload-path.js +35 -0
  426. package/dist-cjs/host/browser-tabs/browser-tab-preload-path.js.map +1 -0
  427. package/dist-cjs/host/browser-tabs/browser-tab-preload.js +12 -0
  428. package/dist-cjs/host/browser-tabs/browser-tab-preload.js.map +1 -0
  429. package/dist-cjs/host/browser-tabs/chrome-ua.js +41 -0
  430. package/dist-cjs/host/browser-tabs/chrome-ua.js.map +1 -0
  431. package/dist-cjs/host/browser-tabs/fake-cursor-inject.js +11 -0
  432. package/dist-cjs/host/browser-tabs/fake-cursor-inject.js.map +1 -0
  433. package/dist-cjs/host/browser-tabs/index.js +29 -0
  434. package/dist-cjs/host/browser-tabs/index.js.map +1 -0
  435. package/dist-cjs/host/browser-tabs/tab-load-state.js +59 -0
  436. package/dist-cjs/host/browser-tabs/tab-load-state.js.map +1 -0
  437. package/dist-cjs/host/browser-tabs/tab-url.js +62 -0
  438. package/dist-cjs/host/browser-tabs/tab-url.js.map +1 -0
  439. package/dist-cjs/host/context.js +20 -0
  440. package/dist-cjs/host/context.js.map +1 -0
  441. package/dist-cjs/host/contracts.js +32 -0
  442. package/dist-cjs/host/contracts.js.map +1 -0
  443. package/dist-cjs/host/crash-reporter.js +422 -0
  444. package/dist-cjs/host/crash-reporter.js.map +1 -0
  445. package/dist-cjs/host/ensure-kit-binaries.js +212 -0
  446. package/dist-cjs/host/ensure-kit-binaries.js.map +1 -0
  447. package/dist-cjs/host/feature-off-host.js +144 -0
  448. package/dist-cjs/host/feature-off-host.js.map +1 -0
  449. package/dist-cjs/host/hermes/crm-key.js +137 -0
  450. package/dist-cjs/host/hermes/crm-key.js.map +1 -0
  451. package/dist-cjs/host/hermes/ensure-crm-key-db.js +89 -0
  452. package/dist-cjs/host/hermes/ensure-crm-key-db.js.map +1 -0
  453. package/dist-cjs/host/hermes/launcher.js +981 -0
  454. package/dist-cjs/host/hermes/launcher.js.map +1 -0
  455. package/dist-cjs/host/hermes/runtime-bootstrap.js +853 -0
  456. package/dist-cjs/host/hermes/runtime-bootstrap.js.map +1 -0
  457. package/dist-cjs/host/hermes/skills-seed.js +110 -0
  458. package/dist-cjs/host/hermes/skills-seed.js.map +1 -0
  459. package/dist-cjs/host/host-stack.js +42 -0
  460. package/dist-cjs/host/host-stack.js.map +1 -0
  461. package/dist-cjs/host/kit-os-resources.js +96 -0
  462. package/dist-cjs/host/kit-os-resources.js.map +1 -0
  463. package/dist-cjs/host/load-electron.js +47 -0
  464. package/dist-cjs/host/load-electron.js.map +1 -0
  465. package/dist-cjs/host/local-config.js +640 -0
  466. package/dist-cjs/host/local-config.js.map +1 -0
  467. package/dist-cjs/host/meili/browse.js +103 -0
  468. package/dist-cjs/host/meili/browse.js.map +1 -0
  469. package/dist-cjs/host/meili/coherence-db.js +139 -0
  470. package/dist-cjs/host/meili/coherence-db.js.map +1 -0
  471. package/dist-cjs/host/meili/coherence-query.js +25 -0
  472. package/dist-cjs/host/meili/coherence-query.js.map +1 -0
  473. package/dist-cjs/host/meili/coherence.js +158 -0
  474. package/dist-cjs/host/meili/coherence.js.map +1 -0
  475. package/dist-cjs/host/meili/feed.js +108 -0
  476. package/dist-cjs/host/meili/feed.js.map +1 -0
  477. package/dist-cjs/host/meili/generic-indexer.js +340 -0
  478. package/dist-cjs/host/meili/generic-indexer.js.map +1 -0
  479. package/dist-cjs/host/meili/index-schema.js +79 -0
  480. package/dist-cjs/host/meili/index-schema.js.map +1 -0
  481. package/dist-cjs/host/meili/index.js +45 -0
  482. package/dist-cjs/host/meili/index.js.map +1 -0
  483. package/dist-cjs/host/meili/indexer.js +85 -0
  484. package/dist-cjs/host/meili/indexer.js.map +1 -0
  485. package/dist-cjs/host/meili-launcher.js +121 -0
  486. package/dist-cjs/host/meili-launcher.js.map +1 -0
  487. package/dist-cjs/host/n8n/agent-isolation.js +173 -0
  488. package/dist-cjs/host/n8n/agent-isolation.js.map +1 -0
  489. package/dist-cjs/host/n8n/api-key.js +314 -0
  490. package/dist-cjs/host/n8n/api-key.js.map +1 -0
  491. package/dist-cjs/host/n8n/launcher.js +1209 -0
  492. package/dist-cjs/host/n8n/launcher.js.map +1 -0
  493. package/dist-cjs/host/n8n/runtime-bootstrap.js +244 -0
  494. package/dist-cjs/host/n8n/runtime-bootstrap.js.map +1 -0
  495. package/dist-cjs/host/node-runtime.js +274 -0
  496. package/dist-cjs/host/node-runtime.js.map +1 -0
  497. package/dist-cjs/host/npm-cli.js +224 -0
  498. package/dist-cjs/host/npm-cli.js.map +1 -0
  499. package/dist-cjs/host/plugins/accept-check.js +176 -0
  500. package/dist-cjs/host/plugins/accept-check.js.map +1 -0
  501. package/dist-cjs/host/plugins/brand-bindings.js +78 -0
  502. package/dist-cjs/host/plugins/brand-bindings.js.map +1 -0
  503. package/dist-cjs/host/plugins/control-adapters.js +89 -0
  504. package/dist-cjs/host/plugins/control-adapters.js.map +1 -0
  505. package/dist-cjs/host/plugins/control-extras.js +397 -0
  506. package/dist-cjs/host/plugins/control-extras.js.map +1 -0
  507. package/dist-cjs/host/plugins/control-plane.js +130 -0
  508. package/dist-cjs/host/plugins/control-plane.js.map +1 -0
  509. package/dist-cjs/host/plugins/control-token.js +90 -0
  510. package/dist-cjs/host/plugins/control-token.js.map +1 -0
  511. package/dist-cjs/host/plugins/crm-key.js +135 -0
  512. package/dist-cjs/host/plugins/crm-key.js.map +1 -0
  513. package/dist-cjs/host/plugins/data.js +107 -0
  514. package/dist-cjs/host/plugins/data.js.map +1 -0
  515. package/dist-cjs/host/plugins/events.js +19 -0
  516. package/dist-cjs/host/plugins/events.js.map +1 -0
  517. package/dist-cjs/host/plugins/execution-grant.js +11 -0
  518. package/dist-cjs/host/plugins/execution-grant.js.map +1 -0
  519. package/dist-cjs/host/plugins/git.js +371 -0
  520. package/dist-cjs/host/plugins/git.js.map +1 -0
  521. package/dist-cjs/host/plugins/host.js +283 -0
  522. package/dist-cjs/host/plugins/host.js.map +1 -0
  523. package/dist-cjs/host/plugins/launcher.js +514 -0
  524. package/dist-cjs/host/plugins/launcher.js.map +1 -0
  525. package/dist-cjs/host/plugins/runtime.js +446 -0
  526. package/dist-cjs/host/plugins/runtime.js.map +1 -0
  527. package/dist-cjs/host/plugins/test-runner.js +112 -0
  528. package/dist-cjs/host/plugins/test-runner.js.map +1 -0
  529. package/dist-cjs/host/safe-storage.js +95 -0
  530. package/dist-cjs/host/safe-storage.js.map +1 -0
  531. package/dist-cjs/host/sandbox/embed-sandbox.js +396 -0
  532. package/dist-cjs/host/sandbox/embed-sandbox.js.map +1 -0
  533. package/dist-cjs/host/sandbox/os-sandbox.js +106 -0
  534. package/dist-cjs/host/sandbox/os-sandbox.js.map +1 -0
  535. package/dist-cjs/host/server-env.js +69 -0
  536. package/dist-cjs/host/server-env.js.map +1 -0
  537. package/dist-cjs/host/server-launcher.js +52 -0
  538. package/dist-cjs/host/server-launcher.js.map +1 -0
  539. package/dist-cjs/host/tunnel/cloudflared-respawn.js +80 -0
  540. package/dist-cjs/host/tunnel/cloudflared-respawn.js.map +1 -0
  541. package/dist-cjs/host/tunnel/tunnel.js +470 -0
  542. package/dist-cjs/host/tunnel/tunnel.js.map +1 -0
  543. package/dist-cjs/host/web-telemetry.js +100 -0
  544. package/dist-cjs/host/web-telemetry.js.map +1 -0
  545. package/dist-cjs/index.js +496 -0
  546. package/dist-cjs/index.js.map +1 -0
  547. package/dist-cjs/logger.js +269 -0
  548. package/dist-cjs/logger.js.map +1 -0
  549. package/dist-cjs/main-facade.js +139 -0
  550. package/dist-cjs/main-facade.js.map +1 -0
  551. package/dist-cjs/meili.js +51 -0
  552. package/dist-cjs/meili.js.map +1 -0
  553. package/dist-cjs/package.json +3 -0
  554. package/dist-cjs/splash-ui.js +447 -0
  555. package/dist-cjs/splash-ui.js.map +1 -0
  556. package/dist-cjs/tray.js +182 -0
  557. package/dist-cjs/tray.js.map +1 -0
  558. package/dist-cjs/updater.js +304 -0
  559. package/dist-cjs/updater.js.map +1 -0
  560. package/dist-cjs/window-chrome.js +98 -0
  561. package/dist-cjs/window-chrome.js.map +1 -0
  562. package/package.json +87 -0
  563. package/scripts/ensure-kit-binaries.mjs +73 -0
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Politique « OS desktop Creezio » — périmètre d'exécution strict.
3
+ *
4
+ * Principe : un build packagé ne doit JAMAIS résoudre un binaire via le PATH
5
+ * utilisateur, ni accepter un override d'environnement pointant hors du
6
+ * sandbox. Les seuls exécutables légitimes sont :
7
+ * - ceux packagés sous `process.resourcesPath` (Node, Meili, git, cloudflared…)
8
+ * - ceux installés par desktop sous `{userData}` (venv Hermes, npm-cli…)
9
+ * - les utilitaires système FONDAMENTAUX de l'OS, résolus par CHEMIN ABSOLU
10
+ * connu (jamais par nom sur le PATH) : PowerShell, tar, cmd, bash.
11
+ *
12
+ * Aucun import Electron ici : module pur, testable depuis Node.
13
+ */
14
+ import fs from "node:fs";
15
+ import path from "node:path";
16
+ /**
17
+ * Les overrides `{PREFIX}_*_BIN`, `HERMES_BIN`, `TF2_USER_DATA_OVERRIDE`, etc. ne sont
18
+ * honorés qu'en build NON packagé (dev / CI / tests). En prod ils sont ignorés :
19
+ * un malware ou un raccourci piégé ne doit pas pouvoir détourner un spawn.
20
+ */
21
+ export function overridesAllowed(isPackaged) {
22
+ return !isPackaged;
23
+ }
24
+ /**
25
+ * Répertoires système où un binaire OS fondamental est acceptable, par nom.
26
+ * Retourne le premier chemin absolu existant, ou null.
27
+ */
28
+ export function resolveSystemBinary(name, opts) {
29
+ const platform = opts?.platform || process.platform;
30
+ const env = opts?.env || process.env;
31
+ const exists = opts?.existsSync || fs.existsSync;
32
+ if (platform === "win32") {
33
+ const sysRoot = (env.SystemRoot || env.windir || "C:\\Windows").replace(/[\\/]+$/, "");
34
+ const sys32 = path.win32.join(sysRoot, "System32");
35
+ const candidates = {
36
+ powershell: [
37
+ path.win32.join(sys32, "WindowsPowerShell", "v1.0", "powershell.exe"),
38
+ ],
39
+ cmd: [path.win32.join(sys32, "cmd.exe")],
40
+ // tar.exe (bsdtar) livré avec Windows 10 build 17063+.
41
+ tar: [path.win32.join(sys32, "tar.exe")],
42
+ taskkill: [path.win32.join(sys32, "taskkill.exe")],
43
+ // Git bash (rare) — resources MinGit géré ailleurs ; pas de fallback OS.
44
+ bash: [],
45
+ };
46
+ for (const c of candidates[name] || []) {
47
+ if (exists(c))
48
+ return c;
49
+ }
50
+ return null;
51
+ }
52
+ // POSIX (dev Linux / mac lab) : chemins standards.
53
+ const posix = {
54
+ bash: ["/bin/bash", "/usr/bin/bash"],
55
+ tar: ["/bin/tar", "/usr/bin/tar"],
56
+ cmd: [],
57
+ powershell: [],
58
+ taskkill: [],
59
+ };
60
+ for (const c of posix[name] || []) {
61
+ if (exists(c))
62
+ return c;
63
+ }
64
+ return null;
65
+ }
66
+ /**
67
+ * PATH minimal pour un process enfant confiné : uniquement les dossiers
68
+ * desktop (Node, binaires runtime) + le System32 de l'OS (pour que les
69
+ * utilitaires fondamentaux résolus en absolu trouvent leurs DLL). JAMAIS le
70
+ * PATH utilisateur complet — pas de résolution d'outils tiers installés.
71
+ */
72
+ export function buildConfinedPath(opts) {
73
+ const env = opts.env || {};
74
+ const sep = opts.platform === "win32" ? ";" : ":";
75
+ const dirs = [...opts.toolDirs];
76
+ if (opts.platform === "win32") {
77
+ const sysRoot = (env.SystemRoot || env.windir || "C:\\Windows").replace(/[\\/]+$/, "");
78
+ dirs.push(path.win32.join(sysRoot, "System32"), sysRoot, path.win32.join(sysRoot, "System32", "Wbem"), path.win32.join(sysRoot, "System32", "WindowsPowerShell", "v1.0"));
79
+ }
80
+ else {
81
+ // Minimal POSIX : chemins système de base, pas ~/.local/bin ni brew.
82
+ dirs.push("/usr/bin", "/bin");
83
+ }
84
+ // Dédup en conservant l'ordre.
85
+ const seen = new Set();
86
+ const out = [];
87
+ for (const d of dirs) {
88
+ if (!d)
89
+ continue;
90
+ const norm = d;
91
+ if (seen.has(norm))
92
+ continue;
93
+ seen.add(norm);
94
+ out.push(norm);
95
+ }
96
+ return out.join(sep);
97
+ }
98
+ //# sourceMappingURL=os-sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"os-sandbox.js","sourceRoot":"","sources":["../../../src/host/sandbox/os-sandbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Contrats / helpers pour le lancement du serveur Next embarqué.
3
+ * Le spawn complet (node-runtime, secrets local-config) reste branché
4
+ * par l'app marque — ici le noyau brand-agnostic.
5
+ */
6
+ import type { ChildProcess } from "node:child_process";
7
+ import type { AppManifest } from "@creezio/brand-config";
8
+ import { findFreePort, waitForHealth, type BindHost } from "@creezio/platform-core";
9
+ export type RunningServer = {
10
+ port: number;
11
+ baseUrl: string;
12
+ child: ChildProcess;
13
+ stop: () => void;
14
+ };
15
+ export type StartServerPaths = {
16
+ dbPath: string;
17
+ assistantDbPath: string;
18
+ uploadsDir: string;
19
+ nextServerEntry: string;
20
+ nodeBinary: string;
21
+ };
22
+ export type StartServerCoreOptions = {
23
+ manifest: AppManifest;
24
+ paths: StartServerPaths;
25
+ bindHost?: BindHost;
26
+ preferredPort?: number;
27
+ meiliHost?: string | null;
28
+ meiliMasterKey?: string | null;
29
+ authSecret?: string;
30
+ mcpJwtSecret?: string;
31
+ extraEnv?: Record<string, string>;
32
+ log?: (line: string) => void;
33
+ /**
34
+ * Spawn effectif — fourni par l'app (isole node-runtime / sandbox).
35
+ * Reçoit port + env déjà construits.
36
+ */
37
+ spawnServer: (opts: {
38
+ port: number;
39
+ hostname: string;
40
+ env: Record<string, string>;
41
+ entry: string;
42
+ nodeBinary: string;
43
+ }) => ChildProcess;
44
+ };
45
+ /**
46
+ * Alloue un port, construit l'env Next, spawn via callback, attend /health.
47
+ */
48
+ export declare function startNextServerCore(opts: StartServerCoreOptions): Promise<RunningServer>;
49
+ export { findFreePort, waitForHealth };
50
+ //# sourceMappingURL=server-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-env.d.ts","sourceRoot":"","sources":["../../src/host/server-env.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAEL,YAAY,EACZ,aAAa,EACb,KAAK,QAAQ,EACd,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B;;;OAGG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,YAAY,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAwDxB;AAED,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Contrats / helpers pour le lancement du serveur Next embarqué.
3
+ * Le spawn complet (node-runtime, secrets local-config) reste branché
4
+ * par l'app marque — ici le noyau brand-agnostic.
5
+ */
6
+ import { buildNextHostEnv, findFreePort, waitForHealth, } from "@creezio/platform-core";
7
+ /**
8
+ * Alloue un port, construit l'env Next, spawn via callback, attend /health.
9
+ */
10
+ export async function startNextServerCore(opts) {
11
+ const log = opts.log ?? ((l) => console.log(`[server] ${l}`));
12
+ const bindHost = opts.bindHost ?? "127.0.0.1";
13
+ const port = await findFreePort(opts.preferredPort, bindHost);
14
+ const hostname = bindHost === "0.0.0.0" ? "0.0.0.0" : "127.0.0.1";
15
+ const baseUrl = bindHost === "0.0.0.0"
16
+ ? `http://127.0.0.1:${port}`
17
+ : `http://${hostname}:${port}`;
18
+ const env = buildNextHostEnv({
19
+ manifest: opts.manifest,
20
+ port,
21
+ hostname,
22
+ dbPath: opts.paths.dbPath,
23
+ assistantDbPath: opts.paths.assistantDbPath,
24
+ uploadsDir: opts.paths.uploadsDir,
25
+ meiliHost: opts.meiliHost,
26
+ meiliMasterKey: opts.meiliMasterKey,
27
+ authSecret: opts.authSecret,
28
+ mcpJwtSecret: opts.mcpJwtSecret,
29
+ extra: opts.extraEnv,
30
+ });
31
+ log(`spawn Next sur ${baseUrl} (entry ${opts.paths.nextServerEntry})`);
32
+ const mergedEnv = {};
33
+ for (const [k, v] of Object.entries({ ...process.env, ...env })) {
34
+ if (typeof v === "string")
35
+ mergedEnv[k] = v;
36
+ }
37
+ const child = opts.spawnServer({
38
+ port,
39
+ hostname,
40
+ env: mergedEnv,
41
+ entry: opts.paths.nextServerEntry,
42
+ nodeBinary: opts.paths.nodeBinary,
43
+ });
44
+ child.on("error", (e) => {
45
+ log(`spawn error: ${e.message}`);
46
+ });
47
+ await waitForHealth(baseUrl);
48
+ log(`serveur local prêt sur ${baseUrl}`);
49
+ return {
50
+ port,
51
+ baseUrl,
52
+ child,
53
+ stop: () => {
54
+ try {
55
+ child.kill();
56
+ }
57
+ catch {
58
+ /* ignore */
59
+ }
60
+ },
61
+ };
62
+ }
63
+ export { findFreePort, waitForHealth };
64
+ //# sourceMappingURL=server-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-env.js","sourceRoot":"","sources":["../../src/host/server-env.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,GAEd,MAAM,wBAAwB,CAAC;AAyChC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAA4B;IAE5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IAClE,MAAM,OAAO,GACX,QAAQ,KAAK,SAAS;QACpB,CAAC,CAAC,oBAAoB,IAAI,EAAE;QAC5B,CAAC,CAAC,UAAU,QAAQ,IAAI,IAAI,EAAE,CAAC;IAEnC,MAAM,GAAG,GAAG,gBAAgB,CAAC;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI;QACJ,QAAQ;QACR,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;QACzB,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;QAC3C,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;QACjC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,KAAK,EAAE,IAAI,CAAC,QAAQ;KACrB,CAAC,CAAC;IAEH,GAAG,CAAC,kBAAkB,OAAO,WAAW,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;IACvE,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC;QAChE,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7B,IAAI;QACJ,QAAQ;QACR,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;QACjC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;KAClC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACtB,GAAG,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7B,GAAG,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;IAEzC,OAAO;QACL,IAAI;QACJ,OAAO;QACP,KAAK;QACL,IAAI,EAAE,GAAG,EAAE;YACT,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Spawn serveur Next standalone — wrapper marque autour de `startNextServerCore` (N2).
3
+ * Secrets / ports / paths / spawn injectés (plus de hardcode TF2_*).
4
+ */
5
+ import type { ChildProcess } from "node:child_process";
6
+ import type { AppManifest } from "@creezio/brand-config";
7
+ import { type RunningServer, type StartServerCoreOptions, type StartServerPaths } from "./server-env.js";
8
+ export type { RunningServer } from "./server-env.js";
9
+ export type { BindHost } from "@creezio/platform-core";
10
+ export { findFreePort, waitForHealth } from "./server-env.js";
11
+ export type BrandServerLauncherDeps = {
12
+ manifest: AppManifest;
13
+ paths: StartServerPaths;
14
+ preferredPort: number;
15
+ ensureAuthSecret: () => string;
16
+ ensureMcpJwtSecret: () => string;
17
+ getLocalAuth: () => {
18
+ authUser: string;
19
+ authPassword: string;
20
+ } | null;
21
+ getLlmKeys: () => Record<string, string | undefined>;
22
+ /** Env additionnels (crash endpoint, plugins dir, …). */
23
+ buildExtraEnv?: () => Record<string, string>;
24
+ /**
25
+ * Spawn effectif (node isolé / sandbox marque).
26
+ * Requis — le kit ne spawn pas lui-même sans ce hook.
27
+ */
28
+ spawnServer: StartServerCoreOptions["spawnServer"];
29
+ };
30
+ export type StartBrandServerOptions = {
31
+ meiliHost?: string | null;
32
+ meiliMasterKey?: string | null;
33
+ extraEnv?: Record<string, string>;
34
+ onLog?: (line: string) => void;
35
+ bindHost?: "127.0.0.1" | "0.0.0.0";
36
+ };
37
+ /**
38
+ * Démarre Next via le noyau kit + injection marque.
39
+ */
40
+ export declare function startBrandNextServer(deps: BrandServerLauncherDeps, opts?: StartBrandServerOptions): Promise<RunningServer>;
41
+ /** Helper typé pour les marques qui re-exportent le spawn. */
42
+ export type ServerSpawnFn = (opts: {
43
+ port: number;
44
+ hostname: string;
45
+ env: Record<string, string>;
46
+ entry: string;
47
+ nodeBinary: string;
48
+ }) => ChildProcess;
49
+ //# sourceMappingURL=server-launcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-launcher.d.ts","sourceRoot":"","sources":["../../src/host/server-launcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,MAAM,CAAC;IACjC,YAAY,EAAE,MAAM;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACtE,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACrD,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C;;;OAGG;IACH,WAAW,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,uBAAuB,EAC7B,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,aAAa,CAAC,CAgCxB;AAED,8DAA8D;AAC9D,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,KAAK,YAAY,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Spawn serveur Next standalone — wrapper marque autour de `startNextServerCore` (N2).
3
+ * Secrets / ports / paths / spawn injectés (plus de hardcode TF2_*).
4
+ */
5
+ import fs from "node:fs";
6
+ import { startNextServerCore, } from "./server-env.js";
7
+ export { findFreePort, waitForHealth } from "./server-env.js";
8
+ /**
9
+ * Démarre Next via le noyau kit + injection marque.
10
+ */
11
+ export async function startBrandNextServer(deps, opts = {}) {
12
+ const entry = deps.paths.nextServerEntry;
13
+ if (!fs.existsSync(entry)) {
14
+ throw new Error(`Serveur Next standalone introuvable : ${entry}\n` +
15
+ `Lancer d'abord : npm run build && npm run electron:server`);
16
+ }
17
+ const auth = deps.getLocalAuth();
18
+ const llm = deps.getLlmKeys();
19
+ const extra = {
20
+ AUTH_USER: auth?.authUser ?? "",
21
+ AUTH_PASSWORD: auth?.authPassword ?? "",
22
+ ...(deps.buildExtraEnv?.() || {}),
23
+ ...(opts.extraEnv || {}),
24
+ };
25
+ for (const [k, v] of Object.entries(llm)) {
26
+ if (v)
27
+ extra[k] = v;
28
+ }
29
+ return startNextServerCore({
30
+ manifest: deps.manifest,
31
+ paths: deps.paths,
32
+ bindHost: opts.bindHost,
33
+ preferredPort: deps.preferredPort,
34
+ meiliHost: opts.meiliHost,
35
+ meiliMasterKey: opts.meiliMasterKey,
36
+ authSecret: deps.ensureAuthSecret(),
37
+ mcpJwtSecret: deps.ensureMcpJwtSecret(),
38
+ extraEnv: extra,
39
+ log: opts.onLog,
40
+ spawnServer: deps.spawnServer,
41
+ });
42
+ }
43
+ //# sourceMappingURL=server-launcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-launcher.js","sourceRoot":"","sources":["../../src/host/server-launcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,OAAO,EACL,mBAAmB,GAIpB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA2B9D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAA6B,EAC7B,OAAgC,EAAE;IAElC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;IACzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,yCAAyC,KAAK,IAAI;YAChD,2DAA2D,CAC9D,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9B,MAAM,KAAK,GAA2B;QACpC,SAAS,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE;QAC/B,aAAa,EAAE,IAAI,EAAE,YAAY,IAAI,EAAE;QACvC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;KACzB,CAAC;IACF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC;YAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,mBAAmB,CAAC;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE;QACnC,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE;QACvC,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,IAAI,CAAC,KAAK;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Politique de respawn borné pour cloudflared in-process.
3
+ *
4
+ * Sans superviseur, un process QUIC mort laisse le hostname public en 525
5
+ * alors que localhost reste 200 (recette / demo / admin, 15-16/08).
6
+ * Le respawn réutilise le token / tunnel id persisté — jamais de POST
7
+ * `cfd_tunnel` ici (`ensureCfTunnel` reste le seul chemin de (re)création).
8
+ */
9
+ export declare const CLOUDFLARED_RESPAWN: {
10
+ /** Respawn consécutifs max avant abandon (jusqu'au prochain `start`). */
11
+ readonly maxAttempts: 8;
12
+ readonly initialDelayMs: 1000;
13
+ readonly maxDelayMs: 30000;
14
+ readonly factor: 2;
15
+ /** Uptime sain après lequel le compteur de pannes est remis à zéro. */
16
+ readonly healthyResetMs: 60000;
17
+ };
18
+ export type CloudflaredRespawnPolicy = {
19
+ maxAttempts: number;
20
+ initialDelayMs: number;
21
+ maxDelayMs: number;
22
+ factor: number;
23
+ healthyResetMs: number;
24
+ };
25
+ export type CloudflaredExitInfo = {
26
+ code: number | null;
27
+ signal: NodeJS.Signals | string | null;
28
+ };
29
+ export type CloudflaredRespawnDecision = {
30
+ action: "ignore";
31
+ } | {
32
+ action: "give-up";
33
+ attempt: number;
34
+ reason: string;
35
+ } | {
36
+ action: "respawn";
37
+ attempt: number;
38
+ delayMs: number;
39
+ reason: string;
40
+ };
41
+ /** Overrides ops/tests : `CREEZIO_CLOUDFLARED_RESPAWN_{MAX,DELAY_MS,MAX_DELAY_MS,HEALTHY_MS}`. */
42
+ export declare function resolveCloudflaredRespawnPolicy(env?: NodeJS.ProcessEnv, base?: CloudflaredRespawnPolicy): CloudflaredRespawnPolicy;
43
+ /** Backoff exponentiel borné — `attempt` est 1-based. */
44
+ export declare function cloudflaredRespawnDelayMs(attempt: number, policy?: CloudflaredRespawnPolicy): number;
45
+ export declare function describeCloudflaredExit(exit: CloudflaredExitInfo): string;
46
+ /**
47
+ * Décide ignore (stop volontaire) / respawn / abandon.
48
+ * Une mort après `healthyResetMs` d'uptime remet le compteur à zéro.
49
+ */
50
+ export declare function shouldRespawnCloudflared(opts: {
51
+ stopping: boolean;
52
+ consecutiveFailures: number;
53
+ startedAtMs: number | null;
54
+ exit: CloudflaredExitInfo;
55
+ nowMs?: number;
56
+ policy?: CloudflaredRespawnPolicy;
57
+ }): CloudflaredRespawnDecision;
58
+ //# sourceMappingURL=cloudflared-respawn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflared-respawn.d.ts","sourceRoot":"","sources":["../../../src/host/tunnel/cloudflared-respawn.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,mBAAmB;IAC9B,yEAAyE;;;;;IAKzE,uEAAuE;;CAE/D,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAClC;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtD;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAcN,kGAAkG;AAClG,wBAAgB,+BAA+B,CAC7C,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,wBAA8C,GACnD,wBAAwB,CA4B1B;AAED,yDAAyD;AACzD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,wBAA8C,GACrD,MAAM,CAIR;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAKzE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC,GAAG,0BAA0B,CAkB7B"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Politique de respawn borné pour cloudflared in-process.
3
+ *
4
+ * Sans superviseur, un process QUIC mort laisse le hostname public en 525
5
+ * alors que localhost reste 200 (recette / demo / admin, 15-16/08).
6
+ * Le respawn réutilise le token / tunnel id persisté — jamais de POST
7
+ * `cfd_tunnel` ici (`ensureCfTunnel` reste le seul chemin de (re)création).
8
+ */
9
+ export const CLOUDFLARED_RESPAWN = {
10
+ /** Respawn consécutifs max avant abandon (jusqu'au prochain `start`). */
11
+ maxAttempts: 8,
12
+ initialDelayMs: 1_000,
13
+ maxDelayMs: 30_000,
14
+ factor: 2,
15
+ /** Uptime sain après lequel le compteur de pannes est remis à zéro. */
16
+ healthyResetMs: 60_000,
17
+ };
18
+ function envInt(env, key, fallback, min) {
19
+ const raw = String(env[key] || "").trim();
20
+ if (!raw)
21
+ return fallback;
22
+ const n = Number(raw);
23
+ return Number.isFinite(n) && n >= min ? Math.floor(n) : fallback;
24
+ }
25
+ /** Overrides ops/tests : `CREEZIO_CLOUDFLARED_RESPAWN_{MAX,DELAY_MS,MAX_DELAY_MS,HEALTHY_MS}`. */
26
+ export function resolveCloudflaredRespawnPolicy(env = process.env, base = CLOUDFLARED_RESPAWN) {
27
+ return {
28
+ maxAttempts: envInt(env, "CREEZIO_CLOUDFLARED_RESPAWN_MAX", base.maxAttempts, 1),
29
+ initialDelayMs: envInt(env, "CREEZIO_CLOUDFLARED_RESPAWN_DELAY_MS", base.initialDelayMs, 0),
30
+ maxDelayMs: envInt(env, "CREEZIO_CLOUDFLARED_RESPAWN_MAX_DELAY_MS", base.maxDelayMs, 0),
31
+ factor: base.factor,
32
+ healthyResetMs: envInt(env, "CREEZIO_CLOUDFLARED_RESPAWN_HEALTHY_MS", base.healthyResetMs, 0),
33
+ };
34
+ }
35
+ /** Backoff exponentiel borné — `attempt` est 1-based. */
36
+ export function cloudflaredRespawnDelayMs(attempt, policy = CLOUDFLARED_RESPAWN) {
37
+ const exp = Math.max(0, attempt - 1);
38
+ const raw = policy.initialDelayMs * policy.factor ** exp;
39
+ return Math.min(policy.maxDelayMs, Math.max(0, Math.round(raw)));
40
+ }
41
+ export function describeCloudflaredExit(exit) {
42
+ if (exit.signal)
43
+ return `signal ${exit.signal}`;
44
+ if (exit.code === 0)
45
+ return "exit 0 (inattendu)";
46
+ if (exit.code == null)
47
+ return "mort inattendue";
48
+ return `exit ${exit.code}`;
49
+ }
50
+ /**
51
+ * Décide ignore (stop volontaire) / respawn / abandon.
52
+ * Une mort après `healthyResetMs` d'uptime remet le compteur à zéro.
53
+ */
54
+ export function shouldRespawnCloudflared(opts) {
55
+ if (opts.stopping)
56
+ return { action: "ignore" };
57
+ const policy = opts.policy ?? CLOUDFLARED_RESPAWN;
58
+ const now = opts.nowMs ?? Date.now();
59
+ const healthy = opts.startedAtMs != null &&
60
+ now - opts.startedAtMs >= policy.healthyResetMs;
61
+ const attempt = (healthy ? 0 : opts.consecutiveFailures) + 1;
62
+ const reason = describeCloudflaredExit(opts.exit);
63
+ if (attempt > policy.maxAttempts) {
64
+ return { action: "give-up", attempt, reason };
65
+ }
66
+ return {
67
+ action: "respawn",
68
+ attempt,
69
+ delayMs: cloudflaredRespawnDelayMs(attempt, policy),
70
+ reason,
71
+ };
72
+ }
73
+ //# sourceMappingURL=cloudflared-respawn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflared-respawn.js","sourceRoot":"","sources":["../../../src/host/tunnel/cloudflared-respawn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Cloudflare Tunnel — service brand-agnostic.
3
+ *
4
+ * Auto-provisioning par l'instance elle-même via l'API Cloudflare (client
5
+ * `@creezio/platform-core` : tunnel-cf / tunnel-cf-client) — le provisioner
6
+ * VPS et le sidecar cloudflared sont supprimés (0.10.0, D3) : cloudflared
7
+ * tourne in-process, mode unique, **supervisé** (respawn borné si exit ≠ 0
8
+ * ou mort inattendue ; même tunnel id persisté). Contrat d'env : `CREEZIO_CF_API_TOKEN` /
9
+ * `CREEZIO_CF_ACCOUNT_ID` / `CREEZIO_CF_ZONE_ID` (+ variantes marque),
10
+ * arrivant au conteneur via `cf.env` (chmod 600) généré par le CLI.
11
+ */
12
+ import { buildTunnelPublicUrls, deriveTunnelServiceUrl, type TunnelEmbedService, type TunnelPublicUrls } from "@creezio/platform-core";
13
+ import type { HostRuntimeContext } from "../context.js";
14
+ import type { LocalConfigStore, TunnelConfig } from "../local-config.js";
15
+ export type TunnelRuntimeStatus = {
16
+ configured: boolean;
17
+ slug: string | null;
18
+ hostname: string | null;
19
+ publicUrl: string | null;
20
+ publicUrls: TunnelPublicUrls | null;
21
+ online: boolean;
22
+ error: string | null;
23
+ pcMustBeOn: true;
24
+ };
25
+ export type TunnelIngressPorts = {
26
+ crmPort: number;
27
+ n8nPort?: number | null;
28
+ hermesPort?: number | null;
29
+ };
30
+ export type TunnelService = {
31
+ getTunnelStatus: () => TunnelRuntimeStatus;
32
+ checkTunnelSlug: (slug: string) => Promise<{
33
+ available: boolean;
34
+ reason?: string;
35
+ hostname?: string;
36
+ }>;
37
+ reserveTunnel: (slug: string, localPort: number) => Promise<{
38
+ ok: true;
39
+ hostname: string;
40
+ publicUrl: string;
41
+ } | {
42
+ ok: false;
43
+ error: string;
44
+ }>;
45
+ configureTunnelIngress: (ports: TunnelIngressPorts) => Promise<void>;
46
+ /**
47
+ * Surface publique locale (sans Cloudflare) — MCP = `{publicUrl}/mcp`.
48
+ * Utilisé quand l'auto-provisioning CF n'est pas configuré / en harness.
49
+ */
50
+ enableLocalPublicSurface: (opts: {
51
+ localPort: number;
52
+ slug?: string;
53
+ }) => {
54
+ ok: true;
55
+ publicUrl: string;
56
+ publicMcp: string;
57
+ };
58
+ /** CRM public URL + `/mcp` (tunnel réel ou surface locale). */
59
+ publicMcpUrl: () => string | null;
60
+ publicUrlForEmbedService: (service: TunnelEmbedService) => string | null;
61
+ startCloudflared: () => Promise<void>;
62
+ stopCloudflared: () => void;
63
+ forgetTunnel: () => void;
64
+ publicUrlForServer: () => string | null;
65
+ };
66
+ export declare function createTunnelService(opts: {
67
+ ctx: HostRuntimeContext;
68
+ store: LocalConfigStore;
69
+ }): TunnelService;
70
+ export { buildTunnelPublicUrls, deriveTunnelServiceUrl };
71
+ export type { TunnelConfig };
72
+ //# sourceMappingURL=tunnel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../../src/host/tunnel/tunnel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EAWtB,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOzE,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe,EAAE,MAAM,mBAAmB,CAAC;IAC3C,eAAe,EAAE,CACf,IAAI,EAAE,MAAM,KACT,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,aAAa,EAAE,CACb,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,KACd,OAAO,CACR;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GACjD;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAC/B,CAAC;IACF,sBAAsB,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE;;;OAGG;IACH,wBAAwB,EAAE,CAAC,IAAI,EAAE;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,KAAK;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,+DAA+D;IAC/D,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAClC,wBAAwB,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,MAAM,GAAG,IAAI,CAAC;IACzE,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,kBAAkB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CACzC,CAAC;AA0BF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,GAAG,EAAE,kBAAkB,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;CACzB,GAAG,aAAa,CA8chB;AAED,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,CAAC"}