funolio-agent 0.12.2 → 0.13.0
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/backfill.d.ts +71 -0
- package/dist/backfill.d.ts.map +1 -0
- package/dist/backfill.js +637 -0
- package/dist/backfill.js.map +1 -0
- package/dist/clerk-model.d.ts +28 -2
- package/dist/clerk-model.d.ts.map +1 -1
- package/dist/clerk-model.js +90 -29
- package/dist/clerk-model.js.map +1 -1
- package/dist/cli.js +36 -0
- package/dist/cli.js.map +1 -1
- package/dist/config-cleanup.d.ts +35 -0
- package/dist/config-cleanup.d.ts.map +1 -0
- package/dist/config-cleanup.js +167 -0
- package/dist/config-cleanup.js.map +1 -0
- package/dist/context-window.d.ts +79 -0
- package/dist/context-window.d.ts.map +1 -0
- package/dist/context-window.js +192 -0
- package/dist/context-window.js.map +1 -0
- package/dist/local-data.d.ts +110 -0
- package/dist/local-data.d.ts.map +1 -1
- package/dist/local-data.js +219 -3
- package/dist/local-data.js.map +1 -1
- package/dist/local-db.d.ts.map +1 -1
- package/dist/local-db.js +116 -3
- package/dist/local-db.js.map +1 -1
- package/dist/local-server.d.ts.map +1 -1
- package/dist/local-server.js +567 -29
- package/dist/local-server.js.map +1 -1
- package/dist/mcp/claude-config-writer.d.ts +28 -0
- package/dist/mcp/claude-config-writer.d.ts.map +1 -0
- package/dist/mcp/claude-config-writer.js +125 -0
- package/dist/mcp/claude-config-writer.js.map +1 -0
- package/dist/mcp/local-memory-server.d.ts.map +1 -1
- package/dist/mcp/local-memory-server.js +27 -2
- package/dist/mcp/local-memory-server.js.map +1 -1
- package/dist/mcp/manager.d.ts +4 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +19 -0
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/marketplace.d.ts +52 -0
- package/dist/mcp/marketplace.d.ts.map +1 -0
- package/dist/mcp/marketplace.js +144 -0
- package/dist/mcp/marketplace.js.map +1 -0
- package/dist/orchestration/safeguards.d.ts +29 -0
- package/dist/orchestration/safeguards.d.ts.map +1 -0
- package/dist/orchestration/safeguards.js +32 -0
- package/dist/orchestration/safeguards.js.map +1 -0
- package/dist/orchestration/status-parser.d.ts +10 -6
- package/dist/orchestration/status-parser.d.ts.map +1 -1
- package/dist/orchestration/status-parser.js +35 -19
- package/dist/orchestration/status-parser.js.map +1 -1
- package/dist/orchestration/topic-normalizer.d.ts +15 -0
- package/dist/orchestration/topic-normalizer.d.ts.map +1 -0
- package/dist/orchestration/topic-normalizer.js +65 -0
- package/dist/orchestration/topic-normalizer.js.map +1 -0
- package/dist/providers/claude-cli.d.ts.map +1 -1
- package/dist/providers/claude-cli.js +8 -1
- package/dist/providers/claude-cli.js.map +1 -1
- package/dist/summarization-pipeline.d.ts +39 -0
- package/dist/summarization-pipeline.d.ts.map +1 -0
- package/dist/summarization-pipeline.js +280 -0
- package/dist/summarization-pipeline.js.map +1 -0
- package/dist/tools/search-local-memory.d.ts.map +1 -1
- package/dist/tools/search-local-memory.js +34 -2
- package/dist/tools/search-local-memory.js.map +1 -1
- package/dist/workflow-engine.d.ts +6 -0
- package/dist/workflow-engine.d.ts.map +1 -1
- package/dist/workflow-engine.js +174 -11
- package/dist/workflow-engine.js.map +1 -1
- package/package.json +1 -1
package/dist/workflow-engine.js
CHANGED
|
@@ -52,10 +52,12 @@ const index_1 = require("./providers/index");
|
|
|
52
52
|
const index_2 = require("./index");
|
|
53
53
|
const approval_1 = require("./approval");
|
|
54
54
|
const clerk_model_1 = require("./clerk-model");
|
|
55
|
+
const status_parser_1 = require("./orchestration/status-parser");
|
|
56
|
+
const safeguards_1 = require("./orchestration/safeguards");
|
|
55
57
|
const data = __importStar(require("./local-data"));
|
|
56
58
|
// ─── Workflow Engine ─────────────────────────────────────────────
|
|
57
|
-
const MAX_STEP_ATTEMPTS =
|
|
58
|
-
const MAX_STEPS =
|
|
59
|
+
const MAX_STEP_ATTEMPTS = safeguards_1.SAFEGUARDS.MAX_AGENT_ATTEMPTS;
|
|
60
|
+
const MAX_STEPS = safeguards_1.SAFEGUARDS.MAX_WORKFLOW_STEPS;
|
|
59
61
|
class WorkflowEngine extends events_1.EventEmitter {
|
|
60
62
|
projectDir;
|
|
61
63
|
activeWorkflows = new Map();
|
|
@@ -100,12 +102,44 @@ class WorkflowEngine extends events_1.EventEmitter {
|
|
|
100
102
|
}];
|
|
101
103
|
}
|
|
102
104
|
this.activeWorkflows.set(workflowId, steps);
|
|
105
|
+
// Persist workflow execution record
|
|
106
|
+
try {
|
|
107
|
+
data.createWorkflowExecution({
|
|
108
|
+
id: workflowId,
|
|
109
|
+
conversationId: conversationId || undefined,
|
|
110
|
+
totalSteps: steps.length,
|
|
111
|
+
});
|
|
112
|
+
// Pre-create step execution records
|
|
113
|
+
for (const step of steps) {
|
|
114
|
+
const agentProfile = data.getAgentProfile(step.agentId);
|
|
115
|
+
const stepExec = data.createStepExecution({
|
|
116
|
+
workflowExecutionId: workflowId,
|
|
117
|
+
stepIndex: step.index,
|
|
118
|
+
agentId: step.agentId,
|
|
119
|
+
agentName: step.agentName,
|
|
120
|
+
role: agentProfile?.role_class || undefined,
|
|
121
|
+
description: step.description,
|
|
122
|
+
});
|
|
123
|
+
step._execId = stepExec.id; // Track DB row ID on in-memory step
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch { /* best effort — DB may not be available */ }
|
|
103
127
|
// Execute steps respecting dependencies
|
|
104
128
|
await this.executeSteps(workflowId, steps, conversationId, opts);
|
|
105
129
|
const completedSteps = steps.filter(s => s.status === 'completed');
|
|
106
130
|
const failedSteps = steps.filter(s => s.status === 'failed');
|
|
107
131
|
const status = failedSteps.length === 0 ? 'completed' :
|
|
108
132
|
completedSteps.length > 0 ? 'partial' : 'failed';
|
|
133
|
+
// Finalize workflow execution record
|
|
134
|
+
try {
|
|
135
|
+
data.updateWorkflowExecution(workflowId, {
|
|
136
|
+
status,
|
|
137
|
+
completedSteps: completedSteps.length,
|
|
138
|
+
completedAt: new Date().toISOString().replace('T', ' ').replace('Z', ''),
|
|
139
|
+
error: failedSteps.length > 0 ? failedSteps.map(s => s.error).filter(Boolean).join('; ') : undefined,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
catch { /* best effort */ }
|
|
109
143
|
const result = {
|
|
110
144
|
id: workflowId,
|
|
111
145
|
status,
|
|
@@ -192,6 +226,7 @@ Rules:
|
|
|
192
226
|
}
|
|
193
227
|
/**
|
|
194
228
|
* Execute workflow steps respecting dependency order.
|
|
229
|
+
* Handles checkpoint loop-back and UNKNOWN retry logic.
|
|
195
230
|
*/
|
|
196
231
|
async executeSteps(workflowId, steps, conversationId, opts) {
|
|
197
232
|
const completed = new Set();
|
|
@@ -212,12 +247,14 @@ Rules:
|
|
|
212
247
|
}
|
|
213
248
|
// Execute ready steps in parallel
|
|
214
249
|
await Promise.all(ready.map(async (step) => {
|
|
215
|
-
// Build context from completed dependency results
|
|
250
|
+
// Build context from completed dependency results — pass only RESULT artifact
|
|
216
251
|
let handoffContext = '';
|
|
217
252
|
for (const depIndex of step.dependsOn) {
|
|
218
253
|
const depStep = steps[depIndex];
|
|
219
254
|
if (depStep?.result) {
|
|
220
|
-
|
|
255
|
+
const footer = (0, status_parser_1.parseStructuredFooter)(depStep.result);
|
|
256
|
+
const artifact = footer.result || depStep.result;
|
|
257
|
+
handoffContext += `\n\n[Result from "${depStep.description}"]\n${artifact}`;
|
|
221
258
|
}
|
|
222
259
|
}
|
|
223
260
|
// Inject pinned context into every step (pin propagation)
|
|
@@ -243,18 +280,125 @@ Rules:
|
|
|
243
280
|
step.status = 'running';
|
|
244
281
|
step.startedAt = Date.now();
|
|
245
282
|
this.emitProgress(workflowId, step, steps, 'step-started', opts?.onProgress);
|
|
283
|
+
// Persist step start
|
|
284
|
+
try {
|
|
285
|
+
const execId = step._execId;
|
|
286
|
+
if (execId)
|
|
287
|
+
data.updateStepExecution(execId, { status: 'running', startedAt: new Date().toISOString().replace('T', ' ').replace('Z', '') });
|
|
288
|
+
}
|
|
289
|
+
catch { /* best effort */ }
|
|
246
290
|
try {
|
|
247
|
-
|
|
291
|
+
// Build previous steps summary for workflow context
|
|
292
|
+
const prevStepsText = steps
|
|
293
|
+
.filter(s => s.status === 'completed' && s.index < step.index)
|
|
294
|
+
.map(s => {
|
|
295
|
+
const footer = s.result ? (0, status_parser_1.parseStructuredFooter)(s.result) : null;
|
|
296
|
+
return `${s.agentName}: ${s.description} (${footer?.status || 'COMPLETE'})`;
|
|
297
|
+
})
|
|
298
|
+
.join(', ') || undefined;
|
|
299
|
+
const wfContext = {
|
|
300
|
+
workflowId,
|
|
301
|
+
stepIndex: step.index,
|
|
302
|
+
totalSteps: steps.length,
|
|
303
|
+
currentAgent: step.agentName,
|
|
304
|
+
pipelineState: `step ${step.index + 1} of ${steps.length}: ${step.description}`,
|
|
305
|
+
previousSteps: prevStepsText,
|
|
306
|
+
retryCount: step.attempts,
|
|
307
|
+
loopCount: step.loopCount,
|
|
308
|
+
};
|
|
309
|
+
const result = await this.executeStep(step, fullPrompt, conversationId, opts?.apiKey, wfContext);
|
|
310
|
+
const footer = (0, status_parser_1.parseStructuredFooter)(result);
|
|
311
|
+
// ─── Checkpoint logic ──────────────────────────────
|
|
312
|
+
if (step.isCheckpoint) {
|
|
313
|
+
const maxLoops = step.maxLoops ?? safeguards_1.SAFEGUARDS.MAX_QA_LOOPS;
|
|
314
|
+
step.loopCount = (step.loopCount || 0);
|
|
315
|
+
if (footer.status === 'FAIL' && step.loopCount < maxLoops) {
|
|
316
|
+
// Loop back to the specified step index
|
|
317
|
+
step.loopCount++;
|
|
318
|
+
step.result = result;
|
|
319
|
+
const loopBackIndex = step.onFailStepIndex ?? step.index;
|
|
320
|
+
// Reset the loop-back target step and all steps between it and this one
|
|
321
|
+
for (let i = loopBackIndex; i <= step.index; i++) {
|
|
322
|
+
steps[i].status = 'pending';
|
|
323
|
+
steps[i].result = undefined;
|
|
324
|
+
steps[i].error = undefined;
|
|
325
|
+
completed.delete(i);
|
|
326
|
+
}
|
|
327
|
+
this.emitProgress(workflowId, step, steps, 'step-progress', opts?.onProgress);
|
|
328
|
+
return; // Don't mark completed — will re-run
|
|
329
|
+
}
|
|
330
|
+
if (footer.status === 'FAIL' && step.loopCount >= maxLoops) {
|
|
331
|
+
step.status = 'failed';
|
|
332
|
+
step.result = result;
|
|
333
|
+
step.error = `Checkpoint failed after ${maxLoops} loops`;
|
|
334
|
+
step.completedAt = Date.now();
|
|
335
|
+
failed.add(step.index);
|
|
336
|
+
this.emitProgress(workflowId, step, steps, 'step-failed', opts?.onProgress);
|
|
337
|
+
try {
|
|
338
|
+
const execId = step._execId;
|
|
339
|
+
if (execId)
|
|
340
|
+
data.updateStepExecution(execId, { status: 'failed', loopCount: step.loopCount, error: step.error, completedAt: new Date().toISOString().replace('T', ' ').replace('Z', '') });
|
|
341
|
+
}
|
|
342
|
+
catch { /* best effort */ }
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
// ─── UNKNOWN + REASON retry logic ──────────────────
|
|
347
|
+
if (footer.status === 'UNKNOWN' && footer.reason) {
|
|
348
|
+
step.attempts++;
|
|
349
|
+
if (step.attempts < step.maxAttempts) {
|
|
350
|
+
step.status = 'pending';
|
|
351
|
+
step.error = `UNKNOWN: ${footer.reason}`;
|
|
352
|
+
step.result = result;
|
|
353
|
+
return; // Retry
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
step.status = 'failed';
|
|
357
|
+
step.result = result;
|
|
358
|
+
step.error = `UNKNOWN after ${step.maxAttempts} attempts: ${footer.reason}`;
|
|
359
|
+
step.completedAt = Date.now();
|
|
360
|
+
failed.add(step.index);
|
|
361
|
+
// Mark dependent steps as skipped
|
|
362
|
+
for (const s of steps) {
|
|
363
|
+
if (s.dependsOn.includes(step.index) && s.status === 'pending') {
|
|
364
|
+
s.status = 'skipped';
|
|
365
|
+
s.error = `Dependency returned UNKNOWN: ${footer.reason}`;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
this.emitProgress(workflowId, step, steps, 'step-failed', opts?.onProgress);
|
|
369
|
+
try {
|
|
370
|
+
const execId = step._execId;
|
|
371
|
+
if (execId)
|
|
372
|
+
data.updateStepExecution(execId, { status: 'failed', attempts: step.attempts, error: step.error, completedAt: new Date().toISOString().replace('T', ' ').replace('Z', '') });
|
|
373
|
+
}
|
|
374
|
+
catch { /* best effort */ }
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
// ─── Normal completion ─────────────────────────────
|
|
248
379
|
step.status = 'completed';
|
|
249
380
|
step.result = result;
|
|
250
381
|
step.completedAt = Date.now();
|
|
251
382
|
completed.add(step.index);
|
|
252
383
|
this.emitProgress(workflowId, step, steps, 'step-completed', opts?.onProgress);
|
|
384
|
+
// Persist step completion
|
|
385
|
+
try {
|
|
386
|
+
const execId = step._execId;
|
|
387
|
+
if (execId) {
|
|
388
|
+
data.updateStepExecution(execId, {
|
|
389
|
+
status: 'completed',
|
|
390
|
+
attempts: step.attempts,
|
|
391
|
+
resultSummary: footer.summary || (result.length > 200 ? result.slice(0, 200) + '...' : result),
|
|
392
|
+
completedAt: new Date().toISOString().replace('T', ' ').replace('Z', ''),
|
|
393
|
+
});
|
|
394
|
+
data.updateWorkflowExecution(workflowId, { completedSteps: completed.size });
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
catch { /* best effort */ }
|
|
253
398
|
}
|
|
254
399
|
catch (err) {
|
|
255
400
|
step.attempts++;
|
|
256
401
|
if (step.attempts < step.maxAttempts) {
|
|
257
|
-
// Retry
|
|
258
402
|
step.status = 'pending';
|
|
259
403
|
step.error = err.message;
|
|
260
404
|
}
|
|
@@ -264,6 +408,12 @@ Rules:
|
|
|
264
408
|
step.completedAt = Date.now();
|
|
265
409
|
failed.add(step.index);
|
|
266
410
|
this.emitProgress(workflowId, step, steps, 'step-failed', opts?.onProgress);
|
|
411
|
+
try {
|
|
412
|
+
const execId = step._execId;
|
|
413
|
+
if (execId)
|
|
414
|
+
data.updateStepExecution(execId, { status: 'failed', attempts: step.attempts, error: err.message, completedAt: new Date().toISOString().replace('T', ' ').replace('Z', '') });
|
|
415
|
+
}
|
|
416
|
+
catch { /* best effort */ }
|
|
267
417
|
}
|
|
268
418
|
}
|
|
269
419
|
}));
|
|
@@ -272,7 +422,7 @@ Rules:
|
|
|
272
422
|
/**
|
|
273
423
|
* Execute a single workflow step: call LLM with tools, agentic loop.
|
|
274
424
|
*/
|
|
275
|
-
async executeStep(step, prompt, conversationId, apiKey) {
|
|
425
|
+
async executeStep(step, prompt, conversationId, apiKey, workflowContext) {
|
|
276
426
|
const profile = data.getAgentProfile(step.agentId);
|
|
277
427
|
const { CLI_PROVIDERS } = require('./providers/index');
|
|
278
428
|
const isCliProvider = CLI_PROVIDERS.has(step.provider);
|
|
@@ -288,13 +438,19 @@ Rules:
|
|
|
288
438
|
|| 'You are a Funolio AI agent working on a specific task step.';
|
|
289
439
|
const clerk = (0, clerk_model_1.getClerk)();
|
|
290
440
|
if (clerk && profile) {
|
|
291
|
-
const built = clerk.buildPrompt(prompt, step.agentId, profile, {
|
|
441
|
+
const built = clerk.buildPrompt(prompt, step.agentId, profile, {
|
|
442
|
+
targetModel: step.model,
|
|
443
|
+
conversationId: conversationId || undefined,
|
|
444
|
+
isWorkflowStep: true,
|
|
445
|
+
isCheckpoint: step.isCheckpoint,
|
|
446
|
+
workflowContext,
|
|
447
|
+
});
|
|
292
448
|
systemPrompt = built.systemPrompt;
|
|
293
449
|
}
|
|
294
450
|
const messages = [{ role: 'user', content: prompt }];
|
|
295
451
|
// Agentic loop
|
|
296
452
|
let iteration = 0;
|
|
297
|
-
const MAX_ITERATIONS =
|
|
453
|
+
const MAX_ITERATIONS = safeguards_1.SAFEGUARDS.MAX_WORKFLOW_ITERATIONS;
|
|
298
454
|
while (iteration < MAX_ITERATIONS) {
|
|
299
455
|
iteration++;
|
|
300
456
|
const response = await llm.chat({
|
|
@@ -327,10 +483,17 @@ Rules:
|
|
|
327
483
|
}
|
|
328
484
|
// No tool calls — final response
|
|
329
485
|
const content = response.content || '';
|
|
330
|
-
//
|
|
486
|
+
// Parse structured footer for workflow steps
|
|
487
|
+
const footer = (0, status_parser_1.parseStructuredFooter)(content);
|
|
488
|
+
// Save to local DB if conversation exists (with footer fields)
|
|
331
489
|
if (conversationId) {
|
|
332
490
|
try {
|
|
333
|
-
data.addMessage(conversationId, 'assistant', content, step.model);
|
|
491
|
+
const msg = data.addMessage(conversationId, 'assistant', content, step.model);
|
|
492
|
+
// Store parsed footer fields for workflow steps
|
|
493
|
+
if (footer.result || footer.summary || footer.status !== 'UNKNOWN') {
|
|
494
|
+
const db = data.getDb();
|
|
495
|
+
db.prepare('UPDATE message SET result_artifact = ?, result_summary = ?, result_status = ? WHERE id = ?').run(footer.result, footer.summary, footer.status, msg.id);
|
|
496
|
+
}
|
|
334
497
|
}
|
|
335
498
|
catch { /* best effort */ }
|
|
336
499
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-engine.js","sourceRoot":"","sources":["../src/workflow-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflow-engine.js","sourceRoot":"","sources":["../src/workflow-engine.ts"],"names":[],"mappings":"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"}
|