@n8n/instance-ai 1.20.1 → 1.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/aia-model-defaults.d.ts +3 -0
- package/dist/agent/aia-model-defaults.js +24 -0
- package/dist/agent/aia-model-defaults.js.map +1 -0
- package/dist/agent/apply-agent-thinking.js +35 -30
- package/dist/agent/apply-agent-thinking.js.map +1 -1
- package/dist/agent/instance-agent.js +36 -4
- package/dist/agent/instance-agent.js.map +1 -1
- package/dist/agent/model-config-identity.d.ts +3 -0
- package/dist/agent/model-config-identity.js +45 -0
- package/dist/agent/model-config-identity.js.map +1 -0
- package/dist/agent/sub-agent-debriefing.d.ts +5 -0
- package/dist/agent/system-prompt.d.ts +0 -1
- package/dist/agent/system-prompt.js +3 -14
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/errors/workflow-editor-locked.error.d.ts +6 -0
- package/dist/errors/workflow-editor-locked.error.js +20 -0
- package/dist/errors/workflow-editor-locked.error.js.map +1 -0
- package/dist/errors/workflow-not-found.error.d.ts +6 -0
- package/dist/errors/workflow-not-found.error.js +19 -0
- package/dist/errors/workflow-not-found.error.js.map +1 -0
- package/dist/index.d.ts +12 -4
- package/dist/index.js +16 -5
- package/dist/index.js.map +1 -1
- package/dist/mcp/connected-mcp-services.d.ts +2 -0
- package/dist/mcp/connected-mcp-services.js +20 -0
- package/dist/mcp/connected-mcp-services.js.map +1 -0
- package/dist/parsers/index.d.ts +2 -2
- package/dist/parsers/index.js +6 -1
- package/dist/parsers/index.js.map +1 -1
- package/dist/parsers/validate-attachments.d.ts +21 -0
- package/dist/parsers/validate-attachments.js +52 -1
- package/dist/parsers/validate-attachments.js.map +1 -1
- package/dist/runtime/run-state-registry.d.ts +3 -0
- package/dist/runtime/run-state-registry.js.map +1 -1
- package/dist/runtime/terminal-response-guard.js +3 -1
- package/dist/runtime/terminal-response-guard.js.map +1 -1
- package/dist/storage/workflow-loop-storage.d.ts +29 -0
- package/dist/stream/map-chunk.js +2 -0
- package/dist/stream/map-chunk.js.map +1 -1
- package/dist/stream/work-summary-accumulator.d.ts +8 -0
- package/dist/stream/work-summary-accumulator.js +13 -0
- package/dist/stream/work-summary-accumulator.js.map +1 -1
- package/dist/tools/credentials.tool.js +21 -8
- package/dist/tools/credentials.tool.js.map +1 -1
- package/dist/tools/data-tables.tool.js +1 -4
- package/dist/tools/data-tables.tool.js.map +1 -1
- package/dist/tools/evals/eval-config.tool.js +1 -3
- package/dist/tools/evals/eval-config.tool.js.map +1 -1
- package/dist/tools/evals/evals.tool.js +2 -3
- package/dist/tools/evals/evals.tool.js.map +1 -1
- package/dist/tools/executions.tool.js +11 -4
- package/dist/tools/executions.tool.js.map +1 -1
- package/dist/tools/filesystem/create-tools-from-mcp-server.d.ts +11 -1
- package/dist/tools/filesystem/create-tools-from-mcp-server.js +48 -9
- package/dist/tools/filesystem/create-tools-from-mcp-server.js.map +1 -1
- package/dist/tools/mcp-servers.tool.js +164 -26
- package/dist/tools/mcp-servers.tool.js.map +1 -1
- package/dist/tools/nodes/preferred-chat-model.d.ts +10 -0
- package/dist/tools/nodes/preferred-chat-model.js +49 -0
- package/dist/tools/nodes/preferred-chat-model.js.map +1 -1
- package/dist/tools/nodes.tool.js +2 -4
- package/dist/tools/nodes.tool.js.map +1 -1
- package/dist/tools/orchestration/build-agent.tool.js +1 -1
- package/dist/tools/orchestration/build-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/complete-checkpoint.tool.js +41 -7
- package/dist/tools/orchestration/complete-checkpoint.tool.js.map +1 -1
- package/dist/tools/orchestration/plan.tool.d.ts +4 -0
- package/dist/tools/orchestration/plan.tool.js +1 -3
- package/dist/tools/orchestration/plan.tool.js.map +1 -1
- package/dist/tools/workflows/build-workflow.tool.d.ts +3 -0
- package/dist/tools/workflows/build-workflow.tool.js +141 -52
- package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/credential-utils.d.ts +2 -1
- package/dist/tools/workflows/credential-utils.js +1 -11
- package/dist/tools/workflows/credential-utils.js.map +1 -1
- package/dist/tools/workflows/observed-workflow-checksums.d.ts +4 -0
- package/dist/tools/workflows/observed-workflow-checksums.js +82 -0
- package/dist/tools/workflows/observed-workflow-checksums.js.map +1 -0
- package/dist/tools/workflows/resolve-credentials.js +29 -5
- package/dist/tools/workflows/resolve-credentials.js.map +1 -1
- package/dist/tools/workflows/setup-skip-state.d.ts +28 -0
- package/dist/tools/workflows/setup-skip-state.js +97 -0
- package/dist/tools/workflows/setup-skip-state.js.map +1 -0
- package/dist/tools/workflows/setup-workflow.schema.d.ts +8 -0
- package/dist/tools/workflows/setup-workflow.schema.js +1 -0
- package/dist/tools/workflows/setup-workflow.schema.js.map +1 -1
- package/dist/tools/workflows/setup-workflow.service.js +7 -7
- package/dist/tools/workflows/setup-workflow.service.js.map +1 -1
- package/dist/tools/workflows/summarize-workflow.js +1 -1
- package/dist/tools/workflows/summarize-workflow.js.map +1 -1
- package/dist/tools/workflows/workflow-build-context.d.ts +3 -0
- package/dist/tools/workflows/workflow-build-context.js +17 -0
- package/dist/tools/workflows/workflow-build-context.js.map +1 -1
- package/dist/tools/workflows/workflow-build-remediation.d.ts +2 -0
- package/dist/tools/workflows/workflow-build-remediation.js +29 -7
- package/dist/tools/workflows/workflow-build-remediation.js.map +1 -1
- package/dist/tools/workflows/workflow-build-routing.d.ts +1 -0
- package/dist/tools/workflows/workflow-build-routing.js +14 -3
- package/dist/tools/workflows/workflow-build-routing.js.map +1 -1
- package/dist/tools/workflows/workflow-file-bindings.js +2 -0
- package/dist/tools/workflows/workflow-file-bindings.js.map +1 -1
- package/dist/tools/workflows/workflow-json-utils.d.ts +3 -0
- package/dist/tools/workflows/workflow-json-utils.js +107 -0
- package/dist/tools/workflows/workflow-json-utils.js.map +1 -1
- package/dist/tools/workflows/workflow-node-diff.d.ts +4 -0
- package/dist/tools/workflows/workflow-node-diff.js +125 -0
- package/dist/tools/workflows/workflow-node-diff.js.map +1 -0
- package/dist/tools/workflows.tool.js +162 -16
- package/dist/tools/workflows.tool.js.map +1 -1
- package/dist/tools/workspace.tool.js +1 -3
- package/dist/tools/workspace.tool.js.map +1 -1
- package/dist/types.d.ts +27 -9
- package/dist/types.js.map +1 -1
- package/dist/utils/custom-model-defaults.d.ts +15 -0
- package/dist/utils/custom-model-defaults.js +81 -0
- package/dist/utils/custom-model-defaults.js.map +1 -0
- package/dist/utils/eval-agents.d.ts +1 -0
- package/dist/utils/eval-agents.js +34 -6
- package/dist/utils/eval-agents.js.map +1 -1
- package/dist/utils/modal-session.d.ts +11 -0
- package/dist/utils/modal-session.js +52 -0
- package/dist/utils/modal-session.js.map +1 -0
- package/dist/utils/parse-model-headers.d.ts +1 -0
- package/dist/utils/parse-model-headers.js +28 -0
- package/dist/utils/parse-model-headers.js.map +1 -0
- package/dist/workflow-loop/guidance.js +6 -0
- package/dist/workflow-loop/guidance.js.map +1 -1
- package/dist/workflow-loop/verification-obligation.js +9 -0
- package/dist/workflow-loop/verification-obligation.js.map +1 -1
- package/dist/workflow-loop/workflow-loop-controller.js +6 -0
- package/dist/workflow-loop/workflow-loop-controller.js.map +1 -1
- package/dist/workflow-loop/workflow-loop-state.d.ts +39 -0
- package/dist/workflow-loop/workflow-loop-state.js +9 -1
- package/dist/workflow-loop/workflow-loop-state.js.map +1 -1
- package/dist/workspace/lazy-runtime-workspace.d.ts +0 -1
- package/dist/workspace/lazy-runtime-workspace.js +2 -17
- package/dist/workspace/lazy-runtime-workspace.js.map +1 -1
- package/dist/workspace/pack-workspace-sdk.d.ts +1 -1
- package/dist/workspace/pack-workspace-sdk.js +16 -4
- package/dist/workspace/pack-workspace-sdk.js.map +1 -1
- package/dist/workspace/sandbox-setup.js +1 -1
- package/dist/workspace/sandbox-setup.js.map +1 -1
- package/knowledge-base/reference/workflow-builder-guardrails.md +20 -0
- package/package.json +19 -17
- package/skills/intent-recognition/SKILL.md +9 -1
- package/skills/one-off-operations/SKILL.md +108 -0
- package/skills/planned-task-runtime/SKILL.md +3 -2
- package/skills/post-build-flow/SKILL.md +98 -14
- package/skills/workflow-builder/SKILL.md +29 -2
- package/dist/tools/nodes/node-search-engine.d.ts +0 -21
- package/dist/tools/nodes/node-search-engine.js +0 -314
- package/dist/tools/nodes/node-search-engine.js.map +0 -1
- package/dist/tools/nodes/node-search-engine.types.d.ts +0 -50
- package/dist/tools/nodes/node-search-engine.types.js +0 -18
- package/dist/tools/nodes/node-search-engine.types.js.map +0 -1
- package/dist/workspace/scoped-workspace.d.ts +0 -2
- package/dist/workspace/scoped-workspace.js +0 -141
- package/dist/workspace/scoped-workspace.js.map +0 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveAIAPromptCaching = resolveAIAPromptCaching;
|
|
4
|
+
exports.resolveAIAReasoning = resolveAIAReasoning;
|
|
5
|
+
const api_types_1 = require("@n8n/api-types");
|
|
6
|
+
const model_config_identity_1 = require("./model-config-identity");
|
|
7
|
+
const custom_model_defaults_1 = require("../utils/custom-model-defaults");
|
|
8
|
+
const DEFAULT_AIA_REASONING = 'medium';
|
|
9
|
+
const AIA_ANTHROPIC_PROMPT_CACHING = { enabled: true, anthropic: { ttl: '5m' } };
|
|
10
|
+
function resolveAIAPromptCaching(model) {
|
|
11
|
+
const provider = (0, model_config_identity_1.resolveModelProvider)(model);
|
|
12
|
+
if (!provider)
|
|
13
|
+
return undefined;
|
|
14
|
+
return (0, api_types_1.resolvePromptCaching)(AIA_ANTHROPIC_PROMPT_CACHING, api_types_1.PROVIDER_CAPABILITIES[provider]?.promptCaching ?? false);
|
|
15
|
+
}
|
|
16
|
+
function resolveAIAReasoning(model) {
|
|
17
|
+
const modelId = (0, model_config_identity_1.resolveModelIdString)(model) ?? '';
|
|
18
|
+
const { reasoningEffort } = (0, custom_model_defaults_1.resolveCustomModelExperimentDefaults)(modelId);
|
|
19
|
+
if (reasoningEffort === 'low' || reasoningEffort === 'medium' || reasoningEffort === 'high') {
|
|
20
|
+
return reasoningEffort;
|
|
21
|
+
}
|
|
22
|
+
return DEFAULT_AIA_REASONING;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=aia-model-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aia-model-defaults.js","sourceRoot":"","sources":["../../src/agent/aia-model-defaults.ts"],"names":[],"mappings":";;;;AACA,8CAA6E;AAE7E,mEAAqF;AACrF,0EAAsF;AAEtF,MAAM,qBAAqB,GAAmB,QAAQ,CAAC;AACvD,MAAM,4BAA4B,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,IAAa,EAAE,EAAE,CAAC;AAE1F,iCAAwC,KAAkB;IACzD,MAAM,QAAQ,GAAG,IAAA,4CAAoB,EAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEhC,OAAO,IAAA,gCAAoB,EAC1B,4BAA4B,EAC5B,iCAAqB,CAAC,QAAQ,CAAC,EAAE,aAAa,IAAI,KAAK,CACvD,CAAC;AACH,CAAC;AAED,6BAAoC,KAAkB;IACrD,MAAM,OAAO,GAAG,IAAA,4CAAoB,EAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAElD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,4DAAoC,EAAC,OAAO,CAAC,CAAC;IAC1E,IAAI,eAAe,KAAK,KAAK,IAAI,eAAe,KAAK,QAAQ,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;QAC7F,OAAO,eAAe,CAAC;IACxB,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC9B,CAAC"}
|
|
@@ -2,45 +2,50 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.applyAgentThinking = applyAgentThinking;
|
|
4
4
|
const api_types_1 = require("@n8n/api-types");
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const model_config_identity_1 = require("./model-config-identity");
|
|
6
|
+
const custom_model_defaults_1 = require("../utils/custom-model-defaults");
|
|
7
|
+
function isGrok45Model(modelId) {
|
|
8
|
+
const id = (0, model_config_identity_1.resolveModelIdString)(modelId)?.toLowerCase() ?? '';
|
|
9
|
+
return id.includes('grok-4.5');
|
|
8
10
|
}
|
|
9
|
-
function
|
|
10
|
-
const
|
|
11
|
-
return
|
|
12
|
-
}
|
|
13
|
-
function getProviderFromConfig(value) {
|
|
14
|
-
const config = value.config;
|
|
15
|
-
return (0, is_record_1.isRecord)(config) ? getStringProperty(config, 'provider') : undefined;
|
|
16
|
-
}
|
|
17
|
-
function getProviderFromId(id) {
|
|
18
|
-
const slashIndex = id.indexOf('/');
|
|
19
|
-
return slashIndex > 0 ? normalizeProvider(id.slice(0, slashIndex)) : undefined;
|
|
20
|
-
}
|
|
21
|
-
function resolveModelProvider(modelId) {
|
|
22
|
-
if (typeof modelId === 'string')
|
|
23
|
-
return getProviderFromId(modelId);
|
|
24
|
-
if (!(0, is_record_1.isRecord)(modelId))
|
|
25
|
-
return undefined;
|
|
26
|
-
const id = getStringProperty(modelId, 'id');
|
|
27
|
-
if (id)
|
|
28
|
-
return getProviderFromId(id);
|
|
29
|
-
const provider = getStringProperty(modelId, 'provider') ?? getProviderFromConfig(modelId);
|
|
30
|
-
const model = getStringProperty(modelId, 'modelId');
|
|
31
|
-
return provider && model ? normalizeProvider(provider) : undefined;
|
|
11
|
+
function isGpt56Model(modelId) {
|
|
12
|
+
const id = (0, model_config_identity_1.resolveModelIdString)(modelId)?.toLowerCase() ?? '';
|
|
13
|
+
return id.includes('gpt-5.6');
|
|
32
14
|
}
|
|
33
15
|
function applyAgentThinking(agent, modelId) {
|
|
34
|
-
const provider = resolveModelProvider(modelId);
|
|
16
|
+
const provider = (0, model_config_identity_1.resolveModelProvider)(modelId);
|
|
35
17
|
if (!provider || !api_types_1.PROVIDER_CAPABILITIES[provider]?.thinking)
|
|
36
18
|
return;
|
|
19
|
+
if (provider === 'custom') {
|
|
20
|
+
const resolvedModelId = (0, model_config_identity_1.resolveModelIdString)(modelId) ?? '';
|
|
21
|
+
const { reasoningEffort } = (0, custom_model_defaults_1.resolveCustomModelExperimentDefaultsFromEnv)(resolvedModelId);
|
|
22
|
+
if (reasoningEffort !== undefined) {
|
|
23
|
+
agent.thinking('custom', { reasoningEffort });
|
|
24
|
+
}
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (provider === 'moonshotai') {
|
|
28
|
+
const resolvedModelId = (0, model_config_identity_1.resolveModelIdString)(modelId) ?? '';
|
|
29
|
+
const { reasoningEffort } = (0, custom_model_defaults_1.resolveCustomModelExperimentDefaultsFromEnv)(resolvedModelId);
|
|
30
|
+
if (reasoningEffort !== undefined) {
|
|
31
|
+
agent.thinking('moonshotai', { reasoningEffort });
|
|
32
|
+
}
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
37
35
|
if (provider === 'openai') {
|
|
38
|
-
agent.thinking('openai', {
|
|
36
|
+
agent.thinking('openai', {
|
|
37
|
+
reasoningEffort: isGpt56Model(modelId) ? 'medium' : 'high',
|
|
38
|
+
});
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
|
-
if (provider === 'anthropic') {
|
|
42
|
-
agent.thinking(
|
|
41
|
+
if (provider === 'anthropic' || provider === 'google-vertex-anthropic') {
|
|
42
|
+
agent.thinking(provider, { mode: 'adaptive', effort: 'medium' });
|
|
43
43
|
return;
|
|
44
44
|
}
|
|
45
|
+
if (provider === 'xai') {
|
|
46
|
+
if (isGrok45Model(modelId)) {
|
|
47
|
+
agent.thinking('xai', { reasoningEffort: 'medium' });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
45
50
|
}
|
|
46
51
|
//# sourceMappingURL=apply-agent-thinking.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-agent-thinking.js","sourceRoot":"","sources":["../../src/agent/apply-agent-thinking.ts"],"names":[],"mappings":";;;AACA,8CAAuD;
|
|
1
|
+
{"version":3,"file":"apply-agent-thinking.js","sourceRoot":"","sources":["../../src/agent/apply-agent-thinking.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAEvD,mEAAqF;AACrF,0EAA6F;AAG7F,SAAS,aAAa,CAAC,OAAoB;IAC1C,MAAM,EAAE,GAAG,IAAA,4CAAoB,EAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC9D,OAAO,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AAGD,SAAS,YAAY,CAAC,OAAoB;IACzC,MAAM,EAAE,GAAG,IAAA,4CAAoB,EAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC9D,OAAO,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAED,4BAAmC,KAAY,EAAE,OAAoB;IACpE,MAAM,QAAQ,GAAG,IAAA,4CAAoB,EAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,CAAC,QAAQ,IAAI,CAAC,iCAAqB,CAAC,QAAQ,CAAC,EAAE,QAAQ;QAAE,OAAO;IAEpE,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAE3B,MAAM,eAAe,GAAG,IAAA,4CAAoB,EAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,mEAA2C,EAAC,eAAe,CAAC,CAAC;QACzF,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO;IACR,CAAC;IAED,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC/B,MAAM,eAAe,GAAG,IAAA,4CAAoB,EAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,mEAA2C,EAAC,eAAe,CAAC,CAAC;QAEzF,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,OAAO;IACR,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3B,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxB,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;SAC1D,CAAC,CAAC;QACH,OAAO;IACR,CAAC;IAED,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,yBAAyB,EAAE,CAAC;QACxE,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjE,OAAO;IACR,CAAC;IAED,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACxB,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;AACF,CAAC"}
|
|
@@ -6,12 +6,26 @@ const apply_agent_thinking_1 = require("./apply-agent-thinking");
|
|
|
6
6
|
const mcp_tool_name_validation_1 = require("./mcp-tool-name-validation");
|
|
7
7
|
const runtime_workspace_1 = require("./runtime-workspace");
|
|
8
8
|
const system_prompt_1 = require("./system-prompt");
|
|
9
|
+
const connected_mcp_services_1 = require("../mcp/connected-mcp-services");
|
|
9
10
|
const runtime_skills_1 = require("../skills/runtime-skills");
|
|
10
11
|
const tool_registry_1 = require("../tool-registry");
|
|
11
12
|
const tools_1 = require("../tools");
|
|
12
13
|
const create_tools_from_mcp_server_1 = require("../tools/filesystem/create-tools-from-mcp-server");
|
|
13
14
|
const tool_ids_1 = require("../tools/tool-ids");
|
|
14
15
|
const langsmith_tracing_1 = require("../tracing/langsmith-tracing");
|
|
16
|
+
const modal_session_1 = require("../utils/modal-session");
|
|
17
|
+
function resolveModalSessionModelId(modelId, context, orchestrationThreadId) {
|
|
18
|
+
const threadId = [context.threadId, orchestrationThreadId]
|
|
19
|
+
.map((value) => value?.trim())
|
|
20
|
+
.find((value) => value !== undefined && value.length > 0);
|
|
21
|
+
if (!threadId)
|
|
22
|
+
return modelId;
|
|
23
|
+
const stickyModelId = (0, modal_session_1.withModalSession)(modelId, threadId);
|
|
24
|
+
if (stickyModelId === modelId)
|
|
25
|
+
return modelId;
|
|
26
|
+
context.modelId = stickyModelId;
|
|
27
|
+
return stickyModelId;
|
|
28
|
+
}
|
|
15
29
|
function splitDeferredTools(tools, options = {}) {
|
|
16
30
|
const coreTools = (0, tool_registry_1.createToolRegistry)();
|
|
17
31
|
const deferredTools = (0, tool_registry_1.createToolRegistry)();
|
|
@@ -27,18 +41,33 @@ function splitDeferredTools(tools, options = {}) {
|
|
|
27
41
|
return { coreTools, deferredTools };
|
|
28
42
|
}
|
|
29
43
|
async function createInstanceAgent(options) {
|
|
30
|
-
const { modelId, context, orchestrationContext, mcpServers = [], mcpManager, memoryConfig, } = options;
|
|
44
|
+
const { modelId: rawModelId, context, orchestrationContext, mcpServers = [], mcpManager, memoryConfig, } = options;
|
|
45
|
+
const modelId = resolveModalSessionModelId(rawModelId, context, orchestrationContext?.threadId);
|
|
46
|
+
if (orchestrationContext && orchestrationContext.modelId !== modelId) {
|
|
47
|
+
orchestrationContext.modelId = modelId;
|
|
48
|
+
}
|
|
31
49
|
const domainContext = { ...context, tracing: orchestrationContext?.tracing };
|
|
32
50
|
const domainTools = (0, tools_1.createAllTools)(domainContext);
|
|
33
|
-
const orchestratorDomainTools = (0, tools_1.createOrchestratorDomainTools)(domainContext);
|
|
34
51
|
const requireMcpToolApproval = context.permissions?.executeMcpTool !== 'always_allow';
|
|
35
52
|
const { tools: mcpTools, connectionFailures: managerMcpFailures } = await mcpManager.getRegularTools(mcpServers, context.logger, requireMcpToolApproval);
|
|
36
53
|
const mcpConnectionFailures = managerMcpFailures.map((f) => ({
|
|
37
54
|
server: f.server.name,
|
|
38
55
|
error: f.error,
|
|
39
56
|
}));
|
|
57
|
+
const browserCredentialSetup = context.browserCredentialSetup;
|
|
40
58
|
const rawLocalMcpTools = context.localMcpServer
|
|
41
|
-
? (0, create_tools_from_mcp_server_1.createToolsFromLocalMcpServer)(
|
|
59
|
+
? (0, create_tools_from_mcp_server_1.createToolsFromLocalMcpServer)({
|
|
60
|
+
server: context.localMcpServer,
|
|
61
|
+
logger: context.logger,
|
|
62
|
+
onCredentialCreateResult: browserCredentialSetup
|
|
63
|
+
? (credentialType, outcome) => {
|
|
64
|
+
if (outcome.ok)
|
|
65
|
+
browserCredentialSetup.markCreated(credentialType);
|
|
66
|
+
else
|
|
67
|
+
browserCredentialSetup.markCreateFailed(credentialType, outcome.errorCode);
|
|
68
|
+
}
|
|
69
|
+
: undefined,
|
|
70
|
+
})
|
|
42
71
|
: (0, tool_registry_1.createToolRegistry)();
|
|
43
72
|
const browserToolNames = new Set(context.localMcpServer?.getToolsByCategory('browser').map((tool) => tool.name) ?? []);
|
|
44
73
|
const warnSkippedMcpTool = (error) => {
|
|
@@ -80,6 +109,10 @@ async function createInstanceAgent(options) {
|
|
|
80
109
|
claimedToolNames: claimedOrchestratorToolNames,
|
|
81
110
|
warn: warnSkippedMcpTool,
|
|
82
111
|
});
|
|
112
|
+
const orchestratorDomainTools = (0, tools_1.createOrchestratorDomainTools)({
|
|
113
|
+
...domainContext,
|
|
114
|
+
connectedMcpServices: (0, connected_mcp_services_1.listConnectedMcpServices)(mcpServers, safeMcpTools),
|
|
115
|
+
});
|
|
83
116
|
const allOrchestratorTools = (0, tool_registry_1.mergeToolRegistries)(orchestratorDomainTools, orchestrationTools, safeLocalMcpTools, safeMcpTools);
|
|
84
117
|
const tracedOrchestratorTools = orchestrationContext?.tracing?.wrapTools(allOrchestratorTools, {
|
|
85
118
|
agentRole: 'orchestrator',
|
|
@@ -97,7 +130,6 @@ async function createInstanceAgent(options) {
|
|
|
97
130
|
localGateway: context.localGatewayStatus,
|
|
98
131
|
toolSearchEnabled: hasDeferrableTools,
|
|
99
132
|
mcpToolSearchEnabled: hasDeferredExternalMcpTools,
|
|
100
|
-
mcpRegistrySearchEnabled: Boolean(context.mcpService),
|
|
101
133
|
licenseHints: context.licenseHints,
|
|
102
134
|
browserAvailable: browserToolNames.size > 0,
|
|
103
135
|
branchReadOnly: context.branchReadOnly,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-agent.js","sourceRoot":"","sources":["../../src/agent/instance-agent.ts"],"names":[],"mappings":";;;AAAA,wCAKqB;AAErB,iEAA4D;AAC5D,yEAIoC;AACpC,2DAAyE;AACzE,mDAAkD;AAClD,6DAA4D;AAC5D,oDAA+F;AAC/F,oCAAmG;AACnG,mGAAiG;AACjG,gDAA8F;AAC9F,oEAA0F;
|
|
1
|
+
{"version":3,"file":"instance-agent.js","sourceRoot":"","sources":["../../src/agent/instance-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveModelProvider = resolveModelProvider;
|
|
4
|
+
exports.resolveModelIdString = resolveModelIdString;
|
|
5
|
+
const is_record_1 = require("@n8n/utils/is-record");
|
|
6
|
+
function normalizeProvider(provider) {
|
|
7
|
+
return provider.split('.')[0] ?? provider;
|
|
8
|
+
}
|
|
9
|
+
function getStringProperty(value, key) {
|
|
10
|
+
const property = value[key];
|
|
11
|
+
return typeof property === 'string' ? property : undefined;
|
|
12
|
+
}
|
|
13
|
+
function getProviderFromConfig(value) {
|
|
14
|
+
const config = value.config;
|
|
15
|
+
return (0, is_record_1.isRecord)(config) ? getStringProperty(config, 'provider') : undefined;
|
|
16
|
+
}
|
|
17
|
+
function getProviderFromId(id) {
|
|
18
|
+
const slashIndex = id.indexOf('/');
|
|
19
|
+
return slashIndex > 0 ? normalizeProvider(id.slice(0, slashIndex)) : undefined;
|
|
20
|
+
}
|
|
21
|
+
function resolveModelProvider(modelId) {
|
|
22
|
+
if (typeof modelId === 'string')
|
|
23
|
+
return getProviderFromId(modelId);
|
|
24
|
+
if (!(0, is_record_1.isRecord)(modelId))
|
|
25
|
+
return undefined;
|
|
26
|
+
const id = getStringProperty(modelId, 'id');
|
|
27
|
+
if (id)
|
|
28
|
+
return getProviderFromId(id);
|
|
29
|
+
const provider = getStringProperty(modelId, 'provider') ?? getProviderFromConfig(modelId);
|
|
30
|
+
const model = getStringProperty(modelId, 'modelId');
|
|
31
|
+
return provider && model ? normalizeProvider(provider) : undefined;
|
|
32
|
+
}
|
|
33
|
+
function resolveModelIdString(modelId) {
|
|
34
|
+
if (typeof modelId === 'string')
|
|
35
|
+
return modelId;
|
|
36
|
+
if (!(0, is_record_1.isRecord)(modelId))
|
|
37
|
+
return undefined;
|
|
38
|
+
const id = getStringProperty(modelId, 'id');
|
|
39
|
+
if (id)
|
|
40
|
+
return id;
|
|
41
|
+
const provider = getStringProperty(modelId, 'provider') ?? getProviderFromConfig(modelId);
|
|
42
|
+
const model = getStringProperty(modelId, 'modelId');
|
|
43
|
+
return provider && model ? `${provider}/${model}` : undefined;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=model-config-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-config-identity.js","sourceRoot":"","sources":["../../src/agent/model-config-identity.ts"],"names":[],"mappings":";;;;AACA,oDAAgD;AAEhD,SAAS,iBAAiB,CAAC,QAAgB;IAC1C,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;AAC3C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA8B,EAAE,GAAW;IACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5D,CAAC;AAED,SAAS,qBAAqB,CAAC,KAA8B;IAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,OAAO,IAAA,oBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7E,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAU;IACpC,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC;AAED,8BAAqC,OAAoB;IACxD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACnE,IAAI,CAAC,IAAA,oBAAQ,EAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,EAAE,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,EAAE;QAAE,OAAO,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACpD,OAAO,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AAED,8BAAqC,OAAoB;IACxD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,CAAC,IAAA,oBAAQ,EAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,EAAE,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAElB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACpD,OAAO,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC"}
|
|
@@ -11,16 +11,19 @@ export declare const subAgentDebriefingSchema: z.ZodObject<{
|
|
|
11
11
|
toolCallId: z.ZodString;
|
|
12
12
|
toolName: z.ZodString;
|
|
13
13
|
succeeded: z.ZodBoolean;
|
|
14
|
+
configMutated: z.ZodOptional<z.ZodLiteral<true>>;
|
|
14
15
|
errorSummary: z.ZodOptional<z.ZodString>;
|
|
15
16
|
}, "strip", z.ZodTypeAny, {
|
|
16
17
|
toolCallId: string;
|
|
17
18
|
toolName: string;
|
|
18
19
|
succeeded: boolean;
|
|
20
|
+
configMutated?: true | undefined;
|
|
19
21
|
errorSummary?: string | undefined;
|
|
20
22
|
}, {
|
|
21
23
|
toolCallId: string;
|
|
22
24
|
toolName: string;
|
|
23
25
|
succeeded: boolean;
|
|
26
|
+
configMutated?: true | undefined;
|
|
24
27
|
errorSummary?: string | undefined;
|
|
25
28
|
}>, "many">>;
|
|
26
29
|
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
@@ -37,6 +40,7 @@ export declare const subAgentDebriefingSchema: z.ZodObject<{
|
|
|
37
40
|
toolCallId: string;
|
|
38
41
|
toolName: string;
|
|
39
42
|
succeeded: boolean;
|
|
43
|
+
configMutated?: true | undefined;
|
|
40
44
|
errorSummary?: string | undefined;
|
|
41
45
|
}[] | undefined;
|
|
42
46
|
durationMs?: number | undefined;
|
|
@@ -53,6 +57,7 @@ export declare const subAgentDebriefingSchema: z.ZodObject<{
|
|
|
53
57
|
toolCallId: string;
|
|
54
58
|
toolName: string;
|
|
55
59
|
succeeded: boolean;
|
|
60
|
+
configMutated?: true | undefined;
|
|
56
61
|
errorSummary?: string | undefined;
|
|
57
62
|
}[] | undefined;
|
|
58
63
|
durationMs?: number | undefined;
|
|
@@ -43,17 +43,6 @@ Examples: ${mcpExamples}search "create tasks" for \`create-tasks\`, search "eval
|
|
|
43
43
|
For questions about n8n itself — how a node behaves, the shape of its output, what a parameter does, product semantics — prefer \`n8n-docs\` and the node type definitions, both already loaded and needing no search, over web search, which is for third-party services and APIs.
|
|
44
44
|
`;
|
|
45
45
|
}
|
|
46
|
-
function getMcpRegistrySection(mcpRegistrySearchEnabled) {
|
|
47
|
-
if (!mcpRegistrySearchEnabled)
|
|
48
|
-
return '';
|
|
49
|
-
return `
|
|
50
|
-
## Connecting Services through MCP
|
|
51
|
-
|
|
52
|
-
When the user wants to work with a third-party service here and no tool covers it, call \`mcp-servers\` with the service name before concluding it is unavailable. Do this proactively.
|
|
53
|
-
|
|
54
|
-
This is only about tools **you** use in this conversation. It is not part of building: a workflow that talks to a service uses that service's node and credential, so never call \`mcp-servers\` for a build request, and never offer to connect a service instead of adding the node.
|
|
55
|
-
`;
|
|
56
|
-
}
|
|
57
46
|
function getProjectScopeSection(projectId) {
|
|
58
47
|
if (!projectId)
|
|
59
48
|
return '';
|
|
@@ -102,7 +91,7 @@ If the user asks for a blocked operation, explain that the instance is in read-o
|
|
|
102
91
|
`;
|
|
103
92
|
}
|
|
104
93
|
function getSystemPrompt(options = {}) {
|
|
105
|
-
const { webhookBaseUrl, formBaseUrl, localGateway, toolSearchEnabled, mcpToolSearchEnabled,
|
|
94
|
+
const { webhookBaseUrl, formBaseUrl, localGateway, toolSearchEnabled, mcpToolSearchEnabled, licenseHints, browserAvailable, branchReadOnly, projectId, workspaceRoot, } = options;
|
|
106
95
|
return `You are the n8n Instance Agent — a helpful AI assistant embedded in an n8n instance. Your job is to understand the user's request and load one or more skills to help them achieve their goal. Once a skill is loaded, learn it in depth before continuing. You are also encouraged to call skills at any point in the conversation if it will help you achieve the user's goal. Match the user's request against skill descriptions in the catalog. Call \`load_skill\` before acting on a matched skill's guidance. A single turn may need more than one skill when routing requires it. Tool descriptions carry any load-before-call gates (\`load_skill\` / \`load_tool\`).
|
|
107
96
|
|
|
108
97
|
${webhookBaseUrl && formBaseUrl ? getInstanceInfoSection(webhookBaseUrl, formBaseUrl) : ''}
|
|
@@ -110,10 +99,10 @@ ${workspaceRoot ? `${(0, shared_prompts_1.getSandboxWorkspaceSection)(workspaceR
|
|
|
110
99
|
${getProjectScopeSection(projectId)}
|
|
111
100
|
${credential_guardrails_prompt_1.SECRET_ASK_GUARDRAIL}
|
|
112
101
|
${getToolDiscoverySection(toolSearchEnabled, mcpToolSearchEnabled)}
|
|
113
|
-
${getMcpRegistrySection(mcpRegistrySearchEnabled)}
|
|
114
102
|
## Communication Style
|
|
115
103
|
|
|
116
104
|
- Be concise.
|
|
105
|
+
- When the user opens with a greeting or another open-ended message without a specific request, briefly greet them and offer concrete ways you can help. Include building an agent and building a workflow among the options, alongside any other relevant capabilities.
|
|
117
106
|
- Reply in the user's language — in every user-visible message of the turn, including the short narration between tool calls, not just the end-of-turn summary. Tool results, skill instructions, and system follow-ups are written in English; do not let them pull your replies into English.
|
|
118
107
|
- ${shared_prompts_1.ASK_USER_FALLBACK}
|
|
119
108
|
- No emojis unless the user explicitly requests them.
|
|
@@ -139,7 +128,7 @@ Don't fabricate provider setup mechanics (credential field names, secret values,
|
|
|
139
128
|
## Safety
|
|
140
129
|
|
|
141
130
|
- **Destructive operations** show a confirmation UI automatically — don't ask via text.
|
|
142
|
-
- **Credential setup** uses \`workflows(action="setup")\` when a workflowId is available — it opens the inline setup card in the AI Assistant panel and handles credentials, parameters, and triggers in one step. Use \`credentials(action="setup")\` only when the user explicitly asks to create a credential outside of any workflow context. Never call both tools for the same workflow. Never describe workflow setup as something the user starts from the canvas or editor. Setup cards are only open while the setup call is pending — once it returns a result, the card is resolved: describe the outcome (e.g. credentials selected and ready), never that a card is open or that the user still needs to authorize. When a
|
|
131
|
+
- **Credential setup** uses \`workflows(action="setup")\` when a workflowId is available — it opens the inline setup card in the AI Assistant panel and handles credentials, parameters, and triggers in one step. Use \`credentials(action="setup")\` only when the user explicitly asks to create a credential outside of any workflow context. Never call both tools for the same workflow. Never describe workflow setup as something the user starts from the canvas or editor. Setup cards are only open while the setup call is pending — once it returns a result, the card is resolved: describe the outcome (e.g. credentials selected and ready), never that a card is open or that the user still needs to authorize. When a node in \`nodesStillNeedingSetup\` carries \`parameterIssues\`, the connected credential can't reach the value that was configured (e.g. a model outside what the credential allows) — fix the value, then tell the user plainly which value didn't work and what you set instead. Never silently swap a model or other parameter without saying so. Nodes listed under \`skippedByUser\` are different: the user chose to skip them, so never re-open the setup card for those — say what stays unconfigured and offer to set it up later.
|
|
143
132
|
- **Error workflows are per workflow** — n8n has no global/instance-wide error workflow setting. Mention that only when the user explicitly asks about global error workflow behavior; build/assign steps live in \`workflow-builder\` and \`post-build-flow\`.
|
|
144
133
|
- **Never expose credential secrets** — metadata only.
|
|
145
134
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":";;;;AAAA,iCAAiC;AAEjC,+DAA6D;AAC7D,iFAAsE;AACtE,qDAI0B;
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":";;;;AAAA,iCAAiC;AAEjC,+DAA6D;AAC7D,iFAAsE;AACtE,qDAI0B;AAmB1B,4BAAmC,QAAiB;IACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAQ,CAAC,GAAG,EAAE,CAAC;IACzE,MAAM,OAAO,GAAG,GAAG;SACjB,OAAO,CAAC,QAAQ,CAAC;SACjB,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,eAAe,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,OAAO;;;6CAGqC,OAAO,GAAG,OAAO;0DACJ,CAAC;AAC3D,CAAC;AAED,SAAS,sBAAsB,CAAC,cAAsB,EAAE,WAAmB;IAC1E,OAAO;;oBAEY,cAAc;iBACjB,WAAW,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,uBAAuB,CAC/B,iBAA2B,EAC3B,oBAA8B;IAE9B,IAAI,CAAC,iBAAiB;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,iBAAiB,GAAG,oBAAoB;QAC7C,CAAC,CAAC,4PAA4P;QAC9P,CAAC,CAAC,EAAE,CAAC;IACN,MAAM,WAAW,GAAG,oBAAoB;QACvC,CAAC,CAAC,yEAAyE;QAC3E,CAAC,CAAC,EAAE,CAAC;IAEN,OAAO;;;EAGN,iBAAiB;;YAEP,WAAW;;;CAGtB,CAAC;AACF,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAkB;IACjD,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,OAAO;;;;;;;;;oPAS4O,CAAC;AACrP,CAAC;AAED,SAAS,4BAA4B,CAAC,YAAuB;IAC5D,IAAI,CAAC,YAAY,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAErC,OAAO;;;;;EAKN,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACnD,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CAAC,cAAwB;IACnD,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAC;IAC/B,OAAO;;;;;;;;;;;;;;;;;CAiBP,CAAC;AACF,CAAC;AAED,yBAAgC,OAAO,GAAwB,EAAE;IAChE,MAAM,EACL,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,aAAa,GACb,GAAG,OAAO,CAAC;IAEZ,OAAO;;EAEN,cAAc,IAAI,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;EACxF,aAAa,CAAC,CAAC,CAAC,GAAG,IAAA,2CAA0B,EAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;EACnE,sBAAsB,CAAC,SAAS,CAAC;EACjC,mDAAoB;EACpB,uBAAuB,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;;;;;;IAM9D,kCAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BnB,2CAA0B;;EAE1B,IAAA,0CAAoB,EAAC,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAC;EACxD,4BAA4B,CAAC,YAAY,CAAC;EAC1C,kBAAkB,CAAC,cAAc,CAAC,EAAE,CAAC;AACvC,CAAC"}
|