@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,553 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseDeploymentManager = void 0;
4
+ exports.buildCanonicalConversationKey = buildCanonicalConversationKey;
5
+ exports.generateDeploymentName = generateDeploymentName;
6
+ const node_crypto_1 = require("node:crypto");
7
+ const core_1 = require("@lobu/core");
8
+ const secret_proxy_1 = require("../proxy/secret-proxy");
9
+ const scheduled_wakeup_1 = require("./scheduled-wakeup");
10
+ const logger = (0, core_1.createLogger)("orchestrator");
11
+ /**
12
+ * Build a canonical conversation identity key for runtime routing.
13
+ * Preferred format: platform:channelId:conversationId
14
+ */
15
+ function buildCanonicalConversationKey(identity) {
16
+ const { conversationId, channelId, platform } = identity;
17
+ if (platform && channelId) {
18
+ return `${platform}:${channelId}:${conversationId}`;
19
+ }
20
+ if (channelId) {
21
+ return `${channelId}:${conversationId}`;
22
+ }
23
+ return conversationId;
24
+ }
25
+ function sanitizeNameHint(value, fallback) {
26
+ const sanitized = (value || "").replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
27
+ return (sanitized.slice(0, 8) || fallback).toLowerCase();
28
+ }
29
+ function generateDeploymentName(arg1, arg2) {
30
+ if (typeof arg1 === "string") {
31
+ const userId = arg1;
32
+ const conversationId = arg2 || "";
33
+ const shortHint = sanitizeNameHint(userId, "user");
34
+ const hash = (0, node_crypto_1.createHash)("sha256")
35
+ .update(`${userId}:${conversationId}`)
36
+ .digest("hex")
37
+ .slice(0, 12);
38
+ return `lobu-worker-${shortHint}-${hash}`;
39
+ }
40
+ const identity = arg1;
41
+ const canonicalKey = buildCanonicalConversationKey(identity);
42
+ const hint = sanitizeNameHint(identity.platform || identity.userId, "ctx");
43
+ const hash = (0, node_crypto_1.createHash)("sha256")
44
+ .update(canonicalKey)
45
+ .digest("hex")
46
+ .slice(0, 12);
47
+ return `lobu-worker-${hint}-${hash}`;
48
+ }
49
+ /** Check if an env var name looks like a secret (API key / token / secret / password). */
50
+ function isSecretEnvVar(name, providerModules) {
51
+ for (const provider of providerModules) {
52
+ if (provider.getSecretEnvVarNames().includes(name))
53
+ return true;
54
+ }
55
+ const upper = name.toUpperCase();
56
+ return (upper.includes("_KEY") ||
57
+ upper.includes("_TOKEN") ||
58
+ upper.includes("_SECRET") ||
59
+ upper.includes("_PASSWORD"));
60
+ }
61
+ class BaseDeploymentManager {
62
+ constructor(config, moduleEnvVarsBuilder, providerModules = []) {
63
+ this.config = config;
64
+ this.moduleEnvVarsBuilder = moduleEnvVarsBuilder;
65
+ this.providerModules = providerModules;
66
+ }
67
+ /**
68
+ * Inject Redis client for secret placeholder generation.
69
+ * Called after core services are initialized.
70
+ */
71
+ setRedisClient(redis) {
72
+ this.redisClient = redis;
73
+ }
74
+ /**
75
+ * Refresh provider modules after module registry initialization.
76
+ */
77
+ setProviderModules(providerModules) {
78
+ this.providerModules = providerModules;
79
+ }
80
+ setProviderCatalogService(service) {
81
+ this.providerCatalogService = service;
82
+ }
83
+ /**
84
+ * Inject grant store for auto-adding domain grants at deployment time.
85
+ */
86
+ setGrantStore(store) {
87
+ this.grantStore = store;
88
+ }
89
+ /**
90
+ * Get the dispatcher URL for the worker gateway service (port 8080)
91
+ */
92
+ getDispatcherUrl() {
93
+ return `http://${this.getDispatcherHost()}:8080`;
94
+ }
95
+ /**
96
+ * Resolve worker image reference.
97
+ * If digest is configured, prefer immutable digest reference (repo@sha256:...).
98
+ */
99
+ getWorkerImageReference() {
100
+ const { repository, tag, digest } = this.config.worker.image;
101
+ const normalizedDigest = digest === null || digest === void 0 ? void 0 : digest.trim();
102
+ if (normalizedDigest) {
103
+ const digestWithAlgo = normalizedDigest.startsWith("sha256:")
104
+ ? normalizedDigest
105
+ : `sha256:${normalizedDigest}`;
106
+ return `${repository}@${digestWithAlgo}`;
107
+ }
108
+ return `${repository}:${tag}`;
109
+ }
110
+ /**
111
+ * Create worker deployment for handling messages.
112
+ * @param existingDeployments - Optional pre-fetched deployment list to avoid redundant API calls
113
+ */
114
+ async createWorkerDeployment(userId, conversationId, messageData, existingDeployments) {
115
+ const deploymentIdentity = {
116
+ userId,
117
+ conversationId,
118
+ channelId: messageData === null || messageData === void 0 ? void 0 : messageData.channelId,
119
+ platform: messageData === null || messageData === void 0 ? void 0 : messageData.platform,
120
+ };
121
+ const deploymentName = generateDeploymentName(deploymentIdentity);
122
+ const canonicalConversationKey = buildCanonicalConversationKey(deploymentIdentity);
123
+ logger.info(`Worker deployment - conversationId: ${conversationId}, canonicalKey: ${canonicalConversationKey}, deploymentName: ${deploymentName}`);
124
+ try {
125
+ // Use pre-fetched list or fetch fresh
126
+ const deployments = existingDeployments !== null && existingDeployments !== void 0 ? existingDeployments : (await this.listDeployments());
127
+ const existingDeployment = deployments.find((d) => d.deploymentName === deploymentName);
128
+ if (existingDeployment) {
129
+ // Scale up the existing deployment. Provider config is now delivered
130
+ // dynamically via session context, so no need to recreate.
131
+ await this.scaleDeployment(deploymentName, 1);
132
+ return;
133
+ }
134
+ // Check if we would exceed max deployments limit
135
+ const maxDeployments = this.config.worker.maxDeployments;
136
+ if (maxDeployments > 0 && deployments.length >= maxDeployments) {
137
+ logger.warn(`⚠️ Maximum deployments limit reached (${deployments.length}/${maxDeployments}). Running cleanup before creating new deployment.`);
138
+ await this.reconcileDeployments();
139
+ // Check again after cleanup
140
+ const deploymentsAfterCleanup = await this.listDeployments();
141
+ if (deploymentsAfterCleanup.length >= maxDeployments) {
142
+ throw new core_1.OrchestratorError(core_1.ErrorCode.DEPLOYMENT_CREATE_FAILED, `Cannot create new deployment: Maximum deployments limit (${maxDeployments}) reached. Current active deployments: ${deploymentsAfterCleanup.length}`, {
143
+ maxDeployments,
144
+ currentCount: deploymentsAfterCleanup.length,
145
+ }, true);
146
+ }
147
+ }
148
+ await this.createDeployment(deploymentName, userId, userId, messageData);
149
+ }
150
+ catch (error) {
151
+ throw new core_1.OrchestratorError(core_1.ErrorCode.DEPLOYMENT_CREATE_FAILED, `Failed to create worker deployment: ${error instanceof Error ? error.message : String(error)}`, { userId, conversationId, error }, true);
152
+ }
153
+ }
154
+ /**
155
+ * Validate that messageData has all required fields for deployment.
156
+ */
157
+ validateMessageData(deploymentName, messageData) {
158
+ if (!messageData) {
159
+ throw new core_1.OrchestratorError(core_1.ErrorCode.DEPLOYMENT_CREATE_FAILED, "Message data is required for worker deployment", { deploymentName }, true);
160
+ }
161
+ const { conversationId, channelId } = messageData;
162
+ if (!conversationId || !channelId) {
163
+ throw new core_1.OrchestratorError(core_1.ErrorCode.DEPLOYMENT_CREATE_FAILED, "conversationId and channelId are required in message data", {
164
+ deploymentName,
165
+ hasConversationId: !!conversationId,
166
+ hasChannelId: !!channelId,
167
+ }, true);
168
+ }
169
+ return messageData;
170
+ }
171
+ /**
172
+ * Auto-add Nix cache domains as grants and persist MCP configs for the deployment.
173
+ */
174
+ async storeDeploymentConfigs(deploymentName, messageData) {
175
+ var _a, _b, _c, _d, _e;
176
+ const agentId = messageData.agentId;
177
+ // Sync networkConfig.allowedDomains to grant store
178
+ if (this.grantStore &&
179
+ agentId &&
180
+ ((_b = (_a = messageData.networkConfig) === null || _a === void 0 ? void 0 : _a.allowedDomains) === null || _b === void 0 ? void 0 : _b.length)) {
181
+ for (const domain of messageData.networkConfig.allowedDomains) {
182
+ await this.grantStore.grant(agentId, domain, null);
183
+ }
184
+ logger.info(`Synced network config domains as grants for ${deploymentName}: ${messageData.networkConfig.allowedDomains.join(", ")}`);
185
+ }
186
+ // Auto-add Nix cache domains as permanent grants when Nix packages are configured
187
+ if (this.grantStore &&
188
+ agentId &&
189
+ (((_d = (_c = messageData.nixConfig) === null || _c === void 0 ? void 0 : _c.packages) === null || _d === void 0 ? void 0 : _d.length) ||
190
+ ((_e = messageData.nixConfig) === null || _e === void 0 ? void 0 : _e.flakeUrl))) {
191
+ const NIX_DOMAINS = [
192
+ "cache.nixos.org",
193
+ "channels.nixos.org",
194
+ "releases.nixos.org",
195
+ ];
196
+ for (const domain of NIX_DOMAINS) {
197
+ await this.grantStore.grant(agentId, domain, null);
198
+ }
199
+ logger.info(`Added Nix cache domains as grants for ${deploymentName}: ${NIX_DOMAINS.join(", ")}`);
200
+ }
201
+ }
202
+ /**
203
+ * Sync networkConfig.allowedDomains to the grant store for a running worker.
204
+ * Called on every message to pick up domains added via configuration APIs.
205
+ */
206
+ async syncNetworkConfigGrants(messageData) {
207
+ var _a, _b;
208
+ const agentId = messageData.agentId;
209
+ if (!this.grantStore || !agentId)
210
+ return;
211
+ if ((_b = (_a = messageData.networkConfig) === null || _a === void 0 ? void 0 : _a.allowedDomains) === null || _b === void 0 ? void 0 : _b.length) {
212
+ for (const domain of messageData.networkConfig.allowedDomains) {
213
+ await this.grantStore.grant(agentId, domain, null);
214
+ }
215
+ }
216
+ }
217
+ /**
218
+ * Build proxy URL with deployment identification via Basic auth.
219
+ */
220
+ buildProxyUrl(deploymentName, workerToken, dispatcherHost) {
221
+ const parsedProxyPort = Number.parseInt(process.env.WORKER_PROXY_PORT || "8118", 10);
222
+ const proxyPort = Number.isFinite(parsedProxyPort) ? parsedProxyPort : 8118;
223
+ return `http://${deploymentName}:${workerToken}@${dispatcherHost}:${proxyPort}`;
224
+ }
225
+ /**
226
+ * Assemble the base environment variables map for a worker deployment.
227
+ */
228
+ assembleBaseEnv(username, userId, deploymentName, workerToken, messageData, traceId, proxyUrl, dispatcherHost) {
229
+ const { conversationId, channelId, platformMetadata } = messageData;
230
+ const envVars = {
231
+ USER_ID: userId,
232
+ USERNAME: username,
233
+ DEPLOYMENT_NAME: deploymentName,
234
+ CHANNEL_ID: channelId,
235
+ ORIGINAL_MESSAGE_TS: (platformMetadata === null || platformMetadata === void 0 ? void 0 : platformMetadata.originalMessageTs) || messageData.messageId || "",
236
+ LOG_LEVEL: "info",
237
+ WORKSPACE_DIR: "/workspace",
238
+ CONVERSATION_ID: conversationId,
239
+ WORKER_TOKEN: workerToken,
240
+ DISPATCHER_URL: this.getDispatcherUrl(),
241
+ NODE_ENV: process.env.NODE_ENV || "production",
242
+ DEBUG: "1",
243
+ HTTP_PROXY: proxyUrl,
244
+ HTTPS_PROXY: proxyUrl,
245
+ NO_PROXY: `${dispatcherHost},gateway,redis,localhost,127.0.0.1`,
246
+ // Route temporary files and cache to persistent workspace storage.
247
+ TMPDIR: "/workspace/.tmp",
248
+ TMP: "/workspace/.tmp",
249
+ TEMP: "/workspace/.tmp",
250
+ XDG_CACHE_HOME: "/workspace/.cache",
251
+ };
252
+ if (platformMetadata === null || platformMetadata === void 0 ? void 0 : platformMetadata.botResponseTs) {
253
+ envVars.BOT_RESPONSE_TS = platformMetadata.botResponseTs;
254
+ }
255
+ if (traceId) {
256
+ envVars.TRACE_ID = traceId;
257
+ }
258
+ // Add Tempo endpoint for distributed tracing
259
+ const tempoEndpoint = process.env.TEMPO_ENDPOINT;
260
+ if (tempoEndpoint) {
261
+ envVars.TEMPO_ENDPOINT = tempoEndpoint;
262
+ try {
263
+ const tempoUrl = new URL(tempoEndpoint);
264
+ envVars.NO_PROXY = `${envVars.NO_PROXY},${tempoUrl.hostname}`;
265
+ }
266
+ catch (_a) {
267
+ envVars.NO_PROXY = `${envVars.NO_PROXY},lobu-tempo`;
268
+ }
269
+ }
270
+ // Forward WORKER_ENV_* vars to workers with prefix stripped
271
+ const WORKER_ENV_PREFIX = "WORKER_ENV_";
272
+ for (const key of Object.keys(process.env)) {
273
+ if (key.startsWith(WORKER_ENV_PREFIX)) {
274
+ const stripped = key.slice(WORKER_ENV_PREFIX.length);
275
+ if (stripped) {
276
+ envVars[stripped] = process.env[key];
277
+ }
278
+ }
279
+ }
280
+ // Nix config
281
+ if (messageData.nixConfig) {
282
+ const { flakeUrl, packages } = messageData.nixConfig;
283
+ if (flakeUrl)
284
+ envVars.NIX_FLAKE_URL = flakeUrl;
285
+ if (packages && packages.length > 0)
286
+ envVars.NIX_PACKAGES = packages.join(",");
287
+ logger.debug(`Nix config for ${deploymentName}: flakeUrl=${flakeUrl || "none"}, packages=${(packages === null || packages === void 0 ? void 0 : packages.length) || 0}`);
288
+ }
289
+ return envVars;
290
+ }
291
+ /**
292
+ * Replace secret env var values with opaque placeholders before passing to workers.
293
+ *
294
+ * Provider credential env vars are set to `"lobu-proxy"` — the proxy resolves
295
+ * the real credential at request time using agentId from the URL path
296
+ * (`/a/{agentId}`) and the provider slug.
297
+ *
298
+ * Non-provider secrets use UUID placeholders stored in Redis.
299
+ */
300
+ async injectSecretPlaceholders(envVars, agentId, deploymentName) {
301
+ if (!this.redisClient)
302
+ return envVars;
303
+ // Collect credential env var names from all providers
304
+ const providerCredentialVars = new Set();
305
+ for (const provider of this.providerModules) {
306
+ providerCredentialVars.add(provider.getCredentialEnvVarName());
307
+ }
308
+ let hasSecrets = false;
309
+ for (const [key, value] of Object.entries(envVars)) {
310
+ if (!value || !isSecretEnvVar(key, this.providerModules))
311
+ continue;
312
+ if (key === "WORKER_TOKEN")
313
+ continue;
314
+ if (providerCredentialVars.has(key)) {
315
+ // Provider credentials use a proxy placeholder. The worker never
316
+ // sees real credentials. The proxy resolves the real credential
317
+ // using agentId from the URL path (/a/{agentId}) and the provider
318
+ // slug, then overrides the Authorization header before forwarding.
319
+ const ownerProvider = this.providerModules.find((p) => p.getCredentialEnvVarName() === key);
320
+ if (ownerProvider === null || ownerProvider === void 0 ? void 0 : ownerProvider.buildCredentialPlaceholder) {
321
+ envVars[key] =
322
+ await ownerProvider.buildCredentialPlaceholder(agentId);
323
+ }
324
+ else {
325
+ envVars[key] = "lobu-proxy";
326
+ }
327
+ hasSecrets = true;
328
+ }
329
+ else {
330
+ // Use UUID placeholder for non-provider secrets (legacy path)
331
+ try {
332
+ const placeholder = await (0, secret_proxy_1.generatePlaceholder)(this.redisClient, agentId, key, value, deploymentName);
333
+ envVars[key] = placeholder;
334
+ hasSecrets = true;
335
+ }
336
+ catch (error) {
337
+ logger.warn(`Failed to generate placeholder for ${key}:`, error);
338
+ }
339
+ }
340
+ }
341
+ if (hasSecrets) {
342
+ const proxyUrl = `${this.getDispatcherUrl()}/api/proxy`;
343
+ for (const provider of this.providerModules) {
344
+ Object.assign(envVars, provider.getProxyBaseUrlMappings(proxyUrl, agentId));
345
+ }
346
+ logger.info(`🔐 Generated secret placeholders for ${deploymentName}, routing through proxy`);
347
+ }
348
+ return envVars;
349
+ }
350
+ /**
351
+ * Generate environment variables common to all deployment types.
352
+ * Orchestrates the focused helpers above.
353
+ */
354
+ async generateEnvironmentVariables(username, userId, deploymentName, messageData, includeSecrets = true) {
355
+ var _a, _b, _c;
356
+ const validated = this.validateMessageData(deploymentName, messageData);
357
+ const { conversationId, channelId, platformMetadata, agentId, platform } = validated;
358
+ const teamId = validated.teamId || (platformMetadata === null || platformMetadata === void 0 ? void 0 : platformMetadata.teamId);
359
+ const traceId = (0, core_1.extractTraceId)(validated);
360
+ const workerToken = (0, core_1.generateWorkerToken)(userId, conversationId, deploymentName, {
361
+ channelId,
362
+ teamId,
363
+ platform,
364
+ agentId,
365
+ connectionId: typeof (platformMetadata === null || platformMetadata === void 0 ? void 0 : platformMetadata.connectionId) === "string"
366
+ ? platformMetadata.connectionId
367
+ : undefined,
368
+ traceId,
369
+ });
370
+ const dispatcherHost = this.getDispatcherHost();
371
+ await this.storeDeploymentConfigs(deploymentName, validated);
372
+ const proxyUrl = this.buildProxyUrl(deploymentName, workerToken, dispatcherHost);
373
+ let envVars = this.assembleBaseEnv(username, userId, deploymentName, workerToken, validated, traceId, proxyUrl, dispatcherHost);
374
+ // Include secrets from process.env for Docker deployments
375
+ if (includeSecrets && this.moduleEnvVarsBuilder) {
376
+ try {
377
+ envVars = await this.moduleEnvVarsBuilder(agentId, envVars);
378
+ }
379
+ catch (error) {
380
+ logger.warn("Failed to build module environment variables:", error);
381
+ }
382
+ }
383
+ // Add worker environment variables from configuration
384
+ if (this.config.worker.env) {
385
+ for (const [key, value] of Object.entries(this.config.worker.env)) {
386
+ envVars[key] = String(value);
387
+ }
388
+ }
389
+ // Resolve per-agent installed providers (catalog-only when active, no global fallback)
390
+ const effectiveProviders = this.providerCatalogService
391
+ ? await this.providerCatalogService.getInstalledModules(agentId)
392
+ : this.providerModules;
393
+ for (const provider of effectiveProviders) {
394
+ envVars = provider.injectSystemKeyFallback(envVars);
395
+ }
396
+ envVars = await this.injectSecretPlaceholders(envVars, agentId, deploymentName);
397
+ // Inject provider metadata into agentOptions so the worker can configure
398
+ // the SDK generically without hardcoded provider checks.
399
+ // Determine primary provider from the model in agentOptions.
400
+ const agentModel = (_a = validated.agentOptions) === null || _a === void 0 ? void 0 : _a.model;
401
+ let primaryProvider;
402
+ if (agentModel &&
403
+ effectiveProviders.length > 0 &&
404
+ this.providerCatalogService) {
405
+ primaryProvider = await this.providerCatalogService.findProviderForModel(agentModel, effectiveProviders);
406
+ }
407
+ // When no explicit model is set (auto mode), detect the primary provider
408
+ // from installed providers order (first with credentials = primary).
409
+ if (!primaryProvider && effectiveProviders.length > 0) {
410
+ for (const candidate of effectiveProviders) {
411
+ if (candidate.hasSystemKey() ||
412
+ (await candidate.hasCredentials(agentId))) {
413
+ primaryProvider = candidate;
414
+ break;
415
+ }
416
+ }
417
+ }
418
+ if (primaryProvider) {
419
+ logger.info({
420
+ agentId,
421
+ primaryProviderId: primaryProvider.providerId,
422
+ slug: (_c = (_b = primaryProvider.getUpstreamConfig) === null || _b === void 0 ? void 0 : _b.call(primaryProvider)) === null || _c === void 0 ? void 0 : _c.slug,
423
+ }, "Selected primary provider");
424
+ const proxyBaseUrl = `${this.getDispatcherUrl()}/api/proxy`;
425
+ const mappings = primaryProvider.getProxyBaseUrlMappings(proxyBaseUrl, agentId);
426
+ const providerBaseUrl = Object.values(mappings)[0];
427
+ if (providerBaseUrl) {
428
+ validated.agentOptions = Object.assign(Object.assign({}, validated.agentOptions), { providerBaseUrl });
429
+ }
430
+ // CREDENTIAL_ENV_VAR_NAME and AGENT_DEFAULT_PROVIDER are now
431
+ // delivered dynamically via session context endpoint. No longer
432
+ // set as static container env vars.
433
+ }
434
+ // Build full provider base URL mappings for all installed providers
435
+ const proxyBaseUrl = `${this.getDispatcherUrl()}/api/proxy`;
436
+ const providerBaseUrlMappings = {};
437
+ for (const provider of effectiveProviders) {
438
+ const mappings = provider.getProxyBaseUrlMappings(proxyBaseUrl, agentId);
439
+ Object.assign(providerBaseUrlMappings, mappings);
440
+ }
441
+ if (Object.keys(providerBaseUrlMappings).length > 0) {
442
+ validated.agentOptions = Object.assign(Object.assign({}, validated.agentOptions), { providerBaseUrlMappings });
443
+ }
444
+ // CLI_BACKENDS is now delivered dynamically via session context.
445
+ // Still need to auto-add npm registry domains for npx at deploy time.
446
+ const hasCliBackendProviders = effectiveProviders.some((p) => { var _a; return (_a = p.getCliBackendConfig) === null || _a === void 0 ? void 0 : _a.call(p); });
447
+ if (hasCliBackendProviders && this.grantStore && agentId) {
448
+ const NPM_DOMAINS = ["registry.npmjs.org", "registry.npmmirror.com"];
449
+ for (const domain of NPM_DOMAINS) {
450
+ await this.grantStore.grant(agentId, domain, null);
451
+ }
452
+ logger.info(`Added npm registry domains as grants for ${deploymentName}: ${NPM_DOMAINS.join(", ")}`);
453
+ }
454
+ return envVars;
455
+ }
456
+ /**
457
+ * Delete a worker deployment and associated resources
458
+ */
459
+ async deleteWorkerDeployment(deploymentName) {
460
+ try {
461
+ // Clean up secret placeholder mappings
462
+ if (this.redisClient) {
463
+ await (0, secret_proxy_1.deleteSecretMappings)(this.redisClient, deploymentName);
464
+ }
465
+ // Clean up any scheduled wakeups for this deployment
466
+ const scheduledWakeupService = (0, scheduled_wakeup_1.getScheduledWakeupService)();
467
+ if (scheduledWakeupService) {
468
+ await scheduledWakeupService.cleanupForDeployment(deploymentName);
469
+ }
470
+ await this.deleteDeployment(deploymentName);
471
+ }
472
+ catch (error) {
473
+ throw new core_1.OrchestratorError(core_1.ErrorCode.DEPLOYMENT_DELETE_FAILED, `Failed to delete deployment for ${deploymentName}: ${error instanceof Error ? error.message : String(error)}`, { deploymentName, error }, true);
474
+ }
475
+ }
476
+ /**
477
+ * Reconcile deployments: unified method for cleanup and resource management
478
+ * This method uses the abstract methods to work with any deployment backend
479
+ */
480
+ async reconcileDeployments() {
481
+ var _a, _b;
482
+ try {
483
+ const maxDeployments = this.config.worker.maxDeployments;
484
+ logger.debug("Running deployment cleanup...");
485
+ // Get all worker deployments from the backend
486
+ const activeDeployments = await this.listDeployments();
487
+ if (activeDeployments.length === 0) {
488
+ return;
489
+ }
490
+ // Sort deployments by last activity (oldest first)
491
+ const sortedDeployments = [...activeDeployments].sort((a, b) => a.lastActivity.getTime() - b.lastActivity.getTime());
492
+ let processedCount = 0;
493
+ const BATCH_SIZE = 10; // Process up to 10 deletions in parallel
494
+ // Collect actions to perform
495
+ const toDelete = [];
496
+ const toScaleDown = [];
497
+ for (const analysis of sortedDeployments) {
498
+ const { deploymentName, replicas, isIdle, isVeryOld } = analysis;
499
+ if (isVeryOld) {
500
+ toDelete.push(deploymentName);
501
+ }
502
+ else if (isIdle && replicas > 0) {
503
+ toScaleDown.push(deploymentName);
504
+ }
505
+ }
506
+ // Check if we exceed max deployments
507
+ const remainingDeployments = sortedDeployments.filter((d) => !d.isVeryOld);
508
+ if (remainingDeployments.length > maxDeployments) {
509
+ const excessCount = remainingDeployments.length - maxDeployments;
510
+ const deploymentsToDelete = remainingDeployments.slice(0, excessCount);
511
+ for (const { deploymentName } of deploymentsToDelete) {
512
+ if (!toDelete.includes(deploymentName)) {
513
+ toDelete.push(deploymentName);
514
+ }
515
+ }
516
+ }
517
+ // Process deletions in parallel batches
518
+ for (let i = 0; i < toDelete.length; i += BATCH_SIZE) {
519
+ const batch = toDelete.slice(i, i + BATCH_SIZE);
520
+ const results = await Promise.allSettled(batch.map((name) => this.deleteWorkerDeployment(name)));
521
+ for (let j = 0; j < results.length; j++) {
522
+ if (((_a = results[j]) === null || _a === void 0 ? void 0 : _a.status) === "fulfilled") {
523
+ processedCount++;
524
+ }
525
+ else {
526
+ logger.error(`❌ Failed to delete deployment ${batch[j]}:`, results[j].reason);
527
+ }
528
+ }
529
+ }
530
+ // Process scale-downs in parallel batches
531
+ for (let i = 0; i < toScaleDown.length; i += BATCH_SIZE) {
532
+ const batch = toScaleDown.slice(i, i + BATCH_SIZE);
533
+ const results = await Promise.allSettled(batch.map((name) => this.scaleDeployment(name, 0)));
534
+ for (let j = 0; j < results.length; j++) {
535
+ if (((_b = results[j]) === null || _b === void 0 ? void 0 : _b.status) === "fulfilled") {
536
+ processedCount++;
537
+ }
538
+ else {
539
+ logger.error(`❌ Failed to scale down deployment ${batch[j]}:`, results[j].reason);
540
+ }
541
+ }
542
+ }
543
+ if (processedCount > 0) {
544
+ logger.info(`✅ Cleanup completed: processed ${processedCount} deployment(s)`);
545
+ }
546
+ }
547
+ catch (error) {
548
+ logger.error("Error during deployment reconciliation:", error instanceof Error ? error.message : String(error));
549
+ }
550
+ }
551
+ }
552
+ exports.BaseDeploymentManager = BaseDeploymentManager;
553
+ //# sourceMappingURL=base-deployment-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-deployment-manager.js","sourceRoot":"","sources":["../../src/orchestration/base-deployment-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { DeploymentInfo, MessagePayload, OrchestratorConfig } from "./base-deployment-manager";
2
+ /**
3
+ * Shared types and utilities for deployment managers
4
+ * Reduces code duplication between Docker and K8s implementations
5
+ */
6
+ /**
7
+ * Build environment variables by integrating all registered modules
8
+ */
9
+ export declare function buildModuleEnvVars(agentId: string, baseEnv: Record<string, string>): Promise<Record<string, string>>;
10
+ export declare const BASE_WORKER_LABELS: {
11
+ readonly "app.kubernetes.io/name": "lobu";
12
+ readonly "app.kubernetes.io/component": "worker";
13
+ readonly "lobu/managed-by": "orchestrator";
14
+ };
15
+ export declare function resolvePlatformDeploymentMetadata(messageData?: MessagePayload): Record<string, string>;
16
+ export declare function getVeryOldThresholdDays(config: OrchestratorConfig): number;
17
+ export declare function buildDeploymentInfoSummary({ deploymentName, lastActivity, now, idleThresholdMinutes, veryOldDays, replicas, }: {
18
+ deploymentName: string;
19
+ lastActivity: Date;
20
+ now: number;
21
+ idleThresholdMinutes: number;
22
+ veryOldDays: number;
23
+ replicas: number;
24
+ }): DeploymentInfo;
25
+ //# sourceMappingURL=deployment-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-utils.d.ts","sourceRoot":"","sources":["../../src/orchestration/deployment-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAEnC;;;GAGG;AAMH;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAWjC;AAED,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,wBAAgB,iCAAiC,CAC/C,WAAW,CAAC,EAAE,cAAc,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoBxB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAE1E;AAED,wBAAgB,0BAA0B,CAAC,EACzC,cAAc,EACd,YAAY,EACZ,GAAG,EACH,oBAAoB,EACpB,WAAW,EACX,QAAQ,GACT,EAAE;IACD,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,cAAc,CAajB"}