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
@@ -0,0 +1,348 @@
1
+ import { tool } from 'ai';
2
+ import { z } from 'zod';
3
+ import { Daytona } from '@daytonaio/sdk';
4
+ import { mkdir, writeFile } from 'node:fs/promises';
5
+ import path from 'node:path';
6
+ import { requestConfirmation } from '../runtime/confirm.js';
7
+ import { emitProgress } from '../runtime/progress.js';
8
+ /**
9
+ * Daytona Browser-Use Tool
10
+ *
11
+ * Runs real Playwright browser automation INSIDE an isolated Daytona sandbox —
12
+ * not on your local machine. This means:
13
+ * - Login sessions, cookies, and downloaded files never touch your laptop
14
+ * - You can run untrusted/scraping-heavy workloads with zero blast radius
15
+ * - Sandboxes are full Linux VMs — Chromium runs headless inside them
16
+ * - Daytona's `computerUse` API additionally gives mouse/keyboard/screenshot
17
+ * control of the sandbox's own desktop, useful for non-headless flows
18
+ *
19
+ * Architecture:
20
+ * 1. getOrCreateBrowserSandbox — reuses one warm sandbox across calls (fast),
21
+ * or spins up a fresh ephemeral one for isolated one-off tasks.
22
+ * 2. browserNavigate / browserAction / browserExtract / browserScreenshot —
23
+ * each one runs a small Playwright script via sandbox.process.codeRun()
24
+ * and returns structured results.
25
+ * 3. closeBrowserSandbox — tears down the sandbox when done (saves cost).
26
+ *
27
+ * Requires DAYTONA_API_KEY in env. Get one free at app.daytona.io.
28
+ */
29
+ let daytonaClient = null;
30
+ let warmSandbox = null;
31
+ let warmSandboxId = null;
32
+ const outputDir = path.resolve('outputs', 'daytona-browser');
33
+ async function ensureOutputDir() {
34
+ await mkdir(outputDir, { recursive: true });
35
+ return outputDir;
36
+ }
37
+ function ts() {
38
+ return new Date().toISOString().replace(/[:.]/g, '-');
39
+ }
40
+ function getClient() {
41
+ if (!daytonaClient) {
42
+ if (!process.env.DAYTONA_API_KEY) {
43
+ throw new Error('DAYTONA_API_KEY is not set. Get a free key at https://app.daytona.io and add it to your .env.');
44
+ }
45
+ daytonaClient = new Daytona({ apiKey: process.env.DAYTONA_API_KEY });
46
+ }
47
+ return daytonaClient;
48
+ }
49
+ async function confirmBrowserAction(action, details) {
50
+ return requestConfirmation({
51
+ toolkitSlug: 'ZILMATE',
52
+ toolSlug: 'DAYTONA_BROWSER',
53
+ action,
54
+ access: 'Read-only',
55
+ targetTools: ['ZILMATE_DAYTONA_BROWSER'],
56
+ details,
57
+ summary: details.join('; '),
58
+ });
59
+ }
60
+ /**
61
+ * The Playwright bootstrap script every action builds on.
62
+ * Persists browser state across calls in the same sandbox via a JSON
63
+ * "session file" written to /tmp — the sandbox's process.codeRun is
64
+ * stateless between calls, so we re-launch and reattach to the same
65
+ * storage_state each time to keep cookies/login alive.
66
+ */
67
+ function playwrightScript(body, opts = {}) {
68
+ const headless = opts.headless ?? true;
69
+ const storagePath = opts.storageStatePath ?? '/tmp/zilmate-browser-state.json';
70
+ return `
71
+ import json, os, sys
72
+ from playwright.sync_api import sync_playwright
73
+
74
+ STORAGE_PATH = "${storagePath}"
75
+
76
+ with sync_playwright() as p:
77
+ browser = p.chromium.launch(headless=${headless ? 'True' : 'False'})
78
+ context_kwargs = {}
79
+ if os.path.exists(STORAGE_PATH):
80
+ context_kwargs["storage_state"] = STORAGE_PATH
81
+ context = browser.new_context(**context_kwargs, viewport={"width": 1440, "height": 900})
82
+ page = context.new_page()
83
+
84
+ result = {}
85
+ try:
86
+ ${body.split('\n').map((l) => ' ' + l).join('\n')}
87
+ finally:
88
+ # Persist cookies/session for next call
89
+ context.storage_state(path=STORAGE_PATH)
90
+ browser.close()
91
+
92
+ print("ZILMATE_RESULT_START")
93
+ print(json.dumps(result, default=str))
94
+ print("ZILMATE_RESULT_END")
95
+ `.trim();
96
+ }
97
+ function extractResult(output) {
98
+ const start = output.indexOf('ZILMATE_RESULT_START');
99
+ const end = output.indexOf('ZILMATE_RESULT_END');
100
+ if (start === -1 || end === -1) {
101
+ return { raw: output.slice(-2000) };
102
+ }
103
+ const jsonStr = output.slice(start + 'ZILMATE_RESULT_START'.length, end).trim();
104
+ try {
105
+ return JSON.parse(jsonStr);
106
+ }
107
+ catch {
108
+ return { raw: jsonStr };
109
+ }
110
+ }
111
+ // ─── Sandbox lifecycle ────────────────────────────────────────────────────────
112
+ export const sandboxLifecycleTools = {
113
+ getOrCreateBrowserSandbox: tool({
114
+ description: 'Create or reuse a warm Daytona sandbox with Playwright + Chromium installed, ready for browser automation. Call this once at the start of a browsing task. Reuses the same sandbox across calls in this session so login cookies persist, unless ephemeral=true.',
115
+ inputSchema: z.object({
116
+ ephemeral: z
117
+ .boolean()
118
+ .optional()
119
+ .default(false)
120
+ .describe('If true, always creates a fresh isolated sandbox (auto-deleted when stopped) instead of reusing the warm one. Use for untrusted/one-off scraping tasks.'),
121
+ }),
122
+ execute: async ({ ephemeral }) => {
123
+ const approved = await confirmBrowserAction('Create Daytona browser sandbox', [
124
+ ephemeral ? 'Ephemeral sandbox — auto-deleted after use' : 'Reusable sandbox — persists across calls this session',
125
+ 'Installs Playwright + Chromium inside an isolated cloud VM',
126
+ ]);
127
+ if (!approved)
128
+ throw new Error('Blocked sandbox creation. Ask user to approve.');
129
+ const daytona = getClient();
130
+ if (!ephemeral && warmSandbox && warmSandboxId) {
131
+ emitProgress({ type: 'tool:end', label: 'Reusing existing browser sandbox', detail: warmSandboxId });
132
+ return { sandboxId: warmSandboxId, reused: true };
133
+ }
134
+ emitProgress({ type: 'tool:start', label: 'Creating Daytona sandbox' });
135
+ const sandbox = ephemeral
136
+ ? await daytona.create({ ephemeral: true, autoStopInterval: 10 })
137
+ : await daytona.create();
138
+ emitProgress({ type: 'tool:start', label: 'Installing Playwright + Chromium', detail: sandbox.id });
139
+ // Install playwright and the chromium browser binary inside the sandbox
140
+ const install = await sandbox.process.executeCommand('pip install playwright >/tmp/pw-install.log 2>&1 && playwright install --with-deps chromium >>/tmp/pw-install.log 2>&1 && echo DONE', undefined, undefined, 180);
141
+ if (!install.result?.includes('DONE')) {
142
+ throw new Error(`Playwright install failed in sandbox: ${install.result?.slice(-500)}`);
143
+ }
144
+ if (!ephemeral) {
145
+ warmSandbox = sandbox;
146
+ warmSandboxId = sandbox.id;
147
+ }
148
+ emitProgress({ type: 'tool:end', label: 'Browser sandbox ready', detail: sandbox.id });
149
+ return { sandboxId: sandbox.id, reused: false, ephemeral };
150
+ },
151
+ }),
152
+ closeBrowserSandbox: tool({
153
+ description: 'Stop and release the warm browser sandbox to stop incurring compute cost. Call when a browsing task is fully done.',
154
+ inputSchema: z.object({}),
155
+ execute: async () => {
156
+ if (!warmSandbox) {
157
+ return { closed: false, message: 'No active browser sandbox to close.' };
158
+ }
159
+ const id = warmSandboxId;
160
+ emitProgress({ type: 'tool:start', label: 'Closing browser sandbox', ...(id ? { detail: id } : {}) });
161
+ await warmSandbox.stop();
162
+ warmSandbox = null;
163
+ warmSandboxId = null;
164
+ emitProgress({ type: 'tool:end', label: 'Browser sandbox closed' });
165
+ return { closed: true, sandboxId: id };
166
+ },
167
+ }),
168
+ };
169
+ // ─── Core browsing actions ───────────────────────────────────────────────────
170
+ function getActiveSandbox() {
171
+ if (!warmSandbox) {
172
+ throw new Error('No active browser sandbox. Call getOrCreateBrowserSandbox first.');
173
+ }
174
+ return warmSandbox;
175
+ }
176
+ export const browsingTools = {
177
+ browserNavigate: tool({
178
+ description: 'Navigate to a URL inside the sandboxed browser and return the page title, final URL (after redirects), and visible text content. The starting point for any browsing task.',
179
+ inputSchema: z.object({
180
+ url: z.string().url(),
181
+ waitForSelector: z.string().optional().describe('CSS selector to wait for before considering the page loaded (useful for SPAs).'),
182
+ timeoutMs: z.number().int().min(1000).max(60_000).optional().default(30_000),
183
+ }),
184
+ execute: async ({ url, waitForSelector, timeoutMs }) => {
185
+ const approved = await confirmBrowserAction('Navigate browser', [`URL: ${url}`]);
186
+ if (!approved)
187
+ throw new Error('Blocked navigation. Ask user to approve.');
188
+ const sandbox = getActiveSandbox();
189
+ emitProgress({ type: 'tool:start', label: 'Navigating', detail: url });
190
+ const body = `
191
+ page.goto("${url}", timeout=${timeoutMs})
192
+ ${waitForSelector ? `page.wait_for_selector("${waitForSelector}", timeout=${timeoutMs})` : ''}
193
+ result["title"] = page.title()
194
+ result["finalUrl"] = page.url
195
+ result["text"] = page.inner_text("body")[:5000]
196
+ `;
197
+ const out = await sandbox.process.codeRun(playwrightScript(body), undefined, Math.ceil(timeoutMs / 1000) + 15);
198
+ const parsed = extractResult(out.result ?? '');
199
+ emitProgress({ type: 'tool:end', label: 'Navigation complete', detail: parsed.finalUrl });
200
+ return parsed;
201
+ },
202
+ }),
203
+ browserAction: tool({
204
+ description: 'Perform an interaction on the current page inside the sandboxed browser: click, type into a field, select a dropdown option, check a checkbox, press a key, or wait for an element. Use CSS selectors or Playwright text= selectors.',
205
+ inputSchema: z.object({
206
+ action: z.enum(['click', 'fill', 'select', 'check', 'uncheck', 'press', 'waitFor', 'scroll']),
207
+ selector: z.string().describe('CSS selector or Playwright selector, e.g. "#submit", "text=Sign in", "[name=email]".'),
208
+ value: z.string().optional().describe('Text to fill, option value to select, or key to press (e.g. "Enter").'),
209
+ timeoutMs: z.number().int().min(500).max(30_000).optional().default(10_000),
210
+ }),
211
+ execute: async ({ action, selector, value, timeoutMs }) => {
212
+ const approved = await confirmBrowserAction('Browser interaction', [`${action} on "${selector}"`, value ? `Value: ${value}` : '']);
213
+ if (!approved)
214
+ throw new Error('Blocked browser action. Ask user to approve.');
215
+ const sandbox = getActiveSandbox();
216
+ emitProgress({ type: 'tool:start', label: `Browser ${action}`, detail: selector });
217
+ // NOTE: this requires the browser to have an existing page context.
218
+ // We re-navigate to the last known URL stored in storage_state's page,
219
+ // but Playwright doesn't persist "current page" — so actions must be
220
+ // chained with browserNavigate immediately before, or use browserRunScript
221
+ // for multi-step flows within a single browser session (see below).
222
+ const escapedValue = (value ?? '').replace(/"/g, '\\"');
223
+ const body = `
224
+ last_url = result.get("__last_url__")
225
+ ${action === 'click' ? `page.click("${selector}", timeout=${timeoutMs})` : ''}
226
+ ${action === 'fill' ? `page.fill("${selector}", "${escapedValue}", timeout=${timeoutMs})` : ''}
227
+ ${action === 'select' ? `page.select_option("${selector}", "${escapedValue}", timeout=${timeoutMs})` : ''}
228
+ ${action === 'check' ? `page.check("${selector}", timeout=${timeoutMs})` : ''}
229
+ ${action === 'uncheck' ? `page.uncheck("${selector}", timeout=${timeoutMs})` : ''}
230
+ ${action === 'press' ? `page.press("${selector}", "${escapedValue}", timeout=${timeoutMs})` : ''}
231
+ ${action === 'waitFor' ? `page.wait_for_selector("${selector}", timeout=${timeoutMs})` : ''}
232
+ ${action === 'scroll' ? `page.locator("${selector}").scroll_into_view_if_needed(timeout=${timeoutMs})` : ''}
233
+ result["action"] = "${action}"
234
+ result["selector"] = "${selector}"
235
+ result["url"] = page.url
236
+ result["title"] = page.title()
237
+ `;
238
+ const out = await sandbox.process.codeRun(playwrightScript(body), undefined, Math.ceil(timeoutMs / 1000) + 15);
239
+ const parsed = extractResult(out.result ?? '');
240
+ emitProgress({ type: 'tool:end', label: `Browser ${action} complete` });
241
+ return parsed;
242
+ },
243
+ }),
244
+ browserRunScript: tool({
245
+ description: 'Run a full multi-step Playwright Python script inside the sandboxed browser in one call — navigate, fill a login form, click submit, wait for a result, extract data — all in a single page session. Use this instead of chaining browserNavigate + browserAction when steps depend on each other within the same page load (e.g. login flows, multi-field forms, infinite scroll). The script body runs with `page`, `context`, and `result` (dict) already available; populate result with whatever you want returned.',
246
+ inputSchema: z.object({
247
+ startUrl: z.string().url().describe('URL to navigate to first.'),
248
+ scriptBody: z
249
+ .string()
250
+ .describe('Python lines using Playwright sync API: page.fill(...), page.click(...), page.wait_for_selector(...), etc. Populate result["key"] = value for anything you want returned. Do NOT include page.goto for startUrl — that is handled automatically.'),
251
+ timeoutMs: z.number().int().min(5000).max(120_000).optional().default(45_000),
252
+ headless: z.boolean().optional().default(true).describe('Set false only if visually debugging via screenshot is needed mid-script.'),
253
+ }),
254
+ execute: async ({ startUrl, scriptBody, timeoutMs, headless }) => {
255
+ const approved = await confirmBrowserAction('Run multi-step browser script', [
256
+ `Start URL: ${startUrl}`,
257
+ `Script: ${scriptBody.slice(0, 200)}${scriptBody.length > 200 ? '…' : ''}`,
258
+ ]);
259
+ if (!approved)
260
+ throw new Error('Blocked browser script. Ask user to approve.');
261
+ const sandbox = getActiveSandbox();
262
+ emitProgress({ type: 'tool:start', label: 'Running browser script', detail: startUrl });
263
+ const body = `
264
+ page.goto("${startUrl}", timeout=${timeoutMs})
265
+ ${scriptBody.split('\n').map((l) => ' ' + l).join('\n')}
266
+ result.setdefault("url", page.url)
267
+ result.setdefault("title", page.title())
268
+ `;
269
+ const out = await sandbox.process.codeRun(playwrightScript(body, { headless }), undefined, Math.ceil(timeoutMs / 1000) + 30);
270
+ const parsed = extractResult(out.result ?? '');
271
+ emitProgress({ type: 'tool:end', label: 'Browser script complete' });
272
+ return parsed;
273
+ },
274
+ }),
275
+ browserExtract: tool({
276
+ description: 'Extract structured data from the current page using CSS selectors — text content, attribute values, or all matches for a repeated element (e.g. all product titles + prices in a list). Use after browserNavigate.',
277
+ inputSchema: z.object({
278
+ url: z.string().url().describe('Page to load before extracting.'),
279
+ fields: z
280
+ .array(z.object({
281
+ name: z.string().describe('Output field name.'),
282
+ selector: z.string().describe('CSS selector for this field.'),
283
+ attribute: z.string().optional().describe('HTML attribute to read instead of text content, e.g. "href" or "src".'),
284
+ multiple: z.boolean().optional().default(false).describe('If true, returns an array of all matches instead of just the first.'),
285
+ }))
286
+ .min(1),
287
+ timeoutMs: z.number().int().min(1000).max(60_000).optional().default(30_000),
288
+ }),
289
+ execute: async ({ url, fields, timeoutMs }) => {
290
+ const approved = await confirmBrowserAction('Extract page data', [`URL: ${url}`, `Fields: ${fields.map((f) => f.name).join(', ')}`]);
291
+ if (!approved)
292
+ throw new Error('Blocked extraction. Ask user to approve.');
293
+ const sandbox = getActiveSandbox();
294
+ emitProgress({ type: 'tool:start', label: 'Extracting data', detail: url });
295
+ const extractLines = fields.map((f) => {
296
+ const accessor = f.attribute ? `.get_attribute("${f.attribute}")` : '.inner_text()';
297
+ if (f.multiple) {
298
+ return `result["${f.name}"] = [el${accessor} for el in page.query_selector_all("${f.selector}")]`;
299
+ }
300
+ return `el_${f.name} = page.query_selector("${f.selector}"); result["${f.name}"] = el_${f.name}${accessor} if el_${f.name} else None`;
301
+ }).join('\n ');
302
+ const body = `
303
+ page.goto("${url}", timeout=${timeoutMs})
304
+ ${extractLines}
305
+ `;
306
+ const out = await sandbox.process.codeRun(playwrightScript(body), undefined, Math.ceil(timeoutMs / 1000) + 15);
307
+ const parsed = extractResult(out.result ?? '');
308
+ emitProgress({ type: 'tool:end', label: 'Extraction complete', detail: `${fields.length} fields` });
309
+ return parsed;
310
+ },
311
+ }),
312
+ browserScreenshot: tool({
313
+ description: 'Take a screenshot of the current sandboxed browser page (or a specific URL) and save it locally for the agent to view via analyzeScreenshot. Useful for visually verifying page state, debugging selectors, or showing the user what a page looks like.',
314
+ inputSchema: z.object({
315
+ url: z.string().url().optional().describe('If provided, navigates here first. Otherwise screenshots the current page.'),
316
+ fullPage: z.boolean().optional().default(false).describe('Capture the full scrollable page instead of just the viewport.'),
317
+ }),
318
+ execute: async ({ url, fullPage }) => {
319
+ const approved = await confirmBrowserAction('Browser screenshot', [url ? `URL: ${url}` : 'Current page', fullPage ? 'Full page' : 'Viewport only']);
320
+ if (!approved)
321
+ throw new Error('Blocked screenshot. Ask user to approve.');
322
+ const sandbox = getActiveSandbox();
323
+ emitProgress({ type: 'tool:start', label: 'Taking browser screenshot' });
324
+ const remotePath = `/tmp/zilmate-shot-${ts()}.png`;
325
+ const body = `
326
+ ${url ? `page.goto("${url}", timeout=30000)` : ''}
327
+ page.screenshot(path="${remotePath}", full_page=${fullPage ? 'True' : 'False'})
328
+ result["remotePath"] = "${remotePath}"
329
+ result["url"] = page.url
330
+ `;
331
+ const out = await sandbox.process.codeRun(playwrightScript(body), undefined, 45);
332
+ const parsed = extractResult(out.result ?? '');
333
+ // Pull the screenshot bytes down from the sandbox filesystem to local disk
334
+ const dir = await ensureOutputDir();
335
+ const localPath = path.join(dir, `screenshot-${ts()}.png`);
336
+ const bytes = await sandbox.fs.downloadFile(remotePath);
337
+ await writeFile(localPath, bytes);
338
+ emitProgress({ type: 'tool:end', label: 'Screenshot saved', detail: localPath });
339
+ return { ...parsed, localPath };
340
+ },
341
+ }),
342
+ };
343
+ // ─── Barrel export ────────────────────────────────────────────────────────────
344
+ export const daytonaBrowserTools = {
345
+ ...sandboxLifecycleTools,
346
+ ...browsingTools,
347
+ };
348
+ //# sourceMappingURL=daytona-browser.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daytona-browser.tool.js","sourceRoot":"","sources":["../../src/tools/daytona-browser.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export declare const swarmCollaborationTools: {
2
+ delegateTask: import("ai").Tool<{
3
+ targetAgent: string;
4
+ task: string;
5
+ priority: "medium" | "high" | "low";
6
+ }, {
7
+ status: string;
8
+ targetAgent: string;
9
+ message: string;
10
+ instruction: string;
11
+ }>;
12
+ readCorporateContext: import("ai").Tool<Record<string, never>, {
13
+ content: string;
14
+ }>;
15
+ updateCorporateContext: import("ai").Tool<{
16
+ content: string;
17
+ mode: "append" | "overwrite";
18
+ }, {
19
+ status: string;
20
+ message: string;
21
+ }>;
22
+ accessDepartmentalMemory: import("ai").Tool<{
23
+ department: "Strategy" | "Engineering" | "Growth" | "Operations" | "Data" | "Security" | "Revenue";
24
+ }, {
25
+ department: "Strategy" | "Engineering" | "Growth" | "Operations" | "Data" | "Security" | "Revenue";
26
+ content: string;
27
+ }>;
28
+ };
29
+ //# sourceMappingURL=swarm-collaboration.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm-collaboration.tool.d.ts","sourceRoot":"","sources":["../../src/tools/swarm-collaboration.tool.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EnC,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { tool } from 'ai';
2
+ import { z } from 'zod';
3
+ import { getWorkspaceRoot } from '../workspace/output-paths.js';
4
+ import { readFile, writeFile, mkdir } from 'node:fs/promises';
5
+ import path from 'node:path';
6
+ const CORPORATE_MEMORY_FILE = 'corporate-notebook.md';
7
+ const DEPARTMENTS_DIR = 'departments';
8
+ async function ensureMemoryDir() {
9
+ const root = getWorkspaceRoot();
10
+ const dir = path.join(root, 'swarm-memory');
11
+ await mkdir(dir, { recursive: true });
12
+ await mkdir(path.join(dir, DEPARTMENTS_DIR), { recursive: true });
13
+ return dir;
14
+ }
15
+ export const swarmCollaborationTools = {
16
+ delegateTask: tool({
17
+ description: 'Delegate a specific sub-task to another specialist agent. Use this for tasks outside your expertise or for cross-departmental collaboration.',
18
+ inputSchema: z.object({
19
+ targetAgent: z.string().describe('The name of the agent to delegate to (e.g., "fullStackCoder", "seoExpert").'),
20
+ task: z.string().describe('The specific instructions or request for the target agent.'),
21
+ priority: z.enum(['low', 'medium', 'high']).optional().default('medium'),
22
+ }),
23
+ execute: async ({ targetAgent, task, priority }) => {
24
+ return {
25
+ status: 'delegated',
26
+ targetAgent,
27
+ message: `Task delegated to ${targetAgent} with ${priority} priority.`,
28
+ instruction: `Please switch context to ${targetAgent} to complete: ${task}`
29
+ };
30
+ },
31
+ }),
32
+ readCorporateContext: tool({
33
+ description: 'Read the global corporate notebook, including mission statements, strategic goals, and cross-departmental updates.',
34
+ inputSchema: z.object({}),
35
+ execute: async () => {
36
+ const dir = await ensureMemoryDir();
37
+ const filePath = path.join(dir, CORPORATE_MEMORY_FILE);
38
+ try {
39
+ const content = await readFile(filePath, 'utf-8');
40
+ return { content };
41
+ }
42
+ catch (e) {
43
+ return { content: '# Corporate Notebook\n\nNo high-level strategy has been set yet. The CEO should initialize this.' };
44
+ }
45
+ },
46
+ }),
47
+ updateCorporateContext: tool({
48
+ description: 'Update the global corporate notebook with new strategic goals or executive updates. Only for use by CEO and Department Heads.',
49
+ inputSchema: z.object({
50
+ content: z.string().describe('The new content to append or set in the corporate notebook.'),
51
+ mode: z.enum(['append', 'overwrite']).optional().default('append'),
52
+ }),
53
+ execute: async ({ content, mode }) => {
54
+ const dir = await ensureMemoryDir();
55
+ const filePath = path.join(dir, CORPORATE_MEMORY_FILE);
56
+ let newContent = content;
57
+ if (mode === 'append') {
58
+ try {
59
+ const existing = await readFile(filePath, 'utf-8');
60
+ newContent = `${existing}\n\n---\n## Update (${new Date().toISOString()})\n\n${content}`;
61
+ }
62
+ catch (e) {
63
+ newContent = `# Corporate Notebook\n\n${content}`;
64
+ }
65
+ }
66
+ await writeFile(filePath, newContent);
67
+ return { status: 'success', message: 'Corporate context updated.' };
68
+ },
69
+ }),
70
+ accessDepartmentalMemory: tool({
71
+ description: 'Access the private memory and work logs for a specific department.',
72
+ inputSchema: z.object({
73
+ department: z.enum(['Strategy', 'Engineering', 'Growth', 'Operations', 'Data', 'Revenue', 'Security']),
74
+ }),
75
+ execute: async ({ department }) => {
76
+ const dir = await ensureMemoryDir();
77
+ const filePath = path.join(dir, DEPARTMENTS_DIR, `${department.toLowerCase()}.md`);
78
+ try {
79
+ const content = await readFile(filePath, 'utf-8');
80
+ return { department, content };
81
+ }
82
+ catch (e) {
83
+ return { department, content: `No records found for ${department} department.` };
84
+ }
85
+ },
86
+ }),
87
+ };
88
+ //# sourceMappingURL=swarm-collaboration.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm-collaboration.tool.js","sourceRoot":"","sources":["../../src/tools/swarm-collaboration.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare const swarmMemoryTools: {
2
+ getSharedScratchpad: import("ai").Tool<{
3
+ sessionId?: string | undefined;
4
+ }, {
5
+ scope: string;
6
+ content: string;
7
+ }>;
8
+ appendSharedScratchpad: import("ai").Tool<{
9
+ content: string;
10
+ sessionId?: string | undefined;
11
+ }, {
12
+ status: string;
13
+ scope: string;
14
+ }>;
15
+ };
16
+ //# sourceMappingURL=swarm-memory.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm-memory.tool.d.ts","sourceRoot":"","sources":["../../src/tools/swarm-memory.tool.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;CAyB5B,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { tool } from 'ai';
2
+ import { z } from 'zod';
3
+ import { readScratchpad, appendScratchpad } from '../memory/scratchpad.js';
4
+ import { emitProgress } from '../runtime/progress.js';
5
+ export const swarmMemoryTools = {
6
+ getSharedScratchpad: tool({
7
+ description: 'Read the shared swarm scratchpad for transient context. If you are a specialist, this is your departmental scratchpad. If you are the COO, you can access any departmental scratchpad by specifying sessionId (e.g. "default:engineering").',
8
+ inputSchema: z.object({
9
+ sessionId: z.string().optional().describe('The session or department scope (e.g., "default", "default:engineering"). Defaults to your current scope.'),
10
+ }),
11
+ execute: async ({ sessionId }) => {
12
+ const id = sessionId || 'default';
13
+ const content = await readScratchpad(id);
14
+ return { scope: id, content };
15
+ },
16
+ }),
17
+ appendSharedScratchpad: tool({
18
+ description: 'Append to the shared swarm scratchpad. Use to communicate transient state to other agents in your immediate department or swarm loop.',
19
+ inputSchema: z.object({
20
+ content: z.string().describe('The content to append to the scratchpad.'),
21
+ sessionId: z.string().optional().describe('The session or department scope. Defaults to your current scope.'),
22
+ }),
23
+ execute: async ({ content, sessionId }) => {
24
+ const id = sessionId || 'default';
25
+ emitProgress({ type: 'step', label: `Updating scratchpad [${id}]` });
26
+ await appendScratchpad(id, content);
27
+ return { status: 'Scratchpad updated', scope: id };
28
+ },
29
+ }),
30
+ };
31
+ //# sourceMappingURL=swarm-memory.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm-memory.tool.js","sourceRoot":"","sources":["../../src/tools/swarm-memory.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,mBAAmB,EAAE,IAAI,CAAC;QACxB,WAAW,EAAE,6OAA6O;QAC1P,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2GAA2G,CAAC;SACvJ,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAC/B,MAAM,EAAE,GAAG,SAAS,IAAI,SAAS,CAAC;YAClC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;YACzC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC;KACF,CAAC;IACF,sBAAsB,EAAE,IAAI,CAAC;QAC3B,WAAW,EAAE,uIAAuI;QACpJ,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;SAC9G,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;YACxC,MAAM,EAAE,GAAG,SAAS,IAAI,SAAS,CAAC;YAClC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC;YACrE,MAAM,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACpC,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACrD,CAAC;KACF,CAAC;CACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ export declare function getControlState(id: string): Promise<'RUNNING' | 'PAUSED'>;
2
+ export declare const swarmOpsTools: {
3
+ pauseDepartment: import("ai").Tool<{
4
+ department: "Strategy" | "Engineering" | "Growth" | "Operations" | "Data" | "Security" | "Revenue";
5
+ sessionId: string;
6
+ }, {
7
+ status: string;
8
+ department: "Strategy" | "Engineering" | "Growth" | "Operations" | "Data" | "Security" | "Revenue";
9
+ scope: string;
10
+ }>;
11
+ resumeDepartment: import("ai").Tool<{
12
+ department: "Strategy" | "Engineering" | "Growth" | "Operations" | "Data" | "Security" | "Revenue";
13
+ sessionId: string;
14
+ }, {
15
+ status: string;
16
+ department: "Strategy" | "Engineering" | "Growth" | "Operations" | "Data" | "Security" | "Revenue";
17
+ scope: string;
18
+ }>;
19
+ };
20
+ //# sourceMappingURL=swarm-ops.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm-ops.tool.d.ts","sourceRoot":"","sources":["../../src/tools/swarm-ops.tool.ts"],"names":[],"mappings":"AAkBA,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,CAS/E;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;CA2BzB,CAAC"}