@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,464 @@
1
+ "use strict";
2
+ /**
3
+ * Connection routes + webhook endpoint.
4
+ *
5
+ * Webhook: POST /api/v1/webhooks/:connectionId
6
+ * Read-only (auth: settings session cookie):
7
+ * GET /api/v1/connections
8
+ * GET /api/v1/connections/:id
9
+ * GET /api/v1/connections/:id/sandboxes
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createConnectionWebhookRoutes = createConnectionWebhookRoutes;
13
+ exports.createConnectionCrudRoutes = createConnectionCrudRoutes;
14
+ const zod_openapi_1 = require("@hono/zod-openapi");
15
+ const core_1 = require("@lobu/core");
16
+ const hono_1 = require("hono");
17
+ const agent_access_1 = require("./agent-access");
18
+ const settings_auth_1 = require("./settings-auth");
19
+ const logger = (0, core_1.createLogger)("connection-routes");
20
+ const TAG = "Connections";
21
+ const ErrorResponseSchema = zod_openapi_1.z.object({ error: zod_openapi_1.z.string() });
22
+ const FlexibleObjectSchema = zod_openapi_1.z.record(zod_openapi_1.z.string(), zod_openapi_1.z.unknown());
23
+ const UserConfigScopeSchema = zod_openapi_1.z.enum([
24
+ "model",
25
+ "view-model",
26
+ "system-prompt",
27
+ "skills",
28
+ "schedules",
29
+ "permissions",
30
+ "packages",
31
+ ]);
32
+ const ConnectionSettingsSchema = zod_openapi_1.z.object({
33
+ allowFrom: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional().openapi({
34
+ description: "User IDs allowed to interact with this connection. Omit to allow all; empty array blocks all.",
35
+ }),
36
+ allowGroups: zod_openapi_1.z.boolean().optional().openapi({
37
+ description: "Whether group messages are allowed (default true).",
38
+ }),
39
+ userConfigScopes: zod_openapi_1.z.array(UserConfigScopeSchema).optional().openapi({
40
+ description: "Scopes that end users are allowed to customize. Empty = no restrictions.",
41
+ }),
42
+ });
43
+ const LOCAL_TEST_PLATFORMS = ["slack", "telegram", "whatsapp"];
44
+ async function getLocalTestDefaultTarget(manager, connectionId) {
45
+ const redis = manager.getServices().getQueue().getRedisClient();
46
+ const prefix = `chat:history:${connectionId}:`;
47
+ let cursor = "0";
48
+ do {
49
+ const [nextCursor, keys] = await redis.scan(cursor, "MATCH", `${prefix}*`, "COUNT", 20);
50
+ cursor = nextCursor;
51
+ const match = keys[0];
52
+ if (match) {
53
+ return match.slice(prefix.length);
54
+ }
55
+ } while (cursor !== "0");
56
+ return undefined;
57
+ }
58
+ // --- Per-platform config Zod schemas (with OpenAPI annotations + platform discriminator) ---
59
+ // Field definitions mirror @lobu/core platform schemas; gateway adds .openapi()
60
+ // and the `platform` literal discriminator for the API layer.
61
+ const TelegramConfigSchema = zod_openapi_1.z.object({
62
+ platform: zod_openapi_1.z.literal("telegram"),
63
+ botToken: zod_openapi_1.z.string().optional().openapi({
64
+ description: "Telegram bot token from BotFather. Falls back to TELEGRAM_BOT_TOKEN env var.",
65
+ }),
66
+ mode: zod_openapi_1.z.enum(["auto", "webhook", "polling"]).optional().openapi({
67
+ description: "Runtime mode: auto (default), webhook, or polling.",
68
+ }),
69
+ secretToken: zod_openapi_1.z.string().optional().openapi({
70
+ description: "Webhook secret token for x-telegram-bot-api-secret-token verification.",
71
+ }),
72
+ userName: zod_openapi_1.z
73
+ .string()
74
+ .optional()
75
+ .openapi({ description: "Override bot username." }),
76
+ apiBaseUrl: zod_openapi_1.z
77
+ .string()
78
+ .optional()
79
+ .openapi({ description: "Custom Telegram API base URL." }),
80
+ });
81
+ const SlackConfigSchema = zod_openapi_1.z.object({
82
+ platform: zod_openapi_1.z.literal("slack"),
83
+ botToken: zod_openapi_1.z.string().optional().openapi({
84
+ description: "Bot token (xoxb-...). Required for single-workspace mode.",
85
+ }),
86
+ botUserId: zod_openapi_1.z.string().optional().openapi({
87
+ description: "Bot user ID (fetched automatically if omitted).",
88
+ }),
89
+ signingSecret: zod_openapi_1.z
90
+ .string()
91
+ .optional()
92
+ .openapi({ description: "Signing secret for webhook verification." }),
93
+ clientId: zod_openapi_1.z.string().optional().openapi({
94
+ description: "Slack app client ID (required for OAuth / multi-workspace).",
95
+ }),
96
+ clientSecret: zod_openapi_1.z.string().optional().openapi({
97
+ description: "Slack app client secret (required for OAuth / multi-workspace).",
98
+ }),
99
+ encryptionKey: zod_openapi_1.z.string().optional().openapi({
100
+ description: "Base64-encoded 32-byte AES-256-GCM key for encrypting stored bot tokens.",
101
+ }),
102
+ installationKeyPrefix: zod_openapi_1.z.string().optional().openapi({
103
+ description: "State key prefix for workspace installations (default: slack:installation).",
104
+ }),
105
+ userName: zod_openapi_1.z
106
+ .string()
107
+ .optional()
108
+ .openapi({ description: "Override bot username." }),
109
+ });
110
+ const DiscordConfigSchema = zod_openapi_1.z.object({
111
+ platform: zod_openapi_1.z.literal("discord"),
112
+ botToken: zod_openapi_1.z
113
+ .string()
114
+ .optional()
115
+ .openapi({ description: "Discord bot token." }),
116
+ applicationId: zod_openapi_1.z
117
+ .string()
118
+ .optional()
119
+ .openapi({ description: "Discord application ID." }),
120
+ publicKey: zod_openapi_1.z.string().optional().openapi({
121
+ description: "Application public key for webhook signature verification.",
122
+ }),
123
+ mentionRoleIds: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional().openapi({
124
+ description: "Role IDs that trigger mention handlers (in addition to direct mentions).",
125
+ }),
126
+ userName: zod_openapi_1.z
127
+ .string()
128
+ .optional()
129
+ .openapi({ description: "Override bot username." }),
130
+ });
131
+ const WhatsAppConfigSchema = zod_openapi_1.z.object({
132
+ platform: zod_openapi_1.z.literal("whatsapp"),
133
+ accessToken: zod_openapi_1.z.string().optional().openapi({
134
+ description: "System User access token for WhatsApp Cloud API.",
135
+ }),
136
+ phoneNumberId: zod_openapi_1.z
137
+ .string()
138
+ .optional()
139
+ .openapi({ description: "WhatsApp Business phone number ID." }),
140
+ appSecret: zod_openapi_1.z.string().optional().openapi({
141
+ description: "Meta App Secret for webhook HMAC-SHA256 signature verification.",
142
+ }),
143
+ verifyToken: zod_openapi_1.z
144
+ .string()
145
+ .optional()
146
+ .openapi({ description: "Verify token for webhook challenge-response." }),
147
+ apiVersion: zod_openapi_1.z
148
+ .string()
149
+ .optional()
150
+ .openapi({ description: "Meta Graph API version (default: v21.0)." }),
151
+ userName: zod_openapi_1.z.string().optional().openapi({ description: "Bot display name." }),
152
+ });
153
+ const TeamsConfigSchema = zod_openapi_1.z.object({
154
+ platform: zod_openapi_1.z.literal("teams"),
155
+ appId: zod_openapi_1.z.string().optional().openapi({ description: "Microsoft App ID." }),
156
+ appPassword: zod_openapi_1.z
157
+ .string()
158
+ .optional()
159
+ .openapi({ description: "Microsoft App Password." }),
160
+ appTenantId: zod_openapi_1.z
161
+ .string()
162
+ .optional()
163
+ .openapi({ description: "Microsoft App Tenant ID." }),
164
+ appType: zod_openapi_1.z
165
+ .enum(["MultiTenant", "SingleTenant"])
166
+ .optional()
167
+ .openapi({ description: "Microsoft App Type." }),
168
+ userName: zod_openapi_1.z
169
+ .string()
170
+ .optional()
171
+ .openapi({ description: "Override bot username." }),
172
+ });
173
+ const GoogleChatConfigSchema = zod_openapi_1.z.object({
174
+ platform: zod_openapi_1.z.literal("gchat"),
175
+ credentials: zod_openapi_1.z.string().optional().openapi({
176
+ description: "Service account credentials JSON string. Defaults to GOOGLE_CHAT_CREDENTIALS env var.",
177
+ }),
178
+ useApplicationDefaultCredentials: zod_openapi_1.z.boolean().optional().openapi({
179
+ description: "Use Application Default Credentials (ADC) instead of service account JSON.",
180
+ }),
181
+ endpointUrl: zod_openapi_1.z.string().optional().openapi({
182
+ description: "HTTP endpoint URL for button click actions. Required for HTTP endpoint apps.",
183
+ }),
184
+ googleChatProjectNumber: zod_openapi_1.z.string().optional().openapi({
185
+ description: "Google Cloud project number for verifying webhook JWTs. Defaults to GOOGLE_CHAT_PROJECT_NUMBER env var.",
186
+ }),
187
+ impersonateUser: zod_openapi_1.z.string().optional().openapi({
188
+ description: "User email for domain-wide delegation. Defaults to GOOGLE_CHAT_IMPERSONATE_USER env var.",
189
+ }),
190
+ pubsubAudience: zod_openapi_1.z.string().optional().openapi({
191
+ description: "Expected audience for Pub/Sub push JWT verification. Defaults to GOOGLE_CHAT_PUBSUB_AUDIENCE env var.",
192
+ }),
193
+ userName: zod_openapi_1.z
194
+ .string()
195
+ .optional()
196
+ .openapi({ description: "Override bot username." }),
197
+ });
198
+ const PlatformAdapterConfigSchema = zod_openapi_1.z.discriminatedUnion("platform", [
199
+ TelegramConfigSchema,
200
+ SlackConfigSchema,
201
+ DiscordConfigSchema,
202
+ WhatsAppConfigSchema,
203
+ TeamsConfigSchema,
204
+ GoogleChatConfigSchema,
205
+ ]);
206
+ /** Derived from the discriminated union — no separate list to maintain. */
207
+ const SUPPORTED_PLATFORMS = PlatformAdapterConfigSchema.options.map((s) => s.shape.platform.value);
208
+ const SupportedPlatformSchema = zod_openapi_1.z.enum(SUPPORTED_PLATFORMS);
209
+ const PlatformConnectionSchema = zod_openapi_1.z.object({
210
+ id: zod_openapi_1.z.string(),
211
+ platform: SupportedPlatformSchema,
212
+ templateAgentId: zod_openapi_1.z.string().optional(),
213
+ config: PlatformAdapterConfigSchema,
214
+ settings: ConnectionSettingsSchema,
215
+ metadata: FlexibleObjectSchema,
216
+ status: zod_openapi_1.z.enum(["active", "stopped", "error"]),
217
+ errorMessage: zod_openapi_1.z.string().optional(),
218
+ createdAt: zod_openapi_1.z.number(),
219
+ updatedAt: zod_openapi_1.z.number(),
220
+ });
221
+ const ConnectionIdParamsSchema = zod_openapi_1.z.object({
222
+ id: zod_openapi_1.z.string(),
223
+ });
224
+ const ListConnectionsQuerySchema = zod_openapi_1.z.object({
225
+ platform: SupportedPlatformSchema.optional(),
226
+ templateAgentId: zod_openapi_1.z.string().optional(),
227
+ });
228
+ const ListConnectionsRoute = (0, zod_openapi_1.createRoute)({
229
+ method: "get",
230
+ path: "/api/v1/connections",
231
+ tags: [TAG],
232
+ summary: "List platform connections",
233
+ description: "Lists Chat SDK-backed connections visible to the current settings session.",
234
+ request: {
235
+ query: ListConnectionsQuerySchema,
236
+ },
237
+ responses: {
238
+ 200: {
239
+ description: "Connections",
240
+ content: {
241
+ "application/json": {
242
+ schema: zod_openapi_1.z.object({
243
+ connections: zod_openapi_1.z.array(PlatformConnectionSchema),
244
+ }),
245
+ },
246
+ },
247
+ },
248
+ 401: {
249
+ description: "Unauthorized",
250
+ content: {
251
+ "application/json": {
252
+ schema: ErrorResponseSchema,
253
+ },
254
+ },
255
+ },
256
+ 403: {
257
+ description: "Forbidden",
258
+ content: {
259
+ "application/json": {
260
+ schema: ErrorResponseSchema,
261
+ },
262
+ },
263
+ },
264
+ },
265
+ });
266
+ const GetConnectionRoute = (0, zod_openapi_1.createRoute)({
267
+ method: "get",
268
+ path: "/api/v1/connections/{id}",
269
+ tags: [TAG],
270
+ summary: "Get a platform connection",
271
+ request: {
272
+ params: ConnectionIdParamsSchema,
273
+ },
274
+ responses: {
275
+ 200: {
276
+ description: "Connection",
277
+ content: {
278
+ "application/json": {
279
+ schema: PlatformConnectionSchema,
280
+ },
281
+ },
282
+ },
283
+ 401: {
284
+ description: "Unauthorized",
285
+ content: {
286
+ "application/json": {
287
+ schema: ErrorResponseSchema,
288
+ },
289
+ },
290
+ },
291
+ 403: {
292
+ description: "Forbidden",
293
+ content: {
294
+ "application/json": {
295
+ schema: ErrorResponseSchema,
296
+ },
297
+ },
298
+ },
299
+ 404: {
300
+ description: "Connection not found",
301
+ content: {
302
+ "application/json": {
303
+ schema: ErrorResponseSchema,
304
+ },
305
+ },
306
+ },
307
+ },
308
+ });
309
+ function createConnectionWebhookRoutes(manager) {
310
+ const router = new hono_1.Hono();
311
+ router.post("/api/v1/webhooks/:connectionId", async (c) => {
312
+ const connectionId = c.req.param("connectionId");
313
+ if (!connectionId) {
314
+ return c.json({ error: "Missing connectionId" }, 400);
315
+ }
316
+ // Verify connection exists before processing
317
+ const connection = await manager.getConnection(connectionId);
318
+ if (!connection) {
319
+ logger.warn({ connectionId }, "Webhook received for unknown connection");
320
+ return c.json({ error: "Connection not found" }, 404);
321
+ }
322
+ logger.debug({ connectionId, platform: connection.platform }, "Processing webhook");
323
+ try {
324
+ const response = await manager.handleWebhook(connectionId, c.req.raw);
325
+ return response;
326
+ }
327
+ catch (error) {
328
+ logger.error({ connectionId, error: String(error) }, "Webhook error");
329
+ return c.json({ error: "Webhook processing failed" }, 500);
330
+ }
331
+ });
332
+ return router;
333
+ }
334
+ function createConnectionCrudRoutes(manager, accessConfig) {
335
+ const app = new zod_openapi_1.OpenAPIHono();
336
+ const listLocalTestPlatforms = async (c) => {
337
+ if (process.env.NODE_ENV === "production") {
338
+ return c.json({ error: "Not found" }, 404);
339
+ }
340
+ const supported = new Set(LOCAL_TEST_PLATFORMS);
341
+ const connections = await manager.listConnections();
342
+ const platforms = [
343
+ ...new Set(connections
344
+ .filter((connection) => connection.status === "active" &&
345
+ manager.has(connection.id) &&
346
+ supported.has(connection.platform))
347
+ .map((connection) => connection.platform)),
348
+ ];
349
+ return c.json(platforms);
350
+ };
351
+ const listLocalTestTargets = async (c) => {
352
+ if (process.env.NODE_ENV === "production") {
353
+ return c.json({ error: "Not found" }, 404);
354
+ }
355
+ const supported = new Set(LOCAL_TEST_PLATFORMS);
356
+ const connections = await manager.listConnections();
357
+ const targets = new Map();
358
+ for (const connection of connections) {
359
+ if (connection.status !== "active" ||
360
+ !manager.has(connection.id) ||
361
+ !supported.has(connection.platform)) {
362
+ continue;
363
+ }
364
+ if (!targets.has(connection.platform)) {
365
+ targets.set(connection.platform, {
366
+ platform: connection.platform,
367
+ defaultTarget: await getLocalTestDefaultTarget(manager, connection.id),
368
+ });
369
+ }
370
+ }
371
+ return c.json([...targets.values()]);
372
+ };
373
+ app.get("/internal/connections/platforms", listLocalTestPlatforms);
374
+ app.get("/internal/connections/test-targets", listLocalTestTargets);
375
+ // Internal endpoint for server-to-server connection listing (no auth required)
376
+ const listAllConnections = async (c) => {
377
+ const { platform, templateAgentId } = c.req.query();
378
+ const connections = await manager.listConnections({
379
+ platform: platform || undefined,
380
+ templateAgentId: templateAgentId || undefined,
381
+ });
382
+ return c.json({ connections });
383
+ };
384
+ app.get("/internal/connections", listAllConnections);
385
+ app.openapi(ListConnectionsRoute, async (c) => {
386
+ const session = (0, settings_auth_1.verifySettingsSession)(c);
387
+ if (!session) {
388
+ return c.json({ error: "Unauthorized" }, 401);
389
+ }
390
+ const { platform, templateAgentId } = c.req.valid("query");
391
+ let connections;
392
+ if (templateAgentId) {
393
+ if (!(await (0, agent_access_1.verifyAgentAccess)(session, templateAgentId, accessConfig))) {
394
+ return c.json({ error: "Forbidden" }, 403);
395
+ }
396
+ connections = await manager.listConnections({
397
+ platform: platform || undefined,
398
+ templateAgentId,
399
+ });
400
+ }
401
+ else {
402
+ if (!session.isAdmin && session.settingsMode !== "admin") {
403
+ return c.json({ error: "Forbidden" }, 403);
404
+ }
405
+ connections = await manager.listConnections({
406
+ platform: platform || undefined,
407
+ });
408
+ }
409
+ return c.json({ connections });
410
+ });
411
+ app.openapi(GetConnectionRoute, async (c) => {
412
+ const session = (0, settings_auth_1.verifySettingsSession)(c);
413
+ if (!session) {
414
+ return c.json({ error: "Unauthorized" }, 401);
415
+ }
416
+ const { id } = c.req.valid("param");
417
+ const connection = await manager.getConnection(id);
418
+ if (!connection) {
419
+ return c.json({ error: "Connection not found" }, 404);
420
+ }
421
+ if (connection.templateAgentId &&
422
+ !(await (0, agent_access_1.verifyAgentAccess)(session, connection.templateAgentId, accessConfig))) {
423
+ return c.json({ error: "Forbidden" }, 403);
424
+ }
425
+ return c.json(connection);
426
+ });
427
+ // GET /api/v1/connections/:id/sandboxes — list sandbox agents for a connection
428
+ app.get("/api/v1/connections/:id/sandboxes", async (c) => {
429
+ const session = (0, settings_auth_1.verifySettingsSession)(c);
430
+ if (!session) {
431
+ return c.json({ error: "Unauthorized" }, 401);
432
+ }
433
+ const id = c.req.param("id");
434
+ const connection = await manager.getConnection(id);
435
+ if (!connection) {
436
+ return c.json({ error: "Connection not found" }, 404);
437
+ }
438
+ if (connection.templateAgentId &&
439
+ !(await (0, agent_access_1.verifyAgentAccess)(session, connection.templateAgentId, accessConfig))) {
440
+ return c.json({ error: "Forbidden" }, 403);
441
+ }
442
+ if (!connection.templateAgentId &&
443
+ !session.isAdmin &&
444
+ session.settingsMode !== "admin") {
445
+ return c.json({ error: "Forbidden" }, 403);
446
+ }
447
+ const sandboxes = await accessConfig.agentMetadataStore.listSandboxes(id);
448
+ return c.json({
449
+ sandboxes: sandboxes.map((s) => {
450
+ var _a;
451
+ return ({
452
+ agentId: s.agentId,
453
+ name: s.name,
454
+ description: s.description || "",
455
+ owner: s.owner,
456
+ createdAt: s.createdAt,
457
+ lastUsedAt: (_a = s.lastUsedAt) !== null && _a !== void 0 ? _a : null,
458
+ });
459
+ }),
460
+ });
461
+ });
462
+ return app;
463
+ }
464
+ //# sourceMappingURL=connections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../../../src/routes/public/connections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Hono } from "hono";
2
+ export declare function createLandingRoutes(): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
3
+ //# sourceMappingURL=landing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landing.d.ts","sourceRoot":"","sources":["../../../src/routes/public/landing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,wBAAgB,mBAAmB,+EAalC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLandingRoutes = createLandingRoutes;
4
+ const hono_1 = require("hono");
5
+ function createLandingRoutes() {
6
+ const app = new hono_1.Hono();
7
+ app.get("/", (c) => {
8
+ return c.json({
9
+ name: "Lobu Gateway",
10
+ mode: "api-only",
11
+ docs: "/api/docs",
12
+ health: "/health",
13
+ });
14
+ });
15
+ return app;
16
+ }
17
+ //# sourceMappingURL=landing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landing.js","sourceRoot":"","sources":["../../../src/routes/public/landing.ts"],"names":[],"mappings":";;AAEA,kDAaC;AAfD,+BAA4B;AAE5B,SAAgB,mBAAmB;IACjC,MAAM,GAAG,GAAG,IAAI,WAAI,EAAE,CAAC;IAEvB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;QACjB,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * OAuth Utility Routes
3
+ *
4
+ * OAuth code exchange and redirect handling.
5
+ */
6
+ import { OpenAPIHono } from "@hono/zod-openapi";
7
+ import type { ProviderOAuthStateStore } from "../../auth/oauth/state-store";
8
+ export interface ProviderCredentialStore {
9
+ hasCredentials(agentId: string): Promise<boolean>;
10
+ deleteCredentials(agentId: string): Promise<void>;
11
+ setCredentials(agentId: string, credentials: unknown): Promise<void>;
12
+ }
13
+ export interface ProviderOAuthClient {
14
+ generateCodeVerifier(): string;
15
+ buildAuthUrl(state: string, codeVerifier: string): string;
16
+ exchangeCodeForToken(code: string, codeVerifier: string, redirectUri?: string, state?: string): Promise<unknown>;
17
+ }
18
+ export interface OAuthRoutesConfig {
19
+ providerStores?: Record<string, ProviderCredentialStore>;
20
+ oauthClients?: Record<string, ProviderOAuthClient>;
21
+ oauthStateStore?: ProviderOAuthStateStore;
22
+ }
23
+ export declare function createOAuthRoutes(config: OAuthRoutesConfig): OpenAPIHono;
24
+ //# sourceMappingURL=oauth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../src/routes/public/oauth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAe,WAAW,EAAK,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAO5E,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,IAAI,MAAM,CAAC;IAC/B,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1D,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAkCD,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,uBAAuB,CAAC;CAC3C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CA6ExE"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ /**
3
+ * OAuth Utility Routes
4
+ *
5
+ * OAuth code exchange and redirect handling.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.createOAuthRoutes = createOAuthRoutes;
9
+ const zod_openapi_1 = require("@hono/zod-openapi");
10
+ const settings_auth_1 = require("./settings-auth");
11
+ const TAG = "Auth";
12
+ const SuccessResponse = zod_openapi_1.z.object({ success: zod_openapi_1.z.boolean() });
13
+ const ErrorResponse = zod_openapi_1.z.object({ error: zod_openapi_1.z.string() });
14
+ const codeExchangeRoute = (0, zod_openapi_1.createRoute)({
15
+ method: "post",
16
+ path: "/{provider}/code",
17
+ tags: [TAG],
18
+ summary: "Exchange OAuth code for token",
19
+ request: {
20
+ query: zod_openapi_1.z.object({ token: zod_openapi_1.z.string().optional() }),
21
+ params: zod_openapi_1.z.object({ provider: zod_openapi_1.z.string() }),
22
+ body: {
23
+ content: {
24
+ "application/json": {
25
+ schema: zod_openapi_1.z.object({ code: zod_openapi_1.z.string() }),
26
+ },
27
+ },
28
+ },
29
+ },
30
+ responses: {
31
+ 200: {
32
+ description: "Exchanged",
33
+ content: { "application/json": { schema: SuccessResponse } },
34
+ },
35
+ 400: {
36
+ description: "Invalid",
37
+ content: { "application/json": { schema: ErrorResponse } },
38
+ },
39
+ 401: {
40
+ description: "Unauthorized",
41
+ content: { "application/json": { schema: ErrorResponse } },
42
+ },
43
+ },
44
+ });
45
+ function createOAuthRoutes(config) {
46
+ const app = new zod_openapi_1.OpenAPIHono();
47
+ // --- Provider login redirect (excluded from docs) ---
48
+ app.get("/:provider/login", async (c) => {
49
+ var _a;
50
+ const session = (0, settings_auth_1.verifySettingsSessionOrToken)(c);
51
+ const agentId = (session === null || session === void 0 ? void 0 : session.agentId) || c.req.query("agentId");
52
+ if (!agentId)
53
+ return c.json({ error: "Missing agentId" }, 400);
54
+ if (!session) {
55
+ // No session — redirect through settings OAuth to establish one, then return here
56
+ const returnUrl = `${c.req.path}?agentId=${encodeURIComponent(agentId)}`;
57
+ return c.redirect(`/connect/oauth/login?returnUrl=${encodeURIComponent(returnUrl)}`);
58
+ }
59
+ const oauthClient = (_a = config.oauthClients) === null || _a === void 0 ? void 0 : _a[c.req.param("provider")];
60
+ if (!oauthClient)
61
+ return c.json({ error: "Unknown provider" }, 404);
62
+ if (!config.oauthStateStore)
63
+ return c.json({ error: "Not configured" }, 500);
64
+ const codeVerifier = oauthClient.generateCodeVerifier();
65
+ const state = await config.oauthStateStore.create({
66
+ userId: session.userId,
67
+ agentId,
68
+ codeVerifier,
69
+ context: { platform: session.platform, channelId: agentId },
70
+ });
71
+ return c.redirect(oauthClient.buildAuthUrl(state, codeVerifier));
72
+ });
73
+ // --- Provider code exchange ---
74
+ app.openapi(codeExchangeRoute, async (c) => {
75
+ var _a, _b;
76
+ const session = (0, settings_auth_1.verifySettingsSessionOrToken)(c);
77
+ const agentId = session === null || session === void 0 ? void 0 : session.agentId;
78
+ if (!session || !agentId)
79
+ return c.json({ error: "Unauthorized" }, 401);
80
+ const { provider } = c.req.valid("param");
81
+ const oauthClient = (_a = config.oauthClients) === null || _a === void 0 ? void 0 : _a[provider];
82
+ const credentialStore = (_b = config.providerStores) === null || _b === void 0 ? void 0 : _b[provider];
83
+ if (!oauthClient || !credentialStore)
84
+ return c.json({ error: "Unknown provider" }, 404);
85
+ if (!config.oauthStateStore)
86
+ return c.json({ error: "Not configured" }, 500);
87
+ const { code: input } = c.req.valid("json");
88
+ const parts = input.split("#");
89
+ if (parts.length !== 2 || !parts[0] || !parts[1]) {
90
+ return c.json({ error: "Invalid format" }, 400);
91
+ }
92
+ const authCode = parts[0].trim();
93
+ const state = parts[1].trim();
94
+ const stateData = await config.oauthStateStore.consume(state);
95
+ if (!stateData)
96
+ return c.json({ error: "Invalid state" }, 400);
97
+ try {
98
+ const credentials = await oauthClient.exchangeCodeForToken(authCode, stateData.codeVerifier, "https://console.anthropic.com/oauth/code/callback", state);
99
+ await credentialStore.setCredentials(agentId, credentials);
100
+ return c.json({ success: true });
101
+ }
102
+ catch (e) {
103
+ return c.json({ error: e instanceof Error ? e.message : "Exchange failed" }, 400);
104
+ }
105
+ });
106
+ return app;
107
+ }
108
+ //# sourceMappingURL=oauth.js.map