@n8n/instance-ai 1.23.2 → 1.24.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.
Files changed (143) hide show
  1. package/dist/agent/instance-agent.js +5 -2
  2. package/dist/agent/instance-agent.js.map +1 -1
  3. package/dist/agent/system-prompt.d.ts +1 -0
  4. package/dist/agent/system-prompt.js +15 -1
  5. package/dist/agent/system-prompt.js.map +1 -1
  6. package/dist/build.tsbuildinfo +1 -1
  7. package/dist/error-formatting.js +3 -7
  8. package/dist/error-formatting.js.map +1 -1
  9. package/dist/errors/folder-resolution.error.d.ts +6 -0
  10. package/dist/errors/folder-resolution.error.js +13 -0
  11. package/dist/errors/folder-resolution.error.js.map +1 -0
  12. package/dist/errors/workflow-snapshot-changed.error.d.ts +4 -0
  13. package/dist/errors/workflow-snapshot-changed.error.js +11 -0
  14. package/dist/errors/workflow-snapshot-changed.error.js.map +1 -0
  15. package/dist/index.d.ts +9 -2
  16. package/dist/index.js +19 -3
  17. package/dist/index.js.map +1 -1
  18. package/dist/knowledge-base/extract-builder-templates-archive.js +2 -4
  19. package/dist/knowledge-base/extract-builder-templates-archive.js.map +1 -1
  20. package/dist/runtime/background-task-manager.d.ts +3 -1
  21. package/dist/runtime/background-task-manager.js +15 -1
  22. package/dist/runtime/background-task-manager.js.map +1 -1
  23. package/dist/runtime/liveness-policy.js.map +1 -1
  24. package/dist/runtime/resumable-stream-executor.d.ts +1 -2
  25. package/dist/runtime/resumable-stream-executor.js +4 -17
  26. package/dist/runtime/resumable-stream-executor.js.map +1 -1
  27. package/dist/runtime/run-state-registry.d.ts +4 -0
  28. package/dist/runtime/run-state-registry.js +18 -0
  29. package/dist/runtime/run-state-registry.js.map +1 -1
  30. package/dist/runtime/stream-runner.d.ts +0 -2
  31. package/dist/runtime/stream-runner.js +0 -1
  32. package/dist/runtime/stream-runner.js.map +1 -1
  33. package/dist/storage/agent-tree-snapshot.d.ts +0 -4
  34. package/dist/stream/consume-with-hitl.d.ts +0 -3
  35. package/dist/stream/consume-with-hitl.js +0 -2
  36. package/dist/stream/consume-with-hitl.js.map +1 -1
  37. package/dist/tools/conversation-history.schema.d.ts +231 -0
  38. package/dist/tools/conversation-history.schema.js +36 -0
  39. package/dist/tools/conversation-history.schema.js.map +1 -0
  40. package/dist/tools/conversation-history.tool.d.ts +2 -0
  41. package/dist/tools/conversation-history.tool.js +135 -0
  42. package/dist/tools/conversation-history.tool.js.map +1 -0
  43. package/dist/tools/credentials.tool.d.ts +3 -0
  44. package/dist/tools/credentials.tool.js +65 -0
  45. package/dist/tools/credentials.tool.js.map +1 -1
  46. package/dist/tools/data-tables.tool.js +59 -14
  47. package/dist/tools/data-tables.tool.js.map +1 -1
  48. package/dist/tools/evals/eval-config.tool.js +3 -5
  49. package/dist/tools/evals/eval-config.tool.js.map +1 -1
  50. package/dist/tools/index.js +12 -0
  51. package/dist/tools/index.js.map +1 -1
  52. package/dist/tools/mcp-servers.tool.js +1 -1
  53. package/dist/tools/mcp-servers.tool.js.map +1 -1
  54. package/dist/tools/n8n-docs/registry.d.ts +0 -1
  55. package/dist/tools/n8n-docs/registry.js +2 -5
  56. package/dist/tools/n8n-docs/registry.js.map +1 -1
  57. package/dist/tools/n8n-docs.tool.js +2 -1
  58. package/dist/tools/n8n-docs.tool.js.map +1 -1
  59. package/dist/tools/nodes/credential-setupability.json +1792 -0
  60. package/dist/tools/nodes/setup-preference.d.ts +9 -0
  61. package/dist/tools/nodes/setup-preference.js +23 -0
  62. package/dist/tools/nodes/setup-preference.js.map +1 -0
  63. package/dist/tools/nodes.tool.js +22 -9
  64. package/dist/tools/nodes.tool.js.map +1 -1
  65. package/dist/tools/orchestration/agent-target-binding.d.ts +6 -0
  66. package/dist/tools/orchestration/agent-target-binding.js +56 -32
  67. package/dist/tools/orchestration/agent-target-binding.js.map +1 -1
  68. package/dist/tools/orchestration/build-agent.tool.js +20 -3
  69. package/dist/tools/orchestration/build-agent.tool.js.map +1 -1
  70. package/dist/tools/orchestration/eval-setup-agent.tool.js +0 -1
  71. package/dist/tools/orchestration/eval-setup-agent.tool.js.map +1 -1
  72. package/dist/tools/orchestration/list-agent-capabilities.tool.d.ts +2 -0
  73. package/dist/tools/orchestration/list-agent-capabilities.tool.js +45 -0
  74. package/dist/tools/orchestration/list-agent-capabilities.tool.js.map +1 -0
  75. package/dist/tools/orchestration/verification/prepare-run.d.ts +1 -1
  76. package/dist/tools/orchestration/verification/prepare-run.js +32 -37
  77. package/dist/tools/orchestration/verification/prepare-run.js.map +1 -1
  78. package/dist/tools/orchestration/verification/types.d.ts +1 -0
  79. package/dist/tools/orchestration/verify-built-workflow.tool.d.ts +3 -0
  80. package/dist/tools/orchestration/verify-built-workflow.tool.js +8 -2
  81. package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
  82. package/dist/tools/tool-ids.d.ts +2 -0
  83. package/dist/tools/tool-ids.js +4 -0
  84. package/dist/tools/tool-ids.js.map +1 -1
  85. package/dist/tools/workflows/build-workflow.tool.d.ts +32 -0
  86. package/dist/tools/workflows/build-workflow.tool.js +140 -29
  87. package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
  88. package/dist/tools/workflows/generate-simulation-fixtures.service.d.ts +6 -0
  89. package/dist/tools/workflows/generate-simulation-fixtures.service.js +119 -14
  90. package/dist/tools/workflows/generate-simulation-fixtures.service.js.map +1 -1
  91. package/dist/tools/workflows/plan-verification-simulation.js +21 -2
  92. package/dist/tools/workflows/plan-verification-simulation.js.map +1 -1
  93. package/dist/tools/workflows/preserve-node-positions.js +33 -9
  94. package/dist/tools/workflows/preserve-node-positions.js.map +1 -1
  95. package/dist/tools/workflows/setup-items.d.ts +23 -0
  96. package/dist/tools/workflows/setup-items.js +154 -0
  97. package/dist/tools/workflows/setup-items.js.map +1 -0
  98. package/dist/tools/workflows/summarize-workflow.d.ts +4 -1
  99. package/dist/tools/workflows/summarize-workflow.js +8 -2
  100. package/dist/tools/workflows/summarize-workflow.js.map +1 -1
  101. package/dist/tools/workflows/workflow-build-remediation.js +3 -2
  102. package/dist/tools/workflows/workflow-build-remediation.js.map +1 -1
  103. package/dist/tools/workflows/workflow-build-telemetry.d.ts +1 -1
  104. package/dist/tools/workflows/workflow-build-telemetry.js.map +1 -1
  105. package/dist/tools/workflows/workflow-file-bindings.d.ts +1 -0
  106. package/dist/tools/workflows/workflow-file-bindings.js +13 -1
  107. package/dist/tools/workflows/workflow-file-bindings.js.map +1 -1
  108. package/dist/tools/workflows/workflow-source-compiler.d.ts +1 -0
  109. package/dist/tools/workflows/workflow-source-compiler.js +1 -0
  110. package/dist/tools/workflows/workflow-source-compiler.js.map +1 -1
  111. package/dist/tools/workflows/workflow-source-materializer.d.ts +28 -0
  112. package/dist/tools/workflows/workflow-source-materializer.js +98 -0
  113. package/dist/tools/workflows/workflow-source-materializer.js.map +1 -0
  114. package/dist/tools/workflows.tool.d.ts +1 -1
  115. package/dist/tools/workflows.tool.js +195 -23
  116. package/dist/tools/workflows.tool.js.map +1 -1
  117. package/dist/tools/workspace.tool.js +8 -3
  118. package/dist/tools/workspace.tool.js.map +1 -1
  119. package/dist/tracing/langsmith-tracing.js +3 -5
  120. package/dist/tracing/langsmith-tracing.js.map +1 -1
  121. package/dist/tracing/trace-payloads.js +4 -5
  122. package/dist/tracing/trace-payloads.js.map +1 -1
  123. package/dist/types.d.ts +92 -7
  124. package/dist/types.js +3 -1
  125. package/dist/types.js.map +1 -1
  126. package/dist/utils/model-config-id.d.ts +1 -0
  127. package/dist/utils/model-config-id.js +24 -0
  128. package/dist/utils/model-config-id.js.map +1 -0
  129. package/dist/utils/node-keyed-items.d.ts +1 -0
  130. package/dist/utils/node-keyed-items.js +10 -0
  131. package/dist/utils/node-keyed-items.js.map +1 -0
  132. package/dist/workflow-loop/guidance.js +1 -1
  133. package/dist/workflow-loop/guidance.js.map +1 -1
  134. package/dist/workspace/sandbox-setup.js +4 -6
  135. package/dist/workspace/sandbox-setup.js.map +1 -1
  136. package/package.json +12 -12
  137. package/skills/agent-builder/SKILL.md +23 -0
  138. package/skills/data-table-manager/SKILL.md +34 -3
  139. package/skills/intent-recognition/SKILL.md +55 -0
  140. package/skills/workflow-builder/SKILL.md +111 -27
  141. package/dist/stream/output-redaction.d.ts +0 -31
  142. package/dist/stream/output-redaction.js +0 -191
  143. package/dist/stream/output-redaction.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.prepareVerificationRun = prepareVerificationRun;
4
+ const node_keyed_items_1 = require("../../../utils/node-keyed-items");
4
5
  const remediation_1 = require("../../../workflow-loop/remediation");
5
6
  function getInvalidFixtureOverrideNodeNames(buildOutcome, fixtureOverrides) {
6
7
  if (!fixtureOverrides)
@@ -11,7 +12,7 @@ function getInvalidFixtureOverrideNodeNames(buildOutcome, fixtureOverrides) {
11
12
  return Object.keys(fixtureOverrides).filter((nodeName) => !simulatedNodeNames.has(nodeName));
12
13
  }
13
14
  function buildVerificationPinData(buildOutcome, fixtureOverrides) {
14
- const merged = { ...(buildOutcome.verificationPinData ?? {}) };
15
+ const merged = new Map(Object.entries(buildOutcome.verificationPinData ?? {}));
15
16
  const fixtures = buildOutcome.simulationFixtures ?? {};
16
17
  const simulatedNodes = [];
17
18
  const haltedGateNames = [];
@@ -21,28 +22,39 @@ function buildVerificationPinData(buildOutcome, fixtureOverrides) {
21
22
  simulatedNodes.push({ nodeName: verdict.nodeName, reason: verdict.reason });
22
23
  if (verdict.haltBranch) {
23
24
  haltedGateNames.push(verdict.nodeName);
24
- merged[verdict.nodeName] = [];
25
+ merged.set(verdict.nodeName, []);
25
26
  continue;
26
27
  }
27
- const items = fixtures[verdict.nodeName];
28
- merged[verdict.nodeName] = items?.length ? items : [{}];
28
+ const items = (0, node_keyed_items_1.itemsForNode)(fixtures, verdict.nodeName);
29
+ merged.set(verdict.nodeName, items?.length ? items : [{}]);
29
30
  }
30
31
  if (fixtureOverrides) {
31
32
  for (const [nodeName, items] of Object.entries(fixtureOverrides)) {
32
33
  if (haltedGateNames.includes(nodeName))
33
34
  continue;
34
- merged[nodeName] = items;
35
+ merged.set(nodeName, items);
35
36
  }
36
37
  }
37
38
  const gateScript = (buildOutcome.waitGateScripts ?? []).find((script) => haltedGateNames.includes(script.nodeName));
38
39
  return {
39
- verificationPinData: Object.keys(merged).length > 0 ? merged : undefined,
40
+ verificationPinData: merged.size > 0 ? Object.fromEntries(merged) : undefined,
40
41
  simulatedNodes,
41
42
  haltedGateNames,
42
43
  ...(gateScript ? { gateScript } : {}),
43
44
  };
44
45
  }
45
- function prepareVerificationRun(buildOutcome, fixtureOverrides) {
46
+ function blocked(reason, guidance) {
47
+ const remediation = (0, remediation_1.createRemediation)({
48
+ category: 'blocked',
49
+ shouldEdit: false,
50
+ reason,
51
+ guidance,
52
+ });
53
+ return { kind: 'blocked', result: { success: false, error: guidance, remediation, guidance } };
54
+ }
55
+ function prepareVerificationRun(buildOutcome, input) {
56
+ const { fixtureOverrides } = input;
57
+ const allowedZeroItemNodes = new Set(input.allowZeroItemFixtures ?? []);
46
58
  const haltedOverrideNodeNames = Object.keys(fixtureOverrides ?? {}).filter((nodeName) => (buildOutcome.nodeSimulationPlan ?? []).some((verdict) => verdict.nodeName === nodeName && verdict.verdict === 'simulate' && verdict.haltBranch));
47
59
  if (haltedOverrideNodeNames.length > 0) {
48
60
  const guidance = `Node(s) ${haltedOverrideNodeNames.join(', ')} pause the workflow for a human decision and sit on a loop — ` +
@@ -50,42 +62,25 @@ function prepareVerificationRun(buildOutcome, fixtureOverrides) {
50
62
  'answer forever. Verification drives such gates with scripted decisions where possible, or halts at ' +
51
63
  'them otherwise. Treat the scripted/halted result as authoritative and tell the user the approval ' +
52
64
  'loop needs a manual end-to-end test for final confirmation.';
53
- const remediation = (0, remediation_1.createRemediation)({
54
- category: 'blocked',
55
- shouldEdit: false,
56
- reason: 'halted_wait_gate_override',
57
- guidance,
58
- });
59
- return {
60
- kind: 'blocked',
61
- result: {
62
- success: false,
63
- error: guidance,
64
- remediation,
65
- guidance,
66
- },
67
- };
65
+ return blocked('halted_wait_gate_override', guidance);
68
66
  }
69
67
  const invalidFixtureOverrideNodeNames = getInvalidFixtureOverrideNodeNames(buildOutcome, fixtureOverrides);
70
68
  if (invalidFixtureOverrideNodeNames.length > 0) {
71
69
  const guidance = 'Fixture overrides can only target nodes already classified as simulated in the build outcome. ' +
72
70
  `Invalid override node(s): ${invalidFixtureOverrideNodeNames.join(', ')}. ` +
73
71
  'Do not run the workflow live; rebuild with declared output fixtures or override a simulated node.';
74
- const remediation = (0, remediation_1.createRemediation)({
75
- category: 'blocked',
76
- shouldEdit: false,
77
- reason: 'invalid_fixture_override',
78
- guidance,
79
- });
80
- return {
81
- kind: 'blocked',
82
- result: {
83
- success: false,
84
- error: guidance,
85
- remediation,
86
- guidance,
87
- },
88
- };
72
+ return blocked('invalid_fixture_override', guidance);
73
+ }
74
+ const zeroItemOverrideNodeNames = Object.entries(fixtureOverrides ?? {})
75
+ .filter(([nodeName, items]) => items.length === 0 && !allowedZeroItemNodes.has(nodeName))
76
+ .map(([nodeName]) => nodeName);
77
+ if (zeroItemOverrideNodeNames.length > 0) {
78
+ const guidance = `Fixture override(s) for ${zeroItemOverrideNodeNames.join(', ')} pin zero items. ` +
79
+ 'An empty item list stops every downstream node, so verification would pass without running ' +
80
+ 'the branch you are checking. Give each node at least one plausible item instead. ' +
81
+ 'If the empty result IS the case under test, repeat the call with the node listed in ' +
82
+ '`allowZeroItemFixtures` and report that the downstream branch stayed unverified.';
83
+ return blocked('zero_item_fixture_override', guidance);
89
84
  }
90
85
  return { kind: 'ready', prepared: buildVerificationPinData(buildOutcome, fixtureOverrides) };
91
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-run.js","sourceRoot":"","sources":["../../../../src/tools/orchestration/verification/prepare-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepare-run.js","sourceRoot":"","sources":["../../../../src/tools/orchestration/verification/prepare-run.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export interface VerifyToolInput {
9
9
  includeData?: boolean;
10
10
  maxDataChars?: number;
11
11
  fixtureOverrides?: Record<string, Array<Record<string, unknown>>>;
12
+ allowZeroItemFixtures?: string[];
12
13
  }
13
14
  export interface ResolvedVerifyInput extends VerifyToolInput {
14
15
  workItemId: string;
@@ -9,6 +9,7 @@ export declare const verifyBuiltWorkflowInputSchema: z.ZodObject<{
9
9
  includeData: z.ZodOptional<z.ZodBoolean>;
10
10
  maxDataChars: z.ZodOptional<z.ZodNumber>;
11
11
  fixtureOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>>;
12
+ allowZeroItemFixtures: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
12
13
  }, "strip", z.ZodTypeAny, {
13
14
  workItemId?: string | undefined;
14
15
  workflowId: string;
@@ -18,6 +19,7 @@ export declare const verifyBuiltWorkflowInputSchema: z.ZodObject<{
18
19
  includeData?: boolean | undefined;
19
20
  maxDataChars?: number | undefined;
20
21
  fixtureOverrides?: Record<string, Record<string, unknown>[]> | undefined;
22
+ allowZeroItemFixtures?: string[] | undefined;
21
23
  }, {
22
24
  workItemId?: string | undefined;
23
25
  workflowId: string;
@@ -27,5 +29,6 @@ export declare const verifyBuiltWorkflowInputSchema: z.ZodObject<{
27
29
  includeData?: boolean | undefined;
28
30
  maxDataChars?: number | undefined;
29
31
  fixtureOverrides?: Record<string, Record<string, unknown>[]> | undefined;
32
+ allowZeroItemFixtures?: string[] | undefined;
30
33
  }>;
31
34
  export declare function createVerifyBuiltWorkflowTool(context: OrchestrationContext): import("@n8n/agents").BuiltTool;
@@ -60,7 +60,13 @@ exports.verifyBuiltWorkflowInputSchema = zod_1.z.object({
60
60
  fixtureOverrides: zod_1.z
61
61
  .record(zod_1.z.array(zod_1.z.record(zod_1.z.unknown())))
62
62
  .optional()
63
- .describe('Optional per-run output fixtures keyed by node name. Only nodes already classified as simulated in the build outcome may be overridden. Use this for alternate deterministic scenarios, not raw trigger input.'),
63
+ .describe('Optional per-run output fixtures keyed by node name. Only nodes already classified as simulated in the build outcome may be overridden. Use this for alternate deterministic scenarios, not raw trigger input. ' +
64
+ 'An empty array is rejected unless the node is also listed in `allowZeroItemFixtures`.'),
65
+ allowZeroItemFixtures: zod_1.z
66
+ .array(zod_1.z.string())
67
+ .optional()
68
+ .describe('Node names whose `fixtureOverrides` entry may be an empty array. Zero items stop every node below, so the run reports success while verifying nothing. ' +
69
+ 'List a node here only when the empty branch is what you are verifying, and say so in your report.'),
64
70
  });
65
71
  const remediationOutputSchema = zod_1.z
66
72
  .object({
@@ -130,7 +136,7 @@ function createVerifyBuiltWorkflowTool(context) {
130
136
  workflowId,
131
137
  });
132
138
  }
133
- const preparedResult = (0, prepare_run_1.prepareVerificationRun)(buildOutcome, resolvedInput.fixtureOverrides);
139
+ const preparedResult = (0, prepare_run_1.prepareVerificationRun)(buildOutcome, resolvedInput);
134
140
  if (preparedResult.kind === 'blocked') {
135
141
  return {
136
142
  ...preparedResult.result,
@@ -1 +1 @@
1
- {"version":3,"file":"verify-built-workflow.tool.js","sourceRoot":"","sources":["../../../src/tools/orchestration/verify-built-workflow.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify-built-workflow.tool.js","sourceRoot":"","sources":["../../../src/tools/orchestration/verify-built-workflow.tool.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare const DOMAIN_TOOL_IDS: {
14
14
  readonly PARSE_FILE: 'parse-file';
15
15
  readonly AGENTS: 'agents';
16
16
  readonly MCP_SERVERS: 'mcp-servers';
17
+ readonly CONVERSATION_HISTORY: 'conversation-history';
17
18
  };
18
19
  export declare const COMPILED_WORKFLOW_TRACE_RUN_NAME = "compiled-workflow";
19
20
  export declare const AGENT_SNAPSHOT_TRACE_RUN_NAME = "agent-snapshot";
@@ -27,6 +28,7 @@ export declare const ORCHESTRATION_TOOL_IDS: {
27
28
  readonly REPORT_VERIFICATION_VERDICT: 'report-verification-verdict';
28
29
  readonly APPLY_WORKFLOW_CREDENTIALS: 'apply-workflow-credentials';
29
30
  readonly BUILD_AGENT: 'build-agent';
31
+ readonly LIST_AGENT_CAPABILITIES: 'list-agent-capabilities';
30
32
  readonly GET_SESSION: 'get-session';
31
33
  };
32
34
  export declare const WORKSPACE_TOOL_IDS: {
@@ -18,6 +18,7 @@ exports.DOMAIN_TOOL_IDS = {
18
18
  PARSE_FILE: 'parse-file',
19
19
  AGENTS: 'agents',
20
20
  MCP_SERVERS: 'mcp-servers',
21
+ CONVERSATION_HISTORY: 'conversation-history',
21
22
  };
22
23
  exports.COMPILED_WORKFLOW_TRACE_RUN_NAME = 'compiled-workflow';
23
24
  exports.AGENT_SNAPSHOT_TRACE_RUN_NAME = 'agent-snapshot';
@@ -31,6 +32,7 @@ exports.ORCHESTRATION_TOOL_IDS = {
31
32
  REPORT_VERIFICATION_VERDICT: 'report-verification-verdict',
32
33
  APPLY_WORKFLOW_CREDENTIALS: 'apply-workflow-credentials',
33
34
  BUILD_AGENT: 'build-agent',
35
+ LIST_AGENT_CAPABILITIES: 'list-agent-capabilities',
34
36
  GET_SESSION: 'get-session',
35
37
  };
36
38
  exports.WORKSPACE_TOOL_IDS = {
@@ -56,9 +58,11 @@ exports.ALWAYS_LOADED_TOOL_NAMES = new Set([
56
58
  exports.DOMAIN_TOOL_IDS.N8N_DOCS,
57
59
  exports.DOMAIN_TOOL_IDS.AGENTS,
58
60
  exports.DOMAIN_TOOL_IDS.MCP_SERVERS,
61
+ exports.DOMAIN_TOOL_IDS.CONVERSATION_HISTORY,
59
62
  'web-search',
60
63
  'fetch-url',
61
64
  ...((0, agent_feature_enabled_1.isAgentFeatureEnabled)() ? [exports.ORCHESTRATION_TOOL_IDS.BUILD_AGENT] : []),
65
+ ...((0, agent_feature_enabled_1.isAgentFeatureEnabled)() ? [exports.ORCHESTRATION_TOOL_IDS.LIST_AGENT_CAPABILITIES] : []),
62
66
  ]);
63
67
  exports.CHECKPOINT_FOLLOW_UP_TOOL_NAMES = new Set([
64
68
  exports.ORCHESTRATION_TOOL_IDS.COMPLETE_CHECKPOINT,
@@ -1 +1 @@
1
- {"version":3,"file":"tool-ids.js","sourceRoot":"","sources":["../../src/tools/tool-ids.ts"],"names":[],"mappings":";;;AAAA,0EAAuE;AAE1D,QAAA,eAAe,GAAG;IAC9B,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,gBAAgB;IAChC,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;CACjB,CAAC;AAME,QAAA,gCAAgC,GAAG,mBAAmB,CAAC;AAIvD,QAAA,6BAA6B,GAAG,gBAAgB,CAAC;AAEjD,QAAA,sBAAsB,GAAG;IACrC,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,qBAAqB,EAAE,uBAAuB;IAC9C,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,qBAAqB;IAC1C,qBAAqB,EAAE,uBAAuB;IAC9C,2BAA2B,EAAE,6BAA6B;IAC1D,0BAA0B,EAAE,4BAA4B;IACxD,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;CACjB,CAAC;AAEE,QAAA,kBAAkB,GAAG;IACjC,UAAU,EAAE,YAAY;CACf,CAAC;AAEE,QAAA,mBAAmB,GAAG,QAAA,eAAe,CAAC,WAAW,CAAC;AAClD,QAAA,mBAAmB,GAAG,QAAA,eAAe,CAAC,WAAW,CAAC;AAClD,QAAA,mBAAmB,GAAG,QAAA,eAAe,CAAC,WAAW,CAAC;AAClD,QAAA,gBAAgB,GAAG,QAAA,eAAe,CAAC,QAAQ,CAAC;AAC5C,QAAA,gBAAgB,GAAG,QAAA,eAAe,CAAC,QAAQ,CAAC;AAE5C,QAAA,wBAAwB,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,QAAA,sBAAsB,CAAC,CAAC,CAAC;AAElF,QAAA,wBAAwB,GAAG,IAAI,GAAG,CAAS;IACvD,QAAA,eAAe,CAAC,QAAQ;IACxB,QAAA,eAAe,CAAC,WAAW;IAC3B,QAAA,eAAe,CAAC,SAAS;IACzB,QAAA,eAAe,CAAC,UAAU;IAC1B,QAAA,eAAe,CAAC,WAAW;IAC3B,QAAA,eAAe,CAAC,UAAU;IAC1B,QAAA,eAAe,CAAC,cAAc;IAC9B,QAAA,eAAe,CAAC,KAAK;IACrB,QAAA,sBAAsB,CAAC,qBAAqB;IAC5C,QAAA,eAAe,CAAC,QAAQ;IAKxB,QAAA,eAAe,CAAC,QAAQ;IACxB,QAAA,eAAe,CAAC,MAAM;IAItB,QAAA,eAAe,CAAC,WAAW;IAC3B,YAAY;IACZ,WAAW;IAIX,GAAG,CAAC,IAAA,6CAAqB,GAAE,CAAC,CAAC,CAAC,CAAC,QAAA,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;CACxE,CAAC,CAAC;AAEU,QAAA,+BAA+B,GAAG,IAAI,GAAG,CAAS;IAC9D,QAAA,sBAAsB,CAAC,mBAAmB;IAC1C,QAAA,eAAe,CAAC,UAAU;CAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"tool-ids.js","sourceRoot":"","sources":["../../src/tools/tool-ids.ts"],"names":[],"mappings":";;;AAAA,0EAAuE;AAE1D,QAAA,eAAe,GAAG;IAC9B,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,gBAAgB;IAChC,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,oBAAoB,EAAE,sBAAsB;CACnC,CAAC;AAME,QAAA,gCAAgC,GAAG,mBAAmB,CAAC;AAIvD,QAAA,6BAA6B,GAAG,gBAAgB,CAAC;AAEjD,QAAA,sBAAsB,GAAG;IACrC,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,qBAAqB,EAAE,uBAAuB;IAC9C,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,qBAAqB;IAC1C,qBAAqB,EAAE,uBAAuB;IAC9C,2BAA2B,EAAE,6BAA6B;IAC1D,0BAA0B,EAAE,4BAA4B;IACxD,WAAW,EAAE,aAAa;IAC1B,uBAAuB,EAAE,yBAAyB;IAClD,WAAW,EAAE,aAAa;CACjB,CAAC;AAEE,QAAA,kBAAkB,GAAG;IACjC,UAAU,EAAE,YAAY;CACf,CAAC;AAEE,QAAA,mBAAmB,GAAG,QAAA,eAAe,CAAC,WAAW,CAAC;AAClD,QAAA,mBAAmB,GAAG,QAAA,eAAe,CAAC,WAAW,CAAC;AAClD,QAAA,mBAAmB,GAAG,QAAA,eAAe,CAAC,WAAW,CAAC;AAClD,QAAA,gBAAgB,GAAG,QAAA,eAAe,CAAC,QAAQ,CAAC;AAC5C,QAAA,gBAAgB,GAAG,QAAA,eAAe,CAAC,QAAQ,CAAC;AAE5C,QAAA,wBAAwB,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,QAAA,sBAAsB,CAAC,CAAC,CAAC;AAElF,QAAA,wBAAwB,GAAG,IAAI,GAAG,CAAS;IACvD,QAAA,eAAe,CAAC,QAAQ;IACxB,QAAA,eAAe,CAAC,WAAW;IAC3B,QAAA,eAAe,CAAC,SAAS;IACzB,QAAA,eAAe,CAAC,UAAU;IAC1B,QAAA,eAAe,CAAC,WAAW;IAC3B,QAAA,eAAe,CAAC,UAAU;IAC1B,QAAA,eAAe,CAAC,cAAc;IAC9B,QAAA,eAAe,CAAC,KAAK;IACrB,QAAA,sBAAsB,CAAC,qBAAqB;IAC5C,QAAA,eAAe,CAAC,QAAQ;IAKxB,QAAA,eAAe,CAAC,QAAQ;IACxB,QAAA,eAAe,CAAC,MAAM;IAItB,QAAA,eAAe,CAAC,WAAW;IAC3B,QAAA,eAAe,CAAC,oBAAoB;IACpC,YAAY;IACZ,WAAW;IAIX,GAAG,CAAC,IAAA,6CAAqB,GAAE,CAAC,CAAC,CAAC,CAAC,QAAA,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAMxE,GAAG,CAAC,IAAA,6CAAqB,GAAE,CAAC,CAAC,CAAC,CAAC,QAAA,sBAAsB,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;CACpF,CAAC,CAAC;AAEU,QAAA,+BAA+B,GAAG,IAAI,GAAG,CAAS;IAC9D,QAAA,sBAAsB,CAAC,mBAAmB;IAC1C,QAAA,eAAe,CAAC,UAAU;CAC1B,CAAC,CAAC"}
@@ -28,6 +28,38 @@ export declare const buildWorkflowInputSchema: z.ZodObject<{
28
28
  preferNewCredentials?: string[] | undefined;
29
29
  executionIntent?: "one-off" | "reusable" | undefined;
30
30
  }>;
31
+ export declare const buildWorkflowInputSchemaWithFolderPlacement: z.ZodObject<{
32
+ filePath: z.ZodEffects<z.ZodString, string, string>;
33
+ sourceCode: z.ZodOptional<z.ZodString>;
34
+ workflowId: z.ZodOptional<z.ZodString>;
35
+ name: z.ZodOptional<z.ZodString>;
36
+ workItemId: z.ZodOptional<z.ZodString>;
37
+ isSupportingWorkflow: z.ZodOptional<z.ZodBoolean>;
38
+ preferNewCredentials: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
39
+ executionIntent: z.ZodOptional<z.ZodEnum<["one-off", "reusable"]>>;
40
+ } & {
41
+ folderPath: z.ZodOptional<z.ZodString>;
42
+ }, "strict", z.ZodTypeAny, {
43
+ filePath: string;
44
+ sourceCode?: string | undefined;
45
+ workflowId?: string | undefined;
46
+ name?: string | undefined;
47
+ workItemId?: string | undefined;
48
+ isSupportingWorkflow?: boolean | undefined;
49
+ preferNewCredentials?: string[] | undefined;
50
+ executionIntent?: "one-off" | "reusable" | undefined;
51
+ folderPath?: string | undefined;
52
+ }, {
53
+ filePath: string;
54
+ sourceCode?: string | undefined;
55
+ workflowId?: string | undefined;
56
+ name?: string | undefined;
57
+ workItemId?: string | undefined;
58
+ isSupportingWorkflow?: boolean | undefined;
59
+ preferNewCredentials?: string[] | undefined;
60
+ executionIntent?: "one-off" | "reusable" | undefined;
61
+ folderPath?: string | undefined;
62
+ }>;
31
63
  export declare function autoImportMissingSdkSymbols(source: string, errors: string[]): {
32
64
  source: string;
33
65
  symbols: string[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildWorkflowInputSchema = void 0;
3
+ exports.buildWorkflowInputSchemaWithFolderPlacement = exports.buildWorkflowInputSchema = void 0;
4
4
  exports.autoImportMissingSdkSymbols = autoImportMissingSdkSymbols;
5
5
  exports.createBuildWorkflowTool = createBuildWorkflowTool;
6
6
  const agents_1 = require("@n8n/agents");
@@ -17,6 +17,7 @@ const plan_verification_simulation_1 = require("./plan-verification-simulation")
17
17
  const preserve_node_positions_1 = require("./preserve-node-positions");
18
18
  const resolve_credentials_1 = require("./resolve-credentials");
19
19
  const resolved_credential_schema_1 = require("./resolved-credential.schema");
20
+ const setup_items_1 = require("./setup-items");
20
21
  const setup_skip_state_1 = require("./setup-skip-state");
21
22
  const setup_workflow_service_1 = require("./setup-workflow.service");
22
23
  const workflow_build_context_1 = require("./workflow-build-context");
@@ -29,6 +30,7 @@ const workflow_json_utils_1 = require("./workflow-json-utils");
29
30
  const workflow_node_diff_1 = require("./workflow-node-diff");
30
31
  const workflow_source_compiler_1 = require("./workflow-source-compiler");
31
32
  const workflow_validation_warnings_1 = require("./workflow-validation-warnings");
33
+ const folder_resolution_error_1 = require("../../errors/folder-resolution.error");
32
34
  const workflow_save_conflict_error_1 = require("../../errors/workflow-save-conflict.error");
33
35
  const runtime_skills_1 = require("../../skills/runtime-skills");
34
36
  const langsmith_tracing_1 = require("../../tracing/langsmith-tracing");
@@ -109,6 +111,34 @@ exports.buildWorkflowInputSchema = zod_1.z
109
111
  'anything the user may run again.'),
110
112
  })
111
113
  .strict();
114
+ const FOLDER_PATH_PLACEMENT_DESCRIPTION = 'Folder to create the NEW workflow in, named the way the user named it — "Clients/Acme", "Acme". ' +
115
+ 'Pass it whenever the workflow has a clear home: the user named a folder, or the related workflows you read live there. ' +
116
+ 'Resolved strictly (exact path, then folder name, then path suffix), never fuzzy: an unresolved folder fails the build before anything is saved and lists the real folders, so retry with one of those or ask the user. ' +
117
+ 'New workflows only — to move an existing workflow use `workspace(action="move-workflow-to-folder")`.';
118
+ exports.buildWorkflowInputSchemaWithFolderPlacement = exports.buildWorkflowInputSchema
119
+ .extend({
120
+ folderPath: zod_1.z.string().optional().describe(FOLDER_PATH_PLACEMENT_DESCRIPTION),
121
+ })
122
+ .strict();
123
+ function pickBuildWorkflowInputSchema(context) {
124
+ return context.folderExplorationEnabled === true
125
+ ? exports.buildWorkflowInputSchemaWithFolderPlacement
126
+ : exports.buildWorkflowInputSchema;
127
+ }
128
+ function formatFolderPlacementFailure(failure) {
129
+ const candidates = failure.candidates.length > 0
130
+ ? ` Folders in this project: ${failure.candidates.map((path) => `"${path}"`).join(', ')}.`
131
+ : '';
132
+ const retry = ' Re-run `build-workflow` with one of those paths as `folderPath`, or ask the user which folder they mean. Do NOT guess a folder from workflow names, and do NOT drop `folderPath` to save at the project root unless the user agrees.';
133
+ switch (failure.reason) {
134
+ case 'ambiguous':
135
+ return `Folder "${failure.requested}" matches more than one folder, so the workflow was NOT created.${candidates}${retry}`;
136
+ case 'unsupported':
137
+ return `Folders are not available on this instance, so the workflow was NOT created in "${failure.requested}". Tell the user, and re-run without \`folderPath\` only if they agree to a root-level workflow.`;
138
+ default:
139
+ return `No folder matches "${failure.requested}", so the workflow was NOT created.${candidates}${retry}`;
140
+ }
141
+ }
112
142
  const triggerNodeOutputSchema = zod_1.z.object({
113
143
  nodeName: zod_1.z.string(),
114
144
  nodeType: zod_1.z.string(),
@@ -255,6 +285,39 @@ async function handleValidationFailure(args) {
255
285
  warnings: (0, workflow_build_context_1.combineWarnings)(informational.map((w) => (0, workflow_build_context_1.formatWarning)(w.code, w.message))),
256
286
  };
257
287
  }
288
+ const buildWorkflowOutputSchema = zod_1.z.object({
289
+ success: zod_1.z.boolean(),
290
+ filePath: zod_1.z.string(),
291
+ sourceHash: zod_1.z.string().optional(),
292
+ workflowId: zod_1.z.string().optional(),
293
+ workflowName: zod_1.z.string().optional(),
294
+ workItemId: zod_1.z.string().optional(),
295
+ triggerNodes: zod_1.z.array(triggerNodeOutputSchema).optional(),
296
+ verificationReadiness: verificationReadinessOutputSchema.optional(),
297
+ executionIntent: zod_1.z.enum(['one-off', 'reusable']).optional(),
298
+ setupRequirement: setupRequirementOutputSchema.optional(),
299
+ postBuildFlow: postBuildFlowOutputSchema.optional(),
300
+ isSupportingWorkflow: zod_1.z.boolean().optional(),
301
+ mockedNodeNames: zod_1.z.array(zod_1.z.string()).optional(),
302
+ mockedCredentialTypes: zod_1.z.array(zod_1.z.string()).optional(),
303
+ mockedCredentialsByNode: zod_1.z.record(zod_1.z.array(zod_1.z.string())).optional(),
304
+ resolvedCredentialsByNode: zod_1.z.record(zod_1.z.array(resolved_credential_schema_1.resolvedCredentialSchema)).optional(),
305
+ credentialResolutionNote: zod_1.z.string().optional(),
306
+ referencedWorkflowIds: zod_1.z.array(zod_1.z.string()).optional(),
307
+ hasUnresolvedPlaceholders: zod_1.z.boolean().optional(),
308
+ denied: zod_1.z.boolean().optional(),
309
+ reason: zod_1.z.string().optional(),
310
+ remediation: workflow_loop_state_1.remediationMetadataSchema.optional(),
311
+ errors: zod_1.z.array(zod_1.z.string()).optional(),
312
+ warnings: zod_1.z.array(zod_1.z.string()).optional(),
313
+ });
314
+ function pickBuildWorkflowOutputSchema(context) {
315
+ return context.folderExplorationEnabled === true
316
+ ? buildWorkflowOutputSchema.extend({
317
+ folder: zod_1.z.object({ id: zod_1.z.string(), name: zod_1.z.string(), path: zod_1.z.string() }).optional(),
318
+ })
319
+ : buildWorkflowOutputSchema;
320
+ }
258
321
  function createBuildWorkflowTool(context) {
259
322
  const failureTracker = new build_failure_tracker_1.BuildFailureTracker();
260
323
  return new agents_1.Tool('build-workflow')
@@ -264,33 +327,8 @@ function createBuildWorkflowTool(context) {
264
327
  'Use TypeScript SDK .workflow.ts source for new and existing workflows. ' +
265
328
  'Prefer writing the file with `workspace_write_file` / `workspace_str_replace_file` so `workflow-sdk validate` can run on it, then call this tool with filePath. ' +
266
329
  'For a one-shot create/rewrite you may pass `sourceCode` instead (the tool writes filePath and builds).')
267
- .input(exports.buildWorkflowInputSchema)
268
- .output(zod_1.z.object({
269
- success: zod_1.z.boolean(),
270
- filePath: zod_1.z.string(),
271
- sourceHash: zod_1.z.string().optional(),
272
- workflowId: zod_1.z.string().optional(),
273
- workflowName: zod_1.z.string().optional(),
274
- workItemId: zod_1.z.string().optional(),
275
- triggerNodes: zod_1.z.array(triggerNodeOutputSchema).optional(),
276
- verificationReadiness: verificationReadinessOutputSchema.optional(),
277
- executionIntent: zod_1.z.enum(['one-off', 'reusable']).optional(),
278
- setupRequirement: setupRequirementOutputSchema.optional(),
279
- postBuildFlow: postBuildFlowOutputSchema.optional(),
280
- isSupportingWorkflow: zod_1.z.boolean().optional(),
281
- mockedNodeNames: zod_1.z.array(zod_1.z.string()).optional(),
282
- mockedCredentialTypes: zod_1.z.array(zod_1.z.string()).optional(),
283
- mockedCredentialsByNode: zod_1.z.record(zod_1.z.array(zod_1.z.string())).optional(),
284
- resolvedCredentialsByNode: zod_1.z.record(zod_1.z.array(resolved_credential_schema_1.resolvedCredentialSchema)).optional(),
285
- credentialResolutionNote: zod_1.z.string().optional(),
286
- referencedWorkflowIds: zod_1.z.array(zod_1.z.string()).optional(),
287
- hasUnresolvedPlaceholders: zod_1.z.boolean().optional(),
288
- denied: zod_1.z.boolean().optional(),
289
- reason: zod_1.z.string().optional(),
290
- remediation: workflow_loop_state_1.remediationMetadataSchema.optional(),
291
- errors: zod_1.z.array(zod_1.z.string()).optional(),
292
- warnings: zod_1.z.array(zod_1.z.string()).optional(),
293
- }))
330
+ .input(pickBuildWorkflowInputSchema(context))
331
+ .output(pickBuildWorkflowOutputSchema(context))
294
332
  .suspend(confirmationSuspendSchema)
295
333
  .resume(confirmationResumeSchema)
296
334
  .handler(async (input, ctx) => {
@@ -364,6 +402,33 @@ function createBuildWorkflowTool(context) {
364
402
  }
365
403
  }
366
404
  const targetWorkflowId = binding.workflowId;
405
+ const folderPath = 'folderPath' in input && typeof input.folderPath === 'string'
406
+ ? input.folderPath
407
+ : undefined;
408
+ if (folderPath !== undefined && targetWorkflowId) {
409
+ const remediation = (0, remediation_1.createRemediation)({
410
+ category: 'blocked',
411
+ shouldEdit: false,
412
+ reason: 'folder_placement_on_update',
413
+ guidance: '`folderPath` only applies when creating a new workflow. Nothing was saved. Re-run without `folderPath` to update the workflow, and move it with `workspace(action="move-workflow-to-folder")` if the user asked for that.',
414
+ });
415
+ (0, workflow_build_telemetry_1.trackWorkflowSourceBuild)(context, {
416
+ result: 'blocked',
417
+ stage: 'folder',
418
+ binding,
419
+ targetWorkflowId,
420
+ isSupportingWorkflow: input.isSupportingWorkflow,
421
+ remediation,
422
+ errorCount: 1,
423
+ });
424
+ return {
425
+ success: false,
426
+ ...(0, workflow_build_context_1.sourceResponseBase)(binding),
427
+ workflowId: targetWorkflowId,
428
+ errors: [remediation.guidance],
429
+ remediation,
430
+ };
431
+ }
367
432
  const permKey = targetWorkflowId ? 'updateWorkflow' : 'createWorkflow';
368
433
  if (context.permissions?.[permKey] === 'blocked') {
369
434
  const remediation = (0, remediation_1.createRemediation)({
@@ -798,11 +863,27 @@ function createBuildWorkflowTool(context) {
798
863
  (nodeName !== undefined && changedNodeNames.includes(nodeName));
799
864
  const hasPlaceholders = (json.nodes ?? []).some((n) => isInSetupScope(n.name) && (0, placeholder_1.hasPlaceholderDeep)(n.parameters));
800
865
  const createSuccessResponse = async (saved, operation) => {
801
- const setupRequests = await (0, setup_workflow_service_1.analyzeWorkflow)(context, saved.id, undefined, {
866
+ const setupItemsEmitter = (0, setup_items_1.isSetupPanelEnabled)(context)
867
+ ? context.setupItemsEmitter
868
+ : undefined;
869
+ const analyzedRequests = await (0, setup_workflow_service_1.analyzeWorkflow)(context, saved.id, undefined, {
802
870
  ...(input.preferNewCredentials
803
871
  ? { preferNewCredentialTypes: input.preferNewCredentials }
804
872
  : {}),
873
+ ...(setupItemsEmitter ? { includeSettled: true } : {}),
805
874
  });
875
+ const setupRequests = analyzedRequests.filter((request) => !!request.needsAction);
876
+ if (setupItemsEmitter) {
877
+ try {
878
+ setupItemsEmitter.emit(saved.id, (0, setup_items_1.buildSetupItemsFromSetupRequests)(saved.id, analyzedRequests));
879
+ }
880
+ catch (error) {
881
+ context.logger.warn('Failed to emit setup-items snapshot for built workflow', {
882
+ workflowId: saved.id,
883
+ error: error instanceof Error ? error.message : String(error),
884
+ });
885
+ }
886
+ }
806
887
  const { pending: pendingSetupRequests, skippedByUser: skippedSetupRequests } = (0, setup_skip_state_1.partitionSkippedSetupRequests)(setupRequests, saved.id, (0, setup_skip_state_1.getSkippedSetupSubjects)(context));
807
888
  const needsSetupInScope = (request) => request.needsAction === true && isInSetupScope(request.node.name);
808
889
  const workflowNeedsSetup = pendingSetupRequests.some(needsSetupInScope);
@@ -907,6 +988,7 @@ function createBuildWorkflowTool(context) {
907
988
  workflowId: saved.id,
908
989
  workflowName: json.name || undefined,
909
990
  workItemId: resolvedWorkItemId,
991
+ ...(saved.folder ? { folder: saved.folder } : {}),
910
992
  isSupportingWorkflow: isSupportingWorkflow || undefined,
911
993
  triggerNodes,
912
994
  verificationReadiness: outcome.verificationReadiness,
@@ -942,12 +1024,41 @@ function createBuildWorkflowTool(context) {
942
1024
  }
943
1025
  const created = await context.workflowService.createFromWorkflowJSON(json, {
944
1026
  markAsAiTemporary: true,
1027
+ ...(folderPath !== undefined ? { folderPath } : {}),
945
1028
  });
946
1029
  await (0, workflow_build_context_1.recordSessionOwnedWorkflow)(context, created.id);
947
1030
  return await createSuccessResponse(created, 'create');
948
1031
  }
949
1032
  catch (error) {
950
1033
  const message = error instanceof Error ? error.message : 'Unknown error';
1034
+ if (error instanceof folder_resolution_error_1.FolderResolutionError) {
1035
+ const failureText = formatFolderPlacementFailure(error.folderResolution);
1036
+ const remediation = (0, remediation_1.createRemediation)({
1037
+ category: 'blocked',
1038
+ shouldEdit: false,
1039
+ reason: `folder_${error.folderResolution.reason.replace(/-/g, '_')}`,
1040
+ guidance: failureText,
1041
+ });
1042
+ (0, workflow_build_telemetry_1.trackWorkflowSourceBuild)(context, {
1043
+ result: 'failure',
1044
+ stage: 'folder',
1045
+ binding,
1046
+ targetWorkflowId,
1047
+ saveOperation: 'create',
1048
+ isSupportingWorkflow,
1049
+ isAuxiliarySupportingWorkflow,
1050
+ remediation,
1051
+ errorCount: 1,
1052
+ });
1053
+ return {
1054
+ success: false,
1055
+ ...(0, workflow_build_context_1.sourceResponseBase)(binding),
1056
+ workflowName: json.name || undefined,
1057
+ workItemId: resolvedWorkItemId,
1058
+ errors: [failureText],
1059
+ remediation,
1060
+ };
1061
+ }
951
1062
  if (error instanceof workflow_save_conflict_error_1.WorkflowSaveConflictError) {
952
1063
  const remediation = (0, workflow_build_remediation_1.createWorkflowModifiedExternallyRemediation)();
953
1064
  binding = await (0, workflow_build_context_1.markSourceBuildFailed)(context, binding, sourceHash);