@wrongstack/core 0.77.0 → 0.84.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 (80) hide show
  1. package/dist/{agent-bridge-EWdqs8v6.d.ts → agent-bridge-C9P_HPez.d.ts} +2 -2
  2. package/dist/{agent-subagent-runner-D8qW8OSC.d.ts → agent-subagent-runner-2Aq0jOSj.d.ts} +107 -102
  3. package/dist/{compactor-D_ExJajC.d.ts → compactor-CJq7LQev.d.ts} +3 -3
  4. package/dist/{config-Dy0CK_o6.d.ts → config-_DZ7dN-T.d.ts} +77 -75
  5. package/dist/{context-y87Jc5ei.d.ts → context-ToHAp4-U.d.ts} +119 -90
  6. package/dist/coordination/index.d.ts +16 -16
  7. package/dist/coordination/index.js +318 -37
  8. package/dist/coordination/index.js.map +1 -1
  9. package/dist/defaults/index.d.ts +32 -32
  10. package/dist/defaults/index.js +433 -81
  11. package/dist/defaults/index.js.map +1 -1
  12. package/dist/{director-state-BmYi3DGA.d.ts → director-state-CgIc30qi.d.ts} +19 -19
  13. package/dist/{events-CYaoLN5_.d.ts → events-DnRqXaZ3.d.ts} +43 -42
  14. package/dist/execution/index.d.ts +53 -53
  15. package/dist/execution/index.js +72 -29
  16. package/dist/execution/index.js.map +1 -1
  17. package/dist/extension/index.d.ts +9 -9
  18. package/dist/extension/index.js +8 -1
  19. package/dist/extension/index.js.map +1 -1
  20. package/dist/{goal-store-C7jcumEh.d.ts → goal-store-DvWLNu52.d.ts} +4 -4
  21. package/dist/{index-DIxjTOga.d.ts → index-BNOLadHw.d.ts} +28 -28
  22. package/dist/{index-Dsda0uCn.d.ts → index-N0_c4bHQ.d.ts} +45 -45
  23. package/dist/index.d.ts +167 -167
  24. package/dist/index.js +617 -155
  25. package/dist/index.js.map +1 -1
  26. package/dist/infrastructure/index.d.ts +9 -9
  27. package/dist/infrastructure/index.js +13 -5
  28. package/dist/infrastructure/index.js.map +1 -1
  29. package/dist/kernel/index.d.ts +14 -14
  30. package/dist/kernel/index.js +7 -0
  31. package/dist/kernel/index.js.map +1 -1
  32. package/dist/logger-B72yyPc6.d.ts +12 -0
  33. package/dist/{logger-BppKxDqZ.d.ts → logger-C_27pj9i.d.ts} +6 -7
  34. package/dist/{mcp-servers-T0O6UN_w.d.ts → mcp-servers-Dck3T85_.d.ts} +20 -20
  35. package/dist/{mode-BO4SEUIv.d.ts → mode-CHo2XtHs.d.ts} +4 -4
  36. package/dist/models/index.d.ts +10 -10
  37. package/dist/models/index.js +8 -2
  38. package/dist/models/index.js.map +1 -1
  39. package/dist/{models-registry-BcYJDKLm.d.ts → models-registry-Be3osGt5.d.ts} +28 -28
  40. package/dist/{models-registry-Cuq1C8V9.d.ts → models-registry-Boz639EI.d.ts} +12 -12
  41. package/dist/{multi-agent-coordinator-DpbG3wiy.d.ts → multi-agent-coordinator-DllpCVkF.d.ts} +12 -12
  42. package/dist/{null-fleet-bus-u5ys3lW_.d.ts → null-fleet-bus-BY0AN-sr.d.ts} +121 -121
  43. package/dist/observability/index.d.ts +41 -41
  44. package/dist/observability/index.js.map +1 -1
  45. package/dist/{observability-BhnVLBLS.d.ts → observability-CoSNZdhX.d.ts} +4 -4
  46. package/dist/{parallel-eternal-engine-Dn0P8Pbj.d.ts → parallel-eternal-engine-D402RASp.d.ts} +49 -49
  47. package/dist/{path-resolver-B32v2JIq.d.ts → path-resolver-UPFTsDyD.d.ts} +6 -6
  48. package/dist/{permission-V5BLOrY6.d.ts → permission-14CChMmO.d.ts} +10 -8
  49. package/dist/{permission-policy-CBVx-d-8.d.ts → permission-policy-gW5htOo1.d.ts} +7 -7
  50. package/dist/{plan-templates-BcUwLlMQ.d.ts → plan-templates-DRvPgkfZ.d.ts} +65 -32
  51. package/dist/{provider-runner-CSi_7l0h.d.ts → provider-runner-COAJM8tC.d.ts} +6 -6
  52. package/dist/{retry-policy-CG3qvH_e.d.ts → retry-policy-DSu6O6rD.d.ts} +4 -4
  53. package/dist/sdd/index.d.ts +47 -47
  54. package/dist/sdd/index.js +47 -22
  55. package/dist/sdd/index.js.map +1 -1
  56. package/dist/{secret-scrubber-7rSC_emZ.d.ts → secret-scrubber-yGBFQYju.d.ts} +10 -2
  57. package/dist/security/index.d.ts +7 -7
  58. package/dist/security/index.js +15 -8
  59. package/dist/security/index.js.map +1 -1
  60. package/dist/{selector-RvBR_YRW.d.ts → selector-11-fm95U.d.ts} +2 -2
  61. package/dist/{session-event-bridge-CDHxcmQU.d.ts → session-event-bridge-D0u-x576.d.ts} +7 -7
  62. package/dist/{session-reader-BIpwM60D.d.ts → session-reader-BQU-toaN.d.ts} +23 -23
  63. package/dist/{skill-CxuWrsKK.d.ts → skill-BJeF2DwY.d.ts} +1 -1
  64. package/dist/skills/index.d.ts +9 -9
  65. package/dist/skills/index.js +15 -3
  66. package/dist/skills/index.js.map +1 -1
  67. package/dist/storage/index.d.ts +15 -15
  68. package/dist/storage/index.js +378 -76
  69. package/dist/storage/index.js.map +1 -1
  70. package/dist/{system-prompt-CA11g6Jo.d.ts → system-prompt-C0rLCeyn.d.ts} +16 -11
  71. package/dist/{task-graph-D1YQbpxF.d.ts → task-graph-CikNdRTG.d.ts} +22 -22
  72. package/dist/types/index.d.ts +26 -26
  73. package/dist/types/index.js +53 -17
  74. package/dist/types/index.js.map +1 -1
  75. package/dist/utils/index.d.ts +57 -45
  76. package/dist/utils/index.js +66 -12
  77. package/dist/utils/index.js.map +1 -1
  78. package/dist/{wstack-paths-D7evAFWM.d.ts → wstack-paths-BQMvEllz.d.ts} +2 -2
  79. package/package.json +1 -1
  80. package/dist/logger-DDd5C--Z.d.ts +0 -12
@@ -1,11 +1,11 @@
1
- import { c as AgentPhase, b as AgentDefinition, d as DefaultMultiAgentCoordinator, f as DispatchClassifier } from './multi-agent-coordinator-DpbG3wiy.js';
2
- import { F as FleetBus, r as FleetUsage, L as SubagentConfig, s as FleetUsageAggregator, X as TaskResult, o as CoordinatorStatus, Y as TaskSpec, u as MultiAgentConfig, U as SubagentRunner } from './agent-subagent-runner-D8qW8OSC.js';
3
- import { B as SessionWriter, Q as Tool, y as SessionStore } from './context-y87Jc5ei.js';
4
- import { B as BrainArbiter, E as EventBus } from './events-CYaoLN5_.js';
1
+ import { c as AgentPhase, b as AgentDefinition, d as DefaultMultiAgentCoordinator, f as DispatchClassifier } from './multi-agent-coordinator-DllpCVkF.js';
2
+ import { F as FleetBus, r as FleetUsage, L as SubagentConfig, s as FleetUsageAggregator, X as TaskResult, o as CoordinatorStatus, Y as TaskSpec, u as MultiAgentConfig, U as SubagentRunner } from './agent-subagent-runner-2Aq0jOSj.js';
3
+ import { B as SessionWriter, Q as Tool, y as SessionStore } from './context-ToHAp4-U.js';
4
+ import { B as BrainArbiter, E as EventBus } from './events-DnRqXaZ3.js';
5
5
  import { EventEmitter } from 'node:events';
6
- import { a as DirectorStateSnapshot } from './director-state-BmYi3DGA.js';
7
- import { r as ModelMatrixEntry } from './config-Dy0CK_o6.js';
8
- import { I as InMemoryAgentBridge } from './agent-bridge-EWdqs8v6.js';
6
+ import { a as DirectorStateSnapshot } from './director-state-CgIc30qi.js';
7
+ import { r as ModelMatrixEntry } from './config-_DZ7dN-T.js';
8
+ import { I as InMemoryAgentBridge } from './agent-bridge-C9P_HPez.js';
9
9
 
10
10
  /**
11
11
  * Agent catalog aggregator.
@@ -51,13 +51,13 @@ interface DirectorAlert {
51
51
  /** Human-readable message for UI/logs */
52
52
  message: string;
53
53
  /** Budget kind that triggered this alert, if any */
54
- budgetKind?: 'timeout' | 'idle_timeout' | 'iterations' | 'tool_calls' | 'tokens' | 'cost';
54
+ budgetKind?: 'timeout' | 'idle_timeout' | 'iterations' | 'tool_calls' | 'tokens' | 'cost' | undefined;
55
55
  /** Elapsed ms at time of alert */
56
- elapsedMs?: number;
56
+ elapsedMs?: number | undefined;
57
57
  /** Limit that was hit */
58
- limit?: number;
58
+ limit?: number | undefined;
59
59
  /** /btw notes the director has collected (may be empty) */
60
- btwNotes?: string[];
60
+ btwNotes?: string[] | undefined;
61
61
  }
62
62
  /**
63
63
  * Immutable snapshot of target files at the start of a collab session.
@@ -71,7 +71,7 @@ interface SharedFileSnapshot {
71
71
  interface SharedFileEntry {
72
72
  path: string;
73
73
  content: string;
74
- language?: string;
74
+ language?: string | undefined;
75
75
  }
76
76
  /**
77
77
  * Bug finding emitted by BugHunter and consumed by RefactorPlanner + Critic.
@@ -85,7 +85,7 @@ interface BugFinding {
85
85
  line: number;
86
86
  };
87
87
  description: string;
88
- suggestedFix?: string;
88
+ suggestedFix?: string | undefined;
89
89
  }
90
90
  /**
91
91
  * Refactoring plan emitted by RefactorPlanner, consuming BugFinding(s).
@@ -121,7 +121,7 @@ interface CriticEvaluation {
121
121
  interface CriticConcern {
122
122
  description: string;
123
123
  location?: {
124
- file: string;
124
+ file: string | undefined;
125
125
  line: number;
126
126
  };
127
127
  severity: 'blocking' | 'advisory';
@@ -175,7 +175,7 @@ interface CollabBudgetWarningPayload {
175
175
  kind: 'timeout' | 'idle_timeout' | 'iterations' | 'tool_calls' | 'tokens' | 'cost';
176
176
  used: number;
177
177
  limit: number;
178
- timeoutMs?: number;
178
+ timeoutMs?: number | undefined;
179
179
  elapsedMs: number;
180
180
  }
181
181
  /**
@@ -191,29 +191,29 @@ interface CollabSessionOptions {
191
191
  /** Paths to scan — used to build the SharedFileSnapshot. */
192
192
  targetPaths: string[];
193
193
  /** Files already read and snapshot. When provided, snapshot is skipped. */
194
- prebuiltSnapshot?: SharedFileSnapshot;
194
+ prebuiltSnapshot?: SharedFileSnapshot | undefined;
195
195
  /** Max time to wait for the session to resolve (ms). Default: 10 min. */
196
- timeoutMs?: number;
196
+ timeoutMs?: number | undefined;
197
197
  /**
198
198
  * Maximum number of files to include in the snapshot.
199
199
  * - If set explicitly: use this value (hard override).
200
200
  * - If `contextWindow` is set: calculate dynamically from estimated token budget.
201
201
  * - If neither: use `DEFAULT_MAX_TARGET_FILES` (30).
202
202
  */
203
- maxTargetFiles?: number;
203
+ maxTargetFiles?: number | undefined;
204
204
  /**
205
205
  * Context window size (in tokens) of the model running the subagents.
206
206
  * When provided and `maxTargetFiles` is not set, the limit is computed
207
207
  * dynamically: `floor((contextWindow * 0.4) / AVG_TOKENS_PER_FILE)`.
208
208
  * If not provided, `DEFAULT_MAX_TARGET_FILES` is used as the fallback.
209
209
  */
210
- contextWindow?: number;
210
+ contextWindow?: number | undefined;
211
211
  /**
212
212
  * Budget overrides per role. When provided, these override the hard-coded
213
213
  * defaults so the Director can enforce fleet-wide budget policy.
214
214
  * Keys must match role names: 'bug-hunter', 'refactor-planner', 'critic'.
215
215
  */
216
- budgetOverrides?: CollabBudgetOverrides;
216
+ budgetOverrides?: CollabBudgetOverrides | undefined;
217
217
  /**
218
218
  * Called by the Director when a collab agent hits a soft budget limit.
219
219
  * The Director uses this to decide whether to cancel the session or extend.
@@ -221,7 +221,7 @@ interface CollabSessionOptions {
221
221
  * with the agent's proposed new limits; 'ignore' to let the default
222
222
  * auto-extend logic handle it.
223
223
  */
224
- onBudgetWarning?: (alert: DirectorAlert) => 'cancel' | 'extend' | 'ignore';
224
+ onBudgetWarning?: (((alert: DirectorAlert) => 'cancel' | 'extend' | 'ignore')) | undefined;
225
225
  }
226
226
  declare class CollabSession extends EventEmitter {
227
227
  readonly sessionId: string;
@@ -306,9 +306,9 @@ interface IFleetManager {
306
306
  * Returns undefined if the subagent is not known to this manager.
307
307
  */
308
308
  getSubagentMeta(id: string): {
309
- provider?: string;
310
- model?: string;
311
- name?: string;
309
+ provider?: string | undefined;
310
+ model?: string | undefined;
311
+ name?: string | undefined;
312
312
  } | undefined;
313
313
  /**
314
314
  * Called before a spawn is recorded. Returns a reason string if the
@@ -376,7 +376,7 @@ interface IFleetManager {
376
376
  live: {
377
377
  subagentId: string;
378
378
  status: string;
379
- task?: string;
379
+ task?: string | undefined;
380
380
  }[];
381
381
  };
382
382
  /**
@@ -443,18 +443,18 @@ interface IFleetManager {
443
443
 
444
444
  /** Options for constructing a FleetManager. */
445
445
  interface FleetManagerOptions {
446
- manifestPath?: string;
447
- sessionsRoot?: string;
448
- directorRunId?: string;
449
- maxSpawns?: number;
450
- maxSpawnDepth?: number;
451
- spawnDepth?: number;
452
- stateCheckpointPath?: string;
453
- sessionWriter?: SessionWriter;
454
- manifestDebounceMs?: number;
455
- checkpointDebounceMs?: number;
446
+ manifestPath?: string | undefined;
447
+ sessionsRoot?: string | undefined;
448
+ directorRunId?: string | undefined;
449
+ maxSpawns?: number | undefined;
450
+ maxSpawnDepth?: number | undefined;
451
+ spawnDepth?: number | undefined;
452
+ stateCheckpointPath?: string | undefined;
453
+ sessionWriter?: SessionWriter | undefined;
454
+ manifestDebounceMs?: number | undefined;
455
+ checkpointDebounceMs?: number | undefined;
456
456
  directorBudget?: {
457
- maxCostUsd?: number;
457
+ maxCostUsd?: number | undefined;
458
458
  };
459
459
  /**
460
460
  * Maximum context load (as a fraction of maxContext) the leader agent
@@ -463,7 +463,7 @@ interface FleetManagerOptions {
463
463
  * a new subagent is refused — the leader must compact first.
464
464
  * Set to 1.0 to disable this check.
465
465
  */
466
- maxLeaderContextLoad?: number;
466
+ maxLeaderContextLoad?: number | undefined;
467
467
  /**
468
468
  * Provider's max context window in tokens. Used with `maxLeaderContextLoad`
469
469
  * to compute the absolute token threshold. Default: 128_000.
@@ -541,9 +541,9 @@ declare class FleetManager implements IFleetManager {
541
541
  setCoordinator(coordinator: DefaultMultiAgentCoordinator): void;
542
542
  snapshot(): FleetUsage;
543
543
  getSubagentMeta(id: string): {
544
- provider?: string;
545
- model?: string;
546
- name?: string;
544
+ provider?: string | undefined;
545
+ model?: string | undefined;
546
+ name?: string | undefined;
547
547
  } | undefined;
548
548
  /**
549
549
  * Returns null if the spawn is allowed, or an object describing
@@ -586,10 +586,10 @@ declare class FleetManager implements IFleetManager {
586
586
  * @param priceLookup Optional per-subagent pricing data
587
587
  */
588
588
  recordSpawn(subagentId: string, config: SubagentConfig, priceLookup?: {
589
- input?: number;
590
- output?: number;
591
- cacheRead?: number;
592
- cacheWrite?: number;
589
+ input?: number | undefined;
590
+ output?: number | undefined;
591
+ cacheRead?: number | undefined;
592
+ cacheWrite?: number | undefined;
593
593
  }): void;
594
594
  writeManifest(): Promise<string | null>;
595
595
  /**
@@ -636,7 +636,7 @@ declare class FleetManager implements IFleetManager {
636
636
  live: {
637
637
  subagentId: string;
638
638
  status: string;
639
- task?: string;
639
+ task?: string | undefined;
640
640
  }[];
641
641
  };
642
642
  /**
@@ -688,7 +688,7 @@ interface ICoordinator {
688
688
  assign(task: {
689
689
  id: string;
690
690
  description: string;
691
- subagentId?: string;
691
+ subagentId?: string | undefined;
692
692
  }): Promise<string>;
693
693
  /**
694
694
  * Synchronously ask a subagent something via the in-memory bridge.
@@ -697,7 +697,7 @@ interface ICoordinator {
697
697
  *
698
698
  * Only available in director mode — raw coordinator has no bridge.
699
699
  */
700
- ask<T = unknown>(subagentId: string, payload: unknown, timeoutMs?: number): Promise<T>;
700
+ ask<T = unknown>(subagentId: string, payload: unknown, timeoutMs?: number): Promise<T> | undefined;
701
701
  /**
702
702
  * Wait for one or more tasks to complete and return their results.
703
703
  * If a task is already done when called, returns immediately.
@@ -757,7 +757,7 @@ declare class LargeAnswerStore {
757
757
  * If the value is below sizeThreshold, returns it as-is (no store entry).
758
758
  */
759
759
  storeAnswer(value: unknown): {
760
- key?: string;
760
+ key?: string | undefined;
761
761
  summary: string;
762
762
  inline: boolean;
763
763
  };
@@ -786,7 +786,7 @@ declare class FleetSpawnBudgetError extends Error {
786
786
  readonly kind: 'max_spawns' | 'max_spawn_depth';
787
787
  readonly limit: number;
788
788
  readonly observed: number;
789
- constructor(kind: 'max_spawns' | 'max_spawn_depth', limit: number, observed: number, message?: string);
789
+ constructor(kind: 'max_spawns' | 'max_spawn_depth', limit: number, observed: number, message?: string | undefined);
790
790
  }
791
791
  declare class FleetCostCapError extends Error {
792
792
  readonly kind: 'max_cost_usd';
@@ -810,9 +810,9 @@ declare class FleetCostCapError extends Error {
810
810
  */
811
811
  interface DirectorOptions {
812
812
  config: MultiAgentConfig;
813
- runner?: SubagentRunner;
813
+ runner?: SubagentRunner | undefined;
814
814
  /** Optional Brain arbiter above the director for policy/decision escalation. */
815
- brain?: BrainArbiter;
815
+ brain?: BrainArbiter | undefined;
816
816
  /**
817
817
  * When set, the director writes a `fleet.json` manifest to this path
818
818
  * recording every spawned subagent (id, provider, model, role, task
@@ -820,7 +820,7 @@ interface DirectorOptions {
820
820
  * absolute file path — the directory must already exist (the
821
821
  * director-session factory creates it when used together).
822
822
  */
823
- manifestPath?: string;
823
+ manifestPath?: string | undefined;
824
824
  /**
825
825
  * Optional roster used by `leaderSystemPrompt()` to render a roles
826
826
  * summary into the leader's preamble. Same shape as the roster passed
@@ -831,12 +831,12 @@ interface DirectorOptions {
831
831
  * Override the built-in fleet preamble (see `DEFAULT_DIRECTOR_PREAMBLE`).
832
832
  * Pass an empty string to suppress the preamble entirely.
833
833
  */
834
- directorPreamble?: string;
834
+ directorPreamble?: string | undefined;
835
835
  /**
836
836
  * Override the built-in subagent baseline (see
837
837
  * `DEFAULT_SUBAGENT_BASELINE`). Pass an empty string to suppress.
838
838
  */
839
- subagentBaseline?: string;
839
+ subagentBaseline?: string | undefined;
840
840
  /**
841
841
  * Absolute path to a directory the fleet can use as a shared scratchpad
842
842
  * (read + write by every subagent). When set, the director creates it on
@@ -848,7 +848,7 @@ interface DirectorOptions {
848
848
  * Convention: under a fleet run rooted at `<sessionsRoot>/<runId>/`,
849
849
  * pass `<sessionsRoot>/<runId>/shared/` here.
850
850
  */
851
- sharedScratchpadPath?: string;
851
+ sharedScratchpadPath?: string | undefined;
852
852
  /**
853
853
  * Maximum number of spawns this director can perform across its
854
854
  * lifetime. Default: unlimited. Acts as a hard fleet-wide cost cap —
@@ -856,7 +856,7 @@ interface DirectorOptions {
856
856
  * instead of burning provider tokens until the user kills the
857
857
  * process. The N+1-th spawn call rejects with a `FleetSpawnBudgetError`.
858
858
  */
859
- maxSpawns?: number;
859
+ maxSpawns?: number | undefined;
860
860
  /**
861
861
  * Maximum nesting depth for spawns. The director constructed by the
862
862
  * user is at depth `spawnDepth` (default 0); any subagent that itself
@@ -867,13 +867,13 @@ interface DirectorOptions {
867
867
  * This stops infinite recursive director chains from a hostile or
868
868
  * confused prompt.
869
869
  */
870
- maxSpawnDepth?: number;
870
+ maxSpawnDepth?: number | undefined;
871
871
  /**
872
872
  * Current spawn-chain depth for this director instance. Defaults to 0.
873
873
  * A nested director should pass `parent.spawnDepth + 1`. Together with
874
874
  * `maxSpawnDepth` this bounds the chain.
875
875
  */
876
- spawnDepth?: number;
876
+ spawnDepth?: number | undefined;
877
877
  /**
878
878
  * Absolute path to a director-state checkpoint file. When set, the
879
879
  * director writes an incremental snapshot of pending/running/completed
@@ -882,7 +882,7 @@ interface DirectorOptions {
882
882
  * the checkpoint is a live mirror useful for crash recovery and the
883
883
  * `wstack resume` "you had N tasks in flight" banner.
884
884
  */
885
- stateCheckpointPath?: string;
885
+ stateCheckpointPath?: string | undefined;
886
886
  /**
887
887
  * Session writer the director should forward task lifecycle events to
888
888
  * (`agent_spawned`, `task_created`, `task_completed`, `task_failed`).
@@ -890,13 +890,13 @@ interface DirectorOptions {
890
890
  * lossy in production. Production callers (the CLI) pass the same
891
891
  * writer the host Agent uses so all events land in a single JSONL.
892
892
  */
893
- sessionWriter?: SessionWriter;
893
+ sessionWriter?: SessionWriter | undefined;
894
894
  /**
895
895
  * Debounce window for periodic manifest writes triggered by spawn/
896
896
  * assign/complete events. Default: 2000ms. Pass 0 to disable periodic
897
897
  * writes (the manifest will then only be written on `shutdown()`).
898
898
  */
899
- manifestDebounceMs?: number;
899
+ manifestDebounceMs?: number | undefined;
900
900
  /**
901
901
  * Fleet-wide cost ceiling. When set, `spawn()` refuses any new subagent
902
902
  * that would push the fleet's total cost above this limit. The cap
@@ -913,8 +913,8 @@ interface DirectorOptions {
913
913
  * Maximum total USD the fleet may spend across all subagents.
914
914
  * Default: Infinity (no cap).
915
915
  */
916
- maxCostUsd?: number;
917
- };
916
+ maxCostUsd?: number | undefined;
917
+ } | undefined;
918
918
  /**
919
919
  * Maximum auto-extensions per subagent per budget kind before the
920
920
  * director denies further extensions. A subagent hitting the same
@@ -924,7 +924,7 @@ interface DirectorOptions {
924
924
  * disable the cap (use with caution — a misconfigured subagent
925
925
  * could burn unlimited budget).
926
926
  */
927
- maxBudgetExtensions?: number;
927
+ maxBudgetExtensions?: number | undefined;
928
928
  /**
929
929
  * Debounce window for state-checkpoint writes. Default: 250ms.
930
930
  * Bursts of spawn/assign/complete events collapse into one disk
@@ -932,19 +932,19 @@ interface DirectorOptions {
932
932
  * lower values improve crash-recovery fidelity (less state lost
933
933
  * on sudden process exit).
934
934
  */
935
- checkpointDebounceMs?: number;
935
+ checkpointDebounceMs?: number | undefined;
936
936
  /**
937
937
  * Sessions root directory for per-subagent JSONL transcripts.
938
938
  * When set, the director can read subagent transcripts directly for
939
939
  * `fleet_session` tool — no bridge round-trip needed. Path convention:
940
940
  * `<sessionsRoot>/<directorRunId>/<subagentId>.jsonl`.
941
941
  */
942
- sessionsRoot?: string;
942
+ sessionsRoot?: string | undefined;
943
943
  /**
944
944
  * Director run id — namespaced under `sessionsRoot` to locate per-subagent
945
945
  * JSONLs. Defaults to the director's own `id` when omitted.
946
946
  */
947
- directorRunId?: string;
947
+ directorRunId?: string | undefined;
948
948
  /**
949
949
  * Pre-built fleet manager. When provided the Director delegates all
950
950
  * fleet-level policy (spawn budgets, manifest assembly, checkpointing)
@@ -955,7 +955,7 @@ interface DirectorOptions {
955
955
  * When omitted the Director creates its own fleet infrastructure
956
956
  * (same behavior as before this field was added).
957
957
  */
958
- fleetManager?: FleetManager;
958
+ fleetManager?: FleetManager | undefined;
959
959
  /**
960
960
  * Optional LLM classifier for the smart dispatcher. When set, the
961
961
  * `spawn_subagent` tool can accept a free-form `description` field
@@ -966,7 +966,7 @@ interface DirectorOptions {
966
966
  * Build from a `complete(prompt) => string` function using
967
967
  * `makeLLMClassifier(complete)` from the dispatcher module.
968
968
  */
969
- dispatchClassifier?: DispatchClassifier;
969
+ dispatchClassifier?: DispatchClassifier | undefined;
970
970
  /**
971
971
  * Maximum context load (as a fraction of maxContext) the leader agent
972
972
  * is allowed to reach before a new spawn is rejected. Default: 0.85.
@@ -975,7 +975,7 @@ interface DirectorOptions {
975
975
  * Only used when no `fleetManager` is provided (inline mode).
976
976
  * Set to 1.0 to disable this check.
977
977
  */
978
- maxLeaderContextLoad?: number;
978
+ maxLeaderContextLoad?: number | undefined;
979
979
  /**
980
980
  * Provider's max context window in tokens. Used with `maxLeaderContextLoad`
981
981
  * to compute the absolute token threshold. Default: 128_000.
@@ -997,7 +997,7 @@ interface DirectorOptions {
997
997
  * mid-session `/setmodel` takes effect on the next spawn. A static record
998
998
  * is also accepted for tests and one-shot runs.
999
999
  */
1000
- modelMatrix?: ModelMatrixSource;
1000
+ modelMatrix?: ModelMatrixSource | undefined;
1001
1001
  }
1002
1002
  /** Either a static matrix or a live getter (re-read on every spawn). */
1003
1003
  type ModelMatrixSource = Record<string, ModelMatrixEntry> | (() => Record<string, ModelMatrixEntry> | undefined);
@@ -1119,7 +1119,7 @@ declare class Director implements ICoordinator {
1119
1119
  */
1120
1120
  private taskCompletedListener;
1121
1121
  /** Optional LLM classifier for smart dispatch. Passed from options. */
1122
- readonly dispatchClassifier?: DispatchClassifier;
1122
+ readonly dispatchClassifier?: DispatchClassifier | undefined;
1123
1123
  /** Leader agent's current context pressure (full request tokens). */
1124
1124
  private leaderContextPressure;
1125
1125
  /** Maximum context load fraction before spawn is refused. */
@@ -1237,10 +1237,10 @@ declare class Director implements ICoordinator {
1237
1237
  * it the `cost` column in `usage.snapshot()` stays at 0.
1238
1238
  */
1239
1239
  spawn(config: SubagentConfig, priceLookup?: {
1240
- input?: number;
1241
- output?: number;
1242
- cacheRead?: number;
1243
- cacheWrite?: number;
1240
+ input?: number | undefined;
1241
+ output?: number | undefined;
1242
+ cacheRead?: number | undefined;
1243
+ cacheWrite?: number | undefined;
1244
1244
  }): Promise<string>;
1245
1245
  /**
1246
1246
  * Synchronously ask a subagent something via the bridge. Sends a
@@ -1342,12 +1342,12 @@ declare class Director implements ICoordinator {
1342
1342
  * tool-use count, and line count — or null if the file is unavailable.
1343
1343
  * Requires `sessionsRoot` to be set on construction.
1344
1344
  */
1345
- readSession(subagentId: string, tail?: number): Promise<{
1346
- lastAssistantText?: string;
1347
- lastStopReason?: string;
1345
+ readSession(subagentId: string, tail?: number | undefined): Promise<{
1346
+ lastAssistantText?: string | undefined;
1347
+ lastStopReason?: string | undefined;
1348
1348
  toolUsesObserved: number;
1349
1349
  events: number;
1350
- path?: string;
1350
+ path?: string | undefined;
1351
1351
  } | null>;
1352
1352
  snapshot(): FleetUsage;
1353
1353
  /**
@@ -1358,9 +1358,9 @@ declare class Director implements ICoordinator {
1358
1358
  * subagent row without reaching into private state.
1359
1359
  */
1360
1360
  getSubagentMeta(id: string): {
1361
- provider?: string;
1362
- model?: string;
1363
- name?: string;
1361
+ provider?: string | undefined;
1362
+ model?: string | undefined;
1363
+ name?: string | undefined;
1364
1364
  } | undefined;
1365
1365
  /**
1366
1366
  * Compose the leader/director-agent system prompt: fleet preamble +
@@ -1524,7 +1524,7 @@ interface CreateDelegateToolOptions {
1524
1524
  * without being killed for being slow — the orchestrator must
1525
1525
  * decide per-call when a task needs to be cut short.
1526
1526
  */
1527
- defaultTimeoutMs?: number;
1527
+ defaultTimeoutMs?: number | undefined;
1528
1528
  /**
1529
1529
  * Absolute directory under which per-subagent JSONL transcripts live —
1530
1530
  * matches `MultiAgentHostOptions.sessionsRoot`. When set, the delegate
@@ -1532,13 +1532,13 @@ interface CreateDelegateToolOptions {
1532
1532
  * to extract partial output, so the host LLM gets *something* useful
1533
1533
  * back instead of just an error.
1534
1534
  */
1535
- sessionsRoot?: string;
1535
+ sessionsRoot?: string | undefined;
1536
1536
  /**
1537
1537
  * The directorRunId used to namespace transcripts (typically the host
1538
1538
  * session id). Combined with `sessionsRoot` to locate per-subagent
1539
1539
  * JSONLs at `<sessionsRoot>/<runId>/<subagentId>.jsonl`.
1540
1540
  */
1541
- directorRunId?: string;
1541
+ directorRunId?: string | undefined;
1542
1542
  /**
1543
1543
  * Buffer subtracted from the caller's `timeoutMs` before passing it
1544
1544
  * to the subagent. Gives the host a window to detect a subagent that
@@ -1546,7 +1546,7 @@ interface CreateDelegateToolOptions {
1546
1546
  * timeout. Default: 60_000 ms (raised from 30s to give subagents
1547
1547
  * more headroom before the host kills them).
1548
1548
  */
1549
- subagentTimeoutBufferMs?: number;
1549
+ subagentTimeoutBufferMs?: number | undefined;
1550
1550
  /**
1551
1551
  * Host EventBus. When supplied, `delegate` emits `delegate.started`
1552
1552
  * (before it blocks on the subagent) and `delegate.completed` (once the
@@ -1555,7 +1555,7 @@ interface CreateDelegateToolOptions {
1555
1555
  * `tool.executed` JSON preview. Optional — emits are best-effort and a
1556
1556
  * missing bus never affects delegation behaviour.
1557
1557
  */
1558
- events?: EventBus;
1558
+ events?: EventBus | undefined;
1559
1559
  }
1560
1560
  /**
1561
1561
  * `delegate` — the only multi-agent tool a regular (non-director) agent
@@ -1600,14 +1600,14 @@ interface DirectorSessionFactoryOptions {
1600
1600
  * director run directory. Tests pass an in-memory store for isolation;
1601
1601
  * production code passes the path under `~/.wrongstack/sessions/`.
1602
1602
  */
1603
- store?: SessionStore;
1604
- sessionsRoot?: string;
1603
+ store?: SessionStore | undefined;
1604
+ sessionsRoot?: string | undefined;
1605
1605
  /**
1606
1606
  * Director run id — namespaces all subagent JSONLs under one folder.
1607
1607
  * Defaults to a timestamped id; supplied explicitly when resuming a
1608
1608
  * prior fleet manifest.
1609
1609
  */
1610
- directorRunId?: string;
1610
+ directorRunId?: string | undefined;
1611
1611
  }
1612
1612
  interface DirectorSessionFactory {
1613
1613
  /** Absolute directory where this director run's transcripts live. */
@@ -1621,9 +1621,9 @@ interface DirectorSessionFactory {
1621
1621
  */
1622
1622
  createSubagentSession(args: {
1623
1623
  subagentId: string;
1624
- provider?: string;
1625
- model?: string;
1626
- title?: string;
1624
+ provider?: string | undefined;
1625
+ model?: string | undefined;
1626
+ title?: string | undefined;
1627
1627
  }): Promise<SessionWriter>;
1628
1628
  }
1629
1629
  /**
@@ -1676,13 +1676,13 @@ declare const DEFAULT_SUBAGENT_BASELINE = "You are a subagent operating under a
1676
1676
  interface DirectorPromptParts {
1677
1677
  /** The user's existing leader system prompt — typically what was passed
1678
1678
  * via `MultiAgentConfig.leaderSystemPrompt`. */
1679
- basePrompt?: string;
1679
+ basePrompt?: string | undefined;
1680
1680
  /** Override the built-in fleet preamble. Pass empty string to suppress. */
1681
- directorPreamble?: string;
1681
+ directorPreamble?: string | undefined;
1682
1682
  /** Optional roster summary block — a short list of pre-configured roles
1683
1683
  * the director can spawn (e.g. "researcher, coder, reviewer"). Helps
1684
1684
  * small models discover the available shapes without scanning tools. */
1685
- rosterSummary?: string;
1685
+ rosterSummary?: string | undefined;
1686
1686
  }
1687
1687
  /**
1688
1688
  * Compose the leader/director's system prompt. Order:
@@ -1699,13 +1699,13 @@ declare function composeDirectorPrompt(parts?: DirectorPromptParts): string;
1699
1699
  interface SubagentPromptParts {
1700
1700
  /** Base persona/identity for *every* subagent. Defaults to the bridge
1701
1701
  * contract baseline. Pass empty string to suppress. */
1702
- baseline?: string;
1702
+ baseline?: string | undefined;
1703
1703
  /** Role-specific block, e.g. "You are a code reviewer. Focus on…". */
1704
- role?: string;
1704
+ role?: string | undefined;
1705
1705
  /** Task brief — usually the same string the runner passes as user input,
1706
1706
  * but exposed here in case the factory wants it duplicated in the
1707
1707
  * system prompt for reinforcement. */
1708
- task?: string;
1708
+ task?: string | undefined;
1709
1709
  /**
1710
1710
  * Absolute path to a shared scratchpad directory the whole fleet can
1711
1711
  * read/write. When set, the composer adds a "Shared notes" block that
@@ -1715,18 +1715,18 @@ interface SubagentPromptParts {
1715
1715
  * conclusions. Falls between `task` and `override` so the override
1716
1716
  * can still narrow or replace it.
1717
1717
  */
1718
- sharedScratchpad?: string;
1718
+ sharedScratchpad?: string | undefined;
1719
1719
  /**
1720
1720
  * Optional skill body content injected into the subagent's system prompt.
1721
1721
  * Use this to provide domain-specific knowledge (SKILL.md bodies) to
1722
1722
  * subagents that need it. Placed after `sharedScratchpad` and before
1723
1723
  * `override` so the override can still narrow or replace it.
1724
1724
  */
1725
- skills?: string;
1725
+ skills?: string | undefined;
1726
1726
  /** Final per-spawn override from `SubagentConfig.systemPromptOverride`.
1727
1727
  * Added last so it wins on conflict — that's by design: the spawn site
1728
1728
  * knows the most about what this specific subagent should do. */
1729
- override?: string;
1729
+ override?: string | undefined;
1730
1730
  }
1731
1731
  /**
1732
1732
  * Compose a subagent's system prompt. Order:
@@ -1758,10 +1758,10 @@ declare function composeSubagentPrompt(parts?: SubagentPromptParts): string;
1758
1758
  */
1759
1759
  declare function rosterSummaryFromConfigs(roster: Record<string, {
1760
1760
  name: string;
1761
- provider?: string;
1762
- model?: string;
1763
- prompt?: string;
1764
- role?: string;
1761
+ provider?: string | undefined;
1762
+ model?: string | undefined;
1763
+ prompt?: string | undefined;
1764
+ role?: string | undefined;
1765
1765
  }>): string;
1766
1766
 
1767
1767
  /**
@@ -1798,13 +1798,13 @@ declare const SECURITY_SCANNER_AGENT: SubagentConfig;
1798
1798
  */
1799
1799
  declare const FLEET_ROSTER: Record<string, SubagentConfig>;
1800
1800
  interface FleetRosterBudget {
1801
- timeoutMs?: number;
1801
+ timeoutMs?: number | undefined;
1802
1802
  /** Idle reap window (ms). Resets on activity — see `applyRosterBudget`. */
1803
- idleTimeoutMs?: number;
1804
- maxIterations?: number;
1805
- maxToolCalls?: number;
1806
- maxTokens?: number;
1807
- maxCostUsd?: number;
1803
+ idleTimeoutMs?: number | undefined;
1804
+ maxIterations?: number | undefined;
1805
+ maxToolCalls?: number | undefined;
1806
+ maxTokens?: number | undefined;
1807
+ maxCostUsd?: number | undefined;
1808
1808
  }
1809
1809
  declare const FLEET_ROSTER_BUDGETS: Record<string, FleetRosterBudget>;
1810
1810
  declare function applyRosterBudget(cfg: SubagentConfig): SubagentConfig;
@@ -1837,23 +1837,23 @@ declare const FLEET_ROSTER_WITHACP: Record<string, SubagentConfig>;
1837
1837
  */
1838
1838
 
1839
1839
  interface AutoExtendCeiling {
1840
- maxIterations?: number;
1841
- maxToolCalls?: number;
1842
- maxTokens?: number;
1843
- maxCostUsd?: number;
1844
- timeoutMs?: number;
1840
+ maxIterations?: number | undefined;
1841
+ maxToolCalls?: number | undefined;
1842
+ maxTokens?: number | undefined;
1843
+ maxCostUsd?: number | undefined;
1844
+ timeoutMs?: number | undefined;
1845
1845
  }
1846
1846
  interface AutoExtendPolicy {
1847
1847
  /** Multiplier applied to the tripped limit when extending. Default 0.5 (+50%). */
1848
- factor?: number;
1848
+ factor?: number | undefined;
1849
1849
  /**
1850
1850
  * Max extensions per NON-timeout kind before denying. Timeout is governed by
1851
1851
  * the heartbeat check, not this cap, so it can extend indefinitely while the
1852
1852
  * agent makes progress. Default 8.
1853
1853
  */
1854
- maxExtensionsPerKind?: number;
1854
+ maxExtensionsPerKind?: number | undefined;
1855
1855
  /** Absolute ceilings — an extension never pushes a limit past these. */
1856
- ceiling?: AutoExtendCeiling;
1856
+ ceiling?: AutoExtendCeiling | undefined;
1857
1857
  }
1858
1858
  /**
1859
1859
  * Attach an auto-extend policy to a subagent's EventBus. Returns an unsubscribe