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.
- package/dist/commands/channelAddMember.d.ts +2 -0
- package/dist/commands/channelAddMember.d.ts.map +1 -0
- package/dist/commands/channelAddMember.js +20 -0
- package/dist/commands/channelAddMember.js.map +1 -0
- package/dist/commands/channelCommands.spec.d.ts +2 -0
- package/dist/commands/channelCommands.spec.d.ts.map +1 -0
- package/dist/commands/channelCommands.spec.js +95 -0
- package/dist/commands/channelCommands.spec.js.map +1 -0
- package/dist/commands/channelCreate.d.ts +4 -0
- package/dist/commands/channelCreate.d.ts.map +1 -0
- package/dist/commands/channelCreate.js +20 -0
- package/dist/commands/channelCreate.js.map +1 -0
- package/dist/commands/channelList.d.ts +2 -0
- package/dist/commands/channelList.d.ts.map +1 -0
- package/dist/commands/channelList.js +28 -0
- package/dist/commands/channelList.js.map +1 -0
- package/dist/commands/channelRemoveMember.d.ts +2 -0
- package/dist/commands/channelRemoveMember.d.ts.map +1 -0
- package/dist/commands/channelRemoveMember.js +24 -0
- package/dist/commands/channelRemoveMember.js.map +1 -0
- package/dist/commands/channelSend.d.ts +2 -0
- package/dist/commands/channelSend.d.ts.map +1 -0
- package/dist/commands/channelSend.js +20 -0
- package/dist/commands/channelSend.js.map +1 -0
- package/dist/config/configResolve.d.ts.map +1 -1
- package/dist/config/configResolve.js +2 -0
- package/dist/config/configResolve.js.map +1 -1
- package/dist/config/configResolve.spec.js +10 -0
- package/dist/config/configResolve.spec.js.map +1 -1
- package/dist/config/configSettingsParse.d.ts.map +1 -1
- package/dist/config/configSettingsParse.js +1 -0
- package/dist/config/configSettingsParse.js.map +1 -1
- package/dist/config/configTypes.d.ts +1 -0
- package/dist/config/configTypes.d.ts.map +1 -1
- package/dist/engine/agents/agent.d.ts +0 -1
- package/dist/engine/agents/agent.d.ts.map +1 -1
- package/dist/engine/agents/agent.js +18 -66
- package/dist/engine/agents/agent.js.map +1 -1
- package/dist/engine/agents/agentSystem.d.ts +9 -3
- package/dist/engine/agents/agentSystem.d.ts.map +1 -1
- package/dist/engine/agents/agentSystem.js +13 -8
- package/dist/engine/agents/agentSystem.js.map +1 -1
- package/dist/engine/agents/ops/agentDescriptorLabel.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentDescriptorLabel.js +7 -1
- package/dist/engine/agents/ops/agentDescriptorLabel.js.map +1 -1
- package/dist/engine/agents/ops/agentDescriptorLabel.spec.js +2 -1
- package/dist/engine/agents/ops/agentDescriptorLabel.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentDescriptorRead.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentDescriptorRead.js +1 -0
- package/dist/engine/agents/ops/agentDescriptorRead.js.map +1 -1
- package/dist/engine/agents/ops/agentDescriptorTypes.d.ts +1 -0
- package/dist/engine/agents/ops/agentDescriptorTypes.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentLoopRun.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentLoopRun.js +2 -1
- package/dist/engine/agents/ops/agentLoopRun.js.map +1 -1
- package/dist/engine/agents/ops/agentPermanentList.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentPermanentList.js +1 -0
- package/dist/engine/agents/ops/agentPermanentList.js.map +1 -1
- package/dist/engine/agents/ops/agentPromptFilesEnsure.d.ts +1 -1
- package/dist/engine/agents/ops/agentPromptFilesEnsure.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentPromptFilesEnsure.js +2 -3
- package/dist/engine/agents/ops/agentPromptFilesEnsure.js.map +1 -1
- package/dist/engine/agents/ops/agentTypes.d.ts +1 -11
- package/dist/engine/agents/ops/agentTypes.d.ts.map +1 -1
- package/dist/engine/channels/channelMessageBuild.d.ts +12 -0
- package/dist/engine/channels/channelMessageBuild.d.ts.map +1 -0
- package/dist/engine/channels/channelMessageBuild.js +92 -0
- package/dist/engine/channels/channelMessageBuild.js.map +1 -0
- package/dist/engine/channels/channelMessageBuild.spec.d.ts +2 -0
- package/dist/engine/channels/channelMessageBuild.spec.d.ts.map +1 -0
- package/dist/engine/channels/channelMessageBuild.spec.js +60 -0
- package/dist/engine/channels/channelMessageBuild.spec.js.map +1 -0
- package/dist/engine/channels/channelStore.d.ts +27 -0
- package/dist/engine/channels/channelStore.d.ts.map +1 -0
- package/dist/engine/channels/channelStore.js +147 -0
- package/dist/engine/channels/channelStore.js.map +1 -0
- package/dist/engine/channels/channelStore.spec.d.ts +2 -0
- package/dist/engine/channels/channelStore.spec.d.ts.map +1 -0
- package/dist/engine/channels/channelStore.spec.js +89 -0
- package/dist/engine/channels/channelStore.spec.js.map +1 -0
- package/dist/engine/channels/channelTypes.d.ts +31 -0
- package/dist/engine/channels/channelTypes.d.ts.map +1 -0
- package/dist/engine/channels/channelTypes.js +2 -0
- package/dist/engine/channels/channelTypes.js.map +1 -0
- package/dist/engine/channels/channels.d.ts +34 -0
- package/dist/engine/channels/channels.d.ts.map +1 -0
- package/dist/engine/channels/channels.js +269 -0
- package/dist/engine/channels/channels.js.map +1 -0
- package/dist/engine/channels/channels.spec.d.ts +2 -0
- package/dist/engine/channels/channels.spec.d.ts.map +1 -0
- package/dist/engine/channels/channels.spec.js +132 -0
- package/dist/engine/channels/channels.spec.js.map +1 -0
- package/dist/engine/engine.d.ts +4 -0
- package/dist/engine/engine.d.ts.map +1 -1
- package/dist/engine/engine.js +40 -11
- package/dist/engine/engine.js.map +1 -1
- package/dist/engine/engine.spec.js +130 -0
- package/dist/engine/engine.spec.js.map +1 -1
- package/dist/engine/ipc/client.d.ts +9 -1
- package/dist/engine/ipc/client.d.ts.map +1 -1
- package/dist/engine/ipc/client.js +84 -0
- package/dist/engine/ipc/client.js.map +1 -1
- package/dist/engine/ipc/server.d.ts.map +1 -1
- package/dist/engine/ipc/server.js +84 -0
- package/dist/engine/ipc/server.js.map +1 -1
- package/dist/engine/modules/connectors/types.d.ts +6 -4
- package/dist/engine/modules/connectors/types.d.ts.map +1 -1
- package/dist/engine/modules/rlm/rlmConstants.d.ts +3 -0
- package/dist/engine/modules/rlm/rlmConstants.d.ts.map +1 -0
- package/dist/engine/modules/rlm/rlmConstants.js +3 -0
- package/dist/engine/modules/rlm/rlmConstants.js.map +1 -0
- package/dist/engine/modules/rlm/rlmConvert.d.ts +14 -0
- package/dist/engine/modules/rlm/rlmConvert.d.ts.map +1 -0
- package/dist/engine/modules/rlm/rlmConvert.js +81 -0
- package/dist/engine/modules/rlm/rlmConvert.js.map +1 -0
- package/dist/engine/modules/rlm/rlmConvert.spec.d.ts +2 -0
- package/dist/engine/modules/rlm/rlmConvert.spec.d.ts.map +1 -0
- package/dist/engine/modules/rlm/rlmConvert.spec.js +71 -0
- package/dist/engine/modules/rlm/rlmConvert.spec.js.map +1 -0
- package/dist/engine/modules/rlm/rlmExecute.d.ts +13 -0
- package/dist/engine/modules/rlm/rlmExecute.d.ts.map +1 -0
- package/dist/engine/modules/rlm/rlmExecute.js +120 -0
- package/dist/engine/modules/rlm/rlmExecute.js.map +1 -0
- package/dist/engine/modules/rlm/rlmExecute.spec.d.ts +2 -0
- package/dist/engine/modules/rlm/rlmExecute.spec.d.ts.map +1 -0
- package/dist/engine/modules/rlm/rlmExecute.spec.js +118 -0
- package/dist/engine/modules/rlm/rlmExecute.spec.js.map +1 -0
- package/dist/engine/modules/rlm/rlmPreambleBuild.d.ts +7 -0
- package/dist/engine/modules/rlm/rlmPreambleBuild.d.ts.map +1 -0
- package/dist/engine/modules/rlm/rlmPreambleBuild.js +148 -0
- package/dist/engine/modules/rlm/rlmPreambleBuild.js.map +1 -0
- package/dist/engine/modules/rlm/rlmPreambleBuild.spec.d.ts +2 -0
- package/dist/engine/modules/rlm/rlmPreambleBuild.spec.d.ts.map +1 -0
- package/dist/engine/modules/rlm/rlmPreambleBuild.spec.js +47 -0
- package/dist/engine/modules/rlm/rlmPreambleBuild.spec.js.map +1 -0
- package/dist/engine/modules/rlm/rlmTool.d.ts +8 -0
- package/dist/engine/modules/rlm/rlmTool.d.ts.map +1 -0
- package/dist/engine/modules/rlm/rlmTool.js +67 -0
- package/dist/engine/modules/rlm/rlmTool.js.map +1 -0
- package/dist/engine/modules/rlm/rlmTool.spec.d.ts +2 -0
- package/dist/engine/modules/rlm/rlmTool.spec.d.ts.map +1 -0
- package/dist/engine/modules/rlm/rlmTool.spec.js +107 -0
- package/dist/engine/modules/rlm/rlmTool.spec.js.map +1 -0
- package/dist/engine/modules/rlm/rlmToolDescriptionBuild.d.ts +7 -0
- package/dist/engine/modules/rlm/rlmToolDescriptionBuild.d.ts.map +1 -0
- package/dist/engine/modules/rlm/rlmToolDescriptionBuild.js +22 -0
- package/dist/engine/modules/rlm/rlmToolDescriptionBuild.js.map +1 -0
- package/dist/engine/modules/tools/channelCreateTool.d.ts +4 -0
- package/dist/engine/modules/tools/channelCreateTool.d.ts.map +1 -0
- package/dist/engine/modules/tools/channelCreateTool.js +34 -0
- package/dist/engine/modules/tools/channelCreateTool.js.map +1 -0
- package/dist/engine/modules/tools/channelCreateTool.spec.d.ts +2 -0
- package/dist/engine/modules/tools/channelCreateTool.spec.d.ts.map +1 -0
- package/dist/engine/modules/tools/channelCreateTool.spec.js +41 -0
- package/dist/engine/modules/tools/channelCreateTool.spec.js.map +1 -0
- package/dist/engine/modules/tools/channelHistoryTool.d.ts +4 -0
- package/dist/engine/modules/tools/channelHistoryTool.d.ts.map +1 -0
- package/dist/engine/modules/tools/channelHistoryTool.js +37 -0
- package/dist/engine/modules/tools/channelHistoryTool.js.map +1 -0
- package/dist/engine/modules/tools/channelHistoryTool.spec.d.ts +2 -0
- package/dist/engine/modules/tools/channelHistoryTool.spec.d.ts.map +1 -0
- package/dist/engine/modules/tools/channelHistoryTool.spec.js +58 -0
- package/dist/engine/modules/tools/channelHistoryTool.spec.js.map +1 -0
- package/dist/engine/modules/tools/channelMemberTool.d.ts +5 -0
- package/dist/engine/modules/tools/channelMemberTool.d.ts.map +1 -0
- package/dist/engine/modules/tools/channelMemberTool.js +73 -0
- package/dist/engine/modules/tools/channelMemberTool.js.map +1 -0
- package/dist/engine/modules/tools/channelMemberTool.spec.d.ts +2 -0
- package/dist/engine/modules/tools/channelMemberTool.spec.d.ts.map +1 -0
- package/dist/engine/modules/tools/channelMemberTool.spec.js +56 -0
- package/dist/engine/modules/tools/channelMemberTool.spec.js.map +1 -0
- package/dist/engine/modules/tools/channelSendTool.d.ts +4 -0
- package/dist/engine/modules/tools/channelSendTool.d.ts.map +1 -0
- package/dist/engine/modules/tools/channelSendTool.js +63 -0
- package/dist/engine/modules/tools/channelSendTool.js.map +1 -0
- package/dist/engine/modules/tools/channelSendTool.spec.d.ts +2 -0
- package/dist/engine/modules/tools/channelSendTool.spec.d.ts.map +1 -0
- package/dist/engine/modules/tools/channelSendTool.spec.js +58 -0
- package/dist/engine/modules/tools/channelSendTool.spec.js.map +1 -0
- package/dist/engine/modules/tools/heartbeat.d.ts +0 -1
- package/dist/engine/modules/tools/heartbeat.d.ts.map +1 -1
- package/dist/engine/modules/tools/heartbeat.js +0 -37
- package/dist/engine/modules/tools/heartbeat.js.map +1 -1
- package/dist/engine/modules/tools/permanentAgentToolBuild.d.ts.map +1 -1
- package/dist/engine/modules/tools/permanentAgentToolBuild.js +10 -0
- package/dist/engine/modules/tools/permanentAgentToolBuild.js.map +1 -1
- package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js +27 -0
- package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js.map +1 -1
- package/dist/engine/modules/tools/permissionRequestRegistry.d.ts +13 -0
- package/dist/engine/modules/tools/permissionRequestRegistry.d.ts.map +1 -0
- package/dist/engine/modules/tools/permissionRequestRegistry.js +51 -0
- package/dist/engine/modules/tools/permissionRequestRegistry.js.map +1 -0
- package/dist/engine/modules/tools/permissionRequestRegistry.spec.d.ts +2 -0
- package/dist/engine/modules/tools/permissionRequestRegistry.spec.d.ts.map +1 -0
- package/dist/engine/modules/tools/permissionRequestRegistry.spec.js +47 -0
- package/dist/engine/modules/tools/permissionRequestRegistry.spec.js.map +1 -0
- package/dist/engine/modules/tools/permissions.d.ts.map +1 -1
- package/dist/engine/modules/tools/permissions.js +86 -16
- package/dist/engine/modules/tools/permissions.js.map +1 -1
- package/dist/engine/modules/tools/permissions.spec.d.ts +2 -0
- package/dist/engine/modules/tools/permissions.spec.d.ts.map +1 -0
- package/dist/engine/modules/tools/permissions.spec.js +244 -0
- package/dist/engine/modules/tools/permissions.spec.js.map +1 -0
- package/dist/engine/modules/tools/toolListContextBuild.d.ts +1 -0
- package/dist/engine/modules/tools/toolListContextBuild.d.ts.map +1 -1
- package/dist/engine/modules/tools/toolListContextBuild.js +17 -0
- package/dist/engine/modules/tools/toolListContextBuild.js.map +1 -1
- package/dist/engine/modules/tools/toolListContextBuild.spec.js +16 -0
- package/dist/engine/modules/tools/toolListContextBuild.spec.js.map +1 -1
- package/dist/engine/modules/tools/topologyToolBuild.d.ts +10 -0
- package/dist/engine/modules/tools/topologyToolBuild.d.ts.map +1 -0
- package/dist/engine/modules/tools/topologyToolBuild.js +157 -0
- package/dist/engine/modules/tools/topologyToolBuild.js.map +1 -0
- package/dist/engine/modules/tools/topologyToolBuild.spec.d.ts +2 -0
- package/dist/engine/modules/tools/topologyToolBuild.spec.d.ts.map +1 -0
- package/dist/engine/modules/tools/topologyToolBuild.spec.js +264 -0
- package/dist/engine/modules/tools/topologyToolBuild.spec.js.map +1 -0
- package/dist/engine/modules/tools/types.d.ts +2 -0
- package/dist/engine/modules/tools/types.d.ts.map +1 -1
- package/dist/engine/permissions/permissionApply.d.ts.map +1 -1
- package/dist/engine/permissions/permissionApply.js +3 -1
- package/dist/engine/permissions/permissionApply.js.map +1 -1
- package/dist/engine/permissions/permissionApply.spec.js +17 -14
- package/dist/engine/permissions/permissionApply.spec.js.map +1 -1
- package/dist/engine/permissions/permissionBuildDefault.d.ts.map +1 -1
- package/dist/engine/permissions/permissionBuildDefault.js +1 -2
- package/dist/engine/permissions/permissionBuildDefault.js.map +1 -1
- package/dist/engine/skills/skillListUser.d.ts +8 -0
- package/dist/engine/skills/skillListUser.d.ts.map +1 -0
- package/dist/engine/skills/skillListUser.js +31 -0
- package/dist/engine/skills/skillListUser.js.map +1 -0
- package/dist/engine/skills/skillListUser.spec.d.ts +2 -0
- package/dist/engine/skills/skillListUser.spec.d.ts.map +1 -0
- package/dist/engine/skills/skillListUser.spec.js +38 -0
- package/dist/engine/skills/skillListUser.spec.js.map +1 -0
- package/dist/engine/skills/skillResolve.js +3 -0
- package/dist/engine/skills/skillResolve.js.map +1 -1
- package/dist/engine/skills/skillTypes.d.ts +4 -1
- package/dist/engine/skills/skillTypes.d.ts.map +1 -1
- package/dist/main.js +35 -0
- package/dist/main.js.map +1 -1
- package/dist/paths.d.ts +1 -1
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +1 -1
- package/dist/paths.js.map +1 -1
- package/dist/plugins/telegram/connector.d.ts.map +1 -1
- package/dist/plugins/telegram/connector.js +6 -11
- package/dist/plugins/telegram/connector.js.map +1 -1
- package/dist/plugins/telegram/connector.spec.js +10 -2
- package/dist/plugins/telegram/connector.spec.js.map +1 -1
- package/dist/plugins/whatsapp/connector.d.ts.map +1 -1
- package/dist/plugins/whatsapp/connector.js +6 -10
- package/dist/plugins/whatsapp/connector.js.map +1 -1
- package/dist/prompts/MEMORY.md +0 -1
- package/dist/prompts/PERMISSIONS.md +5 -4
- package/dist/prompts/SYSTEM.md +33 -27
- package/dist/settings.d.ts +1 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js.map +1 -1
- package/dist/skills/skills/scheduling/SKILL.md +2 -2
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- 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 @@
|
|
|
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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"}
|
package/dist/engine/engine.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|