@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.
- package/dist/build.tsbuildinfo +1 -1
- package/dist/runtime/run-state-registry.d.ts +3 -0
- package/dist/runtime/run-state-registry.js +9 -0
- package/dist/runtime/run-state-registry.js.map +1 -1
- package/dist/stream/map-chunk.js +1 -8
- package/dist/stream/map-chunk.js.map +1 -1
- package/dist/tools/executions.tool.js +9 -1
- package/dist/tools/executions.tool.js.map +1 -1
- package/dist/tools/index.js +7 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/orchestration/verification/publish-state.d.ts +9 -0
- package/dist/tools/orchestration/verification/publish-state.js +20 -0
- package/dist/tools/orchestration/verification/publish-state.js.map +1 -0
- package/dist/tools/orchestration/verification/record-live-run.d.ts +9 -0
- package/dist/tools/orchestration/verification/record-live-run.js +57 -0
- package/dist/tools/orchestration/verification/record-live-run.js.map +1 -0
- package/dist/tools/orchestration/verify-built-workflow.tool.js +2 -17
- package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
- package/dist/tools/shared/ask-user.tool.d.ts +10 -0
- package/dist/tools/shared/ask-user.tool.js +8 -0
- package/dist/tools/shared/ask-user.tool.js.map +1 -1
- package/dist/tools/shared/leave-onboarding.tool.d.ts +1 -0
- package/dist/tools/shared/leave-onboarding.tool.js +29 -0
- package/dist/tools/shared/leave-onboarding.tool.js.map +1 -0
- package/dist/tools/tool-ids.d.ts +1 -0
- package/dist/tools/tool-ids.js +2 -0
- package/dist/tools/tool-ids.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +7 -7
- 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":";;;;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;
|
|
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"}
|
package/dist/tools/tool-ids.d.ts
CHANGED
|
@@ -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';
|
package/dist/tools/tool-ids.js
CHANGED
|
@@ -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;
|
|
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;
|
|
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.
|
|
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.
|
|
47
|
-
"@n8n/ai-utilities": "0.34.
|
|
48
|
-
"@n8n/api-types": "1.41.
|
|
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.
|
|
51
|
-
"@n8n/workflow-sdk": "0.34.
|
|
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.
|
|
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.
|