@n8n/instance-ai 1.26.1 → 1.26.3

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 (31) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/runtime/run-state-registry.d.ts +3 -0
  3. package/dist/runtime/run-state-registry.js +9 -0
  4. package/dist/runtime/run-state-registry.js.map +1 -1
  5. package/dist/stream/map-chunk.js +1 -8
  6. package/dist/stream/map-chunk.js.map +1 -1
  7. package/dist/tools/executions.tool.js +9 -1
  8. package/dist/tools/executions.tool.js.map +1 -1
  9. package/dist/tools/index.js +7 -0
  10. package/dist/tools/index.js.map +1 -1
  11. package/dist/tools/orchestration/verification/publish-state.d.ts +9 -0
  12. package/dist/tools/orchestration/verification/publish-state.js +20 -0
  13. package/dist/tools/orchestration/verification/publish-state.js.map +1 -0
  14. package/dist/tools/orchestration/verification/record-live-run.d.ts +9 -0
  15. package/dist/tools/orchestration/verification/record-live-run.js +57 -0
  16. package/dist/tools/orchestration/verification/record-live-run.js.map +1 -0
  17. package/dist/tools/orchestration/verify-built-workflow.tool.js +2 -17
  18. package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
  19. package/dist/tools/shared/ask-user.tool.d.ts +10 -0
  20. package/dist/tools/shared/ask-user.tool.js +8 -0
  21. package/dist/tools/shared/ask-user.tool.js.map +1 -1
  22. package/dist/tools/shared/leave-onboarding.tool.d.ts +1 -0
  23. package/dist/tools/shared/leave-onboarding.tool.js +29 -0
  24. package/dist/tools/shared/leave-onboarding.tool.js.map +1 -0
  25. package/dist/tools/tool-ids.d.ts +1 -0
  26. package/dist/tools/tool-ids.js +2 -0
  27. package/dist/tools/tool-ids.js.map +1 -1
  28. package/dist/types.d.ts +1 -0
  29. package/dist/types.js.map +1 -1
  30. package/package.json +7 -7
  31. package/skills/suggest-automations/SKILL.md +127 -0
@@ -8,16 +8,22 @@ export declare const askUserInputSchema: z.ZodObject<{
8
8
  question: z.ZodString;
9
9
  type: z.ZodEnum<["single", "multi", "text"]>;
10
10
  options: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11
+ required: z.ZodOptional<z.ZodBoolean>;
12
+ freeTextLabel: z.ZodOptional<z.ZodString>;
11
13
  }, "strip", z.ZodTypeAny, {
12
14
  id: string;
13
15
  question: string;
14
16
  type: "multi" | "single" | "text";
15
17
  options?: string[] | undefined;
18
+ required?: boolean | undefined;
19
+ freeTextLabel?: string | undefined;
16
20
  }, {
17
21
  id: string;
18
22
  question: string;
19
23
  type: "multi" | "single" | "text";
20
24
  options?: string[] | undefined;
25
+ required?: boolean | undefined;
26
+ freeTextLabel?: string | undefined;
21
27
  }>, "many">;
22
28
  introMessage: z.ZodOptional<z.ZodString>;
23
29
  }, "strip", z.ZodTypeAny, {
@@ -26,6 +32,8 @@ export declare const askUserInputSchema: z.ZodObject<{
26
32
  question: string;
27
33
  type: "multi" | "single" | "text";
28
34
  options?: string[] | undefined;
35
+ required?: boolean | undefined;
36
+ freeTextLabel?: string | undefined;
29
37
  }[];
30
38
  introMessage?: string | undefined;
31
39
  }, {
@@ -34,6 +42,8 @@ export declare const askUserInputSchema: z.ZodObject<{
34
42
  question: string;
35
43
  type: "multi" | "single" | "text";
36
44
  options?: string[] | undefined;
45
+ required?: boolean | undefined;
46
+ freeTextLabel?: string | undefined;
37
47
  }[];
38
48
  introMessage?: string | undefined;
39
49
  }>;
@@ -18,6 +18,14 @@ const questionSchema = zod_1.z.object({
18
18
  .array(zod_1.z.string())
19
19
  .optional()
20
20
  .describe('Suggested answers (required for single/multi, ignored for text)'),
21
+ required: zod_1.z
22
+ .boolean()
23
+ .optional()
24
+ .describe('true hides Skip: the user must answer before they can submit'),
25
+ freeTextLabel: zod_1.z
26
+ .string()
27
+ .optional()
28
+ .describe('Label of the built-in free-text row, "Something else" by default'),
21
29
  });
22
30
  const answerSchema = zod_1.z.object({
23
31
  questionId: zod_1.z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"ask-user.tool.js","sourceRoot":"","sources":["../../../src/tools/shared/ask-user.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ask-user.tool.js","sourceRoot":"","sources":["../../../src/tools/shared/ask-user.tool.ts"],"names":[],"mappings":";;;;AAAA,wCAAmC;AACnC,mCAAgC;AAChC,6BAAwB;AAGxB,gFAA4E;AAC5E,0CAA+C;iGAAtC,2BAAgB;AAIzB,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACrD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACzE,IAAI,EAAE,OAAC;SACL,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SACjC,QAAQ,CAAC,qEAAqE,CAAC;IACjF,OAAO,EAAE,OAAC;SACR,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,iEAAiE,CAAC;IAC7E,QAAQ,EAAE,OAAC;SACT,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;IAC1E,aAAa,EAAE,OAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kEAAkE,CAAC;CAC9E,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;IACpC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,OAAC;SACV,KAAK,CAAC,cAAc,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,wDAAwD,CAAC;IACpE,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;CAC/F,CAAC,CAAC;AAEU,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE;IACrB,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,SAAS,UAAU,CAClB,QAAgB,EAChB,MAA8E;IAE9E,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO;YACN,QAAQ;YACR,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI;SACb,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC;SACzD,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,IAAI;QACV,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;QAC5C,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACrD,CAAC;AAED,2BAAkC,OAA2B;IAC5D,OAAO,IAAI,aAAI,CAAC,2BAAgB,CAAC;SAC/B,WAAW,CACX,kFAAkF;QACjF,2DAA2D;QAC3D,qGAAqG;QACrG,qGAAqG;QACrG,0EAA0E;QAC1E,kGAAkG;QAClG,qGAAqG;QACrG,yGAAyG;QACzG,oHAAoH;QACpH,4GAA4G;QAC5G,2GAA2G;QAC3G,gEAAgE;QAChE,+DAA+D;QAC/D,6GAA6G,CAC9G;SACA,KAAK,CAAC,QAAA,kBAAkB,CAAC;SACzB,MAAM,CACN,OAAC,CAAC,MAAM,CAAC;QACR,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE;QACrB,OAAO,EAAE,OAAC;aACR,KAAK,CACL,OAAC,CAAC,MAAM,CAAC;YACR,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;YACtB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;YACpB,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;YACpC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC,CACF;aACA,QAAQ,EAAE;KACZ,CAAC,CACF;SACA,OAAO,CACP,OAAC,CAAC,MAAM,CAAC;QACR,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;QACrB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;QACnB,QAAQ,EAAE,OAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC3B,SAAS,EAAE,OAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QACjC,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,cAAc,CAAC;QAClC,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACnC,CAAC,CACF;SACA,MAAM,CAAC,QAAA,mBAAmB,CAAC;SAC3B,OAAO,CAAC,KAAK,EAAE,KAAyC,EAAE,GAAG,EAAE,EAAE;QACjE,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;QAGlC,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACrD,OAAO,MAAM,GAAG,CAAC,OAAO,CAAC;gBACxB,SAAS,EAAE,IAAA,eAAM,GAAE;gBACnB,OAAO,EAAE,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ;gBAC1D,QAAQ,EAAE,MAAe;gBACzB,SAAS,EAAE,WAAoB;gBAC/B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;aAChC,CAAC,CAAC;QACJ,CAAC;QAGD,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACjD,IAAI,OAAO,EAAE,CAAC;gBACb,MAAM,IAAA,0CAAmB,EACxB,OAAO,EACP,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAClD,CAAC;YACH,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;QAGD,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAA+B,EAAE,EAAE;YAClF,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAC7B,CAAC,EAAkC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,UAAU,CAC9D,CAAC;YACF,OAAO;gBACN,GAAG,CAAC;gBACJ,QAAQ,EAAE,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,UAAU;aACrC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,IAAA,0CAAmB,EACxB,OAAO,EACP,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CACrD,CAAC;QACH,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACrD,CAAC,CAAC;SACD,KAAK,EAAE,CAAC;AACX,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function createLeaveOnboardingTool(): import("@n8n/agents").BuiltTool;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLeaveOnboardingTool = createLeaveOnboardingTool;
4
+ const agents_1 = require("@n8n/agents");
5
+ const zod_1 = require("zod");
6
+ const tool_ids_1 = require("../tool-ids");
7
+ function createLeaveOnboardingTool() {
8
+ return (new agents_1.Tool(tool_ids_1.DOMAIN_TOOL_IDS.LEAVE_ONBOARDING)
9
+ .description('End the onboarding flow. Call it when the user wants to stop the onboarding, explore n8n ' +
10
+ 'on their own, or asks for something unrelated to picking a first automation. After the call, ' +
11
+ 'reply with one sentence that invites the user to explore the app and to come back with a ' +
12
+ 'task, then help them with what they asked. Not needed before a build: a build ends the ' +
13
+ 'onboarding by itself.')
14
+ .input(zod_1.z.object({
15
+ reason: zod_1.z
16
+ .enum(['stop', 'explore', 'unrelated_request'])
17
+ .optional()
18
+ .describe('Why the onboarding ends: the user wants to stop, wants to explore n8n on their ' +
19
+ 'own, or asked for something unrelated to picking a first automation.'),
20
+ }))
21
+ .output(zod_1.z.object({ left: zod_1.z.boolean(), note: zod_1.z.string() }))
22
+ .handler(async () => ({
23
+ left: true,
24
+ note: 'The onboarding rules no longer apply. Continue as on a normal thread. Ask for files ' +
25
+ 'in plain text: a card cannot take attachments.',
26
+ }))
27
+ .build());
28
+ }
29
+ //# sourceMappingURL=leave-onboarding.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leave-onboarding.tool.js","sourceRoot":"","sources":["../../../src/tools/shared/leave-onboarding.tool.ts"],"names":[],"mappings":";;;AAAA,wCAAmC;AACnC,6BAAwB;AAExB,0CAA8C;AAQ9C;IACC,OAAO,CACN,IAAI,aAAI,CAAC,0BAAe,CAAC,gBAAgB,CAAC;SACxC,WAAW,CACX,2FAA2F;QAC1F,+FAA+F;QAC/F,2FAA2F;QAC3F,yFAAyF;QACzF,uBAAuB,CACxB;SACA,KAAK,CACL,OAAC,CAAC,MAAM,CAAC;QAER,MAAM,EAAE,OAAC;aACP,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;aAC9C,QAAQ,EAAE;aACV,QAAQ,CACR,iFAAiF;YAChF,sEAAsE,CACvE;KACF,CAAC,CACF;SACA,MAAM,CAAC,OAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SAGzD,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACrB,IAAI,EAAE,IAAI;QACV,IAAI,EACH,sFAAsF;YACtF,gDAAgD;KACjD,CAAC,CAAC;SACF,KAAK,EAAE,CACT,CAAC;AACH,CAAC"}
@@ -10,6 +10,7 @@ export declare const DOMAIN_TOOL_IDS: {
10
10
  readonly NODES: 'nodes';
11
11
  readonly SEARCH_MODELS: 'searchModels';
12
12
  readonly ASK_USER: 'ask-user';
13
+ readonly LEAVE_ONBOARDING: 'leave-onboarding';
13
14
  readonly BUILD_WORKFLOW: 'build-workflow';
14
15
  readonly PARSE_FILE: 'parse-file';
15
16
  readonly AGENTS: 'agents';
@@ -14,6 +14,7 @@ exports.DOMAIN_TOOL_IDS = {
14
14
  NODES: 'nodes',
15
15
  SEARCH_MODELS: 'searchModels',
16
16
  ASK_USER: 'ask-user',
17
+ LEAVE_ONBOARDING: 'leave-onboarding',
17
18
  BUILD_WORKFLOW: 'build-workflow',
18
19
  PARSE_FILE: 'parse-file',
19
20
  AGENTS: 'agents',
@@ -45,6 +46,7 @@ exports.N8N_DOCS_TOOL_ID = exports.DOMAIN_TOOL_IDS.N8N_DOCS;
45
46
  exports.ORCHESTRATION_TOOL_NAMES = new Set(Object.values(exports.ORCHESTRATION_TOOL_IDS));
46
47
  exports.ALWAYS_LOADED_TOOL_NAMES = new Set([
47
48
  exports.DOMAIN_TOOL_IDS.ASK_USER,
49
+ exports.DOMAIN_TOOL_IDS.LEAVE_ONBOARDING,
48
50
  exports.DOMAIN_TOOL_IDS.CREDENTIALS,
49
51
  exports.DOMAIN_TOOL_IDS.WORKFLOWS,
50
52
  exports.DOMAIN_TOOL_IDS.EXECUTIONS,
@@ -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,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,aAAa,EAAE,cAAc;IAC7B,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,gBAAgB;IAChC,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,oBAAoB,EAAE,sBAAsB;IAC5C,QAAQ,EAAE,UAAU;CACX,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,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;IAIpC,QAAA,eAAe,CAAC,QAAQ;IACxB,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"}
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,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,aAAa,EAAE,cAAc;IAC7B,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,oBAAoB,EAAE,sBAAsB;IAC5C,QAAQ,EAAE,UAAU;CACX,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,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;IAGxB,QAAA,eAAe,CAAC,gBAAgB;IAChC,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;IAIpC,QAAA,eAAe,CAAC,QAAQ;IACxB,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"}
package/dist/types.d.ts CHANGED
@@ -868,6 +868,7 @@ export interface InstanceAiContext {
868
868
  runtimeSkillCatalog?: RuntimeSkillSource;
869
869
  projectId?: string;
870
870
  folderExplorationEnabled?: boolean;
871
+ onboardingThread?: boolean;
871
872
  modelId?: ModelConfig;
872
873
  workflowService: InstanceAiWorkflowService;
873
874
  executionService: InstanceAiExecutionService;
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAg6Ca,QAAA,qCAAqC,GAAG,EAAE,CAAC;AAC3C,QAAA,oCAAoC,GAAG,CAAC,CAAC;AAuQzC,QAAA,kBAAkB,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAU,CAAC;AAE/D,QAAA,yBAAyB,GAAG,CAAC,UAAU,CAAU,CAAC;AAClD,QAAA,yBAAyB,GAAG;IACxC,GAAG,QAAA,kBAAkB;IACrB,GAAG,QAAA,yBAAyB;CACnB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAg6Ca,QAAA,qCAAqC,GAAG,EAAE,CAAC;AAC3C,QAAA,oCAAoC,GAAG,CAAC,CAAC;AAyQzC,QAAA,kBAAkB,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAU,CAAC;AAE/D,QAAA,yBAAyB,GAAG,CAAC,UAAU,CAAU,CAAC;AAClD,QAAA,yBAAyB,GAAG;IACxC,GAAG,QAAA,kBAAkB;IACrB,GAAG,QAAA,yBAAyB;CACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/instance-ai",
3
- "version": "1.26.1",
3
+ "version": "1.26.3",
4
4
  "main": "dist/index.js",
5
5
  "module": "src/index.ts",
6
6
  "types": "dist/index.d.ts",
@@ -43,12 +43,12 @@
43
43
  "dependencies": {
44
44
  "@daytona/sdk": "0.205.1",
45
45
  "@e965/xlsx": "0.20.3",
46
- "@n8n/agents": "0.26.1",
47
- "@n8n/ai-utilities": "0.34.1",
48
- "@n8n/api-types": "1.41.0",
46
+ "@n8n/agents": "0.26.3",
47
+ "@n8n/ai-utilities": "0.34.3",
48
+ "@n8n/api-types": "1.41.2",
49
49
  "@n8n/mcp-browser": "0.22.0",
50
- "@n8n/utils": "1.48.0",
51
- "@n8n/workflow-sdk": "0.34.0",
50
+ "@n8n/utils": "1.48.1",
51
+ "@n8n/workflow-sdk": "0.34.1",
52
52
  "@opentelemetry/api": "1.9.1",
53
53
  "@thednp/dommatrix": "^3.1.1",
54
54
  "ai": "^7.0.66",
@@ -57,7 +57,7 @@
57
57
  "linkedom": "^0.18.13",
58
58
  "luxon": "3.7.2",
59
59
  "mammoth": "1.12.1",
60
- "n8n-workflow": "2.41.0",
60
+ "n8n-workflow": "2.41.1",
61
61
  "nanoid": "6.0.1",
62
62
  "pdf-parse": "2.4.5",
63
63
  "psl": "1.15.0",
@@ -0,0 +1,127 @@
1
+ ---
2
+ name: suggest-automations
3
+ description: >-
4
+ Offer the three most common automations for a user as a single-choice card,
5
+ from your own knowledge of their team and their apps, then build the one
6
+ they choose or offer more. The system preloads it on onboarding threads,
7
+ where the opening card already asked the user about themselves.
8
+ Use it on other threads when the user asks what they could automate or
9
+ wants ideas for a first workflow.
10
+ recommended_tools:
11
+ - ask-user
12
+ - build-workflow
13
+ ---
14
+
15
+ # Suggest automations
16
+
17
+ ## Input
18
+
19
+ You need to know who the user is, at least their team and the apps they use.
20
+ The user knows little about n8n: no n8n vocabulary, and no questions about
21
+ tasks or pain points.
22
+
23
+ On an onboarding thread the conversation already holds an `<onboarding-answer>`
24
+ block with the user's team and apps, one line per question. Use every line of
25
+ the block. The answers are final: use them as they come and do not ask these
26
+ questions again. Two openings:
27
+
28
+ - The block is followed by your message "Got it. Finally, tell me a little
29
+ about how you use <their apps>." and the user's reply. The reply describes how they
30
+ work, names a task in their own words, or names none. Start at step 1.
31
+ - The block is the latest message and one answer is free text the user typed
32
+ into the card. Read that text first. A tool name is one of their apps: ask
33
+ "Got it. Finally, tell me a little about how you use <their apps>." and end
34
+ the turn. A task: start at step 1 with it. Anything else, for example a wish to
35
+ stop, a request about something else, a refusal or an insult: call
36
+ `leave-onboarding`, then write a one-sentence reply that invites the user to
37
+ explore the app and to come back with a task.
38
+
39
+ On any other thread, ask in ONE `ask-user` call: a `single` question "What
40
+ team are you on?" with the options Executive/Owner, Support, Product & Design,
41
+ Sales, IT, Engineering and Marketing, and a `multi` question "Which apps do you
42
+ use?" with the ten apps people use most at work, as product names such as
43
+ Slack or Google Sheets. Never run a command or read a file to find them.
44
+
45
+ ## Flow
46
+
47
+ 1. Pick three automations that each solve a different problem, ordered from
48
+ the most to the least relevant. Each one runs on the user's apps and is
49
+ realistic for n8n. When the user named a task, even a specific and
50
+ complete one, suggestion one is that task in their words and the other two
51
+ are what people on their team set up next to it. Otherwise pick the three
52
+ that people on the team most often set up with the user's apps. The card
53
+ always comes before a build: a specific task gets confirmed with one click,
54
+ never built unasked. Decide in one step: do not run a command, read a file
55
+ or write the reasoning out.
56
+ 2. Write short text and no list: the card carries the options. First
57
+ reflect what the user shared, in their words, with no assumptions added:
58
+ - A goal or a problem: "Thanks, that helps. You want to ..."
59
+ - A clear workflow: "Thanks, that helps. You use <app> and <app> to ..."
60
+ - A general situation or activities: "Thanks, that helps. Your work
61
+ involves ..."
62
+ Say "You want" only when the user named an outcome they want. Then the
63
+ social proof that matches:
64
+ - A goal or a problem: "I've looked at how other users have solved
65
+ similar problems."
66
+ - A clear workflow: "I've looked at how other users approach similar
67
+ workflows."
68
+ - A general situation: "I've looked at how other users make their work
69
+ easier."
70
+ Then, after a blank line, "Here are three ways n8n could help:". With
71
+ nothing to reflect, drop the first part and use the general social proof.
72
+ Then ONE `ask-user` call with `questions` only: a `single`
73
+ question "Which one feels most useful?", `required: true`, with
74
+ four options: the three suggestions, most relevant first, and last
75
+ `Show me other ideas`. `Show me other ideas` is an action that asks for
76
+ three more suggestions, not a catch-all: always keep it as the fourth
77
+ option. Leave `introMessage` out. Set `freeTextLabel` to `Share more
78
+ context`: the card shows it as its built-in free-text row with a pencil
79
+ icon. Never add "Something else", "Share more context" or "None of these"
80
+ as an option.
81
+
82
+ A suggestion is one option string of two lines: the title, a newline,
83
+ then the description. The card shows the second line under the first.
84
+ - Title: a short action phrase of at most 6 words that names the result,
85
+ not the setup, for example "Capture new leads" or "Speed up customer
86
+ follow-ups". Not a sentence, and no punctuation at the end.
87
+ - Description: one plain sentence of at most 18 words about what the user
88
+ gets. State no trigger, schedule, recipient or other process detail the
89
+ user did not give. No Markdown, no n8n node names.
90
+ - Apps: name only apps the user selected or named, at most two in one
91
+ suggestion, and only where the name makes the suggestion clearer. With
92
+ no app or one app from the user, describe the result without app names.
93
+ Example option: "Capture new leads\nMove new enquiries into your sales
94
+ process so nothing gets missed."
95
+ 3. Read the answer.
96
+ - A suggestion: its first line, the title, names the automation to build.
97
+ - `Show me other ideas`: repeat step 2 with three automations not shown in
98
+ this thread yet, after one sentence such as "Here are three more."
99
+ - Free text that describes a task: that is the user's request; build it.
100
+ - Free text that asks for a change, for example another app or a topic:
101
+ repeat step 2 with three automations that fit it.
102
+ - Free text that names no task and no change, for example "skip", "no" or
103
+ "later", or `answered: false`: do not build. On an onboarding thread call
104
+ `leave-onboarding`, then write a one-sentence reply, for example "No
105
+ problem. Explore the app and tell me when you want to automate something."
106
+ 4. Write exactly one line before the first tool call, `Building <title> now.`,
107
+ and no other text until the `build-workflow` result. Load `workflow-builder`
108
+ and build the automation with the user's apps the normal way, then follow
109
+ `postBuildFlow.instructions` from the result. Ask about an app only for a
110
+ step the user's list does not cover, one question per turn.
111
+
112
+ ## Rules
113
+
114
+ - One `ask-user` call per turn. Keep every message to four sentences or fewer.
115
+ - A build needs a picked suggestion or a task in the user's words. Never
116
+ start one after a skip, a dismissal, or free text that names nothing.
117
+ - No apps given: suggest what people on the team most often automate, and
118
+ name no app.
119
+ - Talk about the automation, never about the mechanics. Do not say
120
+ "validate", "workspace" or a file name in a message. Say what is being
121
+ built and what the user gets, for example "Building the reminder now."
122
+ - If the user wants to stop the onboarding or asks for something unrelated,
123
+ drop this flow. On an onboarding thread, whenever you stop asking the card
124
+ questions, call `leave-onboarding` first and then reply. A reply that skips
125
+ the questions without that call leaves the user stuck in the flow.
126
+ - Never ask for credentials, keys, or passwords in chat.
127
+ - Reply in the language the user writes in.