@namzu/sdk 10.0.0 → 11.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 (39) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/dist/manager/plan/lifecycle.d.ts +10 -0
  3. package/dist/manager/plan/lifecycle.d.ts.map +1 -1
  4. package/dist/manager/plan/lifecycle.js +14 -0
  5. package/dist/manager/plan/lifecycle.js.map +1 -1
  6. package/dist/runtime/query/__tests__/a-plan-that-succeeded-says-so.test.d.ts +2 -0
  7. package/dist/runtime/query/__tests__/a-plan-that-succeeded-says-so.test.d.ts.map +1 -0
  8. package/dist/runtime/query/__tests__/a-plan-that-succeeded-says-so.test.js +90 -0
  9. package/dist/runtime/query/__tests__/a-plan-that-succeeded-says-so.test.js.map +1 -0
  10. package/dist/runtime/query/result.d.ts.map +1 -1
  11. package/dist/runtime/query/result.js +17 -1
  12. package/dist/runtime/query/result.js.map +1 -1
  13. package/dist/tools/coordinator/__tests__/a-listing-is-not-a-back-door.test.d.ts +2 -0
  14. package/dist/tools/coordinator/__tests__/a-listing-is-not-a-back-door.test.d.ts.map +1 -0
  15. package/dist/tools/coordinator/__tests__/a-listing-is-not-a-back-door.test.js +139 -0
  16. package/dist/tools/coordinator/__tests__/a-listing-is-not-a-back-door.test.js.map +1 -0
  17. package/dist/tools/coordinator/__tests__/a-plan-step-reports-its-own-outcome.test.d.ts +2 -0
  18. package/dist/tools/coordinator/__tests__/a-plan-step-reports-its-own-outcome.test.d.ts.map +1 -0
  19. package/dist/tools/coordinator/__tests__/a-plan-step-reports-its-own-outcome.test.js +160 -0
  20. package/dist/tools/coordinator/__tests__/a-plan-step-reports-its-own-outcome.test.js.map +1 -0
  21. package/dist/tools/coordinator/__tests__/approve-plan.test.js +21 -6
  22. package/dist/tools/coordinator/__tests__/approve-plan.test.js.map +1 -1
  23. package/dist/tools/coordinator/__tests__/completion-delivery.test.js +4 -0
  24. package/dist/tools/coordinator/__tests__/completion-delivery.test.js.map +1 -1
  25. package/dist/tools/coordinator/__tests__/task-list.test.js +44 -15
  26. package/dist/tools/coordinator/__tests__/task-list.test.js.map +1 -1
  27. package/dist/tools/coordinator/index.d.ts.map +1 -1
  28. package/dist/tools/coordinator/index.js +159 -8
  29. package/dist/tools/coordinator/index.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/manager/plan/lifecycle.ts +14 -0
  32. package/src/runtime/query/__tests__/a-plan-that-succeeded-says-so.test.ts +109 -0
  33. package/src/runtime/query/result.ts +18 -1
  34. package/src/tools/coordinator/__tests__/a-listing-is-not-a-back-door.test.ts +171 -0
  35. package/src/tools/coordinator/__tests__/a-plan-step-reports-its-own-outcome.test.ts +215 -0
  36. package/src/tools/coordinator/__tests__/approve-plan.test.ts +32 -11
  37. package/src/tools/coordinator/__tests__/completion-delivery.test.ts +7 -0
  38. package/src/tools/coordinator/__tests__/task-list.test.ts +47 -20
  39. package/src/tools/coordinator/index.ts +177 -8
package/CHANGELOG.md CHANGED
@@ -1,5 +1,86 @@
1
1
  # Changelog
2
2
 
3
+ ## 11.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 82267e1: `agent_task_list` and `wait_for_task` are scoped to the run that launched the task.
8
+
9
+ A supervisor could read a sibling run's worker output by listing.
10
+ `SupervisorAgentConfig.gateway` exists so a host can hand the SAME gateway to
11
+ several runs, which makes `TaskGateway.listTasks()` gateway-wide by design —
12
+ and `agent_task_list` handed that straight to the model, including each task's
13
+ `result`, the worker's actual output. `wait_for_task` had the same reach through
14
+ `getTask`.
15
+
16
+ `CompletionInbox` closed exactly this on the push side, because
17
+ `onTaskCompleted` is a broadcast and a shared gateway would otherwise hand each
18
+ supervisor the other's completions. The pull side kept no such record and asked
19
+ the gateway directly, so the same leak stayed open through a different door.
20
+
21
+ The scope lives in the coordinator tools rather than in `listTasks()`, because
22
+ the two answer different questions. A host calling `listTasks()` is the operator
23
+ and may legitimately want everything on its gateway; a model calling
24
+ `agent_task_list` is one run asking about its own work. Narrowing the gateway
25
+ method would take the operator's view away in order to fix the model's.
26
+
27
+ `wait_for_task` gives the same answer for a sibling's task as for one that never
28
+ existed. Distinguishing them would confirm a task id to a run that was not
29
+ supposed to know it — the leak in miniature.
30
+
31
+ **Breaking, for a host that shares one gateway across runs.** A run now sees
32
+ only the tasks it launched through its own `create_task`. If you relied on one
33
+ run listing another's tasks, that path is closed; use `TaskGateway.listTasks()`
34
+ from the host, which is unchanged and still gateway-wide.
35
+
36
+ **Also breaking in a narrower way:** a task launched through a DIFFERENT surface
37
+ on the same gateway — `buildAgentTool`, or the host directly — is not listed by
38
+ these tools. That is the same rule rather than an exception to it, but it is a
39
+ behaviour change if you mixed surfaces on one gateway and listed through the
40
+ coordinator.
41
+
42
+ - 368fa4b: A plan step reports its own outcome, so a plan that succeeded can say so.
43
+
44
+ A plan's steps had no relationship to the work that carried them out.
45
+ `approve_plan` built steps, `create_task` launched workers, and nothing
46
+ connected the two — so no step could ever be observed, `updateStepStatus` had no
47
+ production caller anywhere, and a plan could reach `failed` (the error path
48
+ calls `failPlan`) or sit at `executing` forever, but never `completed`. A host
49
+ reading `plan.status` after a fully successful run was told the work was still
50
+ going.
51
+
52
+ **Two bindings, because there are two kinds of step.**
53
+
54
+ - A **delegated** step reports through the launch that carries it out:
55
+ `create_task` gains `plan_step_id`. The step goes `running` when the worker
56
+ starts and `completed` or `failed` when it settles — from the same
57
+ two-authority check the tool result uses, so a worker that returned
58
+ `status: 'failed'` under a gateway state of `completed` fails its step.
59
+ - An **orchestrator-owned** step — one with no `agent_id` — has no tool call to
60
+ bind to at all. The new `update_plan_step` tool is how it reports, and without
61
+ it a plan containing one could never settle however well it went. `skipped` is
62
+ a first-class outcome there: a plan that turned out not to need a step went
63
+ right, and forcing that into `completed` or `failed` would make the plan lie
64
+ in one direction or the other.
65
+
66
+ **`approve_plan` now tells the model the step ids**, in its output and in
67
+ `data.steps`. Both bindings name ids, and a binding whose caller has never been
68
+ told the ids is a binding that does not exist.
69
+
70
+ **The run settles the plan on success**, but only when every step has reported.
71
+ The check is a read — the new `PlanManager.unreportedSteps` — rather than a
72
+ caught throw: `completePlan` refuses an unreported step on purpose, and letting
73
+ that throw at the end of a successful run would turn a run that worked into a
74
+ run that crashed on its way out. A plan with silent steps is left `executing`,
75
+ which is the honest answer.
76
+
77
+ **Breaking:** `update_plan_step` is a new name in the coordinator tool set, so a
78
+ host that registers its own tool under that name will now get
79
+ `ToolNameCollisionError` at run start. `approve_plan`'s approved output is no
80
+ longer byte-identical — it opens with the same sentence and continues with the
81
+ step roster; the historical text is still the prefix, and `data.steps` is there
82
+ so a host need not parse prose.
83
+
3
84
  ## 10.0.0
4
85
 
5
86
  ### Major Changes
@@ -46,6 +46,16 @@ export declare class PlanManager {
46
46
  get active(): Plan | null;
47
47
  get isActive(): boolean;
48
48
  get needsApproval(): boolean;
49
+ /**
50
+ * Steps that have not said how they went — the reason `completePlan` may
51
+ * refuse, exposed so a caller can ask before it commits.
52
+ *
53
+ * The kernel settles a successful plan only when this is empty. It cannot
54
+ * catch the refusal instead: a throw on the success path would turn a run
55
+ * that worked into a run that crashed on its way out, which is a worse
56
+ * version of the bug the refusal exists to prevent.
57
+ */
58
+ get unreportedSteps(): readonly PlanStep[];
49
59
  startGenerating(title: string): Plan;
50
60
  addStep(step: Omit<PlanStep, 'status'>): PlanStep | null;
51
61
  markReady(summary?: string): Plan | null;
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/manager/plan/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,KAAK,EACX,IAAI,EACJ,mBAAmB,EACnB,oBAAoB,EACpB,QAAQ,EACR,MAAM,2BAA2B,CAAA;AAIlC,MAAM,WAAW,SAAS;IACzB,IAAI,EACD,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,mBAAmB,GACnB,gBAAgB,GAChB,aAAa,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,CAAC,EAAE,QAAQ,CAAA;CACf;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;AAE1D,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAEjG;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,WAAW;IACvB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,eAAe,CAAC,CAAqB;gBAEjC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,mBAAmB;IAK/D,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAItD,EAAE,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAO3C,OAAO,CAAC,IAAI;IAQZ,IAAI,MAAM,IAAI,IAAI,GAAG,IAAI,CAExB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAepC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,QAAQ,GAAG,IAAI;IAaxD,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAWlC,eAAe,IAAI,OAAO,CAAC,oBAAoB,CAAC;IA0CtD,OAAO,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,IAAI;IAchD,cAAc,IAAI,IAAI,GAAG,IAAI;IAS7B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAa7F;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,IAAI,IAAI,GAAG,IAAI;IA6B3B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAgBrC,kBAAkB,IAAI,QAAQ,GAAG,IAAI;IAkBrC,KAAK,IAAI,IAAI;CAGb"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/manager/plan/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,KAAK,EACX,IAAI,EACJ,mBAAmB,EACnB,oBAAoB,EACpB,QAAQ,EACR,MAAM,2BAA2B,CAAA;AAIlC,MAAM,WAAW,SAAS;IACzB,IAAI,EACD,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,mBAAmB,GACnB,gBAAgB,GAChB,aAAa,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,CAAC,EAAE,QAAQ,CAAA;CACf;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;AAE1D,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAEjG;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,WAAW;IACvB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,eAAe,CAAC,CAAqB;gBAEjC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,mBAAmB;IAK/D,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAItD,EAAE,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAO3C,OAAO,CAAC,IAAI;IAQZ,IAAI,MAAM,IAAI,IAAI,GAAG,IAAI,CAExB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;;;;;;OAQG;IACH,IAAI,eAAe,IAAI,SAAS,QAAQ,EAAE,CAGzC;IAED,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAepC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,QAAQ,GAAG,IAAI;IAaxD,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAWlC,eAAe,IAAI,OAAO,CAAC,oBAAoB,CAAC;IA0CtD,OAAO,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,IAAI;IAchD,cAAc,IAAI,IAAI,GAAG,IAAI;IAS7B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAa7F;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,IAAI,IAAI,GAAG,IAAI;IA6B3B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAgBrC,kBAAkB,IAAI,QAAQ,GAAG,IAAI;IAkBrC,KAAK,IAAI,IAAI;CAGb"}
@@ -62,6 +62,20 @@ export class PlanManager {
62
62
  get needsApproval() {
63
63
  return this.currentPlan?.status === 'pending_approval';
64
64
  }
65
+ /**
66
+ * Steps that have not said how they went — the reason `completePlan` may
67
+ * refuse, exposed so a caller can ask before it commits.
68
+ *
69
+ * The kernel settles a successful plan only when this is empty. It cannot
70
+ * catch the refusal instead: a throw on the success path would turn a run
71
+ * that worked into a run that crashed on its way out, which is a worse
72
+ * version of the bug the refusal exists to prevent.
73
+ */
74
+ get unreportedSteps() {
75
+ if (!this.currentPlan)
76
+ return [];
77
+ return this.currentPlan.steps.filter((s) => s.status === 'pending' || s.status === 'running');
78
+ }
65
79
  startGenerating(title) {
66
80
  const plan = {
67
81
  id: generatePlanId(),
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/manager/plan/lifecycle.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAoBlD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,WAAW;IACf,WAAW,GAAgB,IAAI,CAAA;IAC/B,KAAK,CAAO;IACZ,SAAS,GAAwB,EAAE,CAAA;IACnC,eAAe,CAAsB;IAE7C,YAAY,KAAY,EAAE,eAAqC;QAC9D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IACvC,CAAC;IAED,kBAAkB,CAAC,OAA4B;QAC9C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAA;IAC/B,CAAC;IAED,EAAE,CAAC,QAA2B;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7B,OAAO,GAAG,EAAE;YACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAA;QAC9D,CAAC,CAAA;IACF,CAAC;IAEO,IAAI,CAAC,KAAgB;QAC5B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC;gBACJ,QAAQ,CAAC,KAAK,CAAC,CAAA;YAChB,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACX,CAAC;IACF,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,WAAW,CAAA;IACxB,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IACnF,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,WAAW,EAAE,MAAM,KAAK,kBAAkB,CAAA;IACvD,CAAC;IAED,eAAe,CAAC,KAAa;QAC5B,MAAM,IAAI,GAAS;YAClB,EAAE,EAAE,cAAc,EAAE;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,YAAY;YACpB,KAAK;YACL,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAA;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO,CAAC,IAA8B;QACrC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAClC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,YAAY;YAAE,OAAO,IAAI,CAAA;QAEzD,MAAM,QAAQ,GAAa;YAC1B,GAAG,IAAI;YACP,MAAM,EAAE,SAAS;SACjB,CAAA;QAED,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACrC,OAAO,QAAQ,CAAA;IAChB,CAAC;IAED,SAAS,CAAC,OAAgB;QACzB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAClC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,YAAY;YAAE,OAAO,IAAI,CAAA;QAEzD,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,OAAO,CAAA;QACjC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,OAAO,CAAA;QAClC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QACzD,OAAO,IAAI,CAAC,WAAW,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,eAAe;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;QACvD,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,kBAAkB,CAAA;QAE5C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,UAAU,CAAA;YACpC,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACxC,IAAI,CAAC,WAAW,CAAC,eAAe,GAAG,gCAAgC,CAAA;YACnE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YAC5D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,gCAAgC,EAAE,CAAA;QACvE,CAAC;QAED,MAAM,OAAO,GAAwB;YACpC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;YAC7B,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;YAC7B,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;SACjC,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAEpD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAA;YAChD,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,UAAU,CAAA;YACpC,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACxC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAC7D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,UAAU,CAAA;YACpC,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACxC,IAAI,CAAC,WAAW,CAAC,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAA;YACpD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAC7D,CAAC;QAED,OAAO,QAAQ,CAAA;IAChB,CAAC;IAED,OAAO,CAAC,aAA0B;QACjC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAClC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,kBAAkB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,OAAO;YACxF,OAAO,IAAI,CAAA;QAEZ,IAAI,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,aAAa,CAAA;QACvC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,UAAU,CAAA;QACpC,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAC5D,OAAO,IAAI,CAAC,WAAW,CAAA;IACxB,CAAC;IAED,cAAc;QACb,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAClC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,IAAI,CAAA;QAEvD,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAA;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAC7D,OAAO,IAAI,CAAC,WAAW,CAAA;IACxB,CAAC;IAED,gBAAgB,CAAC,MAAc,EAAE,MAA0B,EAAE,KAAc;QAC1E,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAElC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;QAChE,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAEtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAE7B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;QACtE,OAAO,IAAI,CAAA;IACZ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY;QACX,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAElC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CACvD,CAAA;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YAC9D,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;YAC7C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpF,MAAM,OAAO,GAAG,GAAG,UAAU,CAAC,MAAM,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAA;YAChF,MAAM,IAAI,KAAK,CACd,yBAAyB,IAAI,CAAC,WAAW,CAAC,KAAK,MAAM,OAAO,kCAAkC,MAAM,6NAA6N,CACjU,CAAA;QACF,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CACzD,CAAA;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAA;QAC1D,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACzC,IAAI,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa;YAChD,IAAI,EAAE,IAAI,CAAC,WAAW;SACtB,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,WAAW,CAAA;IACxB,CAAC;IAED,QAAQ,CAAC,MAAc;QACtB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAElC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAA;QAClC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAEzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC5D,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;YACxB,CAAC;QACF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAC1D,OAAO,IAAI,CAAC,WAAW,CAAA;IACxB,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAClC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAA;QAExD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,SAAQ;YAEvC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACnD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAA;gBAC/D,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAA;YACvE,CAAC,CAAC,CAAA;YAEF,IAAI,YAAY;gBAAE,OAAO,IAAI,CAAA;QAC9B,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IACxB,CAAC;CACD"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/manager/plan/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=a-plan-that-succeeded-says-so.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a-plan-that-succeeded-says-so.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime/query/__tests__/a-plan-that-succeeded-says-so.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,90 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { MockLLMProvider, registerMock } from '../../../provider/index.js';
3
+ import { ToolRegistry } from '../../../registry/index.js';
4
+ import { generateProjectId, generateSessionId, generateTenantId, generateThreadId, } from '../../../utils/id.js';
5
+ import { drainQuery } from '../index.js';
6
+ /**
7
+ * Nothing settled a plan that SUCCEEDED.
8
+ *
9
+ * The error path calls `failPlan`, so a run that blew up said so. The success
10
+ * path never touched the plan manager at all — so a plan could reach `failed`
11
+ * or sit at `executing` forever, but never `completed`. A host reading
12
+ * `plan.status` after a successful run was told the work was still going.
13
+ *
14
+ * Settlement is conditional on every step having reported, and the condition is
15
+ * read rather than caught: `completePlan` refuses an unreported step on
16
+ * purpose, and letting that throw here would turn a run that worked into a run
17
+ * that crashed on its way out — a worse version of the bug the refusal exists
18
+ * to prevent.
19
+ */
20
+ registerMock();
21
+ /** Run to completion, with a plan seeded through the host's own seam. */
22
+ async function runWithPlan(seed) {
23
+ let captured;
24
+ await drainQuery({
25
+ provider: new MockLLMProvider({ responses: [{ content: 'done' }] }),
26
+ tools: new ToolRegistry(),
27
+ agentId: 'a',
28
+ agentName: 'A',
29
+ messages: [{ role: 'user', content: 'go' }],
30
+ workingDirectory: process.cwd(),
31
+ runConfig: { model: 'mock', tokenBudget: 100_000, timeoutMs: 30_000, maxIterations: 4 },
32
+ projectId: generateProjectId(),
33
+ sessionId: generateSessionId(),
34
+ threadId: generateThreadId(),
35
+ tenantId: generateTenantId(),
36
+ // The documented host seam: `drainQuery` hands the plan manager over
37
+ // BEFORE the iteration loop, which is exactly what makes a host-driven
38
+ // plan possible at all.
39
+ onContextCreated: ({ planManager }) => {
40
+ captured = planManager;
41
+ seed(planManager);
42
+ },
43
+ });
44
+ if (!captured)
45
+ throw new Error('onContextCreated never fired');
46
+ return captured;
47
+ }
48
+ function twoStepPlan(pm) {
49
+ pm.startGenerating('the work');
50
+ pm.addStep({ id: 'step_1', description: 'first', dependsOn: [], order: 1 });
51
+ pm.addStep({ id: 'step_2', description: 'second', dependsOn: [], order: 2 });
52
+ pm.markReady();
53
+ pm.approve();
54
+ pm.startExecution();
55
+ }
56
+ describe('a run that succeeded settles the plan it was executing', () => {
57
+ it('reports completed when every step reported', async () => {
58
+ const pm = await runWithPlan((p) => {
59
+ twoStepPlan(p);
60
+ p.updateStepStatus('step_1', 'completed');
61
+ p.updateStepStatus('step_2', 'skipped');
62
+ });
63
+ expect(pm.active?.status).toBe('completed');
64
+ });
65
+ it('reports failed when a step actually failed', async () => {
66
+ const pm = await runWithPlan((p) => {
67
+ twoStepPlan(p);
68
+ p.updateStepStatus('step_1', 'completed');
69
+ p.updateStepStatus('step_2', 'failed');
70
+ });
71
+ expect(pm.active?.status).toBe('failed');
72
+ });
73
+ it('leaves it executing — and does not throw — when a step never reported', async () => {
74
+ // The honest answer. The caller and the plan disagree about whether the
75
+ // work is over, and the end of a successful run is not the place to
76
+ // resolve that by guessing. The run itself must still finish cleanly,
77
+ // which is the half that would break if the refusal were caught here
78
+ // instead of checked.
79
+ const pm = await runWithPlan((p) => {
80
+ twoStepPlan(p);
81
+ p.updateStepStatus('step_1', 'completed');
82
+ });
83
+ expect(pm.active?.status).toBe('executing');
84
+ });
85
+ it('does nothing when the run had no plan at all', async () => {
86
+ const pm = await runWithPlan(() => { });
87
+ expect(pm.active).toBeNull();
88
+ });
89
+ });
90
+ //# sourceMappingURL=a-plan-that-succeeded-says-so.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a-plan-that-succeeded-says-so.test.js","sourceRoot":"","sources":["../../../../src/runtime/query/__tests__/a-plan-that-succeeded-says-so.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAkB,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAInE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,cAAc,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,EAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;IACvC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,YAAY,GAAG,SAAS,CAAA;CACnD;AAED,qBAAa,eAAe;IAC3B,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,EAAE,qBAAqB;IAIlC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC;IAmCrD,eAAe,CAAC,QAAQ,EAAE,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC;IAIzD,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC;IAiGpE,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;CAI9B"}
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAkB,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAInE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,cAAc,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,EAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;IACvC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,YAAY,GAAG,SAAS,CAAA;CACnD;AAED,qBAAa,eAAe;IAC3B,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,EAAE,qBAAqB;IAIlC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC;IAoDrD,eAAe,CAAC,QAAQ,EAAE,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC;IAIzD,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC;IAiGpE,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;CAI9B"}
@@ -10,10 +10,26 @@ export class ResultAssembler {
10
10
  this.config = config;
11
11
  }
12
12
  async *completeRun(rootSpan) {
13
- const { runMgr, activityStore, log, emitEvent, drainPending } = this.config;
13
+ const { runMgr, planManager, activityStore, log, emitEvent, drainPending } = this.config;
14
14
  if (runMgr.status === 'running') {
15
15
  runMgr.markCompleted(runMgr.stopReason);
16
16
  }
17
+ // Settle the plan, which nothing did on this path — so a plan could
18
+ // reach `failed` (the error path calls `failPlan`) or stay `executing`
19
+ // forever, but never `completed`. A host reading `plan.status` after a
20
+ // successful run saw "still running".
21
+ //
22
+ // Only when every step has reported, and the check is a read rather
23
+ // than a caught throw: `completePlan` refuses an unreported step on
24
+ // purpose, and turning a run that worked into a run that crashed on its
25
+ // way out would be a worse version of the bug the refusal prevents.
26
+ //
27
+ // A plan with steps nobody reported is LEFT `executing`, which is the
28
+ // honest answer — the caller and the plan disagree about whether the
29
+ // work is over, and this is not the place to resolve that by guessing.
30
+ if (planManager.isActive && planManager.unreportedSteps.length === 0) {
31
+ planManager.completePlan();
32
+ }
17
33
  await emitEvent({
18
34
  type: 'run_completed',
19
35
  runId: runMgr.id,
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/runtime/query/result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/runtime/query/result.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=a-listing-is-not-a-back-door.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a-listing-is-not-a-back-door.test.d.ts","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/a-listing-is-not-a-back-door.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,139 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { buildCoordinatorTools } from '../index.js';
3
+ /**
4
+ * A supervisor could read a sibling run's worker output by listing.
5
+ *
6
+ * `SupervisorAgentConfig.gateway` exists so a host can hand the SAME gateway to
7
+ * several runs, which makes `listTasks()` gateway-wide by design.
8
+ * `agent_task_list` handed that straight to the model — including each task's
9
+ * `result`, the worker's actual output — and `wait_for_task` had the same reach
10
+ * through `getTask`.
11
+ *
12
+ * `CompletionInbox` closed exactly this on the push side, because
13
+ * `onTaskCompleted` is a broadcast and a shared gateway would otherwise hand
14
+ * each supervisor the other's completions. The pull side kept no such record
15
+ * and asked the gateway directly, so the same leak stayed open through a
16
+ * different door.
17
+ */
18
+ const AGENTS = ['reviewer', 'researcher'];
19
+ function makeContext() {
20
+ return {
21
+ runId: 'run_scope',
22
+ workingDirectory: '/tmp/test',
23
+ abortSignal: new AbortController().signal,
24
+ env: {},
25
+ log: () => { },
26
+ };
27
+ }
28
+ /** One gateway, as a host sharing it between two supervisors would have. */
29
+ function sharedGateway() {
30
+ const handles = new Map();
31
+ let seq = 0;
32
+ const gateway = {
33
+ createTask: async (opts) => {
34
+ seq += 1;
35
+ const taskId = `tsk_${seq}`;
36
+ const handle = {
37
+ taskId,
38
+ agentId: opts.agentId,
39
+ state: 'completed',
40
+ createdAt: 1_000,
41
+ completedAt: 2_000,
42
+ result: {
43
+ status: 'completed',
44
+ result: `output of ${opts.agentId} on ${taskId}`,
45
+ },
46
+ };
47
+ handles.set(taskId, handle);
48
+ return handle;
49
+ },
50
+ waitForTask: async (taskId) => handles.get(taskId),
51
+ getTask: (taskId) => handles.get(taskId),
52
+ listTasks: () => [...handles.values()],
53
+ cancelTask: () => undefined,
54
+ continueTask: async () => undefined,
55
+ onTaskCompleted: () => () => { },
56
+ };
57
+ return gateway;
58
+ }
59
+ /** A run's own coordinator surface over a gateway it may be sharing. */
60
+ function runOver(gateway) {
61
+ const tools = buildCoordinatorTools({
62
+ gateway,
63
+ workingDirectory: '/tmp/test',
64
+ allowedAgentIds: AGENTS,
65
+ });
66
+ const named = (name) => {
67
+ const t = tools.find((tool) => tool.name === name);
68
+ if (!t)
69
+ throw new Error(`${name} missing from coordinator builder`);
70
+ return t;
71
+ };
72
+ return {
73
+ launch: (agentId) => named('create_task').execute({ agent_id: agentId, prompt: 'work', description: `${agentId} work` }, makeContext()),
74
+ list: () => named('agent_task_list').execute({}, makeContext()),
75
+ waitFor: (taskId) => named('wait_for_task').execute({ task_id: taskId }, makeContext()),
76
+ };
77
+ }
78
+ describe('one run cannot read another run through the listing', () => {
79
+ it('lists only the tasks this run launched', async () => {
80
+ const gateway = sharedGateway();
81
+ const first = runOver(gateway);
82
+ const second = runOver(gateway);
83
+ await first.launch('reviewer');
84
+ await second.launch('researcher');
85
+ const listed = await second.list();
86
+ // Its own, yes.
87
+ expect(listed.output).toContain('tsk_2');
88
+ // The sibling's task, and — the part that matters — the sibling's
89
+ // worker output, which the listing renders inline.
90
+ expect(listed.output).not.toContain('tsk_1');
91
+ expect(listed.output).not.toContain('output of reviewer');
92
+ });
93
+ it('counts only its own in the summary', async () => {
94
+ // The summary is what a supervisor reads to decide "done vs not done".
95
+ // A total that includes a sibling's tasks is a wrong answer to that
96
+ // question even when no output leaks with it.
97
+ const gateway = sharedGateway();
98
+ const first = runOver(gateway);
99
+ const second = runOver(gateway);
100
+ await first.launch('reviewer');
101
+ await first.launch('reviewer');
102
+ await second.launch('researcher');
103
+ const listed = await second.list();
104
+ const data = listed.data;
105
+ expect(data.summary.total).toBe(1);
106
+ expect(data.items).toHaveLength(1);
107
+ });
108
+ it('refuses to wait on a task another run launched', async () => {
109
+ const gateway = sharedGateway();
110
+ const first = runOver(gateway);
111
+ const second = runOver(gateway);
112
+ await first.launch('reviewer');
113
+ const waited = await second.waitFor('tsk_1');
114
+ expect(waited.success).toBe(false);
115
+ expect(waited.output).not.toContain('output of reviewer');
116
+ });
117
+ it('says the same thing about a task that never existed', async () => {
118
+ // The refusal must not distinguish "belongs to someone else" from
119
+ // "never existed". Confirming a real id to a run that should not know
120
+ // it is the leak in miniature.
121
+ const gateway = sharedGateway();
122
+ const first = runOver(gateway);
123
+ const second = runOver(gateway);
124
+ await first.launch('reviewer');
125
+ const sibling = await second.waitFor('tsk_1');
126
+ const fictional = await second.waitFor('tsk_9999');
127
+ expect(sibling.output).toBe(fictional.output.replace('tsk_9999', 'tsk_1'));
128
+ });
129
+ it('still lets a run wait on its own task', async () => {
130
+ // The scope has to be a filter, not a wall — a run that launched a task
131
+ // must still be able to read it back, or the fix breaks delegation.
132
+ const gateway = sharedGateway();
133
+ const only = runOver(gateway);
134
+ await only.launch('reviewer');
135
+ const waited = await only.waitFor('tsk_1');
136
+ expect(waited.success).toBe(true);
137
+ });
138
+ });
139
+ //# sourceMappingURL=a-listing-is-not-a-back-door.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a-listing-is-not-a-back-door.test.js","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/a-listing-is-not-a-back-door.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=a-plan-step-reports-its-own-outcome.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a-plan-step-reports-its-own-outcome.test.d.ts","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/a-plan-step-reports-its-own-outcome.test.ts"],"names":[],"mappings":""}