daycare-cli 0.0.11 → 0.0.13

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 (263) hide show
  1. package/dist/commands/channelAddMember.d.ts +2 -0
  2. package/dist/commands/channelAddMember.d.ts.map +1 -0
  3. package/dist/commands/channelAddMember.js +20 -0
  4. package/dist/commands/channelAddMember.js.map +1 -0
  5. package/dist/commands/channelCommands.spec.d.ts +2 -0
  6. package/dist/commands/channelCommands.spec.d.ts.map +1 -0
  7. package/dist/commands/channelCommands.spec.js +95 -0
  8. package/dist/commands/channelCommands.spec.js.map +1 -0
  9. package/dist/commands/channelCreate.d.ts +4 -0
  10. package/dist/commands/channelCreate.d.ts.map +1 -0
  11. package/dist/commands/channelCreate.js +20 -0
  12. package/dist/commands/channelCreate.js.map +1 -0
  13. package/dist/commands/channelList.d.ts +2 -0
  14. package/dist/commands/channelList.d.ts.map +1 -0
  15. package/dist/commands/channelList.js +28 -0
  16. package/dist/commands/channelList.js.map +1 -0
  17. package/dist/commands/channelRemoveMember.d.ts +2 -0
  18. package/dist/commands/channelRemoveMember.d.ts.map +1 -0
  19. package/dist/commands/channelRemoveMember.js +24 -0
  20. package/dist/commands/channelRemoveMember.js.map +1 -0
  21. package/dist/commands/channelSend.d.ts +2 -0
  22. package/dist/commands/channelSend.d.ts.map +1 -0
  23. package/dist/commands/channelSend.js +20 -0
  24. package/dist/commands/channelSend.js.map +1 -0
  25. package/dist/config/configResolve.d.ts.map +1 -1
  26. package/dist/config/configResolve.js +2 -0
  27. package/dist/config/configResolve.js.map +1 -1
  28. package/dist/config/configResolve.spec.js +10 -0
  29. package/dist/config/configResolve.spec.js.map +1 -1
  30. package/dist/config/configSettingsParse.d.ts.map +1 -1
  31. package/dist/config/configSettingsParse.js +1 -0
  32. package/dist/config/configSettingsParse.js.map +1 -1
  33. package/dist/config/configTypes.d.ts +1 -0
  34. package/dist/config/configTypes.d.ts.map +1 -1
  35. package/dist/engine/agents/agent.d.ts +0 -1
  36. package/dist/engine/agents/agent.d.ts.map +1 -1
  37. package/dist/engine/agents/agent.js +18 -66
  38. package/dist/engine/agents/agent.js.map +1 -1
  39. package/dist/engine/agents/agentSystem.d.ts +9 -3
  40. package/dist/engine/agents/agentSystem.d.ts.map +1 -1
  41. package/dist/engine/agents/agentSystem.js +13 -8
  42. package/dist/engine/agents/agentSystem.js.map +1 -1
  43. package/dist/engine/agents/ops/agentDescriptorLabel.d.ts.map +1 -1
  44. package/dist/engine/agents/ops/agentDescriptorLabel.js +7 -1
  45. package/dist/engine/agents/ops/agentDescriptorLabel.js.map +1 -1
  46. package/dist/engine/agents/ops/agentDescriptorLabel.spec.js +2 -1
  47. package/dist/engine/agents/ops/agentDescriptorLabel.spec.js.map +1 -1
  48. package/dist/engine/agents/ops/agentDescriptorRead.d.ts.map +1 -1
  49. package/dist/engine/agents/ops/agentDescriptorRead.js +1 -0
  50. package/dist/engine/agents/ops/agentDescriptorRead.js.map +1 -1
  51. package/dist/engine/agents/ops/agentDescriptorTypes.d.ts +1 -0
  52. package/dist/engine/agents/ops/agentDescriptorTypes.d.ts.map +1 -1
  53. package/dist/engine/agents/ops/agentLoopRun.d.ts.map +1 -1
  54. package/dist/engine/agents/ops/agentLoopRun.js +2 -1
  55. package/dist/engine/agents/ops/agentLoopRun.js.map +1 -1
  56. package/dist/engine/agents/ops/agentPermanentList.d.ts.map +1 -1
  57. package/dist/engine/agents/ops/agentPermanentList.js +1 -0
  58. package/dist/engine/agents/ops/agentPermanentList.js.map +1 -1
  59. package/dist/engine/agents/ops/agentPromptFilesEnsure.d.ts +1 -1
  60. package/dist/engine/agents/ops/agentPromptFilesEnsure.d.ts.map +1 -1
  61. package/dist/engine/agents/ops/agentPromptFilesEnsure.js +2 -3
  62. package/dist/engine/agents/ops/agentPromptFilesEnsure.js.map +1 -1
  63. package/dist/engine/agents/ops/agentTypes.d.ts +1 -11
  64. package/dist/engine/agents/ops/agentTypes.d.ts.map +1 -1
  65. package/dist/engine/channels/channelMessageBuild.d.ts +12 -0
  66. package/dist/engine/channels/channelMessageBuild.d.ts.map +1 -0
  67. package/dist/engine/channels/channelMessageBuild.js +92 -0
  68. package/dist/engine/channels/channelMessageBuild.js.map +1 -0
  69. package/dist/engine/channels/channelMessageBuild.spec.d.ts +2 -0
  70. package/dist/engine/channels/channelMessageBuild.spec.d.ts.map +1 -0
  71. package/dist/engine/channels/channelMessageBuild.spec.js +60 -0
  72. package/dist/engine/channels/channelMessageBuild.spec.js.map +1 -0
  73. package/dist/engine/channels/channelStore.d.ts +27 -0
  74. package/dist/engine/channels/channelStore.d.ts.map +1 -0
  75. package/dist/engine/channels/channelStore.js +147 -0
  76. package/dist/engine/channels/channelStore.js.map +1 -0
  77. package/dist/engine/channels/channelStore.spec.d.ts +2 -0
  78. package/dist/engine/channels/channelStore.spec.d.ts.map +1 -0
  79. package/dist/engine/channels/channelStore.spec.js +89 -0
  80. package/dist/engine/channels/channelStore.spec.js.map +1 -0
  81. package/dist/engine/channels/channelTypes.d.ts +31 -0
  82. package/dist/engine/channels/channelTypes.d.ts.map +1 -0
  83. package/dist/engine/channels/channelTypes.js +2 -0
  84. package/dist/engine/channels/channelTypes.js.map +1 -0
  85. package/dist/engine/channels/channels.d.ts +34 -0
  86. package/dist/engine/channels/channels.d.ts.map +1 -0
  87. package/dist/engine/channels/channels.js +269 -0
  88. package/dist/engine/channels/channels.js.map +1 -0
  89. package/dist/engine/channels/channels.spec.d.ts +2 -0
  90. package/dist/engine/channels/channels.spec.d.ts.map +1 -0
  91. package/dist/engine/channels/channels.spec.js +132 -0
  92. package/dist/engine/channels/channels.spec.js.map +1 -0
  93. package/dist/engine/engine.d.ts +4 -0
  94. package/dist/engine/engine.d.ts.map +1 -1
  95. package/dist/engine/engine.js +40 -11
  96. package/dist/engine/engine.js.map +1 -1
  97. package/dist/engine/engine.spec.js +130 -0
  98. package/dist/engine/engine.spec.js.map +1 -1
  99. package/dist/engine/ipc/client.d.ts +9 -1
  100. package/dist/engine/ipc/client.d.ts.map +1 -1
  101. package/dist/engine/ipc/client.js +84 -0
  102. package/dist/engine/ipc/client.js.map +1 -1
  103. package/dist/engine/ipc/server.d.ts.map +1 -1
  104. package/dist/engine/ipc/server.js +84 -0
  105. package/dist/engine/ipc/server.js.map +1 -1
  106. package/dist/engine/modules/connectors/types.d.ts +6 -4
  107. package/dist/engine/modules/connectors/types.d.ts.map +1 -1
  108. package/dist/engine/modules/rlm/rlmConstants.d.ts +3 -0
  109. package/dist/engine/modules/rlm/rlmConstants.d.ts.map +1 -0
  110. package/dist/engine/modules/rlm/rlmConstants.js +3 -0
  111. package/dist/engine/modules/rlm/rlmConstants.js.map +1 -0
  112. package/dist/engine/modules/rlm/rlmConvert.d.ts +14 -0
  113. package/dist/engine/modules/rlm/rlmConvert.d.ts.map +1 -0
  114. package/dist/engine/modules/rlm/rlmConvert.js +81 -0
  115. package/dist/engine/modules/rlm/rlmConvert.js.map +1 -0
  116. package/dist/engine/modules/rlm/rlmConvert.spec.d.ts +2 -0
  117. package/dist/engine/modules/rlm/rlmConvert.spec.d.ts.map +1 -0
  118. package/dist/engine/modules/rlm/rlmConvert.spec.js +71 -0
  119. package/dist/engine/modules/rlm/rlmConvert.spec.js.map +1 -0
  120. package/dist/engine/modules/rlm/rlmExecute.d.ts +13 -0
  121. package/dist/engine/modules/rlm/rlmExecute.d.ts.map +1 -0
  122. package/dist/engine/modules/rlm/rlmExecute.js +120 -0
  123. package/dist/engine/modules/rlm/rlmExecute.js.map +1 -0
  124. package/dist/engine/modules/rlm/rlmExecute.spec.d.ts +2 -0
  125. package/dist/engine/modules/rlm/rlmExecute.spec.d.ts.map +1 -0
  126. package/dist/engine/modules/rlm/rlmExecute.spec.js +118 -0
  127. package/dist/engine/modules/rlm/rlmExecute.spec.js.map +1 -0
  128. package/dist/engine/modules/rlm/rlmPreambleBuild.d.ts +7 -0
  129. package/dist/engine/modules/rlm/rlmPreambleBuild.d.ts.map +1 -0
  130. package/dist/engine/modules/rlm/rlmPreambleBuild.js +148 -0
  131. package/dist/engine/modules/rlm/rlmPreambleBuild.js.map +1 -0
  132. package/dist/engine/modules/rlm/rlmPreambleBuild.spec.d.ts +2 -0
  133. package/dist/engine/modules/rlm/rlmPreambleBuild.spec.d.ts.map +1 -0
  134. package/dist/engine/modules/rlm/rlmPreambleBuild.spec.js +47 -0
  135. package/dist/engine/modules/rlm/rlmPreambleBuild.spec.js.map +1 -0
  136. package/dist/engine/modules/rlm/rlmTool.d.ts +8 -0
  137. package/dist/engine/modules/rlm/rlmTool.d.ts.map +1 -0
  138. package/dist/engine/modules/rlm/rlmTool.js +67 -0
  139. package/dist/engine/modules/rlm/rlmTool.js.map +1 -0
  140. package/dist/engine/modules/rlm/rlmTool.spec.d.ts +2 -0
  141. package/dist/engine/modules/rlm/rlmTool.spec.d.ts.map +1 -0
  142. package/dist/engine/modules/rlm/rlmTool.spec.js +107 -0
  143. package/dist/engine/modules/rlm/rlmTool.spec.js.map +1 -0
  144. package/dist/engine/modules/rlm/rlmToolDescriptionBuild.d.ts +7 -0
  145. package/dist/engine/modules/rlm/rlmToolDescriptionBuild.d.ts.map +1 -0
  146. package/dist/engine/modules/rlm/rlmToolDescriptionBuild.js +22 -0
  147. package/dist/engine/modules/rlm/rlmToolDescriptionBuild.js.map +1 -0
  148. package/dist/engine/modules/tools/channelCreateTool.d.ts +4 -0
  149. package/dist/engine/modules/tools/channelCreateTool.d.ts.map +1 -0
  150. package/dist/engine/modules/tools/channelCreateTool.js +34 -0
  151. package/dist/engine/modules/tools/channelCreateTool.js.map +1 -0
  152. package/dist/engine/modules/tools/channelCreateTool.spec.d.ts +2 -0
  153. package/dist/engine/modules/tools/channelCreateTool.spec.d.ts.map +1 -0
  154. package/dist/engine/modules/tools/channelCreateTool.spec.js +41 -0
  155. package/dist/engine/modules/tools/channelCreateTool.spec.js.map +1 -0
  156. package/dist/engine/modules/tools/channelHistoryTool.d.ts +4 -0
  157. package/dist/engine/modules/tools/channelHistoryTool.d.ts.map +1 -0
  158. package/dist/engine/modules/tools/channelHistoryTool.js +37 -0
  159. package/dist/engine/modules/tools/channelHistoryTool.js.map +1 -0
  160. package/dist/engine/modules/tools/channelHistoryTool.spec.d.ts +2 -0
  161. package/dist/engine/modules/tools/channelHistoryTool.spec.d.ts.map +1 -0
  162. package/dist/engine/modules/tools/channelHistoryTool.spec.js +58 -0
  163. package/dist/engine/modules/tools/channelHistoryTool.spec.js.map +1 -0
  164. package/dist/engine/modules/tools/channelMemberTool.d.ts +5 -0
  165. package/dist/engine/modules/tools/channelMemberTool.d.ts.map +1 -0
  166. package/dist/engine/modules/tools/channelMemberTool.js +73 -0
  167. package/dist/engine/modules/tools/channelMemberTool.js.map +1 -0
  168. package/dist/engine/modules/tools/channelMemberTool.spec.d.ts +2 -0
  169. package/dist/engine/modules/tools/channelMemberTool.spec.d.ts.map +1 -0
  170. package/dist/engine/modules/tools/channelMemberTool.spec.js +56 -0
  171. package/dist/engine/modules/tools/channelMemberTool.spec.js.map +1 -0
  172. package/dist/engine/modules/tools/channelSendTool.d.ts +4 -0
  173. package/dist/engine/modules/tools/channelSendTool.d.ts.map +1 -0
  174. package/dist/engine/modules/tools/channelSendTool.js +63 -0
  175. package/dist/engine/modules/tools/channelSendTool.js.map +1 -0
  176. package/dist/engine/modules/tools/channelSendTool.spec.d.ts +2 -0
  177. package/dist/engine/modules/tools/channelSendTool.spec.d.ts.map +1 -0
  178. package/dist/engine/modules/tools/channelSendTool.spec.js +58 -0
  179. package/dist/engine/modules/tools/channelSendTool.spec.js.map +1 -0
  180. package/dist/engine/modules/tools/heartbeat.d.ts +0 -1
  181. package/dist/engine/modules/tools/heartbeat.d.ts.map +1 -1
  182. package/dist/engine/modules/tools/heartbeat.js +0 -37
  183. package/dist/engine/modules/tools/heartbeat.js.map +1 -1
  184. package/dist/engine/modules/tools/permanentAgentToolBuild.d.ts.map +1 -1
  185. package/dist/engine/modules/tools/permanentAgentToolBuild.js +10 -0
  186. package/dist/engine/modules/tools/permanentAgentToolBuild.js.map +1 -1
  187. package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js +27 -0
  188. package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js.map +1 -1
  189. package/dist/engine/modules/tools/permissionRequestRegistry.d.ts +13 -0
  190. package/dist/engine/modules/tools/permissionRequestRegistry.d.ts.map +1 -0
  191. package/dist/engine/modules/tools/permissionRequestRegistry.js +51 -0
  192. package/dist/engine/modules/tools/permissionRequestRegistry.js.map +1 -0
  193. package/dist/engine/modules/tools/permissionRequestRegistry.spec.d.ts +2 -0
  194. package/dist/engine/modules/tools/permissionRequestRegistry.spec.d.ts.map +1 -0
  195. package/dist/engine/modules/tools/permissionRequestRegistry.spec.js +47 -0
  196. package/dist/engine/modules/tools/permissionRequestRegistry.spec.js.map +1 -0
  197. package/dist/engine/modules/tools/permissions.d.ts.map +1 -1
  198. package/dist/engine/modules/tools/permissions.js +86 -16
  199. package/dist/engine/modules/tools/permissions.js.map +1 -1
  200. package/dist/engine/modules/tools/permissions.spec.d.ts +2 -0
  201. package/dist/engine/modules/tools/permissions.spec.d.ts.map +1 -0
  202. package/dist/engine/modules/tools/permissions.spec.js +244 -0
  203. package/dist/engine/modules/tools/permissions.spec.js.map +1 -0
  204. package/dist/engine/modules/tools/toolListContextBuild.d.ts +1 -0
  205. package/dist/engine/modules/tools/toolListContextBuild.d.ts.map +1 -1
  206. package/dist/engine/modules/tools/toolListContextBuild.js +17 -0
  207. package/dist/engine/modules/tools/toolListContextBuild.js.map +1 -1
  208. package/dist/engine/modules/tools/toolListContextBuild.spec.js +16 -0
  209. package/dist/engine/modules/tools/toolListContextBuild.spec.js.map +1 -1
  210. package/dist/engine/modules/tools/topologyToolBuild.d.ts +10 -0
  211. package/dist/engine/modules/tools/topologyToolBuild.d.ts.map +1 -0
  212. package/dist/engine/modules/tools/topologyToolBuild.js +157 -0
  213. package/dist/engine/modules/tools/topologyToolBuild.js.map +1 -0
  214. package/dist/engine/modules/tools/topologyToolBuild.spec.d.ts +2 -0
  215. package/dist/engine/modules/tools/topologyToolBuild.spec.d.ts.map +1 -0
  216. package/dist/engine/modules/tools/topologyToolBuild.spec.js +264 -0
  217. package/dist/engine/modules/tools/topologyToolBuild.spec.js.map +1 -0
  218. package/dist/engine/modules/tools/types.d.ts +2 -0
  219. package/dist/engine/modules/tools/types.d.ts.map +1 -1
  220. package/dist/engine/permissions/permissionApply.d.ts.map +1 -1
  221. package/dist/engine/permissions/permissionApply.js +3 -1
  222. package/dist/engine/permissions/permissionApply.js.map +1 -1
  223. package/dist/engine/permissions/permissionApply.spec.js +17 -14
  224. package/dist/engine/permissions/permissionApply.spec.js.map +1 -1
  225. package/dist/engine/permissions/permissionBuildDefault.d.ts.map +1 -1
  226. package/dist/engine/permissions/permissionBuildDefault.js +1 -2
  227. package/dist/engine/permissions/permissionBuildDefault.js.map +1 -1
  228. package/dist/engine/skills/skillListUser.d.ts +8 -0
  229. package/dist/engine/skills/skillListUser.d.ts.map +1 -0
  230. package/dist/engine/skills/skillListUser.js +31 -0
  231. package/dist/engine/skills/skillListUser.js.map +1 -0
  232. package/dist/engine/skills/skillListUser.spec.d.ts +2 -0
  233. package/dist/engine/skills/skillListUser.spec.d.ts.map +1 -0
  234. package/dist/engine/skills/skillListUser.spec.js +38 -0
  235. package/dist/engine/skills/skillListUser.spec.js.map +1 -0
  236. package/dist/engine/skills/skillResolve.js +3 -0
  237. package/dist/engine/skills/skillResolve.js.map +1 -1
  238. package/dist/engine/skills/skillTypes.d.ts +4 -1
  239. package/dist/engine/skills/skillTypes.d.ts.map +1 -1
  240. package/dist/main.js +35 -0
  241. package/dist/main.js.map +1 -1
  242. package/dist/paths.d.ts +1 -1
  243. package/dist/paths.d.ts.map +1 -1
  244. package/dist/paths.js +1 -1
  245. package/dist/paths.js.map +1 -1
  246. package/dist/plugins/telegram/connector.d.ts.map +1 -1
  247. package/dist/plugins/telegram/connector.js +6 -11
  248. package/dist/plugins/telegram/connector.js.map +1 -1
  249. package/dist/plugins/telegram/connector.spec.js +10 -2
  250. package/dist/plugins/telegram/connector.spec.js.map +1 -1
  251. package/dist/plugins/whatsapp/connector.d.ts.map +1 -1
  252. package/dist/plugins/whatsapp/connector.js +6 -10
  253. package/dist/plugins/whatsapp/connector.js.map +1 -1
  254. package/dist/prompts/MEMORY.md +0 -1
  255. package/dist/prompts/PERMISSIONS.md +5 -4
  256. package/dist/prompts/SYSTEM.md +33 -27
  257. package/dist/settings.d.ts +1 -0
  258. package/dist/settings.d.ts.map +1 -1
  259. package/dist/settings.js.map +1 -1
  260. package/dist/skills/skills/scheduling/SKILL.md +2 -2
  261. package/dist/types.d.ts +2 -1
  262. package/dist/types.d.ts.map +1 -1
  263. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelTypes.js","sourceRoot":"","sources":["../../../sources/engine/channels/channelTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import type { Channel, ChannelMessage } from "@/types";
2
+ import type { AgentSystem } from "../agents/agentSystem.js";
3
+ import type { Signals } from "../signals/signals.js";
4
+ export type ChannelsOptions = {
5
+ configDir: string;
6
+ signals: Pick<Signals, "subscribe" | "unsubscribe">;
7
+ agentSystem: Pick<AgentSystem, "agentExists" | "post">;
8
+ };
9
+ export declare class Channels {
10
+ private readonly baseDir;
11
+ private readonly signals;
12
+ private readonly agentSystem;
13
+ private readonly items;
14
+ constructor(options: ChannelsOptions);
15
+ ensureDir(): Promise<void>;
16
+ /**
17
+ * Loads channels from disk and replays signal subscriptions for members.
18
+ * Expects: channel config directory is writable by the process.
19
+ */
20
+ load(): Promise<void>;
21
+ list(): Channel[];
22
+ get(name: string): Channel | null;
23
+ create(name: string, leaderAgentId: string): Promise<Channel>;
24
+ delete(name: string): Promise<boolean>;
25
+ addMember(channelName: string, agentId: string, username: string): Promise<Channel>;
26
+ removeMember(channelName: string, agentId: string): Promise<boolean>;
27
+ send(channelName: string, senderUsername: string, text: string, mentions: string[]): Promise<{
28
+ message: ChannelMessage;
29
+ deliveredAgentIds: string[];
30
+ }>;
31
+ getHistory(channelName: string, limit?: number): Promise<ChannelMessage[]>;
32
+ private channelRequire;
33
+ }
34
+ //# sourceMappingURL=channels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../../sources/engine/channels/channels.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAmC,OAAO,EAAE,cAAc,EAA6B,MAAM,SAAS,CAAC;AAEnH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAYrD,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,CAAC;IACpD,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,MAAM,CAAC,CAAC;CACxD,CAAC;AAEF,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4C;IACxE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;gBAExC,OAAO,EAAE,eAAe;IAM9B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B3B,IAAI,IAAI,OAAO,EAAE;IAMjB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAQ3B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2B7D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBtC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiDnF,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBpE,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAqE9D,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAKhF,OAAO,CAAC,cAAc;CAQvB"}
@@ -0,0 +1,269 @@
1
+ import { promises as fs } from "node:fs";
2
+ import path from "node:path";
3
+ import { createId } from "@paralleldrive/cuid2";
4
+ import { getLogger } from "../../log.js";
5
+ import { channelAppendMessage, channelLoad, channelNameNormalize, channelReadHistory, channelSave } from "./channelStore.js";
6
+ const logger = getLogger("channel.facade");
7
+ const HISTORY_CONTEXT_LIMIT = 12;
8
+ export class Channels {
9
+ baseDir;
10
+ signals;
11
+ agentSystem;
12
+ items = new Map();
13
+ constructor(options) {
14
+ this.baseDir = path.join(options.configDir, "channels");
15
+ this.signals = options.signals;
16
+ this.agentSystem = options.agentSystem;
17
+ }
18
+ async ensureDir() {
19
+ await fs.mkdir(this.baseDir, { recursive: true });
20
+ }
21
+ /**
22
+ * Loads channels from disk and replays signal subscriptions for members.
23
+ * Expects: channel config directory is writable by the process.
24
+ */
25
+ async load() {
26
+ await this.ensureDir();
27
+ this.items.clear();
28
+ const entries = await fs.readdir(this.baseDir, { withFileTypes: true });
29
+ for (const entry of entries) {
30
+ if (!entry.isDirectory()) {
31
+ continue;
32
+ }
33
+ let channel = null;
34
+ try {
35
+ channel = await channelLoad(this.baseDir, entry.name);
36
+ }
37
+ catch (error) {
38
+ logger.warn({ channelName: entry.name, error }, "skip: Channel restore skipped");
39
+ continue;
40
+ }
41
+ if (!channel) {
42
+ continue;
43
+ }
44
+ this.items.set(channel.name, cloneChannel(channel));
45
+ for (const member of channel.members) {
46
+ this.signals.subscribe({
47
+ agentId: member.agentId,
48
+ pattern: channelPatternBuild(channel.name),
49
+ silent: false
50
+ });
51
+ }
52
+ }
53
+ }
54
+ list() {
55
+ return Array.from(this.items.values())
56
+ .map((channel) => cloneChannel(channel))
57
+ .sort((left, right) => left.name.localeCompare(right.name));
58
+ }
59
+ get(name) {
60
+ const channel = this.items.get(channelNameNormalize(name));
61
+ if (!channel) {
62
+ return null;
63
+ }
64
+ return cloneChannel(channel);
65
+ }
66
+ async create(name, leaderAgentId) {
67
+ const channelName = channelNameNormalize(name);
68
+ const leader = leaderAgentId.trim();
69
+ if (!leader) {
70
+ throw new Error("Channel leader agent id is required.");
71
+ }
72
+ const exists = await this.agentSystem.agentExists(leader);
73
+ if (!exists) {
74
+ throw new Error(`Leader agent not found: ${leader}`);
75
+ }
76
+ if (this.items.has(channelName)) {
77
+ throw new Error(`Channel already exists: ${channelName}`);
78
+ }
79
+ const now = Date.now();
80
+ const channel = {
81
+ id: createId(),
82
+ name: channelName,
83
+ leader,
84
+ members: [],
85
+ createdAt: now,
86
+ updatedAt: now
87
+ };
88
+ await channelSave(this.baseDir, channel);
89
+ this.items.set(channelName, cloneChannel(channel));
90
+ return channel;
91
+ }
92
+ async delete(name) {
93
+ const channelName = channelNameNormalize(name);
94
+ const channel = this.items.get(channelName);
95
+ if (!channel) {
96
+ return false;
97
+ }
98
+ for (const member of channel.members) {
99
+ this.signals.unsubscribe({
100
+ agentId: member.agentId,
101
+ pattern: channelPatternBuild(channelName)
102
+ });
103
+ }
104
+ await fs.rm(path.join(this.baseDir, channelName), { recursive: true, force: true });
105
+ this.items.delete(channelName);
106
+ return true;
107
+ }
108
+ async addMember(channelName, agentId, username) {
109
+ const channel = this.channelRequire(channelName);
110
+ const normalizedUsername = usernameNormalize(username);
111
+ const normalizedAgentId = agentId.trim();
112
+ if (!normalizedAgentId) {
113
+ throw new Error("Channel member agent id is required.");
114
+ }
115
+ const exists = await this.agentSystem.agentExists(normalizedAgentId);
116
+ if (!exists) {
117
+ throw new Error(`Agent not found: ${normalizedAgentId}`);
118
+ }
119
+ const taken = channel.members.find((member) => member.username === normalizedUsername && member.agentId !== normalizedAgentId);
120
+ if (taken) {
121
+ throw new Error(`Username already taken in #${channel.name}: @${normalizedUsername}`);
122
+ }
123
+ const now = Date.now();
124
+ const existingIndex = channel.members.findIndex((member) => member.agentId === normalizedAgentId);
125
+ if (existingIndex >= 0) {
126
+ const current = channel.members[existingIndex];
127
+ channel.members[existingIndex] = {
128
+ agentId: normalizedAgentId,
129
+ username: normalizedUsername,
130
+ joinedAt: current?.joinedAt ?? now
131
+ };
132
+ }
133
+ else {
134
+ channel.members.push({
135
+ agentId: normalizedAgentId,
136
+ username: normalizedUsername,
137
+ joinedAt: now
138
+ });
139
+ }
140
+ channel.updatedAt = now;
141
+ await channelSave(this.baseDir, channel);
142
+ this.items.set(channel.name, cloneChannel(channel));
143
+ this.signals.subscribe({
144
+ agentId: normalizedAgentId,
145
+ pattern: channelPatternBuild(channel.name),
146
+ silent: false
147
+ });
148
+ return cloneChannel(channel);
149
+ }
150
+ async removeMember(channelName, agentId) {
151
+ const channel = this.channelRequire(channelName);
152
+ const normalizedAgentId = agentId.trim();
153
+ const nextMembers = channel.members.filter((member) => member.agentId !== normalizedAgentId);
154
+ if (nextMembers.length === channel.members.length) {
155
+ return false;
156
+ }
157
+ channel.members = nextMembers;
158
+ channel.updatedAt = Date.now();
159
+ await channelSave(this.baseDir, channel);
160
+ this.items.set(channel.name, cloneChannel(channel));
161
+ this.signals.unsubscribe({
162
+ agentId: normalizedAgentId,
163
+ pattern: channelPatternBuild(channel.name)
164
+ });
165
+ return true;
166
+ }
167
+ async send(channelName, senderUsername, text, mentions) {
168
+ const channel = this.channelRequire(channelName);
169
+ const sender = usernameNormalize(senderUsername);
170
+ const body = text.trim();
171
+ if (!body) {
172
+ throw new Error("Channel message text is required.");
173
+ }
174
+ const normalizedMentions = mentionListNormalize(mentions);
175
+ const createdAt = Date.now();
176
+ const message = {
177
+ id: createId(),
178
+ channelName: channel.name,
179
+ senderUsername: sender,
180
+ text: body,
181
+ mentions: normalizedMentions,
182
+ createdAt
183
+ };
184
+ await channelAppendMessage(this.baseDir, channel.name, message);
185
+ channel.updatedAt = createdAt;
186
+ await channelSave(this.baseDir, channel);
187
+ this.items.set(channel.name, cloneChannel(channel));
188
+ const mentionTargets = channel.members
189
+ .filter((member) => normalizedMentions.includes(member.username))
190
+ .map((member) => member.agentId);
191
+ const deliveredAgentIds = Array.from(new Set([channel.leader, ...mentionTargets]));
192
+ const history = await channelReadHistory(this.baseDir, channel.name, HISTORY_CONTEXT_LIMIT);
193
+ const signalType = channelSignalTypeBuild(channel.name);
194
+ const senderMember = channel.members.find((member) => member.username === sender) ?? null;
195
+ const signal = {
196
+ id: createId(),
197
+ type: signalType,
198
+ source: senderMember
199
+ ? { type: "agent", id: senderMember.agentId }
200
+ : { type: "system" },
201
+ data: channelSignalDataBuild(message, history),
202
+ createdAt
203
+ };
204
+ await Promise.all(deliveredAgentIds.map((targetAgentId) => this.agentSystem.post({ agentId: targetAgentId }, {
205
+ type: "signal",
206
+ signal,
207
+ subscriptionPattern: signalType
208
+ })));
209
+ logger.info({
210
+ channelName: channel.name,
211
+ sender,
212
+ mentionCount: normalizedMentions.length,
213
+ deliveredCount: deliveredAgentIds.length
214
+ }, "event: Channel message delivered");
215
+ return {
216
+ message,
217
+ deliveredAgentIds
218
+ };
219
+ }
220
+ async getHistory(channelName, limit) {
221
+ const channel = this.channelRequire(channelName);
222
+ return channelReadHistory(this.baseDir, channel.name, limit);
223
+ }
224
+ channelRequire(name) {
225
+ const channelName = channelNameNormalize(name);
226
+ const channel = this.items.get(channelName);
227
+ if (!channel) {
228
+ throw new Error(`Channel not found: ${channelName}`);
229
+ }
230
+ return channel;
231
+ }
232
+ }
233
+ function channelPatternBuild(channelName) {
234
+ return `channel.${channelName}:*`;
235
+ }
236
+ function channelSignalTypeBuild(channelName) {
237
+ return `channel.${channelName}:message`;
238
+ }
239
+ function mentionListNormalize(mentions) {
240
+ return Array.from(new Set(mentions
241
+ .map((mention) => mention.trim())
242
+ .filter((mention) => mention.length > 0)
243
+ .map((mention) => usernameNormalize(mention))));
244
+ }
245
+ function usernameNormalize(username) {
246
+ const normalized = username.trim().replace(/^@+/, "").toLowerCase();
247
+ if (!normalized) {
248
+ throw new Error("Username is required.");
249
+ }
250
+ return normalized;
251
+ }
252
+ function channelSignalDataBuild(message, history) {
253
+ return {
254
+ channelName: message.channelName,
255
+ messageId: message.id,
256
+ senderUsername: message.senderUsername,
257
+ text: message.text,
258
+ mentions: [...message.mentions],
259
+ createdAt: message.createdAt,
260
+ history: history.map((entry) => ({ ...entry, mentions: [...entry.mentions] }))
261
+ };
262
+ }
263
+ function cloneChannel(channel) {
264
+ return {
265
+ ...channel,
266
+ members: channel.members.map((member) => ({ ...member }))
267
+ };
268
+ }
269
+ //# sourceMappingURL=channels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../../sources/engine/channels/channels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAC3C,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAQjC,MAAM,OAAO,QAAQ;IACF,OAAO,CAAS;IAChB,OAAO,CAA6C;IACpD,WAAW,CAA4C;IACvD,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEpD,YAAY,OAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,IAAI,OAAO,GAAmB,IAAI,CAAC;YACnC,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,+BAA+B,CAAC,CAAC;gBACjF,SAAS;YACX,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACpD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;oBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;oBAC1C,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACnC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;aACvC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,GAAG,CAAC,IAAY;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,aAAqB;QAC9C,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAY;YACvB,EAAE,EAAE,QAAQ,EAAE;YACd,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf,CAAC;QACF,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,mBAAmB,CAAC,WAAW,CAAC;aAC1C,CAAC,CAAC;QACL,CAAC;QACD,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAmB,EAAE,OAAe,EAAE,QAAgB;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,iBAAiB,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAChC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,kBAAkB,IAAI,MAAM,CAAC,OAAO,KAAK,iBAAiB,CAC3F,CAAC;QACF,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,CAAC,IAAI,MAAM,kBAAkB,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAC7C,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,iBAAiB,CACjD,CAAC;QACF,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC/C,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG;gBAC/B,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,kBAAkB;gBAC5B,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,GAAG;aACnC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,kBAAkB;gBAC5B,QAAQ,EAAE,GAAG;aACd,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;QACxB,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACrB,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;YAC1C,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAAmB,EAAE,OAAe;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC;QAC7F,IAAI,WAAW,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;QAC9B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACvB,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;SAC3C,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,IAAI,CACR,WAAmB,EACnB,cAAsB,EACtB,IAAY,EACZ,QAAkB;QAElB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAmB;YAC9B,EAAE,EAAE,QAAQ,EAAE;YACd,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,cAAc,EAAE,MAAM;YACtB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,kBAAkB;YAC5B,SAAS;SACV,CAAC;QAEF,MAAM,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAEpD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO;aACnC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAChE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;QAC5F,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC;QAC1F,MAAM,MAAM,GAAW;YACrB,EAAE,EAAE,QAAQ,EAAE;YACd,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,YAAY;gBAClB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,CAAC,OAAO,EAAE;gBAC7C,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtB,IAAI,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC;YAC9C,SAAS;SACV,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CACf,iBAAiB,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CACtC,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,EAAE,OAAO,EAAE,aAAa,EAA4B,EACpD;YACE,IAAI,EAAE,QAAQ;YACd,MAAM;YACN,mBAAmB,EAAE,UAAU;SACP,CAC3B,CACF,CACF,CAAC;QAEF,MAAM,CAAC,IAAI,CACT;YACE,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,MAAM;YACN,YAAY,EAAE,kBAAkB,CAAC,MAAM;YACvC,cAAc,EAAE,iBAAiB,CAAC,MAAM;SACzC,EACD,kCAAkC,CACnC,CAAC;QAEF,OAAO;YACL,OAAO;YACP,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,KAAc;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACjD,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEO,cAAc,CAAC,IAAY;QACjC,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,OAAO,WAAW,WAAW,IAAI,CAAC;AACpC,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAmB;IACjD,OAAO,WAAW,WAAW,UAAU,CAAC;AAC1C,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAkB;IAC9C,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,GAAG,CACL,QAAQ;SACL,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;SACvC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAChD,CACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACpE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAuB,EACvB,OAAyB;IAEzB,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC/B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KAC/E,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB;IACpC,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;KAC1D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=channels.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.spec.d.ts","sourceRoot":"","sources":["../../../sources/engine/channels/channels.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,132 @@
1
+ import { mkdtemp, rm } from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { describe, expect, it, vi } from "vitest";
5
+ import { Channels } from "./channels.js";
6
+ describe("Channels", () => {
7
+ it("creates channels and manages memberships with signal subscriptions", async () => {
8
+ const dir = await mkdtemp(path.join(os.tmpdir(), "daycare-channels-"));
9
+ try {
10
+ const subscribe = vi.fn();
11
+ const unsubscribe = vi.fn();
12
+ const channels = new Channels({
13
+ configDir: dir,
14
+ signals: { subscribe, unsubscribe },
15
+ agentSystem: {
16
+ agentExists: async (agentId) => agentId !== "missing",
17
+ post: vi.fn(async () => undefined)
18
+ }
19
+ });
20
+ await channels.ensureDir();
21
+ const created = await channels.create("dev", "leader-agent");
22
+ expect(created.name).toBe("dev");
23
+ expect(created.leader).toBe("leader-agent");
24
+ await channels.addMember("dev", "agent-alice", "Alice");
25
+ await channels.addMember("dev", "agent-bob", "bob");
26
+ expect(subscribe).toHaveBeenCalledTimes(2);
27
+ expect(subscribe).toHaveBeenCalledWith({
28
+ agentId: "agent-alice",
29
+ pattern: "channel.dev:*",
30
+ silent: false
31
+ });
32
+ const removed = await channels.removeMember("dev", "agent-bob");
33
+ expect(removed).toBe(true);
34
+ expect(unsubscribe).toHaveBeenCalledWith({
35
+ agentId: "agent-bob",
36
+ pattern: "channel.dev:*"
37
+ });
38
+ }
39
+ finally {
40
+ await rm(dir, { recursive: true, force: true });
41
+ }
42
+ });
43
+ it("delivers addressed messages to mentions + leader and unaddressed only to leader", async () => {
44
+ const dir = await mkdtemp(path.join(os.tmpdir(), "daycare-channels-"));
45
+ try {
46
+ const post = vi.fn(async () => undefined);
47
+ const channels = new Channels({
48
+ configDir: dir,
49
+ signals: {
50
+ subscribe: vi.fn(),
51
+ unsubscribe: vi.fn()
52
+ },
53
+ agentSystem: {
54
+ agentExists: async () => true,
55
+ post
56
+ }
57
+ });
58
+ await channels.ensureDir();
59
+ await channels.create("dev", "agent-leader");
60
+ await channels.addMember("dev", "agent-alice", "alice");
61
+ await channels.addMember("dev", "agent-bob", "bob");
62
+ const mentioned = await channels.send("dev", "alice", "check this", ["bob"]);
63
+ expect(mentioned.deliveredAgentIds.sort()).toEqual(["agent-bob", "agent-leader"]);
64
+ expect(post).toHaveBeenCalledTimes(2);
65
+ post.mockClear();
66
+ const unaddressed = await channels.send("dev", "alice", "what next?", []);
67
+ expect(unaddressed.deliveredAgentIds).toEqual(["agent-leader"]);
68
+ expect(post).toHaveBeenCalledTimes(1);
69
+ expect(post).toHaveBeenCalledWith({ agentId: "agent-leader" }, expect.objectContaining({
70
+ type: "signal",
71
+ subscriptionPattern: "channel.dev:message",
72
+ signal: expect.objectContaining({
73
+ type: "channel.dev:message",
74
+ data: expect.objectContaining({
75
+ channelName: "dev",
76
+ senderUsername: "alice",
77
+ text: "what next?",
78
+ mentions: []
79
+ })
80
+ })
81
+ }));
82
+ const history = await channels.getHistory("dev");
83
+ expect(history).toHaveLength(2);
84
+ expect(history[1]?.text).toBe("what next?");
85
+ }
86
+ finally {
87
+ await rm(dir, { recursive: true, force: true });
88
+ }
89
+ });
90
+ it("restores channels from disk and replays member subscriptions", async () => {
91
+ const dir = await mkdtemp(path.join(os.tmpdir(), "daycare-channels-"));
92
+ try {
93
+ const first = new Channels({
94
+ configDir: dir,
95
+ signals: {
96
+ subscribe: vi.fn(),
97
+ unsubscribe: vi.fn()
98
+ },
99
+ agentSystem: {
100
+ agentExists: async () => true,
101
+ post: vi.fn(async () => undefined)
102
+ }
103
+ });
104
+ await first.ensureDir();
105
+ await first.create("ops", "agent-leader");
106
+ await first.addMember("ops", "agent-a", "alice");
107
+ const subscribe = vi.fn();
108
+ const second = new Channels({
109
+ configDir: dir,
110
+ signals: {
111
+ subscribe,
112
+ unsubscribe: vi.fn()
113
+ },
114
+ agentSystem: {
115
+ agentExists: async () => true,
116
+ post: vi.fn(async () => undefined)
117
+ }
118
+ });
119
+ await second.load();
120
+ expect(second.list()).toHaveLength(1);
121
+ expect(subscribe).toHaveBeenCalledWith({
122
+ agentId: "agent-a",
123
+ pattern: "channel.ops:*",
124
+ silent: false
125
+ });
126
+ }
127
+ finally {
128
+ await rm(dir, { recursive: true, force: true });
129
+ }
130
+ });
131
+ });
132
+ //# sourceMappingURL=channels.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.spec.js","sourceRoot":"","sources":["../../../sources/engine/channels/channels.spec.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ import { ConfigModule } from "./config/configModule.js";
14
14
  import { Signals } from "./signals/signals.js";
15
15
  import { DelayedSignals } from "./signals/delayedSignals.js";
16
16
  import { Processes } from "./processes/processes.js";
17
+ import { PermissionRequestRegistry } from "./modules/tools/permissionRequestRegistry.js";
18
+ import { Channels } from "./channels/channels.js";
17
19
  export type EngineOptions = {
18
20
  config: Config;
19
21
  eventBus: EngineEventBus;
@@ -31,9 +33,11 @@ export declare class Engine {
31
33
  readonly heartbeats: Heartbeats;
32
34
  readonly signals: Signals;
33
35
  readonly delayedSignals: DelayedSignals;
36
+ readonly channels: Channels;
34
37
  readonly processes: Processes;
35
38
  readonly inferenceRouter: InferenceRouter;
36
39
  readonly eventBus: EngineEventBus;
40
+ readonly permissionRequestRegistry: PermissionRequestRegistry;
37
41
  private readonly reloadSync;
38
42
  private readonly incomingMessages;
39
43
  constructor(options: EngineOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../sources/engine/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAoC,MAAM,EAAkB,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA0B7C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAO1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAMrD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,qBAAa,MAAM;IACjB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAExC,OAAO,EAAE,aAAa;IAgM5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgEtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCT,OAAO,CAAC,gBAAgB;YAcV,oBAAoB;YA6BpB,kBAAkB;YAUlB,iBAAiB;IA0BzB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,OAAO,CAAC,YAAY;YAIN,UAAU;YAIV,oBAAoB;YAWpB,iBAAiB;CA4BhC"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../sources/engine/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAoC,MAAM,EAAkB,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAgC7C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAO1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKlD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,qBAAa,MAAM;IACjB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAExC,OAAO,EAAE,aAAa;IA0M5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyEtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCT,OAAO,CAAC,gBAAgB;YAeV,oBAAoB;YA6BpB,kBAAkB;YAUlB,iBAAiB;IA0BzB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,OAAO,CAAC,YAAY;YAIN,UAAU;YAIV,oBAAoB;YAWpB,iBAAiB;CA4BhC"}