@n8n/instance-ai 1.8.1 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/computer-use-prompt.js +5 -27
- package/dist/agent/computer-use-prompt.js.map +1 -1
- package/dist/agent/credential-guardrails.prompt.d.ts +1 -1
- package/dist/agent/credential-guardrails.prompt.js +1 -1
- package/dist/agent/credential-guardrails.prompt.js.map +1 -1
- package/dist/agent/instance-agent.js +3 -15
- package/dist/agent/instance-agent.js.map +1 -1
- package/dist/agent/shared-prompts.d.ts +1 -1
- package/dist/agent/shared-prompts.js +1 -1
- package/dist/agent/shared-prompts.js.map +1 -1
- package/dist/agent/sub-agent-debriefing.d.ts +2 -2
- package/dist/agent/sub-agent-factory.d.ts +1 -1
- package/dist/agent/system-prompt.js +3 -1
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/knowledge-base/materialize-knowledge-base.d.ts +39 -0
- package/dist/knowledge-base/materialize-knowledge-base.js +98 -0
- package/dist/knowledge-base/materialize-knowledge-base.js.map +1 -0
- package/dist/mcp/mcp-client-manager.d.ts +0 -3
- package/dist/mcp/mcp-client-manager.js +0 -16
- package/dist/mcp/mcp-client-manager.js.map +1 -1
- package/dist/runtime/resumable-stream-executor.js +2 -2
- package/dist/runtime/resumable-stream-executor.js.map +1 -1
- package/dist/runtime/run-state-registry.d.ts +3 -1
- package/dist/runtime/run-state-registry.js +9 -6
- package/dist/runtime/run-state-registry.js.map +1 -1
- package/dist/skills/materialize-runtime-skills.d.ts +1 -7
- package/dist/skills/materialize-runtime-skills.js +94 -174
- package/dist/skills/materialize-runtime-skills.js.map +1 -1
- package/dist/stream/consume-with-hitl.d.ts +30 -0
- package/dist/stream/consume-with-hitl.js +33 -0
- package/dist/stream/consume-with-hitl.js.map +1 -1
- package/dist/tools/executions.tool.js +42 -3
- package/dist/tools/executions.tool.js.map +1 -1
- package/dist/tools/index.js +0 -10
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/orchestration/build-workflow-agent.tool.js +1 -1
- package/dist/tools/orchestration/build-workflow-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/plan-with-agent.tool.d.ts +2 -0
- package/dist/tools/orchestration/plan-with-agent.tool.js +196 -93
- package/dist/tools/orchestration/plan-with-agent.tool.js.map +1 -1
- package/dist/tools/tool-ids.d.ts +0 -1
- package/dist/tools/tool-ids.js +0 -1
- package/dist/tools/tool-ids.js.map +1 -1
- package/dist/tools/workflows/submit-workflow.tool.d.ts +91 -0
- package/dist/tools/workflows/submit-workflow.tool.js +93 -2
- package/dist/tools/workflows/submit-workflow.tool.js.map +1 -1
- package/dist/tracing/trace-payloads.js +4 -4
- package/dist/tracing/trace-payloads.js.map +1 -1
- package/dist/types.d.ts +37 -2
- package/dist/types.js.map +1 -1
- package/dist/utils/eval-agents.d.ts +7 -0
- package/dist/utils/eval-agents.js +5 -4
- package/dist/utils/eval-agents.js.map +1 -1
- package/dist/utils/stream-helpers.d.ts +1 -0
- package/dist/utils/stream-helpers.js +1 -1
- package/dist/utils/stream-helpers.js.map +1 -1
- package/dist/workspace/compute-workspace-content-hash.d.ts +1 -0
- package/dist/workspace/compute-workspace-content-hash.js +15 -0
- package/dist/workspace/compute-workspace-content-hash.js.map +1 -0
- package/dist/workspace/prebaked-workspace-bundle.d.ts +39 -0
- package/dist/workspace/prebaked-workspace-bundle.js +75 -0
- package/dist/workspace/prebaked-workspace-bundle.js.map +1 -0
- package/dist/workspace/sandbox-fs.d.ts +17 -15
- package/dist/workspace/sandbox-fs.js.map +1 -1
- package/dist/workspace/sandbox-setup.d.ts +1 -1
- package/dist/workspace/sandbox-setup.js +8 -0
- package/dist/workspace/sandbox-setup.js.map +1 -1
- package/dist/workspace/snapshot-manager.d.ts +2 -0
- package/dist/workspace/snapshot-manager.js +29 -9
- package/dist/workspace/snapshot-manager.js.map +1 -1
- package/dist/workspace/template-telemetry.js +3 -3
- package/dist/workspace/template-telemetry.js.map +1 -1
- package/dist/workspace/workspace-file-content.d.ts +2 -0
- package/dist/workspace/workspace-file-content.js +11 -0
- package/dist/workspace/workspace-file-content.js.map +1 -0
- package/dist/workspace/workspace-files.d.ts +20 -0
- package/dist/workspace/workspace-files.js +74 -0
- package/dist/workspace/workspace-files.js.map +1 -0
- package/dist/workspace/workspace-manifest.d.ts +12 -0
- package/dist/workspace/workspace-manifest.js +28 -0
- package/dist/workspace/workspace-manifest.js.map +1 -0
- package/package.json +11 -10
- package/skills/credential-setup-with-computer-use/SKILL.md +78 -0
- package/dist/tools/orchestration/browser-credential-setup.nudge.d.ts +0 -3
- package/dist/tools/orchestration/browser-credential-setup.nudge.js +0 -11
- package/dist/tools/orchestration/browser-credential-setup.nudge.js.map +0 -1
- package/dist/tools/orchestration/browser-credential-setup.prompt.d.ts +0 -13
- package/dist/tools/orchestration/browser-credential-setup.prompt.js +0 -141
- package/dist/tools/orchestration/browser-credential-setup.prompt.js.map +0 -1
- package/dist/tools/orchestration/browser-credential-setup.tool.d.ts +0 -26
- package/dist/tools/orchestration/browser-credential-setup.tool.js +0 -377
- package/dist/tools/orchestration/browser-credential-setup.tool.js.map +0 -1
- package/dist/utils/scrub-secrets.d.ts +0 -1
- package/dist/utils/scrub-secrets.js +0 -19
- package/dist/utils/scrub-secrets.js.map +0 -1
|
@@ -1,377 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.browserCredentialSetupResumeSchema = exports.browserCredentialSetupInputSchema = exports.__testWrapBrowserToolsForDenialDetection = exports.__testHasPermanentBrowserDenial = exports.__testIsPermanentDenialResult = exports.buildBrowserAgentPrompt = void 0;
|
|
4
|
-
exports.createBrowserCredentialSetupTool = createBrowserCredentialSetupTool;
|
|
5
|
-
const agents_1 = require("@n8n/agents");
|
|
6
|
-
const api_types_1 = require("@n8n/api-types");
|
|
7
|
-
const nanoid_1 = require("nanoid");
|
|
8
|
-
const zod_1 = require("zod");
|
|
9
|
-
const agent_persistence_1 = require("./agent-persistence");
|
|
10
|
-
const browser_credential_setup_nudge_1 = require("./browser-credential-setup.nudge");
|
|
11
|
-
const browser_credential_setup_prompt_1 = require("./browser-credential-setup.prompt");
|
|
12
|
-
const tracing_utils_1 = require("./tracing-utils");
|
|
13
|
-
const runtime_workspace_1 = require("../../agent/runtime-workspace");
|
|
14
|
-
const max_steps_1 = require("../../constants/max-steps");
|
|
15
|
-
const resumable_stream_executor_1 = require("../../runtime/resumable-stream-executor");
|
|
16
|
-
const tool_registry_1 = require("../../tool-registry");
|
|
17
|
-
const langsmith_tracing_1 = require("../../tracing/langsmith-tracing");
|
|
18
|
-
const create_tools_from_mcp_server_1 = require("../filesystem/create-tools-from-mcp-server");
|
|
19
|
-
const research_tool_1 = require("../research.tool");
|
|
20
|
-
const ask_user_tool_1 = require("../shared/ask-user.tool");
|
|
21
|
-
var browser_credential_setup_prompt_2 = require("./browser-credential-setup.prompt");
|
|
22
|
-
Object.defineProperty(exports, "buildBrowserAgentPrompt", { enumerable: true, get: function () { return browser_credential_setup_prompt_2.buildBrowserAgentPrompt; } });
|
|
23
|
-
const BROWSER_CREDENTIAL_AGENT_ROLE = 'credential-setup-browser-agent';
|
|
24
|
-
const PERMANENT_DENIAL_MARKER = 'User permanently denied access to';
|
|
25
|
-
const BROWSER_DENIED_RESULT = 'Browser access was denied by the user. Provide manual setup guidance in chat — do not try the browser flow again in this turn.';
|
|
26
|
-
const browserToolErrorResultSchema = zod_1.z.object({
|
|
27
|
-
isError: zod_1.z.literal(true),
|
|
28
|
-
structuredContent: zod_1.z.object({ error: zod_1.z.string().optional() }).passthrough().optional(),
|
|
29
|
-
content: zod_1.z.array(zod_1.z.object({ text: zod_1.z.string() }).passthrough()).optional(),
|
|
30
|
-
});
|
|
31
|
-
function isPermanentDenialResult(result) {
|
|
32
|
-
const parsed = browserToolErrorResultSchema.safeParse(result);
|
|
33
|
-
if (!parsed.success)
|
|
34
|
-
return false;
|
|
35
|
-
const messages = [
|
|
36
|
-
parsed.data.structuredContent?.error ?? '',
|
|
37
|
-
...(parsed.data.content?.map((c) => c.text) ?? []),
|
|
38
|
-
];
|
|
39
|
-
return messages.some((message) => message.includes(PERMANENT_DENIAL_MARKER));
|
|
40
|
-
}
|
|
41
|
-
function isPermanentDenialError(error) {
|
|
42
|
-
return error instanceof Error && error.message.includes(PERMANENT_DENIAL_MARKER);
|
|
43
|
-
}
|
|
44
|
-
function hasPermanentBrowserDenial(workSummary) {
|
|
45
|
-
return workSummary.toolCalls.some((toolCall) => toolCall.toolName.startsWith('browser_') &&
|
|
46
|
-
toolCall.errorSummary?.includes(PERMANENT_DENIAL_MARKER) === true);
|
|
47
|
-
}
|
|
48
|
-
function wrapToolForDenialDetection(tool, onDenied) {
|
|
49
|
-
const originalHandler = tool.handler;
|
|
50
|
-
if (!originalHandler)
|
|
51
|
-
return tool;
|
|
52
|
-
return {
|
|
53
|
-
...tool,
|
|
54
|
-
handler: async (input, ctx) => {
|
|
55
|
-
try {
|
|
56
|
-
const result = await originalHandler(input, ctx);
|
|
57
|
-
if (isPermanentDenialResult(result))
|
|
58
|
-
onDenied();
|
|
59
|
-
return result;
|
|
60
|
-
}
|
|
61
|
-
catch (error) {
|
|
62
|
-
if (isPermanentDenialError(error))
|
|
63
|
-
onDenied();
|
|
64
|
-
throw error;
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
function wrapBrowserToolsForDenialDetection(tools, onDenied) {
|
|
70
|
-
const wrapped = (0, tool_registry_1.createToolRegistry)();
|
|
71
|
-
for (const [name, tool] of tools) {
|
|
72
|
-
wrapped.set(name, name.startsWith('browser_') ? wrapToolForDenialDetection(tool, onDenied) : tool);
|
|
73
|
-
}
|
|
74
|
-
return wrapped;
|
|
75
|
-
}
|
|
76
|
-
exports.__testIsPermanentDenialResult = isPermanentDenialResult;
|
|
77
|
-
exports.__testHasPermanentBrowserDenial = hasPermanentBrowserDenial;
|
|
78
|
-
exports.__testWrapBrowserToolsForDenialDetection = wrapBrowserToolsForDenialDetection;
|
|
79
|
-
function createPauseForUserTool() {
|
|
80
|
-
return new agents_1.Tool('pause-for-user')
|
|
81
|
-
.description('Pause and wait for the user to complete an action in the browser (e.g., sign in, ' +
|
|
82
|
-
'complete 2FA, click a button, enter values privately into n8n, download files). The user sees a message and confirms when done.')
|
|
83
|
-
.input(exports.browserCredentialSetupInputSchema)
|
|
84
|
-
.output(zod_1.z.object({
|
|
85
|
-
continued: zod_1.z.boolean(),
|
|
86
|
-
}))
|
|
87
|
-
.suspend(zod_1.z.object({
|
|
88
|
-
requestId: zod_1.z.string(),
|
|
89
|
-
message: zod_1.z.string(),
|
|
90
|
-
severity: api_types_1.instanceAiConfirmationSeveritySchema,
|
|
91
|
-
inputType: zod_1.z.literal('continue'),
|
|
92
|
-
}))
|
|
93
|
-
.resume(exports.browserCredentialSetupResumeSchema)
|
|
94
|
-
.handler(async (input, ctx) => {
|
|
95
|
-
const resumeData = ctx.resumeData;
|
|
96
|
-
if (resumeData === undefined || resumeData === null) {
|
|
97
|
-
return await ctx.suspend({
|
|
98
|
-
requestId: (0, nanoid_1.nanoid)(),
|
|
99
|
-
message: input.message,
|
|
100
|
-
severity: 'info',
|
|
101
|
-
inputType: 'continue',
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
return { continued: resumeData.approved };
|
|
105
|
-
})
|
|
106
|
-
.build();
|
|
107
|
-
}
|
|
108
|
-
exports.browserCredentialSetupInputSchema = zod_1.z.object({
|
|
109
|
-
message: zod_1.z.string().describe('What the user needs to do (shown in the chat UI)'),
|
|
110
|
-
});
|
|
111
|
-
exports.browserCredentialSetupResumeSchema = zod_1.z.object({
|
|
112
|
-
approved: zod_1.z.boolean(),
|
|
113
|
-
});
|
|
114
|
-
const browserCredentialSetupToolInputSchema = zod_1.z.object({
|
|
115
|
-
credentialType: zod_1.z.string().describe('n8n credential type name'),
|
|
116
|
-
docsUrl: zod_1.z.string().optional().describe('n8n documentation URL for this credential'),
|
|
117
|
-
requiredFields: zod_1.z
|
|
118
|
-
.array(zod_1.z.object({
|
|
119
|
-
name: zod_1.z.string(),
|
|
120
|
-
displayName: zod_1.z.string(),
|
|
121
|
-
type: zod_1.z.string(),
|
|
122
|
-
required: zod_1.z.boolean(),
|
|
123
|
-
description: zod_1.z.string().optional(),
|
|
124
|
-
}))
|
|
125
|
-
.optional()
|
|
126
|
-
.describe('Credential fields the user needs to obtain from the service'),
|
|
127
|
-
});
|
|
128
|
-
function buildCredentialSetupBriefing(input, context) {
|
|
129
|
-
const docsLine = input.docsUrl
|
|
130
|
-
? `**Documentation:** ${input.docsUrl}`
|
|
131
|
-
: '**Documentation:** No URL available — use `research` (action: web-search) to find setup instructions.';
|
|
132
|
-
let fieldsSection = '';
|
|
133
|
-
if (input.requiredFields && input.requiredFields.length > 0) {
|
|
134
|
-
const fieldLines = input.requiredFields.map((field) => `- ${field.displayName} (${field.name})${field.required ? ' [REQUIRED]' : ''}${field.description ? ': ' + field.description : ''}`);
|
|
135
|
-
fieldsSection = `\n### Required Fields\n${fieldLines.join('\n')}`;
|
|
136
|
-
}
|
|
137
|
-
const isOAuth = input.credentialType.toLowerCase().includes('oauth');
|
|
138
|
-
const oauthSection = isOAuth && context.oauth2CallbackUrl
|
|
139
|
-
? `\n### OAuth Redirect URL\n${context.oauth2CallbackUrl}\n` +
|
|
140
|
-
'Paste this into the "Authorized redirect URIs" field. ' +
|
|
141
|
-
'Do NOT navigate to the n8n instance to find it — use this URL directly.'
|
|
142
|
-
: '';
|
|
143
|
-
return [
|
|
144
|
-
`## Credential Setup: ${input.credentialType}`,
|
|
145
|
-
'',
|
|
146
|
-
docsLine,
|
|
147
|
-
fieldsSection,
|
|
148
|
-
oauthSection,
|
|
149
|
-
'',
|
|
150
|
-
'### Completion Criteria',
|
|
151
|
-
'Done ONLY when all required values are visible on screen or downloaded, and you have called `pause-for-user` telling the user where to find them and to enter them privately in n8n.',
|
|
152
|
-
]
|
|
153
|
-
.filter(Boolean)
|
|
154
|
-
.join('\n');
|
|
155
|
-
}
|
|
156
|
-
function createBrowserCredentialSetupTool(context) {
|
|
157
|
-
return new agents_1.Tool('browser-credential-setup')
|
|
158
|
-
.description('Run a browser agent that navigates to credential documentation and helps the user ' +
|
|
159
|
-
'set up a credential on the external service. The browser is visible to the user. ' +
|
|
160
|
-
'The agent can pause for user interaction (sign-in, 2FA, etc.).')
|
|
161
|
-
.input(browserCredentialSetupToolInputSchema)
|
|
162
|
-
.output(zod_1.z.object({
|
|
163
|
-
result: zod_1.z.string(),
|
|
164
|
-
}))
|
|
165
|
-
.handler(async (input) => {
|
|
166
|
-
await Promise.resolve();
|
|
167
|
-
const browserTools = (0, tool_registry_1.createToolRegistry)();
|
|
168
|
-
let toolSource;
|
|
169
|
-
const gatewayBrowserTools = context.localMcpServer?.getToolsByCategory('browser') ?? [];
|
|
170
|
-
if (gatewayBrowserTools.length > 0 && context.localMcpServer) {
|
|
171
|
-
const gatewayBrowserNames = new Set(gatewayBrowserTools.map((t) => t.name));
|
|
172
|
-
const allGatewayTools = (0, create_tools_from_mcp_server_1.createToolsFromLocalMcpServer)(context.localMcpServer, context.logger);
|
|
173
|
-
for (const [name, tool] of allGatewayTools) {
|
|
174
|
-
if (gatewayBrowserNames.has(name)) {
|
|
175
|
-
browserTools.set(name, tool);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
toolSource = 'gateway';
|
|
179
|
-
}
|
|
180
|
-
else if (context.browserMcpConfig) {
|
|
181
|
-
const mcpTools = context.mcpTools ?? (0, tool_registry_1.createToolRegistry)();
|
|
182
|
-
for (const [name, tool] of mcpTools) {
|
|
183
|
-
browserTools.set(name, tool);
|
|
184
|
-
}
|
|
185
|
-
toolSource = 'chrome-devtools-mcp';
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
return {
|
|
189
|
-
result: 'Browser automation is not available. Either connect a local gateway with browser tools or set N8N_INSTANCE_AI_BROWSER_MCP=true.',
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
if (browserTools.size === 0) {
|
|
193
|
-
return {
|
|
194
|
-
result: toolSource === 'gateway'
|
|
195
|
-
? 'Local gateway is connected but no browser_* tools are available. Ensure the browser module is enabled in the gateway.'
|
|
196
|
-
: 'No browser MCP tools available. Chrome DevTools MCP may not be connected.',
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
let browserPermanentlyDenied = false;
|
|
200
|
-
const browserToolsWithDenialDetection = wrapBrowserToolsForDenialDetection(browserTools, () => {
|
|
201
|
-
browserPermanentlyDenied = true;
|
|
202
|
-
});
|
|
203
|
-
browserToolsWithDenialDetection.set('pause-for-user', createPauseForUserTool());
|
|
204
|
-
browserToolsWithDenialDetection.set('ask-user', (0, ask_user_tool_1.createAskUserTool)());
|
|
205
|
-
if (context.domainContext) {
|
|
206
|
-
browserToolsWithDenialDetection.set('research', (0, research_tool_1.createResearchTool)(context.domainContext));
|
|
207
|
-
}
|
|
208
|
-
if (!context.spawnBackgroundTask) {
|
|
209
|
-
return { result: 'Browser credential setup requires background task support.' };
|
|
210
|
-
}
|
|
211
|
-
const subAgentId = `agent-browser-${(0, nanoid_1.nanoid)(6)}`;
|
|
212
|
-
const taskId = `browser-credential-${(0, nanoid_1.nanoid)(8)}`;
|
|
213
|
-
const browserPrompt = (0, browser_credential_setup_prompt_1.buildBrowserAgentPrompt)(toolSource);
|
|
214
|
-
const tracedBrowserTools = (0, tracing_utils_1.traceSubAgentTools)(context, browserToolsWithDenialDetection, BROWSER_CREDENTIAL_AGENT_ROLE);
|
|
215
|
-
const createTraceContext = (0, tracing_utils_1.createDetachedSubAgentTraceFactory)(context, {
|
|
216
|
-
agentId: subAgentId,
|
|
217
|
-
role: BROWSER_CREDENTIAL_AGENT_ROLE,
|
|
218
|
-
kind: 'browser-credential-setup',
|
|
219
|
-
taskId,
|
|
220
|
-
inputs: {
|
|
221
|
-
credentialType: input.credentialType,
|
|
222
|
-
docsUrl: input.docsUrl,
|
|
223
|
-
requiredFields: input.requiredFields?.map((field) => ({
|
|
224
|
-
name: field.name,
|
|
225
|
-
type: field.type,
|
|
226
|
-
required: field.required,
|
|
227
|
-
})),
|
|
228
|
-
},
|
|
229
|
-
});
|
|
230
|
-
const spawnOutcome = context.spawnBackgroundTask({
|
|
231
|
-
taskId,
|
|
232
|
-
threadId: context.threadId,
|
|
233
|
-
agentId: subAgentId,
|
|
234
|
-
role: BROWSER_CREDENTIAL_AGENT_ROLE,
|
|
235
|
-
createTraceContext,
|
|
236
|
-
dedupeKey: { role: BROWSER_CREDENTIAL_AGENT_ROLE },
|
|
237
|
-
parentCheckpointId: context.isCheckpointFollowUp === true ? context.checkpointTaskId : undefined,
|
|
238
|
-
run: async (signal, _drainCorrections, _waitForCorrection, { traceContext }) => await (0, tracing_utils_1.withTraceContextActor)(traceContext, async () => {
|
|
239
|
-
const subAgent = new agents_1.Agent('Browser Credential Setup Agent')
|
|
240
|
-
.model(context.modelId)
|
|
241
|
-
.instructions(browserPrompt, {
|
|
242
|
-
providerOptions: {
|
|
243
|
-
anthropic: { cacheControl: { type: 'ephemeral' } },
|
|
244
|
-
},
|
|
245
|
-
})
|
|
246
|
-
.tool((0, tool_registry_1.toolRegistryValues)(tracedBrowserTools))
|
|
247
|
-
.checkpoint(context.checkpointStore ?? 'memory');
|
|
248
|
-
(0, runtime_workspace_1.attachRuntimeWorkspaceCapabilities)(subAgent, {
|
|
249
|
-
runtimeSkills: context.runtimeSkills,
|
|
250
|
-
});
|
|
251
|
-
const telemetry = traceContext?.getTelemetry?.({
|
|
252
|
-
agentRole: BROWSER_CREDENTIAL_AGENT_ROLE,
|
|
253
|
-
functionId: `instance-ai.subagent.${BROWSER_CREDENTIAL_AGENT_ROLE}`,
|
|
254
|
-
executionMode: 'background_subagent',
|
|
255
|
-
metadata: { agent_id: subAgentId, task_id: taskId },
|
|
256
|
-
});
|
|
257
|
-
if (telemetry) {
|
|
258
|
-
subAgent.telemetry(telemetry);
|
|
259
|
-
}
|
|
260
|
-
(0, langsmith_tracing_1.mergeTraceRunInputs)(traceContext?.actorRun, (0, langsmith_tracing_1.buildAgentTraceInputs)({
|
|
261
|
-
systemPrompt: browserPrompt,
|
|
262
|
-
tools: tracedBrowserTools,
|
|
263
|
-
modelId: context.modelId,
|
|
264
|
-
}));
|
|
265
|
-
const briefing = buildCredentialSetupBriefing(input, context);
|
|
266
|
-
const persistence = await (0, agent_persistence_1.createSubAgentPersistence)(context, {
|
|
267
|
-
agentKind: 'credential-setup-browser',
|
|
268
|
-
});
|
|
269
|
-
const stream = await subAgent.stream(briefing, {
|
|
270
|
-
maxIterations: max_steps_1.MAX_STEPS.BROWSER,
|
|
271
|
-
abortSignal: signal,
|
|
272
|
-
persistence,
|
|
273
|
-
providerOptions: {
|
|
274
|
-
anthropic: { cacheControl: { type: 'ephemeral' } },
|
|
275
|
-
},
|
|
276
|
-
});
|
|
277
|
-
let activeStream = (0, resumable_stream_executor_1.normalizeStreamSource)(stream);
|
|
278
|
-
let activeAgentRunId = typeof activeStream.runId === 'string' ? activeStream.runId : '';
|
|
279
|
-
let lastSuspendedToolName = '';
|
|
280
|
-
const MAX_NUDGES = 3;
|
|
281
|
-
let nudgeCount = 0;
|
|
282
|
-
while (true) {
|
|
283
|
-
const result = await (0, resumable_stream_executor_1.executeResumableStream)({
|
|
284
|
-
agent: subAgent,
|
|
285
|
-
stream: activeStream,
|
|
286
|
-
initialAgentRunId: activeAgentRunId,
|
|
287
|
-
context: {
|
|
288
|
-
threadId: context.threadId,
|
|
289
|
-
runId: context.runId,
|
|
290
|
-
agentId: subAgentId,
|
|
291
|
-
eventBus: context.eventBus,
|
|
292
|
-
signal,
|
|
293
|
-
logger: context.logger,
|
|
294
|
-
},
|
|
295
|
-
control: {
|
|
296
|
-
mode: 'auto',
|
|
297
|
-
buildResumeOptions: ({ agentRunId, suspension }) => ({
|
|
298
|
-
runId: agentRunId,
|
|
299
|
-
toolCallId: suspension.toolCallId,
|
|
300
|
-
maxIterations: max_steps_1.MAX_STEPS.BROWSER,
|
|
301
|
-
persistence,
|
|
302
|
-
}),
|
|
303
|
-
waitForConfirmation: async (requestId) => {
|
|
304
|
-
if (!context.waitForConfirmation) {
|
|
305
|
-
throw new Error('Browser agent requires user interaction but no HITL handler is available');
|
|
306
|
-
}
|
|
307
|
-
return await context.waitForConfirmation(requestId);
|
|
308
|
-
},
|
|
309
|
-
onSuspension: (suspension) => {
|
|
310
|
-
lastSuspendedToolName = suspension.toolName ?? '';
|
|
311
|
-
},
|
|
312
|
-
},
|
|
313
|
-
});
|
|
314
|
-
if (result.status !== 'completed') {
|
|
315
|
-
throw new Error(result.status === 'cancelled'
|
|
316
|
-
? 'Browser credential setup sub-agent was cancelled'
|
|
317
|
-
: 'Browser credential setup sub-agent failed while streaming');
|
|
318
|
-
}
|
|
319
|
-
if (browserPermanentlyDenied || hasPermanentBrowserDenial(result.workSummary)) {
|
|
320
|
-
return BROWSER_DENIED_RESULT;
|
|
321
|
-
}
|
|
322
|
-
if (lastSuspendedToolName !== 'pause-for-user' && nudgeCount < MAX_NUDGES) {
|
|
323
|
-
nudgeCount++;
|
|
324
|
-
const priorMessages = subAgent.getState().messageList.messages;
|
|
325
|
-
const nudgeInput = (0, browser_credential_setup_nudge_1.buildNudgeStreamInput)(priorMessages);
|
|
326
|
-
const nudge = await subAgent.stream(nudgeInput, {
|
|
327
|
-
maxIterations: max_steps_1.MAX_STEPS.BROWSER,
|
|
328
|
-
abortSignal: signal,
|
|
329
|
-
persistence,
|
|
330
|
-
providerOptions: {
|
|
331
|
-
anthropic: { cacheControl: { type: 'ephemeral' } },
|
|
332
|
-
},
|
|
333
|
-
});
|
|
334
|
-
activeStream = (0, resumable_stream_executor_1.normalizeStreamSource)(nudge);
|
|
335
|
-
activeAgentRunId =
|
|
336
|
-
(typeof activeStream.runId === 'string' && activeStream.runId) ||
|
|
337
|
-
result.agentRunId ||
|
|
338
|
-
activeAgentRunId;
|
|
339
|
-
continue;
|
|
340
|
-
}
|
|
341
|
-
return await (result.text ?? activeStream.text ?? Promise.resolve(''));
|
|
342
|
-
}
|
|
343
|
-
}),
|
|
344
|
-
});
|
|
345
|
-
if (spawnOutcome.status === 'duplicate') {
|
|
346
|
-
return {
|
|
347
|
-
result: `Browser credential setup is already running (task: ${spawnOutcome.existing.taskId}). Wait for the background-task follow-up before dispatching another one.`,
|
|
348
|
-
};
|
|
349
|
-
}
|
|
350
|
-
if (spawnOutcome.status === 'limit-reached') {
|
|
351
|
-
return {
|
|
352
|
-
result: 'Could not start browser credential setup: concurrent background-task limit reached. Wait for an existing task to finish and try again.',
|
|
353
|
-
};
|
|
354
|
-
}
|
|
355
|
-
context.eventBus.publish(context.threadId, {
|
|
356
|
-
type: 'agent-spawned',
|
|
357
|
-
runId: context.runId,
|
|
358
|
-
agentId: subAgentId,
|
|
359
|
-
payload: {
|
|
360
|
-
parentId: context.orchestratorAgentId,
|
|
361
|
-
role: BROWSER_CREDENTIAL_AGENT_ROLE,
|
|
362
|
-
tools: (0, tool_registry_1.toolRegistryKeys)(browserToolsWithDenialDetection),
|
|
363
|
-
taskId,
|
|
364
|
-
kind: 'browser-setup',
|
|
365
|
-
title: 'Setting up credential',
|
|
366
|
-
subtitle: input.credentialType,
|
|
367
|
-
goal: `Set up ${input.credentialType}`,
|
|
368
|
-
targetResource: { type: 'credential' },
|
|
369
|
-
},
|
|
370
|
-
});
|
|
371
|
-
return {
|
|
372
|
-
result: `Browser credential setup started (task: ${taskId}). Wait for the background-task follow-up before summarizing the result.`,
|
|
373
|
-
};
|
|
374
|
-
})
|
|
375
|
-
.build();
|
|
376
|
-
}
|
|
377
|
-
//# sourceMappingURL=browser-credential-setup.tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser-credential-setup.tool.js","sourceRoot":"","sources":["../../../src/tools/orchestration/browser-credential-setup.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function scrubSecretsInText(input: string): string;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.scrubSecretsInText = scrubSecretsInText;
|
|
4
|
-
const SECRET_VALUE_PATTERNS = [
|
|
5
|
-
/\b(?:Bearer|Basic|Token)\s+[A-Za-z0-9._~+/=-]{12,}/gi,
|
|
6
|
-
/\bsk-(?:ant-|proj-)?[A-Za-z0-9_-]{16,}/g,
|
|
7
|
-
/\bxox[abprso]-[A-Za-z0-9-]{10,}/g,
|
|
8
|
-
/\bgh[psoru]_[A-Za-z0-9]{20,}/g,
|
|
9
|
-
/\bAKIA[0-9A-Z]{16}\b/g,
|
|
10
|
-
/\b(?:password|passwd|secret|api[_-]?key|authorization|access[_-]?token|refresh[_-]?token|id[_-]?token|session[_-]?token|auth[_-]?token)\s*[:=]\s*\S+/gi,
|
|
11
|
-
];
|
|
12
|
-
function scrubSecretsInText(input) {
|
|
13
|
-
let out = input;
|
|
14
|
-
for (const pattern of SECRET_VALUE_PATTERNS) {
|
|
15
|
-
out = out.replace(pattern, '[REDACTED]');
|
|
16
|
-
}
|
|
17
|
-
return out;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=scrub-secrets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scrub-secrets.js","sourceRoot":"","sources":["../../src/utils/scrub-secrets.ts"],"names":[],"mappings":";;AA2BA,gDAMC;AArBD,MAAM,qBAAqB,GAAsB;IAEhD,sDAAsD;IAEtD,yCAAyC;IAEzC,kCAAkC;IAElC,+BAA+B;IAE/B,uBAAuB;IAEvB,wJAAwJ;CACxJ,CAAC;AAEF,SAAgB,kBAAkB,CAAC,KAAa;IAC/C,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,qBAAqB,EAAE,CAAC;QAC7C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"}
|