@namzu/sdk 6.0.0 → 6.2.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 (107) hide show
  1. package/CHANGELOG.md +254 -0
  2. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  3. package/dist/agents/SupervisorAgent.js +18 -0
  4. package/dist/agents/SupervisorAgent.js.map +1 -1
  5. package/dist/agents/__tests__/supervisor-coordinator-registration.test.js +31 -0
  6. package/dist/agents/__tests__/supervisor-coordinator-registration.test.js.map +1 -1
  7. package/dist/gateway/__tests__/completion-inbox.test.d.ts +2 -0
  8. package/dist/gateway/__tests__/completion-inbox.test.d.ts.map +1 -0
  9. package/dist/gateway/__tests__/completion-inbox.test.js +275 -0
  10. package/dist/gateway/__tests__/completion-inbox.test.js.map +1 -0
  11. package/dist/gateway/completion-inbox.d.ts +113 -0
  12. package/dist/gateway/completion-inbox.d.ts.map +1 -0
  13. package/dist/gateway/completion-inbox.js +225 -0
  14. package/dist/gateway/completion-inbox.js.map +1 -0
  15. package/dist/public-runtime.d.ts +1 -0
  16. package/dist/public-runtime.d.ts.map +1 -1
  17. package/dist/public-runtime.js +4 -0
  18. package/dist/public-runtime.js.map +1 -1
  19. package/dist/registry/tool/__tests__/dialect.test.js +8 -5
  20. package/dist/registry/tool/__tests__/dialect.test.js.map +1 -1
  21. package/dist/registry/tool/dialect.js +11 -4
  22. package/dist/registry/tool/dialect.js.map +1 -1
  23. package/dist/registry/tool/execute.d.ts.map +1 -1
  24. package/dist/registry/tool/execute.js +34 -0
  25. package/dist/registry/tool/execute.js.map +1 -1
  26. package/dist/runtime/query/__tests__/completion-notification.test.d.ts +2 -0
  27. package/dist/runtime/query/__tests__/completion-notification.test.d.ts.map +1 -0
  28. package/dist/runtime/query/__tests__/completion-notification.test.js +168 -0
  29. package/dist/runtime/query/__tests__/completion-notification.test.js.map +1 -0
  30. package/dist/runtime/query/__tests__/run-survives-its-own-park.proc-test.d.ts +2 -0
  31. package/dist/runtime/query/__tests__/run-survives-its-own-park.proc-test.d.ts.map +1 -0
  32. package/dist/runtime/query/__tests__/run-survives-its-own-park.proc-test.js +122 -0
  33. package/dist/runtime/query/__tests__/run-survives-its-own-park.proc-test.js.map +1 -0
  34. package/dist/runtime/query/__tests__/step-allow-list.test.d.ts +2 -0
  35. package/dist/runtime/query/__tests__/step-allow-list.test.d.ts.map +1 -0
  36. package/dist/runtime/query/__tests__/step-allow-list.test.js +171 -0
  37. package/dist/runtime/query/__tests__/step-allow-list.test.js.map +1 -0
  38. package/dist/runtime/query/executor.d.ts +14 -0
  39. package/dist/runtime/query/executor.d.ts.map +1 -1
  40. package/dist/runtime/query/executor.js +20 -1
  41. package/dist/runtime/query/executor.js.map +1 -1
  42. package/dist/runtime/query/index.d.ts +9 -0
  43. package/dist/runtime/query/index.d.ts.map +1 -1
  44. package/dist/runtime/query/index.js +1 -0
  45. package/dist/runtime/query/index.js.map +1 -1
  46. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  47. package/dist/runtime/query/iteration/index.js +74 -1
  48. package/dist/runtime/query/iteration/index.js.map +1 -1
  49. package/dist/runtime/query/iteration/phases/context.d.ts +9 -0
  50. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  51. package/dist/runtime/query/iteration/phases/context.js +43 -13
  52. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  53. package/dist/tools/builtins/__tests__/bash.proc-test.d.ts +2 -0
  54. package/dist/tools/builtins/__tests__/bash.proc-test.d.ts.map +1 -0
  55. package/dist/tools/builtins/__tests__/bash.proc-test.js +115 -0
  56. package/dist/tools/builtins/__tests__/bash.proc-test.js.map +1 -0
  57. package/dist/tools/builtins/__tests__/bash.test.d.ts +2 -0
  58. package/dist/tools/builtins/__tests__/bash.test.d.ts.map +1 -0
  59. package/dist/tools/builtins/__tests__/bash.test.js +65 -0
  60. package/dist/tools/builtins/__tests__/bash.test.js.map +1 -0
  61. package/dist/tools/builtins/bash.d.ts.map +1 -1
  62. package/dist/tools/builtins/bash.js +89 -17
  63. package/dist/tools/builtins/bash.js.map +1 -1
  64. package/dist/tools/coordinator/__tests__/allow-delegation.test.d.ts +2 -0
  65. package/dist/tools/coordinator/__tests__/allow-delegation.test.d.ts.map +1 -0
  66. package/dist/tools/coordinator/__tests__/allow-delegation.test.js +94 -0
  67. package/dist/tools/coordinator/__tests__/allow-delegation.test.js.map +1 -0
  68. package/dist/tools/coordinator/__tests__/completion-delivery.test.d.ts +2 -0
  69. package/dist/tools/coordinator/__tests__/completion-delivery.test.d.ts.map +1 -0
  70. package/dist/tools/coordinator/__tests__/completion-delivery.test.js +255 -0
  71. package/dist/tools/coordinator/__tests__/completion-delivery.test.js.map +1 -0
  72. package/dist/tools/coordinator/__tests__/task-list.test.js +13 -7
  73. package/dist/tools/coordinator/__tests__/task-list.test.js.map +1 -1
  74. package/dist/tools/coordinator/index.d.ts +44 -0
  75. package/dist/tools/coordinator/index.d.ts.map +1 -1
  76. package/dist/tools/coordinator/index.js +239 -16
  77. package/dist/tools/coordinator/index.js.map +1 -1
  78. package/dist/types/agent/supervisor.d.ts +27 -0
  79. package/dist/types/agent/supervisor.d.ts.map +1 -1
  80. package/dist/types/tool/index.d.ts +13 -0
  81. package/dist/types/tool/index.d.ts.map +1 -1
  82. package/dist/types/tool/index.js.map +1 -1
  83. package/package.json +3 -2
  84. package/src/agents/SupervisorAgent.ts +19 -0
  85. package/src/agents/__tests__/supervisor-coordinator-registration.test.ts +37 -0
  86. package/src/gateway/__tests__/completion-inbox.test.ts +343 -0
  87. package/src/gateway/completion-inbox.ts +241 -0
  88. package/src/public-runtime.ts +4 -0
  89. package/src/registry/tool/__tests__/dialect.test.ts +8 -5
  90. package/src/registry/tool/dialect.ts +11 -4
  91. package/src/registry/tool/execute.ts +35 -0
  92. package/src/runtime/query/__tests__/completion-notification.test.ts +196 -0
  93. package/src/runtime/query/__tests__/run-survives-its-own-park.proc-test.ts +127 -0
  94. package/src/runtime/query/__tests__/step-allow-list.test.ts +205 -0
  95. package/src/runtime/query/executor.ts +21 -1
  96. package/src/runtime/query/index.ts +11 -0
  97. package/src/runtime/query/iteration/index.ts +77 -1
  98. package/src/runtime/query/iteration/phases/context.ts +51 -15
  99. package/src/tools/builtins/__tests__/bash.proc-test.ts +142 -0
  100. package/src/tools/builtins/__tests__/bash.test.ts +79 -0
  101. package/src/tools/builtins/bash.ts +100 -18
  102. package/src/tools/coordinator/__tests__/allow-delegation.test.ts +120 -0
  103. package/src/tools/coordinator/__tests__/completion-delivery.test.ts +347 -0
  104. package/src/tools/coordinator/__tests__/task-list.test.ts +13 -7
  105. package/src/tools/coordinator/index.ts +278 -21
  106. package/src/types/agent/supervisor.ts +28 -0
  107. package/src/types/tool/index.ts +13 -0
@@ -0,0 +1,255 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { CompletionInbox } from '../../../gateway/completion-inbox.js';
3
+ import { DELEGATION_TIMEOUT_MS, buildCoordinatorTools } from '../index.js';
4
+ function harness(opts = {}) {
5
+ const listeners = new Set();
6
+ const waiters = new Map();
7
+ const handles = new Map();
8
+ let seq = 0;
9
+ const makeHandle = (taskId, result) => ({
10
+ taskId: taskId,
11
+ agentId: 'reviewer',
12
+ state: 'completed',
13
+ createdAt: 1_000,
14
+ completedAt: 2_000,
15
+ ...(result !== undefined
16
+ ? { result: { status: 'completed', result } }
17
+ : {}),
18
+ });
19
+ const gateway = {
20
+ createTask: async () => {
21
+ seq += 1;
22
+ const taskId = `tsk_${seq}`;
23
+ const handle = { ...makeHandle(taskId), state: 'running' };
24
+ handles.set(taskId, handle);
25
+ return handle;
26
+ },
27
+ waitForTask: (taskId) => new Promise((resolve) => {
28
+ if (opts.autoFinish) {
29
+ resolve(makeHandle(taskId, 'the worker output'));
30
+ return;
31
+ }
32
+ waiters.set(taskId, resolve);
33
+ }),
34
+ getTask: (taskId) => handles.get(taskId),
35
+ listTasks: () => [...handles.values()],
36
+ cancelTask: () => undefined,
37
+ continueTask: async () => undefined,
38
+ onTaskCompleted: (cb) => {
39
+ listeners.add(cb);
40
+ return () => listeners.delete(cb);
41
+ },
42
+ };
43
+ const inbox = new CompletionInbox();
44
+ inbox.attach(gateway);
45
+ return {
46
+ inbox,
47
+ tools: buildCoordinatorTools({
48
+ gateway,
49
+ completionInbox: inbox,
50
+ workingDirectory: '/tmp/test',
51
+ allowedAgentIds: ['reviewer'],
52
+ }),
53
+ settle: (handle) => {
54
+ handles.set(handle.taskId, handle);
55
+ for (const cb of listeners)
56
+ cb(handle);
57
+ },
58
+ finish: (taskId, result) => {
59
+ const handle = makeHandle(taskId, result);
60
+ handles.set(taskId, handle);
61
+ waiters.get(taskId)?.(handle);
62
+ },
63
+ };
64
+ }
65
+ function toolNamed(tools, name) {
66
+ const tool = tools.find((t) => t.name === name);
67
+ if (!tool)
68
+ throw new Error(`${name} is not registered`);
69
+ return tool;
70
+ }
71
+ describe('the supervisor has a tool for every move it needs', () => {
72
+ it('registers a way to wait, so polling is no longer the only option', () => {
73
+ // Before this, waiting meant `continue_task` — which blocks only as a
74
+ // side effect of sending a message, so a supervisor that just wanted
75
+ // to wait had to invent something to say.
76
+ const names = harness().tools.map((t) => t.name);
77
+ expect(names).toContain('wait_for_task');
78
+ });
79
+ it('registers a way to cancel, which background launching makes necessary', () => {
80
+ // `cancel_task` was defined in this file and never returned from it.
81
+ // It matters now: a background launch can leave a worker running with
82
+ // nothing waiting on it, and without this the supervisor could start
83
+ // one it had no way to stop.
84
+ expect(harness().tools.map((t) => t.name)).toContain('cancel_task');
85
+ });
86
+ it('gives the launching tool a deadline a real worker can meet', () => {
87
+ // The run default is two minutes; a delegated worker doing real work
88
+ // takes longer, and every expiry past that point produced the state
89
+ // this whole change exists to repair. Not firing at all beats
90
+ // recovering well.
91
+ expect(toolNamed(harness().tools, 'create_task').timeoutMs).toBe(DELEGATION_TIMEOUT_MS);
92
+ });
93
+ it('gives the waiting tool a deadline longer than the executor default', () => {
94
+ // A tool whose entire job is to wait must not be killed for waiting.
95
+ // `ToolExecutor` reads `timeoutMs` before falling back to the run
96
+ // default, so declaring one here is the supported way to say so.
97
+ expect(toolNamed(harness().tools, 'wait_for_task').timeoutMs).toBe(DELEGATION_TIMEOUT_MS);
98
+ });
99
+ it('mounts none of them when there is no roster to delegate to', () => {
100
+ const tools = buildCoordinatorTools({
101
+ gateway: { onTaskCompleted: () => () => { } },
102
+ workingDirectory: '/tmp/test',
103
+ allowedAgentIds: [],
104
+ });
105
+ expect(tools.map((t) => t.name)).toEqual(['agent_task_list']);
106
+ });
107
+ });
108
+ describe('a blocking launch claims its own completion', () => {
109
+ it('delivers the output inline and leaves nothing to announce', () => {
110
+ // The `dc16d58` case: this result reached the model as a tool_result,
111
+ // so an envelope carrying it again would be the duplicate delivery
112
+ // that removal fixed.
113
+ const h = harness({ autoFinish: true });
114
+ return toolNamed(h.tools, 'create_task')
115
+ .execute({ agent_id: 'reviewer', prompt: 'go', description: 'review' }, {})
116
+ .then((result) => {
117
+ expect(result.success).toBe(true);
118
+ expect(result.output).toContain('the worker output');
119
+ expect(h.inbox.drain()).toEqual([]);
120
+ });
121
+ });
122
+ });
123
+ describe('an abandoned launch leaves its completion to be announced', () => {
124
+ it('does not claim when the executor already gave up on the call', async () => {
125
+ // This is the whole fix. The executor's deadline passed, the model was
126
+ // told the tool timed out, and whatever this call returns now is
127
+ // discarded — so claiming here would delete the worker's output for
128
+ // good.
129
+ const h = harness({ autoFinish: true });
130
+ const aborted = AbortSignal.abort();
131
+ const result = await toolNamed(h.tools, 'create_task').execute({ agent_id: 'reviewer', prompt: 'go', description: 'review' }, { abortSignal: aborted });
132
+ expect(result.success).toBe(false);
133
+ // It also says where the result WILL turn up, rather than leaving the
134
+ // model to conclude the work was lost.
135
+ expect(result.output).toContain('task notification');
136
+ h.settle({
137
+ taskId: 'tsk_1',
138
+ agentId: 'reviewer',
139
+ state: 'completed',
140
+ createdAt: 1_000,
141
+ completedAt: 2_000,
142
+ result: {
143
+ status: 'completed',
144
+ result: 'the worker output',
145
+ },
146
+ });
147
+ expect(h.inbox.drain().map((x) => x.taskId)).toEqual(['tsk_1']);
148
+ });
149
+ });
150
+ describe('a background launch returns a handle instead of a result', () => {
151
+ it('hands back the task id straight away and does not wait', async () => {
152
+ // `autoFinish` is off, so `waitForTask` never resolves here. If the
153
+ // background path awaited it, this test would hang — which is the
154
+ // point: returning is what lets the supervisor keep working.
155
+ const h = harness();
156
+ const result = await toolNamed(h.tools, 'create_task').execute({
157
+ agent_id: 'reviewer',
158
+ prompt: 'go',
159
+ description: 'review',
160
+ background: true,
161
+ }, {});
162
+ expect(result.success).toBe(true);
163
+ expect(result.data?.task_id).toBe('tsk_1');
164
+ // In `output` too, not only in `data` — the executor builds the
165
+ // tool_result from `output` alone, so an id that lives only in `data`
166
+ // is an id the model never receives.
167
+ expect(result.output).toContain('tsk_1');
168
+ // And it tells the model what happens next, so "launched" does not
169
+ // read as "finished".
170
+ expect(result.output).toContain('task notification');
171
+ });
172
+ it('leaves the completion for the transcript', async () => {
173
+ const h = harness();
174
+ await toolNamed(h.tools, 'create_task').execute({
175
+ agent_id: 'reviewer',
176
+ prompt: 'go',
177
+ description: 'review',
178
+ background: true,
179
+ }, {});
180
+ h.settle({
181
+ taskId: 'tsk_1',
182
+ agentId: 'reviewer',
183
+ state: 'completed',
184
+ createdAt: 1_000,
185
+ completedAt: 2_000,
186
+ result: { status: 'completed', result: 'done' },
187
+ });
188
+ expect(h.inbox.drain()).toHaveLength(1);
189
+ });
190
+ });
191
+ describe('waiting explicitly beats listing in a loop', () => {
192
+ it('returns the output and claims it', async () => {
193
+ const h = harness({ autoFinish: true });
194
+ await toolNamed(h.tools, 'create_task').execute({
195
+ agent_id: 'reviewer',
196
+ prompt: 'go',
197
+ description: 'review',
198
+ background: true,
199
+ }, {});
200
+ const result = await toolNamed(h.tools, 'wait_for_task').execute({ task_id: 'tsk_1' }, {});
201
+ expect(result.success).toBe(true);
202
+ expect(result.output).toContain('the worker output');
203
+ // Claimed, so it is not also announced.
204
+ expect(h.inbox.drain()).toEqual([]);
205
+ });
206
+ it('says so plainly rather than hanging on an id that does not exist', async () => {
207
+ const h = harness();
208
+ const result = await toolNamed(h.tools, 'wait_for_task').execute({ task_id: 'tsk_nope' }, {});
209
+ expect(result.success).toBe(false);
210
+ expect(result.output).toContain('No task');
211
+ });
212
+ });
213
+ describe('the task listing carries the output it always had', () => {
214
+ async function listWith(result) {
215
+ const h = harness();
216
+ h.settle({
217
+ taskId: 'tsk_1',
218
+ agentId: 'reviewer',
219
+ state: 'completed',
220
+ createdAt: 1_000,
221
+ completedAt: 2_000,
222
+ result: { status: 'completed', result },
223
+ });
224
+ const listed = await toolNamed(h.tools, 'agent_task_list').execute({}, {});
225
+ return listed.output;
226
+ }
227
+ it('puts the worker result where the model can actually read it', async () => {
228
+ // Two failures stacked here. The projection read `h.result` for the
229
+ // status and the error and stopped one property short of the thing the
230
+ // task was launched to produce — and the obvious repair, adding it to
231
+ // `data`, would have been invisible: the executor builds the
232
+ // tool_result from `output` alone and never reads `data`. So the fix
233
+ // has to land in the RENDERED text, and this asserts on `output` for
234
+ // that reason.
235
+ expect(await listWith('the findings')).toContain('the findings');
236
+ });
237
+ it('names the tool that fetches the rest when it truncates', async () => {
238
+ const output = await listWith('x'.repeat(6_000));
239
+ expect(output).toContain('truncated');
240
+ expect(output).toContain('wait_for_task with "tsk_1"');
241
+ });
242
+ it('still lists a task that has produced nothing yet', async () => {
243
+ const h = harness();
244
+ await toolNamed(h.tools, 'create_task').execute({
245
+ agent_id: 'reviewer',
246
+ prompt: 'go',
247
+ description: 'review',
248
+ background: true,
249
+ }, {});
250
+ const listed = await toolNamed(h.tools, 'agent_task_list').execute({}, {});
251
+ expect(listed.output).toContain('tsk_1');
252
+ expect(listed.output).toContain('running');
253
+ });
254
+ });
255
+ //# sourceMappingURL=completion-delivery.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion-delivery.test.js","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/completion-delivery.test.ts"],"names":[],"mappings":"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"}
@@ -158,19 +158,25 @@ describe('coordinator agent_task_list tool', () => {
158
158
  expect(names).toContain('agent_task_list');
159
159
  expect(names).not.toContain('task_list');
160
160
  });
161
- it('does not advertise per-task cancellation on the blocking coordinator surface', () => {
161
+ it('advertises per-task cancellation now that a task can outlive its launch', () => {
162
162
  const coordinatorTools = buildCoordinatorTools({
163
163
  gateway: gatewayWith([]),
164
164
  workingDirectory: '/tmp/test',
165
165
  allowedAgentIds: ['solution-architecture'],
166
166
  });
167
167
  const names = coordinatorTools.map((tool) => tool.name);
168
- // create_task returns only after the worker is terminal, so the
169
- // supervisor cannot know a live task id in a later model turn.
170
- // Keeping cancel_task here only manufactured success for missing
171
- // or terminal ids because every gateway cancellation is a void
172
- // no-op in those states.
173
- expect(names).not.toContain('cancel_task');
168
+ // This assertion used to be its own inverse, and the reasoning was
169
+ // correct at the time: create_task returned only after the worker was
170
+ // terminal, so the supervisor could never hold a LIVE task id in a
171
+ // later turn, and cancel_task could only manufacture success for
172
+ // something already finished.
173
+ //
174
+ // `background: true` reinstates the precondition that argument rested
175
+ // on. A background launch hands back an id while the worker is still
176
+ // running, and a supervisor able to start one it cannot stop is a
177
+ // hole — so the tool comes back with the capability that makes it
178
+ // mean something.
179
+ expect(names).toContain('cancel_task');
174
180
  });
175
181
  });
176
182
  //# sourceMappingURL=task-list.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-list.test.js","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/task-list.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-list.test.js","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/task-list.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { CompletionInbox } from '../../gateway/completion-inbox.js';
1
2
  import type { PlanManager } from '../../manager/plan/lifecycle.js';
2
3
  import type { PendingAnswers, QuestionParkRecorder } from '../../runtime/query/question-park.js';
3
4
  import type { AgentRuntimeContext } from '../../types/agent/base.js';
@@ -23,10 +24,29 @@ export interface CoordinatorToolsOptions {
23
24
  workingDirectory: string;
24
25
  runtimeContext?: AgentRuntimeContext;
25
26
  allowedAgentIds: string[];
27
+ /**
28
+ * May this run delegate at all? Defaults to true.
29
+ *
30
+ * Same field, same name, as SupervisorAgentConfig.allowDelegation — the
31
+ * name is kept identical deliberately. This options bag already renames
32
+ * agentIds to allowedAgentIds, and a second rename on the road between
33
+ * the config and the decision would make the road untraceable.
34
+ */
35
+ allowDelegation?: boolean;
26
36
  taskStore?: TaskStore;
27
37
  runId?: RunId;
28
38
  getPlanManager?: () => PlanManager | undefined;
29
39
  onTaskLaunched?: TaskLaunchedCallback;
40
+ /**
41
+ * Where a completion goes when no call is left waiting for it.
42
+ *
43
+ * These tools claim a completion the moment they hand it to the model as a
44
+ * `tool_result`; anything unclaimed is delivered to the transcript as a
45
+ * notification instead. Without an inbox the tools still work and the
46
+ * blocking path is unchanged — only the abandoned and background
47
+ * completions go unheard, which is the behaviour before this existed.
48
+ */
49
+ completionInbox?: CompletionInbox;
30
50
  /**
31
51
  * HITL park channel for `ask_user_question`. The tool is registered
32
52
  * only when BOTH `resumeHandler` and `runId` are present — without a
@@ -54,5 +74,29 @@ export interface CoordinatorToolsOptions {
54
74
  */
55
75
  pendingAnswers?: PendingAnswers;
56
76
  }
77
+ /**
78
+ * How long a coordinator tool may wait on a delegated agent.
79
+ *
80
+ * The executor's own default is two minutes, sized for a file read or a
81
+ * test run, and its docstring says outright that a tool which legitimately
82
+ * runs longer declares its own. This one runs an entire agent, and did not.
83
+ *
84
+ * Measured on real traffic: three delegated children took 4m21s, 5m58s and
85
+ * 8m04s; all three parents timed out at 120s. The children were never
86
+ * killed — only the parent's wait was — so the blocking path was not
87
+ * occasionally missed, it was structurally unreachable, and the model was
88
+ * left polling a listing because that was the only move left to it.
89
+ *
90
+ * An hour rather than "a bit more than eight minutes" because a generic
91
+ * stopwatch is the wrong instrument for a child that is making progress:
92
+ * a failure should come from what the child is doing, not from the clock
93
+ * the parent happens to be holding. Peer runtimes agree — the ones that
94
+ * bound a delegated child at all land on an hour, and several impose no
95
+ * wall-clock bound whatsoever, bounding turns or depth instead.
96
+ *
97
+ * A wedged child is still caught, an hour later, and the run budget and
98
+ * iteration ceiling both still apply above this.
99
+ */
100
+ export declare const DELEGATION_TIMEOUT_MS: number;
57
101
  export declare function buildCoordinatorTools(opts: CoordinatorToolsOptions): ToolDefinition[];
58
102
  //# sourceMappingURL=index.d.ts.map
@@ -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;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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/coordinator/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACxE,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;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,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;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,eAAe,CAAA;IAEjC;;;;;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;AA+ID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,qBAAqB,QAAiB,CAAA;AAEnD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG,cAAc,EAAE,CAmwBrF"}