@lobu/gateway 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/dist/api/index.d.ts +2 -0
  2. package/dist/api/index.d.ts.map +1 -0
  3. package/dist/api/index.js +6 -0
  4. package/dist/api/index.js.map +1 -0
  5. package/dist/api/platform.d.ts +92 -0
  6. package/dist/api/platform.d.ts.map +1 -0
  7. package/dist/api/platform.js +236 -0
  8. package/dist/api/platform.js.map +1 -0
  9. package/dist/api/response-renderer.d.ts +44 -0
  10. package/dist/api/response-renderer.d.ts.map +1 -0
  11. package/dist/api/response-renderer.js +123 -0
  12. package/dist/api/response-renderer.js.map +1 -0
  13. package/dist/auth/agent-metadata-store.d.ts +64 -0
  14. package/dist/auth/agent-metadata-store.d.ts.map +1 -0
  15. package/dist/auth/agent-metadata-store.js +115 -0
  16. package/dist/auth/agent-metadata-store.js.map +1 -0
  17. package/dist/auth/api-auth-middleware.d.ts +19 -0
  18. package/dist/auth/api-auth-middleware.d.ts.map +1 -0
  19. package/dist/auth/api-auth-middleware.js +61 -0
  20. package/dist/auth/api-auth-middleware.js.map +1 -0
  21. package/dist/auth/api-key-provider-module.d.ts +60 -0
  22. package/dist/auth/api-key-provider-module.d.ts.map +1 -0
  23. package/dist/auth/api-key-provider-module.js +148 -0
  24. package/dist/auth/api-key-provider-module.js.map +1 -0
  25. package/dist/auth/base-provider-module.d.ts +70 -0
  26. package/dist/auth/base-provider-module.d.ts.map +1 -0
  27. package/dist/auth/base-provider-module.js +118 -0
  28. package/dist/auth/base-provider-module.js.map +1 -0
  29. package/dist/auth/chatgpt/chatgpt-oauth-module.d.ts +34 -0
  30. package/dist/auth/chatgpt/chatgpt-oauth-module.d.ts.map +1 -0
  31. package/dist/auth/chatgpt/chatgpt-oauth-module.js +136 -0
  32. package/dist/auth/chatgpt/chatgpt-oauth-module.js.map +1 -0
  33. package/dist/auth/chatgpt/device-code-client.d.ts +40 -0
  34. package/dist/auth/chatgpt/device-code-client.d.ts.map +1 -0
  35. package/dist/auth/chatgpt/device-code-client.js +165 -0
  36. package/dist/auth/chatgpt/device-code-client.js.map +1 -0
  37. package/dist/auth/chatgpt/index.d.ts +2 -0
  38. package/dist/auth/chatgpt/index.d.ts.map +1 -0
  39. package/dist/auth/chatgpt/index.js +6 -0
  40. package/dist/auth/chatgpt/index.js.map +1 -0
  41. package/dist/auth/claude/oauth-module.d.ts +29 -0
  42. package/dist/auth/claude/oauth-module.d.ts.map +1 -0
  43. package/dist/auth/claude/oauth-module.js +201 -0
  44. package/dist/auth/claude/oauth-module.js.map +1 -0
  45. package/dist/auth/cli/token-service.d.ts +35 -0
  46. package/dist/auth/cli/token-service.d.ts.map +1 -0
  47. package/dist/auth/cli/token-service.js +171 -0
  48. package/dist/auth/cli/token-service.js.map +1 -0
  49. package/dist/auth/external/client.d.ts +65 -0
  50. package/dist/auth/external/client.d.ts.map +1 -0
  51. package/dist/auth/external/client.js +348 -0
  52. package/dist/auth/external/client.js.map +1 -0
  53. package/dist/auth/external/device-code-client.d.ts +41 -0
  54. package/dist/auth/external/device-code-client.d.ts.map +1 -0
  55. package/dist/auth/external/device-code-client.js +128 -0
  56. package/dist/auth/external/device-code-client.js.map +1 -0
  57. package/dist/auth/mcp/config-service.d.ts +70 -0
  58. package/dist/auth/mcp/config-service.d.ts.map +1 -0
  59. package/dist/auth/mcp/config-service.js +269 -0
  60. package/dist/auth/mcp/config-service.js.map +1 -0
  61. package/dist/auth/mcp/proxy.d.ts +68 -0
  62. package/dist/auth/mcp/proxy.d.ts.map +1 -0
  63. package/dist/auth/mcp/proxy.js +783 -0
  64. package/dist/auth/mcp/proxy.js.map +1 -0
  65. package/dist/auth/mcp/string-substitution.d.ts +11 -0
  66. package/dist/auth/mcp/string-substitution.d.ts.map +1 -0
  67. package/dist/auth/mcp/string-substitution.js +21 -0
  68. package/dist/auth/mcp/string-substitution.js.map +1 -0
  69. package/dist/auth/mcp/tool-cache.d.ts +26 -0
  70. package/dist/auth/mcp/tool-cache.d.ts.map +1 -0
  71. package/dist/auth/mcp/tool-cache.js +58 -0
  72. package/dist/auth/mcp/tool-cache.js.map +1 -0
  73. package/dist/auth/oauth/base-client.d.ts +54 -0
  74. package/dist/auth/oauth/base-client.d.ts.map +1 -0
  75. package/dist/auth/oauth/base-client.js +191 -0
  76. package/dist/auth/oauth/base-client.js.map +1 -0
  77. package/dist/auth/oauth/client.d.ts +35 -0
  78. package/dist/auth/oauth/client.d.ts.map +1 -0
  79. package/dist/auth/oauth/client.js +96 -0
  80. package/dist/auth/oauth/client.js.map +1 -0
  81. package/dist/auth/oauth/credentials.d.ts +8 -0
  82. package/dist/auth/oauth/credentials.d.ts.map +1 -0
  83. package/dist/auth/oauth/credentials.js +3 -0
  84. package/dist/auth/oauth/credentials.js.map +1 -0
  85. package/dist/auth/oauth/providers.d.ts +44 -0
  86. package/dist/auth/oauth/providers.d.ts.map +1 -0
  87. package/dist/auth/oauth/providers.js +37 -0
  88. package/dist/auth/oauth/providers.js.map +1 -0
  89. package/dist/auth/oauth/state-store.d.ts +62 -0
  90. package/dist/auth/oauth/state-store.d.ts.map +1 -0
  91. package/dist/auth/oauth/state-store.js +84 -0
  92. package/dist/auth/oauth/state-store.js.map +1 -0
  93. package/dist/auth/oauth-templates.d.ts +15 -0
  94. package/dist/auth/oauth-templates.d.ts.map +1 -0
  95. package/dist/auth/oauth-templates.js +161 -0
  96. package/dist/auth/oauth-templates.js.map +1 -0
  97. package/dist/auth/provider-catalog.d.ts +52 -0
  98. package/dist/auth/provider-catalog.d.ts.map +1 -0
  99. package/dist/auth/provider-catalog.js +155 -0
  100. package/dist/auth/provider-catalog.js.map +1 -0
  101. package/dist/auth/provider-model-options.d.ts +3 -0
  102. package/dist/auth/provider-model-options.d.ts.map +1 -0
  103. package/dist/auth/provider-model-options.js +29 -0
  104. package/dist/auth/provider-model-options.js.map +1 -0
  105. package/dist/auth/settings/agent-settings-store.d.ts +112 -0
  106. package/dist/auth/settings/agent-settings-store.d.ts.map +1 -0
  107. package/dist/auth/settings/agent-settings-store.js +376 -0
  108. package/dist/auth/settings/agent-settings-store.js.map +1 -0
  109. package/dist/auth/settings/auth-profiles-manager.d.ts +26 -0
  110. package/dist/auth/settings/auth-profiles-manager.d.ts.map +1 -0
  111. package/dist/auth/settings/auth-profiles-manager.js +146 -0
  112. package/dist/auth/settings/auth-profiles-manager.js.map +1 -0
  113. package/dist/auth/settings/index.d.ts +4 -0
  114. package/dist/auth/settings/index.d.ts.map +1 -0
  115. package/dist/auth/settings/index.js +9 -0
  116. package/dist/auth/settings/index.js.map +1 -0
  117. package/dist/auth/settings/model-preference-store.d.ts +25 -0
  118. package/dist/auth/settings/model-preference-store.d.ts.map +1 -0
  119. package/dist/auth/settings/model-preference-store.js +50 -0
  120. package/dist/auth/settings/model-preference-store.js.map +1 -0
  121. package/dist/auth/settings/model-selection.d.ts +11 -0
  122. package/dist/auth/settings/model-selection.d.ts.map +1 -0
  123. package/dist/auth/settings/model-selection.js +83 -0
  124. package/dist/auth/settings/model-selection.js.map +1 -0
  125. package/dist/auth/settings/resolved-settings-view.d.ts +45 -0
  126. package/dist/auth/settings/resolved-settings-view.d.ts.map +1 -0
  127. package/dist/auth/settings/resolved-settings-view.js +152 -0
  128. package/dist/auth/settings/resolved-settings-view.js.map +1 -0
  129. package/dist/auth/settings/template-utils.d.ts +3 -0
  130. package/dist/auth/settings/template-utils.d.ts.map +1 -0
  131. package/dist/auth/settings/template-utils.js +43 -0
  132. package/dist/auth/settings/template-utils.js.map +1 -0
  133. package/dist/auth/settings/token-service.d.ts +86 -0
  134. package/dist/auth/settings/token-service.d.ts.map +1 -0
  135. package/dist/auth/settings/token-service.js +3 -0
  136. package/dist/auth/settings/token-service.js.map +1 -0
  137. package/dist/auth/system-env-store.d.ts +26 -0
  138. package/dist/auth/system-env-store.d.ts.map +1 -0
  139. package/dist/auth/system-env-store.js +92 -0
  140. package/dist/auth/system-env-store.js.map +1 -0
  141. package/dist/auth/user-agents-store.d.ts +31 -0
  142. package/dist/auth/user-agents-store.d.ts.map +1 -0
  143. package/dist/auth/user-agents-store.js +54 -0
  144. package/dist/auth/user-agents-store.js.map +1 -0
  145. package/dist/channels/binding-service.d.ts +69 -0
  146. package/dist/channels/binding-service.d.ts.map +1 -0
  147. package/dist/channels/binding-service.js +144 -0
  148. package/dist/channels/binding-service.js.map +1 -0
  149. package/dist/channels/index.d.ts +2 -0
  150. package/dist/channels/index.d.ts.map +1 -0
  151. package/dist/channels/index.js +6 -0
  152. package/dist/channels/index.js.map +1 -0
  153. package/dist/cli/gateway.d.ts +31 -0
  154. package/dist/cli/gateway.d.ts.map +1 -0
  155. package/dist/cli/gateway.js +1062 -0
  156. package/dist/cli/gateway.js.map +1 -0
  157. package/dist/cli/index.d.ts +3 -0
  158. package/dist/cli/index.d.ts.map +1 -0
  159. package/dist/cli/index.js +56 -0
  160. package/dist/cli/index.js.map +1 -0
  161. package/dist/commands/built-in-commands.d.ts +10 -0
  162. package/dist/commands/built-in-commands.d.ts.map +1 -0
  163. package/dist/commands/built-in-commands.js +63 -0
  164. package/dist/commands/built-in-commands.js.map +1 -0
  165. package/dist/commands/command-dispatcher.d.ts +25 -0
  166. package/dist/commands/command-dispatcher.d.ts.map +1 -0
  167. package/dist/commands/command-dispatcher.js +50 -0
  168. package/dist/commands/command-dispatcher.js.map +1 -0
  169. package/dist/commands/command-reply-adapters.d.ts +3 -0
  170. package/dist/commands/command-reply-adapters.d.ts.map +1 -0
  171. package/dist/commands/command-reply-adapters.js +60 -0
  172. package/dist/commands/command-reply-adapters.js.map +1 -0
  173. package/dist/config/file-loader.d.ts +23 -0
  174. package/dist/config/file-loader.d.ts.map +1 -0
  175. package/dist/config/file-loader.js +495 -0
  176. package/dist/config/file-loader.js.map +1 -0
  177. package/dist/config/index.d.ts +96 -0
  178. package/dist/config/index.d.ts.map +1 -0
  179. package/dist/config/index.js +357 -0
  180. package/dist/config/index.js.map +1 -0
  181. package/dist/config/network-allowlist.d.ts +18 -0
  182. package/dist/config/network-allowlist.d.ts.map +1 -0
  183. package/dist/config/network-allowlist.js +60 -0
  184. package/dist/config/network-allowlist.js.map +1 -0
  185. package/dist/connections/chat-instance-manager.d.ts +107 -0
  186. package/dist/connections/chat-instance-manager.d.ts.map +1 -0
  187. package/dist/connections/chat-instance-manager.js +886 -0
  188. package/dist/connections/chat-instance-manager.js.map +1 -0
  189. package/dist/connections/chat-response-bridge.d.ts +31 -0
  190. package/dist/connections/chat-response-bridge.d.ts.map +1 -0
  191. package/dist/connections/chat-response-bridge.js +465 -0
  192. package/dist/connections/chat-response-bridge.js.map +1 -0
  193. package/dist/connections/index.d.ts +4 -0
  194. package/dist/connections/index.d.ts.map +1 -0
  195. package/dist/connections/index.js +8 -0
  196. package/dist/connections/index.js.map +1 -0
  197. package/dist/connections/interaction-bridge.d.ts +7 -0
  198. package/dist/connections/interaction-bridge.d.ts.map +1 -0
  199. package/dist/connections/interaction-bridge.js +593 -0
  200. package/dist/connections/interaction-bridge.js.map +1 -0
  201. package/dist/connections/message-handler-bridge.d.ts +21 -0
  202. package/dist/connections/message-handler-bridge.d.ts.map +1 -0
  203. package/dist/connections/message-handler-bridge.js +314 -0
  204. package/dist/connections/message-handler-bridge.js.map +1 -0
  205. package/dist/connections/platform-auth-methods.d.ts +5 -0
  206. package/dist/connections/platform-auth-methods.d.ts.map +1 -0
  207. package/dist/connections/platform-auth-methods.js +13 -0
  208. package/dist/connections/platform-auth-methods.js.map +1 -0
  209. package/dist/connections/types.d.ts +52 -0
  210. package/dist/connections/types.d.ts.map +1 -0
  211. package/dist/connections/types.js +20 -0
  212. package/dist/connections/types.js.map +1 -0
  213. package/dist/gateway/connection-manager.d.ts +87 -0
  214. package/dist/gateway/connection-manager.d.ts.map +1 -0
  215. package/dist/gateway/connection-manager.js +216 -0
  216. package/dist/gateway/connection-manager.js.map +1 -0
  217. package/dist/gateway/index.d.ts +71 -0
  218. package/dist/gateway/index.d.ts.map +1 -0
  219. package/dist/gateway/index.js +509 -0
  220. package/dist/gateway/index.js.map +1 -0
  221. package/dist/gateway/job-router.d.ts +60 -0
  222. package/dist/gateway/job-router.d.ts.map +1 -0
  223. package/dist/gateway/job-router.js +148 -0
  224. package/dist/gateway/job-router.js.map +1 -0
  225. package/dist/gateway-main.d.ts +81 -0
  226. package/dist/gateway-main.d.ts.map +1 -0
  227. package/dist/gateway-main.js +143 -0
  228. package/dist/gateway-main.js.map +1 -0
  229. package/dist/index.d.ts +16 -0
  230. package/dist/index.d.ts.map +1 -0
  231. package/dist/index.js +64 -0
  232. package/dist/index.js.map +1 -0
  233. package/dist/infrastructure/queue/index.d.ts +8 -0
  234. package/dist/infrastructure/queue/index.d.ts.map +1 -0
  235. package/dist/infrastructure/queue/index.js +12 -0
  236. package/dist/infrastructure/queue/index.js.map +1 -0
  237. package/dist/infrastructure/queue/queue-producer.d.ts +68 -0
  238. package/dist/infrastructure/queue/queue-producer.d.ts.map +1 -0
  239. package/dist/infrastructure/queue/queue-producer.js +72 -0
  240. package/dist/infrastructure/queue/queue-producer.js.map +1 -0
  241. package/dist/infrastructure/queue/redis-queue.d.ts +45 -0
  242. package/dist/infrastructure/queue/redis-queue.d.ts.map +1 -0
  243. package/dist/infrastructure/queue/redis-queue.js +273 -0
  244. package/dist/infrastructure/queue/redis-queue.js.map +1 -0
  245. package/dist/infrastructure/queue/types.d.ts +107 -0
  246. package/dist/infrastructure/queue/types.d.ts.map +1 -0
  247. package/dist/infrastructure/queue/types.js +7 -0
  248. package/dist/infrastructure/queue/types.js.map +1 -0
  249. package/dist/infrastructure/redis/system-message-limiter.d.ts +35 -0
  250. package/dist/infrastructure/redis/system-message-limiter.d.ts.map +1 -0
  251. package/dist/infrastructure/redis/system-message-limiter.js +61 -0
  252. package/dist/infrastructure/redis/system-message-limiter.js.map +1 -0
  253. package/dist/interactions/config-request-store.d.ts +41 -0
  254. package/dist/interactions/config-request-store.d.ts.map +1 -0
  255. package/dist/interactions/config-request-store.js +103 -0
  256. package/dist/interactions/config-request-store.js.map +1 -0
  257. package/dist/interactions.d.ts +134 -0
  258. package/dist/interactions.d.ts.map +1 -0
  259. package/dist/interactions.js +175 -0
  260. package/dist/interactions.js.map +1 -0
  261. package/dist/lobu.d.ts +78 -0
  262. package/dist/lobu.d.ts.map +1 -0
  263. package/dist/lobu.js +248 -0
  264. package/dist/lobu.js.map +1 -0
  265. package/dist/metrics/prometheus.d.ts +6 -0
  266. package/dist/metrics/prometheus.d.ts.map +1 -0
  267. package/dist/metrics/prometheus.js +78 -0
  268. package/dist/metrics/prometheus.js.map +1 -0
  269. package/dist/modules/module-system.d.ts +82 -0
  270. package/dist/modules/module-system.d.ts.map +1 -0
  271. package/dist/modules/module-system.js +53 -0
  272. package/dist/modules/module-system.js.map +1 -0
  273. package/dist/orchestration/base-deployment-manager.d.ts +173 -0
  274. package/dist/orchestration/base-deployment-manager.d.ts.map +1 -0
  275. package/dist/orchestration/base-deployment-manager.js +553 -0
  276. package/dist/orchestration/base-deployment-manager.js.map +1 -0
  277. package/dist/orchestration/deployment-utils.d.ts +25 -0
  278. package/dist/orchestration/deployment-utils.d.ts.map +1 -0
  279. package/dist/orchestration/deployment-utils.js +65 -0
  280. package/dist/orchestration/deployment-utils.js.map +1 -0
  281. package/dist/orchestration/impl/docker-deployment.d.ts +43 -0
  282. package/dist/orchestration/impl/docker-deployment.d.ts.map +1 -0
  283. package/dist/orchestration/impl/docker-deployment.js +480 -0
  284. package/dist/orchestration/impl/docker-deployment.js.map +1 -0
  285. package/dist/orchestration/impl/embedded-deployment.d.ts +16 -0
  286. package/dist/orchestration/impl/embedded-deployment.d.ts.map +1 -0
  287. package/dist/orchestration/impl/embedded-deployment.js +195 -0
  288. package/dist/orchestration/impl/embedded-deployment.js.map +1 -0
  289. package/dist/orchestration/impl/index.d.ts +8 -0
  290. package/dist/orchestration/impl/index.d.ts.map +1 -0
  291. package/dist/orchestration/impl/index.js +14 -0
  292. package/dist/orchestration/impl/index.js.map +1 -0
  293. package/dist/orchestration/impl/k8s/deployment.d.ts +204 -0
  294. package/dist/orchestration/impl/k8s/deployment.d.ts.map +1 -0
  295. package/dist/orchestration/impl/k8s/deployment.js +620 -0
  296. package/dist/orchestration/impl/k8s/deployment.js.map +1 -0
  297. package/dist/orchestration/impl/k8s/helpers.d.ts +34 -0
  298. package/dist/orchestration/impl/k8s/helpers.d.ts.map +1 -0
  299. package/dist/orchestration/impl/k8s/helpers.js +377 -0
  300. package/dist/orchestration/impl/k8s/helpers.js.map +1 -0
  301. package/dist/orchestration/impl/k8s/index.d.ts +2 -0
  302. package/dist/orchestration/impl/k8s/index.d.ts.map +1 -0
  303. package/dist/orchestration/impl/k8s/index.js +6 -0
  304. package/dist/orchestration/impl/k8s/index.js.map +1 -0
  305. package/dist/orchestration/index.d.ts +53 -0
  306. package/dist/orchestration/index.d.ts.map +1 -0
  307. package/dist/orchestration/index.js +257 -0
  308. package/dist/orchestration/index.js.map +1 -0
  309. package/dist/orchestration/message-consumer.d.ts +49 -0
  310. package/dist/orchestration/message-consumer.d.ts.map +1 -0
  311. package/dist/orchestration/message-consumer.js +406 -0
  312. package/dist/orchestration/message-consumer.js.map +1 -0
  313. package/dist/orchestration/scheduled-wakeup.d.ts +110 -0
  314. package/dist/orchestration/scheduled-wakeup.d.ts.map +1 -0
  315. package/dist/orchestration/scheduled-wakeup.js +500 -0
  316. package/dist/orchestration/scheduled-wakeup.js.map +1 -0
  317. package/dist/permissions/approval-policy.d.ts +28 -0
  318. package/dist/permissions/approval-policy.d.ts.map +1 -0
  319. package/dist/permissions/approval-policy.js +33 -0
  320. package/dist/permissions/approval-policy.js.map +1 -0
  321. package/dist/permissions/grant-store.d.ts +52 -0
  322. package/dist/permissions/grant-store.d.ts.map +1 -0
  323. package/dist/permissions/grant-store.js +192 -0
  324. package/dist/permissions/grant-store.js.map +1 -0
  325. package/dist/platform/file-handler.d.ts +51 -0
  326. package/dist/platform/file-handler.d.ts.map +1 -0
  327. package/dist/platform/file-handler.js +6 -0
  328. package/dist/platform/file-handler.js.map +1 -0
  329. package/dist/platform/link-buttons.d.ts +21 -0
  330. package/dist/platform/link-buttons.d.ts.map +1 -0
  331. package/dist/platform/link-buttons.js +43 -0
  332. package/dist/platform/link-buttons.js.map +1 -0
  333. package/dist/platform/renderer-utils.d.ts +10 -0
  334. package/dist/platform/renderer-utils.d.ts.map +1 -0
  335. package/dist/platform/renderer-utils.js +42 -0
  336. package/dist/platform/renderer-utils.js.map +1 -0
  337. package/dist/platform/response-renderer.d.ts +66 -0
  338. package/dist/platform/response-renderer.d.ts.map +1 -0
  339. package/dist/platform/response-renderer.js +8 -0
  340. package/dist/platform/response-renderer.js.map +1 -0
  341. package/dist/platform/unified-thread-consumer.d.ts +41 -0
  342. package/dist/platform/unified-thread-consumer.d.ts.map +1 -0
  343. package/dist/platform/unified-thread-consumer.js +143 -0
  344. package/dist/platform/unified-thread-consumer.js.map +1 -0
  345. package/dist/platform.d.ts +255 -0
  346. package/dist/platform.d.ts.map +1 -0
  347. package/dist/platform.js +40 -0
  348. package/dist/platform.js.map +1 -0
  349. package/dist/proxy/http-proxy.d.ts +32 -0
  350. package/dist/proxy/http-proxy.d.ts.map +1 -0
  351. package/dist/proxy/http-proxy.js +636 -0
  352. package/dist/proxy/http-proxy.js.map +1 -0
  353. package/dist/proxy/proxy-manager.d.ts +13 -0
  354. package/dist/proxy/proxy-manager.d.ts.map +1 -0
  355. package/dist/proxy/proxy-manager.js +68 -0
  356. package/dist/proxy/proxy-manager.js.map +1 -0
  357. package/dist/proxy/secret-proxy.d.ts +78 -0
  358. package/dist/proxy/secret-proxy.d.ts.map +1 -0
  359. package/dist/proxy/secret-proxy.js +309 -0
  360. package/dist/proxy/secret-proxy.js.map +1 -0
  361. package/dist/proxy/token-refresh-job.d.ts +29 -0
  362. package/dist/proxy/token-refresh-job.d.ts.map +1 -0
  363. package/dist/proxy/token-refresh-job.js +104 -0
  364. package/dist/proxy/token-refresh-job.js.map +1 -0
  365. package/dist/routes/internal/audio.d.ts +14 -0
  366. package/dist/routes/internal/audio.d.ts.map +1 -0
  367. package/dist/routes/internal/audio.js +118 -0
  368. package/dist/routes/internal/audio.js.map +1 -0
  369. package/dist/routes/internal/device-auth.d.ts +42 -0
  370. package/dist/routes/internal/device-auth.d.ts.map +1 -0
  371. package/dist/routes/internal/device-auth.js +397 -0
  372. package/dist/routes/internal/device-auth.js.map +1 -0
  373. package/dist/routes/internal/files.d.ts +9 -0
  374. package/dist/routes/internal/files.d.ts.map +1 -0
  375. package/dist/routes/internal/files.js +175 -0
  376. package/dist/routes/internal/files.js.map +1 -0
  377. package/dist/routes/internal/history.d.ts +9 -0
  378. package/dist/routes/internal/history.d.ts.map +1 -0
  379. package/dist/routes/internal/history.js +55 -0
  380. package/dist/routes/internal/history.js.map +1 -0
  381. package/dist/routes/internal/images.d.ts +10 -0
  382. package/dist/routes/internal/images.d.ts.map +1 -0
  383. package/dist/routes/internal/images.js +101 -0
  384. package/dist/routes/internal/images.js.map +1 -0
  385. package/dist/routes/internal/interactions.d.ts +9 -0
  386. package/dist/routes/internal/interactions.d.ts.map +1 -0
  387. package/dist/routes/internal/interactions.js +53 -0
  388. package/dist/routes/internal/interactions.js.map +1 -0
  389. package/dist/routes/internal/middleware.d.ts +7 -0
  390. package/dist/routes/internal/middleware.d.ts.map +1 -0
  391. package/dist/routes/internal/middleware.js +24 -0
  392. package/dist/routes/internal/middleware.js.map +1 -0
  393. package/dist/routes/internal/schedule.d.ts +14 -0
  394. package/dist/routes/internal/schedule.d.ts.map +1 -0
  395. package/dist/routes/internal/schedule.js +169 -0
  396. package/dist/routes/internal/schedule.js.map +1 -0
  397. package/dist/routes/internal/types.d.ts +22 -0
  398. package/dist/routes/internal/types.d.ts.map +1 -0
  399. package/dist/routes/internal/types.js +6 -0
  400. package/dist/routes/internal/types.js.map +1 -0
  401. package/dist/routes/openapi-auto.d.ts +8 -0
  402. package/dist/routes/openapi-auto.d.ts.map +1 -0
  403. package/dist/routes/openapi-auto.js +196 -0
  404. package/dist/routes/openapi-auto.js.map +1 -0
  405. package/dist/routes/public/agent-access.d.ts +11 -0
  406. package/dist/routes/public/agent-access.d.ts.map +1 -0
  407. package/dist/routes/public/agent-access.js +11 -0
  408. package/dist/routes/public/agent-access.js.map +1 -0
  409. package/dist/routes/public/agent-config.d.ts +42 -0
  410. package/dist/routes/public/agent-config.d.ts.map +1 -0
  411. package/dist/routes/public/agent-config.js +415 -0
  412. package/dist/routes/public/agent-config.js.map +1 -0
  413. package/dist/routes/public/agent-history.d.ts +17 -0
  414. package/dist/routes/public/agent-history.d.ts.map +1 -0
  415. package/dist/routes/public/agent-history.js +335 -0
  416. package/dist/routes/public/agent-history.js.map +1 -0
  417. package/dist/routes/public/agent-schedules.d.ts +18 -0
  418. package/dist/routes/public/agent-schedules.d.ts.map +1 -0
  419. package/dist/routes/public/agent-schedules.js +242 -0
  420. package/dist/routes/public/agent-schedules.js.map +1 -0
  421. package/dist/routes/public/agent.d.ts +23 -0
  422. package/dist/routes/public/agent.d.ts.map +1 -0
  423. package/dist/routes/public/agent.js +864 -0
  424. package/dist/routes/public/agent.js.map +1 -0
  425. package/dist/routes/public/agents.d.ts +22 -0
  426. package/dist/routes/public/agents.d.ts.map +1 -0
  427. package/dist/routes/public/agents.js +257 -0
  428. package/dist/routes/public/agents.js.map +1 -0
  429. package/dist/routes/public/channels.d.ts +23 -0
  430. package/dist/routes/public/channels.d.ts.map +1 -0
  431. package/dist/routes/public/channels.js +131 -0
  432. package/dist/routes/public/channels.js.map +1 -0
  433. package/dist/routes/public/cli-auth.d.ts +12 -0
  434. package/dist/routes/public/cli-auth.d.ts.map +1 -0
  435. package/dist/routes/public/cli-auth.js +552 -0
  436. package/dist/routes/public/cli-auth.js.map +1 -0
  437. package/dist/routes/public/connections.d.ts +20 -0
  438. package/dist/routes/public/connections.d.ts.map +1 -0
  439. package/dist/routes/public/connections.js +464 -0
  440. package/dist/routes/public/connections.js.map +1 -0
  441. package/dist/routes/public/landing.d.ts +3 -0
  442. package/dist/routes/public/landing.d.ts.map +1 -0
  443. package/dist/routes/public/landing.js +17 -0
  444. package/dist/routes/public/landing.js.map +1 -0
  445. package/dist/routes/public/oauth.d.ts +24 -0
  446. package/dist/routes/public/oauth.d.ts.map +1 -0
  447. package/dist/routes/public/oauth.js +108 -0
  448. package/dist/routes/public/oauth.js.map +1 -0
  449. package/dist/routes/public/settings-auth.d.ts +28 -0
  450. package/dist/routes/public/settings-auth.d.ts.map +1 -0
  451. package/dist/routes/public/settings-auth.js +90 -0
  452. package/dist/routes/public/settings-auth.js.map +1 -0
  453. package/dist/routes/public/slack.d.ts +4 -0
  454. package/dist/routes/public/slack.d.ts.map +1 -0
  455. package/dist/routes/public/slack.js +119 -0
  456. package/dist/routes/public/slack.js.map +1 -0
  457. package/dist/routes/shared/agent-ownership.d.ts +15 -0
  458. package/dist/routes/shared/agent-ownership.d.ts.map +1 -0
  459. package/dist/routes/shared/agent-ownership.js +61 -0
  460. package/dist/routes/shared/agent-ownership.js.map +1 -0
  461. package/dist/routes/shared/token-verifier.d.ts +21 -0
  462. package/dist/routes/shared/token-verifier.d.ts.map +1 -0
  463. package/dist/routes/shared/token-verifier.js +25 -0
  464. package/dist/routes/shared/token-verifier.js.map +1 -0
  465. package/dist/services/core-services.d.ts +133 -0
  466. package/dist/services/core-services.d.ts.map +1 -0
  467. package/dist/services/core-services.js +728 -0
  468. package/dist/services/core-services.js.map +1 -0
  469. package/dist/services/image-generation-service.d.ts +38 -0
  470. package/dist/services/image-generation-service.d.ts.map +1 -0
  471. package/dist/services/image-generation-service.js +167 -0
  472. package/dist/services/image-generation-service.js.map +1 -0
  473. package/dist/services/instruction-service.d.ts +41 -0
  474. package/dist/services/instruction-service.d.ts.map +1 -0
  475. package/dist/services/instruction-service.js +252 -0
  476. package/dist/services/instruction-service.js.map +1 -0
  477. package/dist/services/mcp-registry.d.ts +31 -0
  478. package/dist/services/mcp-registry.d.ts.map +1 -0
  479. package/dist/services/mcp-registry.js +69 -0
  480. package/dist/services/mcp-registry.js.map +1 -0
  481. package/dist/services/platform-helpers.d.ts +47 -0
  482. package/dist/services/platform-helpers.d.ts.map +1 -0
  483. package/dist/services/platform-helpers.js +200 -0
  484. package/dist/services/platform-helpers.js.map +1 -0
  485. package/dist/services/session-manager.d.ts +72 -0
  486. package/dist/services/session-manager.d.ts.map +1 -0
  487. package/dist/services/session-manager.js +199 -0
  488. package/dist/services/session-manager.js.map +1 -0
  489. package/dist/services/settings-resolver.d.ts +25 -0
  490. package/dist/services/settings-resolver.d.ts.map +1 -0
  491. package/dist/services/settings-resolver.js +55 -0
  492. package/dist/services/settings-resolver.js.map +1 -0
  493. package/dist/services/system-config-resolver.d.ts +25 -0
  494. package/dist/services/system-config-resolver.d.ts.map +1 -0
  495. package/dist/services/system-config-resolver.js +73 -0
  496. package/dist/services/system-config-resolver.js.map +1 -0
  497. package/dist/services/system-skills-service.d.ts +38 -0
  498. package/dist/services/system-skills-service.d.ts.map +1 -0
  499. package/dist/services/system-skills-service.js +186 -0
  500. package/dist/services/system-skills-service.js.map +1 -0
  501. package/dist/services/transcription-service.d.ts +91 -0
  502. package/dist/services/transcription-service.d.ts.map +1 -0
  503. package/dist/services/transcription-service.js +465 -0
  504. package/dist/services/transcription-service.js.map +1 -0
  505. package/dist/session.d.ts +75 -0
  506. package/dist/session.d.ts.map +1 -0
  507. package/dist/session.js +19 -0
  508. package/dist/session.js.map +1 -0
  509. package/dist/spaces/index.d.ts +2 -0
  510. package/dist/spaces/index.d.ts.map +1 -0
  511. package/dist/spaces/index.js +18 -0
  512. package/dist/spaces/index.js.map +1 -0
  513. package/dist/spaces/space-resolver.d.ts +10 -0
  514. package/dist/spaces/space-resolver.d.ts.map +1 -0
  515. package/dist/spaces/space-resolver.js +17 -0
  516. package/dist/spaces/space-resolver.js.map +1 -0
  517. package/dist/stores/in-memory-agent-store.d.ts +57 -0
  518. package/dist/stores/in-memory-agent-store.d.ts.map +1 -0
  519. package/dist/stores/in-memory-agent-store.js +304 -0
  520. package/dist/stores/in-memory-agent-store.js.map +1 -0
  521. package/dist/stores/redis-agent-store.d.ts +57 -0
  522. package/dist/stores/redis-agent-store.d.ts.map +1 -0
  523. package/dist/stores/redis-agent-store.js +163 -0
  524. package/dist/stores/redis-agent-store.js.map +1 -0
  525. package/dist/utils/public-url.d.ts +6 -0
  526. package/dist/utils/public-url.d.ts.map +1 -0
  527. package/dist/utils/public-url.js +33 -0
  528. package/dist/utils/public-url.js.map +1 -0
  529. package/dist/utils/rate-limiter.d.ts +32 -0
  530. package/dist/utils/rate-limiter.d.ts.map +1 -0
  531. package/dist/utils/rate-limiter.js +56 -0
  532. package/dist/utils/rate-limiter.js.map +1 -0
  533. package/package.json +63 -0
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BASE_WORKER_LABELS = void 0;
4
+ exports.buildModuleEnvVars = buildModuleEnvVars;
5
+ exports.resolvePlatformDeploymentMetadata = resolvePlatformDeploymentMetadata;
6
+ exports.getVeryOldThresholdDays = getVeryOldThresholdDays;
7
+ exports.buildDeploymentInfoSummary = buildDeploymentInfoSummary;
8
+ const module_system_1 = require("../modules/module-system");
9
+ const platform_1 = require("../platform");
10
+ /**
11
+ * Shared types and utilities for deployment managers
12
+ * Reduces code duplication between Docker and K8s implementations
13
+ */
14
+ // ============================================================================
15
+ // Utility Functions
16
+ // ============================================================================
17
+ /**
18
+ * Build environment variables by integrating all registered modules
19
+ */
20
+ async function buildModuleEnvVars(agentId, baseEnv) {
21
+ let envVars = Object.assign({}, baseEnv);
22
+ const orchestratorModules = (0, module_system_1.getOrchestratorModules)();
23
+ for (const module of orchestratorModules) {
24
+ if (module.buildEnvVars) {
25
+ envVars = await module.buildEnvVars(agentId, envVars);
26
+ }
27
+ }
28
+ return envVars;
29
+ }
30
+ exports.BASE_WORKER_LABELS = {
31
+ "app.kubernetes.io/name": "lobu",
32
+ "app.kubernetes.io/component": "worker",
33
+ "lobu/managed-by": "orchestrator",
34
+ };
35
+ function resolvePlatformDeploymentMetadata(messageData) {
36
+ if (!(messageData === null || messageData === void 0 ? void 0 : messageData.platform) ||
37
+ !messageData.channelId ||
38
+ !messageData.conversationId ||
39
+ !messageData.platformMetadata) {
40
+ return {};
41
+ }
42
+ const platform = platform_1.platformRegistry.get(messageData.platform);
43
+ if (!platform) {
44
+ return {};
45
+ }
46
+ return platform.buildDeploymentMetadata(messageData.conversationId, messageData.channelId, messageData.platformMetadata);
47
+ }
48
+ function getVeryOldThresholdDays(config) {
49
+ var _a, _b;
50
+ return (_b = (_a = config.cleanup) === null || _a === void 0 ? void 0 : _a.veryOldDays) !== null && _b !== void 0 ? _b : 7;
51
+ }
52
+ function buildDeploymentInfoSummary({ deploymentName, lastActivity, now, idleThresholdMinutes, veryOldDays, replicas, }) {
53
+ const minutesIdle = (now - lastActivity.getTime()) / (1000 * 60);
54
+ const daysSinceActivity = minutesIdle / (60 * 24);
55
+ return {
56
+ deploymentName,
57
+ lastActivity,
58
+ minutesIdle,
59
+ daysSinceActivity,
60
+ replicas,
61
+ isIdle: minutesIdle >= idleThresholdMinutes,
62
+ isVeryOld: daysSinceActivity >= veryOldDays,
63
+ };
64
+ }
65
+ //# sourceMappingURL=deployment-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-utils.js","sourceRoot":"","sources":["../../src/orchestration/deployment-utils.ts"],"names":[],"mappings":";;;AAoBA,gDAcC;AAQD,8EAsBC;AAED,0DAEC;AAED,gEA2BC;AAjGD,4DAAkE;AAClE,0CAA+C;AAO/C;;;GAGG;AAEH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACI,KAAK,UAAU,kBAAkB,CACtC,OAAe,EACf,OAA+B;IAE/B,IAAI,OAAO,qBAAQ,OAAO,CAAE,CAAC;IAE7B,MAAM,mBAAmB,GAAG,IAAA,sCAAsB,GAAE,CAAC;IACrD,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAEY,QAAA,kBAAkB,GAAG;IAChC,wBAAwB,EAAE,MAAM;IAChC,6BAA6B,EAAE,QAAQ;IACvC,iBAAiB,EAAE,cAAc;CACzB,CAAC;AAEX,SAAgB,iCAAiC,CAC/C,WAA4B;IAE5B,IACE,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAA;QACtB,CAAC,WAAW,CAAC,SAAS;QACtB,CAAC,WAAW,CAAC,cAAc;QAC3B,CAAC,WAAW,CAAC,gBAAgB,EAC7B,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,2BAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,QAAQ,CAAC,uBAAuB,CACrC,WAAW,CAAC,cAAc,EAC1B,WAAW,CAAC,SAAS,EACrB,WAAW,CAAC,gBAAgB,CAC7B,CAAC;AACJ,CAAC;AAED,SAAgB,uBAAuB,CAAC,MAA0B;;IAChE,OAAO,MAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,WAAW,mCAAI,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,0BAA0B,CAAC,EACzC,cAAc,EACd,YAAY,EACZ,GAAG,EACH,oBAAoB,EACpB,WAAW,EACX,QAAQ,GAQT;IACC,MAAM,WAAW,GAAG,CAAC,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACjE,MAAM,iBAAiB,GAAG,WAAW,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAElD,OAAO;QACL,cAAc;QACd,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,QAAQ;QACR,MAAM,EAAE,WAAW,IAAI,oBAAoB;QAC3C,SAAS,EAAE,iBAAiB,IAAI,WAAW;KAC5C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { ModelProviderModule } from "../../modules/module-system";
2
+ import { BaseDeploymentManager, type DeploymentInfo, type ModuleEnvVarsBuilder, type OrchestratorConfig } from "../base-deployment-manager";
3
+ export declare class DockerDeploymentManager extends BaseDeploymentManager {
4
+ private docker;
5
+ private gvisorAvailable;
6
+ private activityTimestamps;
7
+ constructor(config: OrchestratorConfig, moduleEnvVarsBuilder?: ModuleEnvVarsBuilder, providerModules?: ModelProviderModule[]);
8
+ private checkGvisorAvailability;
9
+ /**
10
+ * Ensure the internal Docker network exists with `internal: true` for worker isolation.
11
+ * Skipped when WORKER_NETWORK is explicitly set (e.g. local dev using bridge).
12
+ * Creates the network if it doesn't exist (e.g. production without docker-compose).
13
+ */
14
+ private ensureInternalNetwork;
15
+ /**
16
+ * Check if gateway is running inside a Docker container
17
+ */
18
+ private isRunningInContainer;
19
+ /**
20
+ * Get the host address that workers should use to reach the gateway
21
+ * When gateway runs on host, workers use host.docker.internal
22
+ * When gateway runs in container (docker-compose mode), workers use service name
23
+ */
24
+ private getHostAddress;
25
+ /**
26
+ * Validate that the worker image exists locally, or pull it if missing.
27
+ * Called on gateway startup to ensure workers can be created.
28
+ */
29
+ validateWorkerImage(): Promise<void>;
30
+ listDeployments(): Promise<DeploymentInfo[]>;
31
+ /**
32
+ * Ensures a Docker volume exists for the given space ID.
33
+ * Uses named volumes for better isolation and security.
34
+ * Multiple threads in the same space share the same volume.
35
+ */
36
+ private ensureVolume;
37
+ createDeployment(...args: Parameters<BaseDeploymentManager["createDeployment"]>): Promise<void>;
38
+ scaleDeployment(deploymentName: string, replicas: number): Promise<void>;
39
+ deleteDeployment(deploymentName: string): Promise<void>;
40
+ updateDeploymentActivity(deploymentName: string): Promise<void>;
41
+ protected getDispatcherHost(): string;
42
+ }
43
+ //# sourceMappingURL=docker-deployment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-deployment.d.ts","sourceRoot":"","sources":["../../../src/orchestration/impl/docker-deployment.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EAEnB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AA0CpC,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,kBAAkB,CAAgC;gBAGxD,MAAM,EAAE,kBAAkB,EAC1B,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,eAAe,GAAE,mBAAmB,EAAO;YAc/B,uBAAuB;IAsBrC;;;;OAIG;YACW,qBAAqB;IAwCnC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAQtB;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiDpC,eAAe,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAmDlD;;;;OAIG;YACW,YAAY;IAgEpB,gBAAgB,CACpB,GAAG,IAAI,EAAE,UAAU,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,GAC7D,OAAO,CAAC,IAAI,CAAC;IAuNV,eAAe,CACnB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAsBV,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCvD,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrE,SAAS,CAAC,iBAAiB,IAAI,MAAM;CAGtC"}
@@ -0,0 +1,480 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DockerDeploymentManager = void 0;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const core_1 = require("@lobu/core");
10
+ const dockerode_1 = __importDefault(require("dockerode"));
11
+ const base_deployment_manager_1 = require("../base-deployment-manager");
12
+ const deployment_utils_1 = require("../deployment-utils");
13
+ /**
14
+ * Resource parsing utilities for memory and CPU limits
15
+ */
16
+ class ResourceParser {
17
+ static parseMemory(memoryStr) {
18
+ const units = {
19
+ Ki: 1024,
20
+ Mi: 1024 * 1024,
21
+ Gi: 1024 * 1024 * 1024,
22
+ k: 1000,
23
+ M: 1000 * 1000,
24
+ G: 1000 * 1000 * 1000,
25
+ };
26
+ for (const [unit, multiplier] of Object.entries(units)) {
27
+ if (memoryStr.endsWith(unit)) {
28
+ const value = parseFloat(memoryStr.replace(unit, ""));
29
+ return value * multiplier;
30
+ }
31
+ }
32
+ return parseInt(memoryStr, 10);
33
+ }
34
+ static parseCpu(cpuStr) {
35
+ if (cpuStr.endsWith("m")) {
36
+ const millicores = parseInt(cpuStr.replace("m", ""), 10);
37
+ return (millicores / 1000) * 1e9;
38
+ }
39
+ const cores = parseFloat(cpuStr);
40
+ return cores * 1e9;
41
+ }
42
+ }
43
+ const logger = (0, core_1.createLogger)("orchestrator");
44
+ class DockerDeploymentManager extends base_deployment_manager_1.BaseDeploymentManager {
45
+ constructor(config, moduleEnvVarsBuilder, providerModules = []) {
46
+ super(config, moduleEnvVarsBuilder, providerModules);
47
+ this.gvisorAvailable = false;
48
+ this.activityTimestamps = new Map();
49
+ // Explicitly use the Unix socket for Docker connection
50
+ this.docker = new dockerode_1.default({ socketPath: "/var/run/docker.sock" });
51
+ // Check for gvisor availability on initialization
52
+ this.checkGvisorAvailability();
53
+ // Ensure the internal network exists for worker isolation
54
+ this.ensureInternalNetwork();
55
+ }
56
+ async checkGvisorAvailability() {
57
+ try {
58
+ const info = await this.docker.info();
59
+ const runtimes = info.Runtimes || {};
60
+ if (runtimes.runsc || runtimes.gvisor) {
61
+ this.gvisorAvailable = true;
62
+ logger.info("✅ gVisor runtime detected and will be used for worker isolation");
63
+ }
64
+ else {
65
+ logger.info("ℹ️ gVisor runtime not available, using default runc runtime");
66
+ }
67
+ }
68
+ catch (error) {
69
+ logger.warn(`⚠️ Failed to check Docker runtime availability: ${error instanceof Error ? error.message : String(error)}`);
70
+ }
71
+ }
72
+ /**
73
+ * Ensure the internal Docker network exists with `internal: true` for worker isolation.
74
+ * Skipped when WORKER_NETWORK is explicitly set (e.g. local dev using bridge).
75
+ * Creates the network if it doesn't exist (e.g. production without docker-compose).
76
+ */
77
+ async ensureInternalNetwork() {
78
+ // If explicitly overridden (e.g. WORKER_NETWORK=bridge for local dev), skip
79
+ if (process.env.WORKER_NETWORK) {
80
+ return;
81
+ }
82
+ const composeProjectName = process.env.COMPOSE_PROJECT_NAME || "lobu";
83
+ const networkName = `${composeProjectName}_lobu-internal`;
84
+ try {
85
+ const network = this.docker.getNetwork(networkName);
86
+ const info = await network.inspect();
87
+ if (!info.Internal) {
88
+ logger.warn(`⚠️ Network ${networkName} exists but is NOT internal — workers may have direct internet access`);
89
+ }
90
+ }
91
+ catch (_a) {
92
+ // Network doesn't exist — create it with internal: true
93
+ try {
94
+ await this.docker.createNetwork({
95
+ Name: networkName,
96
+ Internal: true,
97
+ Driver: "bridge",
98
+ Labels: {
99
+ "lobu.io/managed": "true",
100
+ "lobu.io/purpose": "worker-isolation",
101
+ },
102
+ });
103
+ logger.info(`✅ Created internal network ${networkName} for worker isolation`);
104
+ }
105
+ catch (createError) {
106
+ logger.error(`Failed to create internal network ${networkName}: ${createError instanceof Error ? createError.message : String(createError)}`);
107
+ }
108
+ }
109
+ }
110
+ /**
111
+ * Check if gateway is running inside a Docker container
112
+ */
113
+ isRunningInContainer() {
114
+ return node_fs_1.default.existsSync("/.dockerenv") || process.env.CONTAINER === "true";
115
+ }
116
+ /**
117
+ * Get the host address that workers should use to reach the gateway
118
+ * When gateway runs on host, workers use host.docker.internal
119
+ * When gateway runs in container (docker-compose mode), workers use service name
120
+ */
121
+ getHostAddress() {
122
+ if (this.isRunningInContainer()) {
123
+ return "gateway";
124
+ }
125
+ // For host-mode development, workers reach gateway via host.docker.internal
126
+ return "host.docker.internal";
127
+ }
128
+ /**
129
+ * Validate that the worker image exists locally, or pull it if missing.
130
+ * Called on gateway startup to ensure workers can be created.
131
+ */
132
+ async validateWorkerImage() {
133
+ const imageName = this.getWorkerImageReference();
134
+ try {
135
+ await this.docker.getImage(imageName).inspect();
136
+ logger.info(`✅ Worker image verified: ${imageName}`);
137
+ }
138
+ catch (error) {
139
+ const errorMessage = error instanceof Error ? error.message : String(error);
140
+ // If image not found, try to pull it
141
+ if (errorMessage.includes("No such image") ||
142
+ errorMessage.includes("404")) {
143
+ logger.info(`📥 Worker image ${imageName} not found locally, pulling...`);
144
+ try {
145
+ await new Promise((resolve, reject) => {
146
+ this.docker.pull(imageName, (err, stream) => {
147
+ if (err)
148
+ return reject(err);
149
+ this.docker.modem.followProgress(stream, (err) => {
150
+ if (err)
151
+ reject(err);
152
+ else
153
+ resolve();
154
+ });
155
+ });
156
+ });
157
+ logger.info(`✅ Worker image ${imageName} pulled successfully`);
158
+ }
159
+ catch (pullError) {
160
+ logger.error(`❌ Failed to pull worker image ${imageName}:`, pullError);
161
+ throw new core_1.OrchestratorError(core_1.ErrorCode.DEPLOYMENT_CREATE_FAILED, `Worker image ${imageName} does not exist locally and pull failed. Please check your internet connection or registry permissions.`);
162
+ }
163
+ }
164
+ else {
165
+ // Other error - re-throw
166
+ throw new core_1.OrchestratorError(core_1.ErrorCode.DEPLOYMENT_CREATE_FAILED, `Failed to validate worker image ${imageName}: ${errorMessage}`);
167
+ }
168
+ }
169
+ }
170
+ async listDeployments() {
171
+ try {
172
+ const containers = await this.docker.listContainers({
173
+ all: true,
174
+ filters: {
175
+ label: ["app.kubernetes.io/component=worker"],
176
+ },
177
+ });
178
+ const now = Date.now();
179
+ const idleThresholdMinutes = this.config.worker.idleCleanupMinutes;
180
+ const veryOldDays = (0, deployment_utils_1.getVeryOldThresholdDays)(this.config);
181
+ return containers.map((containerInfo) => {
182
+ var _a, _b, _c;
183
+ const deploymentName = ((_a = containerInfo.Names[0]) === null || _a === void 0 ? void 0 : _a.substring(1)) || ""; // Remove leading '/'
184
+ // Get last activity from in-memory tracking, labels, or creation time
185
+ const trackedActivity = this.activityTimestamps.get(deploymentName);
186
+ const lastActivityStr = ((_b = containerInfo.Labels) === null || _b === void 0 ? void 0 : _b["lobu.io/last-activity"]) ||
187
+ ((_c = containerInfo.Labels) === null || _c === void 0 ? void 0 : _c["lobu.io/created"]);
188
+ const labelActivity = lastActivityStr
189
+ ? new Date(lastActivityStr)
190
+ : new Date(containerInfo.Created * 1000);
191
+ // Use the most recent timestamp from any source
192
+ const lastActivity = trackedActivity && trackedActivity > labelActivity
193
+ ? trackedActivity
194
+ : labelActivity;
195
+ const replicas = containerInfo.State === "running" ? 1 : 0;
196
+ return (0, deployment_utils_1.buildDeploymentInfoSummary)({
197
+ deploymentName,
198
+ lastActivity,
199
+ now,
200
+ idleThresholdMinutes,
201
+ veryOldDays,
202
+ replicas,
203
+ });
204
+ });
205
+ }
206
+ catch (error) {
207
+ throw new core_1.OrchestratorError(core_1.ErrorCode.DEPLOYMENT_CREATE_FAILED, `Failed to list Docker containers: ${error instanceof Error ? error.message : String(error)}`, { error }, true);
208
+ }
209
+ }
210
+ /**
211
+ * Ensures a Docker volume exists for the given space ID.
212
+ * Uses named volumes for better isolation and security.
213
+ * Multiple threads in the same space share the same volume.
214
+ */
215
+ async ensureVolume(agentId) {
216
+ var _a;
217
+ const volumeName = `lobu-workspace-${agentId}`;
218
+ let volumeCreated = false;
219
+ try {
220
+ // Check if volume already exists (idempotent for concurrent creation)
221
+ await this.docker.getVolume(volumeName).inspect();
222
+ logger.info(`✅ Volume ${volumeName} already exists`);
223
+ }
224
+ catch (_error) {
225
+ // Volume doesn't exist, create it
226
+ try {
227
+ await this.docker.createVolume({
228
+ Name: volumeName,
229
+ Labels: {
230
+ "lobu.io/agent-id": agentId,
231
+ "lobu.io/created": new Date().toISOString(),
232
+ },
233
+ });
234
+ logger.info(`✅ Created volume: ${volumeName}`);
235
+ volumeCreated = true;
236
+ }
237
+ catch (createError) {
238
+ // Handle race condition: volume created by another thread
239
+ if (createError.statusCode === 409 ||
240
+ ((_a = createError.message) === null || _a === void 0 ? void 0 : _a.includes("already exists"))) {
241
+ logger.info(`Volume ${volumeName} was created by another thread`);
242
+ }
243
+ else {
244
+ throw createError;
245
+ }
246
+ }
247
+ }
248
+ // Fix volume permissions for new volumes
249
+ // The claude user in the worker container has UID 1001
250
+ if (volumeCreated) {
251
+ try {
252
+ const initContainer = await this.docker.createContainer({
253
+ Image: "alpine:latest",
254
+ Cmd: ["chown", "-R", "1001:1001", "/workspace"],
255
+ HostConfig: {
256
+ AutoRemove: true,
257
+ Mounts: [
258
+ {
259
+ Type: "volume",
260
+ Source: volumeName,
261
+ Target: "/workspace",
262
+ },
263
+ ],
264
+ },
265
+ });
266
+ await initContainer.start();
267
+ await initContainer.wait();
268
+ logger.info(`✅ Fixed volume permissions for ${volumeName}`);
269
+ }
270
+ catch (permError) {
271
+ logger.warn(`⚠️ Could not fix volume permissions: ${permError instanceof Error ? permError.message : String(permError)}`);
272
+ }
273
+ }
274
+ return volumeName;
275
+ }
276
+ async createDeployment(...args) {
277
+ var _a, _b, _c, _d;
278
+ const [deploymentName, username, userId, messageDataRaw] = args;
279
+ const messageData = messageDataRaw;
280
+ try {
281
+ // Use agentId for volume naming (shared across threads in same space)
282
+ const agentId = messageData === null || messageData === void 0 ? void 0 : messageData.agentId;
283
+ if (!agentId) {
284
+ throw new core_1.OrchestratorError(core_1.ErrorCode.DEPLOYMENT_CREATE_FAILED, "Missing agentId in message payload");
285
+ }
286
+ // Determine if running in Docker and resolve project paths
287
+ const isRunningInDocker = process.env.DEPLOYMENT_MODE === "docker";
288
+ const projectRoot = isRunningInDocker
289
+ ? process.env.LOBU_DEV_PROJECT_PATH || "/app"
290
+ : node_path_1.default.join(process.cwd(), "..", "..");
291
+ const workspaceDir = `${projectRoot}/workspaces/${agentId}`;
292
+ // Ensure volume exists for production mode (space-scoped)
293
+ const volumeName = await this.ensureVolume(agentId);
294
+ // Get common environment variables from base class
295
+ const commonEnvVars = await this.generateEnvironmentVariables(username, userId, deploymentName, messageData, true);
296
+ // On macOS/Windows, Docker containers need to use host.docker.internal instead of localhost
297
+ if (process.platform === "darwin" || process.platform === "win32") {
298
+ if (commonEnvVars.LOBU_DATABASE_HOST === "localhost" ||
299
+ commonEnvVars.LOBU_DATABASE_HOST === "127.0.0.1") {
300
+ commonEnvVars.LOBU_DATABASE_HOST = "host.docker.internal";
301
+ }
302
+ }
303
+ // Environment variables from base class already include:
304
+ // HTTP_PROXY, HTTPS_PROXY, NO_PROXY, NODE_ENV, DEBUG
305
+ // Provider credentials are injected via provider modules in generateEnvironmentVariables()
306
+ const envVars = Object.entries(commonEnvVars).map(([key, value]) => `${key}=${value}`);
307
+ // Check if Nix packages are configured (need writable rootfs for symlinks)
308
+ const hasNixConfig = ((_c = (_b = (_a = messageData === null || messageData === void 0 ? void 0 : messageData.nixConfig) === null || _a === void 0 ? void 0 : _a.packages) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0 ||
309
+ !!((_d = messageData === null || messageData === void 0 ? void 0 : messageData.nixConfig) === null || _d === void 0 ? void 0 : _d.flakeUrl);
310
+ // Get the Docker Compose project name from environment or use default
311
+ const composeProjectName = process.env.COMPOSE_PROJECT_NAME || "lobu";
312
+ const createOptions = {
313
+ name: deploymentName,
314
+ Image: this.getWorkerImageReference(),
315
+ Env: envVars,
316
+ Labels: Object.assign(Object.assign(Object.assign({}, deployment_utils_1.BASE_WORKER_LABELS), { "lobu.io/created": new Date().toISOString(), "lobu.io/agent-id": agentId,
317
+ // Docker Compose labels to associate with the project
318
+ "com.docker.compose.project": composeProjectName, "com.docker.compose.service": deploymentName, "com.docker.compose.oneoff": "False" }), (0, deployment_utils_1.resolvePlatformDeploymentMetadata)(messageData)),
319
+ HostConfig: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (process.env.NODE_ENV === "development" && isRunningInDocker
320
+ ? {
321
+ Binds: [
322
+ `${workspaceDir}:/workspace`,
323
+ // Mount packages and scripts for hot reload
324
+ `${projectRoot}/packages:/app/packages`,
325
+ `${projectRoot}/scripts:/app/scripts`,
326
+ // Additional custom mounts (optional)
327
+ ...(process.env.WORKER_VOLUME_MOUNTS
328
+ ? process.env.WORKER_VOLUME_MOUNTS.split(";")
329
+ .filter((mount) => mount.trim())
330
+ .map((mount) => mount
331
+ .replace("${PWD}", projectRoot)
332
+ .replace("${WORKSPACE_DIR}", workspaceDir))
333
+ : []),
334
+ ],
335
+ }
336
+ : {
337
+ // Production: use named volumes for better isolation
338
+ Mounts: [
339
+ {
340
+ Type: "volume",
341
+ Source: volumeName,
342
+ Target: "/workspace",
343
+ ReadOnly: false,
344
+ },
345
+ ],
346
+ })), { RestartPolicy: {
347
+ Name: "unless-stopped",
348
+ },
349
+ // Resource limits similar to K8s
350
+ Memory: ResourceParser.parseMemory(this.config.worker.resources.limits.memory), NanoCpus: ResourceParser.parseCpu(this.config.worker.resources.limits.cpu),
351
+ // Always connect to internal network (network isolation always enabled)
352
+ // In docker-compose mode: uses compose project prefix
353
+ // In host mode: uses plain network name (WORKER_NETWORK env var)
354
+ NetworkMode: process.env.WORKER_NETWORK || `${composeProjectName}_lobu-internal` }), (!this.isRunningInContainer() && {
355
+ ExtraHosts: ["host.docker.internal:host-gateway"],
356
+ })), {
357
+ // Security: Drop all capabilities and only add what's needed
358
+ CapDrop: ["ALL"], CapAdd: process.env.WORKER_CAPABILITIES
359
+ ? process.env.WORKER_CAPABILITIES.split(",")
360
+ : [],
361
+ // Security: Prevent privilege escalation
362
+ SecurityOpt: [
363
+ "no-new-privileges:true",
364
+ // Custom seccomp profile (default Docker seccomp is applied automatically)
365
+ ...(process.env.WORKER_SECCOMP_PROFILE
366
+ ? [`seccomp=${process.env.WORKER_SECCOMP_PROFILE}`]
367
+ : []),
368
+ // AppArmor profile if specified
369
+ ...(process.env.WORKER_APPARMOR_PROFILE
370
+ ? [`apparmor=${process.env.WORKER_APPARMOR_PROFILE}`]
371
+ : []),
372
+ ],
373
+ // User namespace remapping (if Docker daemon is configured for it)
374
+ // This makes the root user inside container map to non-root on host
375
+ UsernsMode: process.env.WORKER_USERNS_MODE || "",
376
+ // Read-only root filesystem (worker can write to /workspace and /tmp)
377
+ // Disabled when Nix packages configured (entrypoint needs to symlink /nix/store)
378
+ // Enabled by default for security, set WORKER_READONLY_ROOTFS=false to disable
379
+ ReadonlyRootfs: !hasNixConfig && process.env.WORKER_READONLY_ROOTFS !== "false" }), (!hasNixConfig &&
380
+ process.env.WORKER_READONLY_ROOTFS !== "false" && {
381
+ Tmpfs: {
382
+ "/tmp": "rw,noexec,nosuid,size=100m",
383
+ },
384
+ })), {
385
+ // Shared memory for Chromium and other apps requiring /dev/shm
386
+ ShmSize: 268435456 }), (this.gvisorAvailable && {
387
+ Runtime: "runsc",
388
+ })),
389
+ WorkingDir: "/workspace",
390
+ };
391
+ const container = await this.docker.createContainer(createOptions);
392
+ try {
393
+ await container.start();
394
+ }
395
+ catch (startError) {
396
+ // Clean up orphaned container if start fails
397
+ logger.error(`Failed to start container ${deploymentName}, removing orphaned container`, startError);
398
+ try {
399
+ await container.remove({ force: true });
400
+ }
401
+ catch (removeError) {
402
+ logger.error(`Failed to remove orphaned container ${deploymentName}:`, removeError);
403
+ }
404
+ throw startError;
405
+ }
406
+ // In host mode, also connect the worker to the public network so it can
407
+ // reach the host gateway via host.docker.internal (internal network blocks host access)
408
+ if (!this.isRunningInContainer()) {
409
+ try {
410
+ const publicNetwork = this.docker.getNetwork(`${composeProjectName}_lobu-public`);
411
+ await publicNetwork.connect({ Container: container.id });
412
+ }
413
+ catch (netErr) {
414
+ logger.warn(`Could not connect ${deploymentName} to public network: ${netErr instanceof Error ? netErr.message : String(netErr)}`);
415
+ }
416
+ }
417
+ logger.info(`✅ Created and started Docker container: ${deploymentName}`);
418
+ }
419
+ catch (error) {
420
+ throw new core_1.OrchestratorError(core_1.ErrorCode.DEPLOYMENT_CREATE_FAILED, `Failed to create Docker container: ${error instanceof Error ? error.message : String(error)}`, { deploymentName, error }, true);
421
+ }
422
+ }
423
+ async scaleDeployment(deploymentName, replicas) {
424
+ try {
425
+ const container = this.docker.getContainer(deploymentName);
426
+ const containerInfo = await container.inspect();
427
+ if (replicas === 0 && containerInfo.State.Running) {
428
+ await container.stop();
429
+ logger.info(`Stopped container ${deploymentName}`);
430
+ }
431
+ else if (replicas === 1 && !containerInfo.State.Running) {
432
+ await container.start();
433
+ logger.info(`Started container ${deploymentName}`);
434
+ }
435
+ }
436
+ catch (error) {
437
+ throw new core_1.OrchestratorError(core_1.ErrorCode.DEPLOYMENT_SCALE_FAILED, `Failed to scale Docker container ${deploymentName}: ${error instanceof Error ? error.message : String(error)}`, { deploymentName, replicas, error }, true);
438
+ }
439
+ }
440
+ async deleteDeployment(deploymentName) {
441
+ try {
442
+ const container = this.docker.getContainer(deploymentName);
443
+ // Stop container if running
444
+ try {
445
+ await container.stop();
446
+ logger.info(`✅ Stopped container: ${deploymentName}`);
447
+ }
448
+ catch (_error) {
449
+ // Container might already be stopped
450
+ logger.warn(`⚠️ Container ${deploymentName} was not running`);
451
+ }
452
+ // Remove container
453
+ await container.remove();
454
+ this.activityTimestamps.delete(deploymentName);
455
+ logger.info(`✅ Removed container: ${deploymentName}`);
456
+ }
457
+ catch (error) {
458
+ const dockerError = error;
459
+ if (dockerError.statusCode === 404) {
460
+ logger.warn(`⚠️ Container ${deploymentName} not found (already deleted)`);
461
+ }
462
+ else {
463
+ throw error;
464
+ }
465
+ }
466
+ // NOTE: Space volumes are NOT deleted on deployment deletion
467
+ // They are shared across threads in the same space and persist
468
+ // for future conversations. Cleanup is done manually or via separate process.
469
+ }
470
+ async updateDeploymentActivity(deploymentName) {
471
+ // Docker doesn't support runtime label updates like K8s annotations
472
+ // Track activity in-memory for idle cleanup calculations
473
+ this.activityTimestamps.set(deploymentName, new Date());
474
+ }
475
+ getDispatcherHost() {
476
+ return this.getHostAddress();
477
+ }
478
+ }
479
+ exports.DockerDeploymentManager = DockerDeploymentManager;
480
+ //# sourceMappingURL=docker-deployment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-deployment.js","sourceRoot":"","sources":["../../../src/orchestration/impl/docker-deployment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ModelProviderModule } from "../../modules/module-system";
2
+ import { BaseDeploymentManager, type DeploymentInfo, type ModuleEnvVarsBuilder, type OrchestratorConfig } from "../base-deployment-manager";
3
+ export declare class EmbeddedDeploymentManager extends BaseDeploymentManager {
4
+ private workers;
5
+ constructor(config: OrchestratorConfig, moduleEnvVarsBuilder?: ModuleEnvVarsBuilder, providerModules?: ModelProviderModule[]);
6
+ protected getDispatcherHost(): string;
7
+ validateWorkerImage(): Promise<void>;
8
+ createDeployment(...args: Parameters<BaseDeploymentManager["createDeployment"]>): Promise<void>;
9
+ scaleDeployment(deploymentName: string, replicas: number): Promise<void>;
10
+ deleteDeployment(deploymentName: string): Promise<void>;
11
+ listDeployments(): Promise<DeploymentInfo[]>;
12
+ updateDeploymentActivity(deploymentName: string): Promise<void>;
13
+ /** Send SIGTERM, then SIGKILL after timeout. */
14
+ private killWorker;
15
+ }
16
+ //# sourceMappingURL=embedded-deployment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded-deployment.d.ts","sourceRoot":"","sources":["../../../src/orchestration/impl/embedded-deployment.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EAEnB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AA0CpC,qBAAa,yBAA0B,SAAQ,qBAAqB;IAClE,OAAO,CAAC,OAAO,CAA+C;gBAG5D,MAAM,EAAE,kBAAkB,EAC1B,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,eAAe,GAAE,mBAAmB,EAAO;IAK7C,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAI/B,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWpC,gBAAgB,CACpB,GAAG,IAAI,EAAE,UAAU,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,GAC7D,OAAO,CAAC,IAAI,CAAC;IA+GV,eAAe,CACnB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAaV,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvD,eAAe,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAqB5C,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrE,gDAAgD;IAChD,OAAO,CAAC,UAAU;CAsBnB"}