@relaycast/engine 1.1.7

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 (445) hide show
  1. package/dist/adapters/node/database.d.ts +25 -0
  2. package/dist/adapters/node/database.d.ts.map +1 -0
  3. package/dist/adapters/node/database.js +71 -0
  4. package/dist/adapters/node/database.js.map +1 -0
  5. package/dist/adapters/node/event-queue.d.ts +15 -0
  6. package/dist/adapters/node/event-queue.d.ts.map +1 -0
  7. package/dist/adapters/node/event-queue.js +27 -0
  8. package/dist/adapters/node/event-queue.js.map +1 -0
  9. package/dist/adapters/node/files.d.ts +47 -0
  10. package/dist/adapters/node/files.d.ts.map +1 -0
  11. package/dist/adapters/node/files.js +128 -0
  12. package/dist/adapters/node/files.js.map +1 -0
  13. package/dist/adapters/node/index.d.ts +60 -0
  14. package/dist/adapters/node/index.d.ts.map +1 -0
  15. package/dist/adapters/node/index.js +79 -0
  16. package/dist/adapters/node/index.js.map +1 -0
  17. package/dist/adapters/node/kv.d.ts +27 -0
  18. package/dist/adapters/node/kv.d.ts.map +1 -0
  19. package/dist/adapters/node/kv.js +67 -0
  20. package/dist/adapters/node/kv.js.map +1 -0
  21. package/dist/adapters/node/mcp.d.ts +18 -0
  22. package/dist/adapters/node/mcp.d.ts.map +1 -0
  23. package/dist/adapters/node/mcp.js +53 -0
  24. package/dist/adapters/node/mcp.js.map +1 -0
  25. package/dist/adapters/node/presence.d.ts +33 -0
  26. package/dist/adapters/node/presence.d.ts.map +1 -0
  27. package/dist/adapters/node/presence.js +113 -0
  28. package/dist/adapters/node/presence.js.map +1 -0
  29. package/dist/adapters/node/rate-limit.d.ts +17 -0
  30. package/dist/adapters/node/rate-limit.d.ts.map +1 -0
  31. package/dist/adapters/node/rate-limit.js +36 -0
  32. package/dist/adapters/node/rate-limit.js.map +1 -0
  33. package/dist/adapters/node/realtime.d.ts +72 -0
  34. package/dist/adapters/node/realtime.d.ts.map +1 -0
  35. package/dist/adapters/node/realtime.js +274 -0
  36. package/dist/adapters/node/realtime.js.map +1 -0
  37. package/dist/auth/index.d.ts +21 -0
  38. package/dist/auth/index.d.ts.map +1 -0
  39. package/dist/auth/index.js +50 -0
  40. package/dist/auth/index.js.map +1 -0
  41. package/dist/bin/serve.d.ts +3 -0
  42. package/dist/bin/serve.d.ts.map +1 -0
  43. package/dist/bin/serve.js +74 -0
  44. package/dist/bin/serve.js.map +1 -0
  45. package/dist/db/index.d.ts +16 -0
  46. package/dist/db/index.d.ts.map +1 -0
  47. package/dist/db/index.js +24 -0
  48. package/dist/db/index.js.map +1 -0
  49. package/dist/db/migrate.d.ts +14 -0
  50. package/dist/db/migrate.d.ts.map +1 -0
  51. package/dist/db/migrate.js +16 -0
  52. package/dist/db/migrate.js.map +1 -0
  53. package/dist/db/migrations/0000_broad_dagger.sql +227 -0
  54. package/dist/db/migrations/0001_fts5_search.sql +23 -0
  55. package/dist/db/migrations/0002_add_metadata_columns.sql +16 -0
  56. package/dist/db/migrations/0003_add_channel_mute.sql +5 -0
  57. package/dist/db/migrations/0004_a2a_agents.sql +21 -0
  58. package/dist/db/migrations/0005_certifications.sql +24 -0
  59. package/dist/db/migrations/0006_message_logs.sql +30 -0
  60. package/dist/db/migrations/0007_directory.sql +125 -0
  61. package/dist/db/migrations/0008_smart_routing.sql +30 -0
  62. package/dist/db/migrations/0009_drop_workspace_name_unique.sql +4 -0
  63. package/dist/db/migrations/0010_actions_and_harness.sql +108 -0
  64. package/dist/db/migrations/0011_stable_handle.sql +5 -0
  65. package/dist/db/migrations/0012_delivery_and_sequence_constraints.sql +26 -0
  66. package/dist/db/migrations/0013_status_active.sql +9 -0
  67. package/dist/db/migrations/meta/0000_snapshot.json +1694 -0
  68. package/dist/db/migrations/meta/_journal.json +13 -0
  69. package/dist/db/schema.d.ts +4742 -0
  70. package/dist/db/schema.d.ts.map +1 -0
  71. package/dist/db/schema.js +572 -0
  72. package/dist/db/schema.js.map +1 -0
  73. package/dist/engine/a2a-health.d.ts +11 -0
  74. package/dist/engine/a2a-health.d.ts.map +1 -0
  75. package/dist/engine/a2a-health.js +65 -0
  76. package/dist/engine/a2a-health.js.map +1 -0
  77. package/dist/engine/a2a.d.ts +73 -0
  78. package/dist/engine/a2a.d.ts.map +1 -0
  79. package/dist/engine/a2a.js +549 -0
  80. package/dist/engine/a2a.js.map +1 -0
  81. package/dist/engine/action.d.ts +85 -0
  82. package/dist/engine/action.d.ts.map +1 -0
  83. package/dist/engine/action.js +220 -0
  84. package/dist/engine/action.js.map +1 -0
  85. package/dist/engine/activity.d.ts +21 -0
  86. package/dist/engine/activity.d.ts.map +1 -0
  87. package/dist/engine/activity.js +46 -0
  88. package/dist/engine/activity.js.map +1 -0
  89. package/dist/engine/agent.d.ts +155 -0
  90. package/dist/engine/agent.d.ts.map +1 -0
  91. package/dist/engine/agent.js +408 -0
  92. package/dist/engine/agent.js.map +1 -0
  93. package/dist/engine/cache.d.ts +19 -0
  94. package/dist/engine/cache.d.ts.map +1 -0
  95. package/dist/engine/cache.js +40 -0
  96. package/dist/engine/cache.js.map +1 -0
  97. package/dist/engine/certify.d.ts +84 -0
  98. package/dist/engine/certify.d.ts.map +1 -0
  99. package/dist/engine/certify.js +452 -0
  100. package/dist/engine/certify.js.map +1 -0
  101. package/dist/engine/channel.d.ts +67 -0
  102. package/dist/engine/channel.d.ts.map +1 -0
  103. package/dist/engine/channel.js +375 -0
  104. package/dist/engine/channel.js.map +1 -0
  105. package/dist/engine/console.d.ts +83 -0
  106. package/dist/engine/console.d.ts.map +1 -0
  107. package/dist/engine/console.js +189 -0
  108. package/dist/engine/console.js.map +1 -0
  109. package/dist/engine/directory.d.ts +241 -0
  110. package/dist/engine/directory.d.ts.map +1 -0
  111. package/dist/engine/directory.js +528 -0
  112. package/dist/engine/directory.js.map +1 -0
  113. package/dist/engine/dm.d.ts +63 -0
  114. package/dist/engine/dm.d.ts.map +1 -0
  115. package/dist/engine/dm.js +397 -0
  116. package/dist/engine/dm.js.map +1 -0
  117. package/dist/engine/dmAll.d.ts +11 -0
  118. package/dist/engine/dmAll.d.ts.map +1 -0
  119. package/dist/engine/dmAll.js +117 -0
  120. package/dist/engine/dmAll.js.map +1 -0
  121. package/dist/engine/event-id.d.ts +2 -0
  122. package/dist/engine/event-id.d.ts.map +1 -0
  123. package/dist/engine/event-id.js +0 -0
  124. package/dist/engine/event-id.js.map +1 -0
  125. package/dist/engine/eventDelivery.d.ts +12 -0
  126. package/dist/engine/eventDelivery.d.ts.map +1 -0
  127. package/dist/engine/eventDelivery.js +103 -0
  128. package/dist/engine/eventDelivery.js.map +1 -0
  129. package/dist/engine/eventQueue.d.ts +6 -0
  130. package/dist/engine/eventQueue.d.ts.map +1 -0
  131. package/dist/engine/eventQueue.js +23 -0
  132. package/dist/engine/eventQueue.js.map +1 -0
  133. package/dist/engine/eventSubscription.d.ts +59 -0
  134. package/dist/engine/eventSubscription.d.ts.map +1 -0
  135. package/dist/engine/eventSubscription.js +74 -0
  136. package/dist/engine/eventSubscription.js.map +1 -0
  137. package/dist/engine/file.d.ts +43 -0
  138. package/dist/engine/file.d.ts.map +1 -0
  139. package/dist/engine/file.js +115 -0
  140. package/dist/engine/file.js.map +1 -0
  141. package/dist/engine/groupDm.d.ts +54 -0
  142. package/dist/engine/groupDm.d.ts.map +1 -0
  143. package/dist/engine/groupDm.js +262 -0
  144. package/dist/engine/groupDm.js.map +1 -0
  145. package/dist/engine/inboundWebhook.d.ts +45 -0
  146. package/dist/engine/inboundWebhook.d.ts.map +1 -0
  147. package/dist/engine/inboundWebhook.js +170 -0
  148. package/dist/engine/inboundWebhook.js.map +1 -0
  149. package/dist/engine/inbox.d.ts +34 -0
  150. package/dist/engine/inbox.d.ts.map +1 -0
  151. package/dist/engine/inbox.js +141 -0
  152. package/dist/engine/inbox.js.map +1 -0
  153. package/dist/engine/index.d.ts +10 -0
  154. package/dist/engine/index.d.ts.map +1 -0
  155. package/dist/engine/index.js +10 -0
  156. package/dist/engine/index.js.map +1 -0
  157. package/dist/engine/message.d.ts +81 -0
  158. package/dist/engine/message.d.ts.map +1 -0
  159. package/dist/engine/message.js +293 -0
  160. package/dist/engine/message.js.map +1 -0
  161. package/dist/engine/presence.d.ts +12 -0
  162. package/dist/engine/presence.d.ts.map +1 -0
  163. package/dist/engine/presence.js +24 -0
  164. package/dist/engine/presence.js.map +1 -0
  165. package/dist/engine/reaction.d.ts +19 -0
  166. package/dist/engine/reaction.d.ts.map +1 -0
  167. package/dist/engine/reaction.js +97 -0
  168. package/dist/engine/reaction.js.map +1 -0
  169. package/dist/engine/receipt.d.ts +19 -0
  170. package/dist/engine/receipt.d.ts.map +1 -0
  171. package/dist/engine/receipt.js +96 -0
  172. package/dist/engine/receipt.js.map +1 -0
  173. package/dist/engine/resyncQuery.d.ts +15 -0
  174. package/dist/engine/resyncQuery.d.ts.map +1 -0
  175. package/dist/engine/resyncQuery.js +124 -0
  176. package/dist/engine/resyncQuery.js.map +1 -0
  177. package/dist/engine/routing.d.ts +45 -0
  178. package/dist/engine/routing.d.ts.map +1 -0
  179. package/dist/engine/routing.js +390 -0
  180. package/dist/engine/routing.js.map +1 -0
  181. package/dist/engine/search.d.ts +19 -0
  182. package/dist/engine/search.d.ts.map +1 -0
  183. package/dist/engine/search.js +60 -0
  184. package/dist/engine/search.js.map +1 -0
  185. package/dist/engine/searchQuery.d.ts +8 -0
  186. package/dist/engine/searchQuery.d.ts.map +1 -0
  187. package/dist/engine/searchQuery.js +19 -0
  188. package/dist/engine/searchQuery.js.map +1 -0
  189. package/dist/engine/sessionEvent.d.ts +29 -0
  190. package/dist/engine/sessionEvent.d.ts.map +1 -0
  191. package/dist/engine/sessionEvent.js +76 -0
  192. package/dist/engine/sessionEvent.js.map +1 -0
  193. package/dist/engine/snowflake.d.ts +14 -0
  194. package/dist/engine/snowflake.d.ts.map +1 -0
  195. package/dist/engine/snowflake.js +88 -0
  196. package/dist/engine/snowflake.js.map +1 -0
  197. package/dist/engine/systemPrompt.d.ts +13 -0
  198. package/dist/engine/systemPrompt.d.ts.map +1 -0
  199. package/dist/engine/systemPrompt.js +31 -0
  200. package/dist/engine/systemPrompt.js.map +1 -0
  201. package/dist/engine/thread.d.ts +56 -0
  202. package/dist/engine/thread.d.ts.map +1 -0
  203. package/dist/engine/thread.js +158 -0
  204. package/dist/engine/thread.js.map +1 -0
  205. package/dist/engine/tokenRotate.d.ts +8 -0
  206. package/dist/engine/tokenRotate.d.ts.map +1 -0
  207. package/dist/engine/tokenRotate.js +25 -0
  208. package/dist/engine/tokenRotate.js.map +1 -0
  209. package/dist/engine/usage.d.ts +16 -0
  210. package/dist/engine/usage.d.ts.map +1 -0
  211. package/dist/engine/usage.js +24 -0
  212. package/dist/engine/usage.js.map +1 -0
  213. package/dist/engine/workspace.d.ts +44 -0
  214. package/dist/engine/workspace.d.ts.map +1 -0
  215. package/dist/engine/workspace.js +127 -0
  216. package/dist/engine/workspace.js.map +1 -0
  217. package/dist/engine/wsTransform.d.ts +14 -0
  218. package/dist/engine/wsTransform.d.ts.map +1 -0
  219. package/dist/engine/wsTransform.js +196 -0
  220. package/dist/engine/wsTransform.js.map +1 -0
  221. package/dist/engine.d.ts +18 -0
  222. package/dist/engine.d.ts.map +1 -0
  223. package/dist/engine.js +275 -0
  224. package/dist/engine.js.map +1 -0
  225. package/dist/entrypoints/node.d.ts +35 -0
  226. package/dist/entrypoints/node.d.ts.map +1 -0
  227. package/dist/entrypoints/node.js +114 -0
  228. package/dist/entrypoints/node.js.map +1 -0
  229. package/dist/env.d.ts +38 -0
  230. package/dist/env.d.ts.map +1 -0
  231. package/dist/env.js +2 -0
  232. package/dist/env.js.map +1 -0
  233. package/dist/index.d.ts +14 -0
  234. package/dist/index.d.ts.map +1 -0
  235. package/dist/index.js +16 -0
  236. package/dist/index.js.map +1 -0
  237. package/dist/lib/logger.d.ts +47 -0
  238. package/dist/lib/logger.d.ts.map +1 -0
  239. package/dist/lib/logger.js +214 -0
  240. package/dist/lib/logger.js.map +1 -0
  241. package/dist/lib/origin.d.ts +25 -0
  242. package/dist/lib/origin.d.ts.map +1 -0
  243. package/dist/lib/origin.js +80 -0
  244. package/dist/lib/origin.js.map +1 -0
  245. package/dist/lib/serverTelemetry.d.ts +12 -0
  246. package/dist/lib/serverTelemetry.d.ts.map +1 -0
  247. package/dist/lib/serverTelemetry.js +46 -0
  248. package/dist/lib/serverTelemetry.js.map +1 -0
  249. package/dist/lib/ssrf.d.ts +23 -0
  250. package/dist/lib/ssrf.d.ts.map +1 -0
  251. package/dist/lib/ssrf.js +57 -0
  252. package/dist/lib/ssrf.js.map +1 -0
  253. package/dist/lib/workspaceStream.d.ts +9 -0
  254. package/dist/lib/workspaceStream.d.ts.map +1 -0
  255. package/dist/lib/workspaceStream.js +53 -0
  256. package/dist/lib/workspaceStream.js.map +1 -0
  257. package/dist/middleware/auth.d.ts +9 -0
  258. package/dist/middleware/auth.d.ts.map +1 -0
  259. package/dist/middleware/auth.js +40 -0
  260. package/dist/middleware/auth.js.map +1 -0
  261. package/dist/middleware/engine-context.d.ts +9 -0
  262. package/dist/middleware/engine-context.d.ts.map +1 -0
  263. package/dist/middleware/engine-context.js +15 -0
  264. package/dist/middleware/engine-context.js.map +1 -0
  265. package/dist/middleware/idempotency.d.ts +24 -0
  266. package/dist/middleware/idempotency.d.ts.map +1 -0
  267. package/dist/middleware/idempotency.js +148 -0
  268. package/dist/middleware/idempotency.js.map +1 -0
  269. package/dist/middleware/logger.d.ts +4 -0
  270. package/dist/middleware/logger.d.ts.map +1 -0
  271. package/dist/middleware/logger.js +163 -0
  272. package/dist/middleware/logger.js.map +1 -0
  273. package/dist/middleware/planLimits.d.ts +5 -0
  274. package/dist/middleware/planLimits.d.ts.map +1 -0
  275. package/dist/middleware/planLimits.js +35 -0
  276. package/dist/middleware/planLimits.js.map +1 -0
  277. package/dist/middleware/presenceRefresh.d.ts +3 -0
  278. package/dist/middleware/presenceRefresh.d.ts.map +1 -0
  279. package/dist/middleware/presenceRefresh.js +18 -0
  280. package/dist/middleware/presenceRefresh.js.map +1 -0
  281. package/dist/middleware/rateLimit.d.ts +3 -0
  282. package/dist/middleware/rateLimit.d.ts.map +1 -0
  283. package/dist/middleware/rateLimit.js +69 -0
  284. package/dist/middleware/rateLimit.js.map +1 -0
  285. package/dist/middleware/usageTracker.d.ts +3 -0
  286. package/dist/middleware/usageTracker.d.ts.map +1 -0
  287. package/dist/middleware/usageTracker.js +10 -0
  288. package/dist/middleware/usageTracker.js.map +1 -0
  289. package/dist/ports/auth.d.ts +45 -0
  290. package/dist/ports/auth.d.ts.map +1 -0
  291. package/dist/ports/auth.js +2 -0
  292. package/dist/ports/auth.js.map +1 -0
  293. package/dist/ports/database.d.ts +20 -0
  294. package/dist/ports/database.d.ts.map +1 -0
  295. package/dist/ports/database.js +2 -0
  296. package/dist/ports/database.js.map +1 -0
  297. package/dist/ports/entitlements.d.ts +25 -0
  298. package/dist/ports/entitlements.d.ts.map +1 -0
  299. package/dist/ports/entitlements.js +2 -0
  300. package/dist/ports/entitlements.js.map +1 -0
  301. package/dist/ports/event-queue.d.ts +19 -0
  302. package/dist/ports/event-queue.d.ts.map +1 -0
  303. package/dist/ports/event-queue.js +2 -0
  304. package/dist/ports/event-queue.js.map +1 -0
  305. package/dist/ports/files.d.ts +28 -0
  306. package/dist/ports/files.d.ts.map +1 -0
  307. package/dist/ports/files.js +2 -0
  308. package/dist/ports/files.js.map +1 -0
  309. package/dist/ports/index.d.ts +84 -0
  310. package/dist/ports/index.d.ts.map +1 -0
  311. package/dist/ports/index.js +2 -0
  312. package/dist/ports/index.js.map +1 -0
  313. package/dist/ports/kv.d.ts +25 -0
  314. package/dist/ports/kv.d.ts.map +1 -0
  315. package/dist/ports/kv.js +2 -0
  316. package/dist/ports/kv.js.map +1 -0
  317. package/dist/ports/mcp.d.ts +18 -0
  318. package/dist/ports/mcp.d.ts.map +1 -0
  319. package/dist/ports/mcp.js +2 -0
  320. package/dist/ports/mcp.js.map +1 -0
  321. package/dist/ports/presence.d.ts +18 -0
  322. package/dist/ports/presence.d.ts.map +1 -0
  323. package/dist/ports/presence.js +2 -0
  324. package/dist/ports/presence.js.map +1 -0
  325. package/dist/ports/rate-limit.d.ts +20 -0
  326. package/dist/ports/rate-limit.d.ts.map +1 -0
  327. package/dist/ports/rate-limit.js +2 -0
  328. package/dist/ports/rate-limit.js.map +1 -0
  329. package/dist/ports/realtime.d.ts +104 -0
  330. package/dist/ports/realtime.d.ts.map +1 -0
  331. package/dist/ports/realtime.js +19 -0
  332. package/dist/ports/realtime.js.map +1 -0
  333. package/dist/ports/telemetry.d.ts +20 -0
  334. package/dist/ports/telemetry.d.ts.map +1 -0
  335. package/dist/ports/telemetry.js +2 -0
  336. package/dist/ports/telemetry.js.map +1 -0
  337. package/dist/providers/noop-telemetry.d.ts +13 -0
  338. package/dist/providers/noop-telemetry.d.ts.map +1 -0
  339. package/dist/providers/noop-telemetry.js +16 -0
  340. package/dist/providers/noop-telemetry.js.map +1 -0
  341. package/dist/providers/static-entitlements.d.ts +23 -0
  342. package/dist/providers/static-entitlements.d.ts.map +1 -0
  343. package/dist/providers/static-entitlements.js +42 -0
  344. package/dist/providers/static-entitlements.js.map +1 -0
  345. package/dist/routes/a2a.d.ts +4 -0
  346. package/dist/routes/a2a.d.ts.map +1 -0
  347. package/dist/routes/a2a.js +375 -0
  348. package/dist/routes/a2a.js.map +1 -0
  349. package/dist/routes/action.d.ts +4 -0
  350. package/dist/routes/action.d.ts.map +1 -0
  351. package/dist/routes/action.js +213 -0
  352. package/dist/routes/action.js.map +1 -0
  353. package/dist/routes/agent.d.ts +4 -0
  354. package/dist/routes/agent.d.ts.map +1 -0
  355. package/dist/routes/agent.js +431 -0
  356. package/dist/routes/agent.js.map +1 -0
  357. package/dist/routes/background.d.ts +13 -0
  358. package/dist/routes/background.d.ts.map +1 -0
  359. package/dist/routes/background.js +33 -0
  360. package/dist/routes/background.js.map +1 -0
  361. package/dist/routes/certify.d.ts +4 -0
  362. package/dist/routes/certify.d.ts.map +1 -0
  363. package/dist/routes/certify.js +119 -0
  364. package/dist/routes/certify.js.map +1 -0
  365. package/dist/routes/channel.d.ts +4 -0
  366. package/dist/routes/channel.d.ts.map +1 -0
  367. package/dist/routes/channel.js +492 -0
  368. package/dist/routes/channel.js.map +1 -0
  369. package/dist/routes/console.d.ts +4 -0
  370. package/dist/routes/console.d.ts.map +1 -0
  371. package/dist/routes/console.js +117 -0
  372. package/dist/routes/console.js.map +1 -0
  373. package/dist/routes/directory.d.ts +4 -0
  374. package/dist/routes/directory.d.ts.map +1 -0
  375. package/dist/routes/directory.js +236 -0
  376. package/dist/routes/directory.js.map +1 -0
  377. package/dist/routes/dm.d.ts +4 -0
  378. package/dist/routes/dm.d.ts.map +1 -0
  379. package/dist/routes/dm.js +157 -0
  380. package/dist/routes/dm.js.map +1 -0
  381. package/dist/routes/eventSubscription.d.ts +4 -0
  382. package/dist/routes/eventSubscription.d.ts.map +1 -0
  383. package/dist/routes/eventSubscription.js +115 -0
  384. package/dist/routes/eventSubscription.js.map +1 -0
  385. package/dist/routes/fanout.d.ts +17 -0
  386. package/dist/routes/fanout.d.ts.map +1 -0
  387. package/dist/routes/fanout.js +150 -0
  388. package/dist/routes/fanout.js.map +1 -0
  389. package/dist/routes/file.d.ts +4 -0
  390. package/dist/routes/file.d.ts.map +1 -0
  391. package/dist/routes/file.js +166 -0
  392. package/dist/routes/file.js.map +1 -0
  393. package/dist/routes/groupDm.d.ts +4 -0
  394. package/dist/routes/groupDm.d.ts.map +1 -0
  395. package/dist/routes/groupDm.js +204 -0
  396. package/dist/routes/groupDm.js.map +1 -0
  397. package/dist/routes/health.d.ts +4 -0
  398. package/dist/routes/health.d.ts.map +1 -0
  399. package/dist/routes/health.js +10 -0
  400. package/dist/routes/health.js.map +1 -0
  401. package/dist/routes/inboundWebhook.d.ts +4 -0
  402. package/dist/routes/inboundWebhook.d.ts.map +1 -0
  403. package/dist/routes/inboundWebhook.js +149 -0
  404. package/dist/routes/inboundWebhook.js.map +1 -0
  405. package/dist/routes/inbox.d.ts +4 -0
  406. package/dist/routes/inbox.d.ts.map +1 -0
  407. package/dist/routes/inbox.js +23 -0
  408. package/dist/routes/inbox.js.map +1 -0
  409. package/dist/routes/message.d.ts +4 -0
  410. package/dist/routes/message.d.ts.map +1 -0
  411. package/dist/routes/message.js +164 -0
  412. package/dist/routes/message.js.map +1 -0
  413. package/dist/routes/presence.d.ts +4 -0
  414. package/dist/routes/presence.d.ts.map +1 -0
  415. package/dist/routes/presence.js +70 -0
  416. package/dist/routes/presence.js.map +1 -0
  417. package/dist/routes/reaction.d.ts +4 -0
  418. package/dist/routes/reaction.d.ts.map +1 -0
  419. package/dist/routes/reaction.js +152 -0
  420. package/dist/routes/reaction.js.map +1 -0
  421. package/dist/routes/receipt.d.ts +4 -0
  422. package/dist/routes/receipt.d.ts.map +1 -0
  423. package/dist/routes/receipt.js +100 -0
  424. package/dist/routes/receipt.js.map +1 -0
  425. package/dist/routes/routing.d.ts +4 -0
  426. package/dist/routes/routing.d.ts.map +1 -0
  427. package/dist/routes/routing.js +186 -0
  428. package/dist/routes/routing.js.map +1 -0
  429. package/dist/routes/search.d.ts +4 -0
  430. package/dist/routes/search.d.ts.map +1 -0
  431. package/dist/routes/search.js +48 -0
  432. package/dist/routes/search.js.map +1 -0
  433. package/dist/routes/systemPrompt.d.ts +4 -0
  434. package/dist/routes/systemPrompt.d.ts.map +1 -0
  435. package/dist/routes/systemPrompt.js +66 -0
  436. package/dist/routes/systemPrompt.js.map +1 -0
  437. package/dist/routes/thread.d.ts +4 -0
  438. package/dist/routes/thread.d.ts.map +1 -0
  439. package/dist/routes/thread.js +126 -0
  440. package/dist/routes/thread.js.map +1 -0
  441. package/dist/routes/workspace.d.ts +4 -0
  442. package/dist/routes/workspace.d.ts.map +1 -0
  443. package/dist/routes/workspace.js +355 -0
  444. package/dist/routes/workspace.js.map +1 -0
  445. package/package.json +71 -0
@@ -0,0 +1,220 @@
1
+ import { eq, and } from 'drizzle-orm';
2
+ import { actions, actionInvocations, agents } from '../db/schema.js';
3
+ import { generateId } from './snowflake.js';
4
+ export async function registerAction(db, workspaceId, data) {
5
+ const [agent] = await db
6
+ .select()
7
+ .from(agents)
8
+ .where(and(eq(agents.workspaceId, workspaceId), eq(agents.name, data.handler_agent)));
9
+ if (!agent) {
10
+ const err = new Error(`Agent "${data.handler_agent}" not found`);
11
+ err.status = 404;
12
+ err.code = 'agent_not_found';
13
+ throw err;
14
+ }
15
+ const id = `act_${generateId()}`;
16
+ const [action] = await db
17
+ .insert(actions)
18
+ .values({
19
+ id,
20
+ workspaceId,
21
+ name: data.name,
22
+ description: data.description,
23
+ handlerAgentId: agent.id,
24
+ inputSchema: data.input_schema ?? {},
25
+ outputSchema: data.output_schema ?? {},
26
+ availableTo: data.available_to ?? null,
27
+ })
28
+ .returning();
29
+ return {
30
+ id: action.id,
31
+ name: action.name,
32
+ description: action.description,
33
+ handler_agent: data.handler_agent,
34
+ input_schema: action.inputSchema,
35
+ output_schema: action.outputSchema,
36
+ available_to: action.availableTo ?? null,
37
+ is_active: action.isActive,
38
+ created_at: action.createdAt.toISOString(),
39
+ };
40
+ }
41
+ export async function listActions(db, workspaceId) {
42
+ const rows = await db
43
+ .select({
44
+ id: actions.id,
45
+ name: actions.name,
46
+ description: actions.description,
47
+ handlerAgentId: actions.handlerAgentId,
48
+ handlerAgentName: agents.name,
49
+ inputSchema: actions.inputSchema,
50
+ outputSchema: actions.outputSchema,
51
+ availableTo: actions.availableTo,
52
+ isActive: actions.isActive,
53
+ createdAt: actions.createdAt,
54
+ })
55
+ .from(actions)
56
+ .innerJoin(agents, eq(actions.handlerAgentId, agents.id))
57
+ .where(eq(actions.workspaceId, workspaceId));
58
+ return rows.map((r) => ({
59
+ id: r.id,
60
+ name: r.name,
61
+ description: r.description,
62
+ handler_agent: r.handlerAgentName,
63
+ input_schema: r.inputSchema,
64
+ output_schema: r.outputSchema,
65
+ available_to: r.availableTo ?? null,
66
+ is_active: r.isActive,
67
+ created_at: r.createdAt.toISOString(),
68
+ }));
69
+ }
70
+ export async function getAction(db, workspaceId, name) {
71
+ const [row] = await db
72
+ .select({
73
+ id: actions.id,
74
+ name: actions.name,
75
+ description: actions.description,
76
+ handlerAgentId: actions.handlerAgentId,
77
+ handlerAgentName: agents.name,
78
+ inputSchema: actions.inputSchema,
79
+ outputSchema: actions.outputSchema,
80
+ availableTo: actions.availableTo,
81
+ isActive: actions.isActive,
82
+ createdAt: actions.createdAt,
83
+ })
84
+ .from(actions)
85
+ .innerJoin(agents, eq(actions.handlerAgentId, agents.id))
86
+ .where(and(eq(actions.workspaceId, workspaceId), eq(actions.name, name)));
87
+ if (!row)
88
+ return null;
89
+ return {
90
+ id: row.id,
91
+ name: row.name,
92
+ description: row.description,
93
+ handler_agent: row.handlerAgentName,
94
+ input_schema: row.inputSchema,
95
+ output_schema: row.outputSchema,
96
+ available_to: row.availableTo ?? null,
97
+ is_active: row.isActive,
98
+ created_at: row.createdAt.toISOString(),
99
+ };
100
+ }
101
+ export async function deleteAction(db, workspaceId, name) {
102
+ const result = await db
103
+ .delete(actions)
104
+ .where(and(eq(actions.workspaceId, workspaceId), eq(actions.name, name)))
105
+ .returning();
106
+ return result.length > 0;
107
+ }
108
+ export async function invokeAction(db, workspaceId, actionName, data) {
109
+ const [action] = await db
110
+ .select()
111
+ .from(actions)
112
+ .where(and(eq(actions.workspaceId, workspaceId), eq(actions.name, actionName), eq(actions.isActive, true)));
113
+ if (!action) {
114
+ const err = new Error(`Action "${actionName}" not found`);
115
+ err.status = 404;
116
+ err.code = 'action_not_found';
117
+ throw err;
118
+ }
119
+ // Check availableTo access control — deny if caller is absent OR not in the list
120
+ if (action.availableTo && action.availableTo.length > 0) {
121
+ if (!data.caller_name || !action.availableTo.includes(data.caller_name)) {
122
+ const who = data.caller_name ? `Agent "${data.caller_name}"` : 'Caller';
123
+ const err = new Error(`${who} is not authorized to invoke action "${actionName}"`);
124
+ err.status = 403;
125
+ err.code = 'action_denied';
126
+ throw err;
127
+ }
128
+ }
129
+ const invocationId = `inv_${generateId()}`;
130
+ const [invocation] = await db
131
+ .insert(actionInvocations)
132
+ .values({
133
+ id: invocationId,
134
+ workspaceId,
135
+ actionId: action.id,
136
+ actionName,
137
+ callerId: data.caller_id ?? null,
138
+ callerName: data.caller_name ?? null,
139
+ input: data.input ?? {},
140
+ status: 'invoked',
141
+ })
142
+ .returning();
143
+ return {
144
+ invocation_id: invocation.id,
145
+ action_name: actionName,
146
+ handler_agent_id: action.handlerAgentId,
147
+ input: invocation.input,
148
+ status: invocation.status,
149
+ created_at: invocation.createdAt.toISOString(),
150
+ };
151
+ }
152
+ export async function completeInvocation(db, workspaceId, actionName, invocationId, data) {
153
+ // Fetch the invocation joined with its action — verify action name matches URL param
154
+ const [existing] = await db
155
+ .select({
156
+ id: actionInvocations.id,
157
+ status: actionInvocations.status,
158
+ actionName: actionInvocations.actionName,
159
+ handlerAgentId: actions.handlerAgentId,
160
+ })
161
+ .from(actionInvocations)
162
+ .leftJoin(actions, eq(actionInvocations.actionId, actions.id))
163
+ .where(and(eq(actionInvocations.workspaceId, workspaceId), eq(actionInvocations.id, invocationId), eq(actionInvocations.actionName, actionName)));
164
+ if (!existing)
165
+ return null;
166
+ // Agent tokens must belong to the handler agent
167
+ if (data.caller_agent_id && existing.handlerAgentId && data.caller_agent_id !== existing.handlerAgentId) {
168
+ const err = new Error('Only the handler agent can complete this invocation');
169
+ err.status = 403;
170
+ err.code = 'forbidden';
171
+ throw err;
172
+ }
173
+ const status = data.error ? 'failed' : 'completed';
174
+ const [updated] = await db
175
+ .update(actionInvocations)
176
+ .set({
177
+ output: data.output ?? null,
178
+ error: data.error ?? null,
179
+ status,
180
+ durationMs: data.duration_ms ?? null,
181
+ completedAt: new Date(),
182
+ })
183
+ .where(and(eq(actionInvocations.workspaceId, workspaceId), eq(actionInvocations.id, invocationId), eq(actionInvocations.actionName, actionName), eq(actionInvocations.status, 'invoked')))
184
+ .returning();
185
+ // No rows updated means either not found or already completed by a concurrent request
186
+ if (!updated)
187
+ return null;
188
+ return {
189
+ invocation_id: updated.id,
190
+ action_name: updated.actionName,
191
+ caller_id: updated.callerId,
192
+ status: updated.status,
193
+ output: updated.output,
194
+ error: updated.error,
195
+ duration_ms: updated.durationMs,
196
+ completed_at: updated.completedAt?.toISOString() ?? null,
197
+ };
198
+ }
199
+ export async function getInvocation(db, workspaceId, actionName, invocationId) {
200
+ const [row] = await db
201
+ .select()
202
+ .from(actionInvocations)
203
+ .where(and(eq(actionInvocations.workspaceId, workspaceId), eq(actionInvocations.id, invocationId), eq(actionInvocations.actionName, actionName)));
204
+ if (!row)
205
+ return null;
206
+ return {
207
+ invocation_id: row.id,
208
+ action_name: row.actionName,
209
+ caller_id: row.callerId,
210
+ caller_name: row.callerName,
211
+ input: row.input,
212
+ output: row.output,
213
+ status: row.status,
214
+ error: row.error,
215
+ duration_ms: row.durationMs,
216
+ created_at: row.createdAt.toISOString(),
217
+ completed_at: row.completedAt?.toISOString() ?? null,
218
+ };
219
+ }
220
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/engine/action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { getDb } from '../db/index.js';
2
+ type Db = ReturnType<typeof getDb>;
3
+ export declare function getActivityFeed(db: Db, workspaceId: string, limit?: number): Promise<({
4
+ type: "dm";
5
+ id: string;
6
+ conversation_id: string;
7
+ agent_name: string;
8
+ text: string;
9
+ created_at: string;
10
+ channel_name?: undefined;
11
+ } | {
12
+ type: "message";
13
+ id: string;
14
+ channel_name: string;
15
+ agent_name: string;
16
+ text: string;
17
+ created_at: string;
18
+ conversation_id?: undefined;
19
+ })[]>;
20
+ export {};
21
+ //# sourceMappingURL=activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/engine/activity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAG5C,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AAEnC,wBAAsB,eAAe,CACnC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,MAAW;;;;;;;;;;;;;;;;MA6CnB"}
@@ -0,0 +1,46 @@
1
+ import { eq, desc } from 'drizzle-orm';
2
+ import { messages, channels, agents } from '../db/schema.js';
3
+ export async function getActivityFeed(db, workspaceId, limit = 20) {
4
+ const effectiveLimit = Math.min(Math.max(Number.isFinite(limit) ? limit : 20, 1), 100);
5
+ const rows = await db
6
+ .select({
7
+ id: messages.id,
8
+ body: messages.body,
9
+ createdAt: messages.createdAt,
10
+ channelId: messages.channelId,
11
+ channelName: channels.name,
12
+ channelType: channels.channelType,
13
+ agentName: agents.name,
14
+ })
15
+ .from(messages)
16
+ .innerJoin(channels, eq(messages.channelId, channels.id))
17
+ .innerJoin(agents, eq(messages.agentId, agents.id))
18
+ .where(eq(messages.workspaceId, workspaceId))
19
+ // id is a monotonic snowflake — use it as a stable tiebreaker so same-second
20
+ // messages don't shuffle between calls.
21
+ .orderBy(desc(messages.createdAt), desc(messages.id))
22
+ .limit(effectiveLimit);
23
+ return rows.map((r) => {
24
+ // channelType 0 = normal channel, 1 = DM channel
25
+ const isDm = r.channelType !== 0;
26
+ if (isDm) {
27
+ return {
28
+ type: 'dm',
29
+ id: r.id,
30
+ conversation_id: r.channelId,
31
+ agent_name: r.agentName,
32
+ text: r.body,
33
+ created_at: r.createdAt.toISOString(),
34
+ };
35
+ }
36
+ return {
37
+ type: 'message',
38
+ id: r.id,
39
+ channel_name: r.channelName,
40
+ agent_name: r.agentName,
41
+ text: r.body,
42
+ created_at: r.createdAt.toISOString(),
43
+ };
44
+ });
45
+ }
46
+ //# sourceMappingURL=activity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/engine/activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI7D,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAM,EACN,WAAmB,EACnB,QAAgB,EAAE;IAElB,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEvF,MAAM,IAAI,GAAG,MAAM,EAAE;SAClB,MAAM,CAAC;QACN,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,WAAW,EAAE,QAAQ,CAAC,IAAI;QAC1B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,SAAS,EAAE,MAAM,CAAC,IAAI;KACvB,CAAC;SACD,IAAI,CAAC,QAAQ,CAAC;SACd,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;SACxD,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SAClD,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC7C,6EAA6E;QAC7E,wCAAwC;SACvC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACpD,KAAK,CAAC,cAAc,CAAC,CAAC;IAEzB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB,iDAAiD;QACjD,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,EAAE,CAAC;YACT,OAAO;gBACL,IAAI,EAAE,IAAa;gBACnB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,eAAe,EAAE,CAAC,CAAC,SAAS;gBAC5B,UAAU,EAAE,CAAC,CAAC,SAAS;gBACvB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;aACtC,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,SAAkB;YACxB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,YAAY,EAAE,CAAC,CAAC,WAAW;YAC3B,UAAU,EAAE,CAAC,CAAC,SAAS;YACvB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;SACtC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,155 @@
1
+ import type { getDb } from '../db/index.js';
2
+ type Db = ReturnType<typeof getDb>;
3
+ export declare function registerAgent(db: Db, workspaceId: string, data: {
4
+ name: string;
5
+ type?: string;
6
+ persona?: string;
7
+ metadata?: Record<string, unknown>;
8
+ capabilities?: Record<string, unknown>;
9
+ }): Promise<{
10
+ id: string;
11
+ name: string;
12
+ handle: string;
13
+ token: string;
14
+ status: string;
15
+ capabilities: Record<string, unknown> | null;
16
+ created_at: string;
17
+ }>;
18
+ export declare function listAgents(db: Db, workspaceId: string, status?: string): Promise<{
19
+ id: string;
20
+ name: string;
21
+ handle: string;
22
+ type: string;
23
+ status: string;
24
+ persona: string | null;
25
+ capabilities: Record<string, unknown> | null;
26
+ created_at: string;
27
+ last_seen: string;
28
+ metadata: unknown;
29
+ }[]>;
30
+ export declare function getAgentByName(db: Db, workspaceId: string, name: string): Promise<{
31
+ id: string;
32
+ name: string;
33
+ handle: string;
34
+ type: string;
35
+ status: string;
36
+ persona: string | null;
37
+ capabilities: Record<string, unknown> | null;
38
+ created_at: string;
39
+ last_seen: string;
40
+ metadata: unknown;
41
+ channels: {
42
+ id: string;
43
+ name: string;
44
+ role: string;
45
+ joined_at: string;
46
+ }[];
47
+ actions_provided: {
48
+ id: string;
49
+ name: string;
50
+ description: string;
51
+ }[];
52
+ actions_available_to: {
53
+ id: string;
54
+ name: string;
55
+ description: string;
56
+ }[];
57
+ pending_deliveries: {
58
+ id: string;
59
+ message_id: string;
60
+ mode: string;
61
+ reason: string | null;
62
+ status: string;
63
+ created_at: string;
64
+ }[];
65
+ } | null>;
66
+ export declare function updateAgent(db: Db, workspaceId: string, name: string, updates: {
67
+ status?: string;
68
+ persona?: string | null;
69
+ metadata?: Record<string, unknown>;
70
+ capabilities?: Record<string, unknown> | null;
71
+ }): Promise<{
72
+ id: string;
73
+ name: string;
74
+ handle: string;
75
+ type: string;
76
+ status: string;
77
+ persona: string | null;
78
+ capabilities: Record<string, unknown> | null;
79
+ created_at: string;
80
+ last_seen: string;
81
+ metadata: unknown;
82
+ channels: {
83
+ id: string;
84
+ name: string;
85
+ role: string;
86
+ joined_at: string;
87
+ }[];
88
+ actions_provided: {
89
+ id: string;
90
+ name: string;
91
+ description: string;
92
+ }[];
93
+ actions_available_to: {
94
+ id: string;
95
+ name: string;
96
+ description: string;
97
+ }[];
98
+ pending_deliveries: {
99
+ id: string;
100
+ message_id: string;
101
+ mode: string;
102
+ reason: string | null;
103
+ status: string;
104
+ created_at: string;
105
+ }[];
106
+ } | {
107
+ id: string;
108
+ name: string;
109
+ handle: string;
110
+ type: string;
111
+ status: string;
112
+ persona: string | null;
113
+ capabilities: Record<string, unknown> | null;
114
+ created_at: string;
115
+ last_seen: string;
116
+ metadata: unknown;
117
+ } | null>;
118
+ export declare function deleteAgent(db: Db, workspaceId: string, name: string): Promise<boolean>;
119
+ export declare function touchLastSeen(db: Db, agentId: string): Promise<void>;
120
+ export declare function sweepStaleAgents(db: Db): Promise<number>;
121
+ export interface SpawnAgentData {
122
+ name: string;
123
+ cli: string;
124
+ task: string;
125
+ channel?: string;
126
+ persona?: string;
127
+ metadata?: Record<string, unknown>;
128
+ }
129
+ export interface SpawnAgentResult {
130
+ id: string;
131
+ name: string;
132
+ handle: string;
133
+ token: string;
134
+ cli: string;
135
+ task: string;
136
+ channel: string | null;
137
+ status: string;
138
+ created_at: string;
139
+ already_existed: boolean;
140
+ }
141
+ export declare function spawnAgent(db: Db, workspaceId: string, data: SpawnAgentData): Promise<SpawnAgentResult>;
142
+ export interface ReleaseAgentData {
143
+ name: string;
144
+ reason?: string;
145
+ delete_agent?: boolean;
146
+ }
147
+ export interface ReleaseAgentResult {
148
+ name: string;
149
+ released: boolean;
150
+ deleted: boolean;
151
+ reason: string | null;
152
+ }
153
+ export declare function releaseAgent(db: Db, workspaceId: string, data: ReleaseAgentData): Promise<ReleaseAgentResult | null>;
154
+ export {};
155
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/engine/agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAI5C,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AAoBnC,wBAAsB,aAAa,CACjC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;;;;;;;;GAiEF;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;;KA4B5E;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAsF7E;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAqCF;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,oBAU1E;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1E;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAW9D;AAID,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,gBAAgB,CAAC,CA8H3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CA6CpC"}