@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,2 @@
1
+ export { ApiPlatform, type ApiPlatformConfig } from "./platform";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiPlatform = void 0;
4
+ var platform_1 = require("./platform");
5
+ Object.defineProperty(exports, "ApiPlatform", { enumerable: true, get: function () { return platform_1.ApiPlatform; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;AAAA,uCAAiE;AAAxD,uGAAA,WAAW,OAAA"}
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env bun
2
+ /**
3
+ * API Platform Adapter
4
+ * Handles direct API access for browser extensions, CLI clients, etc.
5
+ * Does not require external platform integration (no Slack, Discord, etc.)
6
+ */
7
+ import { type InstructionProvider } from "@lobu/core";
8
+ import type { CoreServices, PlatformAdapter } from "../platform";
9
+ import type { ResponseRenderer } from "../platform/response-renderer";
10
+ /**
11
+ * API Platform configuration
12
+ */
13
+ export interface ApiPlatformConfig {
14
+ /** Whether the API platform is enabled */
15
+ enabled?: boolean;
16
+ }
17
+ /**
18
+ * API Platform adapter for direct access via HTTP/SSE
19
+ * This platform doesn't interact with external services like Slack or Discord.
20
+ * Instead, it provides endpoints for:
21
+ * - Creating sessions
22
+ * - Sending messages
23
+ * - Receiving streaming responses via SSE
24
+ * - Handling tool approvals
25
+ */
26
+ export declare class ApiPlatform implements PlatformAdapter {
27
+ readonly name = "api";
28
+ private responseRenderer?;
29
+ private isRunning;
30
+ private services?;
31
+ /**
32
+ * Initialize with core services
33
+ */
34
+ initialize(services: CoreServices): Promise<void>;
35
+ /**
36
+ * Start the platform
37
+ * For API platform, this is mostly a no-op since routes are registered separately
38
+ */
39
+ start(): Promise<void>;
40
+ /**
41
+ * Stop the platform
42
+ */
43
+ stop(): Promise<void>;
44
+ /**
45
+ * Check if platform is healthy
46
+ */
47
+ isHealthy(): boolean;
48
+ /**
49
+ * No custom instruction provider for API platform
50
+ */
51
+ getInstructionProvider(): InstructionProvider | null;
52
+ /**
53
+ * Build deployment metadata
54
+ * For API sessions, we include session ID and source
55
+ */
56
+ buildDeploymentMetadata(conversationId: string, channelId: string, platformMetadata: Record<string, any>): Record<string, string>;
57
+ /**
58
+ * Get the response renderer for routing worker responses
59
+ */
60
+ getResponseRenderer(): ResponseRenderer | undefined;
61
+ /**
62
+ * Suggestions are broadcast via interaction events above
63
+ */
64
+ renderSuggestion(): Promise<void>;
65
+ /**
66
+ * API platform doesn't have thread status indicators
67
+ */
68
+ setThreadStatus(): Promise<void>;
69
+ /**
70
+ * Send a message via API platform
71
+ * Creates or reuses a session and queues the message for processing
72
+ *
73
+ * @param token - Auth token (used to derive userId)
74
+ * @param message - Message content
75
+ * @param options - Routing info (agentId = channelId = conversationId for API)
76
+ */
77
+ sendMessage(token: string, message: string, options: {
78
+ agentId: string;
79
+ channelId: string;
80
+ conversationId: string;
81
+ teamId: string;
82
+ files?: Array<{
83
+ buffer: Buffer;
84
+ filename: string;
85
+ }>;
86
+ }): Promise<{
87
+ messageId: string;
88
+ eventsUrl?: string;
89
+ queued?: boolean;
90
+ }>;
91
+ }
92
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/api/platform.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAGH,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMtE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,gBAAgB,CAAC,CAAsB;IAC/C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAe;IAEhC;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA6EvD;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,sBAAsB,IAAI,mBAAmB,GAAG,IAAI;IAIpD;;;OAGG;IACH,uBAAuB,CACrB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACpC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQzB;;OAEG;IACH,mBAAmB,IAAI,gBAAgB,GAAG,SAAS;IAInD;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC;;;;;;;OAOG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACrD,GACA,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;CAgFH"}
@@ -0,0 +1,236 @@
1
+ #!/usr/bin/env bun
2
+ "use strict";
3
+ /**
4
+ * API Platform Adapter
5
+ * Handles direct API access for browser extensions, CLI clients, etc.
6
+ * Does not require external platform integration (no Slack, Discord, etc.)
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ApiPlatform = void 0;
10
+ const node_crypto_1 = require("node:crypto");
11
+ const core_1 = require("@lobu/core");
12
+ const agent_1 = require("../routes/public/agent");
13
+ const response_renderer_1 = require("./response-renderer");
14
+ const logger = (0, core_1.createLogger)("api-platform");
15
+ /**
16
+ * API Platform adapter for direct access via HTTP/SSE
17
+ * This platform doesn't interact with external services like Slack or Discord.
18
+ * Instead, it provides endpoints for:
19
+ * - Creating sessions
20
+ * - Sending messages
21
+ * - Receiving streaming responses via SSE
22
+ * - Handling tool approvals
23
+ */
24
+ class ApiPlatform {
25
+ constructor() {
26
+ this.name = "api";
27
+ this.isRunning = false;
28
+ }
29
+ /**
30
+ * Initialize with core services
31
+ */
32
+ async initialize(services) {
33
+ logger.debug("Initializing API platform...");
34
+ this.services = services;
35
+ // Create response renderer for routing worker responses to SSE clients
36
+ this.responseRenderer = new response_renderer_1.ApiResponseRenderer();
37
+ // Subscribe to interaction events to broadcast to SSE clients
38
+ const interactionService = services.getInteractionService();
39
+ interactionService.on("question:created", (event) => {
40
+ if (event.teamId !== "api")
41
+ return;
42
+ (0, agent_1.broadcastToAgent)(event.conversationId, "question", {
43
+ type: "question",
44
+ questionId: event.id,
45
+ question: event.question,
46
+ options: event.options,
47
+ timestamp: Date.now(),
48
+ });
49
+ });
50
+ interactionService.on("link-button:created", (event) => {
51
+ if (event.platform !== "api")
52
+ return;
53
+ (0, agent_1.broadcastToAgent)(event.conversationId, "link-button", {
54
+ type: "link-button",
55
+ url: event.url,
56
+ label: event.label,
57
+ linkType: event.linkType,
58
+ timestamp: Date.now(),
59
+ });
60
+ });
61
+ interactionService.on("grant:requested", (event) => {
62
+ if (event.teamId !== "api")
63
+ return;
64
+ (0, agent_1.broadcastToAgent)(event.conversationId, "grant-request", {
65
+ type: "grant-request",
66
+ requestId: event.id,
67
+ domains: event.domains,
68
+ reason: event.reason,
69
+ timestamp: Date.now(),
70
+ });
71
+ });
72
+ interactionService.on("package:requested", (event) => {
73
+ if (event.teamId !== "api")
74
+ return;
75
+ (0, agent_1.broadcastToAgent)(event.conversationId, "package-request", {
76
+ type: "package-request",
77
+ requestId: event.id,
78
+ packages: event.packages,
79
+ reason: event.reason,
80
+ timestamp: Date.now(),
81
+ });
82
+ });
83
+ interactionService.on("config:requested", (event) => {
84
+ if (event.teamId !== "api")
85
+ return;
86
+ (0, agent_1.broadcastToAgent)(event.conversationId, "config-request", {
87
+ type: "config-request",
88
+ requestId: event.id,
89
+ text: event.text,
90
+ timestamp: Date.now(),
91
+ });
92
+ });
93
+ interactionService.on("suggestion:created", (event) => {
94
+ if (event.teamId !== "api")
95
+ return;
96
+ (0, agent_1.broadcastToAgent)(event.conversationId, "suggestion", {
97
+ type: "suggestion",
98
+ prompts: event.prompts,
99
+ timestamp: Date.now(),
100
+ });
101
+ });
102
+ logger.debug("✅ API platform initialized");
103
+ }
104
+ /**
105
+ * Start the platform
106
+ * For API platform, this is mostly a no-op since routes are registered separately
107
+ */
108
+ async start() {
109
+ this.isRunning = true;
110
+ logger.debug("✅ API platform started");
111
+ }
112
+ /**
113
+ * Stop the platform
114
+ */
115
+ async stop() {
116
+ this.isRunning = false;
117
+ logger.debug("✅ API platform stopped");
118
+ }
119
+ /**
120
+ * Check if platform is healthy
121
+ */
122
+ isHealthy() {
123
+ return this.isRunning;
124
+ }
125
+ /**
126
+ * No custom instruction provider for API platform
127
+ */
128
+ getInstructionProvider() {
129
+ return null;
130
+ }
131
+ /**
132
+ * Build deployment metadata
133
+ * For API sessions, we include session ID and source
134
+ */
135
+ buildDeploymentMetadata(conversationId, channelId, platformMetadata) {
136
+ return {
137
+ sessionId: platformMetadata.sessionId || conversationId,
138
+ source: "direct-api",
139
+ channelId,
140
+ };
141
+ }
142
+ /**
143
+ * Get the response renderer for routing worker responses
144
+ */
145
+ getResponseRenderer() {
146
+ return this.responseRenderer;
147
+ }
148
+ /**
149
+ * Suggestions are broadcast via interaction events above
150
+ */
151
+ async renderSuggestion() {
152
+ /* noop — suggestions broadcast via interaction events */
153
+ }
154
+ /**
155
+ * API platform doesn't have thread status indicators
156
+ */
157
+ async setThreadStatus() {
158
+ // Status is sent via SSE events
159
+ }
160
+ /**
161
+ * Send a message via API platform
162
+ * Creates or reuses a session and queues the message for processing
163
+ *
164
+ * @param token - Auth token (used to derive userId)
165
+ * @param message - Message content
166
+ * @param options - Routing info (agentId = channelId = conversationId for API)
167
+ */
168
+ async sendMessage(token, message, options) {
169
+ if (!this.services) {
170
+ throw new Error("API platform not initialized");
171
+ }
172
+ const { agentId } = options;
173
+ const sessionManager = this.services.getSessionManager();
174
+ const queueProducer = this.services.getQueueProducer();
175
+ const messageId = (0, node_crypto_1.randomUUID)();
176
+ const userId = `api-${token.slice(0, 8) || "anonymous"}`;
177
+ // For API platform: agentId = channelId = conversationId (all same)
178
+ // Try to get existing session or create new one
179
+ let session = await sessionManager.getSession(agentId);
180
+ if (!session) {
181
+ session = {
182
+ conversationId: agentId,
183
+ channelId: agentId,
184
+ userId,
185
+ threadCreator: userId,
186
+ lastActivity: Date.now(),
187
+ createdAt: Date.now(),
188
+ status: "created",
189
+ provider: "claude",
190
+ };
191
+ await sessionManager.setSession(session);
192
+ logger.info(`Created new API session: ${agentId}`);
193
+ }
194
+ if (!session) {
195
+ throw new Error("Session not found after creation");
196
+ }
197
+ // Update session activity
198
+ await sessionManager.touchSession(agentId);
199
+ // Prepare message with file info if provided
200
+ const platformMetadata = {
201
+ agentId,
202
+ source: "messaging-api",
203
+ };
204
+ if (options.files && options.files.length > 0) {
205
+ platformMetadata.fileCount = options.files.length;
206
+ platformMetadata.fileNames = options.files.map((f) => f.filename);
207
+ logger.info(`Message includes ${options.files.length} file(s): ${platformMetadata.fileNames.join(", ")}`);
208
+ }
209
+ // Enqueue message for worker processing
210
+ await queueProducer.enqueueMessage({
211
+ userId,
212
+ conversationId: agentId,
213
+ messageId,
214
+ channelId: agentId,
215
+ teamId: "api",
216
+ agentId: agentId, // agentId is the isolation boundary
217
+ botId: "lobu-api",
218
+ platform: "api",
219
+ messageText: message,
220
+ platformMetadata,
221
+ agentOptions: {
222
+ provider: session.provider || "claude",
223
+ },
224
+ });
225
+ logger.info(`Queued message ${messageId} for agent ${agentId}`);
226
+ const publicUrl = this.services.getPublicGatewayUrl();
227
+ const baseUrl = publicUrl || "http://localhost:8080";
228
+ return {
229
+ messageId,
230
+ eventsUrl: `${baseUrl}/api/v1/agents/${agentId}/events`,
231
+ queued: true,
232
+ };
233
+ }
234
+ }
235
+ exports.ApiPlatform = ApiPlatform;
236
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/api/platform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env bun
2
+ /**
3
+ * API Response Renderer
4
+ * Broadcasts worker responses to SSE connections for direct API clients
5
+ */
6
+ import type { ThreadResponsePayload } from "../infrastructure/queue/types";
7
+ import type { ResponseRenderer } from "../platform/response-renderer";
8
+ /**
9
+ * Response renderer for API platform
10
+ * Broadcasts responses to SSE clients instead of external platforms
11
+ */
12
+ export declare class ApiResponseRenderer implements ResponseRenderer {
13
+ /**
14
+ * Handle streaming delta content
15
+ * Broadcasts delta to SSE connections
16
+ */
17
+ handleDelta(payload: ThreadResponsePayload, _sessionKey: string): Promise<string | null>;
18
+ /**
19
+ * Handle completion of response processing
20
+ * Sends completion event to SSE clients
21
+ */
22
+ handleCompletion(payload: ThreadResponsePayload, _sessionKey: string): Promise<void>;
23
+ /**
24
+ * Handle error response
25
+ * Sends error event to SSE clients
26
+ */
27
+ handleError(payload: ThreadResponsePayload, _sessionKey: string): Promise<void>;
28
+ /**
29
+ * Handle status updates (heartbeat with elapsed time)
30
+ * Sends status event to SSE clients
31
+ */
32
+ handleStatusUpdate(payload: ThreadResponsePayload): Promise<void>;
33
+ /**
34
+ * Handle ephemeral messages
35
+ * For API platform, these are just broadcast as regular events
36
+ */
37
+ handleEphemeral(payload: ThreadResponsePayload): Promise<void>;
38
+ /**
39
+ * Stop stream for conversation - no-op for API platform
40
+ * SSE connections handle their own lifecycle
41
+ */
42
+ stopStreamForConversation(_userId: string, _conversationId: string): Promise<void>;
43
+ }
44
+ //# sourceMappingURL=response-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-renderer.d.ts","sourceRoot":"","sources":["../../src/api/response-renderer.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKtE;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IAC1D;;;OAGG;IACG,WAAW,CACf,OAAO,EAAE,qBAAqB,EAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAwBzB;;;OAGG;IACG,gBAAgB,CACpB,OAAO,EAAE,qBAAqB,EAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAoBhB;;;OAGG;IACG,WAAW,CACf,OAAO,EAAE,qBAAqB,EAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAoBhB;;;OAGG;IACG,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvE;;;OAGG;IACG,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpE;;;OAGG;IACG,yBAAyB,CAC7B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;CAGjB"}
@@ -0,0 +1,123 @@
1
+ #!/usr/bin/env bun
2
+ "use strict";
3
+ /**
4
+ * API Response Renderer
5
+ * Broadcasts worker responses to SSE connections for direct API clients
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ApiResponseRenderer = void 0;
9
+ const core_1 = require("@lobu/core");
10
+ const agent_1 = require("../routes/public/agent");
11
+ const logger = (0, core_1.createLogger)("api-response-renderer");
12
+ /**
13
+ * Response renderer for API platform
14
+ * Broadcasts responses to SSE clients instead of external platforms
15
+ */
16
+ class ApiResponseRenderer {
17
+ /**
18
+ * Handle streaming delta content
19
+ * Broadcasts delta to SSE connections
20
+ */
21
+ async handleDelta(payload, _sessionKey) {
22
+ var _a, _b;
23
+ const sessionId = ((_a = payload.platformMetadata) === null || _a === void 0 ? void 0 : _a.sessionId) || payload.conversationId;
24
+ if (!sessionId) {
25
+ logger.warn("No session ID found in payload for delta broadcast");
26
+ return null;
27
+ }
28
+ // Broadcast delta to SSE clients
29
+ (0, agent_1.broadcastToAgent)(sessionId, "output", {
30
+ type: "delta",
31
+ content: payload.delta,
32
+ timestamp: payload.timestamp || Date.now(),
33
+ messageId: payload.messageId,
34
+ });
35
+ logger.debug(`Broadcast delta to session ${sessionId}: ${((_b = payload.delta) === null || _b === void 0 ? void 0 : _b.length) || 0} chars`);
36
+ return payload.messageId;
37
+ }
38
+ /**
39
+ * Handle completion of response processing
40
+ * Sends completion event to SSE clients
41
+ */
42
+ async handleCompletion(payload, _sessionKey) {
43
+ var _a;
44
+ const sessionId = ((_a = payload.platformMetadata) === null || _a === void 0 ? void 0 : _a.sessionId) || payload.conversationId;
45
+ if (!sessionId) {
46
+ logger.warn("No session ID found in payload for completion broadcast");
47
+ return;
48
+ }
49
+ // Broadcast completion to SSE clients
50
+ (0, agent_1.broadcastToAgent)(sessionId, "complete", {
51
+ type: "complete",
52
+ messageId: payload.messageId,
53
+ processedMessageIds: payload.processedMessageIds,
54
+ timestamp: payload.timestamp || Date.now(),
55
+ });
56
+ logger.info(`Broadcast completion to session ${sessionId}`);
57
+ }
58
+ /**
59
+ * Handle error response
60
+ * Sends error event to SSE clients
61
+ */
62
+ async handleError(payload, _sessionKey) {
63
+ var _a;
64
+ const sessionId = ((_a = payload.platformMetadata) === null || _a === void 0 ? void 0 : _a.sessionId) || payload.conversationId;
65
+ if (!sessionId) {
66
+ logger.warn("No session ID found in payload for error broadcast");
67
+ return;
68
+ }
69
+ // Broadcast error to SSE clients
70
+ (0, agent_1.broadcastToAgent)(sessionId, "error", {
71
+ type: "error",
72
+ error: payload.error,
73
+ messageId: payload.messageId,
74
+ timestamp: payload.timestamp || Date.now(),
75
+ });
76
+ logger.error(`Broadcast error to session ${sessionId}: ${payload.error}`);
77
+ }
78
+ /**
79
+ * Handle status updates (heartbeat with elapsed time)
80
+ * Sends status event to SSE clients
81
+ */
82
+ async handleStatusUpdate(payload) {
83
+ var _a;
84
+ const sessionId = ((_a = payload.platformMetadata) === null || _a === void 0 ? void 0 : _a.sessionId) || payload.conversationId;
85
+ if (!sessionId) {
86
+ return;
87
+ }
88
+ // Broadcast status to SSE clients
89
+ (0, agent_1.broadcastToAgent)(sessionId, "status", {
90
+ type: "status",
91
+ status: payload.statusUpdate,
92
+ messageId: payload.messageId,
93
+ timestamp: payload.timestamp || Date.now(),
94
+ });
95
+ }
96
+ /**
97
+ * Handle ephemeral messages
98
+ * For API platform, these are just broadcast as regular events
99
+ */
100
+ async handleEphemeral(payload) {
101
+ var _a;
102
+ const sessionId = ((_a = payload.platformMetadata) === null || _a === void 0 ? void 0 : _a.sessionId) || payload.conversationId;
103
+ if (!sessionId) {
104
+ return;
105
+ }
106
+ // Broadcast ephemeral content to SSE clients
107
+ (0, agent_1.broadcastToAgent)(sessionId, "ephemeral", {
108
+ type: "ephemeral",
109
+ content: payload.content,
110
+ messageId: payload.messageId,
111
+ timestamp: payload.timestamp || Date.now(),
112
+ });
113
+ }
114
+ /**
115
+ * Stop stream for conversation - no-op for API platform
116
+ * SSE connections handle their own lifecycle
117
+ */
118
+ async stopStreamForConversation(_userId, _conversationId) {
119
+ // No-op - SSE connections manage their own lifecycle
120
+ }
121
+ }
122
+ exports.ApiResponseRenderer = ApiResponseRenderer;
123
+ //# sourceMappingURL=response-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-renderer.js","sourceRoot":"","sources":["../../src/api/response-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { BaseRedisStore } from "@lobu/core";
2
+ import type Redis from "ioredis";
3
+ /**
4
+ * Agent metadata - user-facing info about an agent
5
+ */
6
+ export interface AgentMetadata {
7
+ agentId: string;
8
+ /** User-friendly name (e.g., "Work Agent", "Personal Assistant") */
9
+ name: string;
10
+ description?: string;
11
+ owner: {
12
+ platform: string;
13
+ userId: string;
14
+ };
15
+ /** Whether this is the workspace default agent */
16
+ isWorkspaceAgent?: boolean;
17
+ /** Workspace/team ID for workspace agents */
18
+ workspaceId?: string;
19
+ /** Connection that auto-created this agent (makes it a "sandbox") */
20
+ parentConnectionId?: string;
21
+ createdAt: number;
22
+ lastUsedAt?: number;
23
+ }
24
+ /**
25
+ * Store agent metadata in Redis.
26
+ * Pattern: agent_metadata:{agentId}
27
+ */
28
+ export declare class AgentMetadataStore extends BaseRedisStore<AgentMetadata> {
29
+ constructor(redis: Redis);
30
+ /**
31
+ * Create a new agent with metadata
32
+ */
33
+ createAgent(agentId: string, name: string, platform: string, userId: string, options?: {
34
+ description?: string;
35
+ isWorkspaceAgent?: boolean;
36
+ workspaceId?: string;
37
+ parentConnectionId?: string;
38
+ }): Promise<AgentMetadata>;
39
+ /**
40
+ * Get metadata for an agent
41
+ */
42
+ getMetadata(agentId: string): Promise<AgentMetadata | null>;
43
+ /**
44
+ * Update agent metadata (partial update)
45
+ */
46
+ updateMetadata(agentId: string, updates: Partial<Pick<AgentMetadata, "name" | "description" | "lastUsedAt">>): Promise<void>;
47
+ /**
48
+ * Delete agent metadata
49
+ */
50
+ deleteAgent(agentId: string): Promise<void>;
51
+ /**
52
+ * Check if agent exists
53
+ */
54
+ hasAgent(agentId: string): Promise<boolean>;
55
+ /**
56
+ * List sandbox agents belonging to a connection
57
+ */
58
+ listSandboxes(connectionId: string): Promise<AgentMetadata[]>;
59
+ /**
60
+ * List all agents in the system, sorted by lastUsedAt descending
61
+ */
62
+ listAllAgents(): Promise<AgentMetadata[]>;
63
+ }
64
+ //# sourceMappingURL=agent-metadata-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-metadata-store.d.ts","sourceRoot":"","sources":["../../src/auth/agent-metadata-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAIjC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,cAAc,CAAC,aAAa,CAAC;gBACvD,KAAK,EAAE,KAAK;IAQxB;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,GACA,OAAO,CAAC,aAAa,CAAC;IA8BzB;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAKjE;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC,CAAC,GAC3E,OAAO,CAAC,IAAI,CAAC;IAahB;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAejD;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKjD;;OAEG;IACG,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAanE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;CAWhD"}