@strands-agents/sdk 1.15.0 → 1.16.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/src/agent/agent.d.ts +4 -0
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +56 -16
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/background-tasks/background-tasks.d.ts +41 -0
- package/dist/src/background-tasks/background-tasks.d.ts.map +1 -0
- package/dist/src/background-tasks/background-tasks.js +402 -0
- package/dist/src/background-tasks/background-tasks.js.map +1 -0
- package/dist/src/background-tasks/errors.d.ts +7 -0
- package/dist/src/background-tasks/errors.d.ts.map +1 -1
- package/dist/src/background-tasks/errors.js +10 -0
- package/dist/src/background-tasks/errors.js.map +1 -1
- package/dist/src/background-tasks/in-process/engine.d.ts +3 -4
- package/dist/src/background-tasks/in-process/engine.d.ts.map +1 -1
- package/dist/src/background-tasks/in-process/engine.js +9 -25
- package/dist/src/background-tasks/in-process/engine.js.map +1 -1
- package/dist/src/background-tasks/in-process/manager.d.ts +41 -0
- package/dist/src/background-tasks/in-process/manager.d.ts.map +1 -0
- package/dist/src/background-tasks/in-process/manager.js +214 -0
- package/dist/src/background-tasks/in-process/manager.js.map +1 -0
- package/dist/src/background-tasks/in-process/types.d.ts +9 -14
- package/dist/src/background-tasks/in-process/types.d.ts.map +1 -1
- package/dist/src/background-tasks/manager.d.ts +59 -0
- package/dist/src/background-tasks/manager.d.ts.map +1 -0
- package/dist/src/background-tasks/manager.js +2 -0
- package/dist/src/background-tasks/manager.js.map +1 -0
- package/dist/src/background-tasks/timer.d.ts +3 -0
- package/dist/src/background-tasks/timer.d.ts.map +1 -0
- package/dist/src/background-tasks/timer.js +11 -0
- package/dist/src/background-tasks/timer.js.map +1 -0
- package/dist/src/background-tasks/types.d.ts +60 -0
- package/dist/src/background-tasks/types.d.ts.map +1 -0
- package/dist/src/background-tasks/types.js +11 -0
- package/dist/src/background-tasks/types.js.map +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/storage/local-file-storage.d.ts +4 -6
- package/dist/src/storage/local-file-storage.d.ts.map +1 -1
- package/dist/src/storage/local-file-storage.js +12 -10
- package/dist/src/storage/local-file-storage.js.map +1 -1
- package/dist/src/storage/search/keyword.d.ts +1 -0
- package/dist/src/storage/search/keyword.d.ts.map +1 -1
- package/dist/src/storage/search/keyword.js +124 -0
- package/dist/src/storage/search/keyword.js.map +1 -1
- package/dist/src/storage/search/qmd.d.ts +66 -0
- package/dist/src/storage/search/qmd.d.ts.map +1 -0
- package/dist/src/storage/search/qmd.js +124 -0
- package/dist/src/storage/search/qmd.js.map +1 -0
- package/dist/src/tools/executors/executor.d.ts +11 -1
- package/dist/src/tools/executors/executor.d.ts.map +1 -1
- package/dist/src/tools/executors/executor.js +50 -16
- package/dist/src/tools/executors/executor.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/vended-memory-stores/file-memory-store/store.d.ts +9 -0
- package/dist/src/vended-memory-stores/file-memory-store/store.d.ts.map +1 -1
- package/dist/src/vended-memory-stores/file-memory-store/store.js +18 -13
- package/dist/src/vended-memory-stores/file-memory-store/store.js.map +1 -1
- package/dist/src/vended-tools/file-editor/file-editor.js +35 -30
- package/dist/src/vended-tools/file-editor/file-editor.js.map +1 -1
- package/package.json +14 -1
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { continuations } from '../agent/continuation.js';
|
|
3
|
+
import { AgentAsTool } from '../agent/agent-as-tool.js';
|
|
4
|
+
import { AfterInvocationEvent, BeforeModelCallEvent, InitializedEvent } from '../hooks/events.js';
|
|
5
|
+
import { HookOrder } from '../hooks/types.js';
|
|
6
|
+
import { InterruptError } from '../interrupt.js';
|
|
7
|
+
import { logger } from '../logging/logger.js';
|
|
8
|
+
import { InvokeModelStage } from '../middleware/index.js';
|
|
9
|
+
import { STRUCTURED_OUTPUT_TOOL_NAME } from '../tools/structured-output-tool.js';
|
|
10
|
+
import { tool } from '../tools/tool-factory.js';
|
|
11
|
+
import { Message, TextBlock, ToolResultBlock, ToolUseBlock, toolResultContentFromData } from '../types/messages.js';
|
|
12
|
+
import { BackgroundTaskNotFoundError } from './errors.js';
|
|
13
|
+
import { InProcessTaskManager } from './in-process/manager.js';
|
|
14
|
+
import { isTaskStatusTerminal } from './types.js';
|
|
15
|
+
const BACKGROUND_TASKS_STATE_KEY = 'strands.backgroundTasks';
|
|
16
|
+
const BACKGROUND_PROPERTY = '_background_execution';
|
|
17
|
+
const MANAGE_TOOL_NAME = 'strands_manage_background_task';
|
|
18
|
+
const COMPOSITE_SCHEMA_KEYS = ['$ref', 'allOf', 'anyOf', 'oneOf', 'not', 'if', 'then', 'else'];
|
|
19
|
+
const FOREGROUND_TOOL_NAMES = new Set([
|
|
20
|
+
MANAGE_TOOL_NAME,
|
|
21
|
+
STRUCTURED_OUTPUT_TOOL_NAME,
|
|
22
|
+
'summarize_context',
|
|
23
|
+
'truncate_context',
|
|
24
|
+
'pin_context',
|
|
25
|
+
]);
|
|
26
|
+
/** @internal */
|
|
27
|
+
export class BackgroundTasks {
|
|
28
|
+
name = 'strands:background-tasks';
|
|
29
|
+
_config;
|
|
30
|
+
_executeTool;
|
|
31
|
+
_policy;
|
|
32
|
+
_manageTool;
|
|
33
|
+
_tasks = new Map();
|
|
34
|
+
_agent;
|
|
35
|
+
_manager;
|
|
36
|
+
constructor(config, executeTool) {
|
|
37
|
+
this._config = config;
|
|
38
|
+
this._executeTool = executeTool;
|
|
39
|
+
this._policy = resolvePolicy(config);
|
|
40
|
+
this._manageTool = tool({
|
|
41
|
+
name: MANAGE_TOOL_NAME,
|
|
42
|
+
description: 'List, inspect, or cancel background tasks. Completed results are delivered automatically; do not poll with this tool.',
|
|
43
|
+
inputSchema: z.object({
|
|
44
|
+
mode: z.enum(['list', 'get', 'cancel']).describe('Whether to list, inspect, or cancel background tasks.'),
|
|
45
|
+
taskId: z
|
|
46
|
+
.string()
|
|
47
|
+
.min(1)
|
|
48
|
+
.optional()
|
|
49
|
+
.describe('The background task ID returned when the task was dispatched. Required for get and cancel.'),
|
|
50
|
+
}),
|
|
51
|
+
callback: async ({ mode, taskId }) => {
|
|
52
|
+
if (mode === 'list') {
|
|
53
|
+
return {
|
|
54
|
+
tasks: [...this._tasks.values()].map(({ taskId, toolName, status }) => ({ taskId, toolName, status })),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
if (!taskId)
|
|
58
|
+
throw new TypeError(`Task ID is required for mode '${mode}'`);
|
|
59
|
+
const task = this._tasks.get(taskId);
|
|
60
|
+
if (!task)
|
|
61
|
+
throw new BackgroundTaskNotFoundError(taskId);
|
|
62
|
+
if (mode === 'get')
|
|
63
|
+
return task;
|
|
64
|
+
const cancelled = isTaskStatusTerminal(task.status) ? task : await this._manager.cancel(taskId);
|
|
65
|
+
return { taskId: cancelled.taskId, status: cancelled.status };
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
getTools() {
|
|
70
|
+
return [this._manageTool];
|
|
71
|
+
}
|
|
72
|
+
initAgent(agent) {
|
|
73
|
+
this._agent = agent;
|
|
74
|
+
for (const tool of agent.toolRegistry.list()) {
|
|
75
|
+
const policy = this._policyFor(tool);
|
|
76
|
+
if (!policy?.exact || policy.mode === 'never')
|
|
77
|
+
continue;
|
|
78
|
+
const toolName = tool.name;
|
|
79
|
+
if (!canExecuteInBackground(tool))
|
|
80
|
+
throw new TypeError(`Tool '${toolName}' cannot run in the background`);
|
|
81
|
+
if (policy.mode === 'agentic' && !canSelectBackground(tool)) {
|
|
82
|
+
throw new TypeError(`Tool '${toolName}' cannot use agentic background selection`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
this._manager = new InProcessTaskManager(this._agent, this._executeTool, {
|
|
86
|
+
...(this._config.maxConcurrency !== undefined && { maxConcurrency: this._config.maxConcurrency }),
|
|
87
|
+
...(this._config.timeout !== undefined && { timeout: this._config.timeout }),
|
|
88
|
+
onTaskUpdated: (task) => {
|
|
89
|
+
this._tasks.set(task.taskId, task);
|
|
90
|
+
this._persistTasks();
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
agent.addMiddleware(InvokeModelStage.Input, async (context) => ({
|
|
94
|
+
...context,
|
|
95
|
+
toolSpecs: context.toolSpecs.map((spec) => {
|
|
96
|
+
const tool = agent.toolRegistry.get(spec.name);
|
|
97
|
+
const policy = this._policyFor(tool);
|
|
98
|
+
if (policy?.mode !== 'agentic')
|
|
99
|
+
return spec;
|
|
100
|
+
if (!canExecuteInBackground(tool)) {
|
|
101
|
+
if (policy.exact)
|
|
102
|
+
throw new TypeError(`Tool '${spec.name}' cannot use agentic background selection`);
|
|
103
|
+
return spec;
|
|
104
|
+
}
|
|
105
|
+
const transformed = addBackgroundSelection(spec);
|
|
106
|
+
if (!transformed && policy.exact) {
|
|
107
|
+
throw new TypeError(`Tool '${spec.name}' cannot use agentic background selection`);
|
|
108
|
+
}
|
|
109
|
+
return transformed ?? spec;
|
|
110
|
+
}),
|
|
111
|
+
}));
|
|
112
|
+
agent.addHook(BeforeModelCallEvent, (event) => this._beforeModelCall(event));
|
|
113
|
+
agent.addHook(AfterInvocationEvent, (event) => this._afterInvocation(event));
|
|
114
|
+
agent.addHook(InitializedEvent, () => this._loadAppState(), { order: HookOrder.SDK_LAST });
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Decides foreground vs background. Strips `_background_execution` from
|
|
118
|
+
* `toolUse.input` so the real tool never sees the selection flag.
|
|
119
|
+
*
|
|
120
|
+
* @returns `true` to submit as background, a `ToolResultBlock` admission
|
|
121
|
+
* error, or `undefined` to run in the foreground.
|
|
122
|
+
*/
|
|
123
|
+
routeToolCall(toolUse, requestedTool, effectiveTool) {
|
|
124
|
+
let selected = false;
|
|
125
|
+
if (toolUse.input !== null &&
|
|
126
|
+
typeof toolUse.input === 'object' &&
|
|
127
|
+
!Array.isArray(toolUse.input) &&
|
|
128
|
+
BACKGROUND_PROPERTY in toolUse.input) {
|
|
129
|
+
const { [BACKGROUND_PROPERTY]: value, ...input } = toolUse.input;
|
|
130
|
+
if (typeof value !== 'boolean') {
|
|
131
|
+
return toolError(toolUse.toolUseId, `'${BACKGROUND_PROPERTY}' must be a boolean`);
|
|
132
|
+
}
|
|
133
|
+
if (this._policyFor(requestedTool)?.mode === 'agentic')
|
|
134
|
+
selected = value;
|
|
135
|
+
toolUse.input = input;
|
|
136
|
+
}
|
|
137
|
+
const policy = this._policyFor(effectiveTool);
|
|
138
|
+
if (!policy || policy.mode === 'never')
|
|
139
|
+
return;
|
|
140
|
+
if (!canExecuteInBackground(effectiveTool)) {
|
|
141
|
+
return policy.exact
|
|
142
|
+
? toolError(toolUse.toolUseId, `Tool '${toolUse.name}' cannot run in the background`)
|
|
143
|
+
: undefined;
|
|
144
|
+
}
|
|
145
|
+
if (policy.mode === 'agentic' && !canSelectBackground(effectiveTool)) {
|
|
146
|
+
return policy.exact
|
|
147
|
+
? toolError(toolUse.toolUseId, `Tool '${toolUse.name}' cannot use agentic background selection`)
|
|
148
|
+
: undefined;
|
|
149
|
+
}
|
|
150
|
+
return policy.mode === 'always' || selected ? true : undefined;
|
|
151
|
+
}
|
|
152
|
+
async submitToolCall(toolUse, invocationState, passId, tool) {
|
|
153
|
+
if (this._agent.cancelSignal.aborted)
|
|
154
|
+
return toolError(toolUse.toolUseId, 'Tool execution cancelled');
|
|
155
|
+
try {
|
|
156
|
+
const task = await this._manager.submit(toolUse, invocationState, passId, tool);
|
|
157
|
+
return new ToolResultBlock({
|
|
158
|
+
toolUseId: toolUse.toolUseId,
|
|
159
|
+
status: 'success',
|
|
160
|
+
content: [
|
|
161
|
+
new TextBlock([
|
|
162
|
+
'Background task dispatched.',
|
|
163
|
+
'',
|
|
164
|
+
`Task ID: ${task.taskId}`,
|
|
165
|
+
`Tool: ${task.toolName}`,
|
|
166
|
+
`Status: ${task.status}`,
|
|
167
|
+
'',
|
|
168
|
+
'The task is running in the background. Continue without waiting or polling.',
|
|
169
|
+
'The final result will be delivered automatically when the task completes.',
|
|
170
|
+
].join('\n')),
|
|
171
|
+
],
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
logger.warn(`error=<${error}> | background task admission failed`);
|
|
176
|
+
return toolError(toolUse.toolUseId, 'Background task admission failed');
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
assertToolCanRun(tool) {
|
|
180
|
+
const policy = this._policyFor(tool);
|
|
181
|
+
if (!canExecuteInBackground(tool) || !policy || policy.mode === 'never') {
|
|
182
|
+
throw new Error('Tool cannot run in the background');
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
assertCanLoadSnapshot() {
|
|
186
|
+
if (this._manager.hasTasks()) {
|
|
187
|
+
throw new Error('Cannot load a snapshot while background tasks are still tracked');
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
async _beforeModelCall(event) {
|
|
191
|
+
const interruptState = this._agent._interruptState;
|
|
192
|
+
const responses = interruptState.resumeResponses;
|
|
193
|
+
if (responses) {
|
|
194
|
+
const inputTasks = (await this._manager.list()).filter((task) => task.status === 'input_required');
|
|
195
|
+
const taskInterruptIds = new Set(inputTasks.flatMap((task) => task.interrupts?.map((interrupt) => interrupt.id) ?? []));
|
|
196
|
+
for (const task of inputTasks) {
|
|
197
|
+
const interruptIds = new Set(task.interrupts?.map((interrupt) => interrupt.id));
|
|
198
|
+
const taskResponses = responses
|
|
199
|
+
.map((content) => content.interruptResponse)
|
|
200
|
+
.filter((response) => interruptIds.has(response.interruptId));
|
|
201
|
+
if (taskResponses.length > 0)
|
|
202
|
+
await this._manager.resume(task.taskId, taskResponses);
|
|
203
|
+
}
|
|
204
|
+
if (Object.keys(interruptState.interrupts).every((id) => taskInterruptIds.has(id))) {
|
|
205
|
+
interruptState.deactivate();
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
const tasks = [...this._tasks.values()];
|
|
209
|
+
const interrupts = tasks.flatMap((task) => (task.status === 'input_required' ? (task.interrupts ?? []) : []));
|
|
210
|
+
if (interrupts.length > 0)
|
|
211
|
+
throw new InterruptError([...interrupts]);
|
|
212
|
+
this._deliverReady(event, tasks);
|
|
213
|
+
}
|
|
214
|
+
async _afterInvocation(event) {
|
|
215
|
+
const agent = event.agent;
|
|
216
|
+
if (agent._interruptState.activated)
|
|
217
|
+
return;
|
|
218
|
+
let tasks = [...this._tasks.values()];
|
|
219
|
+
while (this._config.waitForCompletion !== false &&
|
|
220
|
+
!agent.cancelSignal.aborted &&
|
|
221
|
+
!tasks.some((task) => task.status === 'input_required') &&
|
|
222
|
+
tasks.some((task) => !isTaskStatusTerminal(task.status))) {
|
|
223
|
+
await this._awaitNextSettlement(tasks, agent.cancelSignal);
|
|
224
|
+
tasks = [...this._tasks.values()];
|
|
225
|
+
}
|
|
226
|
+
if (tasks.some((task) => task.status === 'input_required')) {
|
|
227
|
+
event.resume ??= [];
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
this._deliverReady(event, tasks);
|
|
231
|
+
}
|
|
232
|
+
/** Races pending-task settlement against invocation cancellation. */
|
|
233
|
+
async _awaitNextSettlement(tasks, cancelSignal) {
|
|
234
|
+
let abort;
|
|
235
|
+
const cancelled = new Promise((resolve) => {
|
|
236
|
+
abort = resolve;
|
|
237
|
+
if (cancelSignal.aborted) {
|
|
238
|
+
resolve();
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
cancelSignal.addEventListener('abort', abort, { once: true });
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
try {
|
|
245
|
+
await Promise.race([
|
|
246
|
+
cancelled,
|
|
247
|
+
...tasks.filter((task) => !isTaskStatusTerminal(task.status)).map((task) => this._manager.wait(task.taskId)),
|
|
248
|
+
]);
|
|
249
|
+
}
|
|
250
|
+
finally {
|
|
251
|
+
cancelSignal.removeEventListener('abort', abort);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
_deliverReady(event, tasks) {
|
|
255
|
+
const terminalTasks = tasks.filter((task) => isTaskStatusTerminal(task.status));
|
|
256
|
+
if (terminalTasks.length === 0)
|
|
257
|
+
return;
|
|
258
|
+
const taskIds = terminalTasks.map((task) => task.taskId);
|
|
259
|
+
continuations.addInput(event, {
|
|
260
|
+
args: terminalTasks.flatMap((task) => {
|
|
261
|
+
const content = task.result?.content.map(toolResultContentFromData) ?? [
|
|
262
|
+
new TextBlock(task.error?.message ?? 'Background task cancelled'),
|
|
263
|
+
];
|
|
264
|
+
return [
|
|
265
|
+
new Message({
|
|
266
|
+
role: 'assistant',
|
|
267
|
+
content: [
|
|
268
|
+
new ToolUseBlock({
|
|
269
|
+
name: 'strands_background_task_result',
|
|
270
|
+
toolUseId: task.taskId,
|
|
271
|
+
input: { toolName: task.toolName },
|
|
272
|
+
}),
|
|
273
|
+
],
|
|
274
|
+
}),
|
|
275
|
+
new Message({
|
|
276
|
+
role: 'user',
|
|
277
|
+
content: [
|
|
278
|
+
new ToolResultBlock({
|
|
279
|
+
toolUseId: task.taskId,
|
|
280
|
+
status: task.status === 'completed' ? 'success' : 'error',
|
|
281
|
+
content,
|
|
282
|
+
}),
|
|
283
|
+
],
|
|
284
|
+
}),
|
|
285
|
+
];
|
|
286
|
+
}),
|
|
287
|
+
onAppended: async () => {
|
|
288
|
+
const liveTaskIds = new Set((await this._manager.list()).map((task) => task.taskId));
|
|
289
|
+
const managerTaskIds = taskIds.filter((taskId) => liveTaskIds.has(taskId));
|
|
290
|
+
await this._manager.remove(managerTaskIds);
|
|
291
|
+
for (const taskId of taskIds)
|
|
292
|
+
this._tasks.delete(taskId);
|
|
293
|
+
this._persistTasks();
|
|
294
|
+
},
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
_loadAppState() {
|
|
298
|
+
this._tasks.clear();
|
|
299
|
+
const storedTasks = this._agent.appState.get(BACKGROUND_TASKS_STATE_KEY) ?? [];
|
|
300
|
+
const recoveredInterruptIds = new Set();
|
|
301
|
+
for (const task of storedTasks) {
|
|
302
|
+
if (!isTaskStatusTerminal(task.status)) {
|
|
303
|
+
for (const interrupt of task.interrupts ?? [])
|
|
304
|
+
recoveredInterruptIds.add(interrupt.id);
|
|
305
|
+
}
|
|
306
|
+
this._tasks.set(task.taskId, recoverTask(task));
|
|
307
|
+
}
|
|
308
|
+
for (const interruptId of recoveredInterruptIds)
|
|
309
|
+
delete this._agent._interruptState.interrupts[interruptId];
|
|
310
|
+
if (this._agent._interruptState.activated && this._agent._interruptState.getInterruptsList().length === 0) {
|
|
311
|
+
this._agent._interruptState.deactivate();
|
|
312
|
+
}
|
|
313
|
+
this._persistTasks();
|
|
314
|
+
}
|
|
315
|
+
_persistTasks() {
|
|
316
|
+
if (this._tasks.size === 0) {
|
|
317
|
+
this._agent.appState.delete(BACKGROUND_TASKS_STATE_KEY);
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
this._agent.appState.set(BACKGROUND_TASKS_STATE_KEY, [...this._tasks.values()]);
|
|
321
|
+
}
|
|
322
|
+
_policyFor(tool) {
|
|
323
|
+
if (!tool)
|
|
324
|
+
return undefined;
|
|
325
|
+
const exact = this._policy.get(tool.name);
|
|
326
|
+
if (exact)
|
|
327
|
+
return { mode: exact, exact: true };
|
|
328
|
+
const wildcard = this._policy.get('*');
|
|
329
|
+
return wildcard ? { mode: wildcard, exact: false } : undefined;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
function toolError(toolUseId, message) {
|
|
333
|
+
return new ToolResultBlock({
|
|
334
|
+
toolUseId,
|
|
335
|
+
status: 'error',
|
|
336
|
+
content: [new TextBlock(message)],
|
|
337
|
+
error: new Error(message),
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
function canExecuteInBackground(tool) {
|
|
341
|
+
return tool !== undefined && !FOREGROUND_TOOL_NAMES.has(tool.name) && !(tool instanceof AgentAsTool && tool.delegate);
|
|
342
|
+
}
|
|
343
|
+
function canSelectBackground(tool) {
|
|
344
|
+
return addBackgroundSelection(tool.toolSpec) !== undefined;
|
|
345
|
+
}
|
|
346
|
+
function addBackgroundSelection(toolSpec) {
|
|
347
|
+
const schema = toolSpec.inputSchema ?? {};
|
|
348
|
+
if (COMPOSITE_SCHEMA_KEYS.some((key) => schema[key] !== undefined) ||
|
|
349
|
+
(schema.type !== undefined && schema.type !== 'object') ||
|
|
350
|
+
(schema.properties !== undefined && (typeof schema.properties !== 'object' || Array.isArray(schema.properties))) ||
|
|
351
|
+
schema.properties?.[BACKGROUND_PROPERTY] !== undefined ||
|
|
352
|
+
schema.required?.includes(BACKGROUND_PROPERTY)) {
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
return {
|
|
356
|
+
...toolSpec,
|
|
357
|
+
inputSchema: {
|
|
358
|
+
...schema,
|
|
359
|
+
type: 'object',
|
|
360
|
+
properties: {
|
|
361
|
+
...schema.properties,
|
|
362
|
+
[BACKGROUND_PROPERTY]: {
|
|
363
|
+
type: 'boolean',
|
|
364
|
+
description: 'Run this tool in the background and continue without waiting for its result.',
|
|
365
|
+
},
|
|
366
|
+
},
|
|
367
|
+
},
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
function resolvePolicy(config) {
|
|
371
|
+
const hasExplicitWildcard = config.always?.includes('*') || config.never?.includes('*');
|
|
372
|
+
const assignments = [
|
|
373
|
+
['agentic', config.agentic ?? (hasExplicitWildcard ? [] : ['*'])],
|
|
374
|
+
['always', config.always ?? []],
|
|
375
|
+
['never', config.never ?? []],
|
|
376
|
+
];
|
|
377
|
+
const policy = new Map();
|
|
378
|
+
for (const [mode, selectors] of assignments) {
|
|
379
|
+
for (const selector of selectors) {
|
|
380
|
+
const name = typeof selector === 'string' ? selector : selector.name;
|
|
381
|
+
const existing = policy.get(name);
|
|
382
|
+
if (existing && existing !== mode) {
|
|
383
|
+
throw new TypeError(`Tool '${name}' cannot be configured as both '${existing}' and '${mode}'`);
|
|
384
|
+
}
|
|
385
|
+
policy.set(name, mode);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
return policy;
|
|
389
|
+
}
|
|
390
|
+
function recoverTask(task) {
|
|
391
|
+
if (!isTaskStatusTerminal(task.status)) {
|
|
392
|
+
const { interrupts: _interrupts, ...persisted } = task;
|
|
393
|
+
return {
|
|
394
|
+
...persisted,
|
|
395
|
+
status: 'failed',
|
|
396
|
+
lastUpdatedAt: new Date().toISOString(),
|
|
397
|
+
error: { type: 'executionError', message: 'Background task cannot resume after restoring persisted state' },
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
return task;
|
|
401
|
+
}
|
|
402
|
+
//# sourceMappingURL=background-tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"background-tasks.js","sourceRoot":"","sources":["../../../src/background-tasks/background-tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,4 +5,11 @@ export declare class BackgroundTaskNotFoundError extends Error {
|
|
|
5
5
|
*/
|
|
6
6
|
constructor(taskId: string);
|
|
7
7
|
}
|
|
8
|
+
/** Raised when waiting for background tasks exceeds the configured timeout. @internal */
|
|
9
|
+
export declare class BackgroundTaskTimeoutError extends Error {
|
|
10
|
+
/**
|
|
11
|
+
* @param timeout - Wait timeout in milliseconds.
|
|
12
|
+
*/
|
|
13
|
+
constructor(timeout: number);
|
|
14
|
+
}
|
|
8
15
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/background-tasks/errors.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,qBAAa,2BAA4B,SAAQ,KAAK;IACpD;;OAEG;gBACS,MAAM,EAAE,MAAM;CAI3B"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/background-tasks/errors.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,qBAAa,2BAA4B,SAAQ,KAAK;IACpD;;OAEG;gBACS,MAAM,EAAE,MAAM;CAI3B;AAED,yFAAyF;AACzF,qBAAa,0BAA2B,SAAQ,KAAK;IACnD;;OAEG;gBACS,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -8,4 +8,14 @@ export class BackgroundTaskNotFoundError extends Error {
|
|
|
8
8
|
this.name = 'BackgroundTaskNotFoundError';
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
+
/** Raised when waiting for background tasks exceeds the configured timeout. @internal */
|
|
12
|
+
export class BackgroundTaskTimeoutError extends Error {
|
|
13
|
+
/**
|
|
14
|
+
* @param timeout - Wait timeout in milliseconds.
|
|
15
|
+
*/
|
|
16
|
+
constructor(timeout) {
|
|
17
|
+
super(`Timed out waiting for background tasks after ${timeout}ms`);
|
|
18
|
+
this.name = 'BackgroundTaskTimeoutError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
11
21
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/background-tasks/errors.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD;;OAEG;IACH,YAAY,MAAc;QACxB,KAAK,CAAC,oBAAoB,MAAM,iBAAiB,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAA;IAC3C,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/background-tasks/errors.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD;;OAEG;IACH,YAAY,MAAc;QACxB,KAAK,CAAC,oBAAoB,MAAM,iBAAiB,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAA;IAC3C,CAAC;CACF;AAED,yFAAyF;AACzF,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD;;OAEG;IACH,YAAY,OAAe;QACzB,KAAK,CAAC,gDAAgD,OAAO,IAAI,CAAC,CAAA;QAClE,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAA;IAC1C,CAAC;CACF"}
|
|
@@ -15,16 +15,15 @@ export declare class InProcessTaskEngine {
|
|
|
15
15
|
*/
|
|
16
16
|
constructor(options: InProcessTaskEngineOptions);
|
|
17
17
|
/**
|
|
18
|
-
* Submits a task for execution
|
|
18
|
+
* Submits a task for execution.
|
|
19
19
|
*
|
|
20
|
-
* @param admission - Tool execution details
|
|
21
|
-
* @returns A snapshot of the admitted
|
|
20
|
+
* @param admission - Tool execution details.
|
|
21
|
+
* @returns A snapshot of the admitted task.
|
|
22
22
|
*/
|
|
23
23
|
submit(admission: {
|
|
24
24
|
readonly toolUseId: string;
|
|
25
25
|
readonly toolName: string;
|
|
26
26
|
readonly invocationStateId: string;
|
|
27
|
-
readonly idempotencyKey?: string;
|
|
28
27
|
}): InProcessTaskRecord;
|
|
29
28
|
/**
|
|
30
29
|
* Gets a task by ID.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../src/background-tasks/in-process/engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../src/background-tasks/in-process/engine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,OAAO,KAAK,EAAE,0BAA0B,EAAiC,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAShH,0DAA0D;AAC1D,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqC;IACvE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAErD;;;;;OAKG;gBACS,OAAO,EAAE,0BAA0B;IAQ/C;;;;;OAKG;IACH,MAAM,CAAC,SAAS,EAAE;QAChB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;KACnC,GAAG,mBAAmB;IAevB;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAKpD;;;;OAIG;IACH,IAAI,IAAI,SAAS,mBAAmB,EAAE;IAItC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,mBAAmB;IAkBjF;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnF;;;;;;;;;;;OAWG;IACH,MAAM,CACJ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK;QACrC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;QAClC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KACxB,GACA,mBAAmB;IAmBtB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,iBAAiB;YAsBX,QAAQ;IAmCtB,OAAO,CAAC,cAAc;IAgCtB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,gBAAgB;CAIzB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { normalizeError } from '../../errors.js';
|
|
2
2
|
import { BackgroundTaskNotFoundError } from '../errors.js';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { assertTimerDelay } from '../timer.js';
|
|
4
|
+
import { isTaskStatusTerminal } from '../types.js';
|
|
5
5
|
const DEFAULT_EXECUTION_FAILURE_MESSAGE = 'Background task execution failed';
|
|
6
6
|
/** Runs and tracks bounded in-process tasks. @internal */
|
|
7
7
|
export class InProcessTaskEngine {
|
|
@@ -25,24 +25,19 @@ export class InProcessTaskEngine {
|
|
|
25
25
|
this._options = options;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
|
-
* Submits a task for execution
|
|
28
|
+
* Submits a task for execution.
|
|
29
29
|
*
|
|
30
|
-
* @param admission - Tool execution details
|
|
31
|
-
* @returns A snapshot of the admitted
|
|
30
|
+
* @param admission - Tool execution details.
|
|
31
|
+
* @returns A snapshot of the admitted task.
|
|
32
32
|
*/
|
|
33
33
|
submit(admission) {
|
|
34
|
-
if (admission.idempotencyKey !== undefined) {
|
|
35
|
-
const existing = [...this._tasks.values()].find((task) => task.idempotencyKey === admission.idempotencyKey);
|
|
36
|
-
if (existing)
|
|
37
|
-
return globalThis.structuredClone(existing);
|
|
38
|
-
}
|
|
39
34
|
const now = new Date().toISOString();
|
|
40
35
|
const stored = {
|
|
41
36
|
taskId: globalThis.crypto.randomUUID(),
|
|
42
37
|
...admission,
|
|
43
38
|
status: 'queued',
|
|
44
39
|
createdAt: now,
|
|
45
|
-
|
|
40
|
+
lastUpdatedAt: now,
|
|
46
41
|
};
|
|
47
42
|
this._tasks.set(stored.taskId, stored);
|
|
48
43
|
this._notifyTaskUpdated(stored);
|
|
@@ -75,7 +70,7 @@ export class InProcessTaskEngine {
|
|
|
75
70
|
*/
|
|
76
71
|
remove(taskId) {
|
|
77
72
|
const task = this._requireTask(taskId);
|
|
78
|
-
if (!
|
|
73
|
+
if (!isTaskStatusTerminal(task.status)) {
|
|
79
74
|
throw new Error(`Background task '${taskId}' cannot be removed before reaching a terminal status`);
|
|
80
75
|
}
|
|
81
76
|
this._tasks.delete(taskId);
|
|
@@ -90,7 +85,7 @@ export class InProcessTaskEngine {
|
|
|
90
85
|
*/
|
|
91
86
|
cancel(taskId, options) {
|
|
92
87
|
const current = this._requireTask(taskId);
|
|
93
|
-
if (
|
|
88
|
+
if (isTaskStatusTerminal(current.status))
|
|
94
89
|
return globalThis.structuredClone(current);
|
|
95
90
|
const task = this._updateTask(taskId, (record) => {
|
|
96
91
|
record.status = 'cancelled';
|
|
@@ -276,7 +271,7 @@ export class InProcessTaskEngine {
|
|
|
276
271
|
const next = globalThis.structuredClone(current);
|
|
277
272
|
if (!update(next))
|
|
278
273
|
return undefined;
|
|
279
|
-
next.
|
|
274
|
+
next.lastUpdatedAt = new Date().toISOString();
|
|
280
275
|
const stored = globalThis.structuredClone(next);
|
|
281
276
|
this._tasks.set(taskId, stored);
|
|
282
277
|
this._notifyTaskUpdated(stored);
|
|
@@ -300,14 +295,6 @@ export class InProcessTaskEngine {
|
|
|
300
295
|
this._idleWaiters.clear();
|
|
301
296
|
}
|
|
302
297
|
}
|
|
303
|
-
function assertTimerDelay(name, value) {
|
|
304
|
-
if (!Number.isSafeInteger(value) || value <= 0) {
|
|
305
|
-
throw new TypeError(`${name} must be a positive finite integer, got ${value}`);
|
|
306
|
-
}
|
|
307
|
-
if (value > MAX_TIMER_DELAY_MS) {
|
|
308
|
-
throw new TypeError(`${name} must be at most ${MAX_TIMER_DELAY_MS}ms, got ${value}`);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
298
|
function getExecutionFailureMessage(error) {
|
|
312
299
|
try {
|
|
313
300
|
return normalizeError(error).message || DEFAULT_EXECUTION_FAILURE_MESSAGE;
|
|
@@ -316,7 +303,4 @@ function getExecutionFailureMessage(error) {
|
|
|
316
303
|
return DEFAULT_EXECUTION_FAILURE_MESSAGE;
|
|
317
304
|
}
|
|
318
305
|
}
|
|
319
|
-
function isInProcessTaskTerminalStatus(status) {
|
|
320
|
-
return status === 'completed' || status === 'failed' || status === 'cancelled';
|
|
321
|
-
}
|
|
322
306
|
//# sourceMappingURL=engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/background-tasks/in-process/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/background-tasks/in-process/engine.ts"],"names":[],"mappings":"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"}
|