@wrongstack/core 0.276.4 → 0.277.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 (68) hide show
  1. package/dist/{agent-bridge-D7A-eu3C.d.ts → agent-bridge-BFJ2ODzI.d.ts} +1 -1
  2. package/dist/{agent-subagent-runner-CEuw4ATz.d.ts → agent-subagent-runner-BimKihiC.d.ts} +7 -7
  3. package/dist/{brain-BLOyN5ZP.d.ts → brain-CCfuEOdp.d.ts} +1 -1
  4. package/dist/{compactor-DcBpaJsI.d.ts → compactor-D3BGw26y.d.ts} +1 -1
  5. package/dist/{config-Bf5mj-ad.d.ts → config-DAOjriz9.d.ts} +1 -1
  6. package/dist/{context-CLnUMW5g.d.ts → context-DPlA6kid.d.ts} +5 -6
  7. package/dist/coordination/index.d.ts +17 -17
  8. package/dist/coordination/index.js +38 -14
  9. package/dist/coordination/index.js.map +1 -1
  10. package/dist/defaults/index.d.ts +27 -27
  11. package/dist/defaults/index.js +96 -53
  12. package/dist/defaults/index.js.map +1 -1
  13. package/dist/execution/index.d.ts +15 -15
  14. package/dist/execution/index.js +13 -1
  15. package/dist/execution/index.js.map +1 -1
  16. package/dist/execution/prompt-enhancer.d.ts +1 -1
  17. package/dist/extension/index.d.ts +6 -6
  18. package/dist/{global-mailbox-Iqfkgmwu.d.ts → global-mailbox-Dr4cTKqL.d.ts} +1 -1
  19. package/dist/{goal-store-DGb6b5Ed.d.ts → goal-store-C1uH4srH.d.ts} +1 -1
  20. package/dist/hq/index.d.ts +5 -5
  21. package/dist/{index-Cn0NOshr.d.ts → index-DJXj-dcr.d.ts} +5 -5
  22. package/dist/{index-L4RZN9jJ.d.ts → index-cMEmzCVN.d.ts} +23 -5
  23. package/dist/index.d.ts +41 -41
  24. package/dist/index.js +139 -71
  25. package/dist/index.js.map +1 -1
  26. package/dist/infrastructure/index.d.ts +6 -6
  27. package/dist/infrastructure/index.js +4 -1
  28. package/dist/infrastructure/index.js.map +1 -1
  29. package/dist/kernel/index.d.ts +11 -11
  30. package/dist/{mcp-servers-CuZGf9fI.d.ts → mcp-servers-CFb60-pH.d.ts} +3 -3
  31. package/dist/models/index.d.ts +5 -5
  32. package/dist/{models-registry-8XOdxWQu.d.ts → models-registry-5Ufn7f2m.d.ts} +1 -1
  33. package/dist/{multi-agent-coordinator-CiRtKVTk.d.ts → multi-agent-coordinator-CcrcncvG.d.ts} +1 -1
  34. package/dist/{null-fleet-bus-d9G-bVy9.d.ts → null-fleet-bus-C9KsYyrI.d.ts} +13 -6
  35. package/dist/observability/index.d.ts +2 -2
  36. package/dist/{path-resolver-BhIb6mtd.d.ts → path-resolver-CEeX9I7O.d.ts} +3 -3
  37. package/dist/{permission-BCbQDR2s.d.ts → permission-DbsGOA1C.d.ts} +7 -6
  38. package/dist/{permission-policy-C0ikndX_.d.ts → permission-policy-BpEea3r7.d.ts} +12 -14
  39. package/dist/{pipeline-Dl6XbfE7.d.ts → pipeline-CEjBjzVA.d.ts} +2 -2
  40. package/dist/{provider-model-resolve-B70epO19.d.ts → provider-model-resolve-BpfXp3Jj.d.ts} +3 -3
  41. package/dist/{provider-runner-DZ808MSM.d.ts → provider-runner-CnOSr5BN.d.ts} +3 -3
  42. package/dist/{retry-policy-Dt3_z8Aj.d.ts → retry-policy-Git9WF6d.d.ts} +1 -1
  43. package/dist/sdd/index.d.ts +9 -9
  44. package/dist/{secret-vault-BUJ2d1gB.d.ts → secret-vault-DDSMHqIm.d.ts} +1 -1
  45. package/dist/security/index.d.ts +5 -5
  46. package/dist/security/index.js +83 -45
  47. package/dist/security/index.js.map +1 -1
  48. package/dist/{selector-BCkWgdwy.d.ts → selector-Cq72C0Oy.d.ts} +1 -1
  49. package/dist/{session-event-bridge-CMvIO59_.d.ts → session-event-bridge-DG94B3Bk.d.ts} +1 -1
  50. package/dist/{session-reader-C8aiChUu.d.ts → session-reader-BzT-iMQT.d.ts} +1 -1
  51. package/dist/storage/index.d.ts +11 -11
  52. package/dist/{strategy-compactor-DI1OHVbB.d.ts → strategy-compactor-Bt_ZH6R0.d.ts} +10 -10
  53. package/dist/{todos-checkpoint-Ddd2CGr0.d.ts → todos-checkpoint-CH1pcua9.d.ts} +5 -5
  54. package/dist/{tool-executor-Bmd5Ygoo.d.ts → tool-executor-SVFq7IOR.d.ts} +9 -9
  55. package/dist/tools/index.d.ts +2 -2
  56. package/dist/tools/index.js +5 -6
  57. package/dist/tools/index.js.map +1 -1
  58. package/dist/types/index.d.ts +19 -19
  59. package/dist/types/index.js +13 -1
  60. package/dist/types/index.js.map +1 -1
  61. package/dist/utils/index.d.ts +17 -3
  62. package/dist/utils/index.js +5 -1
  63. package/dist/utils/index.js.map +1 -1
  64. package/dist/{worktree-manager-DBdl_5rs.d.ts → worktree-manager-C4YIf1Fa.d.ts} +1 -1
  65. package/instructions/leader-after-task.md +6 -0
  66. package/package.json +2 -2
  67. package/skills/output-standards/SKILL.md +1 -0
  68. package/skills/research-web/SKILL.md +1 -1
package/dist/index.js CHANGED
@@ -2199,6 +2199,10 @@ function formatTodosList(todos) {
2199
2199
  });
2200
2200
  return lines.join("\n");
2201
2201
  }
2202
+ function hasOpenTodos(todos) {
2203
+ if (!Array.isArray(todos) || todos.length === 0) return false;
2204
+ return todos.some((t2) => t2.status === "pending" || t2.status === "in_progress");
2205
+ }
2202
2206
  var init_todos_format = __esm({
2203
2207
  "src/utils/todos-format.ts"() {
2204
2208
  init_color();
@@ -7920,6 +7924,8 @@ var ToolCapabilities = {
7920
7924
  SHELL_ARBITRARY: "shell.arbitrary",
7921
7925
  /** Can execute a restricted set of commands (the `exec` tool). */
7922
7926
  SHELL_RESTRICTED: "shell.restricted",
7927
+ /** Can run a restricted project formatter/linter-style command. */
7928
+ SHELL_EXEC: "shell.exec",
7923
7929
  /** Can read files inside the project (and possibly outside via symlinks if not guarded). */
7924
7930
  FS_READ: "fs.read",
7925
7931
  /** Can write / modify / delete files inside the project. */
@@ -7928,6 +7934,20 @@ var ToolCapabilities = {
7928
7934
  FS_WRITE_OUTSIDE_PROJECT: "fs.write.outside-project",
7929
7935
  /** Can perform outbound network requests. */
7930
7936
  NET_OUTBOUND: "net.outbound",
7937
+ /** Can mutate in-memory session todos only. */
7938
+ SESSION_TODO: "session.todo",
7939
+ /** Can mutate in-memory session mode only. */
7940
+ SESSION_MODE: "session.mode",
7941
+ /** Can inspect registered tool metadata. */
7942
+ TOOL_META: "tool.meta",
7943
+ /** Can invoke arbitrary registered tools through a meta-tool. */
7944
+ TOOL_MUTATE_ANY: "tool.mutate.any",
7945
+ /** Can read persistent memory. */
7946
+ MEMORY_READ: "memory.read",
7947
+ /** Can write persistent memory. */
7948
+ MEMORY_WRITE: "memory.write",
7949
+ /** Can delete persistent memory. */
7950
+ MEMORY_DELETE: "memory.delete",
7931
7951
  /** Proxies tools from external MCP servers (unknown capability). */
7932
7952
  MCP_PROXY: "mcp.proxy",
7933
7953
  /** Can spawn or manage subagents / multi-agent tasks. */
@@ -7946,8 +7966,12 @@ var ToolCapabilities = {
7946
7966
  var DANGEROUS_FOR_SUBAGENTS = [
7947
7967
  ToolCapabilities.SHELL_ARBITRARY,
7948
7968
  ToolCapabilities.SHELL_RESTRICTED,
7969
+ ToolCapabilities.SHELL_EXEC,
7949
7970
  ToolCapabilities.FS_WRITE,
7950
7971
  ToolCapabilities.FS_WRITE_OUTSIDE_PROJECT,
7972
+ ToolCapabilities.TOOL_MUTATE_ANY,
7973
+ ToolCapabilities.MEMORY_WRITE,
7974
+ ToolCapabilities.MEMORY_DELETE,
7951
7975
  ToolCapabilities.MCP_PROXY,
7952
7976
  ToolCapabilities.SUBAGENT_SPAWN,
7953
7977
  ToolCapabilities.CONFIG_MUTATE,
@@ -7957,8 +7981,12 @@ var WIDE_SUBAGENT_CAPABILITIES = [
7957
7981
  ToolCapabilities.FS_READ,
7958
7982
  ToolCapabilities.FS_WRITE,
7959
7983
  ToolCapabilities.NET_OUTBOUND,
7984
+ ToolCapabilities.SESSION_TODO,
7985
+ ToolCapabilities.TOOL_META,
7986
+ ToolCapabilities.MEMORY_READ,
7960
7987
  ToolCapabilities.SHELL_ARBITRARY,
7961
7988
  ToolCapabilities.SHELL_RESTRICTED,
7989
+ ToolCapabilities.SHELL_EXEC,
7962
7990
  ToolCapabilities.PACKAGE_INSTALL
7963
7991
  ];
7964
7992
  function hasDangerousCapabilityForSubagents(toolOrCaps) {
@@ -8185,7 +8213,7 @@ ${errorDetails}`,
8185
8213
  const decision = await this.opts.permissionPolicy.evaluate(tool, use.input, ctx);
8186
8214
  let effectivePermission = decision.permission;
8187
8215
  const policy = this.opts.permissionPolicy;
8188
- const yolo = policy.getYolo?.() === true || policy.getYoloDestructive?.() === true;
8216
+ const yolo = policy.getYolo?.() === true;
8189
8217
  const authoritativeAuto = decision.source === "yolo";
8190
8218
  if (toolDangerousCaps.length > 0 && effectivePermission === "auto" && !yolo && !authoritativeAuto) {
8191
8219
  effectivePermission = "confirm";
@@ -15311,6 +15339,7 @@ var Director = class _Director {
15311
15339
  sessionIdSource;
15312
15340
  /** Debounce timer for periodic manifest writes. */
15313
15341
  manifestTimer = null;
15342
+ manifestWriteChain = Promise.resolve();
15314
15343
  manifestDebounceMs;
15315
15344
  /** Fleet-wide cost cap (entire fleet total, distinct from SubagentBudget limits). Infinity means no cap. */
15316
15345
  maxFleetCostUsd;
@@ -15487,7 +15516,7 @@ var Director = class _Director {
15487
15516
  }
15488
15517
  );
15489
15518
  if (this.fleetManager) {
15490
- this.fleetManager.flushManifest();
15519
+ void this.fleetManager.flushManifest();
15491
15520
  } else {
15492
15521
  this.scheduleManifest();
15493
15522
  }
@@ -15766,6 +15795,7 @@ var Director = class _Director {
15766
15795
  return;
15767
15796
  }
15768
15797
  if (this.manifestDebounceMs < 0) return;
15798
+ if (this.manifestTimer) return;
15769
15799
  this.manifestTimer = setTimeout(() => {
15770
15800
  this.manifestTimer = null;
15771
15801
  void this.writeManifest().catch(
@@ -15773,6 +15803,11 @@ var Director = class _Director {
15773
15803
  );
15774
15804
  }, this.manifestDebounceMs);
15775
15805
  }
15806
+ clearManifestTimer() {
15807
+ if (!this.manifestTimer) return;
15808
+ clearTimeout(this.manifestTimer);
15809
+ this.manifestTimer = null;
15810
+ }
15776
15811
  /**
15777
15812
  * Spawn a subagent. Identical to the coordinator's `spawn()` but
15778
15813
  * captures provider/model metadata for the usage aggregator and
@@ -15995,6 +16030,13 @@ var Director = class _Director {
15995
16030
  * replay an entire director run.
15996
16031
  */
15997
16032
  async writeManifest() {
16033
+ if (!this.manifestPath) return null;
16034
+ this.clearManifestTimer();
16035
+ const write = this.manifestWriteChain.catch(() => void 0).then(() => this.writeManifestNow());
16036
+ this.manifestWriteChain = write.catch(() => void 0);
16037
+ return write;
16038
+ }
16039
+ async writeManifestNow() {
15998
16040
  if (!this.manifestPath) return null;
15999
16041
  const manifest = {
16000
16042
  directorRunId: this.id,
@@ -16027,10 +16069,7 @@ var Director = class _Director {
16027
16069
  * — calling shutdown twice is a no-op on the second invocation.
16028
16070
  */
16029
16071
  async shutdown() {
16030
- if (this.manifestTimer) {
16031
- clearTimeout(this.manifestTimer);
16032
- this.manifestTimer = null;
16033
- }
16072
+ this.clearManifestTimer();
16034
16073
  if (this.taskCompletedListener) {
16035
16074
  this.coordinator.off("task.completed", this.taskCompletedListener);
16036
16075
  this.taskCompletedListener = null;
@@ -16049,8 +16088,11 @@ var Director = class _Director {
16049
16088
  }
16050
16089
  this.subagentBridges.clear();
16051
16090
  await this.bridge.stop().catch((err) => this.logShutdownError("director_bridge_stop", err));
16052
- if (this.manifestPath)
16091
+ if (this.fleetManager) {
16092
+ await this.fleetManager.flushManifest().catch((err) => this.logShutdownError("fleet_manifest_flush", err));
16093
+ } else if (this.manifestPath) {
16053
16094
  await this.writeManifest().catch((err) => this.logShutdownError("manifest_write", err));
16095
+ }
16054
16096
  if (this.stateCheckpoint) {
16055
16097
  this.stateCheckpoint.setUsage(this.usage.snapshot());
16056
16098
  await this.stateCheckpoint.flush().catch((err) => this.logShutdownError("state_checkpoint_flush", err));
@@ -22861,7 +22903,10 @@ function createContextManagerTool(opts = {}) {
22861
22903
  required: ["action"]
22862
22904
  },
22863
22905
  permission: "auto",
22864
- mutating: true,
22906
+ // Mutates only the in-memory conversation context, like the todo tool.
22907
+ // It must stay auto-runnable so the model can inspect/repair/compact its
22908
+ // own context without hitting a permission prompt loop.
22909
+ mutating: false,
22865
22910
  async execute(input, ctx) {
22866
22911
  const messages = ctx.messages;
22867
22912
  const beforeTokens = roughEstimate(messages);
@@ -29647,6 +29692,15 @@ function isClearlyDestructiveBashCommand(command, projectRoot) {
29647
29692
  function matchesTrust(patterns, subject) {
29648
29693
  return patterns.includes(subject) || matchAny(patterns, subject);
29649
29694
  }
29695
+ function shellCommandLineFromInput(input) {
29696
+ const command = getInputString(input, "command") ?? getInputString(input, "cmd") ?? getInputString(input, "script");
29697
+ if (!command) return void 0;
29698
+ if (!input || typeof input !== "object") return command;
29699
+ const args = input["args"];
29700
+ if (!Array.isArray(args) || args.length === 0) return command;
29701
+ const renderedArgs = args.filter((arg) => typeof arg === "string").map((arg) => /\s/.test(arg) ? `"${arg.replace(/"/g, '\\"')}"` : arg);
29702
+ return [command, ...renderedArgs].join(" ");
29703
+ }
29650
29704
  var DefaultPermissionPolicy = class {
29651
29705
  policy = {};
29652
29706
  loaded = false;
@@ -29664,9 +29718,10 @@ var DefaultPermissionPolicy = class {
29664
29718
  */
29665
29719
  sessionDenied = /* @__PURE__ */ new Map();
29666
29720
  /**
29667
- * Session-scoped "soft trust" map. When the user presses 'a' (allow once),
29668
- * the tool+pattern is added here. If the LLM retries in the same session,
29669
- * we return auto directly without asking again.
29721
+ * Session-scoped one-shot "soft trust" map. When the user presses 'y', the
29722
+ * tool+pattern is added here so the immediate confirm re-run can proceed.
29723
+ * The entry is consumed on first use; future calls must ask again unless the
29724
+ * user chose persistent trust.
29670
29725
  *
29671
29726
  * Cleared on reload().
29672
29727
  */
@@ -29705,7 +29760,7 @@ var DefaultPermissionPolicy = class {
29705
29760
  this.trustFile = opts.trustFile;
29706
29761
  this.yolo = opts.yolo ?? false;
29707
29762
  this.yoloDestructive = opts.yoloDestructive ?? opts.forceAllYolo ?? false;
29708
- this.confirmDestructive = opts.confirmDestructive ?? false;
29763
+ this.confirmDestructive = true;
29709
29764
  this.promptDelegate = opts.promptDelegate;
29710
29765
  }
29711
29766
  /**
@@ -29736,9 +29791,9 @@ var DefaultPermissionPolicy = class {
29736
29791
  return this.yoloDestructive;
29737
29792
  }
29738
29793
  /** Toggle destructive confirmation gate (only meaningful when yolo is active). */
29739
- setConfirmDestructive(enabled) {
29740
- if (this.confirmDestructive !== enabled) this._evalCache.clear();
29741
- this.confirmDestructive = enabled;
29794
+ setConfirmDestructive(_enabled) {
29795
+ if (!this.confirmDestructive) this._evalCache.clear();
29796
+ this.confirmDestructive = true;
29742
29797
  }
29743
29798
  /** Check whether destructive confirmation gate is active. */
29744
29799
  getConfirmDestructive() {
@@ -29777,12 +29832,12 @@ var DefaultPermissionPolicy = class {
29777
29832
  return decision;
29778
29833
  }
29779
29834
  if (this.sessionAllowed.has(cacheKey)) {
29835
+ this.sessionAllowed.delete(cacheKey);
29780
29836
  const decision = {
29781
29837
  permission: "auto",
29782
29838
  source: "trust",
29783
- reason: "session soft allow (user pressed yes)"
29839
+ reason: "session one-shot allow (user pressed yes)"
29784
29840
  };
29785
- this._evalCache.set(cacheKey, decision);
29786
29841
  return decision;
29787
29842
  }
29788
29843
  if (entry?.deny && subject && matchesTrust(entry.deny, subject)) {
@@ -29795,6 +29850,29 @@ var DefaultPermissionPolicy = class {
29795
29850
  this._evalCache.set(cacheKey, decision);
29796
29851
  return decision;
29797
29852
  }
29853
+ if (this.yolo) {
29854
+ const destructive = this.isDestructiveYoloCall(tool, input, ctx);
29855
+ if (destructive) {
29856
+ if (this.promptDelegate) {
29857
+ const decision = await this.promptDelegate(tool, input, subject ?? tool.name);
29858
+ if (decision === "deny") {
29859
+ await this.deny({ tool: tool.name, pattern: subject ?? tool.name });
29860
+ return { permission: "deny", source: "user", reason: "user denied destructive yolo" };
29861
+ }
29862
+ return {
29863
+ permission: decision === "yes" || decision === "always" ? "auto" : "deny",
29864
+ source: "user",
29865
+ reason: "destructive yolo approved for this call"
29866
+ };
29867
+ }
29868
+ return {
29869
+ permission: "confirm",
29870
+ source: "yolo_destructive",
29871
+ riskTier: "destructive",
29872
+ reason: "destructive tool needs explicit approval in YOLO mode"
29873
+ };
29874
+ }
29875
+ }
29798
29876
  if (entry?.allow && subject && matchesTrust(entry.allow, subject)) {
29799
29877
  const decision = { permission: "auto", source: "trust", reason: "matched allow pattern" };
29800
29878
  this._evalCache.set(cacheKey, decision);
@@ -29806,29 +29884,6 @@ var DefaultPermissionPolicy = class {
29806
29884
  return decision;
29807
29885
  }
29808
29886
  if (this.yolo) {
29809
- if (this.confirmDestructive) {
29810
- const destructive = this.isDestructiveYoloCall(tool, input, ctx);
29811
- if (destructive) {
29812
- if (this.promptDelegate) {
29813
- const decision2 = await this.promptDelegate(tool, input, subject ?? tool.name);
29814
- if (decision2 === "always") {
29815
- await this.trust({ tool: tool.name, pattern: subject ?? tool.name });
29816
- return { permission: "auto", source: "user", reason: "destructive yolo always-allowed" };
29817
- }
29818
- if (decision2 === "deny") {
29819
- await this.deny({ tool: tool.name, pattern: subject ?? tool.name });
29820
- return { permission: "deny", source: "user", reason: "user denied destructive yolo" };
29821
- }
29822
- return { permission: decision2 === "yes" ? "auto" : "deny", source: "user" };
29823
- }
29824
- return {
29825
- permission: "confirm",
29826
- source: "yolo_destructive",
29827
- riskTier: "destructive",
29828
- reason: "destructive tool needs explicit approval (confirmDestructive is on)"
29829
- };
29830
- }
29831
- }
29832
29887
  const decision = { permission: "auto", source: "yolo" };
29833
29888
  this._evalCache.set(cacheKey, decision);
29834
29889
  return decision;
@@ -29845,7 +29900,8 @@ var DefaultPermissionPolicy = class {
29845
29900
  const hasWriteCap = hasCapability(tool, ToolCapabilities.FS_WRITE);
29846
29901
  const hasShellCap = hasCapability(tool, [
29847
29902
  ToolCapabilities.SHELL_ARBITRARY,
29848
- ToolCapabilities.SHELL_RESTRICTED
29903
+ ToolCapabilities.SHELL_RESTRICTED,
29904
+ ToolCapabilities.SHELL_EXEC
29849
29905
  ]);
29850
29906
  const hasInstallCap = hasCapability(tool, ToolCapabilities.PACKAGE_INSTALL);
29851
29907
  const hasConfigCap = hasCapability(tool, ToolCapabilities.CONFIG_MUTATE);
@@ -29873,27 +29929,30 @@ var DefaultPermissionPolicy = class {
29873
29929
  // Capability-based destructive check (preferred over name-based)
29874
29930
  isDestructiveByCapability(tool) {
29875
29931
  const caps = tool.capabilities ?? [];
29876
- if (caps.includes("shell.arbitrary")) return true;
29877
- if (caps.includes("fs.write")) return true;
29878
- if (caps.includes("fs.write.outside-project")) return true;
29932
+ if (caps.includes(ToolCapabilities.SHELL_ARBITRARY)) return true;
29933
+ if (caps.includes(ToolCapabilities.SHELL_RESTRICTED)) return true;
29934
+ if (caps.includes(ToolCapabilities.SHELL_EXEC)) return true;
29935
+ if (caps.includes(ToolCapabilities.FS_WRITE)) return true;
29936
+ if (caps.includes(ToolCapabilities.FS_WRITE_OUTSIDE_PROJECT)) return true;
29879
29937
  return false;
29880
29938
  }
29881
29939
  isDestructiveYoloCall(tool, input, ctx) {
29882
29940
  if (this.isDestructiveByCapability(tool)) {
29883
- if (tool.name === "bash") {
29884
- const command = getInputString(input, "command");
29885
- return command ? isClearlyDestructiveBashCommand(command, ctx.projectRoot) : true;
29941
+ const caps = tool.capabilities ?? [];
29942
+ if (caps.includes(ToolCapabilities.SHELL_ARBITRARY) || caps.includes(ToolCapabilities.SHELL_RESTRICTED) || caps.includes(ToolCapabilities.SHELL_EXEC)) {
29943
+ const command = shellCommandLineFromInput(input);
29944
+ return command ? isClearlyDestructiveBashCommand(command, ctx.projectRoot) : tool.riskTier === "destructive";
29886
29945
  }
29887
- if (tool.name === "write" || tool.name === "edit" || tool.name === "replace" || tool.name === "patch") {
29946
+ if (caps.includes(ToolCapabilities.FS_WRITE_OUTSIDE_PROJECT)) return true;
29947
+ if (caps.includes(ToolCapabilities.FS_WRITE)) {
29888
29948
  const targetPath = getInputString(input, "path") ?? getInputString(input, "file");
29889
29949
  if (!targetPath || !ctx.projectRoot) return false;
29890
29950
  return !pathLooksInsideProject(targetPath, ctx.projectRoot);
29891
29951
  }
29892
- return true;
29893
29952
  }
29894
- if (tool.name === "bash") {
29895
- const command = getInputString(input, "command");
29896
- return command ? isClearlyDestructiveBashCommand(command, ctx.projectRoot) : true;
29953
+ if (tool.name === "bash" || tool.name === "shell" || tool.name === "exec") {
29954
+ const command = shellCommandLineFromInput(input);
29955
+ return command ? isClearlyDestructiveBashCommand(command, ctx.projectRoot) : tool.riskTier === "destructive";
29897
29956
  }
29898
29957
  if (tool.name === "write" || tool.name === "edit" || tool.name === "replace" || tool.name === "patch") {
29899
29958
  const targetPath = getInputString(input, "path") ?? getInputString(input, "file");
@@ -29942,7 +30001,7 @@ var DefaultPermissionPolicy = class {
29942
30001
  this.sessionDenied.set(`${rule.tool}::${rule.pattern}`, true);
29943
30002
  this._evalCache.clear();
29944
30003
  }
29945
- /** Auto-approve this tool+pattern for the rest of this session (no trust file). */
30004
+ /** Auto-approve this tool+pattern once (no trust file). */
29946
30005
  allowOnce(rule) {
29947
30006
  this.sessionAllowed.set(`${rule.tool}::${rule.pattern}`, true);
29948
30007
  this._evalCache.clear();
@@ -40437,6 +40496,8 @@ var FleetManager = class {
40437
40496
  stateCheckpoint;
40438
40497
  sessionWriter;
40439
40498
  manifestTimer = null;
40499
+ manifestWriteChain = Promise.resolve();
40500
+ disposed = false;
40440
40501
  manifestDebounceMs;
40441
40502
  /** Fleet-wide cost cap. Infinity = no cap. Distinct from SubagentBudget limits,
40442
40503
  * which track per-subagent spend — this field caps the entire fleet total. */
@@ -40625,6 +40686,13 @@ var FleetManager = class {
40625
40686
  this.scheduleManifest();
40626
40687
  }
40627
40688
  async writeManifest() {
40689
+ if (!this.manifestPath) return null;
40690
+ this.clearManifestTimer();
40691
+ const write = this.manifestWriteChain.catch(() => void 0).then(() => this.writeManifestNow());
40692
+ this.manifestWriteChain = write.catch(() => void 0);
40693
+ return write;
40694
+ }
40695
+ async writeManifestNow() {
40628
40696
  if (!this.manifestPath) return null;
40629
40697
  const manifest = {
40630
40698
  version: 1,
@@ -40658,6 +40726,7 @@ var FleetManager = class {
40658
40726
  * When `manifestDebounceMs` is 0, writes are synchronous (no debounce).
40659
40727
  */
40660
40728
  scheduleManifest() {
40729
+ if (this.disposed) return;
40661
40730
  if (!this.manifestPath) return;
40662
40731
  if (this.manifestDebounceMs === 0) {
40663
40732
  void this.writeManifest().catch((err) => {
@@ -40688,10 +40757,7 @@ var FleetManager = class {
40688
40757
  */
40689
40758
  async flushManifest() {
40690
40759
  if (!this.manifestPath) return;
40691
- if (this.manifestTimer) {
40692
- clearTimeout(this.manifestTimer);
40693
- this.manifestTimer = null;
40694
- }
40760
+ this.clearManifestTimer();
40695
40761
  await this.writeManifest().catch((err) => {
40696
40762
  const detail = toErrorMessage(err);
40697
40763
  process.emitWarning(
@@ -40700,6 +40766,11 @@ var FleetManager = class {
40700
40766
  );
40701
40767
  });
40702
40768
  }
40769
+ clearManifestTimer() {
40770
+ if (!this.manifestTimer) return;
40771
+ clearTimeout(this.manifestTimer);
40772
+ this.manifestTimer = null;
40773
+ }
40703
40774
  /** Best-effort session event writer. Swallows failures. */
40704
40775
  async appendSessionEvent(event) {
40705
40776
  if (!this.sessionWriter) return;
@@ -40769,10 +40840,8 @@ var FleetManager = class {
40769
40840
  }
40770
40841
  /** Release all resources: clear the manifest debounce timer and dispose the usage aggregator. */
40771
40842
  dispose() {
40772
- if (this.manifestTimer) {
40773
- clearTimeout(this.manifestTimer);
40774
- this.manifestTimer = null;
40775
- }
40843
+ this.disposed = true;
40844
+ this.clearManifestTimer();
40776
40845
  this.usage.dispose();
40777
40846
  }
40778
40847
  };
@@ -45626,15 +45695,14 @@ function createMcpControlTool(opts) {
45626
45695
  name: "mcp_control",
45627
45696
  description: "Manage MCP server lifecycle: list available servers, search by name or capability, enable or disable servers at runtime, restart running servers. Use activate/deactivate to ephemerally toggle tool registration without disconnecting \u2014 ideal for token-saving mode where MCP tools are lazy-loaded on demand. NOTE: `enable`/`restart` start a server process, which for the built-in stdio presets runs `npx -y <package>` \u2014 i.e. it fetches and executes an npm package from the network. Treat it as code execution.",
45628
45697
  category: "mcp",
45629
- permission: "auto",
45698
+ permission: "confirm",
45630
45699
  mutating: true,
45631
45700
  // `enable`/`restart` spawn a server process that, for the stdio presets,
45632
45701
  // fetches and runs an npm package (`npx -y <pkg>`) — effectively remote
45633
- // code execution. Marking the tool destructive means the YOLO
45634
- // `confirmDestructive` safety net still prompts before it runs (plain
45635
- // non-YOLO already confirms via the CONFIG_MUTATE dangerous-capability
45636
- // net in the executor). Read-only actions (list/search) ride the same
45637
- // tool but are cheap to confirm/trust once.
45702
+ // code execution. Marking the tool destructive means YOLO still prompts
45703
+ // before it runs (plain non-YOLO already confirms via the CONFIG_MUTATE
45704
+ // dangerous-capability net in the executor). Read-only actions
45705
+ // (list/search) ride the same tool but are cheap to confirm/trust once.
45638
45706
  riskTier: "destructive",
45639
45707
  capabilities: [ToolCapabilities.CONFIG_MUTATE],
45640
45708
  inputSchema,
@@ -45878,7 +45946,7 @@ function createMcpUseTool(opts) {
45878
45946
  name: "mcp_use",
45879
45947
  description: "Call an MCP tool on a lazy-loaded server. Activates the server temporarily, calls the tool, returns the result, and deactivates. Use this instead of the manual activate\u2192use\u2192deactivate cycle. First call mcp_control list/search to find the right server and tool name.",
45880
45948
  category: "mcp",
45881
- permission: "auto",
45949
+ permission: "confirm",
45882
45950
  mutating: true,
45883
45951
  riskTier: "standard",
45884
45952
  capabilities: [ToolCapabilities.MCP_PROXY],
@@ -47875,7 +47943,7 @@ var HookRunner = class {
47875
47943
  // src/hooks/shell-hooks-equal.ts
47876
47944
  function shellHooksEqual(a, b) {
47877
47945
  if (a === b) return true;
47878
- if (!a || !b) return !a && !b ? true : false;
47946
+ if (!a || !b) return !a && !b;
47879
47947
  const aKeys = Object.keys(a);
47880
47948
  const bKeys = Object.keys(b);
47881
47949
  if (aKeys.length !== bKeys.length) return false;
@@ -47889,7 +47957,7 @@ function shellHooksEqual(a, b) {
47889
47957
  for (let i = 0; i < aList.length; i++) {
47890
47958
  const x = aList[i];
47891
47959
  const y = bList[i];
47892
- if (!x || !y) return !x && !y ? true : false;
47960
+ if (!x || !y) return !x && !y;
47893
47961
  if (x.command !== y.command) return false;
47894
47962
  if ((x.matcher ?? "*") !== (y.matcher ?? "*")) return false;
47895
47963
  if ((x.timeoutMs ?? void 0) !== (y.timeoutMs ?? void 0)) return false;
@@ -54355,6 +54423,6 @@ function createChimeraPlugin() {
54355
54423
  };
54356
54424
  }
54357
54425
 
54358
- export { ACP_AGENTS, AGENTS_BY_PHASE, AGENT_CATALOG, TOOLS as AGENT_TOOL_PRESETS, AISpecBuilder, ALL_AGENT_DEFINITIONS, ALL_FLEET_AGENTS, ALL_SYNC_CATEGORIES, AUDIT_LOG_AGENT, AdaptiveConcurrencyController, Agent, AgentError, AgentMonitorService, AgentStatusTracker, AnnotationsStore, AutoApprovePermissionPolicy, AutoCompactionMiddleware, AutoExecutor, AutoPhasePlanner, AutoPhaseRunner, AutonomousBrain, AutonomousCoordinator, AutonomousRunner, BUG_HUNTER_AGENT, BUILD_AGENTS, BUILTIN_PROMPT_CATEGORIES, BrainDecisionQueue, BrainMonitor, BudgetExceededError, BudgetThresholdSignal, CHIMERA_REVIEW_PROMPT, CODEX_MODELS, CONTEXT_WINDOW_MODES, CORE_RECONSTRUCT_EVENTS, ChangeManager, CheckpointManager, CloudSync, CollabSession, CollaborationBus, ConfigError, ConfigMigrationError, ConsensusProtocol, Container, Context, ConversationState, DANGEROUS_FOR_SUBAGENTS, DECISION_TIMEOUT_MS, DEFAULT_AUTONOMY_CONFIG, DEFAULT_CIRCUIT_BREAKER_CONFIG, DEFAULT_CONFIG_MIGRATIONS, DEFAULT_CONTEXT_CONFIG, DEFAULT_CONTEXT_WINDOW_MODE_ID, DEFAULT_DIRECTOR_PREAMBLE, DEFAULT_DISPATCH_ROLE, DEFAULT_HQ_REDACTION_POLICY, DEFAULT_MAX_ITERATIONS, DEFAULT_MODES, DEFAULT_QUALITY_CHECKS, DEFAULT_RECOVERY_STRATEGIES, DEFAULT_SESSION_LOGGING_CONFIG, DEFAULT_SESSION_PRUNE_DAYS, DEFAULT_SPEC_TEMPLATE, DEFAULT_SUBAGENT_BASELINE, DEFAULT_TOOLS_CONFIG, DEFAULT_TOOL_DESCRIPTION_MODE, DEFAULT_TOOL_RESULT_RENDER_MODE, DEFAULT_TUI_THINKING_WORD, DELIVERY_AGENTS, DEPENDENCY_FILE_PATTERNS, DESIGN_STACKS, DISCOVERY_AGENTS, DOMAIN_AGENTS, DefaultAttachmentStore, DefaultBrainArbiter, DefaultConfigLoader, DefaultConfigStore, DefaultDesignKitLoader, DefaultErrorHandler, DefaultHealthRegistry, DefaultLogger, DefaultMailbox, DefaultMemoryStore, DefaultModeStore, DefaultModelsRegistry, DefaultMultiAgentCoordinator, DefaultPathResolver, DefaultPermissionPolicy, DefaultPluginAPI, DefaultPromptLoader, DefaultPromptStore, DefaultProviderRunner, DefaultRetryPolicy, DefaultSecretScrubber, DefaultSecretVault, DefaultSessionReader, DefaultSessionRewinder, DefaultSessionStore, DefaultSkillLoader, DefaultSystemPromptBuilder, DefaultTaskStore, DefaultTokenCounter, Director, DirectorAlertLevel, DirectorStateCheckpoint, DoneConditionChecker, ENHANCER_SYSTEM_PROMPT, ERROR_CODES, EternalAutonomyEngine, EventBus, ExtensionRegistry, FLEET_ROSTER, FLEET_ROSTER_BUDGETS, FLEET_ROSTER_WITHACP, FORBIDDEN_PROTO_KEYS, FetchError, FileMemoryBackend, FleetBus, FleetCostCapError, FleetManager, FleetNotifier, FleetSpawnBudgetError, FleetUsageAggregator, FsError, GitignoreUpdater, GlobalMailbox, GraphMemoryBackend, HEAVY_BUDGET, HQ_AUTH_FILE_VERSION, HQ_PROTOCOL_VERSION, HookRegistry, HookRunner, HqPublisher, HumanEscalatingBrainArbiter, HybridCompactor, InMemoryAgentBridge, InMemoryBridgeTransport, InMemoryMetricsSink, InputBuilder, IntelligentCompactor, KERNEL_API_VERSION, KNOWLEDGE_AGENTS, KnowledgeGraph, LAYER_1_IDENTITY, LIGHT_BUDGET, LLMSelector, LargeAnswerStore, MAILBOX_BRIDGE_LOCK_FILENAME, MAILBOX_BRIDGE_TOKEN_FILENAME, MAILBOX_HEALTH_DEFAULT_FAILURE_THRESHOLD, MAILBOX_HEALTH_DEFAULT_FROM, MAILBOX_HEALTH_DEFAULT_INTERVAL_MS, MAILBOX_HEALTH_DEFAULT_TIMEOUT_MS, MALFORMED_ARG_MARKERS, MATRIX_PHASE_KEYS, MAX_JOURNAL_ENTRIES, MAX_PROGRESS_HISTORY, MAX_TUI_THINKING_WORD_LENGTH, MEDIUM_BUDGET, MEMORY_TYPE_LABELS, META_AGENTS, MailboxHealthWatchdog, NULL_FLEET_BUS, NoopMetricsSink, NoopTracer, OTelTracer, ObservableBrainArbiter, PLANNING_AGENTS, PROMETHEUS_CONTENT_TYPE, PROMPT_CATEGORY_LABELS, ParallelEternalEngine, ParseError, PhaseGraphBuilder, PhaseOrchestrator, PhaseStore, Pipeline, PluginError, PromptInstaller, PromptManifestStore, PromptUsageStore, ProviderError, ProviderRegistry, QueueStore, REFACTOR_PLANNER_AGENT, REVIEW_AGENTS, RecoveryLock, ReplayLogStore, ReplayProviderRunner, ReportGenerator, RunController, SECURITY_SCANNER_AGENT, SPEC_TEMPLATES, STANDARD_AUDIT_EVENTS, ScopedEventBus, SddBoardProjector, SddBoardStore, SddError, SddInterviewDriver, SddParallelRun, SddRunRegistry, SddSupervisor, SddTaskDecomposer, SecurityScanner, SecurityScannerOrchestrator, SelectiveCompactor, SessionAnalyzer, SessionError, SessionMemoryConsolidator, SessionRecovery, SessionRegistry, SkillGenerator, SkillInstaller, SkillManifestStore, SlashCommandRegistry, SpecDrivenDev, SpecParser, SpecStore, SpecVersioning, StreamHangError, SubagentBudget, TIMEOUT_PREEMPT_FRACTION, TOKENS, TaskAuctioneer, TaskDAG, TaskFlow, TaskGenerator, TaskGraphStore, TaskTracker, TechStackDetector, ToolAuditLog, ToolCapabilities, ToolError, ToolErrorCategory, ToolExecutor, ToolRegistry, ToolValidationError, VERIFY_AGENTS, WIDE_SUBAGENT_CAPABILITIES, WorktreeManager, WrongStackError, _resetDesignKitLoaderMemo, _resetDesignRulesCache, acquireOrJoin, activateDesign, addPlanItem, allServers, analyzeCriticalPath, appendJournal, applyModelRuntime, applyRosterBudget, applySddLifecycle, applyTokenOverrides, applyToolDescriptionModeToTool, applyToolDescriptionModes, applyToolResultRenderModes, asBlocks, asText, assertNever, assertNotPrivateHost, assertSafePath, assessCommitSafety, assignNickname, atomicWrite, attachAutoExtend, attachDepWatcherBridge, attachMailboxChecker, attachPlanCheckpoint, attachTodosCheckpoint, awsServer, blockServer, bootConfig, braveSearchServer, buildBoardSnapshot, buildBoardTasks, buildBtwBlock, buildChildEnv, buildContextEvidenceDigest, buildDownAlert, buildGoalPreamble, buildLosslessDigest, buildMailboxBlock, buildOtlpMetricsRequest, buildOtlpTracesRequest, buildQueuedMessagesBlock, buildRecoveryAlert, buildRecoveryStrategies, buildSmartDigest, buildTranscriptFromEvents, classifyFamily, classifyToolError, cleanupSddWorktrees, cleanupStaleSddWorktrees, clearActiveKit, clearPersistedActiveKit, clearPlan, codexModelMeta, collabInjectMiddleware, collabPauseMiddleware, color, colorToHex, compactLog, compactSchemaDescriptions, compactToolDefinitionForWire, compileGlob, compileUserRegex, completePartialObject, composeDirectorPrompt, composeSubagentPrompt, computeMessageTokens, computeTaskItemProgress, computeTaskProgress, consumeBtwNotes, consumeQueuedMessagesUpdate, context7Server, contextManagerTool, countShellHooks, createAgentMonitorService, createAutoExecutor, createAutoPhaseFromTaskGraph, createAutonomyBrain, createChimeraPlugin, createContextEvidenceState, createContextManagerTool, createDefaultPipelines, createDelegateTool, createFallbackModelExtension, createGitPlugin, createGlobalMailbox, createHqEventEnvelope, createHqPublisherFromEnv, createMailboxChecker, createMailboxEventPayload, createMailboxHooks, createMailboxSnapshotPayload, createMailboxSnapshotPayloadFromMailbox, createMcpControlTool, createMcpUseTool, createMessage, createObservabilityPlugin, createPlanPlugin, createPromptsPlugin, createSecurityPlugin, createSecuritySlashCommand, createSessionEventBridge, createSkillsPlugin, createStrategyCompactor, createSyncPlugin, createTieredBrainArbiter, createToolOutputSerializer, decryptConfigSecrets, deepMerge, defaultGitignoreUpdater, defaultHqDataDir, defaultOrchestrator, defaultReportGenerator, defaultSecurityScanner, defaultSkillGenerator, defaultTechStackDetector, definePlugin, deriveTodosFromPlanItem, describeCatalogModel, designProjectDir, destroySddProject, detectEcosystem, detectFrontendFile, detectFrontendIntent, detectNewlineStyle, detectEcosystem as detectPackageEcosystem, diffRegistry, dispatchAgent, downloadGitHubTarball, effectiveFallbackChain, eliseOldToolResults, emptyGoal, emptyHqAuthFile, emptyPlan, emptyTaskFile, encryptConfigSecrets, encryptedPrefixForVersion, enhanceUserPrompt, ensureDir, ensureHqFirstRunAuthFile, escapeGlobSubject, estimateMessageTokens, estimateMessages, estimateRequestTokens, estimateRequestTokensCalibrated, estimateTextTokens, estimateToolDefTokens, estimateToolInputTokens, estimateToolResultTokens, everArtServer, expandGlob, expandIPv6, expectDefined, extractRunEnv, extractText, extractVerificationCommand, fallbackProfileChain, filesystemServer, finalize, findCriticalPath, findPreserveStart, flagsToConfigPatch, formatContextWindowModeList, formatDecisionSummary, formatGoal, formatHumanPrompt, formatModelRef, formatPlan, formatPlanTemplates, formatTaskList, formatTaskProgress, formatTodosList, gatedEnhancerReasoning, generateSessionId, getAgentDefinition, getCalibrationState, getContextWindowMode, getDangerousCapabilities, getDesignKitLoader, getDesignState, getFileHistory, getFilesByAgent, getFullLog, getFullPackageLog, getJsonPath, getLastAuthor, getManifestPackages, getPackageAuthor, getPackagesByAgent, getPlanTemplate, getSessionRegistry, getTemplate, getTermSize, getToolDescriptionMode, getToolResultRenderMode, githubServer, goalFilePath, googleMapsServer, hasCapability, hasConflictMarkers, hasDangerousCapabilityForSubagents, hasSessionRegistry, hasTextContent, hashRequest, hookMatcherMatches, hqAuthFilePath, hqRuntimeFilePath, injectPendingMailboxMessages, installDesignStudioMiddleware, isAgentError, isBuiltinCategory, isColorToken, isConfigError, isContextWindowModeId, isDesignStack, isExplanatoryText, isFetchError, isFsError, isImageBlock, isInteractive, isJsonObject, isParseError, isPathSubjectKey, isPluginError, isPrimitiveArray, isPrivateIPv4, isPrivateIPv6, isSddError, isSecretField, isSessionError, isStdinTTY, isStdoutTTY, isTextBlock, isThinkingBlock, isToolError, isToolResultBlock, isToolUseBlock, isToolValidationError, isUlid, isValidMatrixKey, isWrongStackError, jsonObjectFileExists, listContextWindowModes, listPlanTemplates, listTemplates, loadActiveKit, loadDirectorState, loadGoal, loadInstructionBundle, loadPlan, loadPlugins, loadProjectDesignRules, loadProjectModes, loadTasks, loadTodosCheckpoint, loadUserModes, mailboxSessionTag, makeAgentSubagentRunner, makeAskResultTool, makeAskTool, makeAssignTool, makeAutonomyPromptContributor, makeAwaitTasksTool, makeCollabDebugTool, makeCommandVerifier, makeContinueToNextIterationTool, makeDependencyWatcherConfig, makeDesignDetectToolCallMiddleware, makeDesignDetectUserInputMiddleware, makeDesignStudioRequestMiddleware, makeDesignVerifyToolCallMiddleware, makeDirectorSessionFactory, makeFleetEmitTool, makeFleetTool as makeFleetHealthTool, makeFleetTool as makeFleetSessionTool, makeFleetTool as makeFleetStatusTool, makeFleetTool, makeFleetTool as makeFleetUsageTool, makeLLMClassifier, makeLlmConflictResolver, makeLlmSubtaskGenerator, makeMailInboxTool, makeMailSendTool, makeMailboxTool, makePreferSideConflictResolver, makeRollUpTool, makeSpawnTool, makeTerminateAllTool, makeTerminateTool, makeWorkCompleteTool, mapMailboxAgentToHqSummary, mapMailboxMessageToHqSummary, mapSessionEventToEntries, markAssistantReferencedEvidence, matchAny, matchGlob, materializeTokens, matrixKeyKind, mergeCustomModelDefs, mergeInstructionBundle, mergeModelsPayload, mergeToolResults, migratePlaintextSecrets, migratePromptEntry, miniMaxVisionServer, mintHqBrowserToken, mintHqToken, mutateHqAuthFile, mutatePlan, mutateTasks, nicknameKeyFromDisplay, noOpLogger, noOpVault, normalizeModelRef, normalizePathSubject, normalizeRecipient, normalizeToLf, normalizeTokenSavingTier, normalizeToolDescriptionMode, normalizeToolResultRenderMode, normalizeTuiThinkingWord, normalizedEqual, oklchToHex, onResize, parseContinueDirective, parseEncryptedVersion, parseEntries, parseHqEventPayload, parseHqFrame, parseModelRef, parseOklch, parseProgressFromText, parseSkillRef, peekQueuedMessages, pendingBtwCount, phaseForRole, playwrightServer, projectHash, projectSlug, promptChecksum, readBundledInstructionText, readHqAuthFile, readHqRuntimeFileSync, readJsonObjectFile, readLiveLock, recentTextTurns, recordActualUsage, recordFileAction, recordKitChoice, recordOverrides, recordPackageAction, recordProgress, recordToolOutputEvidence, recordUserIntentEvidence, redactHqEvent, redactHqValue, release, removeJsonPath, removeJsonPathInFile, removePlanItem, renderInstructionTemplate, renderProgress, renderPrometheus, renderPrompt, renderSpecAnalysis, renderTaskGraph, renderTaskList, repairToolUseAdjacency, repeatedReadPressure, resetCalibration, resolveAuditLevel, resolveBundledDesignKitsDir, resolveCacheForRequest, resolveChimeraConfig, resolveConflictText, resolveContextWindowPolicy, resolveHqConfig, resolveHqConfigFromEnv, resolveHqDataDir, resolveMailboxIdentity, resolveModelMatrix, resolveModelRuntime, resolveModelTargetFromEntry, resolveProjectDir, resolveProviderModelList, resolveReasoningForRequest, resolveSessionLoggingConfig, resolveToolDescriptionMode, resolveToolResultRenderMode, resolveWstackPaths, rewriteConfigEncrypted, rollbackSddRunFromDisk, rosterSummaryFromConfigs, rotateConfigKeys, runConfigMigrations, runDesignVerify, runProviderWithRetry, runShellHook, safeParse, safeStringify, sanitizeJsonString, sanitizeModel, sanitizeNodeOptions, saveGoal, savePlan, saveTasks, saveTodosCheckpoint, scoreAgents, scoreMessage, scrubAndTruncateHqPreview, securitySlashCommand, sentinelServer, sessionScopedPath, setActiveKit, setBtwNote, setDesignOverrides, setJsonPath, setJsonPathInFile, setOutputLineGuard, setPlanItemStatus, setProgress, setQueuedMessagesSnapshot, setRawMode, setToolDescriptionMode, setToolResultRenderMode, shellHooksEqual, shortIdMap, shouldEnhance, simplifyToolDescription, slackServer, sleep, slugify, smartDefaultFallbackChain, sshManagerServer, stableStringify, startAgentMonitorEventBridge, startMetricsServer, startOtlpMetricsExporter, startOtlpTraceExporter, startPackageOutdatedWatcher, startSddRun, startSessionTelemetryBridge, startTechStackConsumer, stripAnsi, subjectForToolInput, summarizeHqToolArgs, summarizeUsage, templateToMarkdown, toErrorMessage, toStyle, toWrongStackError, topologicalSort, truncate, ulid, unifiedDiff, unloadPlugins, updateJsonObjectFile, updatePackageOutdatedStatus, validateAgainstSchema, validateRegistryManifest, validateWatchdogOptions, verifyFiles, watchHqAuthFile, watchProviderConfig, wireMetricsToEvents, withDisabledToolFiltering, withFileLock, wrapAsState, writeErr, writeHqAuthFile, writeHqRuntimeFile, writeJsonObjectFile, writeOut, wstackGlobalRoot, zaiVisionServer };
54426
+ export { ACP_AGENTS, AGENTS_BY_PHASE, AGENT_CATALOG, TOOLS as AGENT_TOOL_PRESETS, AISpecBuilder, ALL_AGENT_DEFINITIONS, ALL_FLEET_AGENTS, ALL_SYNC_CATEGORIES, AUDIT_LOG_AGENT, AdaptiveConcurrencyController, Agent, AgentError, AgentMonitorService, AgentStatusTracker, AnnotationsStore, AutoApprovePermissionPolicy, AutoCompactionMiddleware, AutoExecutor, AutoPhasePlanner, AutoPhaseRunner, AutonomousBrain, AutonomousCoordinator, AutonomousRunner, BUG_HUNTER_AGENT, BUILD_AGENTS, BUILTIN_PROMPT_CATEGORIES, BrainDecisionQueue, BrainMonitor, BudgetExceededError, BudgetThresholdSignal, CHIMERA_REVIEW_PROMPT, CODEX_MODELS, CONTEXT_WINDOW_MODES, CORE_RECONSTRUCT_EVENTS, ChangeManager, CheckpointManager, CloudSync, CollabSession, CollaborationBus, ConfigError, ConfigMigrationError, ConsensusProtocol, Container, Context, ConversationState, DANGEROUS_FOR_SUBAGENTS, DECISION_TIMEOUT_MS, DEFAULT_AUTONOMY_CONFIG, DEFAULT_CIRCUIT_BREAKER_CONFIG, DEFAULT_CONFIG_MIGRATIONS, DEFAULT_CONTEXT_CONFIG, DEFAULT_CONTEXT_WINDOW_MODE_ID, DEFAULT_DIRECTOR_PREAMBLE, DEFAULT_DISPATCH_ROLE, DEFAULT_HQ_REDACTION_POLICY, DEFAULT_MAX_ITERATIONS, DEFAULT_MODES, DEFAULT_QUALITY_CHECKS, DEFAULT_RECOVERY_STRATEGIES, DEFAULT_SESSION_LOGGING_CONFIG, DEFAULT_SESSION_PRUNE_DAYS, DEFAULT_SPEC_TEMPLATE, DEFAULT_SUBAGENT_BASELINE, DEFAULT_TOOLS_CONFIG, DEFAULT_TOOL_DESCRIPTION_MODE, DEFAULT_TOOL_RESULT_RENDER_MODE, DEFAULT_TUI_THINKING_WORD, DELIVERY_AGENTS, DEPENDENCY_FILE_PATTERNS, DESIGN_STACKS, DISCOVERY_AGENTS, DOMAIN_AGENTS, DefaultAttachmentStore, DefaultBrainArbiter, DefaultConfigLoader, DefaultConfigStore, DefaultDesignKitLoader, DefaultErrorHandler, DefaultHealthRegistry, DefaultLogger, DefaultMailbox, DefaultMemoryStore, DefaultModeStore, DefaultModelsRegistry, DefaultMultiAgentCoordinator, DefaultPathResolver, DefaultPermissionPolicy, DefaultPluginAPI, DefaultPromptLoader, DefaultPromptStore, DefaultProviderRunner, DefaultRetryPolicy, DefaultSecretScrubber, DefaultSecretVault, DefaultSessionReader, DefaultSessionRewinder, DefaultSessionStore, DefaultSkillLoader, DefaultSystemPromptBuilder, DefaultTaskStore, DefaultTokenCounter, Director, DirectorAlertLevel, DirectorStateCheckpoint, DoneConditionChecker, ENHANCER_SYSTEM_PROMPT, ERROR_CODES, EternalAutonomyEngine, EventBus, ExtensionRegistry, FLEET_ROSTER, FLEET_ROSTER_BUDGETS, FLEET_ROSTER_WITHACP, FORBIDDEN_PROTO_KEYS, FetchError, FileMemoryBackend, FleetBus, FleetCostCapError, FleetManager, FleetNotifier, FleetSpawnBudgetError, FleetUsageAggregator, FsError, GitignoreUpdater, GlobalMailbox, GraphMemoryBackend, HEAVY_BUDGET, HQ_AUTH_FILE_VERSION, HQ_PROTOCOL_VERSION, HookRegistry, HookRunner, HqPublisher, HumanEscalatingBrainArbiter, HybridCompactor, InMemoryAgentBridge, InMemoryBridgeTransport, InMemoryMetricsSink, InputBuilder, IntelligentCompactor, KERNEL_API_VERSION, KNOWLEDGE_AGENTS, KnowledgeGraph, LAYER_1_IDENTITY, LIGHT_BUDGET, LLMSelector, LargeAnswerStore, MAILBOX_BRIDGE_LOCK_FILENAME, MAILBOX_BRIDGE_TOKEN_FILENAME, MAILBOX_HEALTH_DEFAULT_FAILURE_THRESHOLD, MAILBOX_HEALTH_DEFAULT_FROM, MAILBOX_HEALTH_DEFAULT_INTERVAL_MS, MAILBOX_HEALTH_DEFAULT_TIMEOUT_MS, MALFORMED_ARG_MARKERS, MATRIX_PHASE_KEYS, MAX_JOURNAL_ENTRIES, MAX_PROGRESS_HISTORY, MAX_TUI_THINKING_WORD_LENGTH, MEDIUM_BUDGET, MEMORY_TYPE_LABELS, META_AGENTS, MailboxHealthWatchdog, NULL_FLEET_BUS, NoopMetricsSink, NoopTracer, OTelTracer, ObservableBrainArbiter, PLANNING_AGENTS, PROMETHEUS_CONTENT_TYPE, PROMPT_CATEGORY_LABELS, ParallelEternalEngine, ParseError, PhaseGraphBuilder, PhaseOrchestrator, PhaseStore, Pipeline, PluginError, PromptInstaller, PromptManifestStore, PromptUsageStore, ProviderError, ProviderRegistry, QueueStore, REFACTOR_PLANNER_AGENT, REVIEW_AGENTS, RecoveryLock, ReplayLogStore, ReplayProviderRunner, ReportGenerator, RunController, SECURITY_SCANNER_AGENT, SPEC_TEMPLATES, STANDARD_AUDIT_EVENTS, ScopedEventBus, SddBoardProjector, SddBoardStore, SddError, SddInterviewDriver, SddParallelRun, SddRunRegistry, SddSupervisor, SddTaskDecomposer, SecurityScanner, SecurityScannerOrchestrator, SelectiveCompactor, SessionAnalyzer, SessionError, SessionMemoryConsolidator, SessionRecovery, SessionRegistry, SkillGenerator, SkillInstaller, SkillManifestStore, SlashCommandRegistry, SpecDrivenDev, SpecParser, SpecStore, SpecVersioning, StreamHangError, SubagentBudget, TIMEOUT_PREEMPT_FRACTION, TOKENS, TaskAuctioneer, TaskDAG, TaskFlow, TaskGenerator, TaskGraphStore, TaskTracker, TechStackDetector, ToolAuditLog, ToolCapabilities, ToolError, ToolErrorCategory, ToolExecutor, ToolRegistry, ToolValidationError, VERIFY_AGENTS, WIDE_SUBAGENT_CAPABILITIES, WorktreeManager, WrongStackError, _resetDesignKitLoaderMemo, _resetDesignRulesCache, acquireOrJoin, activateDesign, addPlanItem, allServers, analyzeCriticalPath, appendJournal, applyModelRuntime, applyRosterBudget, applySddLifecycle, applyTokenOverrides, applyToolDescriptionModeToTool, applyToolDescriptionModes, applyToolResultRenderModes, asBlocks, asText, assertNever, assertNotPrivateHost, assertSafePath, assessCommitSafety, assignNickname, atomicWrite, attachAutoExtend, attachDepWatcherBridge, attachMailboxChecker, attachPlanCheckpoint, attachTodosCheckpoint, awsServer, blockServer, bootConfig, braveSearchServer, buildBoardSnapshot, buildBoardTasks, buildBtwBlock, buildChildEnv, buildContextEvidenceDigest, buildDownAlert, buildGoalPreamble, buildLosslessDigest, buildMailboxBlock, buildOtlpMetricsRequest, buildOtlpTracesRequest, buildQueuedMessagesBlock, buildRecoveryAlert, buildRecoveryStrategies, buildSmartDigest, buildTranscriptFromEvents, classifyFamily, classifyToolError, cleanupSddWorktrees, cleanupStaleSddWorktrees, clearActiveKit, clearPersistedActiveKit, clearPlan, codexModelMeta, collabInjectMiddleware, collabPauseMiddleware, color, colorToHex, compactLog, compactSchemaDescriptions, compactToolDefinitionForWire, compileGlob, compileUserRegex, completePartialObject, composeDirectorPrompt, composeSubagentPrompt, computeMessageTokens, computeTaskItemProgress, computeTaskProgress, consumeBtwNotes, consumeQueuedMessagesUpdate, context7Server, contextManagerTool, countShellHooks, createAgentMonitorService, createAutoExecutor, createAutoPhaseFromTaskGraph, createAutonomyBrain, createChimeraPlugin, createContextEvidenceState, createContextManagerTool, createDefaultPipelines, createDelegateTool, createFallbackModelExtension, createGitPlugin, createGlobalMailbox, createHqEventEnvelope, createHqPublisherFromEnv, createMailboxChecker, createMailboxEventPayload, createMailboxHooks, createMailboxSnapshotPayload, createMailboxSnapshotPayloadFromMailbox, createMcpControlTool, createMcpUseTool, createMessage, createObservabilityPlugin, createPlanPlugin, createPromptsPlugin, createSecurityPlugin, createSecuritySlashCommand, createSessionEventBridge, createSkillsPlugin, createStrategyCompactor, createSyncPlugin, createTieredBrainArbiter, createToolOutputSerializer, decryptConfigSecrets, deepMerge, defaultGitignoreUpdater, defaultHqDataDir, defaultOrchestrator, defaultReportGenerator, defaultSecurityScanner, defaultSkillGenerator, defaultTechStackDetector, definePlugin, deriveTodosFromPlanItem, describeCatalogModel, designProjectDir, destroySddProject, detectEcosystem, detectFrontendFile, detectFrontendIntent, detectNewlineStyle, detectEcosystem as detectPackageEcosystem, diffRegistry, dispatchAgent, downloadGitHubTarball, effectiveFallbackChain, eliseOldToolResults, emptyGoal, emptyHqAuthFile, emptyPlan, emptyTaskFile, encryptConfigSecrets, encryptedPrefixForVersion, enhanceUserPrompt, ensureDir, ensureHqFirstRunAuthFile, escapeGlobSubject, estimateMessageTokens, estimateMessages, estimateRequestTokens, estimateRequestTokensCalibrated, estimateTextTokens, estimateToolDefTokens, estimateToolInputTokens, estimateToolResultTokens, everArtServer, expandGlob, expandIPv6, expectDefined, extractRunEnv, extractText, extractVerificationCommand, fallbackProfileChain, filesystemServer, finalize, findCriticalPath, findPreserveStart, flagsToConfigPatch, formatContextWindowModeList, formatDecisionSummary, formatGoal, formatHumanPrompt, formatModelRef, formatPlan, formatPlanTemplates, formatTaskList, formatTaskProgress, formatTodosList, gatedEnhancerReasoning, generateSessionId, getAgentDefinition, getCalibrationState, getContextWindowMode, getDangerousCapabilities, getDesignKitLoader, getDesignState, getFileHistory, getFilesByAgent, getFullLog, getFullPackageLog, getJsonPath, getLastAuthor, getManifestPackages, getPackageAuthor, getPackagesByAgent, getPlanTemplate, getSessionRegistry, getTemplate, getTermSize, getToolDescriptionMode, getToolResultRenderMode, githubServer, goalFilePath, googleMapsServer, hasCapability, hasConflictMarkers, hasDangerousCapabilityForSubagents, hasOpenTodos, hasSessionRegistry, hasTextContent, hashRequest, hookMatcherMatches, hqAuthFilePath, hqRuntimeFilePath, injectPendingMailboxMessages, installDesignStudioMiddleware, isAgentError, isBuiltinCategory, isColorToken, isConfigError, isContextWindowModeId, isDesignStack, isExplanatoryText, isFetchError, isFsError, isImageBlock, isInteractive, isJsonObject, isParseError, isPathSubjectKey, isPluginError, isPrimitiveArray, isPrivateIPv4, isPrivateIPv6, isSddError, isSecretField, isSessionError, isStdinTTY, isStdoutTTY, isTextBlock, isThinkingBlock, isToolError, isToolResultBlock, isToolUseBlock, isToolValidationError, isUlid, isValidMatrixKey, isWrongStackError, jsonObjectFileExists, listContextWindowModes, listPlanTemplates, listTemplates, loadActiveKit, loadDirectorState, loadGoal, loadInstructionBundle, loadPlan, loadPlugins, loadProjectDesignRules, loadProjectModes, loadTasks, loadTodosCheckpoint, loadUserModes, mailboxSessionTag, makeAgentSubagentRunner, makeAskResultTool, makeAskTool, makeAssignTool, makeAutonomyPromptContributor, makeAwaitTasksTool, makeCollabDebugTool, makeCommandVerifier, makeContinueToNextIterationTool, makeDependencyWatcherConfig, makeDesignDetectToolCallMiddleware, makeDesignDetectUserInputMiddleware, makeDesignStudioRequestMiddleware, makeDesignVerifyToolCallMiddleware, makeDirectorSessionFactory, makeFleetEmitTool, makeFleetTool as makeFleetHealthTool, makeFleetTool as makeFleetSessionTool, makeFleetTool as makeFleetStatusTool, makeFleetTool, makeFleetTool as makeFleetUsageTool, makeLLMClassifier, makeLlmConflictResolver, makeLlmSubtaskGenerator, makeMailInboxTool, makeMailSendTool, makeMailboxTool, makePreferSideConflictResolver, makeRollUpTool, makeSpawnTool, makeTerminateAllTool, makeTerminateTool, makeWorkCompleteTool, mapMailboxAgentToHqSummary, mapMailboxMessageToHqSummary, mapSessionEventToEntries, markAssistantReferencedEvidence, matchAny, matchGlob, materializeTokens, matrixKeyKind, mergeCustomModelDefs, mergeInstructionBundle, mergeModelsPayload, mergeToolResults, migratePlaintextSecrets, migratePromptEntry, miniMaxVisionServer, mintHqBrowserToken, mintHqToken, mutateHqAuthFile, mutatePlan, mutateTasks, nicknameKeyFromDisplay, noOpLogger, noOpVault, normalizeModelRef, normalizePathSubject, normalizeRecipient, normalizeToLf, normalizeTokenSavingTier, normalizeToolDescriptionMode, normalizeToolResultRenderMode, normalizeTuiThinkingWord, normalizedEqual, oklchToHex, onResize, parseContinueDirective, parseEncryptedVersion, parseEntries, parseHqEventPayload, parseHqFrame, parseModelRef, parseOklch, parseProgressFromText, parseSkillRef, peekQueuedMessages, pendingBtwCount, phaseForRole, playwrightServer, projectHash, projectSlug, promptChecksum, readBundledInstructionText, readHqAuthFile, readHqRuntimeFileSync, readJsonObjectFile, readLiveLock, recentTextTurns, recordActualUsage, recordFileAction, recordKitChoice, recordOverrides, recordPackageAction, recordProgress, recordToolOutputEvidence, recordUserIntentEvidence, redactHqEvent, redactHqValue, release, removeJsonPath, removeJsonPathInFile, removePlanItem, renderInstructionTemplate, renderProgress, renderPrometheus, renderPrompt, renderSpecAnalysis, renderTaskGraph, renderTaskList, repairToolUseAdjacency, repeatedReadPressure, resetCalibration, resolveAuditLevel, resolveBundledDesignKitsDir, resolveCacheForRequest, resolveChimeraConfig, resolveConflictText, resolveContextWindowPolicy, resolveHqConfig, resolveHqConfigFromEnv, resolveHqDataDir, resolveMailboxIdentity, resolveModelMatrix, resolveModelRuntime, resolveModelTargetFromEntry, resolveProjectDir, resolveProviderModelList, resolveReasoningForRequest, resolveSessionLoggingConfig, resolveToolDescriptionMode, resolveToolResultRenderMode, resolveWstackPaths, rewriteConfigEncrypted, rollbackSddRunFromDisk, rosterSummaryFromConfigs, rotateConfigKeys, runConfigMigrations, runDesignVerify, runProviderWithRetry, runShellHook, safeParse, safeStringify, sanitizeJsonString, sanitizeModel, sanitizeNodeOptions, saveGoal, savePlan, saveTasks, saveTodosCheckpoint, scoreAgents, scoreMessage, scrubAndTruncateHqPreview, securitySlashCommand, sentinelServer, sessionScopedPath, setActiveKit, setBtwNote, setDesignOverrides, setJsonPath, setJsonPathInFile, setOutputLineGuard, setPlanItemStatus, setProgress, setQueuedMessagesSnapshot, setRawMode, setToolDescriptionMode, setToolResultRenderMode, shellHooksEqual, shortIdMap, shouldEnhance, simplifyToolDescription, slackServer, sleep, slugify, smartDefaultFallbackChain, sshManagerServer, stableStringify, startAgentMonitorEventBridge, startMetricsServer, startOtlpMetricsExporter, startOtlpTraceExporter, startPackageOutdatedWatcher, startSddRun, startSessionTelemetryBridge, startTechStackConsumer, stripAnsi, subjectForToolInput, summarizeHqToolArgs, summarizeUsage, templateToMarkdown, toErrorMessage, toStyle, toWrongStackError, topologicalSort, truncate, ulid, unifiedDiff, unloadPlugins, updateJsonObjectFile, updatePackageOutdatedStatus, validateAgainstSchema, validateRegistryManifest, validateWatchdogOptions, verifyFiles, watchHqAuthFile, watchProviderConfig, wireMetricsToEvents, withDisabledToolFiltering, withFileLock, wrapAsState, writeErr, writeHqAuthFile, writeHqRuntimeFile, writeJsonObjectFile, writeOut, wstackGlobalRoot, zaiVisionServer };
54359
54427
  //# sourceMappingURL=index.js.map
54360
54428
  //# sourceMappingURL=index.js.map