@wrongstack/core 0.10.3 → 0.31.1

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 (37) hide show
  1. package/dist/{agent-subagent-runner-DuRtZmhl.d.ts → agent-subagent-runner-DpZTLdBe.d.ts} +1 -1
  2. package/dist/{config-CJXBka2r.d.ts → config-BUEGM4JP.d.ts} +2 -0
  3. package/dist/coordination/index.d.ts +6 -6
  4. package/dist/coordination/index.js +414 -71
  5. package/dist/coordination/index.js.map +1 -1
  6. package/dist/defaults/index.d.ts +8 -8
  7. package/dist/defaults/index.js +388 -57
  8. package/dist/defaults/index.js.map +1 -1
  9. package/dist/execution/index.d.ts +5 -5
  10. package/dist/execution/index.js +47 -5
  11. package/dist/execution/index.js.map +1 -1
  12. package/dist/extension/index.d.ts +2 -2
  13. package/dist/{index-DnBHrz2y.d.ts → index-pXJdVLe0.d.ts} +1 -1
  14. package/dist/{index-DAHEM_II.d.ts → index-ysfO_DlX.d.ts} +1 -1
  15. package/dist/index.d.ts +13 -13
  16. package/dist/index.js +635 -242
  17. package/dist/index.js.map +1 -1
  18. package/dist/infrastructure/index.d.ts +2 -2
  19. package/dist/infrastructure/index.js +2 -1
  20. package/dist/infrastructure/index.js.map +1 -1
  21. package/dist/kernel/index.d.ts +2 -2
  22. package/dist/{mcp-servers-BgINZzuo.d.ts → mcp-servers-BzB3r7_c.d.ts} +1 -1
  23. package/dist/{multi-agent-coordinator-CjG-FZKj.d.ts → multi-agent-coordinator-DOXSgtom.d.ts} +5 -1
  24. package/dist/{null-fleet-bus-B3WdVY9i.d.ts → null-fleet-bus-CAQDGsKc.d.ts} +59 -3
  25. package/dist/{plan-templates-BUP4o-ds.d.ts → plan-templates-BZMi-VpU.d.ts} +1 -1
  26. package/dist/sdd/index.d.ts +3 -3
  27. package/dist/sdd/index.js +40 -3
  28. package/dist/sdd/index.js.map +1 -1
  29. package/dist/storage/index.d.ts +2 -2
  30. package/dist/{tool-executor-D87-_5Of.d.ts → tool-executor-BAi4WI2d.d.ts} +1 -1
  31. package/dist/types/index.d.ts +3 -3
  32. package/dist/types/index.js +2 -1
  33. package/dist/types/index.js.map +1 -1
  34. package/dist/utils/index.d.ts +76 -1
  35. package/dist/utils/index.js +171 -5
  36. package/dist/utils/index.js.map +1 -1
  37. package/package.json +1 -1
package/dist/sdd/index.js CHANGED
@@ -5499,6 +5499,10 @@ var NICKNAME_POOL = {
5499
5499
  "pasteur": { name: "Pasteur", domain: "biology" },
5500
5500
  "hawking": { name: "Hawking", domain: "cosmology" },
5501
5501
  "sagan": { name: "Sagan", domain: "cosmology" },
5502
+ // Exploration & navigation
5503
+ "columbus": { name: "Columbus", domain: "exploration" },
5504
+ "polo": { name: "Polo", domain: "exploration" },
5505
+ "magellan": { name: "Magellan", domain: "exploration" },
5502
5506
  // Chemistry / materials
5503
5507
  "lavoisier": { name: "Lavoisier", domain: "chemistry" },
5504
5508
  "mendeleev": { name: "Mendeleev", domain: "chemistry" }
@@ -5553,7 +5557,7 @@ function formatRole(role) {
5553
5557
  }
5554
5558
 
5555
5559
  // src/coordination/multi-agent-coordinator.ts
5556
- var DefaultMultiAgentCoordinator = class extends EventEmitter {
5560
+ var DefaultMultiAgentCoordinator = class _DefaultMultiAgentCoordinator extends EventEmitter {
5557
5561
  coordinatorId;
5558
5562
  config;
5559
5563
  runner;
@@ -5568,8 +5572,12 @@ var DefaultMultiAgentCoordinator = class extends EventEmitter {
5568
5572
  * names) to memorable ones here — that's what surfaces in the fleet monitor.
5569
5573
  */
5570
5574
  usedNicknames = /* @__PURE__ */ new Set();
5575
+ /** Maps subagentId → nickname key (e.g. 'einstein'). Used to free the slot on remove(). */
5576
+ subagentNicknames = /* @__PURE__ */ new Map();
5571
5577
  pendingTasks = [];
5572
5578
  completedResults = [];
5579
+ /** Prevents completedResults from growing unbounded in long-running coordinators. */
5580
+ static MAX_COMPLETED_RESULTS = 1e4;
5573
5581
  totalIterations = 0;
5574
5582
  inFlight = 0;
5575
5583
  /**
@@ -5624,7 +5632,7 @@ var DefaultMultiAgentCoordinator = class extends EventEmitter {
5624
5632
  * Explicit, human-chosen names — including nicknames already assigned by
5625
5633
  * `Director.spawn()` — are left untouched, so this never double-assigns.
5626
5634
  */
5627
- withNickname(subagent) {
5635
+ withNickname(subagent, subagentId) {
5628
5636
  const role = subagent.role ?? "subagent";
5629
5637
  const name = subagent.name?.trim() ?? "";
5630
5638
  const isPlaceholder = name === "" || name.toLowerCase() === role.toLowerCase() || name === "subagent" || name === "adhoc" || name === "generic" || /^slot-/.test(name);
@@ -5632,11 +5640,12 @@ var DefaultMultiAgentCoordinator = class extends EventEmitter {
5632
5640
  const nickname = assignNickname(role, this.usedNicknames);
5633
5641
  const baseKey = nickname.split(" ")[0].toLowerCase().replace(/[^a-z0-9-]/g, "-");
5634
5642
  this.usedNicknames.add(baseKey);
5643
+ this.subagentNicknames.set(subagentId, baseKey);
5635
5644
  return { ...subagent, name: nickname };
5636
5645
  }
5637
5646
  async spawn(subagent) {
5638
- subagent = this.withNickname(subagent);
5639
5647
  const id = subagent.id || randomUUID();
5648
+ subagent = this.withNickname(subagent, id);
5640
5649
  if (this.subagents.has(id)) {
5641
5650
  throw new Error(`Subagent id "${id}" already exists \u2014 refusing to overwrite`);
5642
5651
  }
@@ -6078,6 +6087,12 @@ var DefaultMultiAgentCoordinator = class extends EventEmitter {
6078
6087
  }
6079
6088
  recordCompletion(result) {
6080
6089
  this.completedResults.push(result);
6090
+ if (this.completedResults.length > _DefaultMultiAgentCoordinator.MAX_COMPLETED_RESULTS) {
6091
+ this.completedResults.splice(
6092
+ 0,
6093
+ this.completedResults.length - _DefaultMultiAgentCoordinator.MAX_COMPLETED_RESULTS
6094
+ );
6095
+ }
6081
6096
  this.totalIterations += result.iterations;
6082
6097
  if (this.inFlight > 0) {
6083
6098
  this.inFlight--;
@@ -6147,7 +6162,29 @@ var DefaultMultiAgentCoordinator = class extends EventEmitter {
6147
6162
  }
6148
6163
  this.subagents.delete(subagentId);
6149
6164
  this.terminating.delete(subagentId);
6165
+ const nicknameKey = this.subagentNicknames.get(subagentId);
6166
+ if (nicknameKey) {
6167
+ this.usedNicknames.delete(nicknameKey);
6168
+ this.subagentNicknames.delete(subagentId);
6169
+ }
6170
+ const orphaned = this.pendingTasks.filter((t) => t.subagentId === subagentId);
6150
6171
  this.pendingTasks = this.pendingTasks.filter((t) => t.subagentId !== subagentId);
6172
+ for (const t of orphaned) {
6173
+ const synthetic = {
6174
+ subagentId,
6175
+ taskId: t.id,
6176
+ status: "stopped",
6177
+ error: {
6178
+ kind: "aborted_by_parent",
6179
+ message: `Subagent "${subagentId}" was removed while task "${t.id}" was pending`,
6180
+ retryable: false
6181
+ },
6182
+ iterations: 0,
6183
+ toolCalls: 0,
6184
+ durationMs: 0
6185
+ };
6186
+ this.recordCompletion(synthetic);
6187
+ }
6151
6188
  this.fleetBus?.emit({
6152
6189
  subagentId,
6153
6190
  ts: Date.now(),