zilmate 1.6.2 → 1.7.2

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 (92) hide show
  1. package/SDK.md +320 -0
  2. package/agent-docs.md +12 -0
  3. package/dist/agents/automation-planner.agent.d.ts +4 -4
  4. package/dist/agents/automation-planner.agent.d.ts.map +1 -1
  5. package/dist/agents/coding.agent.d.ts +102 -0
  6. package/dist/agents/coding.agent.d.ts.map +1 -1
  7. package/dist/agents/coding.agent.js +89 -5
  8. package/dist/agents/coding.agent.js.map +1 -1
  9. package/dist/agents/image.agent.d.ts +13 -0
  10. package/dist/agents/image.agent.d.ts.map +1 -1
  11. package/dist/agents/image.agent.js +39 -3
  12. package/dist/agents/image.agent.js.map +1 -1
  13. package/dist/agents/manager.d.ts +157 -5
  14. package/dist/agents/manager.d.ts.map +1 -1
  15. package/dist/agents/manager.js +16 -4
  16. package/dist/agents/manager.js.map +1 -1
  17. package/dist/agents/security.agent.d.ts +2 -2
  18. package/dist/cli/composer.d.ts +3 -0
  19. package/dist/cli/composer.d.ts.map +1 -0
  20. package/dist/cli/composer.js +11 -0
  21. package/dist/cli/composer.js.map +1 -0
  22. package/dist/cli/format.d.ts.map +1 -1
  23. package/dist/cli/format.js +29 -3
  24. package/dist/cli/format.js.map +1 -1
  25. package/dist/cli/interactive.d.ts.map +1 -1
  26. package/dist/cli/interactive.js +65 -14
  27. package/dist/cli/interactive.js.map +1 -1
  28. package/dist/cli/models.d.ts +17 -0
  29. package/dist/cli/models.d.ts.map +1 -0
  30. package/dist/cli/models.js +116 -0
  31. package/dist/cli/models.js.map +1 -0
  32. package/dist/cli/render.d.ts +13 -0
  33. package/dist/cli/render.d.ts.map +1 -0
  34. package/dist/cli/render.js +59 -0
  35. package/dist/cli/render.js.map +1 -0
  36. package/dist/cli/setup.d.ts.map +1 -1
  37. package/dist/cli/setup.js +23 -1
  38. package/dist/cli/setup.js.map +1 -1
  39. package/dist/cli/theme.d.ts +23 -0
  40. package/dist/cli/theme.d.ts.map +1 -0
  41. package/dist/cli/theme.js +34 -0
  42. package/dist/cli/theme.js.map +1 -0
  43. package/dist/cli/triggers.d.ts.map +1 -1
  44. package/dist/cli/triggers.js +26 -16
  45. package/dist/cli/triggers.js.map +1 -1
  46. package/dist/config/model-store.d.ts +14 -0
  47. package/dist/config/model-store.d.ts.map +1 -0
  48. package/dist/config/model-store.js +60 -0
  49. package/dist/config/model-store.js.map +1 -0
  50. package/dist/config/models.d.ts.map +1 -1
  51. package/dist/config/models.js +14 -11
  52. package/dist/config/models.js.map +1 -1
  53. package/dist/index.js +9 -13
  54. package/dist/index.js.map +1 -1
  55. package/dist/jobs/trigger-router.d.ts.map +1 -1
  56. package/dist/jobs/trigger-router.js +8 -3
  57. package/dist/jobs/trigger-router.js.map +1 -1
  58. package/dist/server.d.ts +49 -1
  59. package/dist/server.d.ts.map +1 -1
  60. package/dist/server.js +13 -1
  61. package/dist/server.js.map +1 -1
  62. package/dist/tools/code-intelligence.tool.d.ts +68 -0
  63. package/dist/tools/code-intelligence.tool.d.ts.map +1 -0
  64. package/dist/tools/code-intelligence.tool.js +176 -0
  65. package/dist/tools/code-intelligence.tool.js.map +1 -0
  66. package/dist/tools/computer-use.tool.d.ts +2 -2
  67. package/dist/tools/computer-use.tool.js +66 -66
  68. package/dist/tools/image-generate.tool.d.ts +10 -0
  69. package/dist/tools/image-generate.tool.d.ts.map +1 -1
  70. package/dist/tools/image-generate.tool.js +115 -22
  71. package/dist/tools/image-generate.tool.js.map +1 -1
  72. package/dist/tools/notebook.tool.js +5 -5
  73. package/dist/tools/notebook.tool.js.map +1 -1
  74. package/dist/tools/osint-install.tool.js +8 -8
  75. package/dist/tools/osint.tool.d.ts +4 -4
  76. package/dist/tools/session-continuity.tool.d.ts +25 -0
  77. package/dist/tools/session-continuity.tool.d.ts.map +1 -0
  78. package/dist/tools/session-continuity.tool.js +90 -0
  79. package/dist/tools/session-continuity.tool.js.map +1 -0
  80. package/dist/tools/situational-awareness.tool.d.ts +71 -0
  81. package/dist/tools/situational-awareness.tool.d.ts.map +1 -0
  82. package/dist/tools/situational-awareness.tool.js +90 -0
  83. package/dist/tools/situational-awareness.tool.js.map +1 -0
  84. package/dist/tools/triggers.tool.d.ts +4 -4
  85. package/dist/tools/triggers.tool.d.ts.map +1 -1
  86. package/dist/tools/weather.tool.d.ts +88 -0
  87. package/dist/tools/weather.tool.d.ts.map +1 -0
  88. package/dist/tools/weather.tool.js +228 -0
  89. package/dist/tools/weather.tool.js.map +1 -0
  90. package/package.json +8 -3
  91. package/scripts/release-github.mjs +12 -11
  92. package/src/doc/worker-support-playbook.md +159 -159
@@ -5,12 +5,18 @@ export type ImageGenerationOptions = {
5
5
  provider?: ImageProviderInput | undefined;
6
6
  size?: ImageSize | undefined;
7
7
  outputDir?: string | undefined;
8
+ imagePaths?: string[] | undefined;
9
+ imageUrls?: string[] | undefined;
10
+ maskPath?: string | undefined;
11
+ maskUrl?: string | undefined;
8
12
  };
9
13
  export type ImageGenerationResult = {
10
14
  text?: string;
11
15
  files: string[];
12
16
  model: string;
13
17
  provider: ImageProvider;
18
+ operation: 'generate' | 'edit';
19
+ inputImages?: string[];
14
20
  };
15
21
  export declare function isImageSize(value: string | undefined): value is ImageSize;
16
22
  export declare function generateImageAsset(prompt: string, options?: ImageGenerationOptions): Promise<ImageGenerationResult>;
@@ -18,5 +24,9 @@ export declare const imageGenerateTool: import("ai").Tool<{
18
24
  prompt: string;
19
25
  provider?: "openai" | "gemini" | "chatgpt" | "google" | "default" | undefined;
20
26
  size?: string | undefined;
27
+ imagePaths?: string[] | undefined;
28
+ imageUrls?: string[] | undefined;
29
+ maskPath?: string | undefined;
30
+ maskUrl?: string | undefined;
21
31
  }, ImageGenerationResult>;
22
32
  //# sourceMappingURL=image-generate.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-generate.tool.d.ts","sourceRoot":"","sources":["../../src/tools/image-generate.tool.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAI1E,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAClF,MAAM,MAAM,SAAS,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAE9C,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC1C,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,IAAI,SAAS,CAEzE;AAmFD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAO7H;AAED,eAAO,MAAM,iBAAiB;;;;yBAW5B,CAAC"}
1
+ {"version":3,"file":"image-generate.tool.d.ts","sourceRoot":"","sources":["../../src/tools/image-generate.tool.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAI1E,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAClF,MAAM,MAAM,SAAS,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAG9C,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC1C,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,UAAU,GAAG,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAQF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,IAAI,SAAS,CAEzE;AA4KD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAQ7H;AAED,eAAO,MAAM,iBAAiB;;;;;;;;yBAmB5B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { mkdir, writeFile } from 'node:fs/promises';
1
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import { generateImage, generateText, tool } from 'ai';
4
4
  import { z } from 'zod';
@@ -42,39 +42,123 @@ async function saveImageBytes(data, mediaType, outputDir, index) {
42
42
  await writeFile(target, toBuffer(data));
43
43
  return target;
44
44
  }
45
- async function generateOpenAiImage(prompt, outputDir, size) {
45
+ function isHttpUrl(value) {
46
+ try {
47
+ const parsed = new URL(value);
48
+ return parsed.protocol === 'http:' || parsed.protocol === 'https:';
49
+ }
50
+ catch {
51
+ return false;
52
+ }
53
+ }
54
+ async function loadRemoteImage(url) {
55
+ const response = await fetch(url);
56
+ if (!response.ok) {
57
+ throw new Error(`Could not load image URL ${url}: ${response.status} ${response.statusText}`);
58
+ }
59
+ return new Uint8Array(await response.arrayBuffer());
60
+ }
61
+ async function loadImageReference(reference) {
62
+ if (isHttpUrl(reference))
63
+ return loadRemoteImage(reference);
64
+ return readFile(path.resolve(reference));
65
+ }
66
+ async function loadEditInputs(options) {
67
+ const imageSources = [...(options.imagePaths || []), ...(options.imageUrls || [])].filter(Boolean);
68
+ const maskSource = options.maskPath || options.maskUrl;
69
+ if (imageSources.length === 0 && !maskSource)
70
+ return undefined;
71
+ if (imageSources.length === 0) {
72
+ throw new Error('Image editing needs at least one input image. Provide imagePaths or imageUrls.');
73
+ }
74
+ emitProgress({ type: 'tool:start', label: 'Loading input image references', detail: `${imageSources.length} image${imageSources.length === 1 ? '' : 's'}` });
75
+ const loaded = { images: [], sources: [...imageSources] };
76
+ for (const source of imageSources) {
77
+ loaded.images.push(await loadImageReference(source));
78
+ }
79
+ if (maskSource) {
80
+ loaded.mask = await loadImageReference(maskSource);
81
+ loaded.sources.push(`mask:${maskSource}`);
82
+ }
83
+ emitProgress({ type: 'tool:end', label: 'Input images loaded', detail: `${loaded.images.length} image${loaded.images.length === 1 ? '' : 's'}` });
84
+ return loaded;
85
+ }
86
+ function buildImagePrompt(prompt, inputs) {
87
+ const text = redactSensitiveText(prompt);
88
+ if (!inputs)
89
+ return text;
90
+ return {
91
+ text,
92
+ images: inputs.images,
93
+ ...(inputs.mask ? { mask: inputs.mask } : {}),
94
+ };
95
+ }
96
+ async function saveGeneratedImages(result, outputDir) {
97
+ const saved = [];
98
+ for (const [index, image] of result.images.entries()) {
99
+ const value = image;
100
+ const data = value.uint8Array || value.data || value.base64;
101
+ if (!data)
102
+ continue;
103
+ saved.push(await saveImageBytes(data, value.mediaType || image.mediaType, outputDir, index));
104
+ }
105
+ return saved;
106
+ }
107
+ async function generateOpenAiImage(prompt, outputDir, size, inputs) {
46
108
  const model = models.imageOpenai;
47
- emitProgress({ type: 'tool:start', label: 'Generating OpenAI image', detail: model });
109
+ const operation = inputs ? 'edit' : 'generate';
110
+ emitProgress({ type: 'tool:start', label: `${operation === 'edit' ? 'Editing' : 'Generating'} OpenAI image`, detail: model });
48
111
  const result = await generateImage({
49
112
  model,
50
- prompt: redactSensitiveText(prompt),
113
+ prompt: buildImagePrompt(prompt, inputs),
51
114
  ...(size ? { size } : {}),
52
115
  providerOptions: {
53
116
  gateway: {
54
- tags: ['zilo-manager', 'feature:image', 'model:openai'],
117
+ tags: ['zilo-manager', `feature:image-${operation}`, 'model:openai'],
55
118
  },
56
119
  },
57
120
  });
58
- const saved = [];
59
- for (const [index, image] of result.images.entries()) {
60
- const value = image;
61
- const data = value.uint8Array || value.data || value.base64;
62
- if (!data)
63
- continue;
64
- saved.push(await saveImageBytes(data, value.mediaType || image.mediaType, outputDir, index));
65
- }
66
- emitProgress({ type: 'tool:end', label: 'OpenAI image generation complete', detail: `${saved.length} file${saved.length === 1 ? '' : 's'}` });
67
- return { files: saved, model, provider: 'openai' };
121
+ const saved = await saveGeneratedImages(result, outputDir);
122
+ emitProgress({ type: 'tool:end', label: `OpenAI image ${operation} complete`, detail: `${saved.length} file${saved.length === 1 ? '' : 's'}` });
123
+ return {
124
+ files: saved,
125
+ model,
126
+ provider: 'openai',
127
+ operation,
128
+ ...(inputs?.sources.length ? { inputImages: inputs.sources } : {}),
129
+ };
68
130
  }
69
- async function generateGeminiImage(prompt, outputDir) {
131
+ async function generateGeminiImage(prompt, outputDir, size, inputs) {
70
132
  const model = models.imageGemini;
133
+ if (inputs) {
134
+ emitProgress({ type: 'tool:start', label: 'Editing Gemini image', detail: model });
135
+ const result = await generateImage({
136
+ model,
137
+ prompt: buildImagePrompt(prompt, inputs),
138
+ ...(size ? { size } : {}),
139
+ providerOptions: {
140
+ gateway: {
141
+ tags: ['zilo-manager', 'feature:image-edit', 'model:gemini'],
142
+ },
143
+ },
144
+ });
145
+ const saved = await saveGeneratedImages(result, outputDir);
146
+ emitProgress({ type: 'tool:end', label: 'Gemini image edit complete', detail: `${saved.length} file${saved.length === 1 ? '' : 's'}` });
147
+ return {
148
+ files: saved,
149
+ model,
150
+ provider: 'gemini',
151
+ operation: 'edit',
152
+ inputImages: inputs.sources,
153
+ };
154
+ }
71
155
  emitProgress({ type: 'tool:start', label: 'Generating Gemini image', detail: model });
72
156
  const result = await generateText({
73
157
  model,
74
158
  prompt: redactSensitiveText(prompt),
75
159
  providerOptions: {
76
160
  gateway: {
77
- tags: ['zilo-manager', 'feature:image', 'model:gemini'],
161
+ tags: ['zilo-manager', 'feature:image-generate', 'model:gemini'],
78
162
  },
79
163
  },
80
164
  });
@@ -88,27 +172,36 @@ async function generateGeminiImage(prompt, outputDir) {
88
172
  saved.push(await saveImageBytes(data, value.mediaType || file.mediaType, outputDir, index));
89
173
  }
90
174
  emitProgress({ type: 'tool:end', label: 'Gemini image generation complete', detail: `${saved.length} file${saved.length === 1 ? '' : 's'}` });
91
- return { text: result.text, files: saved, model, provider: 'gemini' };
175
+ return { text: result.text, files: saved, model, provider: 'gemini', operation: 'generate' };
92
176
  }
93
177
  export async function generateImageAsset(prompt, options = {}) {
94
178
  requireGatewayAuth();
95
179
  const outputDir = options.outputDir || getOutputDir('images');
96
180
  await mkdir(outputDir, { recursive: true });
97
181
  const provider = normalizeProvider(options.provider);
182
+ const inputs = await loadEditInputs(options);
98
183
  if (provider === 'gemini')
99
- return generateGeminiImage(prompt, outputDir);
100
- return generateOpenAiImage(prompt, outputDir, options.size);
184
+ return generateGeminiImage(prompt, outputDir, options.size, inputs);
185
+ return generateOpenAiImage(prompt, outputDir, options.size, inputs);
101
186
  }
102
187
  export const imageGenerateTool = tool({
103
- description: 'Generate a high-quality image with OpenAI GPT Image 2 or Gemini 3 Pro Image and save it locally.',
188
+ description: 'Generate or edit high-quality images with OpenAI GPT Image 2 or Gemini image models. Accepts local image paths, image URLs, and optional masks, then saves outputs locally.',
104
189
  inputSchema: z.object({
105
190
  prompt: z.string().min(5),
106
191
  provider: z.enum(['openai', 'chatgpt', 'gemini', 'google', 'default']).optional(),
107
192
  size: z.string().regex(/^\d+x\d+$/).optional(),
193
+ imagePaths: z.array(z.string().min(1)).optional().describe('Local image file paths to edit or use as visual references.'),
194
+ imageUrls: z.array(z.string().url()).optional().describe('Remote image URLs to edit or use as visual references.'),
195
+ maskPath: z.string().min(1).optional().describe('Optional local mask image path for masked edits. Requires at least one input image.'),
196
+ maskUrl: z.string().url().optional().describe('Optional mask image URL for masked edits. Requires at least one input image.'),
108
197
  }),
109
- execute: async ({ prompt, provider, size }) => generateImageAsset(prompt, {
198
+ execute: async ({ prompt, provider, size, imagePaths, imageUrls, maskPath, maskUrl }) => generateImageAsset(prompt, {
110
199
  ...(provider ? { provider } : {}),
111
200
  ...(isImageSize(size) ? { size } : {}),
201
+ ...(imagePaths?.length ? { imagePaths } : {}),
202
+ ...(imageUrls?.length ? { imageUrls } : {}),
203
+ ...(maskPath ? { maskPath } : {}),
204
+ ...(maskUrl ? { maskUrl } : {}),
112
205
  }),
113
206
  });
114
207
  //# sourceMappingURL=image-generate.tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-generate.tool.js","sourceRoot":"","sources":["../../src/tools/image-generate.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image-generate.tool.js","sourceRoot":"","sources":["../../src/tools/image-generate.tool.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { addNotebookEntry, appendNotebookMarkdown, listNotebookEntries, readNote
4
4
  import { emitProgress } from '../runtime/progress.js';
5
5
  export const notebookTools = {
6
6
  readNotebook: tool({
7
- description: 'Read ZilMate private notebook.md durable working notes separate from scratchpad.',
7
+ description: 'Read ZilMate private notebook.md: durable project/user working notes separate from short-lived scratchpad.',
8
8
  inputSchema: z.object({ limitChars: z.number().int().min(500).max(50_000).optional() }),
9
9
  execute: async ({ limitChars }) => {
10
10
  const text = await readNotebookMarkdown();
@@ -15,7 +15,7 @@ export const notebookTools = {
15
15
  },
16
16
  }),
17
17
  appendNotebook: tool({
18
- description: 'Append a section to notebook.md and mirror it in notes.json.',
18
+ description: 'Save durable project memory to notebook.md and notes.json: architecture decisions, setup steps, recurring errors, commands, ports, preferences, and handoff notes.',
19
19
  inputSchema: z.object({
20
20
  title: z.string().min(1),
21
21
  body: z.string().min(1),
@@ -32,17 +32,17 @@ export const notebookTools = {
32
32
  },
33
33
  }),
34
34
  searchNotebook: tool({
35
- description: 'Search structured notebook entries by keyword.',
35
+ description: 'Search durable structured notebook entries by keyword before asking the user to repeat prior project context.',
36
36
  inputSchema: z.object({ query: z.string().min(2), limit: z.number().int().min(1).max(20).optional() }),
37
37
  execute: async ({ query, limit }) => searchNotebook(query, limit ?? 10),
38
38
  }),
39
39
  listNotebookEntries: tool({
40
- description: 'List recent structured notebook entries from notes.json.',
40
+ description: 'List recent durable notebook entries from notes.json for project/session recall.',
41
41
  inputSchema: z.object({ limit: z.number().int().min(1).max(50).optional() }),
42
42
  execute: async ({ limit }) => listNotebookEntries(limit ?? 15),
43
43
  }),
44
44
  quickNotebookNote: tool({
45
- description: 'Quick append to notebook.md without structured entry metadata.',
45
+ description: 'Quick append to notebook.md for lightweight durable notes when structured metadata is unnecessary.',
46
46
  inputSchema: z.object({ section: z.string().min(1), content: z.string().min(1) }),
47
47
  execute: async ({ section, content }) => appendNotebookMarkdown(section, content),
48
48
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"notebook.tool.js","sourceRoot":"","sources":["../../src/tools/notebook.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notebook.tool.js","sourceRoot":"","sources":["../../src/tools/notebook.tool.ts"],"names":[],"mappings":"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"}
@@ -146,14 +146,14 @@ const OSINT_TOOLS = [
146
146
  return runInstallCommand('powershell.exe', [
147
147
  '-NoProfile',
148
148
  '-Command',
149
- `
150
- $dir = "$env:USERPROFILE\\bin"
151
- New-Item -ItemType Directory -Force -Path $dir | Out-Null
152
- $url = "https://github.com/sundowndev/phoneinfoga/releases/latest/download/phoneinfoga_Windows_x86_64.zip"
153
- $zip = "$env:TEMP\\phoneinfoga.zip"
154
- Invoke-WebRequest -Uri $url -OutFile $zip
155
- Expand-Archive -Path $zip -DestinationPath $dir -Force
156
- Write-Output "PhoneInfoga extracted to $dir — ensure $dir is on your PATH"
149
+ `
150
+ $dir = "$env:USERPROFILE\\bin"
151
+ New-Item -ItemType Directory -Force -Path $dir | Out-Null
152
+ $url = "https://github.com/sundowndev/phoneinfoga/releases/latest/download/phoneinfoga_Windows_x86_64.zip"
153
+ $zip = "$env:TEMP\\phoneinfoga.zip"
154
+ Invoke-WebRequest -Uri $url -OutFile $zip
155
+ Expand-Archive -Path $zip -DestinationPath $dir -Force
156
+ Write-Output "PhoneInfoga extracted to $dir — ensure $dir is on your PATH"
157
157
  `.trim(),
158
158
  ]);
159
159
  }
@@ -28,12 +28,12 @@ export declare const usernameTools: {
28
28
  username: string;
29
29
  allSites: boolean;
30
30
  permute: boolean;
31
- format: "csv" | "json" | "pdf" | "html" | "txt";
31
+ format: "json" | "csv" | "pdf" | "html" | "txt";
32
32
  tags?: string | undefined;
33
33
  }, {
34
34
  username: string;
35
35
  outputDir: string;
36
- format: "csv" | "json" | "pdf" | "html" | "txt";
36
+ format: "json" | "csv" | "pdf" | "html" | "txt";
37
37
  raw: string;
38
38
  }>;
39
39
  /**
@@ -391,12 +391,12 @@ export declare const osintTools: {
391
391
  username: string;
392
392
  allSites: boolean;
393
393
  permute: boolean;
394
- format: "csv" | "json" | "pdf" | "html" | "txt";
394
+ format: "json" | "csv" | "pdf" | "html" | "txt";
395
395
  tags?: string | undefined;
396
396
  }, {
397
397
  username: string;
398
398
  outputDir: string;
399
- format: "csv" | "json" | "pdf" | "html" | "txt";
399
+ format: "json" | "csv" | "pdf" | "html" | "txt";
400
400
  raw: string;
401
401
  }>;
402
402
  /**
@@ -0,0 +1,25 @@
1
+ type Handoff = {
2
+ sessionId: string;
3
+ summary: string;
4
+ nextActions: string[];
5
+ openThreads: string[];
6
+ updatedAt: string;
7
+ };
8
+ export declare function loadSessionHandoff(sessionId: string): Promise<Handoff | null>;
9
+ export declare function saveSessionHandoff(sessionId: string, input: Omit<Handoff, 'sessionId' | 'updatedAt'>): Promise<Handoff>;
10
+ export declare const sessionContinuityTools: {
11
+ getSessionHandoff: import("ai").Tool<{
12
+ sessionId?: string | undefined;
13
+ }, Handoff | null>;
14
+ saveSessionHandoff: import("ai").Tool<{
15
+ summary: string;
16
+ nextActions: string[];
17
+ sessionId?: string | undefined;
18
+ openThreads?: string[] | undefined;
19
+ }, Handoff>;
20
+ generateSessionHandoff: import("ai").Tool<{
21
+ sessionId?: string | undefined;
22
+ }, Handoff>;
23
+ };
24
+ export {};
25
+ //# sourceMappingURL=session-continuity.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-continuity.tool.d.ts","sourceRoot":"","sources":["../../src/tools/session-continuity.tool.ts"],"names":[],"mappings":"AAaA,KAAK,OAAO,GAAG;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAMF,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQnF;AAED,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAAC,oBAS1G;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;CAqDlC,CAAC"}
@@ -0,0 +1,90 @@
1
+ // src/tools/session-continuity.tool.ts
2
+ import { readFile, writeFile, mkdir } from 'node:fs/promises';
3
+ import { existsSync } from 'node:fs';
4
+ import path from 'node:path';
5
+ import { tool } from 'ai';
6
+ import { z } from 'zod';
7
+ import { generateText } from 'ai';
8
+ import { models } from '../config/models.js';
9
+ import { workspaceLayout } from '../workspace/paths.js';
10
+ import { loadTurns } from '../memory/history.js';
11
+ import { appendNotebookMarkdown } from '../memory/notebook.js';
12
+ import { emitProgress } from '../runtime/progress.js';
13
+ function handoffPath(sessionId) {
14
+ return path.join(workspaceLayout().config, `handoff-${sessionId}.json`);
15
+ }
16
+ export async function loadSessionHandoff(sessionId) {
17
+ const file = handoffPath(sessionId);
18
+ if (!existsSync(file))
19
+ return null;
20
+ try {
21
+ return JSON.parse(await readFile(file, 'utf8'));
22
+ }
23
+ catch {
24
+ return null;
25
+ }
26
+ }
27
+ export async function saveSessionHandoff(sessionId, input) {
28
+ const payload = {
29
+ sessionId,
30
+ ...input,
31
+ updatedAt: new Date().toISOString(),
32
+ };
33
+ await mkdir(workspaceLayout().config, { recursive: true });
34
+ await writeFile(handoffPath(sessionId), JSON.stringify(payload, null, 2), 'utf8');
35
+ return payload;
36
+ }
37
+ export const sessionContinuityTools = {
38
+ getSessionHandoff: tool({
39
+ description: 'Load the last session handoff: summary, next actions, and open threads so you can continue seamlessly.',
40
+ inputSchema: z.object({ sessionId: z.string().optional() }),
41
+ execute: async ({ sessionId = 'default' }) => loadSessionHandoff(sessionId),
42
+ }),
43
+ saveSessionHandoff: tool({
44
+ description: 'Save a session handoff before ending work so the next session can resume instantly.',
45
+ inputSchema: z.object({
46
+ sessionId: z.string().optional(),
47
+ summary: z.string().min(10),
48
+ nextActions: z.array(z.string()).min(1),
49
+ openThreads: z.array(z.string()).optional(),
50
+ }),
51
+ execute: async ({ sessionId = 'default', summary, nextActions, openThreads }) => {
52
+ const saved = await saveSessionHandoff(sessionId, {
53
+ summary,
54
+ nextActions,
55
+ openThreads: openThreads ?? [],
56
+ });
57
+ await appendNotebookMarkdown('Session handoff', `${summary}\n\nNext:\n${nextActions.map((a) => `- ${a}`).join('\n')}`);
58
+ return saved;
59
+ },
60
+ }),
61
+ generateSessionHandoff: tool({
62
+ description: 'Automatically synthesize a session handoff from recent chat turns.',
63
+ inputSchema: z.object({ sessionId: z.string().optional() }),
64
+ execute: async ({ sessionId = 'default' }) => {
65
+ emitProgress({ type: 'thinking', label: 'Generating session handoff' });
66
+ const turns = await loadTurns(sessionId);
67
+ const transcript = turns.slice(-12).map((t) => `${t.role}: ${t.content.slice(0, 400)}`).join('\n');
68
+ const result = await generateText({
69
+ model: models.manager,
70
+ prompt: `Create JSON only: {"summary":"...","nextActions":["..."],"openThreads":["..."]}\nFrom this session:\n${transcript || '(empty session)'}`,
71
+ });
72
+ let parsed = {};
73
+ try {
74
+ const match = result.text.match(/\{[\s\S]*\}/);
75
+ parsed = match ? JSON.parse(match[0]) : {};
76
+ }
77
+ catch {
78
+ parsed = { summary: result.text.trim(), nextActions: ['Continue previous task'] };
79
+ }
80
+ const saved = await saveSessionHandoff(sessionId, {
81
+ summary: parsed.summary || 'Session handoff',
82
+ nextActions: parsed.nextActions?.length ? parsed.nextActions : ['Review last conversation'],
83
+ openThreads: parsed.openThreads ?? [],
84
+ });
85
+ emitProgress({ type: 'done', label: 'Handoff saved' });
86
+ return saved;
87
+ },
88
+ }),
89
+ };
90
+ //# sourceMappingURL=session-continuity.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-continuity.tool.js","sourceRoot":"","sources":["../../src/tools/session-continuity.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ export declare function buildSituationBrief(sessionId?: string): Promise<{
2
+ sessionId: string;
3
+ cwd: string;
4
+ package: string;
5
+ platform: string;
6
+ workspace: string;
7
+ models: {
8
+ manager: string;
9
+ coding: string;
10
+ image: string;
11
+ overrides: Partial<Record<import("../config/model-store.js").ModelRole, string>>;
12
+ };
13
+ capabilities: {
14
+ gateway: boolean;
15
+ composio: boolean;
16
+ redis: boolean;
17
+ qstash: boolean;
18
+ jobs: boolean;
19
+ voice: boolean;
20
+ };
21
+ git: string;
22
+ recentJobs: {
23
+ id: string;
24
+ status: import("../server.js").JobStatus;
25
+ task: string;
26
+ }[];
27
+ memoryCount: number;
28
+ owner: string;
29
+ activeProjects: string[];
30
+ knowledgeNodes: number;
31
+ }>;
32
+ export declare const situationalAwarenessTools: {
33
+ getSituationBrief: import("ai").Tool<{
34
+ sessionId?: string | undefined;
35
+ }, {
36
+ sessionId: string;
37
+ cwd: string;
38
+ package: string;
39
+ platform: string;
40
+ workspace: string;
41
+ models: {
42
+ manager: string;
43
+ coding: string;
44
+ image: string;
45
+ overrides: Partial<Record<import("../config/model-store.js").ModelRole, string>>;
46
+ };
47
+ capabilities: {
48
+ gateway: boolean;
49
+ composio: boolean;
50
+ redis: boolean;
51
+ qstash: boolean;
52
+ jobs: boolean;
53
+ voice: boolean;
54
+ };
55
+ git: string;
56
+ recentJobs: {
57
+ id: string;
58
+ status: import("../server.js").JobStatus;
59
+ task: string;
60
+ }[];
61
+ memoryCount: number;
62
+ owner: string;
63
+ activeProjects: string[];
64
+ knowledgeNodes: number;
65
+ }>;
66
+ recallRelevantMemories: import("ai").Tool<{
67
+ query: string;
68
+ limit?: number | undefined;
69
+ }, import("../memory/long-term.js").LongTermMemory[]>;
70
+ };
71
+ //# sourceMappingURL=situational-awareness.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"situational-awareness.tool.d.ts","sourceRoot":"","sources":["../../src/tools/situational-awareness.tool.ts"],"names":[],"mappings":"AA0BA,wBAAsB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8C3D;AAED,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBrC,CAAC"}