@n8n/instance-ai 1.15.2 → 1.16.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 +1 -1
- package/dist/agent/apply-agent-thinking.js.map +1 -1
- package/dist/agent/computer-use-prompt.js.map +1 -1
- package/dist/agent/instance-agent.js.map +1 -1
- package/dist/agent/mcp-tool-name-validation.js.map +1 -1
- package/dist/agent/runtime-workspace.js.map +1 -1
- package/dist/agent/sanitize-mcp-schemas.js.map +1 -1
- package/dist/agent/shared-prompts.js +5 -3
- package/dist/agent/shared-prompts.js.map +1 -1
- package/dist/agent/sub-agent-briefing.js.map +1 -1
- package/dist/agent/sub-agent-debriefing.d.ts +14 -14
- package/dist/agent/sub-agent-debriefing.js.map +1 -1
- package/dist/agent/sub-agent-factory.js.map +1 -1
- package/dist/agent/system-prompt.js +29 -18
- 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/run-debug-buffer.js.map +1 -1
- package/dist/debug/sanitize-debug-snapshot.js.map +1 -1
- package/dist/domain-access/domain-access-tracker.js.map +1 -1
- package/dist/domain-access/domain-gating.d.ts +6 -6
- package/dist/domain-access/domain-gating.js.map +1 -1
- package/dist/error-formatting.js.map +1 -1
- package/dist/errors/workflow-save-conflict.error.d.ts +4 -0
- package/dist/errors/workflow-save-conflict.error.js +13 -0
- package/dist/errors/workflow-save-conflict.error.js.map +1 -0
- package/dist/event-bus/event-bus.interface.d.ts +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/knowledge-base/build-templates-index.js.map +1 -1
- package/dist/knowledge-base/extract-builder-templates-archive.js.map +1 -1
- package/dist/knowledge-base/materialize-knowledge-base.js.map +1 -1
- package/dist/mcp/mcp-client-manager.js.map +1 -1
- package/dist/memory/title-utils.js.map +1 -1
- package/dist/parsers/docx-parser.js +1 -34
- package/dist/parsers/docx-parser.js.map +1 -1
- package/dist/parsers/html-parser.js +2 -35
- package/dist/parsers/html-parser.js.map +1 -1
- package/dist/parsers/ooxml-guard.js.map +1 -1
- package/dist/parsers/pdf-parser.js +2 -35
- package/dist/parsers/pdf-parser.js.map +1 -1
- package/dist/parsers/structured-file-parser.js.map +1 -1
- package/dist/parsers/validate-attachments.js.map +1 -1
- package/dist/parsers/xlsx-parser.js +1 -34
- package/dist/parsers/xlsx-parser.js.map +1 -1
- package/dist/planned-tasks/planned-task-permissions.d.ts +2 -2
- package/dist/planned-tasks/planned-task-permissions.js.map +1 -1
- package/dist/planned-tasks/planned-task-service.js +0 -3
- package/dist/planned-tasks/planned-task-service.js.map +1 -1
- package/dist/runtime/background-task-manager.js.map +1 -1
- package/dist/runtime/liveness-policy.js.map +1 -1
- package/dist/runtime/memory-task-registry.js.map +1 -1
- package/dist/runtime/orchestrator-identity.js.map +1 -1
- package/dist/runtime/orchestrator-run-control.js.map +1 -1
- package/dist/runtime/resumable-stream-executor.js +12 -1
- package/dist/runtime/resumable-stream-executor.js.map +1 -1
- package/dist/runtime/run-state-registry.js.map +1 -1
- package/dist/runtime/stream-runner.js.map +1 -1
- package/dist/runtime/terminal-response-guard.js.map +1 -1
- package/dist/skills/materialize-runtime-skills.js.map +1 -1
- package/dist/skills/runtime-skills.js +5 -1
- package/dist/skills/runtime-skills.js.map +1 -1
- package/dist/source-map-filter.d.ts +1 -17
- package/dist/source-map-filter.js +1 -0
- package/dist/source-map-filter.js.map +1 -1
- package/dist/storage/iteration-log.js.map +1 -1
- package/dist/storage/planned-task-storage.js.map +1 -1
- package/dist/storage/terminal-outcome-storage.d.ts +10 -10
- package/dist/storage/terminal-outcome-storage.js.map +1 -1
- package/dist/storage/thread-iteration-log-storage.js.map +1 -1
- package/dist/storage/thread-patch.js.map +1 -1
- package/dist/storage/thread-task-storage.js.map +1 -1
- package/dist/storage/workflow-loop-storage.d.ts +246 -136
- package/dist/storage/workflow-loop-storage.js.map +1 -1
- package/dist/stream/consume-with-hitl.js.map +1 -1
- package/dist/stream/map-chunk.js +2 -0
- package/dist/stream/map-chunk.js.map +1 -1
- package/dist/stream/output-redaction.js.map +1 -1
- package/dist/stream/usage-accumulator.d.ts +12 -12
- package/dist/stream/usage-accumulator.js.map +1 -1
- package/dist/stream/work-summary-accumulator.d.ts +6 -6
- package/dist/stream/work-summary-accumulator.js.map +1 -1
- package/dist/tool-registry.js.map +1 -1
- package/dist/tools/attachments/parse-file.tool.d.ts +32 -32
- package/dist/tools/attachments/parse-file.tool.js.map +1 -1
- package/dist/tools/credentials.tool.d.ts +10 -7
- package/dist/tools/credentials.tool.js +41 -5
- package/dist/tools/credentials.tool.js.map +1 -1
- package/dist/tools/data-tables.tool.js.map +1 -1
- package/dist/tools/evals/analyze-agent-input-columns.service.js.map +1 -1
- package/dist/tools/evals/apply-pin-data.service.js.map +1 -1
- package/dist/tools/evals/column-ref-utils.js.map +1 -1
- package/dist/tools/evals/describe-metric-for-workflow.service.js.map +1 -1
- package/dist/tools/evals/detect-agent-named-refs.service.js.map +1 -1
- package/dist/tools/evals/detect-ai-nodes.js.map +1 -1
- package/dist/tools/evals/detect-tool-refs.service.js.map +1 -1
- package/dist/tools/evals/ensure-eval-data-table.service.js.map +1 -1
- package/dist/tools/evals/eval-config.tool.d.ts +4 -0
- package/dist/tools/evals/eval-config.tool.js +205 -0
- package/dist/tools/evals/eval-config.tool.js.map +1 -0
- package/dist/tools/evals/eval-data-requirements.service.js.map +1 -1
- package/dist/tools/evals/evals.tool.js +6 -1
- package/dist/tools/evals/evals.tool.js.map +1 -1
- package/dist/tools/evals/extract-rows-from-history.service.js.map +1 -1
- package/dist/tools/evals/format-eval-setup-task.js.map +1 -1
- package/dist/tools/evals/generate-sample-rows.service.js.map +1 -1
- package/dist/tools/evals/generate-tool-ref-pin-data.service.js.map +1 -1
- package/dist/tools/evals/metric-catalog.d.ts +1 -1
- package/dist/tools/evals/metric-catalog.js.map +1 -1
- package/dist/tools/executions.tool.js.map +1 -1
- package/dist/tools/filesystem/create-tools-from-mcp-server.js.map +1 -1
- package/dist/tools/index.js +13 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/n8n-docs/ranking.js.map +1 -1
- package/dist/tools/n8n-docs/registry.js.map +1 -1
- package/dist/tools/n8n-docs/schemas.d.ts +44 -44
- package/dist/tools/n8n-docs/schemas.js.map +1 -1
- package/dist/tools/n8n-docs.tool.js +1 -1
- package/dist/tools/n8n-docs.tool.js.map +1 -1
- package/dist/tools/nodes/node-search-engine.js.map +1 -1
- package/dist/tools/nodes/node-search-engine.types.d.ts +1 -1
- package/dist/tools/nodes/preferred-chat-model.js.map +1 -1
- package/dist/tools/nodes.tool.d.ts +21 -0
- package/dist/tools/nodes.tool.js +21 -13
- package/dist/tools/nodes.tool.js.map +1 -1
- package/dist/tools/orchestration/agent-persistence.js.map +1 -1
- package/dist/tools/orchestration/agent-target-binding.d.ts +19 -0
- package/dist/tools/orchestration/agent-target-binding.js +45 -0
- package/dist/tools/orchestration/agent-target-binding.js.map +1 -0
- package/dist/tools/orchestration/build-agent.tool.d.ts +2 -0
- package/dist/tools/orchestration/build-agent.tool.js +194 -0
- package/dist/tools/orchestration/build-agent.tool.js.map +1 -0
- package/dist/tools/orchestration/complete-checkpoint.tool.js.map +1 -1
- package/dist/tools/orchestration/display-utils.js.map +1 -1
- package/dist/tools/orchestration/eval-data-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/eval-setup-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/plan.tool.d.ts +2 -2
- package/dist/tools/orchestration/plan.tool.js +10 -7
- package/dist/tools/orchestration/plan.tool.js.map +1 -1
- package/dist/tools/orchestration/report-verification-verdict.tool.d.ts +12 -12
- package/dist/tools/orchestration/report-verification-verdict.tool.js.map +1 -1
- package/dist/tools/orchestration/tracing-utils.js.map +1 -1
- package/dist/tools/orchestration/verification/analyze-result.d.ts +4 -0
- package/dist/tools/orchestration/verification/analyze-result.js +17 -3
- package/dist/tools/orchestration/verification/analyze-result.js.map +1 -1
- package/dist/tools/orchestration/verification/finalize-result.js +4 -2
- package/dist/tools/orchestration/verification/finalize-result.js.map +1 -1
- package/dist/tools/orchestration/verification/prepare-run.js.map +1 -1
- package/dist/tools/orchestration/verification/reconcile-plan.d.ts +10 -0
- package/dist/tools/orchestration/verification/reconcile-plan.js +33 -0
- package/dist/tools/orchestration/verification/reconcile-plan.js.map +1 -0
- package/dist/tools/orchestration/verification/resolve-target.js.map +1 -1
- package/dist/tools/orchestration/verification/types.d.ts +2 -1
- package/dist/tools/orchestration/verify-built-workflow.tool.d.ts +6 -6
- package/dist/tools/orchestration/verify-built-workflow.tool.js +13 -2
- package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
- package/dist/tools/research.tool.js +1 -34
- package/dist/tools/research.tool.js.map +1 -1
- package/dist/tools/shared/ask-user.tool.d.ts +4 -4
- package/dist/tools/shared/ask-user.tool.js.map +1 -1
- package/dist/tools/task-control.tool.js.map +1 -1
- package/dist/tools/templates.tool.d.ts +2 -0
- package/dist/tools/templates.tool.js +20 -0
- package/dist/tools/templates.tool.js.map +1 -0
- package/dist/tools/tool-ids.d.ts +25 -22
- package/dist/tools/tool-ids.js +6 -6
- package/dist/tools/tool-ids.js.map +1 -1
- package/dist/tools/web-research/sanitize-web-content.js.map +1 -1
- package/dist/tools/workflows/apply-workflow-credentials.tool.js +24 -7
- package/dist/tools/workflows/apply-workflow-credentials.tool.js.map +1 -1
- package/dist/tools/workflows/build-workflow.tool.d.ts +6 -6
- package/dist/tools/workflows/build-workflow.tool.js +63 -7
- package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/classify-node-destructiveness.service.js.map +1 -1
- package/dist/tools/workflows/credential-url-resolver.js.map +1 -1
- package/dist/tools/workflows/credential-utils.d.ts +4 -4
- package/dist/tools/workflows/credential-utils.js +2 -1
- package/dist/tools/workflows/credential-utils.js.map +1 -1
- package/dist/tools/workflows/detect-array-input-collapse.js.map +1 -1
- package/dist/tools/workflows/detect-wrong-kind-locator.js.map +1 -1
- package/dist/tools/workflows/generate-simulation-fixtures.service.js.map +1 -1
- package/dist/tools/workflows/materialize-node-type.tool.d.ts +4 -4
- package/dist/tools/workflows/materialize-node-type.tool.js.map +1 -1
- package/dist/tools/workflows/plan-verification-simulation.js.map +1 -1
- package/dist/tools/workflows/reconcile-simulation-plan.d.ts +9 -0
- package/dist/tools/workflows/reconcile-simulation-plan.js +70 -0
- package/dist/tools/workflows/reconcile-simulation-plan.js.map +1 -0
- package/dist/tools/workflows/resolve-credentials.d.ts +4 -0
- package/dist/tools/workflows/resolve-credentials.js +86 -4
- package/dist/tools/workflows/resolve-credentials.js.map +1 -1
- package/dist/tools/workflows/resolved-credential.schema.d.ts +30 -0
- package/dist/tools/workflows/resolved-credential.schema.js +18 -0
- package/dist/tools/workflows/resolved-credential.schema.js.map +1 -0
- package/dist/tools/workflows/setup-workflow.schema.d.ts +46 -46
- package/dist/tools/workflows/setup-workflow.service.js +109 -19
- package/dist/tools/workflows/setup-workflow.service.js.map +1 -1
- package/dist/tools/workflows/summarize-workflow.js +1 -34
- package/dist/tools/workflows/summarize-workflow.js.map +1 -1
- package/dist/tools/workflows/validate-workflow.service.js +79 -4
- package/dist/tools/workflows/validate-workflow.service.js.map +1 -1
- package/dist/tools/workflows/workflow-build-context.js.map +1 -1
- package/dist/tools/workflows/workflow-build-remediation.d.ts +1 -0
- package/dist/tools/workflows/workflow-build-remediation.js +11 -0
- package/dist/tools/workflows/workflow-build-remediation.js.map +1 -1
- package/dist/tools/workflows/workflow-build-reporting.js.map +1 -1
- package/dist/tools/workflows/workflow-build-routing.js.map +1 -1
- package/dist/tools/workflows/workflow-build-telemetry.d.ts +1 -1
- package/dist/tools/workflows/workflow-build-telemetry.js.map +1 -1
- package/dist/tools/workflows/workflow-file-bindings.d.ts +9 -0
- package/dist/tools/workflows/workflow-file-bindings.js +50 -0
- package/dist/tools/workflows/workflow-file-bindings.js.map +1 -1
- package/dist/tools/workflows/workflow-json-utils.js.map +1 -1
- package/dist/tools/workflows/workflow-source-compiler.js.map +1 -1
- package/dist/tools/workflows/workflow-validation-warnings.js.map +1 -1
- package/dist/tools/workflows/write-sandbox-file.tool.d.ts +2 -2
- package/dist/tools/workflows/write-sandbox-file.tool.js.map +1 -1
- package/dist/tools/workflows.tool.js +14 -34
- package/dist/tools/workflows.tool.js.map +1 -1
- package/dist/tools/workspace.tool.js.map +1 -1
- package/dist/tracing/langsmith-tracing.js.map +1 -1
- package/dist/tracing/trace-labels.js.map +1 -1
- package/dist/tracing/trace-payloads.js.map +1 -1
- package/dist/tracing/trace-replay.js.map +1 -1
- package/dist/types.d.ts +104 -7
- package/dist/types.js +7 -3
- package/dist/types.js.map +1 -1
- package/dist/utils/agent-feature-enabled.d.ts +1 -0
- package/dist/utils/agent-feature-enabled.js +12 -0
- package/dist/utils/agent-feature-enabled.js.map +1 -0
- package/dist/utils/agent-tree.js.map +1 -1
- package/dist/utils/eval-agents.d.ts +1 -1
- package/dist/utils/eval-agents.js.map +1 -1
- package/dist/utils/format-timestamp.js.map +1 -1
- package/dist/utils/generate-validated-json.js.map +1 -1
- package/dist/utils/stream-helpers.js.map +1 -1
- package/dist/workflow-builder/build-failure-tracker.js.map +1 -1
- package/dist/workflow-loop/guidance.js.map +1 -1
- package/dist/workflow-loop/remediation.js.map +1 -1
- package/dist/workflow-loop/runtime.js.map +1 -1
- package/dist/workflow-loop/setup-verification-policy.js.map +1 -1
- package/dist/workflow-loop/verification-obligation.js.map +1 -1
- package/dist/workflow-loop/workflow-loop-controller.js.map +1 -1
- package/dist/workflow-loop/workflow-loop-state.d.ts +319 -167
- package/dist/workflow-loop/workflow-loop-state.js +8 -1
- package/dist/workflow-loop/workflow-loop-state.js.map +1 -1
- package/dist/workflow-loop/workflow-task-service.js.map +1 -1
- package/dist/workspace/builder-templates-service.js.map +1 -1
- package/dist/workspace/compute-workspace-content-hash.js.map +1 -1
- package/dist/workspace/create-workspace.js.map +1 -1
- package/dist/workspace/lazy-runtime-workspace.d.ts +1 -0
- package/dist/workspace/lazy-runtime-workspace.js +12 -1
- package/dist/workspace/lazy-runtime-workspace.js.map +1 -1
- package/dist/workspace/pack-workspace-sdk.js.map +1 -1
- package/dist/workspace/prebaked-workspace-bundle.js.map +1 -1
- package/dist/workspace/sandbox-fs.js.map +1 -1
- package/dist/workspace/sandbox-setup.js.map +1 -1
- package/dist/workspace/scoped-workspace.js.map +1 -1
- package/dist/workspace/snapshot-image-context.js.map +1 -1
- package/dist/workspace/snapshot-manager.js.map +1 -1
- package/dist/workspace/template-telemetry.js.map +1 -1
- package/dist/workspace/workspace-file-content.js.map +1 -1
- package/dist/workspace/workspace-files.js.map +1 -1
- package/dist/workspace/workspace-manifest.js.map +1 -1
- package/dist/workspace/workspace-paths.js.map +1 -1
- package/package.json +13 -10
- package/skills/credential-setup-with-computer-use/SKILL.md +3 -2
- package/skills/data-table-manager/SKILL.md +3 -3
- package/skills/intent-recognition/SKILL.md +269 -0
- package/skills/n8n-docs-assistant/SKILL.md +6 -3
- package/skills/planned-task-runtime/SKILL.md +12 -14
- package/skills/planning/SKILL.md +12 -11
- package/skills/post-build-flow/SKILL.md +9 -0
- package/skills/workflow-builder/SKILL.md +55 -3
- package/skills/workflow-builder/references/compositional-workflows.md +1 -2
- package/dist/tools/orchestration/delegate.schemas.d.ts +0 -44
- package/dist/tools/orchestration/delegate.schemas.js +0 -46
- package/dist/tools/orchestration/delegate.schemas.js.map +0 -1
- package/dist/tools/orchestration/delegate.tool.d.ts +0 -18
- package/dist/tools/orchestration/delegate.tool.js +0 -334
- package/dist/tools/orchestration/delegate.tool.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-verification-simulation.js","sourceRoot":"","sources":["../../../src/tools/workflows/plan-verification-simulation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plan-verification-simulation.js","sourceRoot":"","sources":["../../../src/tools/workflows/plan-verification-simulation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { WorkflowJSON } from '@n8n/workflow-sdk';
|
|
2
|
+
import type { CredentialMap } from './resolve-credentials';
|
|
3
|
+
import type { WorkflowBuildOutcome } from '../../workflow-loop/workflow-loop-state';
|
|
4
|
+
export type SimulationPlanPatch = Pick<WorkflowBuildOutcome, 'mockedNodeNames' | 'mockedCredentialTypes' | 'mockedCredentialsByNode' | 'nodeSimulationPlan' | 'simulationFixtures' | 'setupRequirement'>;
|
|
5
|
+
export declare function reconcileSimulationPlan(args: {
|
|
6
|
+
buildOutcome: WorkflowBuildOutcome;
|
|
7
|
+
workflow: WorkflowJSON;
|
|
8
|
+
availableCredentials: CredentialMap;
|
|
9
|
+
}): Promise<SimulationPlanPatch | undefined>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.reconcileSimulationPlan = reconcileSimulationPlan;
|
|
4
|
+
const classify_node_destructiveness_service_1 = require("./classify-node-destructiveness.service");
|
|
5
|
+
const credential_utils_1 = require("./credential-utils");
|
|
6
|
+
function isConfiguredCredential(value, credentialType, availableCredentials) {
|
|
7
|
+
if ((0, credential_utils_1.isAiGatewayManagedCredential)(value))
|
|
8
|
+
return true;
|
|
9
|
+
if (typeof value !== 'object' || value === null || !('id' in value))
|
|
10
|
+
return false;
|
|
11
|
+
const { id } = value;
|
|
12
|
+
if (typeof id !== 'string' || id.trim() === '')
|
|
13
|
+
return false;
|
|
14
|
+
return (availableCredentials.get(credentialType)?.some((credential) => credential.id === id) ?? false);
|
|
15
|
+
}
|
|
16
|
+
function nodeCredentials(workflow, nodeName) {
|
|
17
|
+
const node = (workflow.nodes ?? []).find((candidate) => candidate.name === nodeName);
|
|
18
|
+
return node?.credentials ? node.credentials : undefined;
|
|
19
|
+
}
|
|
20
|
+
async function reconcileSimulationPlan(args) {
|
|
21
|
+
const { buildOutcome, workflow, availableCredentials } = args;
|
|
22
|
+
const mockedEntries = Object.entries(buildOutcome.mockedCredentialsByNode ?? {});
|
|
23
|
+
if (mockedEntries.length === 0)
|
|
24
|
+
return undefined;
|
|
25
|
+
const satisfiedNames = new Set(mockedEntries
|
|
26
|
+
.filter(([nodeName, mockedTypes]) => {
|
|
27
|
+
const credentials = nodeCredentials(workflow, nodeName);
|
|
28
|
+
if (!credentials)
|
|
29
|
+
return false;
|
|
30
|
+
const types = mockedTypes.length > 0 ? mockedTypes : Object.keys(credentials);
|
|
31
|
+
return (types.length > 0 &&
|
|
32
|
+
types.every((type) => isConfiguredCredential(credentials[type], type, availableCredentials)));
|
|
33
|
+
})
|
|
34
|
+
.map(([nodeName]) => nodeName));
|
|
35
|
+
if (satisfiedNames.size === 0)
|
|
36
|
+
return undefined;
|
|
37
|
+
const remainingEntries = mockedEntries.filter(([nodeName]) => !satisfiedNames.has(nodeName));
|
|
38
|
+
const remainingMockedNames = (buildOutcome.mockedNodeNames ?? mockedEntries.map(([nodeName]) => nodeName)).filter((nodeName) => !satisfiedNames.has(nodeName));
|
|
39
|
+
const scopedWorkflow = {
|
|
40
|
+
...workflow,
|
|
41
|
+
nodes: (workflow.nodes ?? []).filter((node) => typeof node.name === 'string' && satisfiedNames.has(node.name)),
|
|
42
|
+
};
|
|
43
|
+
const freshVerdicts = await (0, classify_node_destructiveness_service_1.classifyNodesForSimulation)({
|
|
44
|
+
workflow: scopedWorkflow,
|
|
45
|
+
mockedNodeNames: remainingMockedNames,
|
|
46
|
+
});
|
|
47
|
+
const freshVerdictByName = new Map(freshVerdicts.map((verdict) => [verdict.nodeName, verdict]));
|
|
48
|
+
const nodeSimulationPlan = buildOutcome.nodeSimulationPlan?.map((verdict) => satisfiedNames.has(verdict.nodeName)
|
|
49
|
+
? (freshVerdictByName.get(verdict.nodeName) ?? verdict)
|
|
50
|
+
: verdict);
|
|
51
|
+
const retainedFixtureEntries = Object.entries(buildOutcome.simulationFixtures ?? {}).filter(([nodeName]) => freshVerdictByName.get(nodeName)?.verdict !== 'execute');
|
|
52
|
+
const hasRemainingMocks = remainingEntries.length > 0;
|
|
53
|
+
const patch = {
|
|
54
|
+
mockedNodeNames: hasRemainingMocks ? remainingMockedNames : undefined,
|
|
55
|
+
mockedCredentialTypes: hasRemainingMocks
|
|
56
|
+
? [...new Set(remainingEntries.flatMap(([, types]) => types))]
|
|
57
|
+
: undefined,
|
|
58
|
+
mockedCredentialsByNode: hasRemainingMocks ? Object.fromEntries(remainingEntries) : undefined,
|
|
59
|
+
nodeSimulationPlan,
|
|
60
|
+
simulationFixtures: retainedFixtureEntries.length > 0 ? Object.fromEntries(retainedFixtureEntries) : undefined,
|
|
61
|
+
};
|
|
62
|
+
if (!hasRemainingMocks &&
|
|
63
|
+
!buildOutcome.hasUnresolvedPlaceholders &&
|
|
64
|
+
buildOutcome.setupRequirement?.status === 'required' &&
|
|
65
|
+
buildOutcome.setupRequirement.reason === 'mocked-credentials') {
|
|
66
|
+
patch.setupRequirement = { status: 'not_required' };
|
|
67
|
+
}
|
|
68
|
+
return patch;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=reconcile-simulation-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconcile-simulation-plan.js","sourceRoot":"","sources":["../../../src/tools/workflows/reconcile-simulation-plan.ts"],"names":[],"mappings":";;;AAcA,mGAAqF;AACrF,yDAAkE;AAclE,SAAS,sBAAsB,CAC9B,KAAc,EACd,cAAsB,EACtB,oBAAmC;IAEnC,IAAI,IAAA,+CAA4B,EAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClF,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC7D,OAAO,CACN,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,CAC7F,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACvB,QAAsB,EACtB,QAAgB;IAEhB,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACrF,OAAO,IAAI,EAAE,WAAW,CAAC,CAAC,CAAE,IAAI,CAAC,WAAuC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtF,CAAC;AAaM,KAAK,kCAAkC,IAI7C;IACA,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;IAE9D,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IACjF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEjD,MAAM,cAAc,GAAG,IAAI,GAAG,CAC7B,aAAa;SACX,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE;QACnC,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9E,OAAO,CACN,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CACpB,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CACrE,CACD,CAAC;IACH,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAC/B,CAAC;IACF,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEhD,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7F,MAAM,oBAAoB,GAAG,CAC5B,YAAY,CAAC,eAAe,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAC3E,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAItD,MAAM,cAAc,GAAiB;QACpC,GAAG,QAAQ;QACX,KAAK,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CACnC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CACxE;KACD,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,IAAA,kEAA0B,EAAC;QACtD,QAAQ,EAAE,cAAc;QACxB,eAAe,EAAE,oBAAoB;KACrC,CAAC,CAAC;IACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAKhG,MAAM,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3E,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnC,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC;QACvD,CAAC,CAAC,OAAO,CACV,CAAC;IAEF,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,MAAM,CAC1F,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,SAAS,CACvE,CAAC;IAEF,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACtD,MAAM,KAAK,GAAwB;QAClC,eAAe,EAAE,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS;QACrE,qBAAqB,EAAE,iBAAiB;YACvC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAC,SAAS;QACZ,uBAAuB,EAAE,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7F,kBAAkB;QAClB,kBAAkB,EACjB,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,SAAS;KAC3F,CAAC;IAIF,IACC,CAAC,iBAAiB;QAClB,CAAC,YAAY,CAAC,yBAAyB;QACvC,YAAY,CAAC,gBAAgB,EAAE,MAAM,KAAK,UAAU;QACpD,YAAY,CAAC,gBAAgB,CAAC,MAAM,KAAK,oBAAoB,EAC5D,CAAC;QACF,KAAK,CAAC,gBAAgB,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IACrD,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { WorkflowJSON } from '@n8n/workflow-sdk';
|
|
2
|
+
import type { ResolvedCredential } from './resolved-credential.schema';
|
|
2
3
|
import type { InstanceAiContext } from '../../types';
|
|
4
|
+
export type { ResolvedCredential };
|
|
3
5
|
export interface CredentialEntry {
|
|
4
6
|
id: string;
|
|
5
7
|
name: string;
|
|
@@ -11,5 +13,7 @@ export interface CredentialResolutionResult {
|
|
|
11
13
|
mockedNodeNames: string[];
|
|
12
14
|
mockedCredentialTypes: string[];
|
|
13
15
|
mockedCredentialsByNode: Record<string, string[]>;
|
|
16
|
+
resolvedCredentialsByNode: Record<string, ResolvedCredential[]>;
|
|
14
17
|
}
|
|
18
|
+
export declare function buildCredentialResolutionNote(resolvedCredentialsByNode: Record<string, ResolvedCredential[]>): string | undefined;
|
|
15
19
|
export declare function resolveCredentials(json: WorkflowJSON, workflowId: string | undefined, ctx: InstanceAiContext, availableCredentials?: CredentialMap): Promise<CredentialResolutionResult>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildCredentialMap = buildCredentialMap;
|
|
4
|
+
exports.buildCredentialResolutionNote = buildCredentialResolutionNote;
|
|
4
5
|
exports.resolveCredentials = resolveCredentials;
|
|
6
|
+
const credential_utils_1 = require("./credential-utils");
|
|
5
7
|
async function buildCredentialMap(credentialService) {
|
|
6
8
|
const map = new Map();
|
|
7
9
|
try {
|
|
@@ -16,10 +18,48 @@ async function buildCredentialMap(credentialService) {
|
|
|
16
18
|
}
|
|
17
19
|
return map;
|
|
18
20
|
}
|
|
21
|
+
function buildCredentialResolutionNote(resolvedCredentialsByNode) {
|
|
22
|
+
const storedParts = [];
|
|
23
|
+
const gatewayParts = [];
|
|
24
|
+
for (const [nodeName, resolved] of Object.entries(resolvedCredentialsByNode)) {
|
|
25
|
+
for (const credential of resolved) {
|
|
26
|
+
const label = `(${credential.type}) on node "${nodeName}"`;
|
|
27
|
+
if (credential.id === null)
|
|
28
|
+
gatewayParts.push(label);
|
|
29
|
+
else
|
|
30
|
+
storedParts.push(`"${credential.name}" ${label}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (storedParts.length === 0 && gatewayParts.length === 0)
|
|
34
|
+
return undefined;
|
|
35
|
+
const sentences = [];
|
|
36
|
+
if (storedParts.length > 0) {
|
|
37
|
+
sentences.push(`Connected existing credential(s) automatically: ${storedParts.join('; ')}.`);
|
|
38
|
+
}
|
|
39
|
+
if (gatewayParts.length > 0) {
|
|
40
|
+
sentences.push(`Using n8n Connect (zero-setup) for: ${gatewayParts.join('; ')}.`);
|
|
41
|
+
}
|
|
42
|
+
sentences.push('These are already set up — do not ask the user to connect or create them, and do not route them to credential setup.');
|
|
43
|
+
return sentences.join(' ');
|
|
44
|
+
}
|
|
19
45
|
async function resolveCredentials(json, workflowId, ctx, availableCredentials) {
|
|
20
46
|
const mockedNodeNames = [];
|
|
21
47
|
const mockedCredentialTypesSet = new Set();
|
|
22
48
|
const mockedCredentialsByNode = {};
|
|
49
|
+
const resolvedCredentialsByNode = {};
|
|
50
|
+
const gatewaySupportCache = new Map();
|
|
51
|
+
const isGatewayCredentialType = async (credType) => {
|
|
52
|
+
if (!ctx.credentialService.isAiGatewayCredentialType)
|
|
53
|
+
return false;
|
|
54
|
+
const cached = gatewaySupportCache.get(credType);
|
|
55
|
+
if (cached !== undefined)
|
|
56
|
+
return cached;
|
|
57
|
+
const supported = await ctx.credentialService
|
|
58
|
+
.isAiGatewayCredentialType(credType)
|
|
59
|
+
.catch(() => false);
|
|
60
|
+
gatewaySupportCache.set(credType, supported);
|
|
61
|
+
return supported;
|
|
62
|
+
};
|
|
23
63
|
const existingCredsByNode = new Map();
|
|
24
64
|
if (workflowId) {
|
|
25
65
|
try {
|
|
@@ -40,10 +80,21 @@ async function resolveCredentials(json, workflowId, ctx, availableCredentials) {
|
|
|
40
80
|
let nodeMocked = false;
|
|
41
81
|
for (const [key, value] of Object.entries(creds)) {
|
|
42
82
|
const existingCreds = node.name ? existingCredsByNode.get(node.name) : undefined;
|
|
83
|
+
const recordResolvedCredential = (id, name) => {
|
|
84
|
+
if (!node.name)
|
|
85
|
+
return;
|
|
86
|
+
resolvedCredentialsByNode[node.name] ??= [];
|
|
87
|
+
resolvedCredentialsByNode[node.name].push({ type: key, id, name });
|
|
88
|
+
};
|
|
43
89
|
const restoreExistingCredential = () => {
|
|
44
|
-
|
|
90
|
+
const restored = existingCreds?.[key];
|
|
91
|
+
if (!restored)
|
|
45
92
|
return false;
|
|
46
|
-
creds[key] =
|
|
93
|
+
creds[key] = restored;
|
|
94
|
+
const restoredId = getCredentialId(restored);
|
|
95
|
+
if (restoredId) {
|
|
96
|
+
recordResolvedCredential(restoredId, getCredentialName(restored) ?? restoredId);
|
|
97
|
+
}
|
|
47
98
|
cleanupMockPinData(json, node.name);
|
|
48
99
|
return true;
|
|
49
100
|
};
|
|
@@ -57,6 +108,27 @@ async function resolveCredentials(json, workflowId, ctx, availableCredentials) {
|
|
|
57
108
|
mockedCredentialsByNode[nodeName].push(key);
|
|
58
109
|
}
|
|
59
110
|
};
|
|
111
|
+
const attachGatewayCredential = () => {
|
|
112
|
+
creds[key] = { ...credential_utils_1.AI_GATEWAY_CREDENTIAL, name: credential_utils_1.N8N_CONNECT_DISPLAY_NAME };
|
|
113
|
+
nodeMocked = true;
|
|
114
|
+
if (node.name) {
|
|
115
|
+
resolvedCredentialsByNode[node.name] ??= [];
|
|
116
|
+
resolvedCredentialsByNode[node.name].push({
|
|
117
|
+
type: key,
|
|
118
|
+
id: null,
|
|
119
|
+
name: credential_utils_1.N8N_CONNECT_DISPLAY_NAME,
|
|
120
|
+
__aiGatewayManaged: true,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
const mockOrAttachGateway = async () => {
|
|
125
|
+
const hasStored = (availableCredentials?.get(key)?.length ?? 0) > 0;
|
|
126
|
+
if (!hasStored && (await isGatewayCredentialType(key))) {
|
|
127
|
+
attachGatewayCredential();
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
mockCredential();
|
|
131
|
+
};
|
|
60
132
|
if (value !== undefined && value !== null) {
|
|
61
133
|
if (isKnownCredentialForType(value, key, availableCredentials)) {
|
|
62
134
|
cleanupMockPinData(json, node.name);
|
|
@@ -65,7 +137,7 @@ async function resolveCredentials(json, workflowId, ctx, availableCredentials) {
|
|
|
65
137
|
if (restoreExistingCredential()) {
|
|
66
138
|
continue;
|
|
67
139
|
}
|
|
68
|
-
|
|
140
|
+
await mockOrAttachGateway();
|
|
69
141
|
continue;
|
|
70
142
|
}
|
|
71
143
|
if (restoreExistingCredential()) {
|
|
@@ -75,10 +147,11 @@ async function resolveCredentials(json, workflowId, ctx, availableCredentials) {
|
|
|
75
147
|
if (credentialsForType?.length === 1) {
|
|
76
148
|
const [credential] = credentialsForType;
|
|
77
149
|
creds[key] = { id: credential.id, name: credential.name };
|
|
150
|
+
recordResolvedCredential(credential.id, credential.name);
|
|
78
151
|
cleanupMockPinData(json, node.name);
|
|
79
152
|
continue;
|
|
80
153
|
}
|
|
81
|
-
|
|
154
|
+
await mockOrAttachGateway();
|
|
82
155
|
}
|
|
83
156
|
if (nodeMocked && node.name) {
|
|
84
157
|
mockedNodeNames.push(node.name);
|
|
@@ -88,6 +161,7 @@ async function resolveCredentials(json, workflowId, ctx, availableCredentials) {
|
|
|
88
161
|
mockedNodeNames,
|
|
89
162
|
mockedCredentialTypes: [...mockedCredentialTypesSet],
|
|
90
163
|
mockedCredentialsByNode,
|
|
164
|
+
resolvedCredentialsByNode,
|
|
91
165
|
};
|
|
92
166
|
}
|
|
93
167
|
function getCredentialId(value) {
|
|
@@ -98,6 +172,14 @@ function getCredentialId(value) {
|
|
|
98
172
|
return undefined;
|
|
99
173
|
return id;
|
|
100
174
|
}
|
|
175
|
+
function getCredentialName(value) {
|
|
176
|
+
if (typeof value !== 'object' || value === null || !('name' in value))
|
|
177
|
+
return undefined;
|
|
178
|
+
const { name } = value;
|
|
179
|
+
if (typeof name !== 'string' || name.trim() === '')
|
|
180
|
+
return undefined;
|
|
181
|
+
return name;
|
|
182
|
+
}
|
|
101
183
|
function isKnownCredentialForType(value, credentialType, availableCredentials) {
|
|
102
184
|
if (!availableCredentials)
|
|
103
185
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-credentials.js","sourceRoot":"","sources":["../../../src/tools/workflows/resolve-credentials.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve-credentials.js","sourceRoot":"","sources":["../../../src/tools/workflows/resolve-credentials.ts"],"names":[],"mappings":";;;;;AAWA,yDAAqF;AAuB9E,KAAK,6BACX,iBAAuE;IAEvE,MAAM,GAAG,GAAkB,IAAI,GAAG,EAAE,CAAC;IACrC,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAChE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAuBD,uCACC,yBAA+D;IAE/D,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC9E,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,cAAc,QAAQ,GAAG,CAAC;YAC3D,IAAI,UAAU,CAAC,EAAE,KAAK,IAAI;gBAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;gBAChD,WAAW,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5E,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,IAAI,CAAC,mDAAmD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,uCAAuC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnF,CAAC;IACD,SAAS,CAAC,IAAI,CACb,sHAAsH,CACtH,CAAC;IACF,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAaM,KAAK,6BACX,IAAkB,EAClB,UAA8B,EAC9B,GAAsB,EACtB,oBAAoC;IAEpC,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAU,CAAC;IACnD,MAAM,uBAAuB,GAA6B,EAAE,CAAC;IAC7D,MAAM,yBAAyB,GAAyC,EAAE,CAAC;IAG3E,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvD,MAAM,uBAAuB,GAAG,KAAK,EAAE,QAAgB,EAAoB,EAAE;QAC5E,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,yBAAyB;YAAE,OAAO,KAAK,CAAC;QACnE,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,iBAAiB;aAC3C,yBAAyB,CAAC,QAAQ,CAAC;aACnC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACrB,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC7C,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC;IAGF,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAmC,CAAC;IACvE,IAAI,UAAU,EAAE,CAAC;QAChB,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACzE,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBACjD,IAAI,YAAY,CAAC,WAAW,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;oBACnD,mBAAmB,CAAC,GAAG,CACtB,YAAY,CAAC,IAAI,EACjB,YAAY,CAAC,WAAsC,CACnD,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACF,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,SAAS;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAsC,CAAC;QAC1D,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAIlD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEjF,MAAM,wBAAwB,GAAG,CAAC,EAAU,EAAE,IAAY,EAAE,EAAE;gBAC7D,IAAI,CAAC,IAAI,CAAC,IAAI;oBAAE,OAAO;gBACvB,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC5C,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACpE,CAAC,CAAC;YAEF,MAAM,yBAAyB,GAAG,GAAG,EAAE;gBACtC,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,QAAQ;oBAAE,OAAO,KAAK,CAAC;gBAC5B,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;gBACtB,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC7C,IAAI,UAAU,EAAE,CAAC;oBAChB,wBAAwB,CAAC,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,CAAC;gBACjF,CAAC;gBACD,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,OAAO,IAAI,CAAC;YACb,CAAC,CAAC;YAEF,MAAM,cAAc,GAAG,GAAG,EAAE;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClB,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,UAAU,GAAG,IAAI,CAAC;gBAElB,IAAI,QAAQ,EAAE,CAAC;oBAId,uBAAuB,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACzC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7C,CAAC;YACF,CAAC,CAAC;YAQF,MAAM,uBAAuB,GAAG,GAAG,EAAE;gBACpC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,wCAAqB,EAAE,IAAI,EAAE,2CAAwB,EAAE,CAAC;gBAC1E,UAAU,GAAG,IAAI,CAAC;gBAClB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACf,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC5C,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;wBACzC,IAAI,EAAE,GAAG;wBACT,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,2CAAwB;wBAC9B,kBAAkB,EAAE,IAAI;qBACxB,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC,CAAC;YAIF,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;gBACtC,MAAM,SAAS,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpE,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,uBAAuB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBACxD,uBAAuB,EAAE,CAAC;oBAC1B,OAAO;gBACR,CAAC;gBACD,cAAc,EAAE,CAAC;YAClB,CAAC,CAAC;YAEF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC3C,IAAI,wBAAwB,CAAC,KAAK,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC;oBAChE,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,SAAS;gBACV,CAAC;gBACD,IAAI,yBAAyB,EAAE,EAAE,CAAC;oBACjC,SAAS;gBACV,CAAC;gBACD,MAAM,mBAAmB,EAAE,CAAC;gBAC5B,SAAS;YACV,CAAC;YAED,IAAI,yBAAyB,EAAE,EAAE,CAAC;gBACjC,SAAS;YACV,CAAC;YAED,MAAM,kBAAkB,GAAG,oBAAoB,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,IAAI,kBAAkB,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC;gBACxC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;gBAC1D,wBAAwB,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBACzD,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,SAAS;YACV,CAAC;YAKD,MAAM,mBAAmB,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;IAED,OAAO;QACN,eAAe;QACf,qBAAqB,EAAE,CAAC,GAAG,wBAAwB,CAAC;QACpD,uBAAuB;QACvB,yBAAyB;KACzB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEtF,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAEjE,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAExF,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAErE,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,wBAAwB,CAChC,KAAc,EACd,cAAsB,EACtB,oBAA+C;IAE/C,IAAI,CAAC,oBAAoB;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAEtB,OAAO,CACN,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,CAC7F,CAAC;AACH,CAAC;AAOD,SAAS,kBAAkB,CAAC,IAAkB,EAAE,QAA4B;IAC3E,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;QAAE,OAAO;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,mBAAmB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const resolvedCredentialSchema: z.ZodUnion<[z.ZodObject<{
|
|
3
|
+
type: z.ZodString;
|
|
4
|
+
id: z.ZodString;
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
type: string;
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
}, {
|
|
11
|
+
type: string;
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
}>, z.ZodObject<{
|
|
15
|
+
type: z.ZodString;
|
|
16
|
+
id: z.ZodNull;
|
|
17
|
+
name: z.ZodString;
|
|
18
|
+
__aiGatewayManaged: z.ZodLiteral<true>;
|
|
19
|
+
}, "strip", z.ZodTypeAny, {
|
|
20
|
+
type: string;
|
|
21
|
+
id: null;
|
|
22
|
+
name: string;
|
|
23
|
+
__aiGatewayManaged: true;
|
|
24
|
+
}, {
|
|
25
|
+
type: string;
|
|
26
|
+
id: null;
|
|
27
|
+
name: string;
|
|
28
|
+
__aiGatewayManaged: true;
|
|
29
|
+
}>]>;
|
|
30
|
+
export type ResolvedCredential = z.infer<typeof resolvedCredentialSchema>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolvedCredentialSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.resolvedCredentialSchema = zod_1.z.union([
|
|
6
|
+
zod_1.z.object({
|
|
7
|
+
type: zod_1.z.string(),
|
|
8
|
+
id: zod_1.z.string(),
|
|
9
|
+
name: zod_1.z.string(),
|
|
10
|
+
}),
|
|
11
|
+
zod_1.z.object({
|
|
12
|
+
type: zod_1.z.string(),
|
|
13
|
+
id: zod_1.z.null(),
|
|
14
|
+
name: zod_1.z.string(),
|
|
15
|
+
__aiGatewayManaged: zod_1.z.literal(true),
|
|
16
|
+
}),
|
|
17
|
+
]);
|
|
18
|
+
//# sourceMappingURL=resolved-credential.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolved-credential.schema.js","sourceRoot":"","sources":["../../../src/tools/workflows/resolved-credential.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAUX,QAAA,wBAAwB,GAAG,OAAC,CAAC,KAAK,CAAC;IAC/C,OAAC,CAAC,MAAM,CAAC;QAER,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;QAChB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;KAChB,CAAC;IACF,OAAC,CAAC,MAAM,CAAC;QACR,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;QAChB,EAAE,EAAE,OAAC,CAAC,IAAI,EAAE;QACZ,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;QAChB,kBAAkB,EAAE,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC;KACnC,CAAC;CACF,CAAC,CAAC"}
|