@ixo/oracle-runtime 0.0.1

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 (583) hide show
  1. package/dist/bootstrap/ambient-factory.d.ts +32 -0
  2. package/dist/bootstrap/ambient-factory.d.ts.map +1 -0
  3. package/dist/bootstrap/ambient-factory.js +128 -0
  4. package/dist/bootstrap/create-oracle-app.d.ts +112 -0
  5. package/dist/bootstrap/create-oracle-app.d.ts.map +1 -0
  6. package/dist/bootstrap/create-oracle-app.js +530 -0
  7. package/dist/bootstrap/graceful-shutdown.d.ts +20 -0
  8. package/dist/bootstrap/graceful-shutdown.d.ts.map +1 -0
  9. package/dist/bootstrap/graceful-shutdown.js +61 -0
  10. package/dist/bootstrap/index.d.ts +13 -0
  11. package/dist/bootstrap/index.d.ts.map +1 -0
  12. package/dist/bootstrap/index.js +6 -0
  13. package/dist/bootstrap/inspect.d.ts +74 -0
  14. package/dist/bootstrap/inspect.d.ts.map +1 -0
  15. package/dist/bootstrap/inspect.js +111 -0
  16. package/dist/bootstrap/plugin-loader.d.ts +50 -0
  17. package/dist/bootstrap/plugin-loader.d.ts.map +1 -0
  18. package/dist/bootstrap/plugin-loader.js +119 -0
  19. package/dist/bootstrap/runtime-app-module.d.ts +38 -0
  20. package/dist/bootstrap/runtime-app-module.d.ts.map +1 -0
  21. package/dist/bootstrap/runtime-app-module.js +114 -0
  22. package/dist/bootstrap/schema-composer.d.ts +46 -0
  23. package/dist/bootstrap/schema-composer.d.ts.map +1 -0
  24. package/dist/bootstrap/schema-composer.js +65 -0
  25. package/dist/config/base-env-config.d.ts +31 -0
  26. package/dist/config/base-env-config.d.ts.map +1 -0
  27. package/dist/config/base-env-config.js +70 -0
  28. package/dist/config/base-env-schema.d.ts +77 -0
  29. package/dist/config/base-env-schema.d.ts.map +1 -0
  30. package/dist/config/base-env-schema.js +102 -0
  31. package/dist/events/scoped-emitter.d.ts +33 -0
  32. package/dist/events/scoped-emitter.d.ts.map +1 -0
  33. package/dist/events/scoped-emitter.js +32 -0
  34. package/dist/graph/index.d.ts +8 -0
  35. package/dist/graph/index.d.ts.map +1 -0
  36. package/dist/graph/index.js +6 -0
  37. package/dist/graph/main-agent-types.d.ts +88 -0
  38. package/dist/graph/main-agent-types.d.ts.map +1 -0
  39. package/dist/graph/main-agent-types.js +20 -0
  40. package/dist/graph/main-agent.d.ts +16 -0
  41. package/dist/graph/main-agent.d.ts.map +1 -0
  42. package/dist/graph/main-agent.js +251 -0
  43. package/dist/graph/middlewares/capability-gate-middleware.d.ts +35 -0
  44. package/dist/graph/middlewares/capability-gate-middleware.d.ts.map +1 -0
  45. package/dist/graph/middlewares/capability-gate-middleware.js +54 -0
  46. package/dist/graph/middlewares/index.d.ts +7 -0
  47. package/dist/graph/middlewares/index.d.ts.map +1 -0
  48. package/dist/graph/middlewares/index.js +6 -0
  49. package/dist/graph/middlewares/page-context-middleware.d.ts +23 -0
  50. package/dist/graph/middlewares/page-context-middleware.d.ts.map +1 -0
  51. package/dist/graph/middlewares/page-context-middleware.js +68 -0
  52. package/dist/graph/middlewares/safety-guardrail-middleware.d.ts +26 -0
  53. package/dist/graph/middlewares/safety-guardrail-middleware.d.ts.map +1 -0
  54. package/dist/graph/middlewares/safety-guardrail-middleware.js +88 -0
  55. package/dist/graph/middlewares/summarization-middleware.d.ts +17 -0
  56. package/dist/graph/middlewares/summarization-middleware.d.ts.map +1 -0
  57. package/dist/graph/middlewares/summarization-middleware.js +62 -0
  58. package/dist/graph/middlewares/tool-repetition-guard-middleware.d.ts +24 -0
  59. package/dist/graph/middlewares/tool-repetition-guard-middleware.d.ts.map +1 -0
  60. package/dist/graph/middlewares/tool-repetition-guard-middleware.js +112 -0
  61. package/dist/graph/middlewares/tool-validation-middleware.d.ts +24 -0
  62. package/dist/graph/middlewares/tool-validation-middleware.d.ts.map +1 -0
  63. package/dist/graph/middlewares/tool-validation-middleware.js +61 -0
  64. package/dist/graph/prompt-composer.d.ts +69 -0
  65. package/dist/graph/prompt-composer.d.ts.map +1 -0
  66. package/dist/graph/prompt-composer.js +315 -0
  67. package/dist/graph/state.d.ts +65 -0
  68. package/dist/graph/state.d.ts.map +1 -0
  69. package/dist/graph/state.js +60 -0
  70. package/dist/graph/sub-agent-fallback.d.ts +56 -0
  71. package/dist/graph/sub-agent-fallback.d.ts.map +1 -0
  72. package/dist/graph/sub-agent-fallback.js +79 -0
  73. package/dist/graph/subagent-as-tool.d.ts +77 -0
  74. package/dist/graph/subagent-as-tool.d.ts.map +1 -0
  75. package/dist/graph/subagent-as-tool.js +197 -0
  76. package/dist/graph/wrap-plugin-tool.d.ts +28 -0
  77. package/dist/graph/wrap-plugin-tool.d.ts.map +1 -0
  78. package/dist/graph/wrap-plugin-tool.js +30 -0
  79. package/dist/index.d.ts +33 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +28 -0
  82. package/dist/llm/index.d.ts +2 -0
  83. package/dist/llm/index.d.ts.map +1 -0
  84. package/dist/llm/index.js +1 -0
  85. package/dist/llm/llm-provider.d.ts +41 -0
  86. package/dist/llm/llm-provider.d.ts.map +1 -0
  87. package/dist/llm/llm-provider.js +130 -0
  88. package/dist/manifest/index.d.ts +6 -0
  89. package/dist/manifest/index.d.ts.map +1 -0
  90. package/dist/manifest/index.js +3 -0
  91. package/dist/manifest/schema.d.ts +31 -0
  92. package/dist/manifest/schema.d.ts.map +1 -0
  93. package/dist/manifest/schema.js +44 -0
  94. package/dist/manifest/tier1-renderer.d.ts +31 -0
  95. package/dist/manifest/tier1-renderer.d.ts.map +1 -0
  96. package/dist/manifest/tier1-renderer.js +68 -0
  97. package/dist/manifest/validator.d.ts +34 -0
  98. package/dist/manifest/validator.d.ts.map +1 -0
  99. package/dist/manifest/validator.js +111 -0
  100. package/dist/matrix/checkpointer/matrix-upload-utils.d.ts +66 -0
  101. package/dist/matrix/checkpointer/matrix-upload-utils.d.ts.map +1 -0
  102. package/dist/matrix/checkpointer/matrix-upload-utils.js +228 -0
  103. package/dist/matrix/checkpointer/type.d.ts +4 -0
  104. package/dist/matrix/checkpointer/type.d.ts.map +1 -0
  105. package/dist/matrix/checkpointer/type.js +1 -0
  106. package/dist/matrix/checkpointer/user-matrix-sqlite-sync-service.module.d.ts +3 -0
  107. package/dist/matrix/checkpointer/user-matrix-sqlite-sync-service.module.d.ts.map +1 -0
  108. package/dist/matrix/checkpointer/user-matrix-sqlite-sync-service.module.js +22 -0
  109. package/dist/matrix/checkpointer/user-matrix-sqlite-sync-service.service.d.ts +93 -0
  110. package/dist/matrix/checkpointer/user-matrix-sqlite-sync-service.service.d.ts.map +1 -0
  111. package/dist/matrix/checkpointer/user-matrix-sqlite-sync-service.service.js +856 -0
  112. package/dist/matrix/room-membership.d.ts +11 -0
  113. package/dist/matrix/room-membership.d.ts.map +1 -0
  114. package/dist/matrix/room-membership.js +33 -0
  115. package/dist/meta-tools/index.d.ts +28 -0
  116. package/dist/meta-tools/index.d.ts.map +1 -0
  117. package/dist/meta-tools/index.js +24 -0
  118. package/dist/meta-tools/list-capabilities.d.ts +12 -0
  119. package/dist/meta-tools/list-capabilities.d.ts.map +1 -0
  120. package/dist/meta-tools/list-capabilities.js +55 -0
  121. package/dist/meta-tools/load-capability.d.ts +24 -0
  122. package/dist/meta-tools/load-capability.d.ts.map +1 -0
  123. package/dist/meta-tools/load-capability.js +82 -0
  124. package/dist/modules/auth/auth-header.middleware.d.ts +37 -0
  125. package/dist/modules/auth/auth-header.middleware.d.ts.map +1 -0
  126. package/dist/modules/auth/auth-header.middleware.js +115 -0
  127. package/dist/modules/auth/auth.module.d.ts +9 -0
  128. package/dist/modules/auth/auth.module.d.ts.map +1 -0
  129. package/dist/modules/auth/auth.module.js +27 -0
  130. package/dist/modules/auth/index.d.ts +3 -0
  131. package/dist/modules/auth/index.d.ts.map +1 -0
  132. package/dist/modules/auth/index.js +2 -0
  133. package/dist/modules/auth/validate-ucan-delegation.d.ts +31 -0
  134. package/dist/modules/auth/validate-ucan-delegation.d.ts.map +1 -0
  135. package/dist/modules/auth/validate-ucan-delegation.js +36 -0
  136. package/dist/modules/blob-store/blob-store.module.d.ts +10 -0
  137. package/dist/modules/blob-store/blob-store.module.d.ts.map +1 -0
  138. package/dist/modules/blob-store/blob-store.module.js +25 -0
  139. package/dist/modules/blob-store/blob-store.service.d.ts +66 -0
  140. package/dist/modules/blob-store/blob-store.service.d.ts.map +1 -0
  141. package/dist/modules/blob-store/blob-store.service.js +108 -0
  142. package/dist/modules/blob-store/index.d.ts +3 -0
  143. package/dist/modules/blob-store/index.d.ts.map +1 -0
  144. package/dist/modules/blob-store/index.js +2 -0
  145. package/dist/modules/health/health.controller.d.ts +18 -0
  146. package/dist/modules/health/health.controller.d.ts.map +1 -0
  147. package/dist/modules/health/health.controller.js +48 -0
  148. package/dist/modules/health/health.module.d.ts +8 -0
  149. package/dist/modules/health/health.module.d.ts.map +1 -0
  150. package/dist/modules/health/health.module.js +21 -0
  151. package/dist/modules/index.d.ts +8 -0
  152. package/dist/modules/index.d.ts.map +1 -0
  153. package/dist/modules/index.js +6 -0
  154. package/dist/modules/messages/__test-fixtures__/deps.d.ts +41 -0
  155. package/dist/modules/messages/__test-fixtures__/deps.d.ts.map +1 -0
  156. package/dist/modules/messages/__test-fixtures__/deps.js +73 -0
  157. package/dist/modules/messages/__test-fixtures__/fake-agent.d.ts +27 -0
  158. package/dist/modules/messages/__test-fixtures__/fake-agent.d.ts.map +1 -0
  159. package/dist/modules/messages/__test-fixtures__/fake-agent.js +41 -0
  160. package/dist/modules/messages/__test-fixtures__/fake-response.d.ts +29 -0
  161. package/dist/modules/messages/__test-fixtures__/fake-response.d.ts.map +1 -0
  162. package/dist/modules/messages/__test-fixtures__/fake-response.js +55 -0
  163. package/dist/modules/messages/agent-builder.d.ts +64 -0
  164. package/dist/modules/messages/agent-builder.d.ts.map +1 -0
  165. package/dist/modules/messages/agent-builder.js +219 -0
  166. package/dist/modules/messages/batch-invoker.d.ts +36 -0
  167. package/dist/modules/messages/batch-invoker.d.ts.map +1 -0
  168. package/dist/modules/messages/batch-invoker.js +58 -0
  169. package/dist/modules/messages/dto/list-messages.dto.d.ts +4 -0
  170. package/dist/modules/messages/dto/list-messages.dto.d.ts.map +1 -0
  171. package/dist/modules/messages/dto/list-messages.dto.js +17 -0
  172. package/dist/modules/messages/dto/send-message.dto.d.ts +73 -0
  173. package/dist/modules/messages/dto/send-message.dto.d.ts.map +1 -0
  174. package/dist/modules/messages/dto/send-message.dto.js +318 -0
  175. package/dist/modules/messages/file-processing-credit-sink.port.d.ts +20 -0
  176. package/dist/modules/messages/file-processing-credit-sink.port.d.ts.map +1 -0
  177. package/dist/modules/messages/file-processing-credit-sink.port.js +1 -0
  178. package/dist/modules/messages/file-processing.service.d.ts +195 -0
  179. package/dist/modules/messages/file-processing.service.d.ts.map +1 -0
  180. package/dist/modules/messages/file-processing.service.js +1278 -0
  181. package/dist/modules/messages/homeserver-cache.d.ts +11 -0
  182. package/dist/modules/messages/homeserver-cache.d.ts.map +1 -0
  183. package/dist/modules/messages/homeserver-cache.js +31 -0
  184. package/dist/modules/messages/matrix-listener-bridge.d.ts +63 -0
  185. package/dist/modules/messages/matrix-listener-bridge.d.ts.map +1 -0
  186. package/dist/modules/messages/matrix-listener-bridge.js +280 -0
  187. package/dist/modules/messages/messages.controller.d.ts +13 -0
  188. package/dist/modules/messages/messages.controller.d.ts.map +1 -0
  189. package/dist/modules/messages/messages.controller.js +95 -0
  190. package/dist/modules/messages/messages.module.d.ts +3 -0
  191. package/dist/modules/messages/messages.module.d.ts.map +1 -0
  192. package/dist/modules/messages/messages.module.js +75 -0
  193. package/dist/modules/messages/messages.service.d.ts +112 -0
  194. package/dist/modules/messages/messages.service.d.ts.map +1 -0
  195. package/dist/modules/messages/messages.service.js +279 -0
  196. package/dist/modules/messages/oracle-runtime-bundle.d.ts +38 -0
  197. package/dist/modules/messages/oracle-runtime-bundle.d.ts.map +1 -0
  198. package/dist/modules/messages/oracle-runtime-bundle.js +40 -0
  199. package/dist/modules/messages/post-message-syncer.d.ts +30 -0
  200. package/dist/modules/messages/post-message-syncer.d.ts.map +1 -0
  201. package/dist/modules/messages/post-message-syncer.js +73 -0
  202. package/dist/modules/messages/request-preparer.d.ts +53 -0
  203. package/dist/modules/messages/request-preparer.d.ts.map +1 -0
  204. package/dist/modules/messages/request-preparer.js +139 -0
  205. package/dist/modules/messages/sse-stream-runner.d.ts +73 -0
  206. package/dist/modules/messages/sse-stream-runner.d.ts.map +1 -0
  207. package/dist/modules/messages/sse-stream-runner.js +352 -0
  208. package/dist/modules/messages/sse.utils.d.ts +29 -0
  209. package/dist/modules/messages/sse.utils.d.ts.map +1 -0
  210. package/dist/modules/messages/sse.utils.js +77 -0
  211. package/dist/modules/messages/user-context-fetcher.d.ts +41 -0
  212. package/dist/modules/messages/user-context-fetcher.d.ts.map +1 -0
  213. package/dist/modules/messages/user-context-fetcher.js +117 -0
  214. package/dist/modules/secrets/index.d.ts +2 -0
  215. package/dist/modules/secrets/index.d.ts.map +1 -0
  216. package/dist/modules/secrets/index.js +1 -0
  217. package/dist/modules/secrets/secrets.service.d.ts +29 -0
  218. package/dist/modules/secrets/secrets.service.d.ts.map +1 -0
  219. package/dist/modules/secrets/secrets.service.js +107 -0
  220. package/dist/modules/sessions/dto/create-session.dto.d.ts +6 -0
  221. package/dist/modules/sessions/dto/create-session.dto.d.ts.map +1 -0
  222. package/dist/modules/sessions/dto/create-session.dto.js +5 -0
  223. package/dist/modules/sessions/dto/delete-session.dto.d.ts +6 -0
  224. package/dist/modules/sessions/dto/delete-session.dto.d.ts.map +1 -0
  225. package/dist/modules/sessions/dto/delete-session.dto.js +5 -0
  226. package/dist/modules/sessions/dto/list-sessions.dto.d.ts +7 -0
  227. package/dist/modules/sessions/dto/list-sessions.dto.d.ts.map +1 -0
  228. package/dist/modules/sessions/dto/list-sessions.dto.js +6 -0
  229. package/dist/modules/sessions/session-history-processor.service.d.ts +48 -0
  230. package/dist/modules/sessions/session-history-processor.service.d.ts.map +1 -0
  231. package/dist/modules/sessions/session-history-processor.service.js +254 -0
  232. package/dist/modules/sessions/sessions.controller.d.ts +13 -0
  233. package/dist/modules/sessions/sessions.controller.d.ts.map +1 -0
  234. package/dist/modules/sessions/sessions.controller.js +113 -0
  235. package/dist/modules/sessions/sessions.module.d.ts +3 -0
  236. package/dist/modules/sessions/sessions.module.d.ts.map +1 -0
  237. package/dist/modules/sessions/sessions.module.js +49 -0
  238. package/dist/modules/sessions/sessions.service.d.ts +23 -0
  239. package/dist/modules/sessions/sessions.service.d.ts.map +1 -0
  240. package/dist/modules/sessions/sessions.service.js +168 -0
  241. package/dist/modules/subscription/subscription.middleware.d.ts +37 -0
  242. package/dist/modules/subscription/subscription.middleware.d.ts.map +1 -0
  243. package/dist/modules/subscription/subscription.middleware.js +141 -0
  244. package/dist/modules/subscription/subscription.module.d.ts +12 -0
  245. package/dist/modules/subscription/subscription.module.d.ts.map +1 -0
  246. package/dist/modules/subscription/subscription.module.js +26 -0
  247. package/dist/modules/throttler/throttler.module.d.ts +11 -0
  248. package/dist/modules/throttler/throttler.module.d.ts.map +1 -0
  249. package/dist/modules/throttler/throttler.module.js +32 -0
  250. package/dist/modules/ucan/index.d.ts +7 -0
  251. package/dist/modules/ucan/index.d.ts.map +1 -0
  252. package/dist/modules/ucan/index.js +6 -0
  253. package/dist/modules/ucan/ucan.config.d.ts +87 -0
  254. package/dist/modules/ucan/ucan.config.d.ts.map +1 -0
  255. package/dist/modules/ucan/ucan.config.js +114 -0
  256. package/dist/modules/ucan/ucan.module.d.ts +29 -0
  257. package/dist/modules/ucan/ucan.module.d.ts.map +1 -0
  258. package/dist/modules/ucan/ucan.module.js +46 -0
  259. package/dist/modules/ucan/ucan.service.d.ts +129 -0
  260. package/dist/modules/ucan/ucan.service.d.ts.map +1 -0
  261. package/dist/modules/ucan/ucan.service.js +582 -0
  262. package/dist/modules/ws/emitter.d.ts +12 -0
  263. package/dist/modules/ws/emitter.d.ts.map +1 -0
  264. package/dist/modules/ws/emitter.js +12 -0
  265. package/dist/modules/ws/ws.gateway.d.ts +34 -0
  266. package/dist/modules/ws/ws.gateway.d.ts.map +1 -0
  267. package/dist/modules/ws/ws.gateway.js +241 -0
  268. package/dist/modules/ws/ws.module.d.ts +3 -0
  269. package/dist/modules/ws/ws.module.d.ts.map +1 -0
  270. package/dist/modules/ws/ws.module.js +21 -0
  271. package/dist/modules/ws/ws.service.d.ts +25 -0
  272. package/dist/modules/ws/ws.service.d.ts.map +1 -0
  273. package/dist/modules/ws/ws.service.js +113 -0
  274. package/dist/plugin-api/define-plugin.d.ts +19 -0
  275. package/dist/plugin-api/define-plugin.d.ts.map +1 -0
  276. package/dist/plugin-api/define-plugin.js +25 -0
  277. package/dist/plugin-api/oracle-plugin.d.ts +92 -0
  278. package/dist/plugin-api/oracle-plugin.d.ts.map +1 -0
  279. package/dist/plugin-api/oracle-plugin.js +15 -0
  280. package/dist/plugin-api/tool-helper.d.ts +33 -0
  281. package/dist/plugin-api/tool-helper.d.ts.map +1 -0
  282. package/dist/plugin-api/tool-helper.js +40 -0
  283. package/dist/plugin-api/types.d.ts +378 -0
  284. package/dist/plugin-api/types.d.ts.map +1 -0
  285. package/dist/plugin-api/types.js +1 -0
  286. package/dist/plugins/agui/agui-agent.d.ts +10 -0
  287. package/dist/plugins/agui/agui-agent.d.ts.map +1 -0
  288. package/dist/plugins/agui/agui-agent.js +110 -0
  289. package/dist/plugins/agui/agui.plugin.d.ts +16 -0
  290. package/dist/plugins/agui/agui.plugin.d.ts.map +1 -0
  291. package/dist/plugins/agui/agui.plugin.js +117 -0
  292. package/dist/plugins/agui/index.d.ts +3 -0
  293. package/dist/plugins/agui/index.d.ts.map +1 -0
  294. package/dist/plugins/agui/index.js +2 -0
  295. package/dist/plugins/composio/composio-tools.d.ts +59 -0
  296. package/dist/plugins/composio/composio-tools.d.ts.map +1 -0
  297. package/dist/plugins/composio/composio-tools.js +88 -0
  298. package/dist/plugins/composio/composio-ucan.d.ts +14 -0
  299. package/dist/plugins/composio/composio-ucan.d.ts.map +1 -0
  300. package/dist/plugins/composio/composio-ucan.js +32 -0
  301. package/dist/plugins/composio/composio.plugin.d.ts +45 -0
  302. package/dist/plugins/composio/composio.plugin.d.ts.map +1 -0
  303. package/dist/plugins/composio/composio.plugin.js +116 -0
  304. package/dist/plugins/composio/index.d.ts +4 -0
  305. package/dist/plugins/composio/index.d.ts.map +1 -0
  306. package/dist/plugins/composio/index.js +3 -0
  307. package/dist/plugins/credits/claim-processing.module.d.ts +28 -0
  308. package/dist/plugins/credits/claim-processing.module.d.ts.map +1 -0
  309. package/dist/plugins/credits/claim-processing.module.js +37 -0
  310. package/dist/plugins/credits/claim-processing.service.d.ts +92 -0
  311. package/dist/plugins/credits/claim-processing.service.d.ts.map +1 -0
  312. package/dist/plugins/credits/claim-processing.service.js +406 -0
  313. package/dist/plugins/credits/credits-middleware.d.ts +23 -0
  314. package/dist/plugins/credits/credits-middleware.d.ts.map +1 -0
  315. package/dist/plugins/credits/credits-middleware.js +154 -0
  316. package/dist/plugins/credits/credits.plugin.d.ts +55 -0
  317. package/dist/plugins/credits/credits.plugin.d.ts.map +1 -0
  318. package/dist/plugins/credits/credits.plugin.js +95 -0
  319. package/dist/plugins/credits/file-processing-sink.module.d.ts +18 -0
  320. package/dist/plugins/credits/file-processing-sink.module.d.ts.map +1 -0
  321. package/dist/plugins/credits/file-processing-sink.module.js +56 -0
  322. package/dist/plugins/credits/index.d.ts +8 -0
  323. package/dist/plugins/credits/index.d.ts.map +1 -0
  324. package/dist/plugins/credits/index.js +7 -0
  325. package/dist/plugins/credits/subscription-sink.module.d.ts +23 -0
  326. package/dist/plugins/credits/subscription-sink.module.d.ts.map +1 -0
  327. package/dist/plugins/credits/subscription-sink.module.js +54 -0
  328. package/dist/plugins/credits/token-limiter.d.ts +139 -0
  329. package/dist/plugins/credits/token-limiter.d.ts.map +1 -0
  330. package/dist/plugins/credits/token-limiter.js +302 -0
  331. package/dist/plugins/domain-indexer/domain-indexer-agent.d.ts +7 -0
  332. package/dist/plugins/domain-indexer/domain-indexer-agent.d.ts.map +1 -0
  333. package/dist/plugins/domain-indexer/domain-indexer-agent.js +48 -0
  334. package/dist/plugins/domain-indexer/domain-indexer-tools.d.ts +8 -0
  335. package/dist/plugins/domain-indexer/domain-indexer-tools.d.ts.map +1 -0
  336. package/dist/plugins/domain-indexer/domain-indexer-tools.js +194 -0
  337. package/dist/plugins/domain-indexer/domain-indexer.plugin.d.ts +20 -0
  338. package/dist/plugins/domain-indexer/domain-indexer.plugin.d.ts.map +1 -0
  339. package/dist/plugins/domain-indexer/domain-indexer.plugin.js +78 -0
  340. package/dist/plugins/domain-indexer/index.d.ts +2 -0
  341. package/dist/plugins/domain-indexer/index.d.ts.map +1 -0
  342. package/dist/plugins/domain-indexer/index.js +1 -0
  343. package/dist/plugins/editor/apply-sandbox-output.d.ts +33 -0
  344. package/dist/plugins/editor/apply-sandbox-output.d.ts.map +1 -0
  345. package/dist/plugins/editor/apply-sandbox-output.js +302 -0
  346. package/dist/plugins/editor/block-actions.d.ts +84 -0
  347. package/dist/plugins/editor/block-actions.d.ts.map +1 -0
  348. package/dist/plugins/editor/block-actions.js +471 -0
  349. package/dist/plugins/editor/blocknote-helper.d.ts +147 -0
  350. package/dist/plugins/editor/blocknote-helper.d.ts.map +1 -0
  351. package/dist/plugins/editor/blocknote-helper.js +542 -0
  352. package/dist/plugins/editor/blocknote-tools.d.ts +364 -0
  353. package/dist/plugins/editor/blocknote-tools.d.ts.map +1 -0
  354. package/dist/plugins/editor/blocknote-tools.js +2123 -0
  355. package/dist/plugins/editor/editor-agent.d.ts +47 -0
  356. package/dist/plugins/editor/editor-agent.d.ts.map +1 -0
  357. package/dist/plugins/editor/editor-agent.js +158 -0
  358. package/dist/plugins/editor/editor-mx.d.ts +56 -0
  359. package/dist/plugins/editor/editor-mx.d.ts.map +1 -0
  360. package/dist/plugins/editor/editor-mx.js +100 -0
  361. package/dist/plugins/editor/editor.plugin.d.ts +32 -0
  362. package/dist/plugins/editor/editor.plugin.d.ts.map +1 -0
  363. package/dist/plugins/editor/editor.plugin.js +189 -0
  364. package/dist/plugins/editor/index.d.ts +6 -0
  365. package/dist/plugins/editor/index.d.ts.map +1 -0
  366. package/dist/plugins/editor/index.js +5 -0
  367. package/dist/plugins/editor/mint-invocation-tool.d.ts +72 -0
  368. package/dist/plugins/editor/mint-invocation-tool.d.ts.map +1 -0
  369. package/dist/plugins/editor/mint-invocation-tool.js +173 -0
  370. package/dist/plugins/editor/page-functions.d.ts +100 -0
  371. package/dist/plugins/editor/page-functions.d.ts.map +1 -0
  372. package/dist/plugins/editor/page-functions.js +317 -0
  373. package/dist/plugins/editor/page-tools.d.ts +75 -0
  374. package/dist/plugins/editor/page-tools.d.ts.map +1 -0
  375. package/dist/plugins/editor/page-tools.js +238 -0
  376. package/dist/plugins/editor/prompts.d.ts +22 -0
  377. package/dist/plugins/editor/prompts.d.ts.map +1 -0
  378. package/dist/plugins/editor/prompts.js +451 -0
  379. package/dist/plugins/editor/provider.d.ts +101 -0
  380. package/dist/plugins/editor/provider.d.ts.map +1 -0
  381. package/dist/plugins/editor/provider.js +249 -0
  382. package/dist/plugins/editor/standalone-editor-tool.d.ts +17 -0
  383. package/dist/plugins/editor/standalone-editor-tool.d.ts.map +1 -0
  384. package/dist/plugins/editor/standalone-editor-tool.js +136 -0
  385. package/dist/plugins/editor/survey-helpers.d.ts +112 -0
  386. package/dist/plugins/editor/survey-helpers.d.ts.map +1 -0
  387. package/dist/plugins/editor/survey-helpers.js +358 -0
  388. package/dist/plugins/firecrawl/firecrawl-agent.d.ts +7 -0
  389. package/dist/plugins/firecrawl/firecrawl-agent.d.ts.map +1 -0
  390. package/dist/plugins/firecrawl/firecrawl-agent.js +84 -0
  391. package/dist/plugins/firecrawl/firecrawl-tools.d.ts +37 -0
  392. package/dist/plugins/firecrawl/firecrawl-tools.d.ts.map +1 -0
  393. package/dist/plugins/firecrawl/firecrawl-tools.js +129 -0
  394. package/dist/plugins/firecrawl/firecrawl.plugin.d.ts +32 -0
  395. package/dist/plugins/firecrawl/firecrawl.plugin.d.ts.map +1 -0
  396. package/dist/plugins/firecrawl/firecrawl.plugin.js +69 -0
  397. package/dist/plugins/firecrawl/index.d.ts +3 -0
  398. package/dist/plugins/firecrawl/index.d.ts.map +1 -0
  399. package/dist/plugins/firecrawl/index.js +2 -0
  400. package/dist/plugins/index.d.ts +47 -0
  401. package/dist/plugins/index.d.ts.map +1 -0
  402. package/dist/plugins/index.js +69 -0
  403. package/dist/plugins/matrix-group-chats/channel-memory.module.d.ts +7 -0
  404. package/dist/plugins/matrix-group-chats/channel-memory.module.d.ts.map +1 -0
  405. package/dist/plugins/matrix-group-chats/channel-memory.module.js +22 -0
  406. package/dist/plugins/matrix-group-chats/channel-memory.repo.d.ts +62 -0
  407. package/dist/plugins/matrix-group-chats/channel-memory.repo.d.ts.map +1 -0
  408. package/dist/plugins/matrix-group-chats/channel-memory.repo.js +311 -0
  409. package/dist/plugins/matrix-group-chats/channel-memory.service.d.ts +89 -0
  410. package/dist/plugins/matrix-group-chats/channel-memory.service.d.ts.map +1 -0
  411. package/dist/plugins/matrix-group-chats/channel-memory.service.js +565 -0
  412. package/dist/plugins/matrix-group-chats/channel-memory.summarizer.d.ts +18 -0
  413. package/dist/plugins/matrix-group-chats/channel-memory.summarizer.d.ts.map +1 -0
  414. package/dist/plugins/matrix-group-chats/channel-memory.summarizer.js +128 -0
  415. package/dist/plugins/matrix-group-chats/channel-memory.types.d.ts +50 -0
  416. package/dist/plugins/matrix-group-chats/channel-memory.types.d.ts.map +1 -0
  417. package/dist/plugins/matrix-group-chats/channel-memory.types.js +2 -0
  418. package/dist/plugins/matrix-group-chats/guard.d.ts +83 -0
  419. package/dist/plugins/matrix-group-chats/guard.d.ts.map +1 -0
  420. package/dist/plugins/matrix-group-chats/guard.js +138 -0
  421. package/dist/plugins/matrix-group-chats/index.d.ts +59 -0
  422. package/dist/plugins/matrix-group-chats/index.d.ts.map +1 -0
  423. package/dist/plugins/matrix-group-chats/index.js +140 -0
  424. package/dist/plugins/matrix-group-chats/middleware.d.ts +31 -0
  425. package/dist/plugins/matrix-group-chats/middleware.d.ts.map +1 -0
  426. package/dist/plugins/matrix-group-chats/middleware.js +186 -0
  427. package/dist/plugins/matrix-group-chats/power-levels.d.ts +15 -0
  428. package/dist/plugins/matrix-group-chats/power-levels.d.ts.map +1 -0
  429. package/dist/plugins/matrix-group-chats/power-levels.js +36 -0
  430. package/dist/plugins/matrix-group-chats/room-info.d.ts +23 -0
  431. package/dist/plugins/matrix-group-chats/room-info.d.ts.map +1 -0
  432. package/dist/plugins/matrix-group-chats/room-info.js +34 -0
  433. package/dist/plugins/matrix-group-chats/tools.d.ts +8 -0
  434. package/dist/plugins/matrix-group-chats/tools.d.ts.map +1 -0
  435. package/dist/plugins/matrix-group-chats/tools.js +154 -0
  436. package/dist/plugins/memory/index.d.ts +5 -0
  437. package/dist/plugins/memory/index.d.ts.map +1 -0
  438. package/dist/plugins/memory/index.js +3 -0
  439. package/dist/plugins/memory/memory-tools.d.ts +52 -0
  440. package/dist/plugins/memory/memory-tools.d.ts.map +1 -0
  441. package/dist/plugins/memory/memory-tools.js +88 -0
  442. package/dist/plugins/memory/memory-ucan.d.ts +17 -0
  443. package/dist/plugins/memory/memory-ucan.d.ts.map +1 -0
  444. package/dist/plugins/memory/memory-ucan.js +43 -0
  445. package/dist/plugins/memory/memory.plugin.d.ts +51 -0
  446. package/dist/plugins/memory/memory.plugin.d.ts.map +1 -0
  447. package/dist/plugins/memory/memory.plugin.js +76 -0
  448. package/dist/plugins/memory/types.d.ts +75 -0
  449. package/dist/plugins/memory/types.d.ts.map +1 -0
  450. package/dist/plugins/memory/types.js +2 -0
  451. package/dist/plugins/portal/index.d.ts +3 -0
  452. package/dist/plugins/portal/index.d.ts.map +1 -0
  453. package/dist/plugins/portal/index.js +2 -0
  454. package/dist/plugins/portal/portal-agent.d.ts +9 -0
  455. package/dist/plugins/portal/portal-agent.d.ts.map +1 -0
  456. package/dist/plugins/portal/portal-agent.js +70 -0
  457. package/dist/plugins/portal/portal.plugin.d.ts +16 -0
  458. package/dist/plugins/portal/portal.plugin.d.ts.map +1 -0
  459. package/dist/plugins/portal/portal.plugin.js +115 -0
  460. package/dist/plugins/sandbox/index.d.ts +3 -0
  461. package/dist/plugins/sandbox/index.d.ts.map +1 -0
  462. package/dist/plugins/sandbox/index.js +2 -0
  463. package/dist/plugins/sandbox/sandbox-mcp.d.ts +46 -0
  464. package/dist/plugins/sandbox/sandbox-mcp.d.ts.map +1 -0
  465. package/dist/plugins/sandbox/sandbox-mcp.js +80 -0
  466. package/dist/plugins/sandbox/sandbox-write-blob.d.ts +22 -0
  467. package/dist/plugins/sandbox/sandbox-write-blob.d.ts.map +1 -0
  468. package/dist/plugins/sandbox/sandbox-write-blob.js +80 -0
  469. package/dist/plugins/sandbox/sandbox.plugin.d.ts +80 -0
  470. package/dist/plugins/sandbox/sandbox.plugin.d.ts.map +1 -0
  471. package/dist/plugins/sandbox/sandbox.plugin.js +204 -0
  472. package/dist/plugins/skills/index.d.ts +3 -0
  473. package/dist/plugins/skills/index.d.ts.map +1 -0
  474. package/dist/plugins/skills/index.js +2 -0
  475. package/dist/plugins/skills/skills-tools.d.ts +20 -0
  476. package/dist/plugins/skills/skills-tools.d.ts.map +1 -0
  477. package/dist/plugins/skills/skills-tools.js +204 -0
  478. package/dist/plugins/skills/skills-ucan.d.ts +24 -0
  479. package/dist/plugins/skills/skills-ucan.d.ts.map +1 -0
  480. package/dist/plugins/skills/skills-ucan.js +28 -0
  481. package/dist/plugins/skills/skills.plugin.d.ts +37 -0
  482. package/dist/plugins/skills/skills.plugin.d.ts.map +1 -0
  483. package/dist/plugins/skills/skills.plugin.js +82 -0
  484. package/dist/plugins/slack/index.d.ts +4 -0
  485. package/dist/plugins/slack/index.d.ts.map +1 -0
  486. package/dist/plugins/slack/index.js +3 -0
  487. package/dist/plugins/slack/slack.module.d.ts +9 -0
  488. package/dist/plugins/slack/slack.module.d.ts.map +1 -0
  489. package/dist/plugins/slack/slack.module.js +27 -0
  490. package/dist/plugins/slack/slack.plugin.d.ts +30 -0
  491. package/dist/plugins/slack/slack.plugin.d.ts.map +1 -0
  492. package/dist/plugins/slack/slack.plugin.js +40 -0
  493. package/dist/plugins/slack/slack.service.d.ts +32 -0
  494. package/dist/plugins/slack/slack.service.d.ts.map +1 -0
  495. package/dist/plugins/slack/slack.service.js +157 -0
  496. package/dist/plugins/user-preferences/index.d.ts +4 -0
  497. package/dist/plugins/user-preferences/index.d.ts.map +1 -0
  498. package/dist/plugins/user-preferences/index.js +3 -0
  499. package/dist/plugins/user-preferences/service/user-preferences.service.d.ts +61 -0
  500. package/dist/plugins/user-preferences/service/user-preferences.service.d.ts.map +1 -0
  501. package/dist/plugins/user-preferences/service/user-preferences.service.js +105 -0
  502. package/dist/plugins/user-preferences/user-preferences-http.module.d.ts +10 -0
  503. package/dist/plugins/user-preferences/user-preferences-http.module.d.ts.map +1 -0
  504. package/dist/plugins/user-preferences/user-preferences-http.module.js +23 -0
  505. package/dist/plugins/user-preferences/user-preferences-tool.d.ts +22 -0
  506. package/dist/plugins/user-preferences/user-preferences-tool.d.ts.map +1 -0
  507. package/dist/plugins/user-preferences/user-preferences-tool.js +103 -0
  508. package/dist/plugins/user-preferences/user-preferences.controller.d.ts +18 -0
  509. package/dist/plugins/user-preferences/user-preferences.controller.d.ts.map +1 -0
  510. package/dist/plugins/user-preferences/user-preferences.controller.js +72 -0
  511. package/dist/plugins/user-preferences/user-preferences.plugin.d.ts +27 -0
  512. package/dist/plugins/user-preferences/user-preferences.plugin.d.ts.map +1 -0
  513. package/dist/plugins/user-preferences/user-preferences.plugin.js +66 -0
  514. package/dist/registries/config-schema-registry.d.ts +24 -0
  515. package/dist/registries/config-schema-registry.d.ts.map +1 -0
  516. package/dist/registries/config-schema-registry.js +27 -0
  517. package/dist/registries/index.d.ts +13 -0
  518. package/dist/registries/index.d.ts.map +1 -0
  519. package/dist/registries/index.js +6 -0
  520. package/dist/registries/manifest-registry.d.ts +49 -0
  521. package/dist/registries/manifest-registry.d.ts.map +1 -0
  522. package/dist/registries/manifest-registry.js +53 -0
  523. package/dist/registries/middleware-registry.d.ts +41 -0
  524. package/dist/registries/middleware-registry.d.ts.map +1 -0
  525. package/dist/registries/middleware-registry.js +52 -0
  526. package/dist/registries/shared-state-registry.d.ts +41 -0
  527. package/dist/registries/shared-state-registry.d.ts.map +1 -0
  528. package/dist/registries/shared-state-registry.js +65 -0
  529. package/dist/registries/subagent-registry.d.ts +55 -0
  530. package/dist/registries/subagent-registry.d.ts.map +1 -0
  531. package/dist/registries/subagent-registry.js +106 -0
  532. package/dist/registries/test-fixtures.d.ts +47 -0
  533. package/dist/registries/test-fixtures.d.ts.map +1 -0
  534. package/dist/registries/test-fixtures.js +168 -0
  535. package/dist/registries/tool-registry.d.ts +74 -0
  536. package/dist/registries/tool-registry.d.ts.map +1 -0
  537. package/dist/registries/tool-registry.js +130 -0
  538. package/dist/runtime-context/ambient.d.ts +118 -0
  539. package/dist/runtime-context/ambient.d.ts.map +1 -0
  540. package/dist/runtime-context/ambient.js +1 -0
  541. package/dist/runtime-context/build-plugin.d.ts +20 -0
  542. package/dist/runtime-context/build-plugin.d.ts.map +1 -0
  543. package/dist/runtime-context/build-plugin.js +16 -0
  544. package/dist/runtime-context/build-runtime.d.ts +60 -0
  545. package/dist/runtime-context/build-runtime.d.ts.map +1 -0
  546. package/dist/runtime-context/build-runtime.js +81 -0
  547. package/dist/testing/create-test-runtime.d.ts +95 -0
  548. package/dist/testing/create-test-runtime.d.ts.map +1 -0
  549. package/dist/testing/create-test-runtime.js +302 -0
  550. package/dist/testing/index.d.ts +5 -0
  551. package/dist/testing/index.d.ts.map +1 -0
  552. package/dist/testing/index.js +5 -0
  553. package/dist/testing/integration/chat-client.d.ts +143 -0
  554. package/dist/testing/integration/chat-client.d.ts.map +1 -0
  555. package/dist/testing/integration/chat-client.js +238 -0
  556. package/dist/testing/integration/harness.d.ts +189 -0
  557. package/dist/testing/integration/harness.d.ts.map +1 -0
  558. package/dist/testing/integration/harness.js +461 -0
  559. package/dist/testing/integration/index.d.ts +14 -0
  560. package/dist/testing/integration/index.d.ts.map +1 -0
  561. package/dist/testing/integration/index.js +18 -0
  562. package/dist/testing/integration/setup.d.ts +2 -0
  563. package/dist/testing/integration/setup.d.ts.map +1 -0
  564. package/dist/testing/integration/setup.js +41 -0
  565. package/dist/testing/integration/sse-parser.d.ts +99 -0
  566. package/dist/testing/integration/sse-parser.d.ts.map +1 -0
  567. package/dist/testing/integration/sse-parser.js +125 -0
  568. package/dist/testing/integration/ucan.d.ts +74 -0
  569. package/dist/testing/integration/ucan.d.ts.map +1 -0
  570. package/dist/testing/integration/ucan.js +95 -0
  571. package/dist/testing/integration/wait-for-matrix-loaded.d.ts +19 -0
  572. package/dist/testing/integration/wait-for-matrix-loaded.d.ts.map +1 -0
  573. package/dist/testing/integration/wait-for-matrix-loaded.js +31 -0
  574. package/dist/testing/mocks.d.ts +64 -0
  575. package/dist/testing/mocks.d.ts.map +1 -0
  576. package/dist/testing/mocks.js +141 -0
  577. package/dist/testing/nest-doubles.d.ts +10 -0
  578. package/dist/testing/nest-doubles.d.ts.map +1 -0
  579. package/dist/testing/nest-doubles.js +19 -0
  580. package/dist/utils/emoji.d.ts +3 -0
  581. package/dist/utils/emoji.d.ts.map +1 -0
  582. package/dist/utils/emoji.js +36 -0
  583. package/package.json +102 -0
@@ -0,0 +1,238 @@
1
+ import { parseSSEStream } from './sse-parser.js';
2
+ export class ChatClient {
3
+ baseUrl;
4
+ delegation;
5
+ timezone;
6
+ timeoutMs;
7
+ fetchImpl;
8
+ constructor(baseUrl, opts = {}) {
9
+ this.baseUrl = baseUrl.replace(/\/+$/, '');
10
+ this.delegation = opts.delegation;
11
+ this.timezone = opts.timezone ?? 'UTC';
12
+ this.timeoutMs = opts.timeoutMs ?? 60_000;
13
+ this.fetchImpl = opts.fetch ?? globalThis.fetch.bind(globalThis);
14
+ }
15
+ /** Headers shared by every request. `timezone` is NOT here — it's in the body. */
16
+ authHeaders(extra = {}) {
17
+ const out = {
18
+ 'content-type': 'application/json',
19
+ ...extra,
20
+ };
21
+ if (this.delegation && this.delegation.length > 0) {
22
+ out['x-ucan-delegation'] = this.delegation;
23
+ }
24
+ return out;
25
+ }
26
+ /**
27
+ * Compose the JSON body the SDK sends — keys match
28
+ * `apps/qiforge-example` → SDK → controller exactly.
29
+ */
30
+ composeBody(message, stream, opts) {
31
+ return JSON.stringify({
32
+ message,
33
+ stream,
34
+ timezone: opts.timezone ?? this.timezone,
35
+ // ChatClient defaults `returnAllMessages` to true — tests get the full
36
+ // transcript by default and can opt out with `returnAllMessages: false`.
37
+ // Stream requests ignore the flag server-side, so only send it when
38
+ // non-stream.
39
+ ...(!stream && {
40
+ returnAllMessages: opts.returnAllMessages ?? true,
41
+ }),
42
+ ...(opts.metadata && { metadata: opts.metadata }),
43
+ ...(opts.attachments?.length && { attachments: opts.attachments }),
44
+ ...(opts.tools?.length && { tools: opts.tools }),
45
+ ...(opts.agActions?.length && { agActions: opts.agActions }),
46
+ });
47
+ }
48
+ /** Raw `fetch` against the oracle's base URL — for plugin HTTP routes. */
49
+ async fetch(path, init = {}) {
50
+ const url = `${this.baseUrl}${path.startsWith('/') ? path : `/${path}`}`;
51
+ const mergedHeaders = this.authHeaders(Object.fromEntries(new Headers(init.headers).entries()));
52
+ return this.fetchImpl(url, { ...init, headers: mergedHeaders });
53
+ }
54
+ /**
55
+ * `POST /messages/:sessionId` with `stream: false`.
56
+ *
57
+ * `ChatClient` defaults `returnAllMessages: true`, so `body.messages`
58
+ * holds the full session transcript and `body.message` is the last
59
+ * assistant message (same shape the production payload returns). The
60
+ * caller can opt out via `opts.returnAllMessages = false` — in that case
61
+ * `body.messages` will be `undefined` at runtime but the type stays
62
+ * non-optional for the default case; narrow manually if you opt out.
63
+ */
64
+ async send(sessionId, message, opts = {}) {
65
+ const start = Date.now();
66
+ const headers = this.authHeaders(opts.delegation ? { 'x-ucan-delegation': opts.delegation } : {});
67
+ const controller = new AbortController();
68
+ const timeoutId = setTimeout(() => controller.abort(), this.timeoutMs);
69
+ const signal = opts.signal
70
+ ? mergeSignals(controller.signal, opts.signal)
71
+ : controller.signal;
72
+ try {
73
+ const res = await this.fetchImpl(`${this.baseUrl}/messages/${encodeURIComponent(sessionId)}`, {
74
+ method: 'POST',
75
+ headers,
76
+ body: this.composeBody(message, false, opts),
77
+ signal,
78
+ });
79
+ const requestId = res.headers.get('x-request-id') ?? undefined;
80
+ const text = await res.text();
81
+ const body = JSON.parse(text);
82
+ return {
83
+ body,
84
+ status: res.status,
85
+ durationMs: Date.now() - start,
86
+ requestId,
87
+ };
88
+ }
89
+ finally {
90
+ clearTimeout(timeoutId);
91
+ }
92
+ }
93
+ /**
94
+ * `POST /messages/:sessionId` with `stream: true`. Returns an async
95
+ * iterable of typed SSE events plus a `final()` method resolving to the
96
+ * complete event list + accumulated text.
97
+ */
98
+ stream(sessionId, message, opts = {}) {
99
+ const headers = this.authHeaders({
100
+ accept: 'text/event-stream',
101
+ ...(opts.delegation ? { 'x-ucan-delegation': opts.delegation } : {}),
102
+ });
103
+ const start = Date.now();
104
+ const events = [];
105
+ let text = '';
106
+ let requestId;
107
+ let doneResolve;
108
+ let doneReject;
109
+ const donePromise = new Promise((res, rej) => {
110
+ doneResolve = res;
111
+ doneReject = rej;
112
+ });
113
+ const generator = async function* () {
114
+ const res = await this.fetchImpl(`${this.baseUrl}/messages/${encodeURIComponent(sessionId)}`, {
115
+ method: 'POST',
116
+ headers,
117
+ body: this.composeBody(message, true, opts),
118
+ signal: opts.signal,
119
+ });
120
+ requestId = res.headers.get('x-request-id') ?? undefined;
121
+ if (!requestId) {
122
+ // Mirror the SDK invariant — stream responses MUST carry x-request-id.
123
+ const err = new Error(`Stream response missing x-request-id header (status ${res.status})`);
124
+ doneReject(err);
125
+ throw err;
126
+ }
127
+ if (!res.body) {
128
+ doneResolve({
129
+ events,
130
+ text,
131
+ durationMs: Date.now() - start,
132
+ requestId,
133
+ });
134
+ return;
135
+ }
136
+ const reader = res.body.getReader();
137
+ try {
138
+ for await (const evt of parseSSEStream(reader)) {
139
+ events.push(evt);
140
+ if (evt.event === 'message') {
141
+ text += evt.data.content;
142
+ }
143
+ yield evt;
144
+ }
145
+ doneResolve({
146
+ events,
147
+ text,
148
+ durationMs: Date.now() - start,
149
+ requestId,
150
+ });
151
+ }
152
+ catch (err) {
153
+ const error = err instanceof Error ? err : new Error(String(err));
154
+ doneReject(error);
155
+ throw error;
156
+ }
157
+ }.call(this);
158
+ const iterable = generator;
159
+ iterable.final = () => donePromise;
160
+ return iterable;
161
+ }
162
+ /**
163
+ * `POST /sessions` — create a new chat session and return its id.
164
+ *
165
+ * Required before `send`/`stream` against a sessionId — `MessagesService`
166
+ * throws 404 if the session doesn't already exist. Tests call this in
167
+ * `beforeAll` and reuse the returned id, matching the SDK's
168
+ * `useSessionManager` flow on the frontend.
169
+ */
170
+ async createSession() {
171
+ const res = await this.fetchImpl(`${this.baseUrl}/sessions`, {
172
+ method: 'POST',
173
+ headers: this.authHeaders(),
174
+ });
175
+ if (!res.ok) {
176
+ throw new Error(`createSession failed: ${res.status} ${JSON.stringify(await res.json().catch(() => ''))}`);
177
+ }
178
+ const body = (await res.json());
179
+ if (!body.sessionId) {
180
+ throw new Error(`createSession response missing sessionId: ${JSON.stringify(body)}`);
181
+ }
182
+ return body.sessionId;
183
+ }
184
+ /** `GET /messages/:sessionId` — list messages in a session. */
185
+ async list(sessionId) {
186
+ const start = Date.now();
187
+ const res = await this.fetchImpl(`${this.baseUrl}/messages/${encodeURIComponent(sessionId)}`, { method: 'GET', headers: this.authHeaders() });
188
+ const text = await res.text();
189
+ let body = text;
190
+ try {
191
+ body = JSON.parse(text);
192
+ }
193
+ catch {
194
+ // non-JSON
195
+ }
196
+ return {
197
+ body,
198
+ status: res.status,
199
+ durationMs: Date.now() - start,
200
+ requestId: res.headers.get('x-request-id') ?? undefined,
201
+ };
202
+ }
203
+ /** `POST /messages/abort` — cancel an ongoing stream by session id. */
204
+ async abort(sessionId) {
205
+ const start = Date.now();
206
+ const res = await this.fetchImpl(`${this.baseUrl}/messages/abort`, {
207
+ method: 'POST',
208
+ headers: this.authHeaders(),
209
+ body: JSON.stringify({ sessionId }),
210
+ });
211
+ const text = await res.text();
212
+ let body = text;
213
+ try {
214
+ body = JSON.parse(text);
215
+ }
216
+ catch {
217
+ // non-JSON
218
+ }
219
+ return {
220
+ body,
221
+ status: res.status,
222
+ durationMs: Date.now() - start,
223
+ requestId: res.headers.get('x-request-id') ?? undefined,
224
+ };
225
+ }
226
+ }
227
+ /** Merge a timeout signal with a caller-supplied one. */
228
+ function mergeSignals(a, b) {
229
+ if (a.aborted)
230
+ return a;
231
+ if (b.aborted)
232
+ return b;
233
+ const controller = new AbortController();
234
+ const onAbort = () => controller.abort();
235
+ a.addEventListener('abort', onAbort, { once: true });
236
+ b.addEventListener('abort', onAbort, { once: true });
237
+ return controller.signal;
238
+ }
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Integration test harness — real ambient services + real Nest boot.
3
+ *
4
+ * - `createIntegrationOracle()` boots the full Nest app on an ephemeral
5
+ * port. Tier B tests drive it via `ChatClient`. This is the sibling of
6
+ * `createOracleApp()` — same boot path, same Matrix init, same graceful
7
+ * shutdown. The only differences are: ephemeral port (`port: 0`) and
8
+ * captured lifecycle events. There are intentionally no
9
+ * `skipMatrixInit` / `skipGracefulShutdown` flags — integration tests
10
+ * boot the same stack production does. If Matrix is unreachable, the
11
+ * test fails; that failure IS the signal (spec §6, §11 #10).
12
+ *
13
+ * - `createIntegrationRuntime()` builds a real `RuntimeContext` against
14
+ * real ambient services and lets a test invoke a plugin's tool / sub-
15
+ * agent / middleware directly — no Nest, no HTTP, no model. This is
16
+ * the sibling of `createTestRuntime()`, with `mockLlm`/`mockMatrix`
17
+ * swapped for the production adapters.
18
+ *
19
+ * Both surfaces deliberately reuse `resolvePlugins` / registry population
20
+ * from the unit-test runtime so they validate the same wiring code that
21
+ * production goes through.
22
+ */
23
+ import { type BaseMessage } from '@langchain/core/messages';
24
+ import { type DynamicModule, type Type } from '@nestjs/common';
25
+ import { type OracleApp, type PluginStatusChangeEvent } from '../../bootstrap/create-oracle-app.js';
26
+ import { type FeatureToggle } from '../../bootstrap/plugin-loader.js';
27
+ import type { MainAgentHooks } from '../../graph/main-agent-types.js';
28
+ import type { OraclePlugin } from '../../plugin-api/oracle-plugin.js';
29
+ import type { AuthExcludedRoute, OracleConfig, OracleIdentity, Logger as PluginLogger, ReadonlyState, RuntimeContext } from '../../plugin-api/types.js';
30
+ import type { AmbientServices, UcanAdapter } from '../../runtime-context/ambient.js';
31
+ /**
32
+ * Capability shape exposed to tests on the `RuntimeContext`. Matches the
33
+ * `{ resource, action }` pair the production `UcanAdapter` reads.
34
+ */
35
+ export interface IntegrationCapability {
36
+ resource: string;
37
+ action: string;
38
+ }
39
+ /** Options for `createIntegrationOracle`. */
40
+ export interface CreateIntegrationOracleOptions {
41
+ /**
42
+ * App-level plugins. Defaults to `[]` so the harness can boot the
43
+ * minimum oracle (just core modules). Bundled plugins are independent —
44
+ * they come in via `bundledPlugins`.
45
+ */
46
+ plugins?: OraclePlugin[];
47
+ /**
48
+ * Override the bundled plugin set. `[]` keeps the canonical bundled
49
+ * catalog out of the test boot — useful for hello-world / health
50
+ * checks that shouldn't drag in real upstreams.
51
+ */
52
+ bundledPlugins?: OraclePlugin[];
53
+ /**
54
+ * Same shape as `createOracleApp`. Defaults to `{ name: '...' }` from
55
+ * `IDENTITY_DEFAULTS` below — override for plugins that read identity
56
+ * config (`prompt.opening`, …).
57
+ */
58
+ config?: OracleConfig;
59
+ /** Feature toggles. Identical to `createOracleApp.features`. */
60
+ features?: Partial<Record<string, FeatureToggle>>;
61
+ /** Host-declared Nest modules. */
62
+ nestModules?: Array<Type | DynamicModule>;
63
+ /** Host-declared auth-excluded routes (e.g. `/version` in qiforge-example). */
64
+ authExcludedRoutes?: AuthExcludedRoute[];
65
+ /** Override `process.env` for the boot. Defaults to `process.env`. */
66
+ env?: NodeJS.ProcessEnv;
67
+ /**
68
+ * Bind port — `0` (default) means "OS picks an ephemeral port". The
69
+ * actual port shows up in `result.baseUrl` after `listen()`.
70
+ */
71
+ port?: number;
72
+ /** Override the bootstrap logger. Defaults to a captured `Logger`. */
73
+ logger?: PluginLogger;
74
+ /**
75
+ * Override / extend the main-agent hooks. The harness always installs a
76
+ * default `resolveModel` that swaps the production model map to the
77
+ * PR-tier test model map (spec §7) — `main` → `moonshotai/kimi-k2.5`,
78
+ * `subagent` → `openai/gpt-oss-120b`. Caller-supplied hooks merge on top
79
+ * (caller wins per-key).
80
+ */
81
+ hooks?: MainAgentHooks;
82
+ }
83
+ /** Public surface of a booted integration oracle. */
84
+ export interface IntegrationOracle {
85
+ /** `http://127.0.0.1:<port>` of the running Nest app. */
86
+ baseUrl: string;
87
+ /** The `OracleApp` handle from `createOracleApp`. */
88
+ app: OracleApp;
89
+ /** Captured plugin lifecycle events + boot errors. */
90
+ events: {
91
+ statusChanges: PluginStatusChangeEvent[];
92
+ errors: Array<{
93
+ err: Error;
94
+ source: string;
95
+ }>;
96
+ };
97
+ /** Snapshot of plugin loader state. */
98
+ status: () => ReturnType<OracleApp['plugins']['status']>;
99
+ /** Stop the HTTP server + close Nest. Idempotent. */
100
+ close: () => Promise<void>;
101
+ }
102
+ /**
103
+ * Boot the runtime on an ephemeral port with real ambient services. Wraps
104
+ * `createOracleApp` identically to production — Matrix init still runs in
105
+ * the background, graceful shutdown still registers. The only test-time
106
+ * concessions are the ephemeral `port: 0` default and the captured
107
+ * lifecycle-event buffers exposed on `result.events`.
108
+ */
109
+ export declare function createIntegrationOracle(opts?: CreateIntegrationOracleOptions): Promise<IntegrationOracle>;
110
+ /** Options for `createIntegrationRuntime`. */
111
+ export interface CreateIntegrationRuntimeOptions {
112
+ /** Plugins under test. Resolved via the production loader. */
113
+ plugins: OraclePlugin[];
114
+ /** Feature toggles — same shape as `createOracleApp`. */
115
+ features?: Partial<Record<string, FeatureToggle>>;
116
+ /** Merged config the runtime exposes to plugins. Defaults to `process.env`. */
117
+ config?: Record<string, unknown>;
118
+ /**
119
+ * Test user identity. `did` is required; `matrixUserId` defaults to a
120
+ * synthesized `@did-...:test-host` value.
121
+ */
122
+ user: {
123
+ did: string;
124
+ matrixUserId?: string;
125
+ };
126
+ /** Base64 UCAN delegation string — sent as `userContext.ucanDelegation.raw`. */
127
+ delegation?: string;
128
+ /** Parsed delegation capabilities, when callers want strict UCAN checks. */
129
+ capabilities?: IntegrationCapability[];
130
+ /** Override the synthesized session. */
131
+ session?: Partial<RuntimeContext['session']>;
132
+ /** Override the read-only state used for tool invocations. */
133
+ state?: Partial<ReadonlyState>;
134
+ /** Override the oracle identity. */
135
+ identity?: Partial<OracleIdentity>;
136
+ /** Logger; defaults to a NestJS `Logger`. */
137
+ logger?: PluginLogger;
138
+ /**
139
+ * Optional `fetch` override — when set, plugin handlers that call
140
+ * `globalThis.fetch` route through this instead. Tests that need to
141
+ * stub upstreams can pass `undici.MockAgent`-style implementations.
142
+ */
143
+ fetch?: typeof globalThis.fetch;
144
+ /**
145
+ * Optional real `UcanAdapter` override. The default stub throws on
146
+ * `mintInvocation` because the Tier A entry point doesn't boot a
147
+ * `UcanService`. Tests for plugins whose tools mint downstream UCAN
148
+ * invocations (memory, sandbox, skills, composio, …) supply a real
149
+ * adapter — typically `bootedOracle.app.ambient.ucan`, after seeding
150
+ * the user's delegation into the booted oracle's `UcanService` cache.
151
+ */
152
+ ucan?: UcanAdapter;
153
+ }
154
+ /** Public surface of a Tier A integration runtime. */
155
+ export interface IntegrationRuntime {
156
+ /** Invoke a tool by name against the real runtime context. */
157
+ invokeTool: (name: string, args: unknown) => Promise<unknown>;
158
+ /** Invoke a middleware's lifecycle hooks in isolation. */
159
+ invokeMiddleware: (nameOrIndex: string | number, state: Record<string, unknown>, runtime?: {
160
+ context?: Record<string, unknown>;
161
+ }) => Promise<{
162
+ before?: unknown;
163
+ after?: unknown;
164
+ }>;
165
+ /** Invoke a sub-agent with a textual task — returns its first LLM reply. */
166
+ invokeSubAgent: (name: string, task: string) => Promise<string>;
167
+ /** The real `AmbientServices` bag exposed to plugin builders. */
168
+ ambient: AmbientServices;
169
+ /** No-op today; reserved for future resource holders. */
170
+ close: () => Promise<void>;
171
+ }
172
+ /**
173
+ * Build a Tier A runtime backed by real ambient services. The harness:
174
+ *
175
+ * 1. Resolves the plugin list via the production loader (same `autoDetect`
176
+ * gates a real boot would run).
177
+ * 2. Populates the six registries.
178
+ * 3. Wires real adapters for `llm`, `secrets`, `matrix`, `ucan`, `emit`
179
+ * (in-memory no-ops for Matrix and secrets — the harness doesn't need
180
+ * a live homeserver to call a plugin tool that doesn't depend on one).
181
+ * 4. Builds a fresh `RuntimeContext` per invocation using the test
182
+ * user/session/delegation.
183
+ *
184
+ * Use this when you want to call a tool *directly* against the real upstream
185
+ * (Memory Engine, Sandbox, Skills, Composio, Firecrawl, …) without a model.
186
+ */
187
+ export declare function createIntegrationRuntime(opts: CreateIntegrationRuntimeOptions): Promise<IntegrationRuntime>;
188
+ export type { BaseMessage };
189
+ //# sourceMappingURL=harness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../../src/testing/integration/harness.ts"],"names":[],"mappings":"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"}