@synergenius/flow-weaver-pack-weaver 0.9.124 → 0.9.126
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bot/ai-client.d.ts +30 -0
- package/dist/bot/ai-client.d.ts.map +1 -1
- package/dist/bot/ai-client.js +57 -14
- package/dist/bot/ai-client.js.map +1 -1
- package/dist/bot/system-prompt.js +1 -1
- package/dist/node-types/plan-task.d.ts.map +1 -1
- package/dist/node-types/plan-task.js +63 -25
- package/dist/node-types/plan-task.js.map +1 -1
- package/flowweaver.manifest.json +1 -1
- package/package.json +1 -1
- package/src/bot/ai-client.ts +97 -18
- package/src/bot/system-prompt.ts +1 -1
- package/src/node-types/plan-task.ts +66 -25
package/dist/bot/ai-client.d.ts
CHANGED
|
@@ -9,15 +9,45 @@ export declare function callCli(provider: string, prompt: string, model?: string
|
|
|
9
9
|
export declare function extractCliJsonResult(raw: string): string;
|
|
10
10
|
export declare function callCliAsync(provider: string, prompt: string, model?: string, systemPrompt?: string): Promise<string>;
|
|
11
11
|
export declare function callApi(apiKey: string, model: string, maxTokens: number, systemPrompt: string, userPrompt: string): Promise<string>;
|
|
12
|
+
export interface AiTool {
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
parameters: {
|
|
16
|
+
type: 'object';
|
|
17
|
+
properties: Record<string, unknown>;
|
|
18
|
+
required?: string[];
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export interface AiToolCall {
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
arguments: Record<string, unknown>;
|
|
25
|
+
}
|
|
26
|
+
export interface AiCallResult {
|
|
27
|
+
content: string;
|
|
28
|
+
toolCalls: AiToolCall[];
|
|
29
|
+
}
|
|
12
30
|
/**
|
|
13
31
|
* Call the platform-injected AI proxy (routes through IPC to the host process).
|
|
14
32
|
* Available when running inside the Studio sandbox.
|
|
15
33
|
*/
|
|
16
34
|
export declare function callPlatform(systemPrompt: string, userPrompt: string, model?: string, maxTokens?: number): Promise<string>;
|
|
35
|
+
/**
|
|
36
|
+
* Call the platform AI proxy with tool definitions.
|
|
37
|
+
* The AI can return text AND/OR structured tool calls.
|
|
38
|
+
* Works across providers (Anthropic tool_use, OpenAI function calling).
|
|
39
|
+
*/
|
|
40
|
+
export declare function callPlatformWithTools(systemPrompt: string, userPrompt: string, tools: AiTool[], model?: string, maxTokens?: number): Promise<AiCallResult>;
|
|
17
41
|
/**
|
|
18
42
|
* Unified AI call that dispatches to the right backend based on provider type.
|
|
19
43
|
*/
|
|
20
44
|
export declare function callAI(pInfo: Pick<ProviderInfo, 'type' | 'apiKey' | 'model' | 'maxTokens'>, systemPrompt: string, userPrompt: string, defaultMaxTokens?: number): Promise<string>;
|
|
45
|
+
/**
|
|
46
|
+
* Unified AI call with tool definitions. Returns text + structured tool calls.
|
|
47
|
+
* For providers that don't support native tool_use (CLI), falls back to text-only
|
|
48
|
+
* and the caller should parse JSON from the text content.
|
|
49
|
+
*/
|
|
50
|
+
export declare function callAIWithTools(pInfo: Pick<ProviderInfo, 'type' | 'apiKey' | 'model' | 'maxTokens'>, systemPrompt: string, userPrompt: string, tools: AiTool[], defaultMaxTokens?: number): Promise<AiCallResult>;
|
|
21
51
|
export declare function parseJsonResponse(text: string): Record<string, unknown>;
|
|
22
52
|
export interface NormalizedPlan {
|
|
23
53
|
steps: Array<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-client.d.ts","sourceRoot":"","sources":["../../src/bot/ai-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,oBAAoB,CAAC;AA6BtE,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAOvG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAoBxD;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqH3H;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAChD,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GACvC,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"ai-client.d.ts","sourceRoot":"","sources":["../../src/bot/ai-client.ts"],"names":[],"mappings":"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"}
|
package/dist/bot/ai-client.js
CHANGED
|
@@ -193,6 +193,25 @@ export async function callApi(apiKey, model, maxTokens, systemPrompt, userPrompt
|
|
|
193
193
|
const json = await response.json();
|
|
194
194
|
return json.content[0]?.text ?? '';
|
|
195
195
|
}
|
|
196
|
+
// ---------------------------------------------------------------------------
|
|
197
|
+
// Platform provider helpers
|
|
198
|
+
// ---------------------------------------------------------------------------
|
|
199
|
+
const AI_CALL_TIMEOUT_MS = 120_000; // 2 minutes per AI call
|
|
200
|
+
/** Report usage to runner's CostTracker via global callback. */
|
|
201
|
+
function reportUsage(response, model) {
|
|
202
|
+
const usage = response.usage;
|
|
203
|
+
if (!usage)
|
|
204
|
+
return;
|
|
205
|
+
const cb = globalThis.__fw_ai_usage_callback__;
|
|
206
|
+
if (cb) {
|
|
207
|
+
cb(model ?? 'platform', {
|
|
208
|
+
inputTokens: usage.promptTokens ?? 0,
|
|
209
|
+
outputTokens: usage.completionTokens ?? 0,
|
|
210
|
+
cacheCreationInputTokens: usage.cacheCreationInputTokens,
|
|
211
|
+
cacheReadInputTokens: usage.cacheReadInputTokens,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}
|
|
196
215
|
/**
|
|
197
216
|
* Call the platform-injected AI proxy (routes through IPC to the host process).
|
|
198
217
|
* Available when running inside the Studio sandbox.
|
|
@@ -205,24 +224,35 @@ export async function callPlatform(systemPrompt, userPrompt, model, maxTokens) {
|
|
|
205
224
|
{ role: 'system', content: systemPrompt },
|
|
206
225
|
{ role: 'user', content: userPrompt },
|
|
207
226
|
];
|
|
208
|
-
const AI_CALL_TIMEOUT_MS = 120_000; // 2 minutes per AI call
|
|
209
227
|
const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('AI call timeout (120s)')), AI_CALL_TIMEOUT_MS));
|
|
210
228
|
const response = await Promise.race([provider.chat(messages, { model, maxTokens }), timeoutPromise]);
|
|
211
|
-
|
|
212
|
-
// The callback is set by runner.ts before workflow execution.
|
|
213
|
-
if (response.usage) {
|
|
214
|
-
const cb = globalThis.__fw_ai_usage_callback__;
|
|
215
|
-
if (cb) {
|
|
216
|
-
cb(model ?? 'platform', {
|
|
217
|
-
inputTokens: response.usage.promptTokens ?? 0,
|
|
218
|
-
outputTokens: response.usage.completionTokens ?? 0,
|
|
219
|
-
cacheCreationInputTokens: response.usage.cacheCreationInputTokens,
|
|
220
|
-
cacheReadInputTokens: response.usage.cacheReadInputTokens,
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
}
|
|
229
|
+
reportUsage(response, model);
|
|
224
230
|
return response.content ?? '';
|
|
225
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* Call the platform AI proxy with tool definitions.
|
|
234
|
+
* The AI can return text AND/OR structured tool calls.
|
|
235
|
+
* Works across providers (Anthropic tool_use, OpenAI function calling).
|
|
236
|
+
*/
|
|
237
|
+
export async function callPlatformWithTools(systemPrompt, userPrompt, tools, model, maxTokens) {
|
|
238
|
+
const provider = globalThis.__fw_llm_provider__;
|
|
239
|
+
if (!provider)
|
|
240
|
+
throw new Error('Platform AI provider not available');
|
|
241
|
+
const messages = [
|
|
242
|
+
{ role: 'system', content: systemPrompt },
|
|
243
|
+
{ role: 'user', content: userPrompt },
|
|
244
|
+
];
|
|
245
|
+
const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('AI call timeout (120s)')), AI_CALL_TIMEOUT_MS));
|
|
246
|
+
const response = await Promise.race([
|
|
247
|
+
provider.chat(messages, { model, maxTokens, tools }),
|
|
248
|
+
timeoutPromise,
|
|
249
|
+
]);
|
|
250
|
+
reportUsage(response, model);
|
|
251
|
+
return {
|
|
252
|
+
content: response.content ?? '',
|
|
253
|
+
toolCalls: (response.toolCalls ?? []),
|
|
254
|
+
};
|
|
255
|
+
}
|
|
226
256
|
/**
|
|
227
257
|
* Unified AI call that dispatches to the right backend based on provider type.
|
|
228
258
|
*/
|
|
@@ -238,6 +268,19 @@ export async function callAI(pInfo, systemPrompt, userPrompt, defaultMaxTokens =
|
|
|
238
268
|
// (eliminates hallucination entirely — no retry needed).
|
|
239
269
|
return callCliAsync(pInfo.type, userPrompt, pInfo.model, systemPrompt);
|
|
240
270
|
}
|
|
271
|
+
/**
|
|
272
|
+
* Unified AI call with tool definitions. Returns text + structured tool calls.
|
|
273
|
+
* For providers that don't support native tool_use (CLI), falls back to text-only
|
|
274
|
+
* and the caller should parse JSON from the text content.
|
|
275
|
+
*/
|
|
276
|
+
export async function callAIWithTools(pInfo, systemPrompt, userPrompt, tools, defaultMaxTokens = 4096) {
|
|
277
|
+
if (pInfo.type === 'platform') {
|
|
278
|
+
return callPlatformWithTools(systemPrompt, userPrompt, tools, pInfo.model, pInfo.maxTokens ?? defaultMaxTokens);
|
|
279
|
+
}
|
|
280
|
+
// Fallback for providers without native tool_use: call as text, return empty toolCalls
|
|
281
|
+
const text = await callAI(pInfo, systemPrompt, userPrompt, defaultMaxTokens);
|
|
282
|
+
return { content: text, toolCalls: [] };
|
|
283
|
+
}
|
|
241
284
|
export function parseJsonResponse(text) {
|
|
242
285
|
let cleaned = text.trim();
|
|
243
286
|
if (cleaned.startsWith('```')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-client.js","sourceRoot":"","sources":["../../src/bot/ai-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai-client.js","sourceRoot":"","sources":["../../src/bot/ai-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -139,7 +139,7 @@ When stabilize mode is active, only fix-up operations are allowed.`);
|
|
|
139
139
|
USE TOOLS to complete tasks. Do NOT describe what you would do — actually do it by calling tools.
|
|
140
140
|
|
|
141
141
|
### File tools
|
|
142
|
-
-
|
|
142
|
+
- read-file, write-file, patch-file, list-files, run-shell, validate, tsc-check, run-tests
|
|
143
143
|
|
|
144
144
|
### Task management tools
|
|
145
145
|
- task_create, task_list, task_get, task_update
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-task.d.ts","sourceRoot":"","sources":["../../src/node-types/plan-task.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plan-task.d.ts","sourceRoot":"","sources":["../../src/node-types/plan-task.ts"],"names":[],"mappings":"AA0CA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CA8FD"}
|
|
@@ -1,5 +1,39 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { callAIWithTools, callTriage, parseJsonResponse, normalizePlan } from '../bot/ai-client.js';
|
|
2
2
|
import { auditEmit } from '../bot/audit-logger.js';
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Plan tool definition — passed via native tool_use so the AI returns
|
|
5
|
+
// structured JSON arguments instead of prose. Works across Anthropic and OpenAI.
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
const PLAN_TOOL = {
|
|
8
|
+
name: 'create_plan',
|
|
9
|
+
description: 'Create a structured execution plan for this task. Call this tool with the plan steps and summary.',
|
|
10
|
+
parameters: {
|
|
11
|
+
type: 'object',
|
|
12
|
+
properties: {
|
|
13
|
+
summary: { type: 'string', description: 'One-line summary of what the plan does' },
|
|
14
|
+
steps: {
|
|
15
|
+
type: 'array',
|
|
16
|
+
description: 'Ordered list of operations to execute',
|
|
17
|
+
items: {
|
|
18
|
+
type: 'object',
|
|
19
|
+
properties: {
|
|
20
|
+
operation: {
|
|
21
|
+
type: 'string',
|
|
22
|
+
description: 'Tool to invoke: write-file, read-file, patch-file, list-files, run-shell, validate, respond',
|
|
23
|
+
},
|
|
24
|
+
description: { type: 'string', description: 'What this step does' },
|
|
25
|
+
args: {
|
|
26
|
+
type: 'object',
|
|
27
|
+
description: 'Arguments for the operation (e.g. {file, content} for write_file, {file, find, replace} for patch_file)',
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
required: ['operation', 'description', 'args'],
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
required: ['summary', 'steps'],
|
|
35
|
+
},
|
|
36
|
+
};
|
|
3
37
|
/**
|
|
4
38
|
* Sends task + context to the AI provider and gets back a structured
|
|
5
39
|
* execution plan. The core AI planning node.
|
|
@@ -61,34 +95,38 @@ export async function weaverPlanTask(execute, ctx, modelOverride) {
|
|
|
61
95
|
}
|
|
62
96
|
const userPrompt = `Task: ${task.instruction}\nMode: ${task.mode ?? 'create'}\n${task.targets ? 'Targets: ' + task.targets.join(', ') : ''}
|
|
63
97
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
{ "steps": [{ "operation": "<tool_name>", "description": "<what>", "args": { ... } }], "summary": "<one-line summary>" }
|
|
67
|
-
\`\`\`
|
|
68
|
-
|
|
69
|
-
Available operations: write_file (args: file, content), read_file (args: file), patch_file (args: file, find, replace), list_files (args: directory), run_shell (args: command), validate (args: file), respond (args: response).
|
|
70
|
-
|
|
71
|
-
IMPORTANT rules:
|
|
98
|
+
Plan this task by calling the create_plan tool with concrete steps.
|
|
99
|
+
Rules:
|
|
72
100
|
1. Every step MUST have complete, concrete args — no empty patches, no placeholders.
|
|
73
|
-
2. For file creation tasks, use
|
|
74
|
-
3. If you need to discover file contents first, plan ONLY discovery steps (
|
|
75
|
-
4. Do NOT plan
|
|
101
|
+
2. For file creation tasks, use write-file with full file content in args.
|
|
102
|
+
3. If you need to discover file contents first, plan ONLY discovery steps (read-file, list-files).
|
|
103
|
+
4. Do NOT plan patch-file unless you know the exact find/replace strings.`;
|
|
76
104
|
try {
|
|
77
|
-
|
|
105
|
+
// Use native tool_use when available (Anthropic, OpenAI).
|
|
106
|
+
// The AI calls create_plan with structured args instead of returning prose.
|
|
107
|
+
const result = await callAIWithTools(pInfo, systemPrompt, userPrompt, [PLAN_TOOL], 8192);
|
|
78
108
|
let plan;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
109
|
+
// Check if AI used the create_plan tool (structured response)
|
|
110
|
+
const planCall = result.toolCalls.find(tc => tc.name === 'create_plan');
|
|
111
|
+
if (planCall) {
|
|
112
|
+
plan = normalizePlan(planCall.arguments);
|
|
82
113
|
}
|
|
83
|
-
|
|
84
|
-
//
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
114
|
+
else {
|
|
115
|
+
// Fallback: parse JSON from text content (CLI providers, or AI chose not to use tool)
|
|
116
|
+
const text = result.content;
|
|
117
|
+
try {
|
|
118
|
+
const raw = parseJsonResponse(text);
|
|
119
|
+
plan = normalizePlan(raw);
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
// LLM returned plain text — wrap as a text-response plan.
|
|
123
|
+
const trimmed = text.trim();
|
|
124
|
+
const firstLine = trimmed.split('\n')[0].slice(0, 120);
|
|
125
|
+
plan = {
|
|
126
|
+
steps: [{ id: 'step-1', operation: 'respond', description: firstLine, args: { response: trimmed } }],
|
|
127
|
+
summary: firstLine,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
92
130
|
}
|
|
93
131
|
console.log(`\x1b[36m→ Plan: ${plan.summary ?? 'generated'}\x1b[0m`);
|
|
94
132
|
auditEmit('plan-created', { summary: plan.summary, stepCount: plan.steps?.length ?? 0 });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-task.js","sourceRoot":"","sources":["../../src/node-types/plan-task.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"plan-task.js","sourceRoot":"","sources":["../../src/node-types/plan-task.ts"],"names":[],"mappings":"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"}
|
package/flowweaver.manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifestVersion": 2,
|
|
3
3
|
"name": "@synergenius/flow-weaver-pack-weaver",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.126",
|
|
5
5
|
"description": "AI bot for Flow Weaver. Execute tasks, run workflows, evolve autonomously.",
|
|
6
6
|
"engineVersion": ">=0.22.10",
|
|
7
7
|
"categories": [
|
package/package.json
CHANGED
package/src/bot/ai-client.ts
CHANGED
|
@@ -206,6 +206,50 @@ export async function callApi(
|
|
|
206
206
|
return json.content[0]?.text ?? '';
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
+
// ---------------------------------------------------------------------------
|
|
210
|
+
// Tool type (mirrors platform LLMTool, kept local to avoid cross-package dep)
|
|
211
|
+
// ---------------------------------------------------------------------------
|
|
212
|
+
|
|
213
|
+
export interface AiTool {
|
|
214
|
+
name: string;
|
|
215
|
+
description: string;
|
|
216
|
+
parameters: { type: 'object'; properties: Record<string, unknown>; required?: string[] };
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
export interface AiToolCall {
|
|
220
|
+
id: string;
|
|
221
|
+
name: string;
|
|
222
|
+
arguments: Record<string, unknown>;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
export interface AiCallResult {
|
|
226
|
+
content: string;
|
|
227
|
+
toolCalls: AiToolCall[];
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// ---------------------------------------------------------------------------
|
|
231
|
+
// Platform provider helpers
|
|
232
|
+
// ---------------------------------------------------------------------------
|
|
233
|
+
|
|
234
|
+
const AI_CALL_TIMEOUT_MS = 120_000; // 2 minutes per AI call
|
|
235
|
+
|
|
236
|
+
/** Report usage to runner's CostTracker via global callback. */
|
|
237
|
+
function reportUsage(response: Record<string, unknown>, model?: string): void {
|
|
238
|
+
const usage = response.usage as { promptTokens?: number; completionTokens?: number; cacheCreationInputTokens?: number; cacheReadInputTokens?: number } | undefined;
|
|
239
|
+
if (!usage) return;
|
|
240
|
+
const cb = (globalThis as Record<string, unknown>).__fw_ai_usage_callback__ as
|
|
241
|
+
| ((model: string, usage: { inputTokens: number; outputTokens: number; cacheCreationInputTokens?: number; cacheReadInputTokens?: number }) => void)
|
|
242
|
+
| undefined;
|
|
243
|
+
if (cb) {
|
|
244
|
+
cb(model ?? 'platform', {
|
|
245
|
+
inputTokens: usage.promptTokens ?? 0,
|
|
246
|
+
outputTokens: usage.completionTokens ?? 0,
|
|
247
|
+
cacheCreationInputTokens: usage.cacheCreationInputTokens,
|
|
248
|
+
cacheReadInputTokens: usage.cacheReadInputTokens,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
209
253
|
/**
|
|
210
254
|
* Call the platform-injected AI proxy (routes through IPC to the host process).
|
|
211
255
|
* Available when running inside the Studio sandbox.
|
|
@@ -222,31 +266,46 @@ export async function callPlatform(
|
|
|
222
266
|
{ role: 'system', content: systemPrompt },
|
|
223
267
|
{ role: 'user', content: userPrompt },
|
|
224
268
|
];
|
|
225
|
-
const AI_CALL_TIMEOUT_MS = 120_000; // 2 minutes per AI call
|
|
226
269
|
const timeoutPromise = new Promise<never>((_, reject) =>
|
|
227
270
|
setTimeout(() => reject(new Error('AI call timeout (120s)')), AI_CALL_TIMEOUT_MS),
|
|
228
271
|
);
|
|
229
272
|
const response = await Promise.race([provider.chat(messages, { model, maxTokens }), timeoutPromise]);
|
|
230
|
-
|
|
231
|
-
// Report usage via global callback so the runner's CostTracker can pick it up.
|
|
232
|
-
// The callback is set by runner.ts before workflow execution.
|
|
233
|
-
if (response.usage) {
|
|
234
|
-
const cb = (globalThis as Record<string, unknown>).__fw_ai_usage_callback__ as
|
|
235
|
-
| ((model: string, usage: { inputTokens: number; outputTokens: number; cacheCreationInputTokens?: number; cacheReadInputTokens?: number }) => void)
|
|
236
|
-
| undefined;
|
|
237
|
-
if (cb) {
|
|
238
|
-
cb(model ?? 'platform', {
|
|
239
|
-
inputTokens: response.usage.promptTokens ?? 0,
|
|
240
|
-
outputTokens: response.usage.completionTokens ?? 0,
|
|
241
|
-
cacheCreationInputTokens: response.usage.cacheCreationInputTokens,
|
|
242
|
-
cacheReadInputTokens: response.usage.cacheReadInputTokens,
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
|
|
273
|
+
reportUsage(response, model);
|
|
247
274
|
return response.content ?? '';
|
|
248
275
|
}
|
|
249
276
|
|
|
277
|
+
/**
|
|
278
|
+
* Call the platform AI proxy with tool definitions.
|
|
279
|
+
* The AI can return text AND/OR structured tool calls.
|
|
280
|
+
* Works across providers (Anthropic tool_use, OpenAI function calling).
|
|
281
|
+
*/
|
|
282
|
+
export async function callPlatformWithTools(
|
|
283
|
+
systemPrompt: string,
|
|
284
|
+
userPrompt: string,
|
|
285
|
+
tools: AiTool[],
|
|
286
|
+
model?: string,
|
|
287
|
+
maxTokens?: number,
|
|
288
|
+
): Promise<AiCallResult> {
|
|
289
|
+
const provider = (globalThis as any).__fw_llm_provider__;
|
|
290
|
+
if (!provider) throw new Error('Platform AI provider not available');
|
|
291
|
+
const messages = [
|
|
292
|
+
{ role: 'system', content: systemPrompt },
|
|
293
|
+
{ role: 'user', content: userPrompt },
|
|
294
|
+
];
|
|
295
|
+
const timeoutPromise = new Promise<never>((_, reject) =>
|
|
296
|
+
setTimeout(() => reject(new Error('AI call timeout (120s)')), AI_CALL_TIMEOUT_MS),
|
|
297
|
+
);
|
|
298
|
+
const response = await Promise.race([
|
|
299
|
+
provider.chat(messages, { model, maxTokens, tools }),
|
|
300
|
+
timeoutPromise,
|
|
301
|
+
]);
|
|
302
|
+
reportUsage(response, model);
|
|
303
|
+
return {
|
|
304
|
+
content: response.content ?? '',
|
|
305
|
+
toolCalls: (response.toolCalls ?? []) as AiToolCall[],
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
|
|
250
309
|
/**
|
|
251
310
|
* Unified AI call that dispatches to the right backend based on provider type.
|
|
252
311
|
*/
|
|
@@ -274,6 +333,26 @@ export async function callAI(
|
|
|
274
333
|
return callCliAsync(pInfo.type, userPrompt, pInfo.model, systemPrompt);
|
|
275
334
|
}
|
|
276
335
|
|
|
336
|
+
/**
|
|
337
|
+
* Unified AI call with tool definitions. Returns text + structured tool calls.
|
|
338
|
+
* For providers that don't support native tool_use (CLI), falls back to text-only
|
|
339
|
+
* and the caller should parse JSON from the text content.
|
|
340
|
+
*/
|
|
341
|
+
export async function callAIWithTools(
|
|
342
|
+
pInfo: Pick<ProviderInfo, 'type' | 'apiKey' | 'model' | 'maxTokens'>,
|
|
343
|
+
systemPrompt: string,
|
|
344
|
+
userPrompt: string,
|
|
345
|
+
tools: AiTool[],
|
|
346
|
+
defaultMaxTokens = 4096,
|
|
347
|
+
): Promise<AiCallResult> {
|
|
348
|
+
if (pInfo.type === 'platform') {
|
|
349
|
+
return callPlatformWithTools(systemPrompt, userPrompt, tools, pInfo.model, pInfo.maxTokens ?? defaultMaxTokens);
|
|
350
|
+
}
|
|
351
|
+
// Fallback for providers without native tool_use: call as text, return empty toolCalls
|
|
352
|
+
const text = await callAI(pInfo, systemPrompt, userPrompt, defaultMaxTokens);
|
|
353
|
+
return { content: text, toolCalls: [] };
|
|
354
|
+
}
|
|
355
|
+
|
|
277
356
|
export function parseJsonResponse(text: string): Record<string, unknown> {
|
|
278
357
|
let cleaned = text.trim();
|
|
279
358
|
if (cleaned.startsWith('```')) {
|
package/src/bot/system-prompt.ts
CHANGED
|
@@ -197,7 +197,7 @@ When stabilize mode is active, only fix-up operations are allowed.`);
|
|
|
197
197
|
USE TOOLS to complete tasks. Do NOT describe what you would do — actually do it by calling tools.
|
|
198
198
|
|
|
199
199
|
### File tools
|
|
200
|
-
-
|
|
200
|
+
- read-file, write-file, patch-file, list-files, run-shell, validate, tsc-check, run-tests
|
|
201
201
|
|
|
202
202
|
### Task management tools
|
|
203
203
|
- task_create, task_list, task_get, task_update
|
|
@@ -1,8 +1,45 @@
|
|
|
1
1
|
import type { WeaverContext } from '../bot/types.js';
|
|
2
|
-
import { callAI, callTriage, parseJsonResponse, normalizePlan } from '../bot/ai-client.js';
|
|
2
|
+
import { callAI, callAIWithTools, callTriage, parseJsonResponse, normalizePlan } from '../bot/ai-client.js';
|
|
3
|
+
import type { AiTool } from '../bot/ai-client.js';
|
|
3
4
|
import { auditEmit } from '../bot/audit-logger.js';
|
|
4
5
|
import type { PromptSection } from '../bot/system-prompt.js';
|
|
5
6
|
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Plan tool definition — passed via native tool_use so the AI returns
|
|
9
|
+
// structured JSON arguments instead of prose. Works across Anthropic and OpenAI.
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
const PLAN_TOOL: AiTool = {
|
|
13
|
+
name: 'create_plan',
|
|
14
|
+
description: 'Create a structured execution plan for this task. Call this tool with the plan steps and summary.',
|
|
15
|
+
parameters: {
|
|
16
|
+
type: 'object',
|
|
17
|
+
properties: {
|
|
18
|
+
summary: { type: 'string', description: 'One-line summary of what the plan does' },
|
|
19
|
+
steps: {
|
|
20
|
+
type: 'array',
|
|
21
|
+
description: 'Ordered list of operations to execute',
|
|
22
|
+
items: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
operation: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'Tool to invoke: write-file, read-file, patch-file, list-files, run-shell, validate, respond',
|
|
28
|
+
},
|
|
29
|
+
description: { type: 'string', description: 'What this step does' },
|
|
30
|
+
args: {
|
|
31
|
+
type: 'object',
|
|
32
|
+
description: 'Arguments for the operation (e.g. {file, content} for write_file, {file, find, replace} for patch_file)',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
required: ['operation', 'description', 'args'],
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
required: ['summary', 'steps'],
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
|
|
6
43
|
/**
|
|
7
44
|
* Sends task + context to the AI provider and gets back a structured
|
|
8
45
|
* execution plan. The core AI planning node.
|
|
@@ -73,35 +110,39 @@ export async function weaverPlanTask(
|
|
|
73
110
|
|
|
74
111
|
const userPrompt = `Task: ${task.instruction}\nMode: ${task.mode ?? 'create'}\n${task.targets ? 'Targets: ' + task.targets.join(', ') : ''}
|
|
75
112
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
{ "steps": [{ "operation": "<tool_name>", "description": "<what>", "args": { ... } }], "summary": "<one-line summary>" }
|
|
79
|
-
\`\`\`
|
|
80
|
-
|
|
81
|
-
Available operations: write_file (args: file, content), read_file (args: file), patch_file (args: file, find, replace), list_files (args: directory), run_shell (args: command), validate (args: file), respond (args: response).
|
|
82
|
-
|
|
83
|
-
IMPORTANT rules:
|
|
113
|
+
Plan this task by calling the create_plan tool with concrete steps.
|
|
114
|
+
Rules:
|
|
84
115
|
1. Every step MUST have complete, concrete args — no empty patches, no placeholders.
|
|
85
|
-
2. For file creation tasks, use
|
|
86
|
-
3. If you need to discover file contents first, plan ONLY discovery steps (
|
|
87
|
-
4. Do NOT plan
|
|
116
|
+
2. For file creation tasks, use write-file with full file content in args.
|
|
117
|
+
3. If you need to discover file contents first, plan ONLY discovery steps (read-file, list-files).
|
|
118
|
+
4. Do NOT plan patch-file unless you know the exact find/replace strings.`;
|
|
88
119
|
|
|
89
120
|
try {
|
|
90
|
-
|
|
121
|
+
// Use native tool_use when available (Anthropic, OpenAI).
|
|
122
|
+
// The AI calls create_plan with structured args instead of returning prose.
|
|
123
|
+
const result = await callAIWithTools(pInfo, systemPrompt, userPrompt, [PLAN_TOOL], 8192);
|
|
91
124
|
|
|
92
125
|
let plan: { steps: Array<{ id: string; operation: string; description: string; args: Record<string, unknown> }>; summary: string };
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
126
|
+
|
|
127
|
+
// Check if AI used the create_plan tool (structured response)
|
|
128
|
+
const planCall = result.toolCalls.find(tc => tc.name === 'create_plan');
|
|
129
|
+
if (planCall) {
|
|
130
|
+
plan = normalizePlan(planCall.arguments);
|
|
131
|
+
} else {
|
|
132
|
+
// Fallback: parse JSON from text content (CLI providers, or AI chose not to use tool)
|
|
133
|
+
const text = result.content;
|
|
134
|
+
try {
|
|
135
|
+
const raw = parseJsonResponse(text);
|
|
136
|
+
plan = normalizePlan(raw);
|
|
137
|
+
} catch {
|
|
138
|
+
// LLM returned plain text — wrap as a text-response plan.
|
|
139
|
+
const trimmed = text.trim();
|
|
140
|
+
const firstLine = trimmed.split('\n')[0].slice(0, 120);
|
|
141
|
+
plan = {
|
|
142
|
+
steps: [{ id: 'step-1', operation: 'respond', description: firstLine, args: { response: trimmed } }],
|
|
143
|
+
summary: firstLine,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
105
146
|
}
|
|
106
147
|
console.log(`\x1b[36m→ Plan: ${plan.summary ?? 'generated'}\x1b[0m`);
|
|
107
148
|
auditEmit('plan-created', { summary: plan.summary, stepCount: plan.steps?.length ?? 0 });
|