zilmate 1.3.4 → 1.4.0
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/agents/automation-planner.agent.d.ts +108 -0
- package/dist/agents/automation-planner.agent.d.ts.map +1 -1
- package/dist/agents/automation-planner.agent.js +13 -4
- package/dist/agents/automation-planner.agent.js.map +1 -1
- package/dist/agents/manager.d.ts +304 -0
- package/dist/agents/manager.d.ts.map +1 -1
- package/dist/agents/manager.js +45 -3
- package/dist/agents/manager.js.map +1 -1
- package/dist/agents/security.agent.d.ts +340 -0
- package/dist/agents/security.agent.d.ts.map +1 -0
- package/dist/agents/security.agent.js +76 -0
- package/dist/agents/security.agent.js.map +1 -0
- package/dist/cli/confirm.d.ts.map +1 -1
- package/dist/cli/confirm.js +8 -14
- package/dist/cli/confirm.js.map +1 -1
- package/dist/cli/format.js +1 -1
- package/dist/cli/interactive.d.ts.map +1 -1
- package/dist/cli/interactive.js +2 -0
- package/dist/cli/interactive.js.map +1 -1
- package/dist/cli/triggers.d.ts.map +1 -1
- package/dist/cli/triggers.js +12 -4
- package/dist/cli/triggers.js.map +1 -1
- package/dist/cli/voice.d.ts.map +1 -1
- package/dist/cli/voice.js +2 -0
- package/dist/cli/voice.js.map +1 -1
- package/dist/config/env.d.ts +4 -0
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +4 -0
- package/dist/config/env.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/jobs/trigger-orchestrator.d.ts +26 -0
- package/dist/jobs/trigger-orchestrator.d.ts.map +1 -0
- package/dist/jobs/trigger-orchestrator.js +252 -0
- package/dist/jobs/trigger-orchestrator.js.map +1 -0
- package/dist/jobs/trigger-policies.d.ts +36 -0
- package/dist/jobs/trigger-policies.d.ts.map +1 -0
- package/dist/jobs/trigger-policies.js +68 -0
- package/dist/jobs/trigger-policies.js.map +1 -0
- package/dist/jobs/trigger-router.d.ts +14 -0
- package/dist/jobs/trigger-router.d.ts.map +1 -0
- package/dist/jobs/trigger-router.js +114 -0
- package/dist/jobs/trigger-router.js.map +1 -0
- package/dist/jobs/workflows.d.ts +4 -1
- package/dist/jobs/workflows.d.ts.map +1 -1
- package/dist/jobs/workflows.js +18 -42
- package/dist/jobs/workflows.js.map +1 -1
- package/dist/memory/personal-context.d.ts +45 -0
- package/dist/memory/personal-context.d.ts.map +1 -0
- package/dist/memory/personal-context.js +103 -0
- package/dist/memory/personal-context.js.map +1 -0
- package/dist/runtime/confirm.d.ts +3 -0
- package/dist/runtime/confirm.d.ts.map +1 -1
- package/dist/runtime/confirm.js +38 -12
- package/dist/runtime/confirm.js.map +1 -1
- package/dist/runtime/progress.d.ts.map +1 -1
- package/dist/runtime/progress.js +3 -0
- package/dist/runtime/progress.js.map +1 -1
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/dist/skills/loader.d.ts +14 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +105 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/tools/cli-runner.d.ts +13 -0
- package/dist/tools/cli-runner.d.ts.map +1 -0
- package/dist/tools/cli-runner.js +75 -0
- package/dist/tools/cli-runner.js.map +1 -0
- package/dist/tools/computer-use.tool.d.ts +159 -0
- package/dist/tools/computer-use.tool.d.ts.map +1 -0
- package/dist/tools/computer-use.tool.js +356 -0
- package/dist/tools/computer-use.tool.js.map +1 -0
- package/dist/tools/desktop.tool.d.ts +70 -0
- package/dist/tools/desktop.tool.d.ts.map +1 -1
- package/dist/tools/desktop.tool.js +188 -0
- package/dist/tools/desktop.tool.js.map +1 -1
- package/dist/tools/filesystem.tool.d.ts +49 -0
- package/dist/tools/filesystem.tool.d.ts.map +1 -1
- package/dist/tools/filesystem.tool.js +97 -0
- package/dist/tools/filesystem.tool.js.map +1 -1
- package/dist/tools/orchestration.tool.d.ts +83 -0
- package/dist/tools/orchestration.tool.d.ts.map +1 -0
- package/dist/tools/orchestration.tool.js +154 -0
- package/dist/tools/orchestration.tool.js.map +1 -0
- package/dist/tools/osint-install.tool.d.ts +35 -0
- package/dist/tools/osint-install.tool.d.ts.map +1 -0
- package/dist/tools/osint-install.tool.js +334 -0
- package/dist/tools/osint-install.tool.js.map +1 -0
- package/dist/tools/osint.tool.d.ts +445 -0
- package/dist/tools/osint.tool.d.ts.map +1 -0
- package/dist/tools/osint.tool.js +630 -0
- package/dist/tools/osint.tool.js.map +1 -0
- package/dist/tools/pentest-install.tool.d.ts +32 -0
- package/dist/tools/pentest-install.tool.d.ts.map +1 -0
- package/dist/tools/pentest-install.tool.js +201 -0
- package/dist/tools/pentest-install.tool.js.map +1 -0
- package/dist/tools/pentest.tool.d.ts +595 -0
- package/dist/tools/pentest.tool.d.ts.map +1 -0
- package/dist/tools/pentest.tool.js +841 -0
- package/dist/tools/pentest.tool.js.map +1 -0
- package/dist/tools/personal-context.tool.d.ts +32 -0
- package/dist/tools/personal-context.tool.d.ts.map +1 -0
- package/dist/tools/personal-context.tool.js +76 -0
- package/dist/tools/personal-context.tool.js.map +1 -0
- package/dist/tools/shell.tool.d.ts +91 -0
- package/dist/tools/shell.tool.d.ts.map +1 -0
- package/dist/tools/shell.tool.js +332 -0
- package/dist/tools/shell.tool.js.map +1 -0
- package/dist/tools/skills.tool.d.ts +17 -0
- package/dist/tools/skills.tool.d.ts.map +1 -0
- package/dist/tools/skills.tool.js +44 -0
- package/dist/tools/skills.tool.js.map +1 -0
- package/dist/voice/cascade.d.ts.map +1 -1
- package/dist/voice/cascade.js +71 -24
- package/dist/voice/cascade.js.map +1 -1
- package/dist/voice/deepgram.d.ts.map +1 -1
- package/dist/voice/deepgram.js +8 -1
- package/dist/voice/deepgram.js.map +1 -1
- package/dist/voice/types.d.ts +4 -0
- package/dist/voice/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,114 @@ export declare function createAutomationPlannerAgent(): ToolLoopAgent<never, {
|
|
|
3
3
|
appKnowledge: import("ai").Tool<{
|
|
4
4
|
key: "agent-docs" | "readme";
|
|
5
5
|
}, string>;
|
|
6
|
+
getPersonalContext: import("ai").Tool<Record<string, never>, {
|
|
7
|
+
context: import("../memory/personal-context.js").PersonalContext;
|
|
8
|
+
summary: string;
|
|
9
|
+
}>;
|
|
10
|
+
updatePersonalContext: import("ai").Tool<{
|
|
11
|
+
ownerName?: string | undefined;
|
|
12
|
+
businessName?: string | undefined;
|
|
13
|
+
urgencyRule?: string | undefined;
|
|
14
|
+
workflow?: string | undefined;
|
|
15
|
+
contact?: {
|
|
16
|
+
name: string;
|
|
17
|
+
vip: boolean;
|
|
18
|
+
id?: string | undefined;
|
|
19
|
+
email?: string | undefined;
|
|
20
|
+
handle?: string | undefined;
|
|
21
|
+
role?: string | undefined;
|
|
22
|
+
notes?: string | undefined;
|
|
23
|
+
} | undefined;
|
|
24
|
+
project?: {
|
|
25
|
+
name: string;
|
|
26
|
+
status: "done" | "active" | "paused";
|
|
27
|
+
tags: string[];
|
|
28
|
+
id?: string | undefined;
|
|
29
|
+
description?: string | undefined;
|
|
30
|
+
} | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
updated: boolean;
|
|
33
|
+
summary: string;
|
|
34
|
+
}>;
|
|
35
|
+
listTriggerPolicies: import("ai").Tool<Record<string, never>, import("../jobs/trigger-policies.js").TriggerRoutingPolicy[]>;
|
|
36
|
+
getTriggerPolicy: import("ai").Tool<Record<string, never>, import("../jobs/trigger-policies.js").TriggerRoutingPolicy>;
|
|
37
|
+
saveTriggerPolicy: import("ai").Tool<{
|
|
38
|
+
policy: {
|
|
39
|
+
name: string;
|
|
40
|
+
enabled: boolean;
|
|
41
|
+
vipSenders: string[];
|
|
42
|
+
urgentKeywords: string[];
|
|
43
|
+
lowPriorityKeywords: string[];
|
|
44
|
+
customInstructions: string;
|
|
45
|
+
id?: string | undefined;
|
|
46
|
+
};
|
|
47
|
+
}, {
|
|
48
|
+
updatedAt: string;
|
|
49
|
+
id: string;
|
|
50
|
+
name: string;
|
|
51
|
+
enabled: boolean;
|
|
52
|
+
vipSenders: string[];
|
|
53
|
+
urgentKeywords: string[];
|
|
54
|
+
lowPriorityKeywords: string[];
|
|
55
|
+
customInstructions: string;
|
|
56
|
+
routes: Partial<Record<import("../jobs/trigger-orchestrator.js").TriggerRoute, import("../jobs/trigger-policies.js").RoutePolicy>>;
|
|
57
|
+
createdAt: string;
|
|
58
|
+
}>;
|
|
59
|
+
proposeTriggerOrchestration: import("ai").Tool<{
|
|
60
|
+
triggerSlug: string;
|
|
61
|
+
toolkitSlug: string;
|
|
62
|
+
payload?: Record<string, unknown> | undefined;
|
|
63
|
+
}, {
|
|
64
|
+
proposal: string;
|
|
65
|
+
plan: {
|
|
66
|
+
chainId: string;
|
|
67
|
+
priority: import("../jobs/trigger-orchestrator.js").TriggerPriority;
|
|
68
|
+
route: import("../jobs/trigger-orchestrator.js").TriggerRoute;
|
|
69
|
+
category: string;
|
|
70
|
+
followUpCount: number;
|
|
71
|
+
followUps: import("../jobs/trigger-orchestrator.js").TriggerFollowUp[];
|
|
72
|
+
};
|
|
73
|
+
}>;
|
|
74
|
+
applyTriggerOrchestration: import("ai").Tool<{
|
|
75
|
+
triggerSlug: string;
|
|
76
|
+
toolkitSlug: string;
|
|
77
|
+
payload?: Record<string, unknown> | undefined;
|
|
78
|
+
triggerId?: string | undefined;
|
|
79
|
+
userId?: string | undefined;
|
|
80
|
+
dryRun?: boolean | undefined;
|
|
81
|
+
}, {
|
|
82
|
+
dryRun: boolean;
|
|
83
|
+
proposal: string;
|
|
84
|
+
plan: import("../jobs/trigger-orchestrator.js").TriggerOrchestrationPlan;
|
|
85
|
+
applied?: never;
|
|
86
|
+
blocked?: never;
|
|
87
|
+
message?: never;
|
|
88
|
+
jobs?: never;
|
|
89
|
+
report?: never;
|
|
90
|
+
} | {
|
|
91
|
+
applied: boolean;
|
|
92
|
+
blocked: boolean;
|
|
93
|
+
proposal: string;
|
|
94
|
+
message: string;
|
|
95
|
+
dryRun?: never;
|
|
96
|
+
plan?: never;
|
|
97
|
+
jobs?: never;
|
|
98
|
+
report?: never;
|
|
99
|
+
} | {
|
|
100
|
+
applied: boolean;
|
|
101
|
+
proposal: string;
|
|
102
|
+
jobs: {
|
|
103
|
+
id: string;
|
|
104
|
+
status: import("../server.js").JobStatus;
|
|
105
|
+
schedule: string | undefined;
|
|
106
|
+
role: unknown;
|
|
107
|
+
}[];
|
|
108
|
+
report: string;
|
|
109
|
+
dryRun?: never;
|
|
110
|
+
plan?: never;
|
|
111
|
+
blocked?: never;
|
|
112
|
+
message?: never;
|
|
113
|
+
}>;
|
|
6
114
|
listTriggerTypes: import("ai").Tool<{
|
|
7
115
|
toolkit?: string | undefined;
|
|
8
116
|
limit?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automation-planner.agent.d.ts","sourceRoot":"","sources":["../../src/agents/automation-planner.agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,aAAa,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"automation-planner.agent.d.ts","sourceRoot":"","sources":["../../src/agents/automation-planner.agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,aAAa,EAAE,MAAM,IAAI,CAAC;AAUhD,wBAAgB,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA2BksyG,CAAC;wBAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAAz2S,CAAC;uBAAqC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UADn9/F"}
|
|
@@ -4,22 +4,31 @@ import { appKnowledgeTool } from '../tools/app-knowledge.tool.js';
|
|
|
4
4
|
import { jobTools } from '../tools/jobs.tool.js';
|
|
5
5
|
import { timeTools } from '../tools/time.tool.js';
|
|
6
6
|
import { triggerTools } from '../tools/triggers.tool.js';
|
|
7
|
+
import { orchestrationTools } from '../tools/orchestration.tool.js';
|
|
8
|
+
import { personalContextTools } from '../tools/personal-context.tool.js';
|
|
7
9
|
import { limits } from '../safety/limits.js';
|
|
8
10
|
export function createAutomationPlannerAgent() {
|
|
9
11
|
return new ToolLoopAgent({
|
|
10
12
|
model: models.manager,
|
|
11
13
|
instructions: [
|
|
12
|
-
'You are ZilMate Automation Planner. Design practical automations, schedules, background jobs, trigger workflows, and follow-up
|
|
14
|
+
'You are ZilMate Automation Planner. Design practical automations, schedules, background jobs, trigger workflows, and follow-up chains.',
|
|
15
|
+
'Use getPersonalContext and updatePersonalContext so routing reflects the user\'s VIP contacts, projects, and urgency rules.',
|
|
16
|
+
'Use listTriggerPolicies, getTriggerPolicy, and saveTriggerPolicy to manage routing behavior.',
|
|
17
|
+
'Always use proposeTriggerOrchestration to preview what will happen before applyTriggerOrchestration creates jobs.',
|
|
18
|
+
'When applyTriggerOrchestration needs approval, tell the user exactly what primary and follow-up jobs will be created. The confirmation prompt handles yes/no.',
|
|
19
|
+
'After applying orchestration, report job ids, route, priority, and any skipped follow-ups waiting for approval.',
|
|
13
20
|
'Use time tools for current date/time and schedule-relative wording.',
|
|
14
|
-
'Use job tools to inspect existing jobs and logs. Create or cancel jobs only when the user clearly asks
|
|
15
|
-
'Use trigger tools to discover Composio trigger types
|
|
16
|
-
'Explain local worker limits
|
|
21
|
+
'Use job tools to inspect existing jobs and logs. Create or cancel jobs only when the user clearly asks.',
|
|
22
|
+
'Use trigger tools to discover Composio trigger types and inspect schemas. Prefer dry-run before real creation.',
|
|
23
|
+
'Explain local worker limits: local jobs need `zilmate jobs worker`; laptop-closed automation needs QStash plus a public job webhook.',
|
|
17
24
|
'Return concise plans with exact commands or setup steps when useful.',
|
|
18
25
|
].join(' '),
|
|
19
26
|
tools: {
|
|
20
27
|
...timeTools,
|
|
21
28
|
...jobTools,
|
|
22
29
|
...triggerTools,
|
|
30
|
+
...orchestrationTools,
|
|
31
|
+
...personalContextTools,
|
|
23
32
|
appKnowledge: appKnowledgeTool,
|
|
24
33
|
},
|
|
25
34
|
stopWhen: stepCountIs(limits.subagentSteps),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automation-planner.agent.js","sourceRoot":"","sources":["../../src/agents/automation-planner.agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,UAAU,4BAA4B;IAC1C,OAAO,IAAI,aAAa,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC,OAAO;QACrB,YAAY,EAAE;YACZ,
|
|
1
|
+
{"version":3,"file":"automation-planner.agent.js","sourceRoot":"","sources":["../../src/agents/automation-planner.agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,UAAU,4BAA4B;IAC1C,OAAO,IAAI,aAAa,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC,OAAO;QACrB,YAAY,EAAE;YACZ,wIAAwI;YACxI,6HAA6H;YAC7H,8FAA8F;YAC9F,mHAAmH;YACnH,+JAA+J;YAC/J,iHAAiH;YACjH,qEAAqE;YACrE,yGAAyG;YACzG,gHAAgH;YAChH,sIAAsI;YACtI,sEAAsE;SACvE,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,KAAK,EAAE;YACL,GAAG,SAAS;YACZ,GAAG,QAAQ;YACX,GAAG,YAAY;YACf,GAAG,kBAAkB;YACrB,GAAG,oBAAoB;YACvB,YAAY,EAAE,gBAAgB;SAC/B;QACD,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC;KAC5C,CAAC,CAAC;AACL,CAAC"}
|
package/dist/agents/manager.d.ts
CHANGED
|
@@ -4,6 +4,208 @@ import { type ConfirmationHandler } from '../runtime/confirm.js';
|
|
|
4
4
|
export declare function createManagerAgent(runId?: string, options?: {
|
|
5
5
|
sessionId?: string;
|
|
6
6
|
}): Promise<ToolLoopAgent<never, {
|
|
7
|
+
getPersonalContext: import("ai").Tool<Record<string, never>, {
|
|
8
|
+
context: import("../memory/personal-context.js").PersonalContext;
|
|
9
|
+
summary: string;
|
|
10
|
+
}>;
|
|
11
|
+
updatePersonalContext: import("ai").Tool<{
|
|
12
|
+
ownerName?: string | undefined;
|
|
13
|
+
businessName?: string | undefined;
|
|
14
|
+
urgencyRule?: string | undefined;
|
|
15
|
+
workflow?: string | undefined;
|
|
16
|
+
contact?: {
|
|
17
|
+
name: string;
|
|
18
|
+
vip: boolean;
|
|
19
|
+
id?: string | undefined;
|
|
20
|
+
email?: string | undefined;
|
|
21
|
+
handle?: string | undefined;
|
|
22
|
+
role?: string | undefined;
|
|
23
|
+
notes?: string | undefined;
|
|
24
|
+
} | undefined;
|
|
25
|
+
project?: {
|
|
26
|
+
name: string;
|
|
27
|
+
status: "done" | "active" | "paused";
|
|
28
|
+
tags: string[];
|
|
29
|
+
id?: string | undefined;
|
|
30
|
+
description?: string | undefined;
|
|
31
|
+
} | undefined;
|
|
32
|
+
}, {
|
|
33
|
+
updated: boolean;
|
|
34
|
+
summary: string;
|
|
35
|
+
}>;
|
|
36
|
+
listSkills: import("ai").Tool<Record<string, never>, {
|
|
37
|
+
skills: import("../skills/loader.js").SkillSummary[];
|
|
38
|
+
searchPaths: string[];
|
|
39
|
+
}>;
|
|
40
|
+
searchSkills: import("ai").Tool<{
|
|
41
|
+
query: string;
|
|
42
|
+
limit?: number | undefined;
|
|
43
|
+
}, {
|
|
44
|
+
query: string;
|
|
45
|
+
skills: import("../skills/loader.js").SkillSummary[];
|
|
46
|
+
}>;
|
|
47
|
+
readSkill: import("ai").Tool<{
|
|
48
|
+
skillId: string;
|
|
49
|
+
}, import("../skills/loader.js").SkillContent>;
|
|
50
|
+
executeCommand: import("ai").Tool<{
|
|
51
|
+
command: string;
|
|
52
|
+
cwd?: string | undefined;
|
|
53
|
+
timeout?: number | undefined;
|
|
54
|
+
env?: Record<string, string> | undefined;
|
|
55
|
+
}, {
|
|
56
|
+
success: boolean;
|
|
57
|
+
exit: any;
|
|
58
|
+
stdout: any;
|
|
59
|
+
stderr: any;
|
|
60
|
+
command: string;
|
|
61
|
+
}>;
|
|
62
|
+
installDependencies: import("ai").Tool<{
|
|
63
|
+
command: string;
|
|
64
|
+
manager?: "npm" | "pnpm" | "yarn" | undefined;
|
|
65
|
+
cwd?: string | undefined;
|
|
66
|
+
timeout?: number | undefined;
|
|
67
|
+
}, {
|
|
68
|
+
success: boolean;
|
|
69
|
+
exit: any;
|
|
70
|
+
manager: string;
|
|
71
|
+
stdout: any;
|
|
72
|
+
stderr: any;
|
|
73
|
+
}>;
|
|
74
|
+
runPipeline: import("ai").Tool<{
|
|
75
|
+
commands: string[];
|
|
76
|
+
cwd?: string | undefined;
|
|
77
|
+
timeout?: number | undefined;
|
|
78
|
+
}, {
|
|
79
|
+
success: boolean;
|
|
80
|
+
exit: any;
|
|
81
|
+
stdout: any;
|
|
82
|
+
stderr: any;
|
|
83
|
+
pipeline: string;
|
|
84
|
+
}>;
|
|
85
|
+
pythonScript: import("ai").Tool<{
|
|
86
|
+
code: string;
|
|
87
|
+
cwd?: string | undefined;
|
|
88
|
+
timeout?: number | undefined;
|
|
89
|
+
}, {
|
|
90
|
+
success: boolean;
|
|
91
|
+
exit: any;
|
|
92
|
+
stdout: any;
|
|
93
|
+
stderr: any;
|
|
94
|
+
}>;
|
|
95
|
+
getSystemInfo: import("ai").Tool<Record<string, never>, {
|
|
96
|
+
platform: NodeJS.Platform;
|
|
97
|
+
arch: NodeJS.Architecture;
|
|
98
|
+
release: string;
|
|
99
|
+
cpuCores: number;
|
|
100
|
+
totalMemoryGB: string;
|
|
101
|
+
freeMemoryGB: string;
|
|
102
|
+
nodeVersion: string;
|
|
103
|
+
currentUser: string;
|
|
104
|
+
uptime: string;
|
|
105
|
+
homeDir: string;
|
|
106
|
+
} | {
|
|
107
|
+
platform: NodeJS.Platform;
|
|
108
|
+
arch: NodeJS.Architecture;
|
|
109
|
+
error: any;
|
|
110
|
+
}>;
|
|
111
|
+
listProcesses: import("ai").Tool<{
|
|
112
|
+
filter?: string | undefined;
|
|
113
|
+
limit?: number | undefined;
|
|
114
|
+
}, {
|
|
115
|
+
processes: string[];
|
|
116
|
+
count: number;
|
|
117
|
+
filtered: boolean;
|
|
118
|
+
error?: never;
|
|
119
|
+
} | {
|
|
120
|
+
error: any;
|
|
121
|
+
processes: never[];
|
|
122
|
+
count: number;
|
|
123
|
+
filtered?: never;
|
|
124
|
+
}>;
|
|
125
|
+
findInPath: import("ai").Tool<{
|
|
126
|
+
command: string;
|
|
127
|
+
}, {
|
|
128
|
+
found: boolean;
|
|
129
|
+
command: string;
|
|
130
|
+
path: string;
|
|
131
|
+
suggestion?: never;
|
|
132
|
+
} | {
|
|
133
|
+
found: boolean;
|
|
134
|
+
command: string;
|
|
135
|
+
suggestion: string;
|
|
136
|
+
path?: never;
|
|
137
|
+
}>;
|
|
138
|
+
dragAndDrop: import("ai").Tool<{
|
|
139
|
+
fromX: number;
|
|
140
|
+
fromY: number;
|
|
141
|
+
toX: number;
|
|
142
|
+
toY: number;
|
|
143
|
+
duration: number;
|
|
144
|
+
button: "left" | "right" | "middle";
|
|
145
|
+
}, {
|
|
146
|
+
fromX: number;
|
|
147
|
+
fromY: number;
|
|
148
|
+
toX: number;
|
|
149
|
+
toY: number;
|
|
150
|
+
result: string;
|
|
151
|
+
}>;
|
|
152
|
+
findOnScreen: import("ai").Tool<{
|
|
153
|
+
referenceImagePath: string;
|
|
154
|
+
confidence: number;
|
|
155
|
+
region?: {
|
|
156
|
+
x: number;
|
|
157
|
+
y: number;
|
|
158
|
+
width: number;
|
|
159
|
+
height: number;
|
|
160
|
+
} | undefined;
|
|
161
|
+
}, any>;
|
|
162
|
+
manageWindow: import("ai").Tool<{
|
|
163
|
+
action: "close" | "list" | "focus" | "resize" | "minimize" | "maximize";
|
|
164
|
+
title?: string | undefined;
|
|
165
|
+
x?: number | undefined;
|
|
166
|
+
y?: number | undefined;
|
|
167
|
+
width?: number | undefined;
|
|
168
|
+
height?: number | undefined;
|
|
169
|
+
}, any>;
|
|
170
|
+
readScreen: import("ai").Tool<{
|
|
171
|
+
region?: {
|
|
172
|
+
x: number;
|
|
173
|
+
y: number;
|
|
174
|
+
width: number;
|
|
175
|
+
height: number;
|
|
176
|
+
} | undefined;
|
|
177
|
+
}, {
|
|
178
|
+
filePath: string;
|
|
179
|
+
width: number | undefined;
|
|
180
|
+
height: number | undefined;
|
|
181
|
+
}>;
|
|
182
|
+
keyboardAction: import("ai").Tool<{
|
|
183
|
+
action: "type" | "press" | "hotkey";
|
|
184
|
+
interval: number;
|
|
185
|
+
text?: string | undefined;
|
|
186
|
+
key?: string | undefined;
|
|
187
|
+
hotkey?: string[] | undefined;
|
|
188
|
+
}, {
|
|
189
|
+
action: "type" | "press" | "hotkey";
|
|
190
|
+
result: string;
|
|
191
|
+
}>;
|
|
192
|
+
mouseAction: import("ai").Tool<{
|
|
193
|
+
action: "move" | "click" | "doubleClick" | "rightClick" | "scroll";
|
|
194
|
+
x: number;
|
|
195
|
+
y: number;
|
|
196
|
+
scrollAmount: number;
|
|
197
|
+
duration: number;
|
|
198
|
+
scrollDirection?: "up" | "down" | "left" | "right" | undefined;
|
|
199
|
+
}, {
|
|
200
|
+
action: "move" | "click" | "doubleClick" | "rightClick" | "scroll";
|
|
201
|
+
x: number;
|
|
202
|
+
y: number;
|
|
203
|
+
result: string;
|
|
204
|
+
}>;
|
|
205
|
+
installComputerUseDeps: import("ai").Tool<Record<string, never>, {
|
|
206
|
+
platform: NodeJS.Platform;
|
|
207
|
+
results: Record<string, string>;
|
|
208
|
+
}>;
|
|
7
209
|
readScratchpad: import("ai").Tool<Record<string, never>, string>;
|
|
8
210
|
appendScratchpad: import("ai").Tool<{
|
|
9
211
|
note: string;
|
|
@@ -139,6 +341,56 @@ export declare function createManagerAgent(runId?: string, options?: {
|
|
|
139
341
|
model: string;
|
|
140
342
|
analysis: string;
|
|
141
343
|
}>;
|
|
344
|
+
openFile: import("ai").Tool<{
|
|
345
|
+
path: string;
|
|
346
|
+
}, {
|
|
347
|
+
opened: boolean;
|
|
348
|
+
path: string;
|
|
349
|
+
error?: never;
|
|
350
|
+
} | {
|
|
351
|
+
opened: boolean;
|
|
352
|
+
error: any;
|
|
353
|
+
path?: never;
|
|
354
|
+
}>;
|
|
355
|
+
openApplication: import("ai").Tool<{
|
|
356
|
+
application: string;
|
|
357
|
+
args?: string[] | undefined;
|
|
358
|
+
}, {
|
|
359
|
+
opened: boolean;
|
|
360
|
+
application: string;
|
|
361
|
+
error?: never;
|
|
362
|
+
} | {
|
|
363
|
+
opened: boolean;
|
|
364
|
+
error: any;
|
|
365
|
+
application?: never;
|
|
366
|
+
}>;
|
|
367
|
+
listRunningApplications: import("ai").Tool<{
|
|
368
|
+
filter?: string | undefined;
|
|
369
|
+
limit?: number | undefined;
|
|
370
|
+
}, {
|
|
371
|
+
applications: string[];
|
|
372
|
+
count: number;
|
|
373
|
+
filtered: boolean;
|
|
374
|
+
platform: NodeJS.Platform;
|
|
375
|
+
error?: never;
|
|
376
|
+
} | {
|
|
377
|
+
error: any;
|
|
378
|
+
applications: never[];
|
|
379
|
+
count: number;
|
|
380
|
+
filtered?: never;
|
|
381
|
+
platform?: never;
|
|
382
|
+
}>;
|
|
383
|
+
simulateKeyboard: import("ai").Tool<{
|
|
384
|
+
input: string;
|
|
385
|
+
}, {
|
|
386
|
+
sent: boolean;
|
|
387
|
+
input: string;
|
|
388
|
+
error?: never;
|
|
389
|
+
} | {
|
|
390
|
+
sent: boolean;
|
|
391
|
+
error: any;
|
|
392
|
+
input?: never;
|
|
393
|
+
}>;
|
|
142
394
|
searchFiles: import("ai").Tool<{
|
|
143
395
|
query: string;
|
|
144
396
|
root?: string | undefined;
|
|
@@ -229,6 +481,55 @@ export declare function createManagerAgent(runId?: string, options?: {
|
|
|
229
481
|
files: string[];
|
|
230
482
|
}[];
|
|
231
483
|
}>;
|
|
484
|
+
deleteFile: import("ai").Tool<{
|
|
485
|
+
path: string;
|
|
486
|
+
confirm: boolean;
|
|
487
|
+
}, {
|
|
488
|
+
deleted: boolean;
|
|
489
|
+
path: string;
|
|
490
|
+
size: number;
|
|
491
|
+
}>;
|
|
492
|
+
deleteFolder: import("ai").Tool<{
|
|
493
|
+
path: string;
|
|
494
|
+
confirm: boolean;
|
|
495
|
+
}, {
|
|
496
|
+
deleted: boolean;
|
|
497
|
+
path: string;
|
|
498
|
+
}>;
|
|
499
|
+
listDirectory: import("ai").Tool<{
|
|
500
|
+
path: string;
|
|
501
|
+
filter?: string | undefined;
|
|
502
|
+
includeHidden?: boolean | undefined;
|
|
503
|
+
maxDepth?: number | undefined;
|
|
504
|
+
limit?: number | undefined;
|
|
505
|
+
}, {
|
|
506
|
+
directory: string;
|
|
507
|
+
entries: {
|
|
508
|
+
path: string;
|
|
509
|
+
absolutePath: string;
|
|
510
|
+
type: "file" | "directory";
|
|
511
|
+
size: number;
|
|
512
|
+
modifiedAt: string;
|
|
513
|
+
}[];
|
|
514
|
+
count: number;
|
|
515
|
+
filtered: boolean;
|
|
516
|
+
}>;
|
|
517
|
+
getFileInfo: import("ai").Tool<{
|
|
518
|
+
path: string;
|
|
519
|
+
}, {
|
|
520
|
+
path: string;
|
|
521
|
+
type: string;
|
|
522
|
+
size: number;
|
|
523
|
+
sizeKB: string;
|
|
524
|
+
sizeMB: string;
|
|
525
|
+
created: string;
|
|
526
|
+
modified: string;
|
|
527
|
+
accessed: string;
|
|
528
|
+
isFile: boolean;
|
|
529
|
+
isDirectory: boolean;
|
|
530
|
+
isSymlink: boolean;
|
|
531
|
+
mode: string;
|
|
532
|
+
}>;
|
|
232
533
|
getCurrentTime: import("ai").Tool<{
|
|
233
534
|
timeZone?: string | undefined;
|
|
234
535
|
}, {
|
|
@@ -299,6 +600,9 @@ export declare function createManagerAgent(runId?: string, options?: {
|
|
|
299
600
|
developerHelper: import("ai").Tool<{
|
|
300
601
|
prompt: string;
|
|
301
602
|
}, string>;
|
|
603
|
+
security: import("ai").Tool<{
|
|
604
|
+
prompt: string;
|
|
605
|
+
}, string>;
|
|
302
606
|
}, never>>;
|
|
303
607
|
export declare function runManager(prompt: string, options?: {
|
|
304
608
|
progress?: (event: ProgressEvent) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,aAAa,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,aAAa,EAAE,MAAM,IAAI,CAAC;AAatD,OAAO,EAAgB,KAAK,aAAa,EAAwB,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,KAAK,mBAAmB,EAA2B,MAAM,uBAAuB,CAAC;AAkH1F,wBAAsB,kBAAkB,CAAC,KAAK,GAAE,MAAqB,EAAE,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAgIm50F,CAAC;wBAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAAz2S,CAAC;uBAAqC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA9BnuiF;AAOD,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAAO,mBAmB9K"}
|
package/dist/agents/manager.js
CHANGED
|
@@ -10,6 +10,7 @@ import { createDocsResearchAgent } from './docs-research.agent.js';
|
|
|
10
10
|
import { createAutomationPlannerAgent } from './automation-planner.agent.js';
|
|
11
11
|
import { createPersonalAssistantAgent } from './personal-assistant.agent.js';
|
|
12
12
|
import { createDeveloperHelperAgent } from './developer-helper.agent.js';
|
|
13
|
+
import { createSecurityAgent } from './security.agent.js';
|
|
13
14
|
import { limits } from '../safety/limits.js';
|
|
14
15
|
import { emitProgress, withProgressListener } from '../runtime/progress.js';
|
|
15
16
|
import { withConfirmationHandler } from '../runtime/confirm.js';
|
|
@@ -22,6 +23,10 @@ import { jobTools } from '../tools/jobs.tool.js';
|
|
|
22
23
|
import { timeTools } from '../tools/time.tool.js';
|
|
23
24
|
import { fileSystemTools } from '../tools/filesystem.tool.js';
|
|
24
25
|
import { desktopTools } from '../tools/desktop.tool.js';
|
|
26
|
+
import { computerUseTools } from '../tools/computer-use.tool.js';
|
|
27
|
+
import { shellTools } from '../tools/shell.tool.js';
|
|
28
|
+
import { skillTools } from '../tools/skills.tool.js';
|
|
29
|
+
import { personalContextTools } from '../tools/personal-context.tool.js';
|
|
25
30
|
function agentInput(prompt, abortSignal) {
|
|
26
31
|
return abortSignal ? { prompt, abortSignal } : { prompt };
|
|
27
32
|
}
|
|
@@ -35,6 +40,7 @@ function describeTool(name) {
|
|
|
35
40
|
automationPlanner: 'Using automation planner subagent',
|
|
36
41
|
personalAssistant: 'Using personal assistant subagent',
|
|
37
42
|
developerHelper: 'Using developer helper subagent',
|
|
43
|
+
security: 'Using security subagent',
|
|
38
44
|
readScratchpad: 'Reading scratchpad',
|
|
39
45
|
appendScratchpad: 'Updating scratchpad',
|
|
40
46
|
rememberMemory: 'Saving memory',
|
|
@@ -59,6 +65,10 @@ function describeTool(name) {
|
|
|
59
65
|
writeFile: 'Writing file',
|
|
60
66
|
createFolder: 'Creating folder',
|
|
61
67
|
moveCopyRename: 'Moving/copying/renaming file',
|
|
68
|
+
deleteFile: 'Deleting file',
|
|
69
|
+
deleteFolder: 'Deleting folder',
|
|
70
|
+
listDirectory: 'Listing directory',
|
|
71
|
+
getFileInfo: 'Getting file info',
|
|
62
72
|
summarizeDocument: 'Summarizing document',
|
|
63
73
|
watchFolderChanges: 'Checking folder changes',
|
|
64
74
|
findDuplicateLargeFiles: 'Finding duplicate/large files',
|
|
@@ -68,12 +78,30 @@ function describeTool(name) {
|
|
|
68
78
|
analyzeScreenshot: 'Analyzing screenshot',
|
|
69
79
|
takeCameraPhoto: 'Taking camera photo',
|
|
70
80
|
analyzeCameraPhoto: 'Analyzing camera photo',
|
|
81
|
+
openFile: 'Opening file',
|
|
82
|
+
openApplication: 'Opening application',
|
|
83
|
+
getSystemInfo: 'Getting system info',
|
|
84
|
+
listRunningApplications: 'Listing running apps',
|
|
85
|
+
simulateKeyboard: 'Sending keyboard input',
|
|
86
|
+
executeCommand: 'Executing command',
|
|
87
|
+
installDependencies: 'Installing dependencies',
|
|
88
|
+
runPipeline: 'Running command pipeline',
|
|
89
|
+
pythonScript: 'Running Python script',
|
|
90
|
+
listProcesses: 'Listing processes',
|
|
91
|
+
findInPath: 'Searching PATH',
|
|
71
92
|
COMPOSIO_SEARCH_TOOLS: 'Searching Composio tools',
|
|
72
93
|
COMPOSIO_GET_TOOL_SCHEMAS: 'Loading Composio tool schemas',
|
|
73
94
|
COMPOSIO_MANAGE_CONNECTIONS: 'Managing Composio connection',
|
|
74
95
|
COMPOSIO_MULTI_EXECUTE_TOOL: 'Executing Composio tool',
|
|
75
96
|
COMPOSIO_REMOTE_WORKBENCH: 'Using Composio workbench',
|
|
76
97
|
COMPOSIO_REMOTE_BASH_TOOL: 'Using Composio bash tool',
|
|
98
|
+
installComputerUseDeps: 'Installing computer-use dependencies',
|
|
99
|
+
mouseAction: 'Controlling mouse',
|
|
100
|
+
keyboardAction: 'Simulating keyboard input',
|
|
101
|
+
readScreen: 'Reading screen contents',
|
|
102
|
+
manageWindow: 'Managing application windows',
|
|
103
|
+
findOnScreen: 'Finding UI element on screen',
|
|
104
|
+
dragAndDrop: 'Dragging and dropping',
|
|
77
105
|
};
|
|
78
106
|
return labels[name] || `Using ${name}`;
|
|
79
107
|
}
|
|
@@ -105,6 +133,7 @@ export async function createManagerAgent(runId = randomUUID(), options = {}) {
|
|
|
105
133
|
const automationPlanner = createAutomationPlannerAgent();
|
|
106
134
|
const personalAssistant = createPersonalAssistantAgent();
|
|
107
135
|
const developerHelper = createDeveloperHelperAgent(runId);
|
|
136
|
+
const security = createSecurityAgent(runId);
|
|
108
137
|
const scratchpadTools = createScratchpadTools(runId);
|
|
109
138
|
const composioTools = await createComposioTools(options.sessionId || 'default');
|
|
110
139
|
return new ToolLoopAgent({
|
|
@@ -119,12 +148,17 @@ export async function createManagerAgent(runId = randomUUID(), options = {}) {
|
|
|
119
148
|
'When COMPOSIO_MANAGE_CONNECTIONS returns an authorization or connect URL, print that URL plainly and tell the user to open it to connect their account before retrying the app action.',
|
|
120
149
|
'For app events, use trigger tools: listTriggerTypes to discover current trigger slugs, showTriggerType to inspect required config, listTriggers to inspect existing trigger instances, and createTrigger only after config is clear. Prefer dryRun first, then ask for confirmation before creating a real trigger.',
|
|
121
150
|
'Use job tools when the user wants ZilMate to keep working after chat, schedule a task, create a report later, monitor something, follow up, inspect job status, read job logs, or cancel background work.',
|
|
151
|
+
'Composio trigger workflows can chain jobs automatically: classify priority/route, queue a primary job, and spawn follow-up schedules such as deadline reminders or no-reply nudges. Use automationPlanner when users want custom trigger chains beyond the default orchestration.',
|
|
152
|
+
'When multiple tools need user permission, they are approved one at a time. Do not assume a batch approval covers later actions.',
|
|
122
153
|
'Explain that local jobs require `zilmate jobs worker` to be running, and hosted laptop-closed schedules require QStash plus a public job webhook.',
|
|
123
154
|
'Use getCurrentTime whenever the user asks about the current date, current time, today, tomorrow, yesterday, or any schedule-relative wording. Do not guess dates or times.',
|
|
124
|
-
'Use file-system tools for local file search, reading, writing, folder creation, moving/copying/renaming, document summaries, folder change checks,
|
|
125
|
-
'Use
|
|
155
|
+
'Use file-system tools for local file search, reading, writing, folder creation, moving/copying/renaming, document summaries, folder change checks, duplicate/large file audits, and file metadata. File operations are free and unrestricted. Use deleteFile and deleteFolder to remove files (requires confirm=true for safety).',
|
|
156
|
+
'Use shell tools to execute commands and Python scripts: executeCommand runs any shell/PowerShell command (node, python, npm, pnpm, yarn, pip, builds, tests, etc.), installDependencies auto-detects and installs packages, runPipeline chains commands with pipes (cmd1 | cmd2), getSystemInfo gets CPU/memory/OS details, listProcesses lists running apps, findInPath checks if a command exists. These tools make the agent truly powerful in the CLI—capable of running any automation, installing packages, running tests, and executing applications.',
|
|
157
|
+
'Use desktop tools for clipboard (read/write), screenshots (capture/analyze), camera, file/app launching (openFile, openApplication), system information (getSystemInfo), running app enumeration (listRunningApplications), and keyboard automation (simulateKeyboard for typing, hotkeys, Enter/Escape/etc). Desktop tools enable full system automation and UI control.',
|
|
126
158
|
'When returning tool slugs, trigger slugs, ids, env vars, or command names, wrap them in backticks so exact underscores and casing are preserved.',
|
|
127
|
-
'Use specialized subagents for focused chat, quick help, post copy, image assets, research, automation planning, personal-assistant planning,
|
|
159
|
+
'Use specialized subagents for focused chat, quick help, post copy, image assets, research, automation planning, personal-assistant planning, developer integration help, and security (OSINT investigations + penetration testing).',
|
|
160
|
+
'Before specialized work, use searchSkills and readSkill when a matching SKILL.md exists (like Claude Code skills). Follow loaded skill instructions for that task.',
|
|
161
|
+
'Use getPersonalContext and updatePersonalContext to learn and remember what is urgent for this user, their VIP contacts, active projects, and business workflows.',
|
|
128
162
|
'Use automationPlanner for background jobs, schedules, Composio trigger workflows, QStash, webhook planning, monitoring, and follow-up automations.',
|
|
129
163
|
'Use personalAssistant for daily planning, reminders, briefings, prioritization, follow-ups, summaries, and memory-aware personal organization.',
|
|
130
164
|
'Use developerHelper for SDK usage, Next.js routes, install issues, package publishing, Cloudflare tunnels, webhooks, QStash, Composio setup, and technical troubleshooting.',
|
|
@@ -167,6 +201,10 @@ export async function createManagerAgent(runId = randomUUID(), options = {}) {
|
|
|
167
201
|
const result = await developerHelper.generate(agentInput(prompt, abortSignal));
|
|
168
202
|
return result.text;
|
|
169
203
|
}),
|
|
204
|
+
security: subagentTool('security', 'OSINT investigations (username/email/phone/domain lookups) and penetration testing (subdomain discovery, port scanning, vulnerability scanning, SQL injection, web fuzzing). Requires user authorization for active scanning.', async (prompt, abortSignal) => {
|
|
205
|
+
const result = await security.generate(agentInput(prompt, abortSignal));
|
|
206
|
+
return result.text;
|
|
207
|
+
}),
|
|
170
208
|
...ziloDocsTools,
|
|
171
209
|
...memoryTools,
|
|
172
210
|
...timeTools,
|
|
@@ -176,6 +214,10 @@ export async function createManagerAgent(runId = randomUUID(), options = {}) {
|
|
|
176
214
|
...triggerTools,
|
|
177
215
|
...scratchpadTools,
|
|
178
216
|
...composioTools,
|
|
217
|
+
...computerUseTools,
|
|
218
|
+
...shellTools,
|
|
219
|
+
...skillTools,
|
|
220
|
+
...personalContextTools,
|
|
179
221
|
},
|
|
180
222
|
stopWhen: stepCountIs(limits.managerSteps),
|
|
181
223
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAsB,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAA4B,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"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"}
|