daycare-cli 0.0.11 → 0.0.12
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/engine/agents/agent.d.ts +0 -1
- package/dist/engine/agents/agent.d.ts.map +1 -1
- package/dist/engine/agents/agent.js +17 -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 +35 -11
- package/dist/engine/engine.js.map +1 -1
- package/dist/engine/engine.spec.js +114 -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/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/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/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 +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelAddMember.d.ts","sourceRoot":"","sources":["../../sources/commands/channelAddMember.ts"],"names":[],"mappings":"AAEA,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAUf"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { addEngineChannelMember } from "../engine/ipc/client.js";
|
|
2
|
+
export async function channelAddMemberCommand(channelName, agentId, username) {
|
|
3
|
+
intro("daycare channel add-member");
|
|
4
|
+
try {
|
|
5
|
+
await addEngineChannelMember(channelName, agentId, username);
|
|
6
|
+
outro(`Added @${username} (${agentId}) to #${channelName}.`);
|
|
7
|
+
}
|
|
8
|
+
catch (error) {
|
|
9
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
10
|
+
process.exitCode = 1;
|
|
11
|
+
console.error(`Failed to add channel member: ${message}`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function intro(message) {
|
|
15
|
+
console.log(message);
|
|
16
|
+
}
|
|
17
|
+
function outro(message) {
|
|
18
|
+
console.log(message);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=channelAddMember.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelAddMember.js","sourceRoot":"","sources":["../../sources/commands/channelAddMember.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAmB,EACnB,OAAe,EACf,QAAgB;IAEhB,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,sBAAsB,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7D,KAAK,CAAC,UAAU,QAAQ,KAAK,OAAO,SAAS,WAAW,GAAG,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelCommands.spec.d.ts","sourceRoot":"","sources":["../../sources/commands/channelCommands.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { addEngineChannelMember, createEngineChannel, listEngineChannels, removeEngineChannelMember, sendEngineChannelMessage } from "../engine/ipc/client.js";
|
|
3
|
+
import { channelAddMemberCommand } from "./channelAddMember.js";
|
|
4
|
+
import { channelCreateCommand } from "./channelCreate.js";
|
|
5
|
+
import { channelListCommand } from "./channelList.js";
|
|
6
|
+
import { channelRemoveMemberCommand } from "./channelRemoveMember.js";
|
|
7
|
+
import { channelSendCommand } from "./channelSend.js";
|
|
8
|
+
vi.mock("../engine/ipc/client.js", () => ({
|
|
9
|
+
createEngineChannel: vi.fn(),
|
|
10
|
+
listEngineChannels: vi.fn(),
|
|
11
|
+
addEngineChannelMember: vi.fn(),
|
|
12
|
+
removeEngineChannelMember: vi.fn(),
|
|
13
|
+
sendEngineChannelMessage: vi.fn()
|
|
14
|
+
}));
|
|
15
|
+
describe("channel commands", () => {
|
|
16
|
+
const createEngineChannelMock = vi.mocked(createEngineChannel);
|
|
17
|
+
const listEngineChannelsMock = vi.mocked(listEngineChannels);
|
|
18
|
+
const addEngineChannelMemberMock = vi.mocked(addEngineChannelMember);
|
|
19
|
+
const removeEngineChannelMemberMock = vi.mocked(removeEngineChannelMember);
|
|
20
|
+
const sendEngineChannelMessageMock = vi.mocked(sendEngineChannelMessage);
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
createEngineChannelMock.mockReset();
|
|
23
|
+
listEngineChannelsMock.mockReset();
|
|
24
|
+
addEngineChannelMemberMock.mockReset();
|
|
25
|
+
removeEngineChannelMemberMock.mockReset();
|
|
26
|
+
sendEngineChannelMessageMock.mockReset();
|
|
27
|
+
process.exitCode = undefined;
|
|
28
|
+
vi.spyOn(console, "log").mockImplementation(() => undefined);
|
|
29
|
+
vi.spyOn(console, "error").mockImplementation(() => undefined);
|
|
30
|
+
});
|
|
31
|
+
afterEach(() => {
|
|
32
|
+
vi.restoreAllMocks();
|
|
33
|
+
});
|
|
34
|
+
it("creates channels with leader option", async () => {
|
|
35
|
+
createEngineChannelMock.mockResolvedValueOnce({
|
|
36
|
+
id: "ch-1",
|
|
37
|
+
name: "dev",
|
|
38
|
+
leader: "agent-leader",
|
|
39
|
+
members: [],
|
|
40
|
+
createdAt: 1,
|
|
41
|
+
updatedAt: 1
|
|
42
|
+
});
|
|
43
|
+
await channelCreateCommand("dev", { leader: "agent-leader" });
|
|
44
|
+
expect(createEngineChannelMock).toHaveBeenCalledWith("dev", "agent-leader");
|
|
45
|
+
expect(process.exitCode).toBeUndefined();
|
|
46
|
+
});
|
|
47
|
+
it("lists channels", async () => {
|
|
48
|
+
listEngineChannelsMock.mockResolvedValueOnce([
|
|
49
|
+
{
|
|
50
|
+
id: "ch-1",
|
|
51
|
+
name: "dev",
|
|
52
|
+
leader: "agent-leader",
|
|
53
|
+
members: [],
|
|
54
|
+
createdAt: 1,
|
|
55
|
+
updatedAt: 1
|
|
56
|
+
}
|
|
57
|
+
]);
|
|
58
|
+
await channelListCommand();
|
|
59
|
+
expect(listEngineChannelsMock).toHaveBeenCalled();
|
|
60
|
+
expect(process.exitCode).toBeUndefined();
|
|
61
|
+
});
|
|
62
|
+
it("adds and removes channel members", async () => {
|
|
63
|
+
addEngineChannelMemberMock.mockResolvedValueOnce({
|
|
64
|
+
id: "ch-1",
|
|
65
|
+
name: "dev",
|
|
66
|
+
leader: "agent-leader",
|
|
67
|
+
members: [{ agentId: "agent-a", username: "alice", joinedAt: 1 }],
|
|
68
|
+
createdAt: 1,
|
|
69
|
+
updatedAt: 1
|
|
70
|
+
});
|
|
71
|
+
removeEngineChannelMemberMock.mockResolvedValueOnce(true);
|
|
72
|
+
await channelAddMemberCommand("dev", "agent-a", "alice");
|
|
73
|
+
await channelRemoveMemberCommand("dev", "agent-a");
|
|
74
|
+
expect(addEngineChannelMemberMock).toHaveBeenCalledWith("dev", "agent-a", "alice");
|
|
75
|
+
expect(removeEngineChannelMemberMock).toHaveBeenCalledWith("dev", "agent-a");
|
|
76
|
+
expect(process.exitCode).toBeUndefined();
|
|
77
|
+
});
|
|
78
|
+
it("sends a channel message from CLI sender identity", async () => {
|
|
79
|
+
sendEngineChannelMessageMock.mockResolvedValueOnce({
|
|
80
|
+
message: {
|
|
81
|
+
id: "m1",
|
|
82
|
+
channelName: "dev",
|
|
83
|
+
senderUsername: "daycare-cli",
|
|
84
|
+
text: "hello",
|
|
85
|
+
mentions: [],
|
|
86
|
+
createdAt: 1
|
|
87
|
+
},
|
|
88
|
+
deliveredAgentIds: ["agent-leader"]
|
|
89
|
+
});
|
|
90
|
+
await channelSendCommand("dev", "hello");
|
|
91
|
+
expect(sendEngineChannelMessageMock).toHaveBeenCalledWith("dev", "daycare-cli", "hello", []);
|
|
92
|
+
expect(process.exitCode).toBeUndefined();
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=channelCommands.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelCommands.spec.js","sourceRoot":"","sources":["../../sources/commands/channelCommands.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelCreate.d.ts","sourceRoot":"","sources":["../../sources/commands/channelCreate.ts"],"names":[],"mappings":"AAEA,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAUnG"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createEngineChannel } from "../engine/ipc/client.js";
|
|
2
|
+
export async function channelCreateCommand(name, options) {
|
|
3
|
+
intro("daycare channel create");
|
|
4
|
+
try {
|
|
5
|
+
const channel = await createEngineChannel(name, options.leader);
|
|
6
|
+
outro(`Created #${channel.name} (leader=${channel.leader}).`);
|
|
7
|
+
}
|
|
8
|
+
catch (error) {
|
|
9
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
10
|
+
process.exitCode = 1;
|
|
11
|
+
console.error(`Failed to create channel: ${message}`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function intro(message) {
|
|
15
|
+
console.log(message);
|
|
16
|
+
}
|
|
17
|
+
function outro(message) {
|
|
18
|
+
console.log(message);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=channelCreate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelCreate.js","sourceRoot":"","sources":["../../sources/commands/channelCreate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY,EAAE,OAA2B;IAClF,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,KAAK,CAAC,YAAY,OAAO,CAAC,IAAI,YAAY,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelList.d.ts","sourceRoot":"","sources":["../../sources/commands/channelList.ts"],"names":[],"mappings":"AAEA,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkBxD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { listEngineChannels } from "../engine/ipc/client.js";
|
|
2
|
+
export async function channelListCommand() {
|
|
3
|
+
intro("daycare channel list");
|
|
4
|
+
try {
|
|
5
|
+
const channels = await listEngineChannels();
|
|
6
|
+
if (channels.length === 0) {
|
|
7
|
+
outro("No channels.");
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
for (const channel of channels) {
|
|
11
|
+
const members = channel.members.length;
|
|
12
|
+
console.log(`#${channel.name} leader=${channel.leader} members=${members}`);
|
|
13
|
+
}
|
|
14
|
+
outro(`Listed ${channels.length} channel(s).`);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
18
|
+
process.exitCode = 1;
|
|
19
|
+
console.error(`Failed to list channels: ${message}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function intro(message) {
|
|
23
|
+
console.log(message);
|
|
24
|
+
}
|
|
25
|
+
function outro(message) {
|
|
26
|
+
console.log(message);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=channelList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelList.js","sourceRoot":"","sources":["../../sources/commands/channelList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,cAAc,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,WAAW,OAAO,CAAC,MAAM,YAAY,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,KAAK,CAAC,UAAU,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelRemoveMember.d.ts","sourceRoot":"","sources":["../../sources/commands/channelRemoveMember.ts"],"names":[],"mappings":"AAEA,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { removeEngineChannelMember } from "../engine/ipc/client.js";
|
|
2
|
+
export async function channelRemoveMemberCommand(channelName, agentId) {
|
|
3
|
+
intro("daycare channel remove-member");
|
|
4
|
+
try {
|
|
5
|
+
const removed = await removeEngineChannelMember(channelName, agentId);
|
|
6
|
+
if (removed) {
|
|
7
|
+
outro(`Removed ${agentId} from #${channelName}.`);
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
outro(`${agentId} is not a member of #${channelName}.`);
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
14
|
+
process.exitCode = 1;
|
|
15
|
+
console.error(`Failed to remove channel member: ${message}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function intro(message) {
|
|
19
|
+
console.log(message);
|
|
20
|
+
}
|
|
21
|
+
function outro(message) {
|
|
22
|
+
console.log(message);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=channelRemoveMember.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelRemoveMember.js","sourceRoot":"","sources":["../../sources/commands/channelRemoveMember.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,WAAmB,EACnB,OAAe;IAEf,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,WAAW,OAAO,UAAU,WAAW,GAAG,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,KAAK,CAAC,GAAG,OAAO,wBAAwB,WAAW,GAAG,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelSend.d.ts","sourceRoot":"","sources":["../../sources/commands/channelSend.ts"],"names":[],"mappings":"AAEA,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYzF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { sendEngineChannelMessage } from "../engine/ipc/client.js";
|
|
2
|
+
export async function channelSendCommand(channelName, text) {
|
|
3
|
+
intro("daycare channel send");
|
|
4
|
+
try {
|
|
5
|
+
const result = await sendEngineChannelMessage(channelName, "daycare-cli", text, []);
|
|
6
|
+
outro(`Sent message ${result.message.id} to #${channelName} (delivered=${result.deliveredAgentIds.length}).`);
|
|
7
|
+
}
|
|
8
|
+
catch (error) {
|
|
9
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
10
|
+
process.exitCode = 1;
|
|
11
|
+
console.error(`Failed to send channel message: ${message}`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function intro(message) {
|
|
15
|
+
console.log(message);
|
|
16
|
+
}
|
|
17
|
+
function outro(message) {
|
|
18
|
+
console.log(message);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=channelSend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelSend.js","sourceRoot":"","sources":["../../sources/commands/channelSend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAmB,EAAE,IAAY;IACxE,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACpF,KAAK,CACH,gBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,WAAW,eAAe,MAAM,CAAC,iBAAiB,CAAC,MAAM,IAAI,CACvG,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../sources/engine/agents/agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../sources/engine/agents/agent.ts"],"names":[],"mappings":"AA0CA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAUV,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AASjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD,qBAAa,KAAK;IAChB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,wBAAwB,CAAgC;IAEhE,OAAO;IAcP;;;OAGG;WACU,MAAM,CACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,KAAK,CAAC;IA+BjB;;;OAGG;IACH,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,WAAW,GACvB,KAAK;IAIR,KAAK,IAAI,IAAI;IAeb,YAAY,IAAI,OAAO;IAIvB;;;OAGG;IACH,cAAc,IAAI,OAAO;YASX,OAAO;IAwCrB;;;OAGG;YACW,cAAc;YAad,eAAe;YAkCf,mBAAmB;YAsBnB,aAAa;YAsTb,mBAAmB;YAuCnB,YAAY;YA4BZ,WAAW;IA8CzB;;;OAGG;YACW,oBAAoB;YAmCpB,aAAa;IAe3B;;;OAGG;IACG,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B3E;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUjD,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,oBAAoB;YAiBd,mBAAmB;IAiEjC;;;OAGG;YACW,iBAAiB;CA0GhC"}
|
|
@@ -4,7 +4,7 @@ import path from "node:path";
|
|
|
4
4
|
import { createId } from "@paralleldrive/cuid2";
|
|
5
5
|
import Handlebars from "handlebars";
|
|
6
6
|
import { getLogger } from "../../log.js";
|
|
7
|
-
import { DEFAULT_AGENTS_PATH,
|
|
7
|
+
import { DEFAULT_AGENTS_PATH, DEFAULT_MEMORY_PATH, DEFAULT_SOUL_PATH, DEFAULT_TOOLS_PATH, DEFAULT_USER_PATH } from "../../paths.js";
|
|
8
8
|
import { listActiveInferenceProviders } from "../../providers/catalog.js";
|
|
9
9
|
import { cuid2Is } from "../../utils/cuid2Is.js";
|
|
10
10
|
import { agentPromptBundledRead } from "./ops/agentPromptBundledRead.js";
|
|
@@ -18,13 +18,11 @@ import { contextCompactionStatusBuild } from "./ops/contextCompactionStatusBuild
|
|
|
18
18
|
import { permissionClone } from "../permissions/permissionClone.js";
|
|
19
19
|
import { permissionEnsureDefaultFile } from "../permissions/permissionEnsureDefaultFile.js";
|
|
20
20
|
import { permissionMergeDefault } from "../permissions/permissionMergeDefault.js";
|
|
21
|
-
import { permissionApply } from "../permissions/permissionApply.js";
|
|
22
|
-
import { permissionDescribeDecision } from "../permissions/permissionDescribeDecision.js";
|
|
23
|
-
import { permissionFormatTag } from "../permissions/permissionFormatTag.js";
|
|
24
21
|
import { permissionTagsApply } from "../permissions/permissionTagsApply.js";
|
|
25
22
|
import { skillListConfig } from "../skills/skillListConfig.js";
|
|
26
23
|
import { skillListCore } from "../skills/skillListCore.js";
|
|
27
24
|
import { skillListRegistered } from "../skills/skillListRegistered.js";
|
|
25
|
+
import { skillListUser } from "../skills/skillListUser.js";
|
|
28
26
|
import { skillPromptFormat } from "../skills/skillPromptFormat.js";
|
|
29
27
|
import { toolListContextBuild } from "../modules/tools/toolListContextBuild.js";
|
|
30
28
|
import { agentPermanentList } from "./ops/agentPermanentList.js";
|
|
@@ -40,6 +38,7 @@ import { agentDescriptorWrite } from "./ops/agentDescriptorWrite.js";
|
|
|
40
38
|
import { agentSystemPromptWrite } from "./ops/agentSystemPromptWrite.js";
|
|
41
39
|
import { agentRestoreContextResolve } from "./ops/agentRestoreContextResolve.js";
|
|
42
40
|
import { signalMessageBuild } from "../signals/signalMessageBuild.js";
|
|
41
|
+
import { channelMessageBuild, channelSignalDataParse } from "../channels/channelMessageBuild.js";
|
|
43
42
|
import { systemAgentPromptResolve } from "./system/systemAgentPromptResolve.js";
|
|
44
43
|
const logger = getLogger("engine.agent");
|
|
45
44
|
export class Agent {
|
|
@@ -169,7 +168,6 @@ export class Agent {
|
|
|
169
168
|
item.type !== "system_message" &&
|
|
170
169
|
item.type !== "signal" &&
|
|
171
170
|
item.type !== "reset" &&
|
|
172
|
-
item.type !== "permission" &&
|
|
173
171
|
item.type !== "restore") {
|
|
174
172
|
return;
|
|
175
173
|
}
|
|
@@ -197,10 +195,6 @@ export class Agent {
|
|
|
197
195
|
const ok = await this.handleRestore(item);
|
|
198
196
|
return { type: "restore", ok };
|
|
199
197
|
}
|
|
200
|
-
case "permission": {
|
|
201
|
-
const ok = await this.handlePermission(item);
|
|
202
|
-
return { type: "permission", ok };
|
|
203
|
-
}
|
|
204
198
|
default:
|
|
205
199
|
return { type: "restore", ok: false };
|
|
206
200
|
}
|
|
@@ -274,12 +268,13 @@ export class Agent {
|
|
|
274
268
|
const pluginPrompt = pluginPrompts.length > 0 ? pluginPrompts.join("\n\n") : "";
|
|
275
269
|
const configSkillsRoot = path.join(this.agentSystem.config.current.configDir, "skills");
|
|
276
270
|
logger.debug(`load: handleMessage loading available skills agentId=${this.id}`);
|
|
277
|
-
const [coreSkills, configSkills, pluginSkills] = await Promise.all([
|
|
271
|
+
const [coreSkills, configSkills, userSkills, pluginSkills] = await Promise.all([
|
|
278
272
|
skillListCore(),
|
|
279
273
|
skillListConfig(configSkillsRoot),
|
|
274
|
+
skillListUser(),
|
|
280
275
|
skillListRegistered(pluginManager.listRegisteredSkills())
|
|
281
276
|
]);
|
|
282
|
-
const skills = [...coreSkills, ...configSkills, ...pluginSkills];
|
|
277
|
+
const skills = [...coreSkills, ...configSkills, ...userSkills, ...pluginSkills];
|
|
283
278
|
const skillsPrompt = skillPromptFormat(skills);
|
|
284
279
|
const permanentAgents = await agentPermanentList(this.agentSystem.config.current);
|
|
285
280
|
const permanentAgentsPrompt = agentPermanentPromptBuild(permanentAgents);
|
|
@@ -334,7 +329,6 @@ export class Agent {
|
|
|
334
329
|
cronTaskIds: cronTaskIds.length > 0 ? cronTaskIds.join(", ") : "",
|
|
335
330
|
soulPath: DEFAULT_SOUL_PATH,
|
|
336
331
|
userPath: DEFAULT_USER_PATH,
|
|
337
|
-
actorsPath: DEFAULT_ACTORS_PATH,
|
|
338
332
|
agentsPath: DEFAULT_AGENTS_PATH,
|
|
339
333
|
toolsPath: DEFAULT_TOOLS_PATH,
|
|
340
334
|
memoryPath: DEFAULT_MEMORY_PATH,
|
|
@@ -551,9 +545,13 @@ export class Agent {
|
|
|
551
545
|
if (!isInternalSignal && !subscription) {
|
|
552
546
|
return { delivered: false, responseText: null };
|
|
553
547
|
}
|
|
548
|
+
const channelSignalData = channelSignalDataParse(item.signal.data);
|
|
549
|
+
const text = isChannelSignalType(item.signal.type) && channelSignalData
|
|
550
|
+
? channelMessageBuild(channelSignalData)
|
|
551
|
+
: signalMessageBuild(item.signal);
|
|
554
552
|
const responseText = await this.handleSystemMessage({
|
|
555
553
|
type: "system_message",
|
|
556
|
-
text
|
|
554
|
+
text,
|
|
557
555
|
origin: `signal:${item.signal.id}`,
|
|
558
556
|
silent: isInternalSignal ? false : (subscription?.silent ?? false),
|
|
559
557
|
context: {}
|
|
@@ -647,51 +645,6 @@ export class Agent {
|
|
|
647
645
|
this.agentSystem.eventBus.emit("agent.restored", { agentId: this.id });
|
|
648
646
|
return true;
|
|
649
647
|
}
|
|
650
|
-
async handlePermission(item) {
|
|
651
|
-
const context = item.context;
|
|
652
|
-
const decision = item.decision;
|
|
653
|
-
const target = agentDescriptorTargetResolve(this.descriptor);
|
|
654
|
-
const source = target?.connector ?? this.descriptor.type;
|
|
655
|
-
const connector = target
|
|
656
|
-
? this.agentSystem.connectorRegistry.get(target.connector)
|
|
657
|
-
: null;
|
|
658
|
-
const permissionTag = permissionFormatTag(decision.access);
|
|
659
|
-
const permissionLabel = permissionDescribeDecision(decision.access);
|
|
660
|
-
if (!decision.approved) {
|
|
661
|
-
logger.info({ source, permission: permissionTag, agentId: this.id }, "event: Permission denied");
|
|
662
|
-
}
|
|
663
|
-
if (decision.approved && (decision.access.kind === "read" || decision.access.kind === "write")) {
|
|
664
|
-
if (!path.isAbsolute(decision.access.path)) {
|
|
665
|
-
logger.warn({ agentId: this.id, permission: permissionTag }, "event: Permission path not absolute");
|
|
666
|
-
if (connector && target) {
|
|
667
|
-
await connector.sendMessage(target.targetId, {
|
|
668
|
-
text: `Permission ignored (path must be absolute): ${permissionLabel}.`,
|
|
669
|
-
replyToMessageId: context.messageId
|
|
670
|
-
});
|
|
671
|
-
}
|
|
672
|
-
return false;
|
|
673
|
-
}
|
|
674
|
-
}
|
|
675
|
-
if (decision.approved) {
|
|
676
|
-
permissionApply(this.state.permissions, decision);
|
|
677
|
-
await agentStateWrite(this.agentSystem.config.current, this.id, this.state);
|
|
678
|
-
this.agentSystem.eventBus.emit("permission.granted", {
|
|
679
|
-
agentId: this.id,
|
|
680
|
-
source,
|
|
681
|
-
decision
|
|
682
|
-
});
|
|
683
|
-
}
|
|
684
|
-
const resumeText = decision.approved
|
|
685
|
-
? `Permission granted for ${permissionLabel}. Please continue with the previous request.`
|
|
686
|
-
: `Permission denied for ${permissionLabel}. Please continue without that permission.`;
|
|
687
|
-
const resumeMessage = {
|
|
688
|
-
type: "message",
|
|
689
|
-
message: { text: resumeText, rawText: resumeText },
|
|
690
|
-
context: { ...context }
|
|
691
|
-
};
|
|
692
|
-
await this.handleMessage(resumeMessage);
|
|
693
|
-
return true;
|
|
694
|
-
}
|
|
695
648
|
/**
|
|
696
649
|
* Notifies a parent agent when a subagent fails.
|
|
697
650
|
* Expects: parent agent exists.
|
|
@@ -831,7 +784,6 @@ export class Agent {
|
|
|
831
784
|
}
|
|
832
785
|
const soulPath = context.soulPath ?? DEFAULT_SOUL_PATH;
|
|
833
786
|
const userPath = context.userPath ?? DEFAULT_USER_PATH;
|
|
834
|
-
const actorsPath = context.actorsPath ?? DEFAULT_ACTORS_PATH;
|
|
835
787
|
const agentsPath = context.agentsPath ?? DEFAULT_AGENTS_PATH;
|
|
836
788
|
const toolsPath = context.toolsPath ?? DEFAULT_TOOLS_PATH;
|
|
837
789
|
const memoryPath = context.memoryPath ?? DEFAULT_MEMORY_PATH;
|
|
@@ -839,8 +791,6 @@ export class Agent {
|
|
|
839
791
|
const soul = await promptFileRead(soulPath, "SOUL.md");
|
|
840
792
|
logger.debug(`event: buildSystemPrompt reading user prompt path=${userPath}`);
|
|
841
793
|
const user = await promptFileRead(userPath, "USER.md");
|
|
842
|
-
logger.debug(`event: buildSystemPrompt reading actors prompt path=${actorsPath}`);
|
|
843
|
-
const actors = await promptFileRead(actorsPath, "ACTORS.md");
|
|
844
794
|
logger.debug(`event: buildSystemPrompt reading agents prompt path=${agentsPath}`);
|
|
845
795
|
const agents = await promptFileRead(agentsPath, "AGENTS.md");
|
|
846
796
|
logger.debug(`event: buildSystemPrompt reading tools prompt path=${toolsPath}`);
|
|
@@ -853,7 +803,7 @@ export class Agent {
|
|
|
853
803
|
const permissionsTemplate = (await agentPromptBundledRead("PERMISSIONS.md")).trim();
|
|
854
804
|
logger.debug("event: buildSystemPrompt reading agentic template");
|
|
855
805
|
const agenticTemplate = (await agentPromptBundledRead("AGENTIC.md")).trim();
|
|
856
|
-
const additionalWriteDirs = resolveAdditionalWriteDirs(context.writeDirs ?? [], context.workspace ?? "", soulPath, userPath,
|
|
806
|
+
const additionalWriteDirs = resolveAdditionalWriteDirs(context.writeDirs ?? [], context.workspace ?? "", soulPath, userPath, agentsPath, toolsPath, memoryPath);
|
|
857
807
|
const isForeground = context.agentKind !== "background";
|
|
858
808
|
const skillsPath = context.skillsPath ?? (context.configDir ? `${context.configDir}/skills` : "");
|
|
859
809
|
// Build shared context for both permissions and main templates
|
|
@@ -879,7 +829,6 @@ export class Agent {
|
|
|
879
829
|
cronTaskIds: context.cronTaskIds ?? "",
|
|
880
830
|
soulPath,
|
|
881
831
|
userPath,
|
|
882
|
-
actorsPath,
|
|
883
832
|
agentsPath,
|
|
884
833
|
toolsPath,
|
|
885
834
|
memoryPath,
|
|
@@ -891,7 +840,6 @@ export class Agent {
|
|
|
891
840
|
isForeground,
|
|
892
841
|
soul,
|
|
893
842
|
user,
|
|
894
|
-
actors,
|
|
895
843
|
agents,
|
|
896
844
|
tools,
|
|
897
845
|
memory,
|
|
@@ -915,8 +863,11 @@ export class Agent {
|
|
|
915
863
|
return rendered.trim();
|
|
916
864
|
}
|
|
917
865
|
}
|
|
918
|
-
function
|
|
919
|
-
|
|
866
|
+
function isChannelSignalType(type) {
|
|
867
|
+
return type.startsWith("channel.") && type.endsWith(":message");
|
|
868
|
+
}
|
|
869
|
+
function resolveAdditionalWriteDirs(writeDirs, workspace, soulPath, userPath, agentsPath, toolsPath, memoryPath) {
|
|
870
|
+
const excluded = new Set([workspace, soulPath, userPath, agentsPath, toolsPath, memoryPath]
|
|
920
871
|
.filter((entry) => entry && entry.trim().length > 0)
|
|
921
872
|
.map((entry) => path.resolve(entry)));
|
|
922
873
|
const filtered = writeDirs
|