@n8n/instance-ai 1.4.1 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/computer-use-prompt.d.ts +5 -0
- package/dist/agent/computer-use-prompt.js +97 -0
- package/dist/agent/computer-use-prompt.js.map +1 -0
- package/dist/agent/instance-agent.js +48 -73
- package/dist/agent/instance-agent.js.map +1 -1
- package/dist/agent/mcp-tool-name-validation.d.ts +15 -0
- package/dist/agent/mcp-tool-name-validation.js +67 -0
- package/dist/agent/mcp-tool-name-validation.js.map +1 -0
- package/dist/agent/sanitize-mcp-schemas.d.ts +56 -2
- package/dist/agent/sanitize-mcp-schemas.js +226 -19
- package/dist/agent/sanitize-mcp-schemas.js.map +1 -1
- package/dist/agent/sub-agent-debriefing.d.ts +2 -2
- package/dist/agent/sub-agent-factory.d.ts +1 -0
- package/dist/agent/sub-agent-factory.js +1 -0
- package/dist/agent/sub-agent-factory.js.map +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/agent/system-prompt.js +46 -104
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/constants/model-settings.d.ts +3 -0
- package/dist/constants/model-settings.js +7 -0
- package/dist/constants/model-settings.js.map +1 -0
- package/dist/domain-access/domain-access-tracker.d.ts +3 -0
- package/dist/domain-access/domain-access-tracker.js +16 -0
- package/dist/domain-access/domain-access-tracker.js.map +1 -1
- package/dist/domain-access/domain-gating.d.ts +35 -6
- package/dist/domain-access/domain-gating.js +47 -1
- package/dist/domain-access/domain-gating.js.map +1 -1
- package/dist/domain-access/index.d.ts +1 -1
- package/dist/domain-access/index.js +3 -1
- package/dist/domain-access/index.js.map +1 -1
- package/dist/index.d.ts +14 -6
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +6 -0
- package/dist/mcp/mcp-client-manager.d.ts +18 -2
- package/dist/mcp/mcp-client-manager.js +124 -20
- package/dist/mcp/mcp-client-manager.js.map +1 -1
- package/dist/parsers/docx-parser.d.ts +6 -0
- package/dist/parsers/docx-parser.js +65 -0
- package/dist/parsers/docx-parser.js.map +1 -0
- package/dist/parsers/html-parser.d.ts +7 -0
- package/dist/parsers/html-parser.js +67 -0
- package/dist/parsers/html-parser.js.map +1 -0
- package/dist/parsers/index.d.ts +4 -0
- package/dist/parsers/index.js +16 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/pdf-parser.d.ts +7 -0
- package/dist/parsers/pdf-parser.js +72 -0
- package/dist/parsers/pdf-parser.js.map +1 -0
- package/dist/parsers/structured-file-parser.d.ts +8 -3
- package/dist/parsers/structured-file-parser.js +36 -4
- package/dist/parsers/structured-file-parser.js.map +1 -1
- package/dist/parsers/validate-attachments.d.ts +14 -0
- package/dist/parsers/validate-attachments.js +61 -0
- package/dist/parsers/validate-attachments.js.map +1 -0
- package/dist/parsers/xlsx-parser.d.ts +2 -0
- package/dist/parsers/xlsx-parser.js +75 -0
- package/dist/parsers/xlsx-parser.js.map +1 -0
- package/dist/planned-tasks/planned-task-permissions.d.ts +2 -0
- package/dist/planned-tasks/planned-task-permissions.js +8 -2
- package/dist/planned-tasks/planned-task-permissions.js.map +1 -1
- package/dist/planned-tasks/planned-task-service.d.ts +14 -1
- package/dist/planned-tasks/planned-task-service.js +138 -2
- package/dist/planned-tasks/planned-task-service.js.map +1 -1
- package/dist/runtime/background-task-manager.d.ts +32 -1
- package/dist/runtime/background-task-manager.js +134 -4
- package/dist/runtime/background-task-manager.js.map +1 -1
- package/dist/runtime/builder-sandbox-session-registry.d.ts +45 -0
- package/dist/runtime/builder-sandbox-session-registry.js +159 -0
- package/dist/runtime/builder-sandbox-session-registry.js.map +1 -0
- package/dist/runtime/liveness-policy.d.ts +40 -0
- package/dist/runtime/liveness-policy.js +74 -0
- package/dist/runtime/liveness-policy.js.map +1 -0
- package/dist/runtime/resumable-stream-executor.d.ts +1 -0
- package/dist/runtime/resumable-stream-executor.js +1 -0
- package/dist/runtime/resumable-stream-executor.js.map +1 -1
- package/dist/runtime/run-state-registry.d.ts +21 -5
- package/dist/runtime/run-state-registry.js +109 -7
- package/dist/runtime/run-state-registry.js.map +1 -1
- package/dist/runtime/stream-runner.d.ts +3 -0
- package/dist/runtime/stream-runner.js +3 -0
- package/dist/runtime/stream-runner.js.map +1 -1
- package/dist/runtime/terminal-response-guard.d.ts +30 -0
- package/dist/runtime/terminal-response-guard.js +149 -0
- package/dist/runtime/terminal-response-guard.js.map +1 -0
- package/dist/storage/agent-tree-snapshot.d.ts +2 -0
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.js +3 -1
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/planned-task-storage.js +2 -1
- package/dist/storage/planned-task-storage.js.map +1 -1
- package/dist/storage/terminal-outcome-storage.d.ts +48 -0
- package/dist/storage/terminal-outcome-storage.js +84 -0
- package/dist/storage/terminal-outcome-storage.js.map +1 -0
- package/dist/storage/workflow-loop-storage.d.ts +442 -16
- package/dist/stream/consume-with-hitl.d.ts +2 -0
- package/dist/stream/consume-with-hitl.js +2 -0
- package/dist/stream/consume-with-hitl.js.map +1 -1
- package/dist/stream/map-chunk.js +6 -0
- package/dist/stream/map-chunk.js.map +1 -1
- package/dist/tools/attachments/parse-file.tool.d.ts +46 -34
- package/dist/tools/attachments/parse-file.tool.js +115 -56
- package/dist/tools/attachments/parse-file.tool.js.map +1 -1
- package/dist/tools/credentials.tool.d.ts +120 -1
- package/dist/tools/credentials.tool.js +65 -12
- package/dist/tools/credentials.tool.js.map +1 -1
- package/dist/tools/data-tables.tool.d.ts +1 -0
- package/dist/tools/data-tables.tool.js +64 -24
- package/dist/tools/data-tables.tool.js.map +1 -1
- package/dist/tools/executions.tool.js +4 -1
- package/dist/tools/executions.tool.js.map +1 -1
- package/dist/tools/filesystem/create-tools-from-mcp-server.d.ts +2 -1
- package/dist/tools/filesystem/create-tools-from-mcp-server.js +74 -5
- package/dist/tools/filesystem/create-tools-from-mcp-server.js.map +1 -1
- package/dist/tools/index.d.ts +4 -24
- package/dist/tools/index.js +23 -7
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/nodes.tool.js +15 -15
- package/dist/tools/nodes.tool.js.map +1 -1
- package/dist/tools/orchestration/add-plan-item.tool.js +3 -1
- package/dist/tools/orchestration/add-plan-item.tool.js.map +1 -1
- package/dist/tools/orchestration/blueprint-accumulator.d.ts +4 -1
- package/dist/tools/orchestration/blueprint-accumulator.js +28 -0
- package/dist/tools/orchestration/blueprint-accumulator.js.map +1 -1
- package/dist/tools/orchestration/blueprint.schema.d.ts +61 -16
- package/dist/tools/orchestration/blueprint.schema.js +15 -1
- package/dist/tools/orchestration/blueprint.schema.js.map +1 -1
- package/dist/tools/orchestration/browser-credential-setup.nudge.d.ts +5 -0
- package/dist/tools/orchestration/browser-credential-setup.nudge.js +11 -0
- package/dist/tools/orchestration/browser-credential-setup.nudge.js.map +1 -0
- package/dist/tools/orchestration/browser-credential-setup.prompt.js +2 -1
- package/dist/tools/orchestration/browser-credential-setup.prompt.js.map +1 -1
- package/dist/tools/orchestration/browser-credential-setup.tool.js +55 -7
- package/dist/tools/orchestration/browser-credential-setup.tool.js.map +1 -1
- package/dist/tools/orchestration/build-workflow-agent.prompt.js +86 -60
- package/dist/tools/orchestration/build-workflow-agent.prompt.js.map +1 -1
- package/dist/tools/orchestration/build-workflow-agent.tool.d.ts +56 -3
- package/dist/tools/orchestration/build-workflow-agent.tool.js +1020 -300
- package/dist/tools/orchestration/build-workflow-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/builder-memory-compaction.d.ts +38 -0
- package/dist/tools/orchestration/builder-memory-compaction.js +146 -0
- package/dist/tools/orchestration/builder-memory-compaction.js.map +1 -0
- package/dist/tools/orchestration/complete-checkpoint.tool.d.ts +2 -0
- package/dist/tools/orchestration/complete-checkpoint.tool.js +76 -0
- package/dist/tools/orchestration/complete-checkpoint.tool.js.map +1 -0
- package/dist/tools/orchestration/data-table-agent.tool.js +34 -17
- package/dist/tools/orchestration/data-table-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/delegate.tool.js +34 -16
- package/dist/tools/orchestration/delegate.tool.js.map +1 -1
- package/dist/tools/orchestration/plan-agent-prompt.d.ts +1 -1
- package/dist/tools/orchestration/plan-agent-prompt.js +7 -0
- package/dist/tools/orchestration/plan-agent-prompt.js.map +1 -1
- package/dist/tools/orchestration/plan-with-agent.tool.d.ts +23 -0
- package/dist/tools/orchestration/plan-with-agent.tool.js +314 -13
- package/dist/tools/orchestration/plan-with-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/plan.tool.js +17 -1
- package/dist/tools/orchestration/plan.tool.js.map +1 -1
- package/dist/tools/orchestration/report-verification-verdict.tool.d.ts +40 -2
- package/dist/tools/orchestration/report-verification-verdict.tool.js +85 -6
- package/dist/tools/orchestration/report-verification-verdict.tool.js.map +1 -1
- package/dist/tools/orchestration/research-with-agent.tool.js +33 -16
- package/dist/tools/orchestration/research-with-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/tracing-utils.js +8 -0
- package/dist/tools/orchestration/tracing-utils.js.map +1 -1
- package/dist/tools/orchestration/verify-built-workflow.tool.d.ts +8 -2
- package/dist/tools/orchestration/verify-built-workflow.tool.js +476 -6
- package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
- package/dist/tools/research.tool.js +56 -10
- package/dist/tools/research.tool.js.map +1 -1
- package/dist/tools/shared/ask-user.tool.d.ts +1 -0
- package/dist/tools/shared/ask-user.tool.js +3 -2
- package/dist/tools/shared/ask-user.tool.js.map +1 -1
- package/dist/tools/templates.tool.js +5 -90
- package/dist/tools/templates.tool.js.map +1 -1
- package/dist/tools/web-research/sanitize-web-content.d.ts +0 -1
- package/dist/tools/web-research/sanitize-web-content.js +0 -9
- package/dist/tools/web-research/sanitize-web-content.js.map +1 -1
- package/dist/tools/workflows/apply-workflow-credentials.tool.d.ts +2 -2
- package/dist/tools/workflows/build-workflow.tool.d.ts +2 -2
- package/dist/tools/workflows/build-workflow.tool.js +6 -4
- package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/materialize-node-type.tool.d.ts +8 -8
- package/dist/tools/workflows/resolve-credentials.d.ts +9 -4
- package/dist/tools/workflows/resolve-credentials.js +59 -27
- package/dist/tools/workflows/resolve-credentials.js.map +1 -1
- package/dist/tools/workflows/setup-workflow.schema.d.ts +40 -0
- package/dist/tools/workflows/setup-workflow.service.d.ts +5 -1
- package/dist/tools/workflows/setup-workflow.service.js +71 -5
- package/dist/tools/workflows/setup-workflow.service.js.map +1 -1
- package/dist/tools/workflows/submit-workflow-identity.d.ts +25 -3
- package/dist/tools/workflows/submit-workflow-identity.js +92 -5
- package/dist/tools/workflows/submit-workflow-identity.js.map +1 -1
- package/dist/tools/workflows/submit-workflow.tool.d.ts +60 -6
- package/dist/tools/workflows/submit-workflow.tool.js +102 -19
- package/dist/tools/workflows/submit-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/workflow-json-utils.d.ts +4 -0
- package/dist/tools/workflows/workflow-json-utils.js +54 -0
- package/dist/tools/workflows/workflow-json-utils.js.map +1 -0
- package/dist/tools/workflows.tool.d.ts +7 -1
- package/dist/tools/workflows.tool.js +283 -54
- package/dist/tools/workflows.tool.js.map +1 -1
- package/dist/tracing/langsmith-tracing.d.ts +2 -0
- package/dist/tracing/langsmith-tracing.js +12 -3
- package/dist/tracing/langsmith-tracing.js.map +1 -1
- package/dist/tracing/trace-replay.d.ts +3 -0
- package/dist/tracing/trace-replay.js +65 -0
- package/dist/tracing/trace-replay.js.map +1 -1
- package/dist/types.d.ts +92 -16
- package/dist/workflow-builder/parse-validate.d.ts +5 -1
- package/dist/workflow-builder/parse-validate.js +5 -4
- package/dist/workflow-builder/parse-validate.js.map +1 -1
- package/dist/workflow-loop/guidance.js +8 -2
- package/dist/workflow-loop/guidance.js.map +1 -1
- package/dist/workflow-loop/index.d.ts +3 -2
- package/dist/workflow-loop/index.js +11 -1
- package/dist/workflow-loop/index.js.map +1 -1
- package/dist/workflow-loop/remediation.d.ts +13 -0
- package/dist/workflow-loop/remediation.js +36 -0
- package/dist/workflow-loop/remediation.js.map +1 -0
- package/dist/workflow-loop/runtime.js +7 -0
- package/dist/workflow-loop/runtime.js.map +1 -1
- package/dist/workflow-loop/workflow-loop-controller.d.ts +1 -1
- package/dist/workflow-loop/workflow-loop-controller.js +196 -29
- package/dist/workflow-loop/workflow-loop-controller.js.map +1 -1
- package/dist/workflow-loop/workflow-loop-state.d.ts +500 -10
- package/dist/workflow-loop/workflow-loop-state.js +74 -1
- package/dist/workflow-loop/workflow-loop-state.js.map +1 -1
- package/dist/workflow-loop/workflow-task-service.d.ts +2 -1
- package/dist/workflow-loop/workflow-task-service.js +4 -0
- package/dist/workflow-loop/workflow-task-service.js.map +1 -1
- package/dist/workspace/builder-sandbox-factory.d.ts +3 -4
- package/dist/workspace/builder-sandbox-factory.js +74 -35
- package/dist/workspace/builder-sandbox-factory.js.map +1 -1
- package/dist/workspace/create-workspace.d.ts +2 -0
- package/dist/workspace/create-workspace.js.map +1 -1
- package/dist/workspace/n8n-sandbox-filesystem.js +2 -2
- package/dist/workspace/n8n-sandbox-filesystem.js.map +1 -1
- package/dist/workspace/n8n-sandbox-sandbox.d.ts +2 -3
- package/dist/workspace/n8n-sandbox-sandbox.js +3 -7
- package/dist/workspace/n8n-sandbox-sandbox.js.map +1 -1
- package/dist/workspace/sandbox-setup.d.ts +1 -1
- package/dist/workspace/sandbox-setup.js +41 -16
- package/dist/workspace/sandbox-setup.js.map +1 -1
- package/dist/workspace/snapshot-manager.d.ts +14 -2
- package/dist/workspace/snapshot-manager.js +57 -1
- package/dist/workspace/snapshot-manager.js.map +1 -1
- package/package.json +35 -10
- package/dist/tools/templates/template-api.d.ts +0 -21
- package/dist/tools/templates/template-api.js +0 -104
- package/dist/tools/templates/template-api.js.map +0 -1
- package/dist/tools/templates/types.d.ts +0 -52
- package/dist/tools/templates/types.js +0 -37
- package/dist/tools/templates/types.js.map +0 -1
- package/dist/tools/utils/mermaid.utils.d.ts +0 -15
- package/dist/tools/utils/mermaid.utils.js +0 -622
- package/dist/tools/utils/mermaid.utils.js.map +0 -1
- package/dist/tools/utils/node-configuration.utils.d.ts +0 -6
- package/dist/tools/utils/node-configuration.utils.js +0 -77
- package/dist/tools/utils/node-configuration.utils.js.map +0 -1
- package/dist/workspace/n8n-sandbox-client.d.ts +0 -105
- package/dist/workspace/n8n-sandbox-client.js +0 -335
- package/dist/workspace/n8n-sandbox-client.js.map +0 -1
- package/dist/workspace/n8n-sandbox-image-manager.d.ts +0 -5
- package/dist/workspace/n8n-sandbox-image-manager.js +0 -25
- package/dist/workspace/n8n-sandbox-image-manager.js.map +0 -1
|
@@ -20,7 +20,13 @@ function resolveHostDepVersion(name) {
|
|
|
20
20
|
return '*';
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
const SANDBOX_SDK_VERSION =
|
|
23
|
+
const SANDBOX_SDK_VERSION = resolveSandboxSdkVersion();
|
|
24
|
+
function resolveSandboxSdkVersion() {
|
|
25
|
+
const linkFlag = process.env.N8N_INSTANCE_AI_SANDBOX_LINK_SDK;
|
|
26
|
+
if (linkFlag === '1' || linkFlag === 'true')
|
|
27
|
+
return 'latest';
|
|
28
|
+
return resolveHostDepVersion('@n8n/workflow-sdk');
|
|
29
|
+
}
|
|
24
30
|
const SANDBOX_TSX_VERSION = resolveHostDepVersion('tsx');
|
|
25
31
|
const SANDBOX_TYPES_NODE_VERSION = '24.10.1';
|
|
26
32
|
function buildPackageJson(sdkSpecifier) {
|
|
@@ -64,7 +70,7 @@ try {
|
|
|
64
70
|
process.exit(1);
|
|
65
71
|
}
|
|
66
72
|
const validation = wf.validate();
|
|
67
|
-
const json = wf.toJSON();
|
|
73
|
+
const json = wf.toJSON({ tidyUp: true });
|
|
68
74
|
const warnings = [...(validation.errors || []), ...(validation.warnings || [])];
|
|
69
75
|
// Use a replacer to preserve undefined values as null — newCredential() produces
|
|
70
76
|
// NewCredentialImpl which serializes to undefined in toJSON(). Without this,
|
|
@@ -99,9 +105,10 @@ function formatNodeCatalogLine(node) {
|
|
|
99
105
|
}
|
|
100
106
|
return parts.join(' | ');
|
|
101
107
|
}
|
|
108
|
+
const ALWAYS_PRESENT_DIRS = ['src', 'chunks', 'workflows'];
|
|
102
109
|
function buildBatchWriteScript(root, files) {
|
|
103
110
|
const lines = ['#!/bin/bash', 'set -e'];
|
|
104
|
-
const dirs = new Set();
|
|
111
|
+
const dirs = new Set(ALWAYS_PRESENT_DIRS);
|
|
105
112
|
for (const path of files.keys()) {
|
|
106
113
|
const lastSlash = path.lastIndexOf('/');
|
|
107
114
|
if (lastSlash > 0) {
|
|
@@ -109,23 +116,46 @@ function buildBatchWriteScript(root, files) {
|
|
|
109
116
|
}
|
|
110
117
|
}
|
|
111
118
|
const dirList = [...dirs].map((d) => `'${(0, sandbox_fs_1.escapeSingleQuotes)(`${root}/${d}`)}'`).join(' ');
|
|
112
|
-
|
|
113
|
-
lines.push(`mkdir -p '${(0, sandbox_fs_1.escapeSingleQuotes)(`${root}/src`)}' '${(0, sandbox_fs_1.escapeSingleQuotes)(`${root}/chunks`)}' ${dirList}`);
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
lines.push(`mkdir -p '${(0, sandbox_fs_1.escapeSingleQuotes)(`${root}/src`)}' '${(0, sandbox_fs_1.escapeSingleQuotes)(`${root}/chunks`)}'`);
|
|
117
|
-
}
|
|
119
|
+
lines.push(`mkdir -p ${dirList}`);
|
|
118
120
|
for (const [path, content] of files) {
|
|
119
121
|
const b64 = Buffer.from(content, 'utf-8').toString('base64');
|
|
120
122
|
lines.push(`echo '${b64}' | base64 -d > '${(0, sandbox_fs_1.escapeSingleQuotes)(`${root}/${path}`)}'`);
|
|
121
123
|
}
|
|
122
124
|
return lines.join('\n');
|
|
123
125
|
}
|
|
126
|
+
async function writeWorkspaceFiles(workspace, root, files) {
|
|
127
|
+
const filesystem = workspace.filesystem;
|
|
128
|
+
if (filesystem) {
|
|
129
|
+
await Promise.all(ALWAYS_PRESENT_DIRS.map(async (dir) => await filesystem.mkdir(`${root}/${dir}`, { recursive: true })));
|
|
130
|
+
await Promise.all([...files].map(async ([path, content]) => {
|
|
131
|
+
await filesystem.writeFile(`${root}/${path}`, content, { recursive: true });
|
|
132
|
+
}));
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const script = buildBatchWriteScript(root, files);
|
|
136
|
+
const scriptB64 = Buffer.from(script, 'utf-8').toString('base64');
|
|
137
|
+
const result = await (0, sandbox_fs_1.runInSandbox)(workspace, `echo '${scriptB64}' | base64 -d | bash`);
|
|
138
|
+
if (result.exitCode !== 0) {
|
|
139
|
+
throw new Error(`Sandbox setup failed: ${result.stderr}`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
124
142
|
const workspaceRootCache = new WeakMap();
|
|
143
|
+
function getLocalFilesystemRoot(workspace) {
|
|
144
|
+
const filesystem = workspace.filesystem;
|
|
145
|
+
if (!filesystem || filesystem.provider !== 'local')
|
|
146
|
+
return null;
|
|
147
|
+
const basePath = Reflect.get(filesystem, 'basePath');
|
|
148
|
+
return typeof basePath === 'string' && basePath.length > 0 ? basePath : null;
|
|
149
|
+
}
|
|
125
150
|
async function getWorkspaceRoot(workspace) {
|
|
126
151
|
const cached = workspaceRootCache.get(workspace);
|
|
127
152
|
if (cached)
|
|
128
153
|
return cached;
|
|
154
|
+
const localRoot = getLocalFilesystemRoot(workspace);
|
|
155
|
+
if (localRoot) {
|
|
156
|
+
workspaceRootCache.set(workspace, localRoot);
|
|
157
|
+
return localRoot;
|
|
158
|
+
}
|
|
129
159
|
const result = await (0, sandbox_fs_1.runInSandbox)(workspace, 'echo $HOME');
|
|
130
160
|
const home = result.stdout.trim() || '/home/daytona';
|
|
131
161
|
const root = `${home}/${exports.WORKSPACE_DIR}`;
|
|
@@ -159,17 +189,12 @@ async function setupSandboxWorkspace(workspace, context) {
|
|
|
159
189
|
}
|
|
160
190
|
catch {
|
|
161
191
|
}
|
|
162
|
-
|
|
163
|
-
const script = buildBatchWriteScript(root, files);
|
|
164
|
-
const scriptB64 = Buffer.from(script, 'utf-8').toString('base64');
|
|
165
|
-
const result = await (0, sandbox_fs_1.runInSandbox)(workspace, `echo '${scriptB64}' | base64 -d | bash`);
|
|
166
|
-
if (result.exitCode !== 0) {
|
|
167
|
-
throw new Error(`Sandbox setup failed: ${result.stderr}`);
|
|
168
|
-
}
|
|
192
|
+
await writeWorkspaceFiles(workspace, root, files);
|
|
169
193
|
const npmResult = await (0, sandbox_fs_1.runInSandbox)(workspace, 'npm install --ignore-scripts', root);
|
|
170
194
|
if (npmResult.exitCode !== 0) {
|
|
171
195
|
throw new Error(`Sandbox npm install failed: ${npmResult.stderr}`);
|
|
172
196
|
}
|
|
197
|
+
await writeWorkspaceFiles(workspace, root, new Map([['.sandbox-initialized', new Date().toISOString()]]));
|
|
173
198
|
return true;
|
|
174
199
|
}
|
|
175
200
|
//# sourceMappingURL=sandbox-setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-setup.js","sourceRoot":"","sources":["../../src/workspace/sandbox-setup.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"sandbox-setup.js","sourceRoot":"","sources":["../../src/workspace/sandbox-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
|
+
import type { Daytona } from '@daytonaio/sdk';
|
|
1
2
|
import { Image } from '@daytonaio/sdk';
|
|
2
|
-
import type { Logger } from '../logger';
|
|
3
|
+
import type { ErrorReporter, Logger } from '../logger';
|
|
4
|
+
export type SnapshotMode = 'direct' | 'proxy';
|
|
5
|
+
export interface CreateSnapshotOptions {
|
|
6
|
+
timeout?: number;
|
|
7
|
+
onLogs?: (chunk: string) => void;
|
|
8
|
+
}
|
|
3
9
|
export declare class SnapshotManager {
|
|
4
10
|
private readonly baseImage;
|
|
5
11
|
private readonly logger;
|
|
12
|
+
private readonly n8nVersion;
|
|
13
|
+
private readonly errorReporter?;
|
|
6
14
|
private cachedImage;
|
|
7
|
-
|
|
15
|
+
private snapshotPromise;
|
|
16
|
+
constructor(baseImage: string | undefined, logger: Logger, n8nVersion: string | undefined, errorReporter?: ErrorReporter | undefined);
|
|
8
17
|
ensureImage(): Image;
|
|
18
|
+
createSnapshot(daytona: Daytona, options?: CreateSnapshotOptions): Promise<string>;
|
|
19
|
+
ensureSnapshot(daytona: Daytona, mode: SnapshotMode): Promise<string | null>;
|
|
20
|
+
private snapshotName;
|
|
9
21
|
invalidate(): void;
|
|
10
22
|
}
|
|
@@ -6,13 +6,25 @@ const sandbox_setup_1 = require("./sandbox-setup");
|
|
|
6
6
|
function b64(s) {
|
|
7
7
|
return Buffer.from(s, 'utf-8').toString('base64');
|
|
8
8
|
}
|
|
9
|
+
function isAlreadyExistsError(error) {
|
|
10
|
+
if (!(error instanceof sdk_1.DaytonaError))
|
|
11
|
+
return false;
|
|
12
|
+
if (error.statusCode === 409)
|
|
13
|
+
return true;
|
|
14
|
+
return /already exists/i.test(error.message);
|
|
15
|
+
}
|
|
9
16
|
class SnapshotManager {
|
|
10
17
|
baseImage;
|
|
11
18
|
logger;
|
|
19
|
+
n8nVersion;
|
|
20
|
+
errorReporter;
|
|
12
21
|
cachedImage = null;
|
|
13
|
-
|
|
22
|
+
snapshotPromise = null;
|
|
23
|
+
constructor(baseImage, logger, n8nVersion, errorReporter) {
|
|
14
24
|
this.baseImage = baseImage;
|
|
15
25
|
this.logger = logger;
|
|
26
|
+
this.n8nVersion = n8nVersion;
|
|
27
|
+
this.errorReporter = errorReporter;
|
|
16
28
|
}
|
|
17
29
|
ensureImage() {
|
|
18
30
|
if (this.cachedImage)
|
|
@@ -28,8 +40,52 @@ class SnapshotManager {
|
|
|
28
40
|
});
|
|
29
41
|
return this.cachedImage;
|
|
30
42
|
}
|
|
43
|
+
async createSnapshot(daytona, options) {
|
|
44
|
+
const name = this.snapshotName();
|
|
45
|
+
try {
|
|
46
|
+
await daytona.snapshot.create({ name, image: this.ensureImage() }, options);
|
|
47
|
+
this.logger.info('Created versioned Daytona snapshot', { name });
|
|
48
|
+
return name;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
if (isAlreadyExistsError(error)) {
|
|
52
|
+
this.logger.info('Versioned Daytona snapshot already exists', { name });
|
|
53
|
+
return name;
|
|
54
|
+
}
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async ensureSnapshot(daytona, mode) {
|
|
59
|
+
if (!this.n8nVersion)
|
|
60
|
+
return null;
|
|
61
|
+
const name = this.snapshotName();
|
|
62
|
+
if (mode === 'proxy')
|
|
63
|
+
return name;
|
|
64
|
+
this.snapshotPromise ??= this.createSnapshot(daytona).catch((error) => {
|
|
65
|
+
this.errorReporter?.error(error, {
|
|
66
|
+
tags: { component: 'snapshot-manager', operation: 'create-snapshot' },
|
|
67
|
+
extra: { snapshotName: name },
|
|
68
|
+
});
|
|
69
|
+
this.logger.warn('Failed to create versioned snapshot; using declarative image', {
|
|
70
|
+
name,
|
|
71
|
+
error: error instanceof Error ? error.message : String(error),
|
|
72
|
+
});
|
|
73
|
+
return null;
|
|
74
|
+
});
|
|
75
|
+
const result = await this.snapshotPromise;
|
|
76
|
+
if (result === null)
|
|
77
|
+
this.snapshotPromise = null;
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
snapshotName() {
|
|
81
|
+
if (!this.n8nVersion) {
|
|
82
|
+
throw new Error('SnapshotManager: n8nVersion is required to derive a snapshot name');
|
|
83
|
+
}
|
|
84
|
+
return `n8n/instance-ai:${this.n8nVersion}`;
|
|
85
|
+
}
|
|
31
86
|
invalidate() {
|
|
32
87
|
this.cachedImage = null;
|
|
88
|
+
this.snapshotPromise = null;
|
|
33
89
|
}
|
|
34
90
|
}
|
|
35
91
|
exports.SnapshotManager = SnapshotManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-manager.js","sourceRoot":"","sources":["../../src/workspace/snapshot-manager.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"snapshot-manager.js","sourceRoot":"","sources":["../../src/workspace/snapshot-manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@n8n/instance-ai",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "src/index.ts",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"files": [
|
|
8
8
|
"dist/**/*",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
9
|
+
"LICENSE_EE.md",
|
|
10
|
+
"LICENSE.md"
|
|
11
11
|
],
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
@@ -15,8 +15,20 @@
|
|
|
15
15
|
"import": "./src/index.ts",
|
|
16
16
|
"types": "./dist/index.d.ts"
|
|
17
17
|
},
|
|
18
|
+
"./parsers": {
|
|
19
|
+
"require": "./dist/parsers/index.js",
|
|
20
|
+
"import": "./dist/parsers/index.js",
|
|
21
|
+
"types": "./dist/parsers/index.d.ts"
|
|
22
|
+
},
|
|
18
23
|
"./evaluations": "./evaluations/index.ts"
|
|
19
24
|
},
|
|
25
|
+
"typesVersions": {
|
|
26
|
+
"*": {
|
|
27
|
+
"parsers": [
|
|
28
|
+
"dist/parsers/index.d.ts"
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
},
|
|
20
32
|
"dependencies": {
|
|
21
33
|
"@daytonaio/sdk": "0.149.0",
|
|
22
34
|
"@joplin/turndown-plugin-gfm": "^1.0.12",
|
|
@@ -26,28 +38,36 @@
|
|
|
26
38
|
"@mastra/memory": "1.10.0",
|
|
27
39
|
"langsmith": "0.5.19",
|
|
28
40
|
"@mozilla/readability": "^0.6.0",
|
|
41
|
+
"@n8n/sandbox-client": "0.0.1",
|
|
29
42
|
"linkedom": "^0.18.9",
|
|
30
43
|
"luxon": "3.7.2",
|
|
31
|
-
"csv-parse": "
|
|
44
|
+
"csv-parse": "6.2.1",
|
|
45
|
+
"mammoth": "1.12.0",
|
|
32
46
|
"nanoid": "3.3.8",
|
|
33
47
|
"p-limit": "^3.1.0",
|
|
34
|
-
"pdf-parse": "
|
|
48
|
+
"pdf-parse": "2.4.5",
|
|
49
|
+
"psl": "1.9.0",
|
|
50
|
+
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz",
|
|
35
51
|
"turndown": "^7.2.0",
|
|
36
52
|
"zod": "3.25.67",
|
|
37
53
|
"@ai-sdk/provider-v5": "npm:@ai-sdk/provider@2.0.0",
|
|
38
54
|
"zod-from-json-schema-v3": "npm:zod-from-json-schema@^0.0.5",
|
|
39
55
|
"flatted": "3.4.2",
|
|
40
|
-
"@n8n/
|
|
41
|
-
"@n8n/api-types": "1.19.1",
|
|
42
|
-
"@n8n/agents": "0.6.0",
|
|
56
|
+
"@n8n/api-types": "1.21.0",
|
|
43
57
|
"@n8n/utils": "1.30.0",
|
|
44
|
-
"n8n-
|
|
58
|
+
"@n8n/workflow-sdk": "0.14.0",
|
|
59
|
+
"n8n-workflow": "2.21.0",
|
|
60
|
+
"@n8n/agents": "0.7.0"
|
|
45
61
|
},
|
|
46
62
|
"devDependencies": {
|
|
47
63
|
"@ai-sdk/anthropic": "2.0.61",
|
|
64
|
+
"@langchain/anthropic": "1.3.27",
|
|
65
|
+
"@langchain/core": "1.1.41",
|
|
48
66
|
"@types/luxon": "3.2.0",
|
|
67
|
+
"@types/psl": "1.1.3",
|
|
49
68
|
"@types/turndown": "^5.0.5",
|
|
50
69
|
"tsx": "^4.19.3",
|
|
70
|
+
"@n8n/ai-workflow-builder": "1.21.0",
|
|
51
71
|
"@n8n/typescript-config": "1.4.0"
|
|
52
72
|
},
|
|
53
73
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
@@ -70,6 +90,11 @@
|
|
|
70
90
|
"lint": "eslint . --quiet",
|
|
71
91
|
"lint:fix": "eslint . --fix",
|
|
72
92
|
"eval:instance-ai": "tsx evaluations/cli/index.ts",
|
|
73
|
-
"eval:
|
|
93
|
+
"eval:build-mcp-manifest": "tsx evaluations/cli/build-mcp-manifest.ts",
|
|
94
|
+
"eval:pairwise": "tsx evaluations/cli/pairwise.ts",
|
|
95
|
+
"eval:pairwise:report": "tsx evaluations/cli/report.ts",
|
|
96
|
+
"eval:pairwise:compare": "tsx evaluations/cli/compare-pairwise.ts",
|
|
97
|
+
"eval:subagent": "tsx evaluations/subagent/cli.ts",
|
|
98
|
+
"prompts:print": "tsx scripts/print-prompts.ts"
|
|
74
99
|
}
|
|
75
100
|
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { Category, TemplateFetchResponse, TemplateSearchResponse, WorkflowMetadata } from './types';
|
|
2
|
-
export declare function fetchTemplateList(query: {
|
|
3
|
-
search?: string;
|
|
4
|
-
category?: Category;
|
|
5
|
-
rows?: number;
|
|
6
|
-
nodes?: string;
|
|
7
|
-
}): Promise<TemplateSearchResponse>;
|
|
8
|
-
export declare function fetchTemplateByID(id: number): Promise<TemplateFetchResponse>;
|
|
9
|
-
export interface FetchWorkflowsResult {
|
|
10
|
-
workflows: WorkflowMetadata[];
|
|
11
|
-
totalFound: number;
|
|
12
|
-
templateIds: number[];
|
|
13
|
-
}
|
|
14
|
-
export declare function fetchWorkflowsFromTemplates(query: {
|
|
15
|
-
search?: string;
|
|
16
|
-
category?: Category;
|
|
17
|
-
rows?: number;
|
|
18
|
-
nodes?: string;
|
|
19
|
-
}, options?: {
|
|
20
|
-
maxTemplates?: number;
|
|
21
|
-
}): Promise<FetchWorkflowsResult>;
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fetchTemplateList = fetchTemplateList;
|
|
4
|
-
exports.fetchTemplateByID = fetchTemplateByID;
|
|
5
|
-
exports.fetchWorkflowsFromTemplates = fetchWorkflowsFromTemplates;
|
|
6
|
-
const N8N_API_BASE_URL = 'https://api.n8n.io/api';
|
|
7
|
-
function isTemplateSearchResponse(data) {
|
|
8
|
-
if (typeof data !== 'object' || data === null)
|
|
9
|
-
return false;
|
|
10
|
-
const obj = data;
|
|
11
|
-
return typeof obj.totalWorkflows === 'number' && Array.isArray(obj.workflows);
|
|
12
|
-
}
|
|
13
|
-
function isTemplateFetchResponse(data) {
|
|
14
|
-
if (typeof data !== 'object' || data === null)
|
|
15
|
-
return false;
|
|
16
|
-
const obj = data;
|
|
17
|
-
return (typeof obj.id === 'number' &&
|
|
18
|
-
typeof obj.name === 'string' &&
|
|
19
|
-
typeof obj.workflow === 'object' &&
|
|
20
|
-
obj.workflow !== null);
|
|
21
|
-
}
|
|
22
|
-
function buildSearchQueryString(query) {
|
|
23
|
-
const params = new URLSearchParams();
|
|
24
|
-
params.append('price', '0');
|
|
25
|
-
params.append('combineWith', 'and');
|
|
26
|
-
params.append('sort', 'createdAt:desc,rank:desc');
|
|
27
|
-
params.append('rows', String(query.rows ?? 5));
|
|
28
|
-
params.append('page', '1');
|
|
29
|
-
if (query.search)
|
|
30
|
-
params.append('search', query.search);
|
|
31
|
-
if (query.category)
|
|
32
|
-
params.append('category', query.category);
|
|
33
|
-
if (query.nodes)
|
|
34
|
-
params.append('nodes', query.nodes);
|
|
35
|
-
return params.toString();
|
|
36
|
-
}
|
|
37
|
-
async function fetchTemplateList(query) {
|
|
38
|
-
const queryString = buildSearchQueryString(query);
|
|
39
|
-
const url = `${N8N_API_BASE_URL}/templates/search${queryString ? `?${queryString}` : ''}`;
|
|
40
|
-
const response = await fetch(url, {
|
|
41
|
-
method: 'GET',
|
|
42
|
-
headers: {
|
|
43
|
-
'Content-Type': 'application/json',
|
|
44
|
-
Accept: 'application/json',
|
|
45
|
-
},
|
|
46
|
-
});
|
|
47
|
-
if (!response.ok) {
|
|
48
|
-
throw new Error(`Failed to fetch templates: ${response.status} ${response.statusText}`);
|
|
49
|
-
}
|
|
50
|
-
const data = await response.json();
|
|
51
|
-
if (!isTemplateSearchResponse(data)) {
|
|
52
|
-
throw new Error('Invalid response format from templates API');
|
|
53
|
-
}
|
|
54
|
-
return data;
|
|
55
|
-
}
|
|
56
|
-
async function fetchTemplateByID(id) {
|
|
57
|
-
const url = `${N8N_API_BASE_URL}/workflows/templates/${id}`;
|
|
58
|
-
const response = await fetch(url, {
|
|
59
|
-
method: 'GET',
|
|
60
|
-
headers: {
|
|
61
|
-
'Content-Type': 'application/json',
|
|
62
|
-
Accept: 'application/json',
|
|
63
|
-
},
|
|
64
|
-
});
|
|
65
|
-
if (!response.ok) {
|
|
66
|
-
throw new Error(`Failed to fetch template ${id}: ${response.status} ${response.statusText}`);
|
|
67
|
-
}
|
|
68
|
-
const data = await response.json();
|
|
69
|
-
if (!isTemplateFetchResponse(data)) {
|
|
70
|
-
throw new Error(`Invalid response format from template ${id} API`);
|
|
71
|
-
}
|
|
72
|
-
return data;
|
|
73
|
-
}
|
|
74
|
-
async function fetchWorkflowsFromTemplates(query, options) {
|
|
75
|
-
const { maxTemplates } = options ?? {};
|
|
76
|
-
const searchResponse = await fetchTemplateList(query);
|
|
77
|
-
const templatesToFetch = maxTemplates
|
|
78
|
-
? searchResponse.workflows.slice(0, maxTemplates)
|
|
79
|
-
: searchResponse.workflows;
|
|
80
|
-
const workflowResults = await Promise.all(templatesToFetch.map(async (template) => {
|
|
81
|
-
try {
|
|
82
|
-
const fullWorkflow = await fetchTemplateByID(template.id);
|
|
83
|
-
return {
|
|
84
|
-
metadata: {
|
|
85
|
-
templateId: template.id,
|
|
86
|
-
name: template.name,
|
|
87
|
-
description: template.description,
|
|
88
|
-
workflow: fullWorkflow.workflow,
|
|
89
|
-
},
|
|
90
|
-
templateId: template.id,
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
catch {
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
}));
|
|
97
|
-
const validResults = workflowResults.filter((result) => result !== null);
|
|
98
|
-
return {
|
|
99
|
-
workflows: validResults.map((r) => r.metadata),
|
|
100
|
-
totalFound: searchResponse.totalWorkflows,
|
|
101
|
-
templateIds: validResults.map((r) => r.templateId),
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=template-api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-api.js","sourceRoot":"","sources":["../../../src/tools/templates/template-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
export interface TemplateNode {
|
|
2
|
-
id?: string;
|
|
3
|
-
name: string;
|
|
4
|
-
type: string;
|
|
5
|
-
typeVersion: number;
|
|
6
|
-
position: [number, number];
|
|
7
|
-
parameters: Record<string, unknown>;
|
|
8
|
-
}
|
|
9
|
-
export interface ConnectionEntry {
|
|
10
|
-
node: string;
|
|
11
|
-
type?: string;
|
|
12
|
-
index?: number;
|
|
13
|
-
}
|
|
14
|
-
export type TemplateConnections = Record<string, Record<string, Array<ConnectionEntry[] | null>>>;
|
|
15
|
-
export interface TemplateWorkflow {
|
|
16
|
-
name?: string;
|
|
17
|
-
nodes: TemplateNode[];
|
|
18
|
-
connections: TemplateConnections;
|
|
19
|
-
}
|
|
20
|
-
export declare const categories: readonly ["AI", "AI Chatbot", "AI RAG", "AI Summarization", "Content Creation", "CRM", "Crypto Trading", "DevOps", "Document Extraction", "Document Ops", "Engineering", "File Management", "HR", "Internal Wiki", "Invoice Processing", "IT Ops", "Lead Generation", "Lead Nurturing", "Marketing", "Market Research", "Miscellaneous", "Multimodal AI", "Other", "Personal Productivity", "Project Management", "Sales", "SecOps", "Social Media", "Support", "Support Chatbot", "Ticket Management"];
|
|
21
|
-
export type Category = (typeof categories)[number];
|
|
22
|
-
export interface TemplateSearchQuery {
|
|
23
|
-
search?: string;
|
|
24
|
-
rows?: number;
|
|
25
|
-
category?: Category;
|
|
26
|
-
nodes?: string;
|
|
27
|
-
}
|
|
28
|
-
export interface TemplateWorkflowDescription {
|
|
29
|
-
id: number;
|
|
30
|
-
name: string;
|
|
31
|
-
description: string;
|
|
32
|
-
}
|
|
33
|
-
export interface TemplateSearchResponse {
|
|
34
|
-
totalWorkflows: number;
|
|
35
|
-
workflows: TemplateWorkflowDescription[];
|
|
36
|
-
}
|
|
37
|
-
export interface TemplateFetchResponse {
|
|
38
|
-
id: number;
|
|
39
|
-
name: string;
|
|
40
|
-
workflow: TemplateWorkflow;
|
|
41
|
-
}
|
|
42
|
-
export interface WorkflowMetadata {
|
|
43
|
-
templateId: number;
|
|
44
|
-
name: string;
|
|
45
|
-
description?: string;
|
|
46
|
-
workflow: TemplateWorkflow;
|
|
47
|
-
}
|
|
48
|
-
export interface NodeConfigurationEntry {
|
|
49
|
-
version: number;
|
|
50
|
-
parameters: Record<string, unknown>;
|
|
51
|
-
}
|
|
52
|
-
export type NodeConfigurationsMap = Record<string, NodeConfigurationEntry[]>;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.categories = void 0;
|
|
4
|
-
exports.categories = [
|
|
5
|
-
'AI',
|
|
6
|
-
'AI Chatbot',
|
|
7
|
-
'AI RAG',
|
|
8
|
-
'AI Summarization',
|
|
9
|
-
'Content Creation',
|
|
10
|
-
'CRM',
|
|
11
|
-
'Crypto Trading',
|
|
12
|
-
'DevOps',
|
|
13
|
-
'Document Extraction',
|
|
14
|
-
'Document Ops',
|
|
15
|
-
'Engineering',
|
|
16
|
-
'File Management',
|
|
17
|
-
'HR',
|
|
18
|
-
'Internal Wiki',
|
|
19
|
-
'Invoice Processing',
|
|
20
|
-
'IT Ops',
|
|
21
|
-
'Lead Generation',
|
|
22
|
-
'Lead Nurturing',
|
|
23
|
-
'Marketing',
|
|
24
|
-
'Market Research',
|
|
25
|
-
'Miscellaneous',
|
|
26
|
-
'Multimodal AI',
|
|
27
|
-
'Other',
|
|
28
|
-
'Personal Productivity',
|
|
29
|
-
'Project Management',
|
|
30
|
-
'Sales',
|
|
31
|
-
'SecOps',
|
|
32
|
-
'Social Media',
|
|
33
|
-
'Support',
|
|
34
|
-
'Support Chatbot',
|
|
35
|
-
'Ticket Management',
|
|
36
|
-
];
|
|
37
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/templates/types.ts"],"names":[],"mappings":";;;AA0Ca,QAAA,UAAU,GAAG;IACzB,IAAI;IACJ,YAAY;IACZ,QAAQ;IACR,kBAAkB;IAClB,kBAAkB;IAClB,KAAK;IACL,gBAAgB;IAChB,QAAQ;IACR,qBAAqB;IACrB,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,IAAI;IACJ,eAAe;IACf,oBAAoB;IACpB,QAAQ;IACR,iBAAiB;IACjB,gBAAgB;IAChB,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,OAAO;IACP,uBAAuB;IACvB,oBAAoB;IACpB,OAAO;IACP,QAAQ;IACR,cAAc;IACd,SAAS;IACT,iBAAiB;IACjB,mBAAmB;CACV,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { TemplateConnections, TemplateNode, WorkflowMetadata } from '../templates/types';
|
|
2
|
-
export interface MermaidWorkflowInput {
|
|
3
|
-
workflow: {
|
|
4
|
-
name?: string;
|
|
5
|
-
nodes: TemplateNode[];
|
|
6
|
-
connections: TemplateConnections;
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
export interface MermaidOptions {
|
|
10
|
-
includeNodeType?: boolean;
|
|
11
|
-
includeNodeParameters?: boolean;
|
|
12
|
-
includeNodeName?: boolean;
|
|
13
|
-
includeNodeId?: boolean;
|
|
14
|
-
}
|
|
15
|
-
export declare function mermaidStringify(input: WorkflowMetadata | MermaidWorkflowInput, options?: MermaidOptions): string;
|