@n8n/instance-ai 1.13.2 → 1.14.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/agent/apply-agent-thinking.js +24 -19
- package/dist/agent/apply-agent-thinking.js.map +1 -1
- package/dist/agent/computer-use-prompt.js +5 -6
- package/dist/agent/computer-use-prompt.js.map +1 -1
- package/dist/agent/shared-prompts.d.ts +1 -1
- package/dist/agent/shared-prompts.js +1 -1
- package/dist/agent/shared-prompts.js.map +1 -1
- package/dist/agent/sub-agent-factory.d.ts +1 -1
- package/dist/agent/system-prompt.js +20 -3
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/orchestrator-identity.d.ts +1 -0
- package/dist/runtime/orchestrator-identity.js +7 -0
- package/dist/runtime/orchestrator-identity.js.map +1 -0
- package/dist/runtime/orchestrator-run-control.d.ts +16 -0
- package/dist/runtime/orchestrator-run-control.js +26 -0
- package/dist/runtime/orchestrator-run-control.js.map +1 -0
- package/dist/runtime/resumable-stream-executor.d.ts +3 -0
- package/dist/runtime/resumable-stream-executor.js +26 -0
- package/dist/runtime/resumable-stream-executor.js.map +1 -1
- package/dist/runtime/run-state-registry.d.ts +4 -0
- package/dist/runtime/run-state-registry.js.map +1 -1
- package/dist/runtime/stream-runner.d.ts +3 -0
- package/dist/runtime/stream-runner.js +2 -0
- package/dist/runtime/stream-runner.js.map +1 -1
- package/dist/storage/terminal-outcome-storage.d.ts +2 -2
- package/dist/storage/workflow-loop-storage.d.ts +5 -0
- package/dist/tools/executions.tool.js +2 -1
- package/dist/tools/executions.tool.js.map +1 -1
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/n8n-docs/ranking.d.ts +12 -0
- package/dist/tools/n8n-docs/ranking.js +170 -0
- package/dist/tools/n8n-docs/ranking.js.map +1 -0
- package/dist/tools/n8n-docs/registry.d.ts +34 -0
- package/dist/tools/n8n-docs/registry.js +216 -0
- package/dist/tools/n8n-docs/registry.js.map +1 -0
- package/dist/tools/n8n-docs/schemas.d.ts +163 -0
- package/dist/tools/n8n-docs/schemas.js +89 -0
- package/dist/tools/n8n-docs/schemas.js.map +1 -0
- package/dist/tools/n8n-docs.tool.d.ts +7 -0
- package/dist/tools/n8n-docs.tool.js +147 -0
- package/dist/tools/n8n-docs.tool.js.map +1 -0
- package/dist/tools/nodes/suggested-nodes-data.js +1 -4
- package/dist/tools/nodes/suggested-nodes-data.js.map +1 -1
- package/dist/tools/orchestration/plan.tool.js +1 -0
- package/dist/tools/orchestration/plan.tool.js.map +1 -1
- package/dist/tools/orchestration/verification/analyze-result.d.ts +28 -0
- package/dist/tools/orchestration/verification/analyze-result.js +238 -0
- package/dist/tools/orchestration/verification/analyze-result.js.map +1 -0
- package/dist/tools/orchestration/verification/finalize-result.d.ts +18 -0
- package/dist/tools/orchestration/verification/finalize-result.js +137 -0
- package/dist/tools/orchestration/verification/finalize-result.js.map +1 -0
- package/dist/tools/orchestration/verification/prepare-run.d.ts +16 -0
- package/dist/tools/orchestration/verification/prepare-run.js +58 -0
- package/dist/tools/orchestration/verification/prepare-run.js.map +1 -0
- package/dist/tools/orchestration/verification/resolve-target.d.ts +18 -0
- package/dist/tools/orchestration/verification/resolve-target.js +113 -0
- package/dist/tools/orchestration/verification/resolve-target.js.map +1 -0
- package/dist/tools/orchestration/verification/types.d.ts +44 -0
- package/dist/tools/orchestration/verification/types.js +3 -0
- package/dist/tools/orchestration/verification/types.js.map +1 -0
- package/dist/tools/orchestration/verify-built-workflow.tool.d.ts +6 -3
- package/dist/tools/orchestration/verify-built-workflow.tool.js +70 -448
- package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
- package/dist/tools/shared/ask-user.tool.d.ts +4 -4
- package/dist/tools/shared/ask-user.tool.js +6 -0
- package/dist/tools/shared/ask-user.tool.js.map +1 -1
- package/dist/tools/tool-ids.d.ts +2 -0
- package/dist/tools/tool-ids.js +4 -1
- package/dist/tools/tool-ids.js.map +1 -1
- package/dist/tools/workflows/build-workflow.tool.js +4 -0
- package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/detect-array-input-collapse.d.ts +3 -0
- package/dist/tools/workflows/detect-array-input-collapse.js +76 -0
- package/dist/tools/workflows/detect-array-input-collapse.js.map +1 -0
- package/dist/tools/workflows/generate-simulation-fixtures.service.js +1 -1
- package/dist/tools/workflows/generate-simulation-fixtures.service.js.map +1 -1
- package/dist/tools/workflows/setup-workflow.schema.d.ts +26 -26
- package/dist/tools/workflows/setup-workflow.service.d.ts +1 -1
- package/dist/tools/workflows/setup-workflow.service.js +24 -1
- package/dist/tools/workflows/setup-workflow.service.js.map +1 -1
- package/dist/tools/workflows/workflow-build-routing.d.ts +5 -1
- package/dist/tools/workflows/workflow-build-routing.js +9 -1
- package/dist/tools/workflows/workflow-build-routing.js.map +1 -1
- package/dist/tools/workflows/workflow-json-utils.d.ts +1 -0
- package/dist/tools/workflows/workflow-json-utils.js +95 -0
- package/dist/tools/workflows/workflow-json-utils.js.map +1 -1
- package/dist/tools/workflows/workflow-source-compiler.js +2 -0
- package/dist/tools/workflows/workflow-source-compiler.js.map +1 -1
- package/dist/tools/workflows.tool.js +1 -1
- package/dist/tools/workflows.tool.js.map +1 -1
- package/dist/types.d.ts +4 -5
- package/dist/types.js.map +1 -1
- package/dist/workflow-loop/guidance.js +4 -2
- package/dist/workflow-loop/guidance.js.map +1 -1
- package/dist/workflow-loop/remediation.d.ts +1 -0
- package/dist/workflow-loop/remediation.js +2 -1
- package/dist/workflow-loop/remediation.js.map +1 -1
- package/dist/workflow-loop/verification-obligation.js +10 -0
- package/dist/workflow-loop/verification-obligation.js.map +1 -1
- package/dist/workflow-loop/workflow-loop-state.d.ts +3 -0
- package/dist/workflow-loop/workflow-loop-state.js +1 -0
- package/dist/workflow-loop/workflow-loop-state.js.map +1 -1
- package/dist/workflow-loop/workflow-task-service.d.ts +1 -0
- package/dist/workflow-loop/workflow-task-service.js +13 -0
- package/dist/workflow-loop/workflow-task-service.js.map +1 -1
- package/package.json +16 -15
- package/skills/data-table-manager/SKILL.md +21 -0
- package/skills/data-table-manager/references/data-table-playbook.md +9 -0
- package/skills/debugging-executions/SKILL.md +15 -2
- package/skills/n8n-docs-assistant/SKILL.md +49 -0
- package/skills/planned-task-runtime/SKILL.md +4 -2
- package/skills/post-build-flow/SKILL.md +51 -5
- package/skills/workflow-builder/SKILL.md +65 -12
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type VerificationAnalysis } from './analyze-result';
|
|
2
|
+
import type { ExecutionRunResult, ResolvedVerifyInput, VerifyBuiltWorkflowOutput, WorkflowTaskService } from './types';
|
|
3
|
+
import type { OrchestrationContext } from '../../../types';
|
|
4
|
+
export declare function handleMissingSimulationPlan(args: {
|
|
5
|
+
input: ResolvedVerifyInput;
|
|
6
|
+
context: OrchestrationContext;
|
|
7
|
+
workflowTaskService: WorkflowTaskService;
|
|
8
|
+
workflowId: string;
|
|
9
|
+
}): Promise<VerifyBuiltWorkflowOutput>;
|
|
10
|
+
export declare function persistVerificationOutcome(args: {
|
|
11
|
+
input: ResolvedVerifyInput;
|
|
12
|
+
context: OrchestrationContext;
|
|
13
|
+
workflowTaskService: WorkflowTaskService;
|
|
14
|
+
workflowId: string;
|
|
15
|
+
result: ExecutionRunResult;
|
|
16
|
+
analysis: VerificationAnalysis;
|
|
17
|
+
verifyAttempts: number;
|
|
18
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleMissingSimulationPlan = handleMissingSimulationPlan;
|
|
4
|
+
exports.persistVerificationOutcome = persistVerificationOutcome;
|
|
5
|
+
const analyze_result_1 = require("./analyze-result");
|
|
6
|
+
const remediation_1 = require("../../../workflow-loop/remediation");
|
|
7
|
+
async function handleMissingSimulationPlan(args) {
|
|
8
|
+
const { input, context, workflowTaskService, workflowId } = args;
|
|
9
|
+
const guidance = 'Verification was not run because the build outcome has no simulation plan. ' +
|
|
10
|
+
'Rebuild or resubmit the workflow so destructive nodes can be classified before verification.';
|
|
11
|
+
const remediation = (0, remediation_1.createRemediation)({
|
|
12
|
+
category: 'blocked',
|
|
13
|
+
shouldEdit: false,
|
|
14
|
+
reason: 'missing_simulation_plan',
|
|
15
|
+
guidance,
|
|
16
|
+
});
|
|
17
|
+
context.logger.warn('verify-built-workflow: build outcome has no simulation plan — refusing to run without simulation safeguards', { workItemId: input.workItemId, workflowId });
|
|
18
|
+
try {
|
|
19
|
+
await workflowTaskService.updateBuildOutcome(input.workItemId, {
|
|
20
|
+
remediation,
|
|
21
|
+
verification: {
|
|
22
|
+
attempted: true,
|
|
23
|
+
success: false,
|
|
24
|
+
status: 'unknown',
|
|
25
|
+
failureSignature: 'missing_simulation_plan',
|
|
26
|
+
evidence: { errorMessage: guidance },
|
|
27
|
+
verifiedAt: new Date().toISOString(),
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
await workflowTaskService.reportVerificationVerdict({
|
|
35
|
+
workItemId: input.workItemId,
|
|
36
|
+
runId: context.runId,
|
|
37
|
+
workflowId,
|
|
38
|
+
verdict: 'failed_terminal',
|
|
39
|
+
failureSignature: 'missing_simulation_plan',
|
|
40
|
+
diagnosis: guidance,
|
|
41
|
+
remediation,
|
|
42
|
+
summary: guidance,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
context.logger.warn('verify-built-workflow: failed to persist terminal verdict', {
|
|
47
|
+
workItemId: input.workItemId,
|
|
48
|
+
workflowId,
|
|
49
|
+
error: error instanceof Error ? error.message : String(error),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
success: false,
|
|
54
|
+
resolvedWorkItemId: input.workItemId,
|
|
55
|
+
status: 'unknown',
|
|
56
|
+
error: guidance,
|
|
57
|
+
remediation,
|
|
58
|
+
guidance,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
async function persistVerificationOutcome(args) {
|
|
62
|
+
const { input, context, workflowTaskService, workflowId, result, analysis, verifyAttempts } = args;
|
|
63
|
+
try {
|
|
64
|
+
const executedForEvidence = (0, analyze_result_1.namesOrDataKeys)(analysis.reachedNames, result.data);
|
|
65
|
+
await workflowTaskService.updateBuildOutcome(input.workItemId, {
|
|
66
|
+
verifyAttempts,
|
|
67
|
+
verification: {
|
|
68
|
+
attempted: true,
|
|
69
|
+
success: analysis.success,
|
|
70
|
+
executionId: result.executionId || undefined,
|
|
71
|
+
status: result.status,
|
|
72
|
+
failureSignature: analysis.success ? undefined : result.error,
|
|
73
|
+
evidence: {
|
|
74
|
+
nodesExecuted: executedForEvidence && executedForEvidence.length > 0 ? executedForEvidence : undefined,
|
|
75
|
+
nodesNotReached: analysis.nodesNotReached.length > 0 ? analysis.nodesNotReached : undefined,
|
|
76
|
+
producedOutputRows: (0, analyze_result_1.countProducedOutputRows)(result.data),
|
|
77
|
+
errorMessage: analysis.success ? undefined : result.error,
|
|
78
|
+
},
|
|
79
|
+
verifiedAt: new Date().toISOString(),
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
}
|
|
85
|
+
if (analysis.remediation && !analysis.remediation.shouldEdit) {
|
|
86
|
+
await reportTerminalRemediation({
|
|
87
|
+
input,
|
|
88
|
+
context,
|
|
89
|
+
workflowTaskService,
|
|
90
|
+
workflowId,
|
|
91
|
+
executionId: result.executionId || undefined,
|
|
92
|
+
remediation: analysis.remediation,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
async function reportTerminalRemediation(args) {
|
|
97
|
+
const { input, context, workflowTaskService, workflowId, executionId, remediation } = args;
|
|
98
|
+
try {
|
|
99
|
+
await workflowTaskService.reportVerificationVerdict({
|
|
100
|
+
workItemId: input.workItemId,
|
|
101
|
+
runId: context.runId,
|
|
102
|
+
workflowId,
|
|
103
|
+
executionId,
|
|
104
|
+
verdict: remediation.category === 'needs_setup' ? 'needs_user_input' : 'failed_terminal',
|
|
105
|
+
failureSignature: remediation.reason,
|
|
106
|
+
diagnosis: remediation.guidance,
|
|
107
|
+
remediation,
|
|
108
|
+
summary: remediation.guidance,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
context.logger.warn('verify-built-workflow: failed to persist terminal verdict', {
|
|
113
|
+
workItemId: input.workItemId,
|
|
114
|
+
workflowId,
|
|
115
|
+
error: error instanceof Error ? error.message : String(error),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
context.trackTelemetry?.('Builder remediation guard fired', {
|
|
120
|
+
thread_id: context.threadId,
|
|
121
|
+
run_id: context.runId,
|
|
122
|
+
work_item_id: input.workItemId,
|
|
123
|
+
workflow_id: workflowId,
|
|
124
|
+
category: remediation.category,
|
|
125
|
+
attempt_count: remediation.attemptCount,
|
|
126
|
+
reason: remediation.reason,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
context.logger.warn('verify-built-workflow: failed to emit remediation telemetry', {
|
|
131
|
+
workItemId: input.workItemId,
|
|
132
|
+
workflowId,
|
|
133
|
+
error: error instanceof Error ? error.message : String(error),
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=finalize-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalize-result.js","sourceRoot":"","sources":["../../../../src/tools/orchestration/verification/finalize-result.ts"],"names":[],"mappings":";;AAoBA,kEA6DC;AAED,gEA+CC;AAlID,qDAI0B;AAQ1B,oEAAuE;AAQhE,KAAK,UAAU,2BAA2B,CAAC,IAKjD;IACA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACjE,MAAM,QAAQ,GACb,6EAA6E;QAC7E,8FAA8F,CAAC;IAChG,MAAM,WAAW,GAAG,IAAA,+BAAiB,EAAC;QACrC,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,yBAAyB;QACjC,QAAQ;KACR,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,IAAI,CAClB,6GAA6G,EAC7G,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,CAC5C,CAAC;IACF,IAAI,CAAC;QACJ,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE;YAC9D,WAAW;YACX,YAAY,EAAE;gBACb,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,SAAS;gBACjB,gBAAgB,EAAE,yBAAyB;gBAC3C,QAAQ,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;gBACpC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;SACD,CAAC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IACD,IAAI,CAAC;QACJ,MAAM,mBAAmB,CAAC,yBAAyB,CAAC;YACnD,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU;YACV,OAAO,EAAE,iBAAiB;YAC1B,gBAAgB,EAAE,yBAAyB;YAC3C,SAAS,EAAE,QAAQ;YACnB,WAAW;YACX,OAAO,EAAE,QAAQ;SACjB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,EAAE;YAChF,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU;YACV,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC7D,CAAC,CAAC;IACJ,CAAC;IACD,OAAO;QACN,OAAO,EAAE,KAAK;QACd,kBAAkB,EAAE,KAAK,CAAC,UAAU;QACpC,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,QAAQ;QACf,WAAW;QACX,QAAQ;KACR,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,0BAA0B,CAAC,IAShD;IACA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAC1F,IAAI,CAAC;IACN,IAAI,CAAC;QACJ,MAAM,mBAAmB,GAAG,IAAA,gCAAe,EAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAChF,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE;YAC9D,cAAc;YACd,YAAY,EAAE;gBACb,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,SAAS;gBAC5C,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,gBAAgB,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;gBAC7D,QAAQ,EAAE;oBACT,aAAa,EACZ,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;oBACxF,eAAe,EACd,QAAQ,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;oBAC3E,kBAAkB,EAAE,IAAA,wCAAuB,EAAC,MAAM,CAAC,IAAI,CAAC;oBACxD,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;iBACzD;gBACD,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;SACD,CAAC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,IAAI,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC9D,MAAM,yBAAyB,CAAC;YAC/B,KAAK;YACL,OAAO;YACP,mBAAmB;YACnB,UAAU;YACV,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,SAAS;YAC5C,WAAW,EAAE,QAAQ,CAAC,WAAW;SACjC,CAAC,CAAC;IACJ,CAAC;AACF,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,IAOxC;IACA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC3F,IAAI,CAAC;QACJ,MAAM,mBAAmB,CAAC,yBAAyB,CAAC;YACnD,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU;YACV,WAAW;YACX,OAAO,EAAE,WAAW,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB;YACxF,gBAAgB,EAAE,WAAW,CAAC,MAAM;YACpC,SAAS,EAAE,WAAW,CAAC,QAAQ;YAC/B,WAAW;YACX,OAAO,EAAE,WAAW,CAAC,QAAQ;SAC7B,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,EAAE;YAChF,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU;YACV,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC7D,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACJ,OAAO,CAAC,cAAc,EAAE,CAAC,iCAAiC,EAAE;YAC3D,SAAS,EAAE,OAAO,CAAC,QAAQ;YAC3B,MAAM,EAAE,OAAO,CAAC,KAAK;YACrB,YAAY,EAAE,KAAK,CAAC,UAAU;YAC9B,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,aAAa,EAAE,WAAW,CAAC,YAAY;YACvC,MAAM,EAAE,WAAW,CAAC,MAAM;SAC1B,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,6DAA6D,EAAE;YAClF,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU;YACV,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC7D,CAAC,CAAC;IACJ,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { VerifyBuiltWorkflowOutput, VerifyToolInput } from './types';
|
|
2
|
+
import type { WorkflowBuildOutcome } from '../../../workflow-loop/workflow-loop-state';
|
|
3
|
+
export interface PreparedVerificationRun {
|
|
4
|
+
verificationPinData: Record<string, unknown[]> | undefined;
|
|
5
|
+
simulatedNodes: Array<{
|
|
6
|
+
nodeName: string;
|
|
7
|
+
reason: string;
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
export declare function prepareVerificationRun(buildOutcome: WorkflowBuildOutcome, fixtureOverrides: VerifyToolInput['fixtureOverrides']): {
|
|
11
|
+
kind: 'ready';
|
|
12
|
+
prepared: PreparedVerificationRun;
|
|
13
|
+
} | {
|
|
14
|
+
kind: 'blocked';
|
|
15
|
+
result: VerifyBuiltWorkflowOutput;
|
|
16
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.prepareVerificationRun = prepareVerificationRun;
|
|
4
|
+
const remediation_1 = require("../../../workflow-loop/remediation");
|
|
5
|
+
function getInvalidFixtureOverrideNodeNames(buildOutcome, fixtureOverrides) {
|
|
6
|
+
if (!fixtureOverrides)
|
|
7
|
+
return [];
|
|
8
|
+
const simulatedNodeNames = new Set((buildOutcome.nodeSimulationPlan ?? [])
|
|
9
|
+
.filter((verdict) => verdict.verdict === 'simulate')
|
|
10
|
+
.map((verdict) => verdict.nodeName));
|
|
11
|
+
return Object.keys(fixtureOverrides).filter((nodeName) => !simulatedNodeNames.has(nodeName));
|
|
12
|
+
}
|
|
13
|
+
function buildVerificationPinData(buildOutcome, fixtureOverrides) {
|
|
14
|
+
const merged = { ...(buildOutcome.verificationPinData ?? {}) };
|
|
15
|
+
const fixtures = buildOutcome.simulationFixtures ?? {};
|
|
16
|
+
const simulatedNodes = [];
|
|
17
|
+
for (const verdict of buildOutcome.nodeSimulationPlan ?? []) {
|
|
18
|
+
if (verdict.verdict !== 'simulate')
|
|
19
|
+
continue;
|
|
20
|
+
simulatedNodes.push({ nodeName: verdict.nodeName, reason: verdict.reason });
|
|
21
|
+
const items = fixtures[verdict.nodeName];
|
|
22
|
+
merged[verdict.nodeName] = items?.length ? items : [{}];
|
|
23
|
+
}
|
|
24
|
+
if (fixtureOverrides) {
|
|
25
|
+
for (const [nodeName, items] of Object.entries(fixtureOverrides)) {
|
|
26
|
+
merged[nodeName] = items;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
verificationPinData: Object.keys(merged).length > 0 ? merged : undefined,
|
|
31
|
+
simulatedNodes,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function prepareVerificationRun(buildOutcome, fixtureOverrides) {
|
|
35
|
+
const invalidFixtureOverrideNodeNames = getInvalidFixtureOverrideNodeNames(buildOutcome, fixtureOverrides);
|
|
36
|
+
if (invalidFixtureOverrideNodeNames.length > 0) {
|
|
37
|
+
const guidance = 'Fixture overrides can only target nodes already classified as simulated in the build outcome. ' +
|
|
38
|
+
`Invalid override node(s): ${invalidFixtureOverrideNodeNames.join(', ')}. ` +
|
|
39
|
+
'Do not run the workflow live; rebuild with declared output fixtures or override a simulated node.';
|
|
40
|
+
const remediation = (0, remediation_1.createRemediation)({
|
|
41
|
+
category: 'blocked',
|
|
42
|
+
shouldEdit: false,
|
|
43
|
+
reason: 'invalid_fixture_override',
|
|
44
|
+
guidance,
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
kind: 'blocked',
|
|
48
|
+
result: {
|
|
49
|
+
success: false,
|
|
50
|
+
error: guidance,
|
|
51
|
+
remediation,
|
|
52
|
+
guidance,
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return { kind: 'ready', prepared: buildVerificationPinData(buildOutcome, fixtureOverrides) };
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=prepare-run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-run.js","sourceRoot":"","sources":["../../../../src/tools/orchestration/verification/prepare-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ResolvedVerifyInput, VerifyBuiltWorkflowOutput, VerifyToolInput, WorkflowTaskService } from './types';
|
|
2
|
+
import type { OrchestrationContext } from '../../../types';
|
|
3
|
+
import type { WorkflowBuildOutcome } from '../../../workflow-loop/workflow-loop-state';
|
|
4
|
+
export interface ResolvedVerificationTarget {
|
|
5
|
+
input: ResolvedVerifyInput;
|
|
6
|
+
buildOutcome: WorkflowBuildOutcome;
|
|
7
|
+
workflowId: string;
|
|
8
|
+
stateBefore: Awaited<ReturnType<WorkflowTaskService['getWorkflowLoopState']>> | undefined;
|
|
9
|
+
workflowTaskService: WorkflowTaskService;
|
|
10
|
+
domainContext: NonNullable<OrchestrationContext['domainContext']>;
|
|
11
|
+
}
|
|
12
|
+
export declare function resolveVerificationTarget(input: VerifyToolInput, context: OrchestrationContext): Promise<{
|
|
13
|
+
kind: 'blocked';
|
|
14
|
+
result: VerifyBuiltWorkflowOutput;
|
|
15
|
+
} | {
|
|
16
|
+
kind: 'ready';
|
|
17
|
+
target: ResolvedVerificationTarget;
|
|
18
|
+
}>;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveVerificationTarget = resolveVerificationTarget;
|
|
4
|
+
const remediation_1 = require("../../../workflow-loop/remediation");
|
|
5
|
+
async function resolveVerificationTarget(input, context) {
|
|
6
|
+
if (!context.workflowTaskService || !context.domainContext) {
|
|
7
|
+
const remediation = (0, remediation_1.createRemediation)({
|
|
8
|
+
category: 'blocked',
|
|
9
|
+
shouldEdit: false,
|
|
10
|
+
reason: 'verification_support_unavailable',
|
|
11
|
+
guidance: 'Verification support is not available. Stop code edits and explain the blocker.',
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
kind: 'blocked',
|
|
15
|
+
result: { success: false, error: 'Verification support not available.', remediation },
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const buildOutcome = (input.workItemId
|
|
19
|
+
? await context.workflowTaskService.getBuildOutcome(input.workItemId)
|
|
20
|
+
: undefined) ??
|
|
21
|
+
(await context.workflowTaskService.getLatestBuildOutcomeForWorkflow(input.workflowId));
|
|
22
|
+
if (!buildOutcome) {
|
|
23
|
+
const target = input.workItemId
|
|
24
|
+
? `work item ${input.workItemId} or workflow ${input.workflowId}`
|
|
25
|
+
: `workflow ${input.workflowId}`;
|
|
26
|
+
const remediation = (0, remediation_1.createRemediation)({
|
|
27
|
+
category: 'blocked',
|
|
28
|
+
shouldEdit: false,
|
|
29
|
+
reason: 'missing_build_outcome',
|
|
30
|
+
guidance: `No build outcome found for ${target}. Stop code edits and explain the blocker.`,
|
|
31
|
+
});
|
|
32
|
+
return {
|
|
33
|
+
kind: 'blocked',
|
|
34
|
+
result: {
|
|
35
|
+
success: false,
|
|
36
|
+
error: `No build outcome found for ${target}.`,
|
|
37
|
+
remediation,
|
|
38
|
+
guidance: remediation.guidance,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const resolvedInput = { ...input, workItemId: buildOutcome.workItemId };
|
|
43
|
+
const stateBefore = await context.workflowTaskService.getWorkflowLoopState(resolvedInput.workItemId);
|
|
44
|
+
const terminalRemediation = stateBefore?.lastRemediation && !stateBefore.lastRemediation.shouldEdit
|
|
45
|
+
? (0, remediation_1.terminalRemediationFromState)(stateBefore, context.runId)
|
|
46
|
+
: undefined;
|
|
47
|
+
if (terminalRemediation) {
|
|
48
|
+
return {
|
|
49
|
+
kind: 'blocked',
|
|
50
|
+
result: {
|
|
51
|
+
success: false,
|
|
52
|
+
resolvedWorkItemId: resolvedInput.workItemId,
|
|
53
|
+
error: terminalRemediation.guidance,
|
|
54
|
+
remediation: terminalRemediation,
|
|
55
|
+
guidance: terminalRemediation.guidance,
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
if (!buildOutcome.workflowId) {
|
|
60
|
+
return {
|
|
61
|
+
kind: 'blocked',
|
|
62
|
+
result: {
|
|
63
|
+
success: false,
|
|
64
|
+
resolvedWorkItemId: resolvedInput.workItemId,
|
|
65
|
+
error: `Build outcome ${resolvedInput.workItemId} does not include a workflow ID.`,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
if (buildOutcome.workflowId !== input.workflowId) {
|
|
70
|
+
return {
|
|
71
|
+
kind: 'blocked',
|
|
72
|
+
result: {
|
|
73
|
+
success: false,
|
|
74
|
+
resolvedWorkItemId: resolvedInput.workItemId,
|
|
75
|
+
error: `Build outcome ${resolvedInput.workItemId} belongs to workflow ${buildOutcome.workflowId}, ` +
|
|
76
|
+
`but verification was requested for workflow ${input.workflowId}.`,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if ((buildOutcome.verifyAttempts ?? 0) >= remediation_1.MAX_VERIFY_ATTEMPTS) {
|
|
81
|
+
const remediation = (0, remediation_1.createRemediation)({
|
|
82
|
+
category: 'blocked',
|
|
83
|
+
shouldEdit: false,
|
|
84
|
+
reason: 'verify_budget_exhausted',
|
|
85
|
+
attemptCount: buildOutcome.verifyAttempts ?? 0,
|
|
86
|
+
guidance: 'Verification has already run the maximum number of times for this workflow. ' +
|
|
87
|
+
'Report which nodes were and were not reached, and let the user decide whether to run it manually. ' +
|
|
88
|
+
'Do not call executions(action="run") to expand coverage.',
|
|
89
|
+
});
|
|
90
|
+
return {
|
|
91
|
+
kind: 'blocked',
|
|
92
|
+
result: {
|
|
93
|
+
success: false,
|
|
94
|
+
resolvedWorkItemId: resolvedInput.workItemId,
|
|
95
|
+
error: remediation.guidance,
|
|
96
|
+
remediation,
|
|
97
|
+
guidance: remediation.guidance,
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
kind: 'ready',
|
|
103
|
+
target: {
|
|
104
|
+
input: resolvedInput,
|
|
105
|
+
buildOutcome,
|
|
106
|
+
workflowId: buildOutcome.workflowId,
|
|
107
|
+
stateBefore,
|
|
108
|
+
workflowTaskService: context.workflowTaskService,
|
|
109
|
+
domainContext: context.domainContext,
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=resolve-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-target.js","sourceRoot":"","sources":["../../../../src/tools/orchestration/verification/resolve-target.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { OrchestrationContext } from '../../../types';
|
|
2
|
+
import type { RemediationMetadata } from '../../../workflow-loop/workflow-loop-state';
|
|
3
|
+
export interface VerifyToolInput {
|
|
4
|
+
workItemId?: string;
|
|
5
|
+
workflowId: string;
|
|
6
|
+
inputData?: Record<string, unknown>;
|
|
7
|
+
timeout?: number;
|
|
8
|
+
includeData?: boolean;
|
|
9
|
+
maxDataChars?: number;
|
|
10
|
+
fixtureOverrides?: Record<string, Array<Record<string, unknown>>>;
|
|
11
|
+
}
|
|
12
|
+
export interface ResolvedVerifyInput extends VerifyToolInput {
|
|
13
|
+
workItemId: string;
|
|
14
|
+
}
|
|
15
|
+
export type WorkflowTaskService = NonNullable<OrchestrationContext['workflowTaskService']>;
|
|
16
|
+
export type ExecutionRunResult = Awaited<ReturnType<NonNullable<OrchestrationContext['domainContext']>['executionService']['run']>>;
|
|
17
|
+
export interface VerificationNodePreview {
|
|
18
|
+
nodeName: string;
|
|
19
|
+
itemCount?: number;
|
|
20
|
+
preview: string;
|
|
21
|
+
truncated: boolean;
|
|
22
|
+
chars: number;
|
|
23
|
+
simulated?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface VerifyBuiltWorkflowOutput {
|
|
26
|
+
resolvedWorkItemId?: string;
|
|
27
|
+
executionId?: string;
|
|
28
|
+
success: boolean;
|
|
29
|
+
status?: 'running' | 'success' | 'error' | 'waiting' | 'unknown';
|
|
30
|
+
nodesExecuted?: string[];
|
|
31
|
+
nodePreviews?: VerificationNodePreview[];
|
|
32
|
+
simulatedNodes?: Array<{
|
|
33
|
+
nodeName: string;
|
|
34
|
+
reason: string;
|
|
35
|
+
}>;
|
|
36
|
+
simulationNote?: string;
|
|
37
|
+
lastNodeExecuted?: string;
|
|
38
|
+
nodesNotReached?: string[];
|
|
39
|
+
coverageNote?: string;
|
|
40
|
+
data?: Record<string, unknown>;
|
|
41
|
+
error?: string;
|
|
42
|
+
remediation?: RemediationMetadata;
|
|
43
|
+
guidance?: string;
|
|
44
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/tools/orchestration/verification/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import type { OrchestrationContext } from '../../types';
|
|
3
3
|
export declare const verifyBuiltWorkflowInputSchema: z.ZodObject<{
|
|
4
|
-
workItemId: z.ZodString
|
|
4
|
+
workItemId: z.ZodOptional<z.ZodString>;
|
|
5
5
|
workflowId: z.ZodString;
|
|
6
6
|
inputData: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
7
7
|
timeout: z.ZodOptional<z.ZodNumber>;
|
|
8
8
|
includeData: z.ZodOptional<z.ZodBoolean>;
|
|
9
9
|
maxDataChars: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
fixtureOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>>;
|
|
10
11
|
}, "strip", z.ZodTypeAny, {
|
|
11
|
-
workItemId: string;
|
|
12
12
|
workflowId: string;
|
|
13
|
+
workItemId?: string | undefined;
|
|
13
14
|
inputData?: Record<string, unknown> | undefined;
|
|
14
15
|
timeout?: number | undefined;
|
|
16
|
+
fixtureOverrides?: Record<string, Record<string, unknown>[]> | undefined;
|
|
15
17
|
includeData?: boolean | undefined;
|
|
16
18
|
maxDataChars?: number | undefined;
|
|
17
19
|
}, {
|
|
18
|
-
workItemId: string;
|
|
19
20
|
workflowId: string;
|
|
21
|
+
workItemId?: string | undefined;
|
|
20
22
|
inputData?: Record<string, unknown> | undefined;
|
|
21
23
|
timeout?: number | undefined;
|
|
24
|
+
fixtureOverrides?: Record<string, Record<string, unknown>[]> | undefined;
|
|
22
25
|
includeData?: boolean | undefined;
|
|
23
26
|
maxDataChars?: number | undefined;
|
|
24
27
|
}>;
|