@n8n/instance-ai 1.24.3 → 1.25.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/README.md +2 -3
- package/dist/agent/credential-guardrails.prompt.d.ts +1 -0
- package/dist/agent/credential-guardrails.prompt.js +2 -1
- package/dist/agent/credential-guardrails.prompt.js.map +1 -1
- package/dist/agent/instance-agent.js +25 -21
- package/dist/agent/instance-agent.js.map +1 -1
- package/dist/agent/shared-prompts.d.ts +2 -2
- package/dist/agent/shared-prompts.js +2 -2
- package/dist/agent/shared-prompts.js.map +1 -1
- package/dist/agent/sub-agent-factory.d.ts +1 -1
- package/dist/agent/sub-agent-factory.js +2 -1
- package/dist/agent/sub-agent-factory.js.map +1 -1
- package/dist/agent/system-prompt.d.ts +1 -0
- package/dist/agent/system-prompt.js +29 -4
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/constants/max-steps.d.ts +0 -1
- package/dist/constants/max-steps.js +0 -1
- package/dist/constants/max-steps.js.map +1 -1
- package/dist/debug/sanitize-debug-snapshot.js +3 -3
- package/dist/debug/sanitize-debug-snapshot.js.map +1 -1
- package/dist/error-formatting.js +5 -12
- package/dist/error-formatting.js.map +1 -1
- package/dist/index.d.ts +12 -10
- package/dist/index.js +17 -9
- package/dist/index.js.map +1 -1
- package/dist/knowledge-base/materialize-knowledge-base.js +24 -16
- package/dist/knowledge-base/materialize-knowledge-base.js.map +1 -1
- package/dist/mcp/mcp-client-manager.js +3 -4
- package/dist/mcp/mcp-client-manager.js.map +1 -1
- package/dist/prompts/prompt-profiles.d.ts +24 -0
- package/dist/prompts/prompt-profiles.js +77 -0
- package/dist/prompts/prompt-profiles.js.map +1 -0
- package/dist/prompts/skill-variants.d.ts +15 -0
- package/dist/prompts/skill-variants.js +81 -0
- package/dist/prompts/skill-variants.js.map +1 -0
- package/dist/runtime/background-task-manager.js +5 -5
- package/dist/runtime/background-task-manager.js.map +1 -1
- package/dist/runtime/resumable-stream-executor.js +2 -3
- package/dist/runtime/resumable-stream-executor.js.map +1 -1
- package/dist/runtime/run-state-registry.d.ts +12 -2
- package/dist/runtime/run-state-registry.js +35 -2
- package/dist/runtime/run-state-registry.js.map +1 -1
- package/dist/skills/materialize-runtime-skills.js +30 -23
- package/dist/skills/materialize-runtime-skills.js.map +1 -1
- package/dist/skills/runtime-skills.d.ts +8 -0
- package/dist/skills/runtime-skills.js +27 -0
- package/dist/skills/runtime-skills.js.map +1 -1
- package/dist/skills/skill-gates.d.ts +2 -0
- package/dist/skills/skill-gates.js +4 -1
- package/dist/skills/skill-gates.js.map +1 -1
- package/dist/storage/workflow-loop-storage.d.ts +550 -0
- package/dist/storage/workflow-loop-storage.js +31 -1
- package/dist/storage/workflow-loop-storage.js.map +1 -1
- package/dist/stream/consume-with-hitl.d.ts +0 -28
- package/dist/stream/consume-with-hitl.js +0 -50
- package/dist/stream/consume-with-hitl.js.map +1 -1
- package/dist/tools/activity.tool.d.ts +2 -0
- package/dist/tools/activity.tool.js +102 -0
- package/dist/tools/activity.tool.js.map +1 -0
- package/dist/tools/credentials.tool.js +5 -3
- package/dist/tools/credentials.tool.js.map +1 -1
- package/dist/tools/executions.tool.js +47 -10
- package/dist/tools/executions.tool.js.map +1 -1
- package/dist/tools/filesystem/create-tools-from-mcp-server.js +1 -0
- package/dist/tools/filesystem/create-tools-from-mcp-server.js.map +1 -1
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.js +45 -55
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/n8n-docs/schemas.js +1 -1
- package/dist/tools/n8n-docs/schemas.js.map +1 -1
- package/dist/tools/n8n-docs.tool.d.ts +2 -1
- package/dist/tools/n8n-docs.tool.js +11 -3
- package/dist/tools/n8n-docs.tool.js.map +1 -1
- package/dist/tools/orchestration/agent-persistence.d.ts +0 -12
- package/dist/tools/orchestration/agent-persistence.js +0 -34
- package/dist/tools/orchestration/agent-persistence.js.map +1 -1
- package/dist/tools/orchestration/build-agent.tool.js +3 -3
- package/dist/tools/orchestration/build-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/complete-checkpoint.tool.js +1 -1
- package/dist/tools/orchestration/complete-checkpoint.tool.js.map +1 -1
- package/dist/tools/orchestration/plan.tool.js +5 -1
- package/dist/tools/orchestration/plan.tool.js.map +1 -1
- package/dist/tools/orchestration/report-verification-verdict.tool.js +7 -1
- package/dist/tools/orchestration/report-verification-verdict.tool.js.map +1 -1
- package/dist/tools/orchestration/tracing-utils.d.ts +1 -6
- package/dist/tools/orchestration/tracing-utils.js +0 -99
- package/dist/tools/orchestration/tracing-utils.js.map +1 -1
- package/dist/tools/orchestration/verification/analyze-result.d.ts +5 -0
- package/dist/tools/orchestration/verification/analyze-result.js +27 -5
- package/dist/tools/orchestration/verification/analyze-result.js.map +1 -1
- package/dist/tools/orchestration/verification/claim.d.ts +14 -0
- package/dist/tools/orchestration/verification/claim.js +52 -0
- package/dist/tools/orchestration/verification/claim.js.map +1 -0
- package/dist/tools/orchestration/verification/finalize-result.d.ts +5 -2
- package/dist/tools/orchestration/verification/finalize-result.js +21 -25
- package/dist/tools/orchestration/verification/finalize-result.js.map +1 -1
- package/dist/tools/orchestration/verification/resolve-target.js +39 -15
- package/dist/tools/orchestration/verification/resolve-target.js.map +1 -1
- package/dist/tools/orchestration/verification/resolved-parameter-warnings.d.ts +58 -0
- package/dist/tools/orchestration/verification/resolved-parameter-warnings.js +127 -0
- package/dist/tools/orchestration/verification/resolved-parameter-warnings.js.map +1 -0
- package/dist/tools/orchestration/verification/scripted-gate-run.d.ts +3 -0
- package/dist/tools/orchestration/verification/scripted-gate-run.js +22 -2
- package/dist/tools/orchestration/verification/scripted-gate-run.js.map +1 -1
- package/dist/tools/orchestration/verification/types.d.ts +8 -1
- package/dist/tools/orchestration/verify-built-workflow.tool.d.ts +3 -0
- package/dist/tools/orchestration/verify-built-workflow.tool.js +141 -18
- package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
- package/dist/tools/research.tool.js +3 -2
- package/dist/tools/research.tool.js.map +1 -1
- package/dist/tools/task-control.tool.js +8 -1
- package/dist/tools/task-control.tool.js.map +1 -1
- package/dist/tools/tool-ids.d.ts +1 -3
- package/dist/tools/tool-ids.js +2 -3
- package/dist/tools/tool-ids.js.map +1 -1
- package/dist/tools/web-research/sanitize-web-content.d.ts +1 -2
- package/dist/tools/web-research/sanitize-web-content.js +6 -19
- package/dist/tools/web-research/sanitize-web-content.js.map +1 -1
- package/dist/tools/workflows/build-workflow.tool.d.ts +12 -0
- package/dist/tools/workflows/build-workflow.tool.js +173 -32
- package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/detect-unparseable-openai-schema.js +1 -1
- package/dist/tools/workflows/detect-unparseable-openai-schema.js.map +1 -1
- package/dist/tools/workflows/detect-wrong-kind-locator.js +7 -9
- package/dist/tools/workflows/detect-wrong-kind-locator.js.map +1 -1
- package/dist/tools/workflows/reconcile-simulation-plan.js +1 -1
- package/dist/tools/workflows/reconcile-simulation-plan.js.map +1 -1
- package/dist/tools/workflows/resolve-credentials.js.map +1 -1
- package/dist/tools/workflows/setup-items.d.ts +5 -0
- package/dist/tools/workflows/setup-items.js +29 -0
- package/dist/tools/workflows/setup-items.js.map +1 -1
- package/dist/tools/workflows/setup-panel-state.d.ts +31 -0
- package/dist/tools/workflows/setup-panel-state.js +197 -0
- package/dist/tools/workflows/setup-panel-state.js.map +1 -0
- package/dist/tools/workflows/setup-workflow.service.d.ts +3 -1
- package/dist/tools/workflows/setup-workflow.service.js +20 -13
- package/dist/tools/workflows/setup-workflow.service.js.map +1 -1
- package/dist/tools/workflows/validate-workflow.service.js.map +1 -1
- package/dist/tools/workflows/wait-gate-script.js +1 -1
- package/dist/tools/workflows/wait-gate-script.js.map +1 -1
- package/dist/tools/workflows/workflow-build-reporting.d.ts +1 -0
- package/dist/tools/workflows/workflow-build-reporting.js +1 -0
- package/dist/tools/workflows/workflow-build-reporting.js.map +1 -1
- package/dist/tools/workflows/workflow-build-telemetry.d.ts +5 -1
- package/dist/tools/workflows/workflow-build-telemetry.js +8 -0
- package/dist/tools/workflows/workflow-build-telemetry.js.map +1 -1
- package/dist/tools/workflows/workflow-file-bindings.js +0 -2
- package/dist/tools/workflows/workflow-file-bindings.js.map +1 -1
- package/dist/tools/workflows/workflow-source-compiler.js +80 -25
- package/dist/tools/workflows/workflow-source-compiler.js.map +1 -1
- package/dist/tools/workflows/workflow-validation-warnings.d.ts +13 -2
- package/dist/tools/workflows/workflow-validation-warnings.js +55 -1
- package/dist/tools/workflows/workflow-validation-warnings.js.map +1 -1
- package/dist/tools/workflows.tool.d.ts +1 -5
- package/dist/tools/workflows.tool.js +112 -136
- package/dist/tools/workflows.tool.js.map +1 -1
- package/dist/tracing/langsmith-tracing.d.ts +11 -22
- package/dist/tracing/langsmith-tracing.js +127 -112
- package/dist/tracing/langsmith-tracing.js.map +1 -1
- package/dist/tracing/sandbox-tracing.d.ts +17 -0
- package/dist/tracing/sandbox-tracing.js +60 -0
- package/dist/tracing/sandbox-tracing.js.map +1 -0
- package/dist/tracing/trace-payloads.d.ts +3 -0
- package/dist/tracing/trace-payloads.js +25 -4
- package/dist/tracing/trace-payloads.js.map +1 -1
- package/dist/tracing/trace-replay.js.map +1 -1
- package/dist/types.d.ts +57 -67
- package/dist/types.js.map +1 -1
- package/dist/utils/eval-agents.js +3 -7
- package/dist/utils/eval-agents.js.map +1 -1
- package/dist/utils/generate-validated-json.js +2 -6
- package/dist/utils/generate-validated-json.js.map +1 -1
- package/dist/workflow-loop/guidance.d.ts +1 -0
- package/dist/workflow-loop/guidance.js +48 -4
- package/dist/workflow-loop/guidance.js.map +1 -1
- package/dist/workflow-loop/render-claim.d.ts +6 -0
- package/dist/workflow-loop/render-claim.js +61 -0
- package/dist/workflow-loop/render-claim.js.map +1 -0
- package/dist/workflow-loop/setup-verification-policy.d.ts +3 -1
- package/dist/workflow-loop/setup-verification-policy.js +38 -0
- package/dist/workflow-loop/setup-verification-policy.js.map +1 -1
- package/dist/workflow-loop/verification-obligation.d.ts +1 -0
- package/dist/workflow-loop/verification-obligation.js +47 -14
- package/dist/workflow-loop/verification-obligation.js.map +1 -1
- package/dist/workflow-loop/verification-progress.d.ts +62 -0
- package/dist/workflow-loop/verification-progress.js +64 -0
- package/dist/workflow-loop/verification-progress.js.map +1 -0
- package/dist/workflow-loop/workflow-loop-controller.js +2 -0
- package/dist/workflow-loop/workflow-loop-controller.js.map +1 -1
- package/dist/workflow-loop/workflow-loop-state.d.ts +993 -0
- package/dist/workflow-loop/workflow-loop-state.js +32 -1
- package/dist/workflow-loop/workflow-loop-state.js.map +1 -1
- package/dist/workflow-loop/workflow-task-service.d.ts +6 -1
- package/dist/workflow-loop/workflow-task-service.js +86 -6
- package/dist/workflow-loop/workflow-task-service.js.map +1 -1
- package/dist/workspace/lazy-runtime-workspace.js +57 -9
- package/dist/workspace/lazy-runtime-workspace.js.map +1 -1
- package/dist/workspace/prebaked-workspace-bundle.js +93 -58
- package/dist/workspace/prebaked-workspace-bundle.js.map +1 -1
- package/dist/workspace/sandbox-fs.js +56 -32
- package/dist/workspace/sandbox-fs.js.map +1 -1
- package/dist/workspace/sandbox-setup.js +65 -52
- package/dist/workspace/sandbox-setup.js.map +1 -1
- package/dist/workspace/workspace-files.js +76 -57
- package/dist/workspace/workspace-files.js.map +1 -1
- package/knowledge-base/reference/workflow-builder-guardrails.md +4 -2
- package/package.json +12 -12
- package/skills/agent-builder/SKILL.md +15 -6
- package/skills/credential-recipe-research/SKILL.md +1 -1
- package/skills/debugging-executions/SKILL.md +24 -0
- package/skills/instance-awareness/SKILL.md +122 -0
- package/skills/intent-recognition/SKILL.md +83 -49
- package/skills/n8n-docs-assistant/SKILL.md +5 -9
- package/skills/planned-task-runtime/SKILL.md +2 -2
- package/skills/planning/SKILL.md +3 -0
- package/skills/post-build-flow/SKILL.md +173 -23
- package/skills/progressive-building/SKILL.md +112 -0
- package/skills/workflow-builder/SKILL.md +45 -21
- package/dist/agent/sub-agent-briefing.d.ts +0 -20
- package/dist/agent/sub-agent-briefing.js +0 -39
- package/dist/agent/sub-agent-briefing.js.map +0 -1
- package/dist/tools/evals/analyze-agent-input-columns.service.d.ts +0 -6
- package/dist/tools/evals/analyze-agent-input-columns.service.js +0 -17
- package/dist/tools/evals/analyze-agent-input-columns.service.js.map +0 -1
- package/dist/tools/evals/apply-pin-data.service.d.ts +0 -3
- package/dist/tools/evals/apply-pin-data.service.js +0 -19
- package/dist/tools/evals/apply-pin-data.service.js.map +0 -1
- package/dist/tools/evals/column-ref-utils.d.ts +0 -20
- package/dist/tools/evals/column-ref-utils.js +0 -274
- package/dist/tools/evals/column-ref-utils.js.map +0 -1
- package/dist/tools/evals/describe-metric-for-workflow.service.d.ts +0 -6
- package/dist/tools/evals/describe-metric-for-workflow.service.js +0 -90
- package/dist/tools/evals/describe-metric-for-workflow.service.js.map +0 -1
- package/dist/tools/evals/detect-agent-named-refs.service.d.ts +0 -9
- package/dist/tools/evals/detect-agent-named-refs.service.js +0 -83
- package/dist/tools/evals/detect-agent-named-refs.service.js.map +0 -1
- package/dist/tools/evals/detect-ai-nodes.d.ts +0 -7
- package/dist/tools/evals/detect-ai-nodes.js +0 -75
- package/dist/tools/evals/detect-ai-nodes.js.map +0 -1
- package/dist/tools/evals/detect-tool-refs.service.d.ts +0 -7
- package/dist/tools/evals/detect-tool-refs.service.js +0 -66
- package/dist/tools/evals/detect-tool-refs.service.js.map +0 -1
- package/dist/tools/evals/ensure-eval-data-table.service.d.ts +0 -15
- package/dist/tools/evals/ensure-eval-data-table.service.js +0 -83
- package/dist/tools/evals/ensure-eval-data-table.service.js.map +0 -1
- package/dist/tools/evals/eval-data-requirements.service.d.ts +0 -20
- package/dist/tools/evals/eval-data-requirements.service.js +0 -187
- package/dist/tools/evals/eval-data-requirements.service.js.map +0 -1
- package/dist/tools/evals/evals.tool.d.ts +0 -45
- package/dist/tools/evals/evals.tool.js +0 -454
- package/dist/tools/evals/evals.tool.js.map +0 -1
- package/dist/tools/evals/extract-rows-from-history.service.d.ts +0 -17
- package/dist/tools/evals/extract-rows-from-history.service.js +0 -103
- package/dist/tools/evals/extract-rows-from-history.service.js.map +0 -1
- package/dist/tools/evals/format-eval-setup-task.d.ts +0 -16
- package/dist/tools/evals/format-eval-setup-task.js +0 -167
- package/dist/tools/evals/format-eval-setup-task.js.map +0 -1
- package/dist/tools/evals/generate-sample-rows.service.d.ts +0 -35
- package/dist/tools/evals/generate-sample-rows.service.js +0 -259
- package/dist/tools/evals/generate-sample-rows.service.js.map +0 -1
- package/dist/tools/evals/generate-tool-ref-pin-data.service.d.ts +0 -11
- package/dist/tools/evals/generate-tool-ref-pin-data.service.js +0 -112
- package/dist/tools/evals/generate-tool-ref-pin-data.service.js.map +0 -1
- package/dist/tools/evals/metric-catalog.d.ts +0 -63
- package/dist/tools/evals/metric-catalog.js +0 -81
- package/dist/tools/evals/metric-catalog.js.map +0 -1
- package/dist/tools/orchestration/eval-data-agent.tool.d.ts +0 -2
- package/dist/tools/orchestration/eval-data-agent.tool.js +0 -184
- package/dist/tools/orchestration/eval-data-agent.tool.js.map +0 -1
- package/dist/tools/orchestration/eval-setup-agent.prompt.d.ts +0 -1
- package/dist/tools/orchestration/eval-setup-agent.prompt.js +0 -238
- package/dist/tools/orchestration/eval-setup-agent.prompt.js.map +0 -1
- package/dist/tools/orchestration/eval-setup-agent.tool.d.ts +0 -31
- package/dist/tools/orchestration/eval-setup-agent.tool.js +0 -204
- package/dist/tools/orchestration/eval-setup-agent.tool.js.map +0 -1
- package/dist/tools/workflows/observed-workflow-checksums.d.ts +0 -4
- package/dist/tools/workflows/observed-workflow-checksums.js +0 -82
- package/dist/tools/workflows/observed-workflow-checksums.js.map +0 -1
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { AttributeValue, BuiltTelemetry, BuiltMemory, BuiltTool, CheckpointStore, MemoryTaskUsageReport, RuntimeSkillSource, ModelConfig as NativeModelConfig, ScopedMemoryTaskEvent, Telemetry, Workspace } from '@n8n/agents';
|
|
1
|
+
import type { AttributeValue, BuiltTelemetry, BuiltMemory, BuiltTool, CheckpointStore, ExecutionOptions, MemoryTaskUsageReport, RuntimeSkillSource, ModelConfig as NativeModelConfig, ScopedMemoryTaskEvent, Telemetry, Workspace } from '@n8n/agents';
|
|
2
2
|
import type { AiGatewayNodeMeta } from '@n8n/ai-utilities/node-catalog';
|
|
3
|
-
import type { AgentJsonConfig, AgentSkill, ChatIntegrationDescriptor, EvaluationMetric, TaskList, InstanceAiFileAttachment, InstanceAiPermissions, InstanceAiSetupItem, McpTool, McpToolCallRequest, McpToolCallResult } from '@n8n/api-types';
|
|
3
|
+
import type { AgentJsonConfig, AgentSkill, ChatIntegrationDescriptor, EvaluationMetric, TaskList, InstanceAiPromptConfiguration, InstanceAiFileAttachment, InstanceAiPermissions, InstanceAiSetupItem, McpTool, McpToolCallRequest, McpToolCallResult } from '@n8n/api-types';
|
|
4
4
|
import type { OutputSchemaLookup, WorkflowJSON } from '@n8n/workflow-sdk';
|
|
5
5
|
import type { GenericValue, INodeInputConfiguration, INodeTypes, ITaskData, NodeConnectionType } from 'n8n-workflow';
|
|
6
6
|
import type { z } from 'zod';
|
|
@@ -17,7 +17,7 @@ import type { BuilderUsageItem } from './stream/usage-accumulator';
|
|
|
17
17
|
import type { conversationHistoryExcerptSchema, conversationHistoryMatchSourceSchema, conversationHistoryMessageSchema, conversationHistoryMessagesResultSchema, conversationHistorySearchHitSchema, conversationHistorySearchResultSchema } from './tools/conversation-history.schema';
|
|
18
18
|
import type { BuilderRequiredArtifact } from './tools/orchestration/builder-required-artifact';
|
|
19
19
|
import type { IdRemapper, TraceIndex, TraceWriter } from './tracing/trace-replay';
|
|
20
|
-
import type { VerificationResult, WorkflowBuildOutcome, WorkflowLoopAction, WorkflowLoopState, WorkflowVerificationObligation } from './workflow-loop/workflow-loop-state';
|
|
20
|
+
import type { VerificationClaim, VerificationResult, WorkflowBuildOutcome, WorkflowLoopAction, WorkflowLoopState, WorkflowVerificationEvidence, WorkflowTriggerVerificationProgress, WorkflowVerificationObligation } from './workflow-loop/workflow-loop-state';
|
|
21
21
|
import type { BuilderTemplatesService } from './workspace/builder-templates-service';
|
|
22
22
|
export type InstanceAiToolRegistry = Map<string, BuiltTool>;
|
|
23
23
|
export interface WorkflowFolderRef {
|
|
@@ -71,13 +71,20 @@ export interface ExecutionResult {
|
|
|
71
71
|
workflowPinnedNodeNames?: string[];
|
|
72
72
|
nodeErrors?: ExecutionNodeError[];
|
|
73
73
|
lastNodeExecuted?: string;
|
|
74
|
+
workflowVersionId?: string | null;
|
|
74
75
|
error?: string;
|
|
75
76
|
startedAt?: string;
|
|
76
77
|
finishedAt?: string;
|
|
77
78
|
}
|
|
79
|
+
export interface NodeOutputBranch {
|
|
80
|
+
index: number;
|
|
81
|
+
name?: string;
|
|
82
|
+
totalItems: number;
|
|
83
|
+
items: unknown[];
|
|
84
|
+
}
|
|
78
85
|
export interface NodeOutputResult {
|
|
79
86
|
nodeName: string;
|
|
80
|
-
|
|
87
|
+
outputs: NodeOutputBranch[];
|
|
81
88
|
totalItems: number;
|
|
82
89
|
returned: {
|
|
83
90
|
from: number;
|
|
@@ -227,6 +234,7 @@ export interface InstanceAiWorkflowService {
|
|
|
227
234
|
}>>;
|
|
228
235
|
getWorkflowHead(workflowId: string): Promise<{
|
|
229
236
|
versionId: string;
|
|
237
|
+
activeVersionId: string | null;
|
|
230
238
|
updatedAt: number;
|
|
231
239
|
}>;
|
|
232
240
|
getWorkflowSnapshot(workflowId: string): Promise<{
|
|
@@ -274,6 +282,7 @@ export interface ExecutionSummary {
|
|
|
274
282
|
startedAt: string;
|
|
275
283
|
finishedAt?: string;
|
|
276
284
|
mode: string;
|
|
285
|
+
workflowVersionId?: string | null;
|
|
277
286
|
}
|
|
278
287
|
export interface InstanceAiExecutionService {
|
|
279
288
|
list(options?: {
|
|
@@ -311,6 +320,7 @@ export interface InstanceAiExecutionService {
|
|
|
311
320
|
export interface CredentialTypeSearchResult {
|
|
312
321
|
type: string;
|
|
313
322
|
displayName: string;
|
|
323
|
+
documentationUrl?: string;
|
|
314
324
|
}
|
|
315
325
|
export interface CredentialHostInfo {
|
|
316
326
|
type: string;
|
|
@@ -371,6 +381,31 @@ export interface ConnectedMcpService {
|
|
|
371
381
|
slug: string;
|
|
372
382
|
toolNames: string[];
|
|
373
383
|
}
|
|
384
|
+
export interface InstanceAiActivityEntry {
|
|
385
|
+
id: number;
|
|
386
|
+
at: string;
|
|
387
|
+
category: string;
|
|
388
|
+
action: string;
|
|
389
|
+
resourceType?: string;
|
|
390
|
+
resourceId?: string;
|
|
391
|
+
resourceName?: string;
|
|
392
|
+
byCurrentUser: boolean;
|
|
393
|
+
detail?: Record<string, unknown>;
|
|
394
|
+
}
|
|
395
|
+
export interface InstanceAiActivityExpansion {
|
|
396
|
+
entry: InstanceAiActivityEntry;
|
|
397
|
+
resourceHistory: InstanceAiActivityEntry[];
|
|
398
|
+
liveRecordHint?: string;
|
|
399
|
+
}
|
|
400
|
+
export interface InstanceAiActivityService {
|
|
401
|
+
list(input: {
|
|
402
|
+
limit: number;
|
|
403
|
+
category?: string;
|
|
404
|
+
resourceId?: string;
|
|
405
|
+
beforeId?: number;
|
|
406
|
+
}): Promise<InstanceAiActivityEntry[]>;
|
|
407
|
+
expand(id: number): Promise<InstanceAiActivityExpansion | null>;
|
|
408
|
+
}
|
|
374
409
|
export interface InstanceAiMcpService {
|
|
375
410
|
search(queries: string[]): Promise<McpRegistryServerSummary[]>;
|
|
376
411
|
getServers(slugs: string[]): Promise<McpRegistryConnectServerSummary[]>;
|
|
@@ -409,7 +444,9 @@ export interface InstanceAiNodeService {
|
|
|
409
444
|
query?: string;
|
|
410
445
|
gatewayCreditsOnly?: boolean;
|
|
411
446
|
}): Promise<NodeSummary[]>;
|
|
412
|
-
getDescription(nodeType: string, version?: number
|
|
447
|
+
getDescription(nodeType: string, version?: number, options?: {
|
|
448
|
+
includeGatewayMetadata?: boolean;
|
|
449
|
+
}): Promise<NodeDescription>;
|
|
413
450
|
listSearchable(): Promise<SearchableNodeDescription[]>;
|
|
414
451
|
getNodeTypeDefinition?(nodeType: string, options?: {
|
|
415
452
|
version?: string;
|
|
@@ -769,6 +806,7 @@ export interface InstanceAiConversationHistoryReader {
|
|
|
769
806
|
export interface InstanceAiContext {
|
|
770
807
|
userId: string;
|
|
771
808
|
tracing?: InstanceAiTraceContext;
|
|
809
|
+
runtimeSkillCatalog?: RuntimeSkillSource;
|
|
772
810
|
projectId?: string;
|
|
773
811
|
folderExplorationEnabled?: boolean;
|
|
774
812
|
modelId?: ModelConfig;
|
|
@@ -780,6 +818,7 @@ export interface InstanceAiContext {
|
|
|
780
818
|
evaluationConfigService?: InstanceAiEvaluationConfigService;
|
|
781
819
|
mcpService?: InstanceAiMcpService;
|
|
782
820
|
conversationHistoryService?: InstanceAiConversationHistoryReader;
|
|
821
|
+
activityService?: InstanceAiActivityService;
|
|
783
822
|
connectedMcpServices?: ConnectedMcpService[];
|
|
784
823
|
agentBuilderTarget?: {
|
|
785
824
|
agentId: string;
|
|
@@ -827,6 +866,7 @@ export interface InstanceAiContext {
|
|
|
827
866
|
};
|
|
828
867
|
recordWorkflowCodeSnapshot?: (snapshot: WorkflowCodeSnapshotInput) => void;
|
|
829
868
|
setupItemsEmitter?: SetupItemsEmitter;
|
|
869
|
+
markWorkflowSetupHandled?: (workflowId: string) => Promise<void>;
|
|
830
870
|
aiCreatedWorkflowIds?: Set<string>;
|
|
831
871
|
currentUserAttachments?: InstanceAiFileAttachment[];
|
|
832
872
|
logger: Logger;
|
|
@@ -851,8 +891,10 @@ export interface InstanceAiContext {
|
|
|
851
891
|
}
|
|
852
892
|
export interface SetupItemsEmitter {
|
|
853
893
|
emit(workflowId: string, items: InstanceAiSetupItem[]): boolean;
|
|
894
|
+
announce(workflowId: string, items: InstanceAiSetupItem[]): Promise<void>;
|
|
854
895
|
merge(workflowId: string, items: InstanceAiSetupItem[]): boolean;
|
|
855
896
|
lastWorkflowId(): string | undefined;
|
|
897
|
+
workflowIds(): string[];
|
|
856
898
|
}
|
|
857
899
|
export interface TaskStorage {
|
|
858
900
|
get(threadId: string): Promise<TaskList | null>;
|
|
@@ -1005,6 +1047,7 @@ export interface InstanceAiMemoryConfig {
|
|
|
1005
1047
|
observationalMemory?: {
|
|
1006
1048
|
observerThresholdTokens: number;
|
|
1007
1049
|
reflectorThresholdTokens: number;
|
|
1050
|
+
midRunObservation?: boolean;
|
|
1008
1051
|
onTaskUsage?: (report: MemoryTaskUsageReport) => void | Promise<void>;
|
|
1009
1052
|
};
|
|
1010
1053
|
}
|
|
@@ -1100,48 +1143,18 @@ export interface BackgroundTaskResult {
|
|
|
1100
1143
|
text: string;
|
|
1101
1144
|
outcome?: Record<string, unknown>;
|
|
1102
1145
|
}
|
|
1103
|
-
export interface SpawnBackgroundTaskOptions {
|
|
1104
|
-
taskId: string;
|
|
1105
|
-
threadId: string;
|
|
1106
|
-
agentId: string;
|
|
1107
|
-
role: string;
|
|
1108
|
-
traceContext?: InstanceAiTraceContext;
|
|
1109
|
-
createTraceContext?: () => Promise<InstanceAiTraceContext | undefined>;
|
|
1110
|
-
plannedTaskId?: string;
|
|
1111
|
-
workItemId?: string;
|
|
1112
|
-
dedupeKey?: {
|
|
1113
|
-
plannedTaskId?: string;
|
|
1114
|
-
workflowId?: string;
|
|
1115
|
-
role: string;
|
|
1116
|
-
};
|
|
1117
|
-
parentCheckpointId?: string;
|
|
1118
|
-
run: (signal: AbortSignal, drainCorrections: () => string[], waitForCorrection: () => Promise<void>, taskContext: {
|
|
1119
|
-
traceContext?: InstanceAiTraceContext;
|
|
1120
|
-
}) => Promise<string | BackgroundTaskResult>;
|
|
1121
|
-
}
|
|
1122
|
-
export type SpawnBackgroundTaskResult = {
|
|
1123
|
-
status: 'started';
|
|
1124
|
-
taskId: string;
|
|
1125
|
-
agentId: string;
|
|
1126
|
-
} | {
|
|
1127
|
-
status: 'limit-reached';
|
|
1128
|
-
} | {
|
|
1129
|
-
status: 'duplicate';
|
|
1130
|
-
existing: {
|
|
1131
|
-
taskId: string;
|
|
1132
|
-
agentId: string;
|
|
1133
|
-
role: string;
|
|
1134
|
-
plannedTaskId?: string;
|
|
1135
|
-
workItemId?: string;
|
|
1136
|
-
};
|
|
1137
|
-
};
|
|
1138
1146
|
export interface WorkflowTaskService {
|
|
1139
1147
|
reportBuildOutcome(outcome: WorkflowBuildOutcome): Promise<WorkflowLoopAction>;
|
|
1140
1148
|
reportVerificationVerdict(verdict: VerificationResult): Promise<WorkflowLoopAction>;
|
|
1141
1149
|
getBuildOutcome(workItemId: string): Promise<WorkflowBuildOutcome | undefined>;
|
|
1142
1150
|
getLatestBuildOutcomeForWorkflow(workflowId: string): Promise<WorkflowBuildOutcome | undefined>;
|
|
1143
1151
|
getWorkflowLoopState(workItemId: string): Promise<WorkflowLoopState | undefined>;
|
|
1152
|
+
beginVerification(outcome: WorkflowBuildOutcome, state: WorkflowLoopState, runId: string): Promise<boolean>;
|
|
1144
1153
|
updateBuildOutcome(workItemId: string, update: Partial<WorkflowBuildOutcome>): Promise<void>;
|
|
1154
|
+
startVerification(workItemId: string, triggerNodeName?: string): Promise<WorkflowTriggerVerificationProgress | undefined>;
|
|
1155
|
+
recordVerification(workItemId: string, verification: WorkflowVerificationEvidence & {
|
|
1156
|
+
claim: VerificationClaim;
|
|
1157
|
+
}, previousProgress?: WorkflowTriggerVerificationProgress): Promise<VerificationClaim | undefined>;
|
|
1145
1158
|
}
|
|
1146
1159
|
export interface OrchestrationContext {
|
|
1147
1160
|
threadId: string;
|
|
@@ -1149,34 +1162,19 @@ export interface OrchestrationContext {
|
|
|
1149
1162
|
messageGroupId?: string;
|
|
1150
1163
|
userId: string;
|
|
1151
1164
|
projectId?: string;
|
|
1165
|
+
promptConfiguration?: InstanceAiPromptConfiguration;
|
|
1166
|
+
disabledToolNames?: ReadonlySet<string>;
|
|
1167
|
+
setupPanelEnabled?: boolean;
|
|
1152
1168
|
orchestratorAgentId: string;
|
|
1153
1169
|
modelId: ModelConfig;
|
|
1154
|
-
|
|
1170
|
+
modelStreamStallOptions?: Pick<ExecutionOptions, 'modelStreamIdleTimeoutMs' | 'modelStreamFirstOutputTimeoutMs'>;
|
|
1155
1171
|
eventBus: InstanceAiEventBus;
|
|
1156
1172
|
logger: Logger;
|
|
1157
1173
|
trackTelemetry?: (eventName: string, properties: Record<string, GenericValue>) => void;
|
|
1158
1174
|
claimSubAgentUsage?: (dedupeId: string, usage: BuilderUsageItem[], status: TraceStatus) => Promise<void>;
|
|
1159
|
-
domainTools: InstanceAiToolRegistry;
|
|
1160
1175
|
abortSignal: AbortSignal;
|
|
1161
1176
|
taskStorage: TaskStorage;
|
|
1162
1177
|
tracing?: InstanceAiTraceContext;
|
|
1163
|
-
waitForConfirmation?: (requestId: string) => Promise<{
|
|
1164
|
-
approved: boolean;
|
|
1165
|
-
credentialId?: string;
|
|
1166
|
-
credentials?: Record<string, string>;
|
|
1167
|
-
autoSetup?: {
|
|
1168
|
-
credentialType: string;
|
|
1169
|
-
};
|
|
1170
|
-
userInput?: string;
|
|
1171
|
-
domainAccessAction?: string;
|
|
1172
|
-
resourceDecision?: string;
|
|
1173
|
-
answers?: Array<{
|
|
1174
|
-
questionId: string;
|
|
1175
|
-
selectedOptions: string[];
|
|
1176
|
-
customText?: string;
|
|
1177
|
-
skipped?: boolean;
|
|
1178
|
-
}>;
|
|
1179
|
-
}>;
|
|
1180
1178
|
localMcpServer?: LocalMcpServer;
|
|
1181
1179
|
mcpTools?: InstanceAiToolRegistry;
|
|
1182
1180
|
runtimeSkills?: RuntimeSkillSource;
|
|
@@ -1184,7 +1182,6 @@ export interface OrchestrationContext {
|
|
|
1184
1182
|
oauth2CallbackUrl?: string;
|
|
1185
1183
|
webhookBaseUrl?: string;
|
|
1186
1184
|
formBaseUrl?: string;
|
|
1187
|
-
spawnBackgroundTask?: (opts: SpawnBackgroundTaskOptions) => SpawnBackgroundTaskResult;
|
|
1188
1185
|
cancelBackgroundTask?: (taskId: string) => Promise<void>;
|
|
1189
1186
|
plannedTaskService?: PlannedTaskService;
|
|
1190
1187
|
schedulePlannedTasks?: () => Promise<void>;
|
|
@@ -1192,7 +1189,6 @@ export interface OrchestrationContext {
|
|
|
1192
1189
|
workspace?: Workspace;
|
|
1193
1190
|
workspaceRoot?: string;
|
|
1194
1191
|
nodeDefinitionDirs?: string[];
|
|
1195
|
-
memory?: BuiltMemory;
|
|
1196
1192
|
currentUserMessage?: string;
|
|
1197
1193
|
isReplanFollowUp?: boolean;
|
|
1198
1194
|
isCheckpointFollowUp?: boolean;
|
|
@@ -1203,12 +1199,6 @@ export interface OrchestrationContext {
|
|
|
1203
1199
|
touchRun?: () => boolean;
|
|
1204
1200
|
touchBackgroundTask?: (taskId: string) => boolean;
|
|
1205
1201
|
workflowTaskService?: WorkflowTaskService;
|
|
1206
|
-
tracingProxyConfig?: ServiceProxyConfig;
|
|
1207
|
-
getRunningTaskSummaries?: () => Array<{
|
|
1208
|
-
taskId: string;
|
|
1209
|
-
role: string;
|
|
1210
|
-
goal?: string;
|
|
1211
|
-
}>;
|
|
1212
1202
|
timeZone?: string;
|
|
1213
1203
|
}
|
|
1214
1204
|
export interface CreateInstanceAgentOptions {
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA+yCa,QAAA,qCAAqC,GAAG,EAAE,CAAC;AAC3C,QAAA,oCAAoC,GAAG,CAAC,CAAC;AAmQzC,QAAA,kBAAkB,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAU,CAAC;AAE/D,QAAA,yBAAyB,GAAG,CAAC,UAAU,CAAU,CAAC;AAClD,QAAA,yBAAyB,GAAG;IACxC,GAAG,QAAA,kBAAkB;IACrB,GAAG,QAAA,yBAAyB;CACnB,CAAC"}
|
|
@@ -6,6 +6,7 @@ exports.createEvalAgent = createEvalAgent;
|
|
|
6
6
|
exports.extractText = extractText;
|
|
7
7
|
const agents_1 = require("@n8n/agents");
|
|
8
8
|
Object.defineProperty(exports, "Tool", { enumerable: true, get: function () { return agents_1.Tool; } });
|
|
9
|
+
const agent_config_1 = require("@n8n/ai-utilities/agent-config");
|
|
9
10
|
const parse_model_headers_1 = require("./parse-model-headers");
|
|
10
11
|
const apply_agent_thinking_1 = require("../agent/apply-agent-thinking");
|
|
11
12
|
exports.SONNET_MODEL = 'anthropic/claude-sonnet-4-6';
|
|
@@ -30,7 +31,7 @@ function isResolvingBuilderModel(modelId) {
|
|
|
30
31
|
return modelId === builderModel;
|
|
31
32
|
}
|
|
32
33
|
function getApiKey(modelId) {
|
|
33
|
-
const
|
|
34
|
+
const provider = (0, agent_config_1.getProviderPrefix)(modelId);
|
|
34
35
|
const providerKeyEnv = PROVIDER_API_KEY_ENV[provider];
|
|
35
36
|
const providerKey = providerKeyEnv ? process.env[providerKeyEnv] : undefined;
|
|
36
37
|
const anthropicLegacy = provider === 'anthropic' ? process.env.N8N_AI_ANTHROPIC_KEY : undefined;
|
|
@@ -67,12 +68,7 @@ function allowsKeylessCustomEndpoint(provider) {
|
|
|
67
68
|
}
|
|
68
69
|
function resolveEvalModelConfig(model) {
|
|
69
70
|
const modelId = getModelId(model);
|
|
70
|
-
const
|
|
71
|
-
const joinedProviderModelId = rest.join('/');
|
|
72
|
-
let providerModelId = modelId;
|
|
73
|
-
if (joinedProviderModelId.length > 0) {
|
|
74
|
-
providerModelId = joinedProviderModelId;
|
|
75
|
-
}
|
|
71
|
+
const { provider, model: providerModelId } = (0, agent_config_1.splitModelId)(modelId);
|
|
76
72
|
const attachBuilderEndpoint = isResolvingBuilderModel(modelId);
|
|
77
73
|
return {
|
|
78
74
|
modelId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-agents.js","sourceRoot":"","sources":["../../src/utils/eval-agents.ts"],"names":[],"mappings":";;;;;;AAEA,wCAAiF;qFAAjE,aAAI;
|
|
1
|
+
{"version":3,"file":"eval-agents.js","sourceRoot":"","sources":["../../src/utils/eval-agents.ts"],"names":[],"mappings":";;;;;;AAEA,wCAAiF;qFAAjE,aAAI;AACpB,iEAAiF;AAEjF,+DAA8D;AAC9D,wEAAmE;AAQtD,QAAA,YAAY,GAAG,6BAA6B,CAAC;AAC7C,QAAA,WAAW,GAAG,qCAAqC,CAAC;AAMjE,MAAM,oBAAoB,GAA2B;IACpD,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,8BAA8B;IACtC,MAAM,EAAE,gBAAgB;IACxB,GAAG,EAAE,aAAa;CAClB,CAAC;AAWF,SAAS,UAAU,CAAC,KAAc;IACjC,MAAM,OAAO,GACZ,KAAK;QACL,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACtC,OAAO,CAAC,GAAG,CAAC,qBAAqB;QACjC,QAAA,YAAY,CAAC;IACd,OAAO,OAAO,CAAC;AAChB,CAAC;AAQD,SAAS,uBAAuB,CAAC,OAAe;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC;IAC/D,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,OAAO,KAAK,YAAY,CAAC;AACjC,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IACjC,MAAM,QAAQ,GAAG,IAAA,gCAAiB,EAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,MAAM,eAAe,GAAG,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;IAK7D,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC;QAC3C,CAAC,CAAC,CAAC,UAAU,IAAI,eAAe,IAAI,WAAW,CAAC;QAChD,CAAC,CAAC,CAAC,eAAe,IAAI,WAAW,IAAI,UAAU,CAAC,CAAC;IAElD,IAAI,CAAC,GAAG,EAAE,CAAC;QAGV,IAAI,uBAAuB,CAAC,OAAO,CAAC,IAAI,2BAA2B,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QACzF,MAAM,IAAI,KAAK,CACd,mCAAmC,OAAO,uCACzC,QAAQ,KAAK,WAAW;YACvB,CAAC,CAAC,+CAA+C;YACjD,CAAC,CAAC,cAAc;gBACf,CAAC,CAAC,OAAO,cAAc,EAAE;gBACzB,CAAC,CAAC,EACL,uBAAuB,CACvB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,WAAW;IACnB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,eAAe;IACvB,OAAO,IAAA,2CAAqB,EAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAgB;IACpD,IAAI,CAAC,WAAW,EAAE;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,eAAe,EAAE;QAAE,OAAO,IAAI,CAAC;IAEnC,OAAO,QAAQ,KAAK,QAAQ,CAAC;AAC9B,CAAC;AAED,gCAAuC,KAAc;IACpD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAA,2BAAY,EAAC,OAAO,CAAC,CAAC;IAGnE,MAAM,qBAAqB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC/D,OAAO;QACN,OAAO;QACP,QAAQ;QACR,eAAe;QACf,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;QAC1B,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;QACtD,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS;KAC9D,CAAC;AACH,CAAC;AAOY,QAAA,eAAe,GAAG;IAC9B,SAAS,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,WAAoB,EAAE,EAAE;CAC3D,CAAC;AAEF,MAAM,mBAAmB,GAAG;IAC3B,eAAe,EAAE,QAAA,eAAe;CAChC,CAAC;AAQF,SAAS,iBAAiB,CAAC,KAAc,EAAE,mBAAiC;IAC3E,IAAI,CAAC;QACJ,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO;YACN,EAAE,EAAE,OAAO;YACX,MAAM;YACN,GAAG;YACH,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,mBAAmB;YAAE,OAAO,mBAAmB,CAAC;QACpD,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED,yBACC,IAAY,EACZ,OAMC;IAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,IAAI,cAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE3C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACP,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,IAAA,yCAAkB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEjC,OAAO,KAAK,CAAC;AACd,CAAC;AAMD,qBAA4B,MAAsB;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QAC3D,IAAI,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QACjE,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,IACC,OAAO,IAAI,KAAK,QAAQ;gBACxB,IAAI,KAAK,IAAI;gBACb,MAAM,IAAI,IAAI;gBACd,IAAI,CAAC,IAAI,KAAK,MAAM;gBACpB,MAAM,IAAI,IAAI,EACb,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/B,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateValidatedJson = generateValidatedJson;
|
|
4
|
+
const llm_output_1 = require("@n8n/ai-utilities/llm-output");
|
|
4
5
|
const eval_agents_1 = require("./eval-agents");
|
|
5
|
-
function stripMarkdownFences(text) {
|
|
6
|
-
const trimmed = text.trim();
|
|
7
|
-
const fencedMatch = /^```(?:json)?\s*([\s\S]*?)\s*```$/i.exec(trimmed);
|
|
8
|
-
return fencedMatch ? fencedMatch[1].trim() : trimmed;
|
|
9
|
-
}
|
|
10
6
|
async function generateValidatedJson(agentName, options) {
|
|
11
7
|
let text;
|
|
12
8
|
try {
|
|
@@ -25,7 +21,7 @@ async function generateValidatedJson(agentName, options) {
|
|
|
25
21
|
}
|
|
26
22
|
let parsed;
|
|
27
23
|
try {
|
|
28
|
-
parsed = JSON.parse(
|
|
24
|
+
parsed = JSON.parse((0, llm_output_1.extractJsonCandidate)(text));
|
|
29
25
|
}
|
|
30
26
|
catch {
|
|
31
27
|
return { ok: false, reason: 'invalid_json' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-validated-json.js","sourceRoot":"","sources":["../../src/utils/generate-validated-json.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"generate-validated-json.js","sourceRoot":"","sources":["../../src/utils/generate-validated-json.ts"],"names":[],"mappings":";;;AAWA,6DAAoE;AAGpE,+CAA6D;AAmBtD,KAAK,gCACX,SAAiB,EACjB,OAAwC;IAExC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,IAAA,6BAAe,EAAC,SAAS,EAAE;YACtC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;SAChD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC;YACjC,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE;SACvF,CAAC,CAAC;QACH,IAAI,GAAG,IAAA,yBAAW,EAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACnD,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iCAAoB,EAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACjF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { WorkflowLoopAction } from './workflow-loop-state';
|
|
2
2
|
export interface WorkflowLoopGuidanceOptions {
|
|
3
3
|
workItemId?: string;
|
|
4
|
+
setupPanelEnabled?: boolean;
|
|
4
5
|
}
|
|
5
6
|
export declare function formatWorkflowLoopGuidance(action: WorkflowLoopAction, options?: WorkflowLoopGuidanceOptions): string;
|
|
@@ -1,6 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.formatWorkflowLoopGuidance = formatWorkflowLoopGuidance;
|
|
4
|
+
const render_claim_1 = require("./render-claim");
|
|
5
|
+
function formatClaimLead(claim) {
|
|
6
|
+
if (claim?.level === 'verified') {
|
|
7
|
+
if (claim.liveState === 'live-stale') {
|
|
8
|
+
return (`${(0, render_claim_1.formatClaimHeadline)(claim)} ${(0, render_claim_1.describeClaimLiveState)(claim) ?? ''} ` +
|
|
9
|
+
'Do NOT call the workflow live, running, or working in production. ' +
|
|
10
|
+
'Say the fix is in the draft.');
|
|
11
|
+
}
|
|
12
|
+
return 'Workflow verified successfully.';
|
|
13
|
+
}
|
|
14
|
+
if (claim === undefined) {
|
|
15
|
+
return ('Build complete. No automatic verification evidence is recorded for this workflow. ' +
|
|
16
|
+
'If you are relying on a live run you inspected, say which execution. ' +
|
|
17
|
+
'Otherwise do NOT call the workflow verified, tested, or working.');
|
|
18
|
+
}
|
|
19
|
+
const rules = [
|
|
20
|
+
'Do NOT call the workflow verified, tested, working, or ready to publish.',
|
|
21
|
+
'Do NOT offer to publish it.',
|
|
22
|
+
(claim.pendingTriggers?.length ?? 0) > 0
|
|
23
|
+
? 'Follow the verification obligation for the remaining triggers. Respect its attempt limit.'
|
|
24
|
+
: claim.liveTestRecommended
|
|
25
|
+
? 'Offer a live end-to-end test instead.'
|
|
26
|
+
: '',
|
|
27
|
+
].filter((rule) => rule !== '');
|
|
28
|
+
return [(0, render_claim_1.formatClaimHeadline)(claim), ...(0, render_claim_1.describeClaimCoverage)(claim), ...rules].join(' ');
|
|
29
|
+
}
|
|
30
|
+
function isVerifiedClaim(claim) {
|
|
31
|
+
return claim?.level === 'verified' && claim.liveState !== 'live-stale';
|
|
32
|
+
}
|
|
4
33
|
function formatSourceFileInstruction(sourceFilePath) {
|
|
5
34
|
if (!sourceFilePath) {
|
|
6
35
|
return 'edit the workspace source file, then call `build-workflow` with that filePath';
|
|
@@ -14,20 +43,35 @@ function formatWorkflowLoopGuidance(action, options = {}) {
|
|
|
14
43
|
case 'continue_building':
|
|
15
44
|
return `BUILD FAILED: ${action.reason}. Fix the workflow source file: ${formatSourceFileInstruction(action.sourceFilePath)}.`;
|
|
16
45
|
case 'done': {
|
|
46
|
+
const claimLead = formatClaimLead(action.claim);
|
|
17
47
|
if (action.setupSkippedByUser) {
|
|
18
|
-
return (
|
|
48
|
+
return (claimLead +
|
|
49
|
+
' The credentials it still needs are ones the user ' +
|
|
19
50
|
'skipped earlier in this conversation, so do NOT open the setup card again. Tell them ' +
|
|
20
51
|
'which parts stay unconfigured and what that means when the workflow runs, and offer ' +
|
|
21
52
|
'to set them up whenever they want.');
|
|
22
53
|
}
|
|
23
54
|
if (action.mockedCredentialTypes?.length || action.hasUnresolvedPlaceholders) {
|
|
24
|
-
|
|
55
|
+
if (options.setupPanelEnabled) {
|
|
56
|
+
return (`${claimLead} It still uses temporary mock data. ` +
|
|
57
|
+
`Call \`workflows(action="setup")\` with workflowId "${action.workflowId ?? 'unknown'}" once: ` +
|
|
58
|
+
'it lists the remaining credentials and values in the setup panel next to the chat and returns them to you. ' +
|
|
59
|
+
'When the result has `announced: true`, summarize it, report any validation warnings, and end your turn. ' +
|
|
60
|
+
'Otherwise follow the returned guidance for validation errors, approvals, skipped items, or an existing setup card. ' +
|
|
61
|
+
'Do not call `credentials(action="setup")` or `apply-workflow-credentials`, and do not tell the user to open the editor or canvas.');
|
|
62
|
+
}
|
|
63
|
+
return (`${claimLead} It still uses temporary mock data. ` +
|
|
25
64
|
`Call \`workflows(action="setup")\` with workflowId "${action.workflowId ?? 'unknown'}" ` +
|
|
26
|
-
'to open the inline setup card in the
|
|
65
|
+
'to open the inline setup card in the n8n Assistant panel for credentials, parameters, and triggers. ' +
|
|
27
66
|
'Do not tell the user to open the editor, use the canvas, or click a Setup button. ' +
|
|
28
67
|
'Do not call `credentials(action="setup")` or `apply-workflow-credentials` — `workflows(action="setup")` handles everything.');
|
|
29
68
|
}
|
|
30
|
-
|
|
69
|
+
const closing = action.claim?.level === 'verified' && action.claim.liveState === 'live-stale'
|
|
70
|
+
? 'Report the outcome to the user, and ask whether to publish the fix.'
|
|
71
|
+
: isVerifiedClaim(action.claim)
|
|
72
|
+
? 'Report completion to the user.'
|
|
73
|
+
: 'Report the outcome to the user.';
|
|
74
|
+
return `${claimLead} ${closing}${action.workflowId ? ` Workflow ID: ${action.workflowId}` : ''}`;
|
|
31
75
|
}
|
|
32
76
|
case 'verify':
|
|
33
77
|
return (`VERIFY: Inspect the persisted workflow ${action.workflowId}: read the bound workspace source file you just built, or call \`workflows(action="get-as-code", workflowId)\` when you need to check for outside changes — it refreshes the file when the saved workflow changed and returns a node index. If it reports status "conflict", the file has unbuilt edits: build or discard them and call it again before trusting the index. Compare the relevant lines to the requested outcome. ` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guidance.js","sourceRoot":"","sources":["../../src/workflow-loop/guidance.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"guidance.js","sourceRoot":"","sources":["../../src/workflow-loop/guidance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { VerificationClaim } from './workflow-loop-state';
|
|
2
|
+
export declare function formatClaimNodeList(names: readonly string[], max?: number): string;
|
|
3
|
+
export declare function formatClaimHeadline(claim: VerificationClaim): string;
|
|
4
|
+
export declare function describeClaimLiveState(claim: VerificationClaim): string | undefined;
|
|
5
|
+
export declare function describeClaimCoverage(claim: VerificationClaim): string[];
|
|
6
|
+
export declare function formatClaimDisclosure(claim: VerificationClaim): string | undefined;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatClaimNodeList = formatClaimNodeList;
|
|
4
|
+
exports.formatClaimHeadline = formatClaimHeadline;
|
|
5
|
+
exports.describeClaimLiveState = describeClaimLiveState;
|
|
6
|
+
exports.describeClaimCoverage = describeClaimCoverage;
|
|
7
|
+
exports.formatClaimDisclosure = formatClaimDisclosure;
|
|
8
|
+
function formatClaimNodeList(names, max = 8) {
|
|
9
|
+
if (names.length <= max)
|
|
10
|
+
return names.join(', ');
|
|
11
|
+
return `${names.slice(0, max).join(', ')} and ${String(names.length - max)} more`;
|
|
12
|
+
}
|
|
13
|
+
function formatClaimHeadline(claim) {
|
|
14
|
+
switch (claim.level) {
|
|
15
|
+
case 'verified':
|
|
16
|
+
return claim.liveState === 'live-stale'
|
|
17
|
+
? 'Verified in the draft, NOT live.'
|
|
18
|
+
: 'Verified end to end.';
|
|
19
|
+
case 'unproven':
|
|
20
|
+
return ('Changed but NOT verified. The node(s) this change was about were never proven: ' +
|
|
21
|
+
`${formatClaimNodeList(claim.unprovenTargets)}.`);
|
|
22
|
+
case 'partial':
|
|
23
|
+
return 'Ran without errors, but NOT fully verified.';
|
|
24
|
+
case 'failed':
|
|
25
|
+
return 'Verification did not pass.';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function describeClaimLiveState(claim) {
|
|
29
|
+
if (claim.liveState !== 'live-stale')
|
|
30
|
+
return undefined;
|
|
31
|
+
return ('This ran against the draft. The live version is still the previous one, ' +
|
|
32
|
+
'so nothing changed for production yet.');
|
|
33
|
+
}
|
|
34
|
+
function describeClaimCoverage(claim) {
|
|
35
|
+
const facts = [];
|
|
36
|
+
if ((claim.pendingTriggers?.length ?? 0) > 0) {
|
|
37
|
+
facts.push(`Verification evidence is incomplete for these triggers: ${formatClaimNodeList(claim.pendingTriggers ?? [])}.`);
|
|
38
|
+
}
|
|
39
|
+
const liveState = describeClaimLiveState(claim);
|
|
40
|
+
if (liveState !== undefined)
|
|
41
|
+
facts.push(liveState);
|
|
42
|
+
if (claim.nodesNotReached.length > 0) {
|
|
43
|
+
facts.push(`${String(claim.nodesNotReached.length)} of ${String(claim.plannedNodeCount)} node(s) were ` +
|
|
44
|
+
`never reached, so they are UNVERIFIED: ${formatClaimNodeList(claim.nodesNotReached)}.`);
|
|
45
|
+
}
|
|
46
|
+
if (claim.simulatedNodes.length > 0) {
|
|
47
|
+
facts.push('Output was simulated, so nothing real happened at: ' +
|
|
48
|
+
`${formatClaimNodeList(claim.simulatedNodes.map((node) => node.nodeName))}.`);
|
|
49
|
+
}
|
|
50
|
+
if (claim.pinnedNodes.length > 0) {
|
|
51
|
+
facts.push(`Some output came from pin data saved on the workflow: ${formatClaimNodeList(claim.pinnedNodes)}. ` +
|
|
52
|
+
'Remove those pins for a live test.');
|
|
53
|
+
}
|
|
54
|
+
return facts;
|
|
55
|
+
}
|
|
56
|
+
function formatClaimDisclosure(claim) {
|
|
57
|
+
if (claim.level === 'verified')
|
|
58
|
+
return undefined;
|
|
59
|
+
return [formatClaimHeadline(claim), ...describeClaimCoverage(claim)].join(' ');
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=render-claim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-claim.js","sourceRoot":"","sources":["../../src/workflow-loop/render-claim.ts"],"names":[],"mappings":";;;;;;;AAUA,6BAAoC,KAAwB,EAAE,GAAG,GAAG,CAAC;IACpE,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;AACnF,CAAC;AAED,6BAAoC,KAAwB;IAC3D,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,UAAU;YAId,OAAO,KAAK,CAAC,SAAS,KAAK,YAAY;gBACtC,CAAC,CAAC,kCAAkC;gBACpC,CAAC,CAAC,sBAAsB,CAAC;QAC3B,KAAK,UAAU;YACd,OAAO,CACN,iFAAiF;gBACjF,GAAG,mBAAmB,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAChD,CAAC;QACH,KAAK,SAAS;YACb,OAAO,6CAA6C,CAAC;QACtD,KAAK,QAAQ;YACZ,OAAO,4BAA4B,CAAC;IACtC,CAAC;AACF,CAAC;AAYD,gCAAuC,KAAwB;IAC9D,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY;QAAE,OAAO,SAAS,CAAC;IACvD,OAAO,CACN,0EAA0E;QAC1E,wCAAwC,CACxC,CAAC;AACH,CAAC;AAED,+BAAsC,KAAwB;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CACT,2DAA2D,mBAAmB,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,GAAG,CAC9G,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,SAAS,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEnD,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CACT,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,gBAAgB;YAC3F,0CAA0C,mBAAmB,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CACxF,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CACT,qDAAqD;YACpD,GAAG,mBAAmB,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAC7E,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CACT,yDAAyD,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;YAClG,oCAAoC,CACrC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,+BAAsC,KAAwB;IAK7D,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACjD,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import type { RemediationMetadata, WorkflowBuildOutcome } from './workflow-loop-state';
|
|
1
|
+
import type { RemediationMetadata, WorkflowBuildOutcome, WorkflowLoopState } from './workflow-loop-state';
|
|
2
2
|
export declare function isNeedsSetupRemediation(remediation: RemediationMetadata | undefined): remediation is RemediationMetadata & {
|
|
3
3
|
category: 'needs_setup';
|
|
4
4
|
shouldEdit: false;
|
|
5
5
|
};
|
|
6
6
|
export declare function shouldVerifyBeforeSetup(outcome: WorkflowBuildOutcome): boolean;
|
|
7
|
+
export declare function canVerifyPendingSetup(outcome: WorkflowBuildOutcome): boolean;
|
|
8
|
+
export declare function stateForPendingSetupVerification(state: WorkflowLoopState, outcome: WorkflowBuildOutcome, runId?: string): WorkflowLoopState | undefined;
|
|
7
9
|
export declare function buildRemediationForVerification(outcome: WorkflowBuildOutcome, remediation: RemediationMetadata | undefined): RemediationMetadata | undefined;
|
|
8
10
|
export declare function setupRemediationBlocksVerification(remediation: RemediationMetadata | undefined, outcome: WorkflowBuildOutcome): boolean;
|
|
@@ -2,14 +2,52 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isNeedsSetupRemediation = isNeedsSetupRemediation;
|
|
4
4
|
exports.shouldVerifyBeforeSetup = shouldVerifyBeforeSetup;
|
|
5
|
+
exports.canVerifyPendingSetup = canVerifyPendingSetup;
|
|
6
|
+
exports.stateForPendingSetupVerification = stateForPendingSetupVerification;
|
|
5
7
|
exports.buildRemediationForVerification = buildRemediationForVerification;
|
|
6
8
|
exports.setupRemediationBlocksVerification = setupRemediationBlocksVerification;
|
|
9
|
+
const remediation_1 = require("./remediation");
|
|
7
10
|
function isNeedsSetupRemediation(remediation) {
|
|
8
11
|
return remediation?.category === 'needs_setup' && !remediation.shouldEdit;
|
|
9
12
|
}
|
|
10
13
|
function shouldVerifyBeforeSetup(outcome) {
|
|
11
14
|
return outcome.submitted && outcome.verificationReadiness?.status === 'ready';
|
|
12
15
|
}
|
|
16
|
+
function canVerifyPendingSetup(outcome) {
|
|
17
|
+
return (outcome.submitted &&
|
|
18
|
+
!!outcome.workflowId &&
|
|
19
|
+
outcome.triggerType === 'manual_or_testable' &&
|
|
20
|
+
outcome.executionIntent !== 'one-off' &&
|
|
21
|
+
outcome.verificationReadiness?.status === 'needs_setup' &&
|
|
22
|
+
outcome.nodeSimulationPlan !== undefined &&
|
|
23
|
+
(outcome.verifyAttempts ?? 0) === 0 &&
|
|
24
|
+
outcome.verification?.attempted !== true);
|
|
25
|
+
}
|
|
26
|
+
function stateForPendingSetupVerification(state, outcome, runId) {
|
|
27
|
+
const canRetrySetup = runId !== undefined &&
|
|
28
|
+
state.runId !== runId &&
|
|
29
|
+
isNeedsSetupRemediation(state.lastRemediation) &&
|
|
30
|
+
outcome.submitted &&
|
|
31
|
+
!!outcome.workflowId &&
|
|
32
|
+
outcome.triggerType === 'manual_or_testable' &&
|
|
33
|
+
outcome.executionIntent !== 'one-off' &&
|
|
34
|
+
outcome.verificationReadiness?.status !== 'not_verifiable' &&
|
|
35
|
+
outcome.nodeSimulationPlan !== undefined &&
|
|
36
|
+
(outcome.verifyAttempts ?? 0) < remediation_1.MAX_VERIFY_ATTEMPTS;
|
|
37
|
+
if ((!canVerifyPendingSetup(outcome) && !canRetrySetup) ||
|
|
38
|
+
!(isNeedsSetupRemediation(state.lastRemediation) ||
|
|
39
|
+
(state.lastRemediation === undefined && outcome.needsUserInput))) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
const next = {
|
|
43
|
+
...state,
|
|
44
|
+
phase: 'verifying',
|
|
45
|
+
status: 'active',
|
|
46
|
+
lastRemediation: undefined,
|
|
47
|
+
};
|
|
48
|
+
const blocker = (0, remediation_1.terminalRemediationFromState)(next);
|
|
49
|
+
return blocker ? { ...state, status: 'blocked', lastRemediation: blocker } : next;
|
|
50
|
+
}
|
|
13
51
|
function buildRemediationForVerification(outcome, remediation) {
|
|
14
52
|
return shouldVerifyBeforeSetup(outcome) && isNeedsSetupRemediation(remediation)
|
|
15
53
|
? undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-verification-policy.js","sourceRoot":"","sources":["../../src/workflow-loop/setup-verification-policy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup-verification-policy.js","sourceRoot":"","sources":["../../src/workflow-loop/setup-verification-policy.ts"],"names":[],"mappings":";;;;;;;;AAAA,+CAAkF;AAOlF,iCACC,WAA4C;IAE5C,OAAO,WAAW,EAAE,QAAQ,KAAK,aAAa,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;AAC3E,CAAC;AAED,iCAAwC,OAA6B;IACpE,OAAO,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,qBAAqB,EAAE,MAAM,KAAK,OAAO,CAAC;AAC/E,CAAC;AAGD,+BAAsC,OAA6B;IAClE,OAAO,CACN,OAAO,CAAC,SAAS;QACjB,CAAC,CAAC,OAAO,CAAC,UAAU;QACpB,OAAO,CAAC,WAAW,KAAK,oBAAoB;QAC5C,OAAO,CAAC,eAAe,KAAK,SAAS;QACrC,OAAO,CAAC,qBAAqB,EAAE,MAAM,KAAK,aAAa;QACvD,OAAO,CAAC,kBAAkB,KAAK,SAAS;QACxC,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,KAAK,CAAC;QACnC,OAAO,CAAC,YAAY,EAAE,SAAS,KAAK,IAAI,CACxC,CAAC;AACH,CAAC;AAGD,0CACC,KAAwB,EACxB,OAA6B,EAC7B,KAAc;IAEd,MAAM,aAAa,GAClB,KAAK,KAAK,SAAS;QACnB,KAAK,CAAC,KAAK,KAAK,KAAK;QACrB,uBAAuB,CAAC,KAAK,CAAC,eAAe,CAAC;QAC9C,OAAO,CAAC,SAAS;QACjB,CAAC,CAAC,OAAO,CAAC,UAAU;QACpB,OAAO,CAAC,WAAW,KAAK,oBAAoB;QAC5C,OAAO,CAAC,eAAe,KAAK,SAAS;QACrC,OAAO,CAAC,qBAAqB,EAAE,MAAM,KAAK,gBAAgB;QAC1D,OAAO,CAAC,kBAAkB,KAAK,SAAS;QACxC,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,iCAAmB,CAAC;IACrD,IACC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QACnD,CAAC,CACA,uBAAuB,CAAC,KAAK,CAAC,eAAe,CAAC;YAC9C,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC,CAC/D,EACA,CAAC;QACF,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAsB;QAC/B,GAAG,KAAK;QACR,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,QAAQ;QAChB,eAAe,EAAE,SAAS;KAC1B,CAAC;IACF,MAAM,OAAO,GAAG,IAAA,0CAA4B,EAAC,IAAI,CAAC,CAAC;IACnD,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnF,CAAC;AAED,yCACC,OAA6B,EAC7B,WAA4C;IAE5C,OAAO,uBAAuB,CAAC,OAAO,CAAC,IAAI,uBAAuB,CAAC,WAAW,CAAC;QAC9E,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,WAAW,CAAC;AAChB,CAAC;AAED,4CACC,WAA4C,EAC5C,OAA6B;IAE7B,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,CAAC,qBAAqB,EAAE,MAAM,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACnE,OAAO,OAAO,CAAC,YAAY,EAAE,SAAS,KAAK,IAAI,CAAC;AACjD,CAAC"}
|
|
@@ -9,6 +9,7 @@ export interface DeriveWorkflowVerificationObligationOptions {
|
|
|
9
9
|
owner?: WorkflowBuildOwner;
|
|
10
10
|
plannedTaskId?: string;
|
|
11
11
|
updatedAt?: string;
|
|
12
|
+
setupPanelEnabled?: boolean;
|
|
12
13
|
}
|
|
13
14
|
export declare function deriveWorkflowVerificationObligation(threadId: string, record: WorkflowVerificationObligationRecord, options?: DeriveWorkflowVerificationObligationOptions): WorkflowVerificationObligation;
|
|
14
15
|
export declare function isWorkflowVerificationObligationUnsettled(obligation: WorkflowVerificationObligation): boolean;
|