zilmate 1.7.5 → 1.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/cli/chat.d.ts +2 -0
  2. package/dist/cli/chat.d.ts.map +1 -0
  3. package/dist/cli/chat.js +61 -0
  4. package/dist/cli/chat.js.map +1 -0
  5. package/dist/cli/format.d.ts.map +1 -1
  6. package/dist/cli/format.js +30 -59
  7. package/dist/cli/format.js.map +1 -1
  8. package/dist/cli/interactive.js +4 -3
  9. package/dist/cli/interactive.js.map +1 -1
  10. package/dist/cli/models.d.ts +1 -1
  11. package/dist/cli/models.d.ts.map +1 -1
  12. package/dist/cli/models.js +21 -21
  13. package/dist/cli/models.js.map +1 -1
  14. package/dist/cli/prompt.d.ts +2 -2
  15. package/dist/cli/prompt.d.ts.map +1 -1
  16. package/dist/cli/prompt.js +58 -14
  17. package/dist/cli/prompt.js.map +1 -1
  18. package/dist/cli/render.js +12 -13
  19. package/dist/cli/render.js.map +1 -1
  20. package/dist/cli/theme.d.ts +63 -6
  21. package/dist/cli/theme.d.ts.map +1 -1
  22. package/dist/cli/theme.js +36 -10
  23. package/dist/cli/theme.js.map +1 -1
  24. package/dist/config/model-store.d.ts +1 -1
  25. package/dist/config/model-store.d.ts.map +1 -1
  26. package/dist/config/model-store.js +14 -1
  27. package/dist/config/model-store.js.map +1 -1
  28. package/dist/config/models.d.ts +7 -0
  29. package/dist/config/models.d.ts.map +1 -1
  30. package/dist/config/models.js +30 -6
  31. package/dist/config/models.js.map +1 -1
  32. package/dist/documents/pdf.d.ts.map +1 -1
  33. package/dist/documents/pdf.js +143 -41
  34. package/dist/documents/pdf.js.map +1 -1
  35. package/dist/index.js +1 -1
  36. package/dist/runtime/chat-bridge.d.ts +32 -0
  37. package/dist/runtime/chat-bridge.d.ts.map +1 -0
  38. package/dist/runtime/chat-bridge.js +92 -0
  39. package/dist/runtime/chat-bridge.js.map +1 -0
  40. package/dist/runtime/progress.d.ts.map +1 -1
  41. package/dist/runtime/progress.js +3 -1
  42. package/dist/runtime/progress.js.map +1 -1
  43. package/dist/runtime/swarm.d.ts +2 -1
  44. package/dist/runtime/swarm.d.ts.map +1 -1
  45. package/dist/runtime/swarm.js +22 -2
  46. package/dist/runtime/swarm.js.map +1 -1
  47. package/dist/tools/daytona-browser.tool.d.ts +113 -0
  48. package/dist/tools/daytona-browser.tool.d.ts.map +1 -0
  49. package/dist/tools/daytona-browser.tool.js +348 -0
  50. package/dist/tools/daytona-browser.tool.js.map +1 -0
  51. package/dist/tools/swarm-collaboration.tool.d.ts +29 -0
  52. package/dist/tools/swarm-collaboration.tool.d.ts.map +1 -0
  53. package/dist/tools/swarm-collaboration.tool.js +88 -0
  54. package/dist/tools/swarm-collaboration.tool.js.map +1 -0
  55. package/dist/tools/swarm-memory.tool.d.ts +16 -0
  56. package/dist/tools/swarm-memory.tool.d.ts.map +1 -0
  57. package/dist/tools/swarm-memory.tool.js +31 -0
  58. package/dist/tools/swarm-memory.tool.js.map +1 -0
  59. package/dist/tools/swarm-ops.tool.d.ts +20 -0
  60. package/dist/tools/swarm-ops.tool.d.ts.map +1 -0
  61. package/dist/tools/swarm-ops.tool.js +55 -0
  62. package/dist/tools/swarm-ops.tool.js.map +1 -0
  63. package/dist/tools/visual-audit.tool.d.ts +24 -0
  64. package/dist/tools/visual-audit.tool.d.ts.map +1 -0
  65. package/dist/tools/visual-audit.tool.js +48 -0
  66. package/dist/tools/visual-audit.tool.js.map +1 -0
  67. package/package.json +2 -1
@@ -3,58 +3,160 @@ import path from 'node:path';
3
3
  import PDFDocument from 'pdfkit';
4
4
  import { createWriteStream } from 'node:fs';
5
5
  import { workspaceLayout } from '../workspace/paths.js';
6
- function markdownToBlocks(markdown) {
7
- const lines = markdown.split('\n');
8
- const blocks = [];
9
- for (const line of lines) {
10
- const trimmed = line.trim();
11
- if (!trimmed)
12
- continue;
13
- if (trimmed.startsWith('# '))
14
- blocks.push({ type: 'h1', text: trimmed.slice(2) });
15
- else if (trimmed.startsWith('## '))
16
- blocks.push({ type: 'h2', text: trimmed.slice(3) });
17
- else if (trimmed.startsWith('### '))
18
- blocks.push({ type: 'h3', text: trimmed.slice(4) });
19
- else if (/^[-*]\s+/.test(trimmed))
20
- blocks.push({ type: 'li', text: trimmed.replace(/^[-*]\s+/, '') });
21
- else
22
- blocks.push({ type: 'p', text: trimmed });
23
- }
24
- return blocks;
25
- }
6
+ import { marked } from 'marked';
7
+ const COLORS = {
8
+ primary: '#0F172A', // Slate 900
9
+ secondary: '#334155', // Slate 700
10
+ accent: '#0EA5E9', // Sky 500
11
+ muted: '#64748B', // Slate 500
12
+ background: '#FFFFFF',
13
+ divider: '#E2E8F0', // Slate 200
14
+ codeBg: '#F8FAFC', // Slate 50
15
+ codeText: '#BE185D', // Pink 700
16
+ };
17
+ const FONTS = {
18
+ regular: 'Helvetica',
19
+ bold: 'Helvetica-Bold',
20
+ italic: 'Helvetica-Oblique',
21
+ mono: 'Courier',
22
+ };
26
23
  export async function generatePdfDocument(input) {
27
24
  const outDir = path.join(workspaceLayout().outputs, 'pdf');
28
25
  await mkdir(outDir, { recursive: true });
29
26
  const filename = input.filename || `${input.title.replace(/[^\w.-]+/g, '-').slice(0, 60)}.pdf`;
30
27
  const filePath = path.join(outDir, filename.endsWith('.pdf') ? filename : `${filename}.pdf`);
28
+ const tokens = marked.lexer(input.markdown);
31
29
  await new Promise((resolve, reject) => {
32
- const doc = new PDFDocument({ margin: 54, size: 'A4' });
30
+ const doc = new PDFDocument({
31
+ margin: 54,
32
+ size: 'A4',
33
+ info: {
34
+ Title: input.title,
35
+ Author: 'ZilMate Assistant',
36
+ }
37
+ });
33
38
  const stream = createWriteStream(filePath);
34
39
  doc.pipe(stream);
35
- doc.fontSize(22).fillColor('#0F172A').text(input.title, { align: 'left' });
40
+ // Header
41
+ doc.fontSize(24).font(FONTS.bold).fillColor(COLORS.primary).text(input.title, { align: 'left' });
36
42
  doc.moveDown(0.5);
37
- doc.moveTo(54, doc.y).lineTo(541, doc.y).strokeColor('#22D3EE').lineWidth(2).stroke();
38
- doc.moveDown(1);
39
- for (const block of markdownToBlocks(input.markdown)) {
40
- if (doc.y > 720)
41
- doc.addPage();
42
- if (block.type === 'h1') {
43
- doc.moveDown(0.5).fontSize(18).fillColor('#1E293B').text(block.text);
44
- }
45
- else if (block.type === 'h2') {
46
- doc.moveDown(0.4).fontSize(15).fillColor('#334155').text(block.text);
47
- }
48
- else if (block.type === 'h3') {
49
- doc.moveDown(0.3).fontSize(13).fillColor('#475569').text(block.text);
50
- }
51
- else if (block.type === 'li') {
52
- doc.fontSize(11).fillColor('#334155').text(`• ${block.text}`, { indent: 12 });
53
- }
54
- else {
55
- doc.moveDown(0.2).fontSize(11).fillColor('#334155').text(block.text, { align: 'left' });
43
+ doc.moveTo(54, doc.y).lineTo(541, doc.y).strokeColor(COLORS.accent).lineWidth(2).stroke();
44
+ doc.moveDown(1.5);
45
+ function renderInline(inlineTokens, options = {}) {
46
+ if (!inlineTokens)
47
+ return;
48
+ inlineTokens.forEach((token, index) => {
49
+ const isLast = index === inlineTokens.length - 1;
50
+ const continued = options.continued || !isLast;
51
+ if (token.type === 'strong') {
52
+ doc.font(FONTS.bold).text(token.text, { continued });
53
+ }
54
+ else if (token.type === 'em') {
55
+ doc.font(FONTS.italic).text(token.text, { continued });
56
+ }
57
+ else if (token.type === 'codespan') {
58
+ doc.font(FONTS.mono).fillColor(COLORS.codeText).text(token.text, { continued });
59
+ doc.font(FONTS.regular).fillColor(COLORS.secondary);
60
+ }
61
+ else if (token.type === 'link') {
62
+ doc.font(FONTS.regular).fillColor(COLORS.accent).text(token.text, { continued, link: token.href, underline: true });
63
+ doc.fillColor(COLORS.secondary);
64
+ }
65
+ else if (token.type === 'br') {
66
+ doc.text('\n', { continued });
67
+ }
68
+ else if (token.tokens) {
69
+ renderInline(token.tokens, { continued });
70
+ }
71
+ else {
72
+ doc.font(FONTS.regular).text(token.text || token.raw || '', { continued });
73
+ }
74
+ });
75
+ }
76
+ function renderBlocks(tokens) {
77
+ for (const token of tokens) {
78
+ if (doc.y > 720)
79
+ doc.addPage();
80
+ switch (token.type) {
81
+ case 'heading': {
82
+ const hSizes = [20, 18, 16, 14, 12, 11];
83
+ const size = hSizes[token.depth - 1] || 11;
84
+ doc.moveDown(0.5)
85
+ .fontSize(size)
86
+ .font(FONTS.bold)
87
+ .fillColor(COLORS.primary)
88
+ .text(token.text);
89
+ doc.moveDown(0.2);
90
+ break;
91
+ }
92
+ case 'paragraph': {
93
+ doc.fontSize(11)
94
+ .font(FONTS.regular)
95
+ .fillColor(COLORS.secondary);
96
+ renderInline(token.tokens || []);
97
+ doc.moveDown(0.8);
98
+ break;
99
+ }
100
+ case 'list': {
101
+ token.items.forEach((item, idx) => {
102
+ if (doc.y > 720)
103
+ doc.addPage();
104
+ doc.fontSize(11).font(FONTS.regular).fillColor(COLORS.secondary);
105
+ const prefix = token.ordered ? `${idx + 1}. ` : '• ';
106
+ doc.text(prefix, { continued: true, indent: 12 });
107
+ if (item.tokens) {
108
+ // List items can contain paragraphs or other blocks
109
+ for (const subToken of item.tokens) {
110
+ if (subToken.type === 'text' || subToken.type === 'paragraph') {
111
+ renderInline(subToken.tokens || []);
112
+ }
113
+ else if (subToken.type === 'list') {
114
+ doc.moveDown(0.2);
115
+ renderBlocks([subToken]);
116
+ }
117
+ }
118
+ }
119
+ doc.moveDown(0.4);
120
+ });
121
+ doc.moveDown(0.4);
122
+ break;
123
+ }
124
+ case 'blockquote': {
125
+ const startY = doc.y;
126
+ doc.fontSize(11).font(FONTS.italic).fillColor(COLORS.muted);
127
+ doc.text(token.text, { indent: 20 });
128
+ const endY = doc.y;
129
+ doc.moveTo(64, startY).lineTo(64, endY).strokeColor(COLORS.divider).lineWidth(2).stroke();
130
+ doc.moveDown(0.8);
131
+ break;
132
+ }
133
+ case 'code': {
134
+ doc.fontSize(10).font(FONTS.mono).fillColor(COLORS.secondary);
135
+ const codeText = token.text;
136
+ const height = doc.heightOfString(codeText) + 10;
137
+ if (doc.y + height > 750) {
138
+ doc.addPage();
139
+ }
140
+ const currentY = doc.y;
141
+ doc.rect(54, currentY, 487, height)
142
+ .fill(COLORS.codeBg);
143
+ doc.fillColor(COLORS.secondary).text(codeText, 59, currentY + 5);
144
+ doc.y = currentY + height;
145
+ doc.moveDown(1);
146
+ break;
147
+ }
148
+ case 'hr': {
149
+ doc.moveDown(0.5);
150
+ doc.moveTo(100, doc.y).lineTo(495, doc.y).strokeColor(COLORS.divider).lineWidth(1).stroke();
151
+ doc.moveDown(1);
152
+ break;
153
+ }
154
+ case 'space':
155
+ break;
156
+ }
56
157
  }
57
158
  }
159
+ renderBlocks(tokens);
58
160
  doc.end();
59
161
  stream.on('finish', () => resolve());
60
162
  stream.on('error', reject);
@@ -1 +1 @@
1
- {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../src/documents/pdf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../src/documents/pdf.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -54,7 +54,7 @@ const program = new Command();
54
54
  program
55
55
  .name('zilmate')
56
56
  .description('ZilMate Agent')
57
- .version('1.7.5');
57
+ .version('1.7.6');
58
58
  program
59
59
  .command('welcome')
60
60
  .description('Show the ZilMate welcome dashboard')
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The ChatBridge provides a high-level integration between external chat platforms
3
+ * (Slack, Telegram, etc.) and the ZilMate Manager.
4
+ */
5
+ export declare function handleChatMessage(input: {
6
+ text: string;
7
+ authorId: string;
8
+ platform: 'slack' | 'telegram' | 'teams' | 'discord' | 'imessage';
9
+ threadId?: string;
10
+ onReply: (text: string) => Promise<void>;
11
+ onStep?: (label: string) => Promise<void>;
12
+ }): Promise<void>;
13
+ /**
14
+ * Proactive reporting core.
15
+ * Use this to push messages from background jobs to your chat channels.
16
+ * This is FULLY IMPLEMENTED for Telegram and Slack.
17
+ */
18
+ export declare function pushChatNotification(input: {
19
+ message: string;
20
+ platform: 'slack' | 'telegram' | 'imessage';
21
+ recipientId: string;
22
+ threadId?: string;
23
+ }): Promise<{
24
+ ok: boolean;
25
+ platform: string;
26
+ note?: never;
27
+ } | {
28
+ ok: boolean;
29
+ platform: string;
30
+ note: string;
31
+ }>;
32
+ //# sourceMappingURL=chat-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-bridge.d.ts","sourceRoot":"","sources":["../../src/runtime/chat-bridge.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,iBA2BA;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;;;;;;;;GA0DA"}
@@ -0,0 +1,92 @@
1
+ import { createZilMate } from '../server.js';
2
+ import { env } from '../config/env.js';
3
+ import { emitProgress } from './progress.js';
4
+ /**
5
+ * The ChatBridge provides a high-level integration between external chat platforms
6
+ * (Slack, Telegram, etc.) and the ZilMate Manager.
7
+ */
8
+ export async function handleChatMessage(input) {
9
+ const sessionId = `chat-${input.platform}-${input.authorId}`;
10
+ emitProgress({
11
+ type: 'thinking',
12
+ label: `Processing ${input.platform} message`,
13
+ detail: `User ${input.authorId}`
14
+ });
15
+ const zilmate = createZilMate({
16
+ sessionId,
17
+ onProgress: async (event) => {
18
+ if (event.type === 'step' && input.onStep) {
19
+ await input.onStep(event.label);
20
+ }
21
+ },
22
+ });
23
+ try {
24
+ const { text } = await zilmate.manager({ message: input.text });
25
+ await input.onReply(text);
26
+ }
27
+ catch (error) {
28
+ const message = error instanceof Error ? error.message : String(error);
29
+ console.error(`[ChatBridge] Manager error: ${message}`);
30
+ await input.onReply(`⚠️ ZilMate encountered an error: ${message}`);
31
+ throw error;
32
+ }
33
+ }
34
+ /**
35
+ * Proactive reporting core.
36
+ * Use this to push messages from background jobs to your chat channels.
37
+ * This is FULLY IMPLEMENTED for Telegram and Slack.
38
+ */
39
+ export async function pushChatNotification(input) {
40
+ if (!env.chatIntegrationEnabled) {
41
+ throw new Error('Chat integration is not enabled in environment.');
42
+ }
43
+ if (input.platform === 'telegram') {
44
+ if (!env.telegramBotToken)
45
+ throw new Error('TELEGRAM_BOT_TOKEN is missing.');
46
+ const url = `https://api.telegram.org/bot${env.telegramBotToken}/sendMessage`;
47
+ const res = await fetch(url, {
48
+ method: 'POST',
49
+ headers: { 'Content-Type': 'application/json' },
50
+ body: JSON.stringify({
51
+ chat_id: input.recipientId,
52
+ text: input.message,
53
+ parse_mode: 'Markdown',
54
+ }),
55
+ });
56
+ if (!res.ok) {
57
+ const data = await res.json();
58
+ throw new Error(`Telegram API error: ${data.description || res.statusText}`);
59
+ }
60
+ return { ok: true, platform: 'telegram' };
61
+ }
62
+ if (input.platform === 'slack') {
63
+ if (!env.slackBotToken)
64
+ throw new Error('SLACK_BOT_TOKEN is missing.');
65
+ const res = await fetch('https://slack.com/api/chat.postMessage', {
66
+ method: 'POST',
67
+ headers: {
68
+ 'Content-Type': 'application/json',
69
+ 'Authorization': `Bearer ${env.slackBotToken}`,
70
+ },
71
+ body: JSON.stringify({
72
+ channel: input.recipientId,
73
+ text: input.message,
74
+ thread_ts: input.threadId,
75
+ }),
76
+ });
77
+ const data = await res.json();
78
+ if (!data.ok) {
79
+ throw new Error(`Slack API error: ${data.error}`);
80
+ }
81
+ return { ok: true, platform: 'slack' };
82
+ }
83
+ if (input.platform === 'imessage') {
84
+ // iMessage usually requires the @vercel/chat adapter to be active
85
+ // because it handles the macOS database bridge.
86
+ // We log it here for diagnostic visibility.
87
+ console.log(`[ChatBridge] iMessage push requested for ${input.recipientId}. Ensure 'zilmate chat listen' is running.`);
88
+ return { ok: true, platform: 'imessage', note: 'Queued via adapter' };
89
+ }
90
+ throw new Error(`Platform ${input.platform} not supported for proactive push yet.`);
91
+ }
92
+ //# sourceMappingURL=chat-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-bridge.js","sourceRoot":"","sources":["../../src/runtime/chat-bridge.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/runtime/progress.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,MAAM,GAAG,gBAAgB,GAAG,eAAe,GAAG,cAAc,CAAC;IAClM,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAIF,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,QAGhD;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,cAQ1H"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/runtime/progress.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,MAAM,GAAG,gBAAgB,GAAG,eAAe,GAAG,cAAc,CAAC;IAClM,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAIF,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,QAKhD;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,cAQ1H"}
@@ -1,7 +1,9 @@
1
1
  import { isConfirmationActive } from './confirm.js';
2
2
  let listener;
3
3
  export function emitProgress(event) {
4
- if (isConfirmationActive())
4
+ // We allow 'tool:error' and 'step' events even during confirmation
5
+ // to ensure background failures or state updates are visible.
6
+ if (isConfirmationActive() && !['tool:error', 'step'].includes(event.type))
5
7
  return;
6
8
  listener?.(event);
7
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/runtime/progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AASpD,IAAI,QAAsD,CAAC;AAE3D,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,IAAI,oBAAoB,EAAE;QAAE,OAAO;IACnC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAI,QAAsD,EAAE,GAAqB;IACzH,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC1B,QAAQ,GAAG,QAAQ,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;YAAS,CAAC;QACT,QAAQ,GAAG,QAAQ,CAAC;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/runtime/progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AASpD,IAAI,QAAsD,CAAC;AAE3D,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,mEAAmE;IACnE,8DAA8D;IAC9D,IAAI,oBAAoB,EAAE,IAAI,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO;IACnF,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAI,QAAsD,EAAE,GAAqB;IACzH,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC1B,QAAQ,GAAG,QAAQ,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;YAAS,CAAC;QACT,QAAQ,GAAG,QAAQ,CAAC;IACtB,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type Tool } from 'ai';
2
- export type SwarmDepartment = 'Strategy' | 'Engineering' | 'Growth' | 'Operations' | 'Data';
2
+ export type SwarmDepartment = 'Strategy' | 'Engineering' | 'Growth' | 'Operations' | 'Data' | 'Security' | 'Revenue';
3
3
  export interface SwarmAgentConfig {
4
4
  name: string;
5
5
  department: SwarmDepartment;
@@ -12,6 +12,7 @@ export declare class SwarmAgent {
12
12
  private agent;
13
13
  private reportGenerator;
14
14
  constructor(config: SwarmAgentConfig);
15
+ private getDeptModel;
15
16
  init(sessionId?: string): Promise<void>;
16
17
  run(prompt: string, abortSignal?: AbortSignal): Promise<string>;
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../src/runtime/swarm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAoC,MAAM,IAAI,CAAC;AAOjE,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC;AAE5F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,eAAe,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,UAAU;IAIT,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,KAAK,CAA6C;IAC1D,OAAO,CAAC,eAAe,CAAiC;gBAEpC,MAAM,EAAE,gBAAgB;IAEtC,IAAI,CAAC,SAAS,GAAE,MAAkB;IA8BlC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW;CAUpD;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAC3C,OAAO,CAAC,WAAW,CAMhB;IAEH,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,iBAAiB;IAOjC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBtG,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;CAGlD"}
1
+ {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../src/runtime/swarm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAoC,MAAM,IAAI,CAAC;AAOjE,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAErH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,eAAe,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,UAAU;IAIT,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,KAAK,CAA6C;IAC1D,OAAO,CAAC,eAAe,CAAiC;gBAEpC,MAAM,EAAE,gBAAgB;IAE5C,OAAO,CAAC,YAAY;IAYd,IAAI,CAAC,SAAS,GAAE,MAAkB;IA8BlC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW;CAUpD;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAC3C,OAAO,CAAC,WAAW,CAQhB;IAEH,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,iBAAiB;IAOjC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBtG,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;CAGlD"}
@@ -11,10 +11,28 @@ export class SwarmAgent {
11
11
  constructor(config) {
12
12
  this.config = config;
13
13
  }
14
+ getDeptModel() {
15
+ const dept = this.config.department;
16
+ if (dept === 'Strategy')
17
+ return models.deptStrategy;
18
+ if (dept === 'Engineering')
19
+ return models.deptEngineering;
20
+ if (dept === 'Growth')
21
+ return models.deptGrowth;
22
+ if (dept === 'Operations')
23
+ return models.deptOperations;
24
+ if (dept === 'Data')
25
+ return models.deptData;
26
+ if (dept === 'Security')
27
+ return models.deptSecurity;
28
+ if (dept === 'Revenue')
29
+ return models.deptRevenue;
30
+ return models.chat;
31
+ }
14
32
  async init(sessionId = 'default') {
15
33
  const composioTools = await createComposioTools(sessionId);
16
34
  this.agent = new ToolLoopAgent({
17
- model: models.chat,
35
+ model: this.getDeptModel(),
18
36
  instructions: [
19
37
  `You are ${this.config.name}, a specialist in the ${this.config.department} department.`,
20
38
  this.config.instructions,
@@ -58,6 +76,8 @@ export class SwarmOrchestrator {
58
76
  ['growth', ['growthHacker', 'seoExpert', 'contentWriter', 'socialMediaManager', 'salesOps', 'adsManager']],
59
77
  ['operations', ['financeAnalyst', 'customerSuccess', 'legalCounsel', 'hrRecruiter', 'logisticsLead']],
60
78
  ['data', ['dataScientist', 'biReporter']],
79
+ ['security', ['securityAnalyst', 'redTeam', 'blueTeam']],
80
+ ['revenue', ['enterpriseSales', 'channelPartner', 'affiliateManager']],
61
81
  ]);
62
82
  constructor() { }
63
83
  static getInstance() {
@@ -71,7 +91,7 @@ export class SwarmOrchestrator {
71
91
  const { object } = await generateObject({
72
92
  model: models.manager,
73
93
  schema: z.object({
74
- department: z.enum(['strategy', 'engineering', 'growth', 'operations', 'data', 'general']),
94
+ department: z.enum(['strategy', 'engineering', 'growth', 'operations', 'data', 'security', 'revenue', 'general']),
75
95
  subagent: z.string(),
76
96
  reasoning: z.string(),
77
97
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../src/runtime/swarm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../src/runtime/swarm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ export declare const sandboxLifecycleTools: {
2
+ getOrCreateBrowserSandbox: import("ai").Tool<{
3
+ ephemeral: boolean;
4
+ }, {
5
+ sandboxId: string;
6
+ reused: boolean;
7
+ ephemeral?: never;
8
+ } | {
9
+ sandboxId: string;
10
+ reused: boolean;
11
+ ephemeral: boolean;
12
+ }>;
13
+ closeBrowserSandbox: import("ai").Tool<Record<string, never>, {
14
+ closed: boolean;
15
+ message: string;
16
+ sandboxId?: never;
17
+ } | {
18
+ closed: boolean;
19
+ sandboxId: string | null;
20
+ message?: never;
21
+ }>;
22
+ };
23
+ export declare const browsingTools: {
24
+ browserNavigate: import("ai").Tool<{
25
+ url: string;
26
+ timeoutMs: number;
27
+ waitForSelector?: string | undefined;
28
+ }, Record<string, unknown>>;
29
+ browserAction: import("ai").Tool<{
30
+ action: "fill" | "check" | "click" | "scroll" | "press" | "select" | "uncheck" | "waitFor";
31
+ selector: string;
32
+ timeoutMs: number;
33
+ value?: string | undefined;
34
+ }, Record<string, unknown>>;
35
+ browserRunScript: import("ai").Tool<{
36
+ startUrl: string;
37
+ scriptBody: string;
38
+ timeoutMs: number;
39
+ headless: boolean;
40
+ }, Record<string, unknown>>;
41
+ browserExtract: import("ai").Tool<{
42
+ url: string;
43
+ fields: {
44
+ name: string;
45
+ selector: string;
46
+ multiple: boolean;
47
+ attribute?: string | undefined;
48
+ }[];
49
+ timeoutMs: number;
50
+ }, Record<string, unknown>>;
51
+ browserScreenshot: import("ai").Tool<{
52
+ fullPage: boolean;
53
+ url?: string | undefined;
54
+ }, {
55
+ localPath: string;
56
+ }>;
57
+ };
58
+ export declare const daytonaBrowserTools: {
59
+ browserNavigate: import("ai").Tool<{
60
+ url: string;
61
+ timeoutMs: number;
62
+ waitForSelector?: string | undefined;
63
+ }, Record<string, unknown>>;
64
+ browserAction: import("ai").Tool<{
65
+ action: "fill" | "check" | "click" | "scroll" | "press" | "select" | "uncheck" | "waitFor";
66
+ selector: string;
67
+ timeoutMs: number;
68
+ value?: string | undefined;
69
+ }, Record<string, unknown>>;
70
+ browserRunScript: import("ai").Tool<{
71
+ startUrl: string;
72
+ scriptBody: string;
73
+ timeoutMs: number;
74
+ headless: boolean;
75
+ }, Record<string, unknown>>;
76
+ browserExtract: import("ai").Tool<{
77
+ url: string;
78
+ fields: {
79
+ name: string;
80
+ selector: string;
81
+ multiple: boolean;
82
+ attribute?: string | undefined;
83
+ }[];
84
+ timeoutMs: number;
85
+ }, Record<string, unknown>>;
86
+ browserScreenshot: import("ai").Tool<{
87
+ fullPage: boolean;
88
+ url?: string | undefined;
89
+ }, {
90
+ localPath: string;
91
+ }>;
92
+ getOrCreateBrowserSandbox: import("ai").Tool<{
93
+ ephemeral: boolean;
94
+ }, {
95
+ sandboxId: string;
96
+ reused: boolean;
97
+ ephemeral?: never;
98
+ } | {
99
+ sandboxId: string;
100
+ reused: boolean;
101
+ ephemeral: boolean;
102
+ }>;
103
+ closeBrowserSandbox: import("ai").Tool<Record<string, never>, {
104
+ closed: boolean;
105
+ message: string;
106
+ sandboxId?: never;
107
+ } | {
108
+ closed: boolean;
109
+ sandboxId: string | null;
110
+ message?: never;
111
+ }>;
112
+ };
113
+ //# sourceMappingURL=daytona-browser.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daytona-browser.tool.d.ts","sourceRoot":"","sources":["../../src/tools/daytona-browser.tool.ts"],"names":[],"mappings":"AAyHA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;CAuEjC,CAAC;AAWF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwMzB,CAAC;AAIF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG/B,CAAC"}