@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,148 @@
1
+ #!/usr/bin/env bun
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.WorkerJobRouter = void 0;
5
+ const core_1 = require("@lobu/core");
6
+ const logger = (0, core_1.createLogger)("worker-job-router");
7
+ /**
8
+ * Routes jobs from queues to workers via SSE connections
9
+ * Manages job acknowledgments and timeouts
10
+ */
11
+ class WorkerJobRouter {
12
+ constructor(queue, connectionManager, _sessionManager) {
13
+ this.queue = queue;
14
+ this.connectionManager = connectionManager;
15
+ this.pendingJobs = new Map(); // In-memory timeouts only
16
+ }
17
+ /**
18
+ * Register a worker to receive jobs from its deployment queue
19
+ * Each worker listens on its own queue: thread_message_{deploymentName}
20
+ *
21
+ * Note: This is idempotent - BullMQ's queue.work() handles duplicate registrations gracefully.
22
+ * Safe to call multiple times (e.g., on worker reconnection or gateway restart).
23
+ */
24
+ async registerWorker(deploymentName) {
25
+ const queueName = `thread_message_${deploymentName}`;
26
+ // Create queue if it doesn't exist
27
+ await this.queue.createQueue(queueName);
28
+ // Register job handler (idempotent - BullMQ handles duplicates)
29
+ // Start paused so jobs aren't consumed before the SSE connection is live.
30
+ // The caller must call resumeWorker() after SSE connects.
31
+ await this.queue.work(queueName, async (job) => {
32
+ await this.handleJob(deploymentName, job);
33
+ }, { startPaused: true });
34
+ logger.info(`Registered worker for queue ${queueName}`);
35
+ }
36
+ /**
37
+ * Pause the BullMQ worker when SSE connection is lost
38
+ * This prevents jobs from being processed when worker can't receive them
39
+ */
40
+ async pauseWorker(deploymentName) {
41
+ const queueName = `thread_message_${deploymentName}`;
42
+ await this.queue.pauseWorker(queueName);
43
+ logger.info(`Paused job processing for ${deploymentName} - worker disconnected`);
44
+ }
45
+ /**
46
+ * Resume the BullMQ worker when SSE connection is established
47
+ * Jobs will now be processed and sent to the worker
48
+ */
49
+ async resumeWorker(deploymentName) {
50
+ const queueName = `thread_message_${deploymentName}`;
51
+ await this.queue.resumeWorker(queueName);
52
+ logger.info(`Resumed job processing for ${deploymentName} - worker connected`);
53
+ }
54
+ /**
55
+ * Handle a job from the queue and route it to the worker.
56
+ *
57
+ * Sends the job via SSE and waits for a delivery receipt from the worker.
58
+ * If the worker doesn't acknowledge within the timeout, the job is retried
59
+ * by BullMQ. This prevents jobs from being silently lost when sent to a
60
+ * stale SSE connection (e.g., after a container dies without cleanly closing TCP).
61
+ */
62
+ async handleJob(deploymentName, job) {
63
+ const connection = this.connectionManager.getConnection(deploymentName);
64
+ if (!connection) {
65
+ logger.warn(`No connection for deployment ${deploymentName}, job will be retried`);
66
+ throw new Error("Worker not connected");
67
+ }
68
+ // Extract job data and ID
69
+ const jobData = job.data;
70
+ const jobId = job.id ||
71
+ `job-${Date.now()}-${Math.random().toString(36).substring(7)}`;
72
+ // Send job to worker via SSE with jobId wrapped in payload
73
+ const jobPayload = typeof jobData === "object" && jobData !== null
74
+ ? { payload: jobData, jobId: jobId }
75
+ : { payload: { data: jobData }, jobId: jobId };
76
+ const sent = this.connectionManager.sendSSE(connection.writer, "job", jobPayload);
77
+ if (!sent) {
78
+ logger.warn(`SSE write failed for job ${jobId} to ${deploymentName}, will retry`);
79
+ throw new Error("SSE write failed - worker connection may be dead");
80
+ }
81
+ this.connectionManager.touchConnection(deploymentName);
82
+ // Wait for delivery receipt from worker. If the SSE connection is stale
83
+ // (container dead but TCP not yet closed), the worker will never ack and
84
+ // BullMQ will retry the job after the timeout.
85
+ await this.awaitDeliveryReceipt(jobId, deploymentName);
86
+ }
87
+ /**
88
+ * Wait for the worker to acknowledge receipt of a job.
89
+ * Rejects after timeout so BullMQ retries the job.
90
+ */
91
+ awaitDeliveryReceipt(jobId, deploymentName) {
92
+ return new Promise((resolve, reject) => {
93
+ const timeout = setTimeout(() => {
94
+ this.pendingJobs.delete(jobId);
95
+ logger.warn(`Job ${jobId} delivery receipt timeout - worker ${deploymentName} may be dead`);
96
+ reject(new Error(`Delivery receipt timeout for job ${jobId} - worker may be dead`));
97
+ }, 5000); // 5 second timeout for delivery receipt
98
+ this.pendingJobs.set(jobId, {
99
+ resolve: () => {
100
+ clearTimeout(timeout);
101
+ resolve();
102
+ },
103
+ reject: (err) => {
104
+ clearTimeout(timeout);
105
+ reject(err);
106
+ },
107
+ timeout,
108
+ jobId,
109
+ });
110
+ });
111
+ }
112
+ /**
113
+ * Acknowledge job completion from worker
114
+ * Called when worker sends HTTP response
115
+ */
116
+ acknowledgeJob(jobId) {
117
+ const pendingJob = this.pendingJobs.get(jobId);
118
+ if (pendingJob) {
119
+ clearTimeout(pendingJob.timeout);
120
+ pendingJob.resolve(undefined);
121
+ this.pendingJobs.delete(jobId);
122
+ logger.debug(`Job ${jobId} acknowledged`);
123
+ }
124
+ else {
125
+ logger.warn(`Received acknowledgment for unknown job ${jobId}`);
126
+ }
127
+ }
128
+ /**
129
+ * Get number of pending jobs
130
+ */
131
+ getPendingJobCount() {
132
+ return this.pendingJobs.size;
133
+ }
134
+ /**
135
+ * Shutdown job router
136
+ */
137
+ shutdown() {
138
+ // Reject all pending jobs
139
+ for (const [jobId, pendingJob] of this.pendingJobs.entries()) {
140
+ clearTimeout(pendingJob.timeout);
141
+ pendingJob.reject(new Error("Job router shutting down"));
142
+ logger.debug(`Rejected pending job ${jobId} due to shutdown`);
143
+ }
144
+ this.pendingJobs.clear();
145
+ }
146
+ }
147
+ exports.WorkerJobRouter = WorkerJobRouter;
148
+ //# sourceMappingURL=job-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-router.js","sourceRoot":"","sources":["../../src/gateway/job-router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env bun
2
+ import { type AgentAccessStore, type AgentConfigStore, type AgentConnectionStore, type SystemSkillEntry } from "@lobu/core";
3
+ import type { GatewayConfig } from "./config";
4
+ import { type PlatformAdapter } from "./platform";
5
+ import { UnifiedThreadResponseConsumer } from "./platform/unified-thread-consumer";
6
+ import { CoreServices } from "./services/core-services";
7
+ /**
8
+ * Main Gateway class that orchestrates all platform adapters
9
+ *
10
+ * Architecture:
11
+ * - CoreServices: Platform-agnostic services (Redis, MCP, Anthropic)
12
+ * - PlatformAdapters: Platform-specific integrations (Slack, Discord, etc.)
13
+ *
14
+ * Lifecycle:
15
+ * 1. Gateway initializes CoreServices
16
+ * 2. Platforms register themselves via registerPlatform()
17
+ * 3. Gateway calls initialize() on each platform with CoreServices
18
+ * 4. Gateway calls start() on each platform
19
+ */
20
+ export interface GatewayOptions {
21
+ /** Agent settings + metadata store. Defaults to InMemoryAgentStore. */
22
+ configStore?: AgentConfigStore;
23
+ /** Connections + channel bindings store. Defaults to InMemoryAgentStore. */
24
+ connectionStore?: AgentConnectionStore;
25
+ /** Grants + user-agent associations store. Defaults to InMemoryAgentStore. */
26
+ accessStore?: AgentAccessStore;
27
+ /** Provide system skills programmatically (skips file loading). */
28
+ systemSkills?: SystemSkillEntry[];
29
+ }
30
+ export declare class Gateway {
31
+ private readonly config;
32
+ private coreServices;
33
+ private platforms;
34
+ private unifiedConsumer?;
35
+ private isRunning;
36
+ constructor(config: GatewayConfig, options?: GatewayOptions);
37
+ /**
38
+ * Register a platform adapter
39
+ * Platforms register themselves via dependency injection
40
+ *
41
+ * @param platform - Platform adapter to register
42
+ * @returns This gateway for chaining
43
+ */
44
+ registerPlatform(platform: PlatformAdapter): this;
45
+ /**
46
+ * Start the gateway
47
+ * 1. Initialize core services
48
+ * 2. Initialize all platforms
49
+ * 3. Register instruction providers from platforms
50
+ * 4. Start all platforms
51
+ */
52
+ start(): Promise<void>;
53
+ /**
54
+ * Stop the gateway gracefully
55
+ * 1. Stop unified consumer if running
56
+ * 2. Stop all platforms
57
+ * 3. Shutdown core services
58
+ */
59
+ stop(): Promise<void>;
60
+ /**
61
+ * Get gateway status
62
+ */
63
+ getStatus(): {
64
+ isRunning: boolean;
65
+ platforms: string[];
66
+ config: Partial<GatewayConfig>;
67
+ };
68
+ /**
69
+ * Get core services (for platform adapters during initialization)
70
+ */
71
+ getCoreServices(): CoreServices;
72
+ /**
73
+ * Get platform registry (for routes that need to access platform adapters)
74
+ */
75
+ getPlatformRegistry(): import("./platform").PlatformRegistry;
76
+ /**
77
+ * Get unified thread response consumer (for wiring Chat SDK response bridge)
78
+ */
79
+ getUnifiedConsumer(): UnifiedThreadResponseConsumer | undefined;
80
+ }
81
+ //# sourceMappingURL=gateway-main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-main.d.ts","sourceRoot":"","sources":["../src/gateway-main.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAEzB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIxD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,4EAA4E;IAC5E,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,8EAA8E;IAC9E,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,mEAAmE;IACnE,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACnC;AAED,qBAAa,OAAO;IAOhB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,SAAS,CAAS;gBAGP,MAAM,EAAE,aAAa,EACtC,OAAO,CAAC,EAAE,cAAc;IAU1B;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAYjD;;;;;;OAMG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0C5B;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B3B;;OAEG;IACH,SAAS,IAAI;QACX,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;KAChC;IAUD;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,mBAAmB;IAInB;;OAEG;IACH,kBAAkB;CAGnB"}
@@ -0,0 +1,143 @@
1
+ #!/usr/bin/env bun
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Gateway = void 0;
5
+ const core_1 = require("@lobu/core");
6
+ const platform_1 = require("./platform");
7
+ const unified_thread_consumer_1 = require("./platform/unified-thread-consumer");
8
+ const core_services_1 = require("./services/core-services");
9
+ const logger = (0, core_1.createLogger)("gateway");
10
+ class Gateway {
11
+ constructor(config, options) {
12
+ this.config = config;
13
+ this.platforms = new Map();
14
+ this.isRunning = false;
15
+ this.coreServices = new core_services_1.CoreServices(config, {
16
+ configStore: options === null || options === void 0 ? void 0 : options.configStore,
17
+ connectionStore: options === null || options === void 0 ? void 0 : options.connectionStore,
18
+ accessStore: options === null || options === void 0 ? void 0 : options.accessStore,
19
+ systemSkills: options === null || options === void 0 ? void 0 : options.systemSkills,
20
+ });
21
+ }
22
+ /**
23
+ * Register a platform adapter
24
+ * Platforms register themselves via dependency injection
25
+ *
26
+ * @param platform - Platform adapter to register
27
+ * @returns This gateway for chaining
28
+ */
29
+ registerPlatform(platform) {
30
+ if (this.platforms.has(platform.name)) {
31
+ throw new Error(`Platform ${platform.name} is already registered`);
32
+ }
33
+ this.platforms.set(platform.name, platform);
34
+ // Also register in global platform registry for deployment managers
35
+ platform_1.platformRegistry.register(platform);
36
+ logger.debug(`Platform registered: ${platform.name}`);
37
+ return this;
38
+ }
39
+ /**
40
+ * Start the gateway
41
+ * 1. Initialize core services
42
+ * 2. Initialize all platforms
43
+ * 3. Register instruction providers from platforms
44
+ * 4. Start all platforms
45
+ */
46
+ async start() {
47
+ logger.debug("Starting gateway...");
48
+ // 1. Initialize core services (Redis, MCP, Anthropic, etc.)
49
+ await this.coreServices.initialize();
50
+ // 2. Initialize each platform with core services
51
+ for (const [name, platform] of this.platforms) {
52
+ logger.debug(`Initializing platform: ${name}`);
53
+ await platform.initialize(this.coreServices);
54
+ }
55
+ // 3. Register instruction providers from platforms
56
+ const instructionService = this.coreServices.getInstructionService();
57
+ if (instructionService) {
58
+ for (const [name, platform] of this.platforms) {
59
+ if (platform.getInstructionProvider) {
60
+ const provider = platform.getInstructionProvider();
61
+ if (provider) {
62
+ instructionService.registerPlatformProvider(name, provider);
63
+ }
64
+ }
65
+ }
66
+ }
67
+ // 4. Start all platforms
68
+ for (const [name, platform] of this.platforms) {
69
+ logger.debug(`Starting platform: ${name}`);
70
+ await platform.start();
71
+ }
72
+ // 5. Start unified thread response consumer
73
+ // Single consumer routes responses to platforms via registry
74
+ this.unifiedConsumer = new unified_thread_consumer_1.UnifiedThreadResponseConsumer(this.coreServices.getQueue(), platform_1.platformRegistry);
75
+ await this.unifiedConsumer.start();
76
+ this.isRunning = true;
77
+ }
78
+ /**
79
+ * Stop the gateway gracefully
80
+ * 1. Stop unified consumer if running
81
+ * 2. Stop all platforms
82
+ * 3. Shutdown core services
83
+ */
84
+ async stop() {
85
+ logger.info("Stopping gateway...");
86
+ // Stop unified consumer if running
87
+ if (this.unifiedConsumer) {
88
+ logger.info("Stopping unified thread response consumer");
89
+ try {
90
+ await this.unifiedConsumer.stop();
91
+ }
92
+ catch (error) {
93
+ logger.error("Failed to stop unified consumer:", error);
94
+ }
95
+ }
96
+ // Stop all platforms
97
+ for (const [name, platform] of this.platforms) {
98
+ logger.info(`Stopping platform: ${name}`);
99
+ try {
100
+ await platform.stop();
101
+ }
102
+ catch (error) {
103
+ logger.error(`Failed to stop platform ${name}:`, error);
104
+ }
105
+ }
106
+ // Shutdown core services
107
+ await this.coreServices.shutdown();
108
+ this.isRunning = false;
109
+ logger.info("✅ Gateway stopped");
110
+ }
111
+ /**
112
+ * Get gateway status
113
+ */
114
+ getStatus() {
115
+ return {
116
+ isRunning: this.isRunning,
117
+ platforms: Array.from(this.platforms.keys()),
118
+ config: {
119
+ queues: this.config.queues,
120
+ },
121
+ };
122
+ }
123
+ /**
124
+ * Get core services (for platform adapters during initialization)
125
+ */
126
+ getCoreServices() {
127
+ return this.coreServices;
128
+ }
129
+ /**
130
+ * Get platform registry (for routes that need to access platform adapters)
131
+ */
132
+ getPlatformRegistry() {
133
+ return platform_1.platformRegistry;
134
+ }
135
+ /**
136
+ * Get unified thread response consumer (for wiring Chat SDK response bridge)
137
+ */
138
+ getUnifiedConsumer() {
139
+ return this.unifiedConsumer;
140
+ }
141
+ }
142
+ exports.Gateway = Gateway;
143
+ //# sourceMappingURL=gateway-main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-main.js","sourceRoot":"","sources":["../src/gateway-main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env bun
2
+ /**
3
+ * Main entry point for Lobu Gateway
4
+ *
5
+ * When run directly (CLI mode): starts the gateway server.
6
+ * When imported as a library (embedded mode): exports Gateway, config builders,
7
+ * and the Hono app factory for mounting on a host server.
8
+ */
9
+ export { Lobu, type LobuAgentConfig, type LobuConfig } from "./lobu";
10
+ export { createGatewayApp, startGatewayServer } from "./cli/gateway";
11
+ export { type AgentConfig, buildGatewayConfig, type GatewayConfig, } from "./config";
12
+ export { Gateway, type GatewayOptions } from "./gateway-main";
13
+ export { CoreServices } from "./services/core-services";
14
+ export { InMemoryAgentStore } from "./stores/in-memory-agent-store";
15
+ export type { AgentAccessStore, AgentConfigStore, AgentConnectionStore, AgentMetadata, AgentSettings, AgentStore, } from "@lobu/core";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAIH,OAAO,EAAE,IAAI,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAIrE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EACL,KAAK,WAAW,EAChB,kBAAkB,EAClB,KAAK,aAAa,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIpE,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,UAAU,GACX,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env bun
2
+ "use strict";
3
+ /**
4
+ * Main entry point for Lobu Gateway
5
+ *
6
+ * When run directly (CLI mode): starts the gateway server.
7
+ * When imported as a library (embedded mode): exports Gateway, config builders,
8
+ * and the Hono app factory for mounting on a host server.
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.InMemoryAgentStore = exports.CoreServices = exports.Gateway = exports.buildGatewayConfig = exports.startGatewayServer = exports.createGatewayApp = exports.Lobu = void 0;
45
+ // ── Primary API ─────────────────────────────────────────────────────────────
46
+ var lobu_1 = require("./lobu");
47
+ Object.defineProperty(exports, "Lobu", { enumerable: true, get: function () { return lobu_1.Lobu; } });
48
+ // ── Advanced (for custom setups) ────────────────────────────────────────────
49
+ var gateway_1 = require("./cli/gateway");
50
+ Object.defineProperty(exports, "createGatewayApp", { enumerable: true, get: function () { return gateway_1.createGatewayApp; } });
51
+ Object.defineProperty(exports, "startGatewayServer", { enumerable: true, get: function () { return gateway_1.startGatewayServer; } });
52
+ var config_1 = require("./config");
53
+ Object.defineProperty(exports, "buildGatewayConfig", { enumerable: true, get: function () { return config_1.buildGatewayConfig; } });
54
+ var gateway_main_1 = require("./gateway-main");
55
+ Object.defineProperty(exports, "Gateway", { enumerable: true, get: function () { return gateway_main_1.Gateway; } });
56
+ var core_services_1 = require("./services/core-services");
57
+ Object.defineProperty(exports, "CoreServices", { enumerable: true, get: function () { return core_services_1.CoreServices; } });
58
+ var in_memory_agent_store_1 = require("./stores/in-memory-agent-store");
59
+ Object.defineProperty(exports, "InMemoryAgentStore", { enumerable: true, get: function () { return in_memory_agent_store_1.InMemoryAgentStore; } });
60
+ // ── CLI mode (run directly, not when imported as library) ───────────────────
61
+ if (require.main === module) {
62
+ Promise.resolve().then(() => __importStar(require("./cli")));
63
+ }
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+EAA+E;AAE/E,+BAAqE;AAA5D,4FAAA,IAAI,OAAA;AAEb,+EAA+E;AAE/E,yCAAqE;AAA5D,2GAAA,gBAAgB,OAAA;AAAE,6GAAA,kBAAkB,OAAA;AAC7C,mCAIkB;AAFhB,4GAAA,kBAAkB,OAAA;AAGpB,+CAA8D;AAArD,uGAAA,OAAO,OAAA;AAChB,0DAAwD;AAA/C,6GAAA,YAAY,OAAA;AACrB,wEAAoE;AAA3D,2HAAA,kBAAkB,OAAA;AAa3B,+EAA+E;AAC/E,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,kDAAO,OAAO,IAAE;AAClB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Queue infrastructure
3
+ * Redis-based message queue using BullMQ
4
+ */
5
+ export { QueueProducer } from "./queue-producer";
6
+ export { RedisQueue, type RedisQueueConfig } from "./redis-queue";
7
+ export type { IMessageQueue, QueueJob, ThreadResponsePayload, } from "./types";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/queue/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,YAAY,EACV,aAAa,EACb,QAAQ,EACR,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ /**
3
+ * Queue infrastructure
4
+ * Redis-based message queue using BullMQ
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.RedisQueue = exports.QueueProducer = void 0;
8
+ var queue_producer_1 = require("./queue-producer");
9
+ Object.defineProperty(exports, "QueueProducer", { enumerable: true, get: function () { return queue_producer_1.QueueProducer; } });
10
+ var redis_queue_1 = require("./redis-queue");
11
+ Object.defineProperty(exports, "RedisQueue", { enumerable: true, get: function () { return redis_queue_1.RedisQueue; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/queue/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,6CAAkE;AAAzD,yGAAA,UAAU,OAAA"}
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env bun
2
+ import { type AgentMcpConfig, type NetworkConfig, type NixConfig } from "@lobu/core";
3
+ import type { IMessageQueue } from "./types";
4
+ /**
5
+ * Job type for queue messages
6
+ * - message: Standard agent message execution
7
+ * - exec: Direct command execution in sandbox
8
+ */
9
+ export type JobType = "message" | "exec";
10
+ /**
11
+ * Universal message payload for all queue stages
12
+ * Used by: Slack events → Queue → Message Consumer → Job Router → Worker
13
+ */
14
+ export interface MessagePayload {
15
+ userId: string;
16
+ conversationId: string;
17
+ messageId: string;
18
+ channelId: string;
19
+ teamId: string;
20
+ agentId: string;
21
+ botId: string;
22
+ platform: string;
23
+ messageText: string;
24
+ platformMetadata: Record<string, any>;
25
+ agentOptions: Record<string, any>;
26
+ networkConfig?: NetworkConfig;
27
+ mcpConfig?: AgentMcpConfig;
28
+ nixConfig?: NixConfig;
29
+ jobType?: JobType;
30
+ execId?: string;
31
+ execCommand?: string;
32
+ execCwd?: string;
33
+ execEnv?: Record<string, string>;
34
+ execTimeout?: number;
35
+ }
36
+ /**
37
+ * Queue producer for dispatching messages to Redis queues
38
+ * Handles both direct_message and thread_message queues with bot isolation
39
+ */
40
+ export declare class QueueProducer {
41
+ private queue;
42
+ private isInitialized;
43
+ constructor(queue: IMessageQueue);
44
+ /**
45
+ * Initialize the queue producer
46
+ * Creates required queues
47
+ */
48
+ start(): Promise<void>;
49
+ /**
50
+ * Stop the queue producer (no-op since queue lifecycle is managed externally)
51
+ */
52
+ stop(): Promise<void>;
53
+ /**
54
+ * Enqueue any message (direct or thread) to the single 'messages' queue
55
+ * Orchestrator will determine if it needs to create a deployment or route to existing thread
56
+ */
57
+ enqueueMessage(payload: MessagePayload, options?: {
58
+ priority?: number;
59
+ retryLimit?: number;
60
+ retryDelay?: number;
61
+ expireInSeconds?: number;
62
+ }): Promise<string>;
63
+ /**
64
+ * Check if producer is initialized
65
+ */
66
+ isHealthy(): boolean;
67
+ }
68
+ //# sourceMappingURL=queue-producer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-producer.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/queue/queue-producer.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,cAAc;IAE7B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAGhB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IAGjB,WAAW,EAAE,MAAM,CAAC;IAGpB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAGtC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAGlC,aAAa,CAAC,EAAE,aAAa,CAAC;IAG9B,SAAS,CAAC,EAAE,cAAc,CAAC;IAG3B,SAAS,CAAC,EAAE,SAAS,CAAC;IAGtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,aAAa,CAAS;gBAElB,KAAK,EAAE,aAAa;IAIhC;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B;;;OAGG;IACG,cAAc,CAClB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GACA,OAAO,CAAC,MAAM,CAAC;IA4BlB;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB"}
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env bun
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.QueueProducer = void 0;
5
+ const core_1 = require("@lobu/core");
6
+ const logger = (0, core_1.createLogger)("queue-producer");
7
+ /**
8
+ * Queue producer for dispatching messages to Redis queues
9
+ * Handles both direct_message and thread_message queues with bot isolation
10
+ */
11
+ class QueueProducer {
12
+ constructor(queue) {
13
+ this.isInitialized = false;
14
+ this.queue = queue;
15
+ }
16
+ /**
17
+ * Initialize the queue producer
18
+ * Creates required queues
19
+ */
20
+ async start() {
21
+ try {
22
+ // Create the messages queue if it doesn't exist
23
+ await this.queue.createQueue("messages");
24
+ this.isInitialized = true;
25
+ logger.debug("Queue producer initialized");
26
+ }
27
+ catch (error) {
28
+ logger.error("Failed to initialize queue producer:", error);
29
+ throw error;
30
+ }
31
+ }
32
+ /**
33
+ * Stop the queue producer (no-op since queue lifecycle is managed externally)
34
+ */
35
+ async stop() {
36
+ this.isInitialized = false;
37
+ logger.debug("Queue producer stopped");
38
+ }
39
+ /**
40
+ * Enqueue any message (direct or thread) to the single 'messages' queue
41
+ * Orchestrator will determine if it needs to create a deployment or route to existing thread
42
+ */
43
+ async enqueueMessage(payload, options) {
44
+ if (!this.isInitialized) {
45
+ throw new Error("Queue producer is not initialized");
46
+ }
47
+ try {
48
+ // All messages go to the single 'messages' queue
49
+ const jobId = await this.queue.send("messages", payload, {
50
+ priority: (options === null || options === void 0 ? void 0 : options.priority) || 0,
51
+ retryLimit: (options === null || options === void 0 ? void 0 : options.retryLimit) || 3,
52
+ retryDelay: (options === null || options === void 0 ? void 0 : options.retryDelay) || 30,
53
+ expireInSeconds: (options === null || options === void 0 ? void 0 : options.expireInSeconds) || 300, // 5 minutes = 300 seconds
54
+ singletonKey: `message-${payload.platform}-${payload.channelId}-${payload.conversationId}-${String(payload.messageId || Date.now()).replace(/:/g, "-")}`, // Prevent duplicates within canonical conversation identity
55
+ });
56
+ logger.info(`Enqueued message job ${jobId} for user ${payload.userId}, conversation ${payload.conversationId}`);
57
+ return jobId || "job-sent";
58
+ }
59
+ catch (error) {
60
+ logger.error(`Failed to enqueue message for user ${payload.userId}:`, error);
61
+ throw error;
62
+ }
63
+ }
64
+ /**
65
+ * Check if producer is initialized
66
+ */
67
+ isHealthy() {
68
+ return this.isInitialized && this.queue.isHealthy();
69
+ }
70
+ }
71
+ exports.QueueProducer = QueueProducer;
72
+ //# sourceMappingURL=queue-producer.js.map