@namzu/sdk 3.3.0 → 4.0.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/CHANGELOG.md +250 -0
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js +52 -2
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/agents/__tests__/supervisor-coordinator-registration.test.d.ts +2 -0
- package/dist/agents/__tests__/supervisor-coordinator-registration.test.d.ts.map +1 -0
- package/dist/agents/__tests__/supervisor-coordinator-registration.test.js +122 -0
- package/dist/agents/__tests__/supervisor-coordinator-registration.test.js.map +1 -0
- package/dist/connector/mcp/__tests__/prompt-as-tool.test.js +1 -1
- package/dist/connector/mcp/__tests__/prompt-as-tool.test.js.map +1 -1
- package/dist/connector/mcp/prompt-adapter.d.ts.map +1 -1
- package/dist/connector/mcp/prompt-adapter.js +16 -9
- package/dist/connector/mcp/prompt-adapter.js.map +1 -1
- package/dist/public-runtime.d.ts +1 -1
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +1 -1
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +2 -0
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +3 -0
- package/dist/public-tools.js.map +1 -1
- package/dist/registry/index.d.ts +1 -1
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +1 -1
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/tool/execute.d.ts +15 -0
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +19 -0
- package/dist/registry/tool/execute.js.map +1 -1
- package/dist/sandbox/__tests__/exec-cancellation.test.d.ts +2 -0
- package/dist/sandbox/__tests__/exec-cancellation.test.d.ts.map +1 -0
- package/dist/sandbox/__tests__/exec-cancellation.test.js +59 -0
- package/dist/sandbox/__tests__/exec-cancellation.test.js.map +1 -0
- package/dist/sandbox/provider/local.d.ts.map +1 -1
- package/dist/sandbox/provider/local.js +30 -5
- package/dist/sandbox/provider/local.js.map +1 -1
- package/dist/session/workspace/shared-run.d.ts +31 -0
- package/dist/session/workspace/shared-run.d.ts.map +1 -1
- package/dist/session/workspace/shared-run.js +31 -0
- package/dist/session/workspace/shared-run.js.map +1 -1
- package/dist/tools/__tests__/file-tool-containment.test.d.ts +2 -0
- package/dist/tools/__tests__/file-tool-containment.test.d.ts.map +1 -0
- package/dist/tools/__tests__/file-tool-containment.test.js +134 -0
- package/dist/tools/__tests__/file-tool-containment.test.js.map +1 -0
- package/dist/tools/__tests__/sandboxed-search.test.js +51 -0
- package/dist/tools/__tests__/sandboxed-search.test.js.map +1 -1
- package/dist/tools/__tests__/untrusted-envelope.test.d.ts +2 -0
- package/dist/tools/__tests__/untrusted-envelope.test.d.ts.map +1 -0
- package/dist/tools/__tests__/untrusted-envelope.test.js +55 -0
- package/dist/tools/__tests__/untrusted-envelope.test.js.map +1 -0
- package/dist/tools/builtins/__tests__/edit-insert-reachable.test.d.ts +2 -0
- package/dist/tools/builtins/__tests__/edit-insert-reachable.test.d.ts.map +1 -0
- package/dist/tools/builtins/__tests__/edit-insert-reachable.test.js +114 -0
- package/dist/tools/builtins/__tests__/edit-insert-reachable.test.js.map +1 -0
- package/dist/tools/builtins/__tests__/edit.test.js +9 -2
- package/dist/tools/builtins/__tests__/edit.test.js.map +1 -1
- package/dist/tools/builtins/__tests__/write-file.test.js +59 -0
- package/dist/tools/builtins/__tests__/write-file.test.js.map +1 -1
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +66 -14
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/ls.d.ts +1 -1
- package/dist/tools/builtins/ls.d.ts.map +1 -1
- package/dist/tools/builtins/ls.js +95 -0
- package/dist/tools/builtins/ls.js.map +1 -1
- package/dist/tools/builtins/read-file.d.ts.map +1 -1
- package/dist/tools/builtins/read-file.js +3 -2
- package/dist/tools/builtins/read-file.js.map +1 -1
- package/dist/tools/builtins/write-file.d.ts.map +1 -1
- package/dist/tools/builtins/write-file.js +26 -12
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/coordinator/__tests__/agent.test.js +6 -1
- package/dist/tools/coordinator/__tests__/agent.test.js.map +1 -1
- package/dist/tools/coordinator/__tests__/ask-user-question.test.js +47 -0
- package/dist/tools/coordinator/__tests__/ask-user-question.test.js.map +1 -1
- package/dist/tools/coordinator/__tests__/empty-roster.test.d.ts +2 -0
- package/dist/tools/coordinator/__tests__/empty-roster.test.d.ts.map +1 -0
- package/dist/tools/coordinator/__tests__/empty-roster.test.js +97 -0
- package/dist/tools/coordinator/__tests__/empty-roster.test.js.map +1 -0
- package/dist/tools/coordinator/agent.d.ts +22 -8
- package/dist/tools/coordinator/agent.d.ts.map +1 -1
- package/dist/tools/coordinator/agent.js +45 -2
- package/dist/tools/coordinator/agent.js.map +1 -1
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +80 -3
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/paths.d.ts +40 -0
- package/dist/tools/paths.d.ts.map +1 -1
- package/dist/tools/paths.js +70 -1
- package/dist/tools/paths.js.map +1 -1
- package/dist/tools/untrusted-envelope.d.ts +55 -0
- package/dist/tools/untrusted-envelope.d.ts.map +1 -0
- package/dist/tools/untrusted-envelope.js +65 -0
- package/dist/tools/untrusted-envelope.js.map +1 -0
- package/dist/types/sandbox/index.d.ts +10 -0
- package/dist/types/sandbox/index.d.ts.map +1 -1
- package/dist/types/sandbox/index.js.map +1 -1
- package/dist/types/toolset/index.d.ts +0 -24
- package/dist/types/toolset/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/agents/SupervisorAgent.ts +51 -2
- package/src/agents/__tests__/supervisor-coordinator-registration.test.ts +148 -0
- package/src/connector/mcp/__tests__/prompt-as-tool.test.ts +1 -1
- package/src/connector/mcp/prompt-adapter.ts +19 -9
- package/src/public-runtime.ts +1 -0
- package/src/public-tools.ts +4 -0
- package/src/registry/index.ts +1 -1
- package/src/registry/tool/execute.ts +23 -0
- package/src/sandbox/__tests__/exec-cancellation.test.ts +72 -0
- package/src/sandbox/provider/local.ts +30 -4
- package/src/session/workspace/shared-run.ts +31 -0
- package/src/tools/__tests__/file-tool-containment.test.ts +190 -0
- package/src/tools/__tests__/sandboxed-search.test.ts +66 -0
- package/src/tools/__tests__/untrusted-envelope.test.ts +82 -0
- package/src/tools/builtins/__tests__/edit-insert-reachable.test.ts +166 -0
- package/src/tools/builtins/__tests__/edit.test.ts +10 -2
- package/src/tools/builtins/__tests__/write-file.test.ts +80 -0
- package/src/tools/builtins/edit.ts +69 -14
- package/src/tools/builtins/ls.ts +102 -0
- package/src/tools/builtins/read-file.ts +3 -2
- package/src/tools/builtins/write-file.ts +26 -12
- package/src/tools/coordinator/__tests__/agent.test.ts +6 -1
- package/src/tools/coordinator/__tests__/ask-user-question.test.ts +58 -0
- package/src/tools/coordinator/__tests__/empty-roster.test.ts +118 -0
- package/src/tools/coordinator/agent.ts +72 -11
- package/src/tools/coordinator/index.ts +86 -3
- package/src/tools/paths.ts +83 -1
- package/src/tools/untrusted-envelope.ts +78 -0
- package/src/types/sandbox/index.ts +10 -0
- package/src/types/toolset/index.ts +0 -25
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { access, mkdir } from 'node:fs/promises';
|
|
2
|
-
import { dirname
|
|
2
|
+
import { dirname } from 'node:path';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { defineTool } from '../defineTool.js';
|
|
5
|
+
import { resolveWithinReal } from '../paths.js';
|
|
5
6
|
import { atomicWriteFile } from './atomic-write-file.js';
|
|
6
7
|
import { withFileMutationLock } from './file-mutation-lock.js';
|
|
7
8
|
const inputSchema = z
|
|
@@ -9,6 +10,12 @@ const inputSchema = z
|
|
|
9
10
|
path: z
|
|
10
11
|
.string()
|
|
11
12
|
.min(1)
|
|
13
|
+
// `.min(1)` alone admits `" "`, which resolves to the working
|
|
14
|
+
// directory itself and turns a write into a directory-write error
|
|
15
|
+
// nobody can read. `edit` has refused this since it was written;
|
|
16
|
+
// the two tools disagreeing on the same input is the kind of gap a
|
|
17
|
+
// model finds and a reviewer does not.
|
|
18
|
+
.refine((value) => value.trim().length > 0, 'Path must not be empty.')
|
|
12
19
|
.describe('Relative path to the file to write (e.g. "outputs/report.md"). Required. Must be a non-empty string.'),
|
|
13
20
|
content: z
|
|
14
21
|
.string()
|
|
@@ -71,11 +78,17 @@ export const WriteFileTool = defineTool({
|
|
|
71
78
|
}
|
|
72
79
|
const valid = parsed.data;
|
|
73
80
|
const content = valid.content ?? valid.newStr ?? '';
|
|
74
|
-
|
|
81
|
+
// Host-side containment, on the host branch only. The sandbox has its
|
|
82
|
+
// own root and its own resolver; canonicalizing a sandbox-relative
|
|
83
|
+
// path against the HOST filesystem asks a question about the wrong
|
|
84
|
+
// machine and answers it with whatever happens to exist there.
|
|
85
|
+
const filePath = context.sandbox
|
|
86
|
+
? undefined
|
|
87
|
+
: await resolveWithinReal(context.workingDirectory, valid.path);
|
|
75
88
|
// The exists-check and the write are a check-then-act pair. Unlocked,
|
|
76
89
|
// two writers both see "absent", both skip the read-before-overwrite
|
|
77
90
|
// guard, and the second silently discards the first.
|
|
78
|
-
const lockKey =
|
|
91
|
+
const lockKey = context.sandbox ? `sandbox:${valid.path}` : `local:${filePath}`;
|
|
79
92
|
return withFileMutationLock(lockKey, async () => {
|
|
80
93
|
if (context.sandbox) {
|
|
81
94
|
const sandboxExists = await sandboxFileExists(context, valid.path);
|
|
@@ -92,22 +105,23 @@ export const WriteFileTool = defineTool({
|
|
|
92
105
|
data: { path: valid.path, size: content.length, sandboxed: true },
|
|
93
106
|
};
|
|
94
107
|
}
|
|
95
|
-
const
|
|
108
|
+
const hostPath = filePath;
|
|
109
|
+
const localExists = await pathExists(hostPath);
|
|
96
110
|
if (localExists) {
|
|
97
|
-
const guard = enforceReadBeforeOverwrite(context,
|
|
111
|
+
const guard = enforceReadBeforeOverwrite(context, hostPath);
|
|
98
112
|
if (guard)
|
|
99
113
|
return guard;
|
|
100
114
|
}
|
|
101
|
-
await mkdir(dirname(
|
|
115
|
+
await mkdir(dirname(hostPath), { recursive: true });
|
|
102
116
|
// Temp file, fsync, rename. A plain write that fails partway
|
|
103
117
|
// leaves the destination truncated — and this tool overwrites a
|
|
104
118
|
// whole file, so the truncation is the user's previous work.
|
|
105
|
-
await atomicWriteFile(
|
|
106
|
-
context.fileReadTracker?.recordRead(
|
|
119
|
+
await atomicWriteFile(hostPath, content);
|
|
120
|
+
context.fileReadTracker?.recordRead(hostPath);
|
|
107
121
|
return {
|
|
108
122
|
success: true,
|
|
109
|
-
output: `File written successfully: ${
|
|
110
|
-
data: { path:
|
|
123
|
+
output: `File written successfully: ${hostPath} (${content.length} chars)`,
|
|
124
|
+
data: { path: hostPath, size: content.length },
|
|
111
125
|
};
|
|
112
126
|
});
|
|
113
127
|
},
|
|
@@ -123,9 +137,9 @@ function enforceReadBeforeOverwrite(context, key) {
|
|
|
123
137
|
error: `${key} already exists. Use the \`read\` tool on it first in this conversation, then call \`write\` again — or prefer \`edit\` for a targeted change.`,
|
|
124
138
|
};
|
|
125
139
|
}
|
|
126
|
-
async function pathExists(
|
|
140
|
+
async function pathExists(hostPath) {
|
|
127
141
|
try {
|
|
128
|
-
await access(
|
|
142
|
+
await access(hostPath);
|
|
129
143
|
return true;
|
|
130
144
|
}
|
|
131
145
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/builtins/write-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/builtins/write-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE9D,MAAM,WAAW,GAAG,CAAC;KACnB,MAAM,CAAC;IACP,IAAI,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;QACP,gEAAgE;QAChE,kEAAkE;QAClE,iEAAiE;QACjE,mEAAmE;QACnE,uCAAuC;SACtC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,yBAAyB,CAAC;SACrE,QAAQ,CACR,sGAAsG,CACtG;IACF,OAAO,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACR,4dAA4d,CAC5d;IACF,MAAM,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACR,oJAAoJ,CACpJ;CACF,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE;IACzF,OAAO,EAAE,uCAAuC;CAChD,CAAC,CAAA;AAIH;;;;;;GAMG;AACH,MAAM,gBAAgB,GAA4B;IACjD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,IAAI,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,wDAAwD;SACrE;QACD,OAAO,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,WAAW,EACV,+FAA+F;SAChG;KACD;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;IAC7B,oBAAoB,EAAE,KAAK;CAC3B,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;IACvC,IAAI,EAAE,OAAO;IACb,WAAW,EACV,suBAAsuB;IACvuB,WAAW;IACX,gBAAgB;IAChB,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAClB,qGAAqG;IACtG,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,CAAC,YAAY,CAAC;IAC3B,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,KAAK;IAEtB,KAAK,CAAC,OAAO,CAAC,KAAiB,EAAE,OAAO;QACvC,oEAAoE;QACpE,mEAAmE;QACnE,iBAAiB;QACjB,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,wBAAwB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC7F,CAAA;QACF,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAA;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;QACnD,sEAAsE;QACtE,mEAAmE;QACnE,mEAAmE;QACnE,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO;YAC/B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAM,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAChE,sEAAsE;QACtE,qEAAqE;QACrE,qDAAqD;QACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,QAAkB,EAAE,CAAA;QAEzF,OAAO,oBAAoB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YAC/C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;gBAClE,IAAI,aAAa,EAAE,CAAC;oBACnB,MAAM,KAAK,GAAG,0BAA0B,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;oBAC7D,IAAI,KAAK;wBAAE,OAAO,KAAK,CAAA;gBACxB,CAAC;gBACD,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;gBACpD,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC/C,OAAO;oBACN,OAAO,EAAE,IAAa;oBACtB,MAAM,EAAE,8BAA8B,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,qBAAqB;oBACxF,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE;iBACjE,CAAA;YACF,CAAC;YAED,MAAM,QAAQ,GAAG,QAAkB,CAAA;YACnC,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAA;YAC9C,IAAI,WAAW,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;gBAC3D,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAA;YACxB,CAAC;YAED,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACnD,6DAA6D;YAC7D,gEAAgE;YAChE,6DAA6D;YAC7D,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACxC,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;YAE7C,OAAO;gBACN,OAAO,EAAE,IAAa;gBACtB,MAAM,EAAE,8BAA8B,QAAQ,KAAK,OAAO,CAAC,MAAM,SAAS;gBAC1E,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE;aAC9C,CAAA;QACF,CAAC,CAAC,CAAA;IACH,CAAC;CACD,CAAC,CAAA;AAEF,SAAS,0BAA0B,CAClC,OAAoB,EACpB,GAAW;IAEX,IAAI,CAAC,OAAO,CAAC,eAAe;QAAE,OAAO,IAAI,CAAA;IACzC,IAAI,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACrD,OAAO;QACN,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,GAAG,GAAG,gJAAgJ;KAC7J,CAAA;AACF,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI,CAAC;QACJ,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;QACtB,OAAO,IAAI,CAAA;IACZ,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAA;IACb,CAAC;AACF,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAoB,EAAE,IAAY;IAClE,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAClC,IAAI,CAAC;QACJ,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACpC,OAAO,IAAI,CAAA;IACZ,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAA;IACb,CAAC;AACF,CAAC"}
|
|
@@ -74,7 +74,12 @@ describe('buildAgentTool', () => {
|
|
|
74
74
|
});
|
|
75
75
|
const result = await tool.execute({ description: 'plan', prompt: 'go', subagent_type: 'sales-strategy' }, makeContext());
|
|
76
76
|
expect(result.success).toBe(true);
|
|
77
|
-
|
|
77
|
+
// The subagent's text is present and unaltered, inside a frame that
|
|
78
|
+
// says whose text it is. A host reading the result programmatically
|
|
79
|
+
// gets it verbatim off `data.result` instead.
|
|
80
|
+
expect(result.output).toContain('final report text');
|
|
81
|
+
expect(result.output.startsWith('<namzu-untrusted kind="agent-result"')).toBe(true);
|
|
82
|
+
expect(result.data).toMatchObject({ result: 'final report text' });
|
|
78
83
|
});
|
|
79
84
|
it('reports failure when run status is failed even though task state is completed', async () => {
|
|
80
85
|
const gateway = fakeGateway(launched, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.test.js","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/agent.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAK7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,SAAS,WAAW;IACnB,OAAO;QACN,KAAK,EAAE,UAAmB;QAC1B,gBAAgB,EAAE,WAAW;QAC7B,WAAW,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM;QACzC,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;KACb,CAAA;AACF,CAAC;AAED,SAAS,WAAW,CAAC,MAAkB,EAAE,SAAqB;IAC7D,OAAO;QACN,KAAK,CAAC,UAAU;YACf,OAAO,MAAM,CAAA;QACd,CAAC;QACD,KAAK,CAAC,WAAW;YAChB,OAAO,SAAS,CAAA;QACjB,CAAC;QACD,KAAK,CAAC,YAAY,KAAI,CAAC;QACvB,UAAU,KAAI,CAAC;QACf,OAAO;YACN,OAAO,SAAS,CAAA;QACjB,CAAC;QACD,SAAS;YACR,OAAO,CAAC,SAAS,CAAC,CAAA;QACnB,CAAC;QACD,eAAe;YACd,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QAChB,CAAC;KACD,CAAA;AACF,CAAC;AAED,MAAM,MAAM,GAAG,eAAyB,CAAA;AAExC,MAAM,QAAQ,GAAe;IAC5B,MAAM;IACN,OAAO,EAAE,gBAAgB;IACzB,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,CAAC;CACZ,CAAA;AAED,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE;YACrC,GAAG,QAAQ;YACX,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE;gBACP,KAAK,EAAE,WAAoB;gBAC3B,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAW;gBACnE,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAW;gBACrE,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,mBAAmB;aAC3B;YACD,WAAW,EAAE,EAAE;SACf,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,cAAc,CAAC;YAC3B,OAAO;YACP,gBAAgB,EAAE,WAAW;YAC7B,eAAe,EAAE,CAAC,gBAAgB,CAAC;SACnC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE,EACtE,WAAW,EAAE,CACb,CAAA;QAED,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"agent.test.js","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/agent.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { ToolRegistry } from '../../../registry/tool/execute.js';
|
|
2
3
|
import { buildCoordinatorTools } from '../index.js';
|
|
3
4
|
const RUN_ID = 'run_ask_user_question_test';
|
|
4
5
|
const TOOL_USE_ID = 'toolu_question_1';
|
|
@@ -135,6 +136,52 @@ describe('coordinator ask_user_question input schema', () => {
|
|
|
135
136
|
}).success).toBe(true);
|
|
136
137
|
});
|
|
137
138
|
});
|
|
139
|
+
/**
|
|
140
|
+
* The model-facing schema is a module-level object shared by every tool this
|
|
141
|
+
* builder produces, so it is copied on the way out — TWICE, at two independent
|
|
142
|
+
* boundaries, and each test below pins exactly one of them. The builder clones
|
|
143
|
+
* when it attaches the schema to the definition; the registry clones again
|
|
144
|
+
* when it renders a definition for the wire. Removing either clone fails one
|
|
145
|
+
* of these and not the other, which is how they were confirmed non-vacuous.
|
|
146
|
+
*
|
|
147
|
+
* Both clones survived a version in which neither test did: the defences were
|
|
148
|
+
* still in the source and nothing pinned them, which is precisely the state
|
|
149
|
+
* where a later edit drops one and no gate objects.
|
|
150
|
+
*
|
|
151
|
+
* The failure they prevent is not hypothetical. A caller that mutates a schema
|
|
152
|
+
* it received — normalizing it for one provider, adding a legacy alias — would
|
|
153
|
+
* otherwise be editing the object every OTHER tool instance in the process is
|
|
154
|
+
* also handing out, including definitions already registered in another run.
|
|
155
|
+
*/
|
|
156
|
+
describe('coordinator ask_user_question canonical schema isolation', () => {
|
|
157
|
+
const noopHandler = async () => ({ action: 'continue' });
|
|
158
|
+
it('returns a fresh schema on every render from the registry boundary', () => {
|
|
159
|
+
const registry = new ToolRegistry();
|
|
160
|
+
registry.register(askTool(noopHandler));
|
|
161
|
+
const first = registry.toLLMTools()[0]?.function.parameters;
|
|
162
|
+
expect(first).toEqual(askTool(noopHandler).modelInputSchema);
|
|
163
|
+
const firstProperties = first?.properties;
|
|
164
|
+
firstProperties.legacy_options = { type: 'string' };
|
|
165
|
+
const next = registry.toLLMTools()[0]?.function.parameters;
|
|
166
|
+
expect(JSON.stringify(next)).not.toContain('legacy_options');
|
|
167
|
+
expect(next).toEqual(askTool(noopHandler).modelInputSchema);
|
|
168
|
+
});
|
|
169
|
+
it('isolates the schema between two results of the public builder', () => {
|
|
170
|
+
const first = askTool(noopHandler);
|
|
171
|
+
const second = askTool(noopHandler);
|
|
172
|
+
expect(first.modelInputSchema).not.toBe(second.modelInputSchema);
|
|
173
|
+
const firstProperties = first.modelInputSchema?.properties;
|
|
174
|
+
firstProperties.legacy_options = { type: 'string' };
|
|
175
|
+
expect(JSON.stringify(second.modelInputSchema)).not.toContain('legacy_options');
|
|
176
|
+
});
|
|
177
|
+
it('rejects an unknown property inside an option, not only at the root', () => {
|
|
178
|
+
const tool = askTool(noopHandler);
|
|
179
|
+
expect(tool.inputSchema.safeParse({
|
|
180
|
+
...baseInput,
|
|
181
|
+
options: [{ label: 'A', weight: 3 }, { label: 'B' }],
|
|
182
|
+
}).success).toBe(false);
|
|
183
|
+
});
|
|
184
|
+
});
|
|
138
185
|
describe('coordinator ask_user_question request synthesis', () => {
|
|
139
186
|
it('synthesizes the park request from its own context — questionId = toolUseId', async () => {
|
|
140
187
|
const { requests } = await executeAsk({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask-user-question.test.js","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/ask-user-question.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ask-user-question.test.js","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/ask-user-question.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-roster.test.d.ts","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/empty-roster.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { buildAgentTool } from '../agent.js';
|
|
3
|
+
import { buildCoordinatorTools } from '../index.js';
|
|
4
|
+
/**
|
|
5
|
+
* `create_task` used to widen its `agent_id` parameter from the roster enum to
|
|
6
|
+
* a bare string whenever the roster was empty — so the one configuration that
|
|
7
|
+
* says "this run may delegate to nobody" was the one that let the model name
|
|
8
|
+
* anybody. Degrading a closed list to an open one because the list is empty is
|
|
9
|
+
* failing open (CWE-636), and Saltzer & Schroeder named the rule it breaks in
|
|
10
|
+
* 1975: fail-safe defaults, §I.A.3(b).
|
|
11
|
+
*
|
|
12
|
+
* The control is that the tool is not mounted at all — refusing per call would
|
|
13
|
+
* reach the same verdict while paying prompt tokens and an iteration for it.
|
|
14
|
+
* The schema stays closed underneath as defence-in-depth for a definition
|
|
15
|
+
* built directly.
|
|
16
|
+
*
|
|
17
|
+
* What was reachable before is worth stating, because it is why this is a
|
|
18
|
+
* break worth taking: the id went to the gateway, which resolves against an
|
|
19
|
+
* `AgentManager` that is typically SHARED — so a name the host deliberately
|
|
20
|
+
* left out of `agentIds` could still launch if it happened to be registered
|
|
21
|
+
* there.
|
|
22
|
+
*/
|
|
23
|
+
const gateway = {
|
|
24
|
+
dispatch: async () => {
|
|
25
|
+
throw new Error('gateway must not be reached — the schema refuses first');
|
|
26
|
+
},
|
|
27
|
+
listTasks: () => [],
|
|
28
|
+
cancel: () => undefined,
|
|
29
|
+
};
|
|
30
|
+
function toolsFor(allowedAgentIds, resumeHandler) {
|
|
31
|
+
return buildCoordinatorTools({
|
|
32
|
+
gateway,
|
|
33
|
+
workingDirectory: '/tmp/test',
|
|
34
|
+
allowedAgentIds,
|
|
35
|
+
...(resumeHandler ? { resumeHandler: resumeHandler, runId: 'run_1' } : {}),
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function createTaskFor(allowedAgentIds) {
|
|
39
|
+
const tool = toolsFor(allowedAgentIds).find((t) => t.name === 'create_task');
|
|
40
|
+
if (!tool)
|
|
41
|
+
throw new Error('create_task missing from coordinator builder');
|
|
42
|
+
return tool;
|
|
43
|
+
}
|
|
44
|
+
describe('create_task delegate roster', () => {
|
|
45
|
+
it('does not mount create_task at all when the roster is empty', () => {
|
|
46
|
+
const names = toolsFor([]).map((t) => t.name);
|
|
47
|
+
expect(names).not.toContain('create_task');
|
|
48
|
+
});
|
|
49
|
+
it('still mounts the coordinator tools that do not read the roster', () => {
|
|
50
|
+
// "No delegates, but still planning and a human channel" is a
|
|
51
|
+
// supported configuration, so this omits one tool rather than
|
|
52
|
+
// refusing to build.
|
|
53
|
+
const names = toolsFor([], async () => ({ action: 'approve_tools' })).map((t) => t.name);
|
|
54
|
+
expect(names).toContain('agent_task_list');
|
|
55
|
+
expect(names).toContain('ask_user_question');
|
|
56
|
+
});
|
|
57
|
+
it('mounts create_task once the roster has an entry', () => {
|
|
58
|
+
expect(toolsFor(['worker']).map((t) => t.name)).toContain('create_task');
|
|
59
|
+
});
|
|
60
|
+
it('still admits an id that is on a non-empty roster', () => {
|
|
61
|
+
const parsed = createTaskFor(['worker']).inputSchema.safeParse({
|
|
62
|
+
agent_id: 'worker',
|
|
63
|
+
prompt: 'do the thing',
|
|
64
|
+
description: 'a task',
|
|
65
|
+
});
|
|
66
|
+
expect(parsed.success).toBe(true);
|
|
67
|
+
});
|
|
68
|
+
it('still refuses an id that is off a non-empty roster', () => {
|
|
69
|
+
const parsed = createTaskFor(['worker']).inputSchema.safeParse({
|
|
70
|
+
agent_id: 'some-other-agent',
|
|
71
|
+
prompt: 'do the thing',
|
|
72
|
+
description: 'a task',
|
|
73
|
+
});
|
|
74
|
+
expect(parsed.success).toBe(false);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
describe('the Agent tool carries the same closed roster', () => {
|
|
78
|
+
it('refuses to build at all with no delegates', () => {
|
|
79
|
+
// Unlike the coordinator builder, this one returns exactly one tool
|
|
80
|
+
// and that tool IS the delegation surface, so "do not mount" and "do
|
|
81
|
+
// not build" are the same statement.
|
|
82
|
+
expect(() => buildAgentTool({ gateway, workingDirectory: '/tmp/test', allowedAgentIds: [] })).toThrow(/at least one entry in allowedAgentIds/);
|
|
83
|
+
});
|
|
84
|
+
it('refuses an off-roster subagent at execution, not only in the schema', async () => {
|
|
85
|
+
// `execute` is reachable without the registry, so a schema-only check
|
|
86
|
+
// leaves the roster unenforced on that path.
|
|
87
|
+
const tool = buildAgentTool({
|
|
88
|
+
gateway,
|
|
89
|
+
workingDirectory: '/tmp/test',
|
|
90
|
+
allowedAgentIds: ['worker'],
|
|
91
|
+
});
|
|
92
|
+
const result = await tool.execute({ description: 'x', prompt: 'y', subagent_type: 'not-on-the-roster' }, { workingDirectory: '/tmp/test' });
|
|
93
|
+
expect(result.success).toBe(false);
|
|
94
|
+
expect(result.error).toMatch(/Unknown subagent_type/);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=empty-roster.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-roster.test.js","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/empty-roster.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,14 +12,28 @@ import type { TaskLaunchedCallback } from './index.js';
|
|
|
12
12
|
* subagent tool calls are isolated — only the summary surfaces to
|
|
13
13
|
* the parent.
|
|
14
14
|
*
|
|
15
|
-
*
|
|
16
|
-
* `
|
|
17
|
-
*
|
|
18
|
-
* callback
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
15
|
+
* **How this relates to `create_task`.** This paragraph used to say the two
|
|
16
|
+
* were different shapes — that `create_task` / `continue_task` /
|
|
17
|
+
* `cancel_task` were a non-blocking trio driven by a `<task-notification>`
|
|
18
|
+
* callback, and that the blocking `Agent` tool should be preferred. None of
|
|
19
|
+
* that is true any more. `create_task` blocks and returns the worker's output
|
|
20
|
+
* as its own `tool_result`, exactly like this tool; `continue_task` and
|
|
21
|
+
* `cancel_task` are still defined in `./index.ts` but are deliberately not
|
|
22
|
+
* registered, because a blocking launch leaves every worker terminal by the
|
|
23
|
+
* time a later turn learns its id. So a reader following the old advice was
|
|
24
|
+
* choosing between two tools on a distinction that no longer existed.
|
|
25
|
+
*
|
|
26
|
+
* What actually separates them is the surface, not the timing:
|
|
27
|
+
*
|
|
28
|
+
* - `create_task` arrives with the rest of the coordinator surface —
|
|
29
|
+
* `agent_task_list`, and `approve_plan` / `ask_user_question` when their
|
|
30
|
+
* dependencies are wired. That is the supervisor's toolkit.
|
|
31
|
+
* - This builds one tool and nothing else, for an agent whose only delegation
|
|
32
|
+
* need is "hand this to a specialist". `terminal: true` additionally lets a
|
|
33
|
+
* pure router settle on the specialist's answer instead of spending a turn
|
|
34
|
+
* at full parent context to paraphrase it.
|
|
35
|
+
*
|
|
36
|
+
* Neither is legacy. Pick by how much of the coordinator surface you want.
|
|
23
37
|
*/
|
|
24
38
|
export interface AgentToolOptions {
|
|
25
39
|
gateway: TaskGateway;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/tools/coordinator/agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/tools/coordinator/agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,WAAW,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,MAAM,EAAE,CAAA;IAEzB,cAAc,CAAC,EAAE,oBAAoB,CAAA;IAErC;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAoKrE"}
|
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { defineTool } from '../defineTool.js';
|
|
3
|
+
import { wrapUntrusted } from '../untrusted-envelope.js';
|
|
3
4
|
export function buildAgentTool(opts) {
|
|
4
5
|
const { gateway, allowedAgentIds: agentIds, onTaskLaunched } = opts;
|
|
5
6
|
const cwd = opts.workingDirectory;
|
|
6
|
-
|
|
7
|
+
// This tool IS the delegation surface — it is the only thing this builder
|
|
8
|
+
// returns — so "do not mount it on an empty roster" collapses to "do not
|
|
9
|
+
// build it". Refusing at construction is therefore coherent here in a way
|
|
10
|
+
// it is not for `buildCoordinatorTools`, whose other tools remain useful
|
|
11
|
+
// with no delegates.
|
|
12
|
+
//
|
|
13
|
+
// It carried the same widen-to-string fallback `create_task` did: an empty
|
|
14
|
+
// roster, which is the one input meaning "delegate to nobody", produced the
|
|
15
|
+
// one schema accepting anybody. Saltzer & Schroeder's own reason for
|
|
16
|
+
// checking the twin applies — "in a large system some objects will be
|
|
17
|
+
// inadequately considered, so a default of lack of permission is safer"
|
|
18
|
+
// (§I.A.3(b)) — and shipping the closed reading in one delegation surface
|
|
19
|
+
// while leaving it open in the exported one is exactly that oversight.
|
|
20
|
+
if (agentIds.length === 0) {
|
|
21
|
+
throw new Error('buildAgentTool requires at least one entry in allowedAgentIds. An empty roster means this run may delegate to nobody, so there is no subagent the tool could name — do not build the tool.');
|
|
22
|
+
}
|
|
23
|
+
const subagentTypeEnum = z.enum(agentIds);
|
|
7
24
|
return defineTool({
|
|
8
25
|
name: 'Agent',
|
|
9
26
|
description: `Delegate a task to a specialized subagent. BLOCKING: returns when the subagent has finished, with the subagent's final text as the tool result. The subagent runs in its own context window and cannot see your conversation — include all necessary context in the prompt. Available subagents: ${agentIds.join(', ')}. To run multiple subagents in parallel, call this tool multiple times in a single response.`,
|
|
@@ -35,6 +52,21 @@ export function buildAgentTool(opts) {
|
|
|
35
52
|
error: `subagent_type is required — choose one of: ${agentIds.join(', ')}`,
|
|
36
53
|
};
|
|
37
54
|
}
|
|
55
|
+
// The roster is enforced here as well as in the schema. `execute` is
|
|
56
|
+
// reachable without going through the registry — this repo's own
|
|
57
|
+
// callers do it — so a schema-only check leaves the roster
|
|
58
|
+
// unenforced on that path, and the id would reach the gateway to be
|
|
59
|
+
// resolved against an AgentManager that is typically shared and may
|
|
60
|
+
// well hold an agent this run's roster deliberately omits. Every
|
|
61
|
+
// access checked for authority, not only the mediated one
|
|
62
|
+
// (Saltzer & Schroeder §I.A.3(c), complete mediation).
|
|
63
|
+
if (!agentIds.includes(agentId)) {
|
|
64
|
+
return {
|
|
65
|
+
success: false,
|
|
66
|
+
output: '',
|
|
67
|
+
error: `Unknown subagent_type "${agentId}" — choose one of: ${agentIds.join(', ')}`,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
38
70
|
const handle = await gateway.createTask({
|
|
39
71
|
agentId,
|
|
40
72
|
prompt,
|
|
@@ -92,12 +124,23 @@ export function buildAgentTool(opts) {
|
|
|
92
124
|
},
|
|
93
125
|
};
|
|
94
126
|
}
|
|
127
|
+
// Framed for the same reason `create_task` frames its result: a
|
|
128
|
+
// subagent is the component most likely to have consumed material
|
|
129
|
+
// nobody here wrote, and its final text lands straight in this
|
|
130
|
+
// parent's context, where the parent usually holds the broader
|
|
131
|
+
// tool grant. `data.result` keeps it verbatim for a host reading
|
|
132
|
+
// the result programmatically.
|
|
95
133
|
return {
|
|
96
134
|
success: true,
|
|
97
|
-
output:
|
|
135
|
+
output: wrapUntrusted({
|
|
136
|
+
kind: 'agent-result',
|
|
137
|
+
attributes: { agent: agentId, task: handle.taskId },
|
|
138
|
+
provenance: `This is the output of the delegated subagent "${agentId}", not this agent's own work.`,
|
|
139
|
+
}, resultText || '(subagent returned no text)'),
|
|
98
140
|
data: {
|
|
99
141
|
task_id: handle.taskId,
|
|
100
142
|
subagent_type: agentId,
|
|
143
|
+
result: resultText,
|
|
101
144
|
state: completed.state,
|
|
102
145
|
status: runStatus,
|
|
103
146
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/tools/coordinator/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/tools/coordinator/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/coordinator/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,2BAA2B,CAAA;AAClF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/coordinator/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,2BAA2B,CAAA;AAClF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAK/D,MAAM,MAAM,oBAAoB,GAAG,CAClC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IACL,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B,KACG,IAAI,CAAA;AAET,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,WAAW,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,MAAM,EAAE,CAAA;IAEzB,SAAS,CAAC,EAAE,SAAS,CAAA;IAErB,KAAK,CAAC,EAAE,KAAK,CAAA;IAEb,cAAc,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IAE9C,cAAc,CAAC,EAAE,oBAAoB,CAAA;IAErC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAE7B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAA;IAEpC;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;CAC/B;AAsID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG,cAAc,EAAE,CA0jBrF"}
|