@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.
Files changed (130) hide show
  1. package/CHANGELOG.md +250 -0
  2. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  3. package/dist/agents/SupervisorAgent.js +52 -2
  4. package/dist/agents/SupervisorAgent.js.map +1 -1
  5. package/dist/agents/__tests__/supervisor-coordinator-registration.test.d.ts +2 -0
  6. package/dist/agents/__tests__/supervisor-coordinator-registration.test.d.ts.map +1 -0
  7. package/dist/agents/__tests__/supervisor-coordinator-registration.test.js +122 -0
  8. package/dist/agents/__tests__/supervisor-coordinator-registration.test.js.map +1 -0
  9. package/dist/connector/mcp/__tests__/prompt-as-tool.test.js +1 -1
  10. package/dist/connector/mcp/__tests__/prompt-as-tool.test.js.map +1 -1
  11. package/dist/connector/mcp/prompt-adapter.d.ts.map +1 -1
  12. package/dist/connector/mcp/prompt-adapter.js +16 -9
  13. package/dist/connector/mcp/prompt-adapter.js.map +1 -1
  14. package/dist/public-runtime.d.ts +1 -1
  15. package/dist/public-runtime.d.ts.map +1 -1
  16. package/dist/public-runtime.js +1 -1
  17. package/dist/public-runtime.js.map +1 -1
  18. package/dist/public-tools.d.ts +2 -0
  19. package/dist/public-tools.d.ts.map +1 -1
  20. package/dist/public-tools.js +3 -0
  21. package/dist/public-tools.js.map +1 -1
  22. package/dist/registry/index.d.ts +1 -1
  23. package/dist/registry/index.d.ts.map +1 -1
  24. package/dist/registry/index.js +1 -1
  25. package/dist/registry/index.js.map +1 -1
  26. package/dist/registry/tool/execute.d.ts +15 -0
  27. package/dist/registry/tool/execute.d.ts.map +1 -1
  28. package/dist/registry/tool/execute.js +19 -0
  29. package/dist/registry/tool/execute.js.map +1 -1
  30. package/dist/sandbox/__tests__/exec-cancellation.test.d.ts +2 -0
  31. package/dist/sandbox/__tests__/exec-cancellation.test.d.ts.map +1 -0
  32. package/dist/sandbox/__tests__/exec-cancellation.test.js +59 -0
  33. package/dist/sandbox/__tests__/exec-cancellation.test.js.map +1 -0
  34. package/dist/sandbox/provider/local.d.ts.map +1 -1
  35. package/dist/sandbox/provider/local.js +30 -5
  36. package/dist/sandbox/provider/local.js.map +1 -1
  37. package/dist/session/workspace/shared-run.d.ts +31 -0
  38. package/dist/session/workspace/shared-run.d.ts.map +1 -1
  39. package/dist/session/workspace/shared-run.js +31 -0
  40. package/dist/session/workspace/shared-run.js.map +1 -1
  41. package/dist/tools/__tests__/file-tool-containment.test.d.ts +2 -0
  42. package/dist/tools/__tests__/file-tool-containment.test.d.ts.map +1 -0
  43. package/dist/tools/__tests__/file-tool-containment.test.js +134 -0
  44. package/dist/tools/__tests__/file-tool-containment.test.js.map +1 -0
  45. package/dist/tools/__tests__/sandboxed-search.test.js +51 -0
  46. package/dist/tools/__tests__/sandboxed-search.test.js.map +1 -1
  47. package/dist/tools/__tests__/untrusted-envelope.test.d.ts +2 -0
  48. package/dist/tools/__tests__/untrusted-envelope.test.d.ts.map +1 -0
  49. package/dist/tools/__tests__/untrusted-envelope.test.js +55 -0
  50. package/dist/tools/__tests__/untrusted-envelope.test.js.map +1 -0
  51. package/dist/tools/builtins/__tests__/edit-insert-reachable.test.d.ts +2 -0
  52. package/dist/tools/builtins/__tests__/edit-insert-reachable.test.d.ts.map +1 -0
  53. package/dist/tools/builtins/__tests__/edit-insert-reachable.test.js +114 -0
  54. package/dist/tools/builtins/__tests__/edit-insert-reachable.test.js.map +1 -0
  55. package/dist/tools/builtins/__tests__/edit.test.js +9 -2
  56. package/dist/tools/builtins/__tests__/edit.test.js.map +1 -1
  57. package/dist/tools/builtins/__tests__/write-file.test.js +59 -0
  58. package/dist/tools/builtins/__tests__/write-file.test.js.map +1 -1
  59. package/dist/tools/builtins/edit.d.ts.map +1 -1
  60. package/dist/tools/builtins/edit.js +66 -14
  61. package/dist/tools/builtins/edit.js.map +1 -1
  62. package/dist/tools/builtins/ls.d.ts +1 -1
  63. package/dist/tools/builtins/ls.d.ts.map +1 -1
  64. package/dist/tools/builtins/ls.js +95 -0
  65. package/dist/tools/builtins/ls.js.map +1 -1
  66. package/dist/tools/builtins/read-file.d.ts.map +1 -1
  67. package/dist/tools/builtins/read-file.js +3 -2
  68. package/dist/tools/builtins/read-file.js.map +1 -1
  69. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  70. package/dist/tools/builtins/write-file.js +26 -12
  71. package/dist/tools/builtins/write-file.js.map +1 -1
  72. package/dist/tools/coordinator/__tests__/agent.test.js +6 -1
  73. package/dist/tools/coordinator/__tests__/agent.test.js.map +1 -1
  74. package/dist/tools/coordinator/__tests__/ask-user-question.test.js +47 -0
  75. package/dist/tools/coordinator/__tests__/ask-user-question.test.js.map +1 -1
  76. package/dist/tools/coordinator/__tests__/empty-roster.test.d.ts +2 -0
  77. package/dist/tools/coordinator/__tests__/empty-roster.test.d.ts.map +1 -0
  78. package/dist/tools/coordinator/__tests__/empty-roster.test.js +97 -0
  79. package/dist/tools/coordinator/__tests__/empty-roster.test.js.map +1 -0
  80. package/dist/tools/coordinator/agent.d.ts +22 -8
  81. package/dist/tools/coordinator/agent.d.ts.map +1 -1
  82. package/dist/tools/coordinator/agent.js +45 -2
  83. package/dist/tools/coordinator/agent.js.map +1 -1
  84. package/dist/tools/coordinator/index.d.ts.map +1 -1
  85. package/dist/tools/coordinator/index.js +80 -3
  86. package/dist/tools/coordinator/index.js.map +1 -1
  87. package/dist/tools/paths.d.ts +40 -0
  88. package/dist/tools/paths.d.ts.map +1 -1
  89. package/dist/tools/paths.js +70 -1
  90. package/dist/tools/paths.js.map +1 -1
  91. package/dist/tools/untrusted-envelope.d.ts +55 -0
  92. package/dist/tools/untrusted-envelope.d.ts.map +1 -0
  93. package/dist/tools/untrusted-envelope.js +65 -0
  94. package/dist/tools/untrusted-envelope.js.map +1 -0
  95. package/dist/types/sandbox/index.d.ts +10 -0
  96. package/dist/types/sandbox/index.d.ts.map +1 -1
  97. package/dist/types/sandbox/index.js.map +1 -1
  98. package/dist/types/toolset/index.d.ts +0 -24
  99. package/dist/types/toolset/index.d.ts.map +1 -1
  100. package/package.json +1 -1
  101. package/src/agents/SupervisorAgent.ts +51 -2
  102. package/src/agents/__tests__/supervisor-coordinator-registration.test.ts +148 -0
  103. package/src/connector/mcp/__tests__/prompt-as-tool.test.ts +1 -1
  104. package/src/connector/mcp/prompt-adapter.ts +19 -9
  105. package/src/public-runtime.ts +1 -0
  106. package/src/public-tools.ts +4 -0
  107. package/src/registry/index.ts +1 -1
  108. package/src/registry/tool/execute.ts +23 -0
  109. package/src/sandbox/__tests__/exec-cancellation.test.ts +72 -0
  110. package/src/sandbox/provider/local.ts +30 -4
  111. package/src/session/workspace/shared-run.ts +31 -0
  112. package/src/tools/__tests__/file-tool-containment.test.ts +190 -0
  113. package/src/tools/__tests__/sandboxed-search.test.ts +66 -0
  114. package/src/tools/__tests__/untrusted-envelope.test.ts +82 -0
  115. package/src/tools/builtins/__tests__/edit-insert-reachable.test.ts +166 -0
  116. package/src/tools/builtins/__tests__/edit.test.ts +10 -2
  117. package/src/tools/builtins/__tests__/write-file.test.ts +80 -0
  118. package/src/tools/builtins/edit.ts +69 -14
  119. package/src/tools/builtins/ls.ts +102 -0
  120. package/src/tools/builtins/read-file.ts +3 -2
  121. package/src/tools/builtins/write-file.ts +26 -12
  122. package/src/tools/coordinator/__tests__/agent.test.ts +6 -1
  123. package/src/tools/coordinator/__tests__/ask-user-question.test.ts +58 -0
  124. package/src/tools/coordinator/__tests__/empty-roster.test.ts +118 -0
  125. package/src/tools/coordinator/agent.ts +72 -11
  126. package/src/tools/coordinator/index.ts +86 -3
  127. package/src/tools/paths.ts +83 -1
  128. package/src/tools/untrusted-envelope.ts +78 -0
  129. package/src/types/sandbox/index.ts +10 -0
  130. package/src/types/toolset/index.ts +0 -25
@@ -1,7 +1,8 @@
1
1
  import { access, mkdir } from 'node:fs/promises';
2
- import { dirname, resolve } from 'node:path';
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
- const filePath = resolve(context.workingDirectory, valid.path);
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 = `${context.sandbox ? 'sandbox' : 'local'}:${filePath}`;
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 localExists = await pathExists(filePath);
108
+ const hostPath = filePath;
109
+ const localExists = await pathExists(hostPath);
96
110
  if (localExists) {
97
- const guard = enforceReadBeforeOverwrite(context, filePath);
111
+ const guard = enforceReadBeforeOverwrite(context, hostPath);
98
112
  if (guard)
99
113
  return guard;
100
114
  }
101
- await mkdir(dirname(filePath), { recursive: true });
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(filePath, content);
106
- context.fileReadTracker?.recordRead(filePath);
119
+ await atomicWriteFile(hostPath, content);
120
+ context.fileReadTracker?.recordRead(hostPath);
107
121
  return {
108
122
  success: true,
109
- output: `File written successfully: ${filePath} (${content.length} chars)`,
110
- data: { path: filePath, size: content.length },
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(filePath) {
140
+ async function pathExists(hostPath) {
127
141
  try {
128
- await access(filePath);
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":"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"}
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
- expect(result.output).toBe('final report text');
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":"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"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=empty-roster.test.d.ts.map
@@ -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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,OAAO,GAAG;IACf,QAAQ,EAAE,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC1E,CAAC;IACD,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;IACnB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;CACG,CAAA;AAE3B,SAAS,QAAQ,CAAC,eAAyB,EAAE,aAAuB;IACnE,OAAO,qBAAqB,CAAC;QAC5B,OAAO;QACP,gBAAgB,EAAE,WAAW;QAC7B,eAAe;QACf,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,aAAsB,EAAE,KAAK,EAAE,OAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5F,CAAC,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,eAAyB;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAA;IAC5E,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IAC1E,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACrE,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAE7C,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACzE,8DAA8D;QAC9D,8DAA8D;QAC9D,qBAAqB;QACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAExF,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC3D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC;YAC9D,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,cAAc;YACtB,WAAW,EAAE,QAAQ;SACrB,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC;YAC9D,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,cAAc;YACtB,WAAW,EAAE,QAAQ;SACrB,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;IAC9D,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACpD,oEAAoE;QACpE,qEAAqE;QACrE,qCAAqC;QACrC,MAAM,CAAC,GAAG,EAAE,CACX,cAAc,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAC/E,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACpF,sEAAsE;QACtE,6CAA6C;QAC7C,MAAM,IAAI,GAAG,cAAc,CAAC;YAC3B,OAAO;YACP,gBAAgB,EAAE,WAAW;YAC7B,eAAe,EAAE,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,mBAAmB,EAAE,EACrE,EAAE,gBAAgB,EAAE,WAAW,EAAW,CAC1C,CAAA;QAED,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -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
- * This is **NOT** the same shape as the legacy `create_task` /
16
- * `continue_task` / `cancel_task` trio that this package ships
17
- * alongside it: those are non-blocking and use a `<task-notification>`
18
- * callback model. The async pattern is useful for hosts that want a
19
- * work-queue surface, but it asks the model to track work it cannot
20
- * see finish. Prefer the blocking `Agent` tool; keep the legacy
21
- * coordinator tools only when you genuinely need fire-and-forget
22
- * multi-task fan-out.
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;AAG/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD;;;;;;;;;;;;;;;;;;GAkBG;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,CAsHrE"}
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
- const subagentTypeEnum = agentIds.length > 0 ? z.enum(agentIds) : z.string();
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: resultText || '(subagent returned no text)',
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":"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"}
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;AAI/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;AA6FD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG,cAAc,EAAE,CAihBrF"}
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"}