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.
- package/SDK.md +320 -0
- package/agent-docs.md +12 -0
- package/dist/agents/automation-planner.agent.d.ts +4 -4
- package/dist/agents/automation-planner.agent.d.ts.map +1 -1
- package/dist/agents/coding.agent.d.ts +102 -0
- package/dist/agents/coding.agent.d.ts.map +1 -1
- package/dist/agents/coding.agent.js +89 -5
- package/dist/agents/coding.agent.js.map +1 -1
- package/dist/agents/image.agent.d.ts +13 -0
- package/dist/agents/image.agent.d.ts.map +1 -1
- package/dist/agents/image.agent.js +39 -3
- package/dist/agents/image.agent.js.map +1 -1
- package/dist/agents/manager.d.ts +157 -5
- package/dist/agents/manager.d.ts.map +1 -1
- package/dist/agents/manager.js +16 -4
- package/dist/agents/manager.js.map +1 -1
- package/dist/agents/security.agent.d.ts +2 -2
- package/dist/cli/composer.d.ts +3 -0
- package/dist/cli/composer.d.ts.map +1 -0
- package/dist/cli/composer.js +11 -0
- package/dist/cli/composer.js.map +1 -0
- package/dist/cli/format.d.ts.map +1 -1
- package/dist/cli/format.js +29 -3
- package/dist/cli/format.js.map +1 -1
- package/dist/cli/interactive.d.ts.map +1 -1
- package/dist/cli/interactive.js +65 -14
- package/dist/cli/interactive.js.map +1 -1
- package/dist/cli/models.d.ts +17 -0
- package/dist/cli/models.d.ts.map +1 -0
- package/dist/cli/models.js +116 -0
- package/dist/cli/models.js.map +1 -0
- package/dist/cli/render.d.ts +13 -0
- package/dist/cli/render.d.ts.map +1 -0
- package/dist/cli/render.js +59 -0
- package/dist/cli/render.js.map +1 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +23 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/theme.d.ts +23 -0
- package/dist/cli/theme.d.ts.map +1 -0
- package/dist/cli/theme.js +34 -0
- package/dist/cli/theme.js.map +1 -0
- package/dist/cli/triggers.d.ts.map +1 -1
- package/dist/cli/triggers.js +26 -16
- package/dist/cli/triggers.js.map +1 -1
- package/dist/config/model-store.d.ts +14 -0
- package/dist/config/model-store.d.ts.map +1 -0
- package/dist/config/model-store.js +60 -0
- package/dist/config/model-store.js.map +1 -0
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +14 -11
- package/dist/config/models.js.map +1 -1
- package/dist/index.js +9 -13
- package/dist/index.js.map +1 -1
- package/dist/jobs/trigger-router.d.ts.map +1 -1
- package/dist/jobs/trigger-router.js +8 -3
- package/dist/jobs/trigger-router.js.map +1 -1
- package/dist/server.d.ts +49 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +13 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/code-intelligence.tool.d.ts +68 -0
- package/dist/tools/code-intelligence.tool.d.ts.map +1 -0
- package/dist/tools/code-intelligence.tool.js +176 -0
- package/dist/tools/code-intelligence.tool.js.map +1 -0
- package/dist/tools/computer-use.tool.d.ts +2 -2
- package/dist/tools/computer-use.tool.js +66 -66
- package/dist/tools/image-generate.tool.d.ts +10 -0
- package/dist/tools/image-generate.tool.d.ts.map +1 -1
- package/dist/tools/image-generate.tool.js +115 -22
- package/dist/tools/image-generate.tool.js.map +1 -1
- package/dist/tools/notebook.tool.js +5 -5
- package/dist/tools/notebook.tool.js.map +1 -1
- package/dist/tools/osint-install.tool.js +8 -8
- package/dist/tools/osint.tool.d.ts +4 -4
- package/dist/tools/session-continuity.tool.d.ts +25 -0
- package/dist/tools/session-continuity.tool.d.ts.map +1 -0
- package/dist/tools/session-continuity.tool.js +90 -0
- package/dist/tools/session-continuity.tool.js.map +1 -0
- package/dist/tools/situational-awareness.tool.d.ts +71 -0
- package/dist/tools/situational-awareness.tool.d.ts.map +1 -0
- package/dist/tools/situational-awareness.tool.js +90 -0
- package/dist/tools/situational-awareness.tool.js.map +1 -0
- package/dist/tools/triggers.tool.d.ts +4 -4
- package/dist/tools/triggers.tool.d.ts.map +1 -1
- package/dist/tools/weather.tool.d.ts +88 -0
- package/dist/tools/weather.tool.d.ts.map +1 -0
- package/dist/tools/weather.tool.js +228 -0
- package/dist/tools/weather.tool.js.map +1 -0
- package/package.json +8 -3
- package/scripts/release-github.mjs +12 -11
- 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;
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
113
|
+
prompt: buildImagePrompt(prompt, inputs),
|
|
51
114
|
...(size ? { size } : {}),
|
|
52
115
|
providerOptions: {
|
|
53
116
|
gateway: {
|
|
54
|
-
tags: ['zilo-manager',
|
|
117
|
+
tags: ['zilo-manager', `feature:image-${operation}`, 'model:openai'],
|
|
55
118
|
},
|
|
56
119
|
},
|
|
57
120
|
});
|
|
58
|
-
const saved =
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
|
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":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
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
|
|
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: '
|
|
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
|
|
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
|
|
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":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,YAAY,EAAE,IAAI,CAAC;QACjB,WAAW,EAAE,
|
|
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: "
|
|
31
|
+
format: "json" | "csv" | "pdf" | "html" | "txt";
|
|
32
32
|
tags?: string | undefined;
|
|
33
33
|
}, {
|
|
34
34
|
username: string;
|
|
35
35
|
outputDir: string;
|
|
36
|
-
format: "
|
|
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: "
|
|
394
|
+
format: "json" | "csv" | "pdf" | "html" | "txt";
|
|
395
395
|
tags?: string | undefined;
|
|
396
396
|
}, {
|
|
397
397
|
username: string;
|
|
398
398
|
outputDir: string;
|
|
399
|
-
format: "
|
|
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"}
|