@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,249 @@
1
+ import { MatrixProvider } from '@ixo/matrix-crdt';
2
+ import * as Y from 'yjs';
3
+ import { Logger } from '@nestjs/common';
4
+ // Shared file-level logger instance with file prefix
5
+ const logger = new Logger('MatrixProviderManager');
6
+ const wait = (ms) => new Promise((resolve) => {
7
+ setTimeout(resolve, ms);
8
+ });
9
+ /**
10
+ * MatrixProviderManager
11
+ *
12
+ * Manages a Y.Doc CRDT for a specific Matrix room.
13
+ *
14
+ * IMPORTANT: This class assumes the Matrix client is ALREADY synced
15
+ * via the EditorMatrixClient singleton. It does NOT manage client lifecycle.
16
+ *
17
+ * Each instance creates:
18
+ * - A new Y.Doc for the room
19
+ * - A MatrixProvider to sync Y.Doc with Matrix
20
+ *
21
+ * The singleton EditorMatrixClient handles:
22
+ * - Matrix connection
23
+ * - Background sync
24
+ * - Client lifecycle
25
+ */
26
+ export class MatrixProviderManager {
27
+ matrixClient;
28
+ cfg;
29
+ doc;
30
+ provider;
31
+ disposables = [];
32
+ documentAvailable = false;
33
+ disposed = false;
34
+ availabilityResolvers = [];
35
+ constructor(matrixClient, cfg) {
36
+ this.matrixClient = matrixClient;
37
+ this.cfg = cfg;
38
+ this.doc = new Y.Doc();
39
+ }
40
+ get ydoc() {
41
+ return this.doc;
42
+ }
43
+ get matrixProvider() {
44
+ return this.provider;
45
+ }
46
+ /**
47
+ * Initialize the provider for the configured room.
48
+ *
49
+ * Assumes the Matrix client is already synced (via EditorMatrixClient singleton).
50
+ * Creates a MatrixProvider to sync the Y.Doc with the Matrix room.
51
+ */
52
+ async init() {
53
+ if (this.disposed) {
54
+ throw new Error('MatrixProviderManager was already disposed');
55
+ }
56
+ const attempts = Math.max(1, this.cfg.provider.retryAttempts);
57
+ const delayMs = Math.max(0, this.cfg.provider.retryDelayMs);
58
+ for (let attempt = 1; attempt <= attempts; attempt += 1) {
59
+ try {
60
+ // Initialize the provider (creates MatrixProvider, fetches room history)
61
+ await this.initializeProvider();
62
+ // Wait for document to become available
63
+ await this.waitForAvailability(this.cfg.matrix.initialSyncTimeoutMs);
64
+ logger.log('Matrix provider initialized', { attempt });
65
+ logger.log(`📄 Y.Doc GUID: ${this.doc.guid}`);
66
+ logger.log(`📄 Room ID: ${JSON.stringify(this.cfg.matrix.room)}`);
67
+ return {
68
+ doc: this.doc,
69
+ awareness: this.provider?.awarenessInstance,
70
+ provider: this.ensureProvider(),
71
+ };
72
+ }
73
+ catch (error) {
74
+ logger.warn(`Matrix provider init attempt ${attempt} failed`, error);
75
+ await this.cleanupProvider();
76
+ if (attempt === attempts) {
77
+ throw error;
78
+ }
79
+ const backoff = delayMs * attempt;
80
+ logger.log(`Retrying provider initialization in ${backoff}ms`);
81
+ await wait(backoff);
82
+ }
83
+ }
84
+ throw new Error('Matrix provider initialization failed');
85
+ }
86
+ /**
87
+ * Ensures the room is available in the Matrix client's store.
88
+ * This is critical for createMessagesRequest() to work correctly.
89
+ */
90
+ async ensureRoomAvailable(roomId) {
91
+ const room = this.matrixClient.getRoom(roomId);
92
+ if (!room) {
93
+ logger.warn(`Room ${roomId} not in client store, attempting to join/peek...`);
94
+ try {
95
+ // Try joining first — peek fails when room previews are disabled
96
+ await this.matrixClient.joinRoom(roomId);
97
+ logger.log(`Successfully joined room ${roomId}`);
98
+ }
99
+ catch (joinError) {
100
+ logger.warn(joinError);
101
+ // Fall back to peek if join fails (e.g. already joined but not synced)
102
+ try {
103
+ await this.matrixClient.peekInRoom(roomId);
104
+ logger.log(`Successfully peeked into room ${roomId}`);
105
+ }
106
+ catch (peekError) {
107
+ const errorMsg = peekError instanceof Error ? peekError.message : String(peekError);
108
+ throw new Error(`Room ${roomId} not accessible. Ensure the client has been invited to the room. Error: ${errorMsg}`);
109
+ }
110
+ }
111
+ }
112
+ else {
113
+ logger.debug(`Room ${roomId} found in client store`);
114
+ }
115
+ }
116
+ async initializeProvider() {
117
+ this.cleanupProviderListeners();
118
+ const roomDescriptor = this.resolveRoomDescriptor();
119
+ // Resolve room ID (handle both 'id' and 'alias' types)
120
+ let roomId;
121
+ if (roomDescriptor.type === 'id') {
122
+ roomId = roomDescriptor.id;
123
+ }
124
+ else {
125
+ // Resolve room alias to room ID
126
+ const ret = await this.matrixClient.getRoomIdForAlias(roomDescriptor.alias);
127
+ roomId = ret.room_id;
128
+ }
129
+ // Ensure the room is in the client's store before proceeding
130
+ // This is critical for MatrixProvider to fetch room history correctly
131
+ await this.ensureRoomAvailable(roomId);
132
+ logger.log('Creating MatrixProvider', roomDescriptor);
133
+ this.provider = new MatrixProvider(this.doc, this.matrixClient, roomDescriptor, {
134
+ enableAwareness: this.cfg.provider.enableAwareness,
135
+ reader: {
136
+ snapshotInterval: 10,
137
+ },
138
+ writer: {
139
+ flushInterval: 10,
140
+ },
141
+ });
142
+ this.registerProviderListeners(this.provider);
143
+ await this.provider.initialize();
144
+ }
145
+ waitForAvailability(timeoutMs) {
146
+ if (this.documentAvailable) {
147
+ return Promise.resolve();
148
+ }
149
+ return new Promise((resolve, reject) => {
150
+ const timeoutHandle = setTimeout(() => {
151
+ this.availabilityResolvers = this.availabilityResolvers.filter((candidate) => candidate !== resolver);
152
+ reject(new Error(`Document did not become available within ${timeoutMs}ms. Check room permissions or connectivity.`));
153
+ }, timeoutMs);
154
+ const resolver = () => {
155
+ clearTimeout(timeoutHandle);
156
+ resolve();
157
+ };
158
+ this.availabilityResolvers.push(resolver);
159
+ });
160
+ }
161
+ registerProviderListeners(provider) {
162
+ this.disposables.push(provider.onDocumentAvailable(() => {
163
+ logger.log('Matrix document available');
164
+ // Wait briefly for Y.Doc to apply initial sync
165
+ // Can't rely on onReceivedEvents - it only fires for NEW events,
166
+ // not when connecting to an already-synced client
167
+ setTimeout(() => {
168
+ logger.log('Marking document as available after sync delay');
169
+ this.documentAvailable = true;
170
+ const resolvers = [...this.availabilityResolvers];
171
+ this.availabilityResolvers = [];
172
+ resolvers.forEach((resolver) => resolver());
173
+ }, 500); // Short delay for Y.Doc sync
174
+ }));
175
+ this.disposables.push(provider.onDocumentUnavailable(() => {
176
+ logger.warn('Matrix document unavailable');
177
+ this.documentAvailable = false;
178
+ }));
179
+ this.disposables.push(provider.onReceivedEvents(() => {
180
+ logger.debug('Received Matrix events - Y.Doc syncing content');
181
+ }));
182
+ }
183
+ cleanupProviderListeners() {
184
+ while (this.disposables.length > 0) {
185
+ const disposable = this.disposables.pop();
186
+ try {
187
+ disposable?.dispose();
188
+ }
189
+ catch (error) {
190
+ logger.warn('Failed to dispose provider listener', error);
191
+ }
192
+ }
193
+ }
194
+ resolveRoomDescriptor() {
195
+ if (this.cfg.matrix.room.type === 'id') {
196
+ return { type: 'id', id: this.cfg.matrix.room.value };
197
+ }
198
+ return { type: 'alias', alias: this.cfg.matrix.room.value };
199
+ }
200
+ ensureProvider() {
201
+ if (!this.provider) {
202
+ throw new Error('Matrix provider not initialized');
203
+ }
204
+ return this.provider;
205
+ }
206
+ /**
207
+ * Dispose of this provider manager.
208
+ *
209
+ * Cleans up:
210
+ * - MatrixProvider (stops polling, removes listeners)
211
+ * - Y.Doc (destroys local document state)
212
+ *
213
+ * Does NOT touch the Matrix client - it's managed by EditorMatrixClient singleton
214
+ * and shared across all providers/rooms.
215
+ */
216
+ async dispose() {
217
+ if (this.disposed) {
218
+ return;
219
+ }
220
+ logger.log('Disposing Matrix provider manager');
221
+ // Clean up provider and Y.Doc
222
+ await this.cleanupProvider();
223
+ this.doc.destroy();
224
+ // NOTE: We NEVER call matrixClient.stopClient() here!
225
+ // The Matrix client is managed by EditorMatrixClient singleton
226
+ // and is shared across all rooms. Stopping it would break
227
+ // all other active providers.
228
+ this.disposed = true;
229
+ }
230
+ async cleanupProvider() {
231
+ this.cleanupProviderListeners();
232
+ if (this.provider) {
233
+ try {
234
+ await this.provider.waitForFlush();
235
+ this.provider.dispose();
236
+ }
237
+ catch (error) {
238
+ logger.warn('Error while disposing MatrixProvider', error);
239
+ }
240
+ finally {
241
+ this.provider = undefined;
242
+ }
243
+ }
244
+ if (!this.documentAvailable) {
245
+ return;
246
+ }
247
+ this.documentAvailable = false;
248
+ }
249
+ }
@@ -0,0 +1,17 @@
1
+ import type { PluginTool } from '../../plugin-api/types.js';
2
+ import { type BlocknoteToolsConfig } from './blocknote-tools.js';
3
+ export interface CreateStandaloneEditorToolOptions {
4
+ /** Blocknote tools config built at plugin boot. */
5
+ toolsConfig: BlocknoteToolsConfig;
6
+ /** Matrix space ID to nest new pages under. */
7
+ spaceId: string;
8
+ /** Matrix user ID of the page owner — invited and given power level 50 on page creation. */
9
+ userMatrixId?: string;
10
+ }
11
+ /**
12
+ * Build the `call_editor_agent` plugin tool for standalone (no preset room)
13
+ * sessions. Each invocation spins up a short-lived inner agent over the
14
+ * supplied `room_id` and returns its final reply text.
15
+ */
16
+ export declare function createStandaloneEditorTool(opts: CreateStandaloneEditorToolOptions): PluginTool;
17
+ //# sourceMappingURL=standalone-editor-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone-editor-tool.d.ts","sourceRoot":"","sources":["../../../src/plugins/editor/standalone-editor-tool.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,sBAAsB,CAAC;AAsE9B,MAAM,WAAW,iCAAiC;IAChD,mDAAmD;IACnD,WAAW,EAAE,oBAAoB,CAAC;IAClC,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,iCAAiC,GACtC,UAAU,CAoHZ"}
@@ -0,0 +1,136 @@
1
+ import { HumanMessage } from '@langchain/core/messages';
2
+ import { createAgent } from 'langchain';
3
+ import { emojify } from '../../utils/emoji.js';
4
+ import { z } from 'zod';
5
+ import { isUserInRoom } from '../../matrix/room-membership.js';
6
+ import { tool as pluginTool } from '../../plugin-api/tool-helper.js';
7
+ import { createBlocknoteTools, } from './blocknote-tools.js';
8
+ import { resolveEditorMatrixClient } from './editor-mx.js';
9
+ import { createMintInvocationEditorTool } from './mint-invocation-tool.js';
10
+ import { createPageTools } from './page-tools.js';
11
+ import { editorAgentPrompt } from './prompts.js';
12
+ const standaloneEditorSchema = z.object({
13
+ room_id: z
14
+ .string()
15
+ .regex(/^!.+:.+$/, 'Room ID must start with "!" (e.g., "!abc123:matrix.org")')
16
+ .describe('The Matrix room ID of the page (e.g., "!oeGkcJIKNpeSiaGHVE:devmx.ixo.earth"). Must start with "!".'),
17
+ task: z
18
+ .string()
19
+ .describe('A detailed, self-contained editing instruction. The editor agent has NO conversation context — ' +
20
+ 'this string is ALL it receives. Include: explicit objective, block IDs, property names, exact values, ' +
21
+ 'and expected outcome. Do NOT include the room ID here — it goes in room_id.'),
22
+ });
23
+ const STANDALONE_DESCRIPTION = 'Call Editor Agent as a sub-agent to operate on a BlockNote page by Matrix room ID. ' +
24
+ 'Spins up an ephemeral editor session with full block-level capabilities and page management tools for the supplied room.';
25
+ function lastMessageContent(messages) {
26
+ const last = messages.at(-1);
27
+ if (!last?.content)
28
+ return '';
29
+ if (typeof last.content === 'string')
30
+ return last.content;
31
+ if (Array.isArray(last.content)) {
32
+ const textPart = last.content.find((block) => block.type === 'text' && block.text);
33
+ return textPart?.text ?? '';
34
+ }
35
+ return JSON.stringify(last.content);
36
+ }
37
+ /**
38
+ * Build the `call_editor_agent` plugin tool for standalone (no preset room)
39
+ * sessions. Each invocation spins up a short-lived inner agent over the
40
+ * supplied `room_id` and returns its final reply text.
41
+ */
42
+ export function createStandaloneEditorTool(opts) {
43
+ return pluginTool(async (rawArgs, ctx) => {
44
+ const { room_id: roomId, task } = standaloneEditorSchema.parse(rawArgs);
45
+ // The agent supplies `room_id` per call and the editor operates on it
46
+ // with the oracle's admin Matrix identity. Verify the authenticated user
47
+ // is a member of the room before touching it — without this an agent
48
+ // could be steered to read or edit any room id.
49
+ if (!(await isUserInRoom(roomId, ctx.user.matrixUserId))) {
50
+ ctx.logger.warn(`[StandaloneEditorTool] user ${ctx.user.did} is not a member of room ${roomId} — refusing access`);
51
+ return `You do not have access to room ${roomId}.`;
52
+ }
53
+ try {
54
+ const roomConfig = { type: 'id', value: roomId };
55
+ const matrixClient = await resolveEditorMatrixClient({
56
+ baseUrl: opts.toolsConfig.matrix.baseUrl,
57
+ userId: opts.toolsConfig.matrix.userId,
58
+ accessToken: opts.toolsConfig.matrix.accessToken,
59
+ matrixClient: opts.toolsConfig.matrixClient,
60
+ });
61
+ const appConfig = {
62
+ matrix: { ...opts.toolsConfig.matrix, room: roomConfig },
63
+ provider: { ...opts.toolsConfig.provider },
64
+ blocknote: { ...opts.toolsConfig.blocknote },
65
+ };
66
+ // `createBlocknoteTools` returns a discriminated union over the
67
+ // read-only flag. The standalone tool always wants the writable
68
+ // branch; this is the same narrowing the editor sub-agent applies.
69
+ const blocknoteTools = (await createBlocknoteTools(matrixClient, appConfig, false));
70
+ const pageTools = createPageTools({
71
+ matrixClient,
72
+ toolsConfig: opts.toolsConfig,
73
+ userMatrixId: opts.userMatrixId,
74
+ defaultSpaceId: opts.spaceId,
75
+ defaultRoomId: roomId,
76
+ });
77
+ const innerTools = [
78
+ blocknoteTools.listBlocksTool,
79
+ blocknoteTools.editBlockTool,
80
+ blocknoteTools.createBlockTool,
81
+ blocknoteTools.deleteBlockTool,
82
+ blocknoteTools.readBlockByIdTool,
83
+ blocknoteTools.searchBlocksTool,
84
+ blocknoteTools.readFlowContextTool,
85
+ blocknoteTools.readFlowStatusTool,
86
+ blocknoteTools.readBlockHistoryTool,
87
+ blocknoteTools.readPermissionsTool,
88
+ blocknoteTools.readSurveyTool,
89
+ blocknoteTools.fillSurveyAnswersTool,
90
+ blocknoteTools.validateSurveyAnswersTool,
91
+ blocknoteTools.executeActionTool,
92
+ blocknoteTools.findAndReplaceTool,
93
+ blocknoteTools.moveBlockTool,
94
+ blocknoteTools.bulkEditBlocksTool,
95
+ pageTools.readPageTool,
96
+ pageTools.createPageTool,
97
+ pageTools.updatePageTool,
98
+ ].filter((t) => Boolean(t));
99
+ // mint_invocation — only when an oracle signing key is loaded. The
100
+ // ephemeral agent gets it for the same reasons the long-lived editor
101
+ // sub-agent does: the delegation CAR is read from the flow's Y.Doc
102
+ // by CID, which needs the matrixClient + roomId baked into this
103
+ // closure.
104
+ if (ctx.ucan.hasSigningKey()) {
105
+ innerTools.push(createMintInvocationEditorTool({
106
+ matrixClient,
107
+ appConfig,
108
+ roomId,
109
+ ucanService: ctx.ucan,
110
+ blobStore: ctx.blobStore,
111
+ userDid: ctx.user.did,
112
+ }));
113
+ }
114
+ const agent = createAgent({
115
+ model: ctx.llm.get('subagent'),
116
+ tools: innerTools,
117
+ systemPrompt: editorAgentPrompt,
118
+ middleware: [],
119
+ });
120
+ const result = await agent.invoke({
121
+ messages: [new HumanMessage(task)],
122
+ });
123
+ const messages = result.messages;
124
+ return emojify(lastMessageContent(messages));
125
+ }
126
+ catch (err) {
127
+ const message = err instanceof Error ? err.message : String(err);
128
+ ctx.logger.error(`[StandaloneEditorTool] Failed for room ${roomId}: ${message}`);
129
+ return `Error opening editor for room ${roomId}: ${message}`;
130
+ }
131
+ }, {
132
+ name: 'call_editor_agent',
133
+ description: STANDALONE_DESCRIPTION,
134
+ schema: standaloneEditorSchema,
135
+ });
136
+ }
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Survey Helper Functions
3
+ *
4
+ * Utilities for parsing, validating, and working with SurveyJS survey schemas
5
+ * and answers in domainCreator blocks.
6
+ */
7
+ export interface SurveySchema {
8
+ title?: string;
9
+ description?: string;
10
+ pages: SurveyPage[];
11
+ showPageTitles?: boolean;
12
+ showQuestionNumbers?: string;
13
+ showProgressBar?: boolean;
14
+ progressBarLocation?: string;
15
+ }
16
+ export interface SurveyPage {
17
+ name?: string;
18
+ title?: string;
19
+ description?: string;
20
+ visibleIf?: string;
21
+ elements: SurveyElement[];
22
+ }
23
+ export interface SurveyElement {
24
+ type: string;
25
+ name: string;
26
+ title?: string;
27
+ description?: string;
28
+ isRequired?: boolean;
29
+ visibleIf?: string;
30
+ defaultValue?: unknown;
31
+ defaultValueExpression?: string;
32
+ inputType?: string;
33
+ choices?: Array<{
34
+ value: string;
35
+ text: string;
36
+ }>;
37
+ choicesByUrl?: {
38
+ url: string;
39
+ valueName: string;
40
+ titleName: string;
41
+ };
42
+ templateElements?: SurveyElement[];
43
+ elements?: SurveyElement[];
44
+ }
45
+ export interface SurveyQuestion {
46
+ name: string;
47
+ title: string;
48
+ description?: string;
49
+ type: string;
50
+ inputType?: string;
51
+ isRequired: boolean;
52
+ isVisible?: boolean;
53
+ visibleIf?: string;
54
+ defaultValue?: unknown;
55
+ choices?: Array<{
56
+ value: string;
57
+ text: string;
58
+ }>;
59
+ choicesByUrl?: {
60
+ url: string;
61
+ valueName: string;
62
+ titleName: string;
63
+ };
64
+ pageName?: string;
65
+ pageTitle?: string;
66
+ }
67
+ export interface ValidationError {
68
+ field: string;
69
+ message: string;
70
+ type: 'required' | 'type' | 'choice' | 'format';
71
+ }
72
+ export interface ValidationWarning {
73
+ field: string;
74
+ message: string;
75
+ }
76
+ export interface ValidationResult {
77
+ valid: boolean;
78
+ errors: ValidationError[];
79
+ warnings: ValidationWarning[];
80
+ }
81
+ /**
82
+ * Parse a JSON string survey schema into a structured object
83
+ */
84
+ export declare function parseSurveySchema(schemaString: string): SurveySchema | null;
85
+ /**
86
+ * Parse a JSON string of answers into a structured object
87
+ */
88
+ export declare function parseSurveyAnswers(answersString: string): Record<string, unknown>;
89
+ /**
90
+ * Evaluate a visibility condition against current answers
91
+ * Simple evaluation for common patterns like {field} = value or {field} = true
92
+ */
93
+ export declare function evaluateVisibilityCondition(condition: string | undefined, answers: Record<string, unknown>): boolean;
94
+ /**
95
+ * Extract all questions from a survey schema with metadata
96
+ * Fetches choices from choicesByUrl if present
97
+ * If answers are provided, computes visibility inline
98
+ */
99
+ export declare function extractSurveyQuestions(schema: SurveySchema, answers?: Record<string, unknown>): Promise<SurveyQuestion[]>;
100
+ /**
101
+ * Get all visible questions based on current answers
102
+ */
103
+ export declare function getVisibleQuestions(answers: Record<string, unknown>, schema: SurveySchema): Promise<SurveyQuestion[]>;
104
+ /**
105
+ * Get missing required fields from answers
106
+ */
107
+ export declare function getMissingRequiredFields(answers: Record<string, unknown>, schema: SurveySchema): Promise<string[]>;
108
+ /**
109
+ * Validate answers against schema requirements
110
+ */
111
+ export declare function validateAnswersAgainstSchema(answers: Record<string, unknown>, schema: SurveySchema): Promise<ValidationResult>;
112
+ //# sourceMappingURL=survey-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"survey-helpers.d.ts","sourceRoot":"","sources":["../../../src/plugins/editor/survey-helpers.ts"],"names":[],"mappings":"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"}