@wrongstack/core 0.282.0 → 0.282.2

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 (84) hide show
  1. package/README.md +1 -1
  2. package/dist/{agent-subagent-runner-Dksf0QVU.d.ts → agent-subagent-runner-DCczSoQj.d.ts} +6 -6
  3. package/dist/{config-BCAEJicb.d.ts → config-DkCbA3Bw.d.ts} +22 -0
  4. package/dist/coordination/index.d.ts +15 -15
  5. package/dist/coordination/index.js +802 -139
  6. package/dist/coordination/index.js.map +1 -1
  7. package/dist/{default-config-azFprTB3.d.ts → default-config-Buho8yge.d.ts} +1 -0
  8. package/dist/defaults/index.d.ts +18 -18
  9. package/dist/defaults/index.js +811 -119
  10. package/dist/defaults/index.js.map +1 -1
  11. package/dist/{events-CovDylaH.d.ts → events-BOv8h6I1.d.ts} +1 -1
  12. package/dist/execution/index.d.ts +9 -9
  13. package/dist/execution/index.js +8 -1
  14. package/dist/execution/index.js.map +1 -1
  15. package/dist/extension/index.d.ts +4 -4
  16. package/dist/{global-mailbox-CNfgvRw3.d.ts → global-mailbox-MDDFhLYh.d.ts} +1 -1
  17. package/dist/{goal-store-CBd749M4.d.ts → goal-store-BEmDmSKF.d.ts} +1 -1
  18. package/dist/hq/index.d.ts +4 -4
  19. package/dist/{index-D5HB7WkV.d.ts → index-Dd-PJJ8A.d.ts} +3 -3
  20. package/dist/index.d.ts +209 -30
  21. package/dist/index.js +29562 -28136
  22. package/dist/index.js.map +1 -1
  23. package/dist/infrastructure/index.d.ts +3 -3
  24. package/dist/infrastructure/index.js +8 -0
  25. package/dist/infrastructure/index.js.map +1 -1
  26. package/dist/kernel/index.d.ts +7 -7
  27. package/dist/kernel/index.js.map +1 -1
  28. package/dist/{mcp-servers-DJYwZXyH.d.ts → mcp-servers-BUx9A_AQ.d.ts} +1 -1
  29. package/dist/models/index.d.ts +4 -4
  30. package/dist/models/index.js +18 -20
  31. package/dist/models/index.js.map +1 -1
  32. package/dist/{multi-agent-coordinator-4DC31QWu.d.ts → multi-agent-coordinator-BRqtpn-a.d.ts} +1 -1
  33. package/dist/{null-fleet-bus-DuvA8PIR.d.ts → null-fleet-bus-BkptvIVo.d.ts} +7 -6
  34. package/dist/observability/index.d.ts +1 -1
  35. package/dist/{parallel-eternal-engine-BwcA0bAt.d.ts → parallel-eternal-engine-BXECuOVG.d.ts} +4 -4
  36. package/dist/{pipeline-DM-CPTUs.d.ts → pipeline-ixSFe5jg.d.ts} +2 -2
  37. package/dist/{provider-model-resolve-hNUbewMd.d.ts → provider-model-resolve-DIxKL_T-.d.ts} +1 -1
  38. package/dist/{provider-runner-Bz4GyUqo.d.ts → provider-runner-CJtCs1Rw.d.ts} +1 -1
  39. package/dist/sdd/index.d.ts +7 -7
  40. package/dist/sdd/index.js.map +1 -1
  41. package/dist/security/index.js +6 -0
  42. package/dist/security/index.js.map +1 -1
  43. package/dist/storage/index.d.ts +9 -9
  44. package/dist/storage/index.js +10 -1
  45. package/dist/storage/index.js.map +1 -1
  46. package/dist/{task-format-vGOIftmK.d.ts → task-format-GX0B1mMC.d.ts} +1 -1
  47. package/dist/{task-graph-u1q9Jkyk.d.ts → task-graph-CH3acNQ7.d.ts} +10 -1
  48. package/dist/{todos-checkpoint-addCdQ9f.d.ts → todos-checkpoint-Bw83WMh9.d.ts} +2 -2
  49. package/dist/{tool-executor-B3spV_Q6.d.ts → tool-executor-4mWN2vHW.d.ts} +7 -7
  50. package/dist/tools/index.d.ts +1 -1
  51. package/dist/tools/index.js +8 -0
  52. package/dist/tools/index.js.map +1 -1
  53. package/dist/types/index.d.ts +12 -12
  54. package/dist/types/index.js +22 -1
  55. package/dist/types/index.js.map +1 -1
  56. package/dist/utils/index.d.ts +5 -5
  57. package/dist/utils/index.js.map +1 -1
  58. package/dist/{worktree-manager-BBXdJq-Y.d.ts → worktree-manager-BrtjUFYk.d.ts} +1 -1
  59. package/instructions/leader-after-task.md +4 -4
  60. package/instructions/system.md +11 -0
  61. package/package.json +1 -1
  62. package/skills/api-design/SKILL.md +1 -1
  63. package/skills/audit-log/SKILL.md +3 -3
  64. package/skills/bug-hunter/SKILL.md +3 -3
  65. package/skills/chimera/SKILL.md +3 -3
  66. package/skills/docker-deploy/SKILL.md +1 -1
  67. package/skills/git-flow/SKILL.md +3 -3
  68. package/skills/mailbox-bridge/SKILL.md +1 -1
  69. package/skills/multi-agent/SKILL.md +3 -3
  70. package/skills/node-modern/SKILL.md +1 -1
  71. package/skills/observability/SKILL.md +1 -1
  72. package/skills/output-standards/SKILL.md +31 -30
  73. package/skills/output-standards/SKILL.save.md +5 -5
  74. package/skills/plugin-author/SKILL.md +1 -1
  75. package/skills/prompt-engineering/SKILL.md +1 -1
  76. package/skills/react-modern/SKILL.md +1 -1
  77. package/skills/refactor-planner/SKILL.md +3 -3
  78. package/skills/research-web/SKILL.md +1 -1
  79. package/skills/sdd/SKILL.md +1 -1
  80. package/skills/security-scanner/SKILL.md +3 -3
  81. package/skills/skill-creator/SKILL.md +1 -1
  82. package/skills/tech-stack/SKILL.md +3 -3
  83. package/skills/testing/SKILL.md +1 -1
  84. package/skills/typescript-strict/SKILL.md +1 -1
package/README.md CHANGED
@@ -12,7 +12,7 @@ If you're just using WrongStack from the terminal, install [`wrongstack`](../../
12
12
  pnpm add @wrongstack/core
13
13
  ```
14
14
 
15
- Requires **Node.js ≥ 22.0.0**.
15
+ Requires **Node.js ≥ 22.19.0**.
16
16
 
17
17
  ## What's in here
18
18
 
@@ -1,12 +1,12 @@
1
- import { T as ToolCallPipelinePayload, a as ToolWrapper, E as ExtensionRegistry, S as SystemPromptContributor, b as ToolRegistry, P as ProviderRegistry, A as AgentPipelines, c as ToolExecutorLike, d as AgentInit, e as AgentInput, R as RunResult } from './index-D5HB7WkV.js';
2
- import { C as Container, R as ReadonlyPipeline, a as Renderer } from './pipeline-DM-CPTUs.js';
3
- import { E as EventBus, a as EventName, L as Listener } from './events-CovDylaH.js';
1
+ import { T as ToolCallPipelinePayload, a as ToolWrapper, E as ExtensionRegistry, S as SystemPromptContributor, b as ToolRegistry, P as ProviderRegistry, A as AgentPipelines, c as ToolExecutorLike, d as AgentInit, e as AgentInput, R as RunResult } from './index-Dd-PJJ8A.js';
2
+ import { C as Container, R as ReadonlyPipeline, a as Renderer } from './pipeline-ixSFe5jg.js';
3
+ import { E as EventBus, a as EventName, L as Listener } from './events-BOv8h6I1.js';
4
4
  import { R as RetryPolicy, E as ErrorHandler } from './retry-policy-V67lBOJz.js';
5
5
  import { L as Logger } from './logger-B63L5bTg.js';
6
6
  import { T as Tracer } from './observability-D-HZN_mF.js';
7
7
  import { P as PermissionPolicy } from './permission-B6YAtNFz.js';
8
8
  import { d as Context, J as JSONSchema, c as Request, e as Response, i as ContentBlock, s as TextBlock, g as Tool, P as Provider, t as RunOptions, U as Usage } from './tool-LVSLiE1s.js';
9
- import { W as WireFamily, H as HookEvent, f as HookMatcher, I as InProcessHook, C as Config, M as ModelsRegistry, h as ModelRuntimeConfig } from './config-BCAEJicb.js';
9
+ import { W as WireFamily, H as HookEvent, f as HookMatcher, I as InProcessHook, C as Config, M as ModelsRegistry, h as ModelRuntimeConfig } from './config-DkCbA3Bw.js';
10
10
  import { b as Mailbox } from './mailbox-types-BGZWrYTJ.js';
11
11
 
12
12
  type BridgeMessageType = 'task' | 'result' | 'progress' | 'error' | 'heartbeat' | 'stop' | 'delegate' | 'budget_threshold';
@@ -857,8 +857,8 @@ interface SubagentConfig {
857
857
  worktree?: boolean | 'auto' | 'required' | 'off' | undefined;
858
858
  /**
859
859
  * Provider registry id (e.g. `'anthropic'`, `'openai'`, `'google'`).
860
- * Allows a director to mix providers across siblings — one subagent on
861
- * Sonnet, another on GPT-5, another on Haiku. Falls back to the
860
+ * Allows a director to mix providers across siblings — for example, one
861
+ * subagent on a planner model and another on a verifier model. Falls back to the
862
862
  * factory's default provider when omitted, which is the legacy
863
863
  * single-provider behavior.
864
864
  */
@@ -441,6 +441,8 @@ interface ToolsConfig {
441
441
  defaultExecutionStrategy: 'parallel' | 'sequential' | 'smart';
442
442
  maxIterations: number;
443
443
  iterationTimeoutMs: number;
444
+ /** Hard upper bound for a single tool call timeout. Defaults to 5 minutes. */
445
+ maxToolTimeoutMs?: number | undefined;
444
446
  sessionTimeoutMs: number;
445
447
  perIterationOutputCapBytes: number;
446
448
  /**
@@ -695,6 +697,26 @@ interface MCPServerConfig {
695
697
  * eager connect at boot.
696
698
  */
697
699
  lazy?: boolean | undefined;
700
+ /**
701
+ * Allowlist of environment variable names to forward from the parent process
702
+ * to this MCP server's child process. The values are resolved from
703
+ * `process.env` at spawn time, NOT stored in the config file.
704
+ *
705
+ * Why this exists: WrongStack's `buildChildEnv()` security filter scrubs
706
+ * env vars whose names look like secrets (TOKEN, SECRET, AUTH, KEY, ...)
707
+ * from all child processes — this prevents a compromised MCP server from
708
+ * exfiltrating provider API keys. But most MCP servers (GitHub, Slack,
709
+ * Brave Search, ...) need their own API tokens from the environment.
710
+ * `passthroughEnv` is the explicit bypass: only vars listed here survive
711
+ * the filter, and they go through the `extra` path (unfiltered merge).
712
+ *
713
+ * Built-in presets declare their required env vars here so they work
714
+ * out of the box when the user has the corresponding env vars exported
715
+ * in their shell. Users can also add entries for custom servers.
716
+ *
717
+ * Example: passthroughEnv: ['GITHUB_PERSONAL_ACCESS_TOKEN', 'GITHUB_TOKEN']
718
+ */
719
+ passthroughEnv?: string[] | undefined;
698
720
  }
699
721
  interface LogConfig {
700
722
  level: 'error' | 'warn' | 'info' | 'debug' | 'trace';
@@ -1,24 +1,24 @@
1
- import { H as FleetManager, s as Director } from '../null-fleet-bus-DuvA8PIR.js';
2
- export { A as ACP_AGENTS, a as AGENTS_BY_PHASE, b as AGENT_CATALOG, c as ALL_AGENT_DEFINITIONS, d as ALL_FLEET_AGENTS, e as AUDIT_LOG_AGENT, f as AutoExtendCeiling, g as AutoExtendPolicy, B as BUG_HUNTER_AGENT, h as BugFinding, C as CollabBudgetConfig, i as CollabBudgetOverrides, j as CollabBudgetWarningPayload, k as CollabDebugReport, l as CollabSession, m as CollabSessionOptions, n as CreateDelegateToolOptions, o as CriticConcern, p as CriticEvaluation, D as DEFAULT_DIRECTOR_PREAMBLE, q as DEFAULT_SUBAGENT_BASELINE, r as DelegateHost, t as DirectorAlert, u as DirectorAlertLevel, v as DirectorCancelCollabPayload, w as DirectorPromptParts, x as DirectorSessionFactory, y as DirectorSessionFactoryOptions, F as FLEET_ROSTER, z as FLEET_ROSTER_BUDGETS, E as FLEET_ROSTER_WITHACP, G as FleetCostCapError, I as FleetManagerOptions, J as FleetRosterBudget, K as FleetSpawnBudgetError, L as FleetWorktreePolicy, M as ICoordinator, N as IFleetManager, O as InMemoryAgentBridge, P as InMemoryBridgeTransport, Q as LargeAnswerStore, R as NULL_FLEET_BUS, S as REFACTOR_PLANNER_AGENT, T as RefactorPhase, U as RefactorPlan, V as SECURITY_SCANNER_AGENT, W as SharedFileEntry, X as SharedFileSnapshot, Y as SubagentPromptParts, Z as TaskResultNotification, _ as WorktreeIntegrationError, $ as WorktreeIsolationDecision, a0 as WorktreeTaskRunnerOptions, a1 as WorktreeTaskStateUpdate, a2 as applyRosterBudget, a3 as attachAutoExtend, a4 as composeDirectorPrompt, a5 as composeSubagentPrompt, a6 as createDelegateTool, a7 as createMessage, a8 as getAgentDefinition, a9 as makeAskResultTool, aa as makeAskTool, ab as makeAssignTool, ac as makeAwaitTasksTool, ad as makeCollabDebugTool, ae as makeDirectorSessionFactory, af as makeFleetEmitTool, ag as makeFleetHealthTool, ag as makeFleetSessionTool, ag as makeFleetTool, ag as makeFleetUsageTool, ah as makeQualityGateTool, ai as makeRollUpTool, aj as makeSpawnTool, ak as makeTerminateAllTool, al as makeTerminateTool, am as makeWorkCompleteTool, an as resolveSubagentWorktreeDecision, ao as rosterSummaryFromConfigs, ap as subagentNeedsWorktree, aq as wrapSubagentRunnerWithWorktrees } from '../null-fleet-bus-DuvA8PIR.js';
3
- import { F as FleetBus, T as TaskSpec } from '../agent-subagent-runner-Dksf0QVU.js';
4
- export { a as AgentFactory, y as AgentFactoryResult, z as AgentRunnerOptions, E as BudgetExceededError, G as BudgetKind, H as BudgetLimits, I as BudgetNegotiationMode, J as BudgetThresholdDecision, K as BudgetThresholdHandler, L as BudgetThresholdSignal, N as BudgetUsage, Q as DECISION_TIMEOUT_MS, R as FleetEvent, U as FleetHandler, k as FleetUsage, l as FleetUsageAggregator, X as SubagentBudget, a1 as SubagentUsageSnapshot, a2 as TIMEOUT_PREEMPT_FRACTION, a4 as makeAgentSubagentRunner, a5 as withDisabledToolFiltering } from '../agent-subagent-runner-Dksf0QVU.js';
5
- import { E as EventBus, B as BrainArbiter, f as BrainDecisionOption, k as BrainRisk, h as BrainDecisionRequest, e as BrainDecision, i as BrainDecisionSource } from '../events-CovDylaH.js';
6
- export { g as BrainDecisionQueue, j as BrainFallback, D as DefaultBrainArbiter, l as DefaultBrainArbiterOptions, H as HumanEscalatingBrainArbiter, O as ObservableBrainArbiter, w as formatHumanPrompt } from '../events-CovDylaH.js';
1
+ import { H as FleetManager, s as Director } from '../null-fleet-bus-BkptvIVo.js';
2
+ export { A as ACP_AGENTS, a as AGENTS_BY_PHASE, b as AGENT_CATALOG, c as ALL_AGENT_DEFINITIONS, d as ALL_FLEET_AGENTS, e as AUDIT_LOG_AGENT, f as AutoExtendCeiling, g as AutoExtendPolicy, B as BUG_HUNTER_AGENT, h as BugFinding, C as CollabBudgetConfig, i as CollabBudgetOverrides, j as CollabBudgetWarningPayload, k as CollabDebugReport, l as CollabSession, m as CollabSessionOptions, n as CreateDelegateToolOptions, o as CriticConcern, p as CriticEvaluation, D as DEFAULT_DIRECTOR_PREAMBLE, q as DEFAULT_SUBAGENT_BASELINE, r as DelegateHost, t as DirectorAlert, u as DirectorAlertLevel, v as DirectorCancelCollabPayload, w as DirectorPromptParts, x as DirectorSessionFactory, y as DirectorSessionFactoryOptions, F as FLEET_ROSTER, z as FLEET_ROSTER_BUDGETS, E as FLEET_ROSTER_WITHACP, G as FleetCostCapError, I as FleetManagerOptions, J as FleetRosterBudget, K as FleetSpawnBudgetError, L as FleetWorktreePolicy, M as ICoordinator, N as IFleetManager, O as InMemoryAgentBridge, P as InMemoryBridgeTransport, Q as LargeAnswerStore, R as NULL_FLEET_BUS, S as REFACTOR_PLANNER_AGENT, T as RefactorPhase, U as RefactorPlan, V as SECURITY_SCANNER_AGENT, W as SharedFileEntry, X as SharedFileSnapshot, Y as SubagentPromptParts, Z as TaskResultNotification, _ as WorktreeIntegrationError, $ as WorktreeIsolationDecision, a0 as WorktreeTaskRunnerOptions, a1 as WorktreeTaskStateUpdate, a2 as applyRosterBudget, a3 as attachAutoExtend, a4 as composeDirectorPrompt, a5 as composeSubagentPrompt, a6 as createDelegateTool, a7 as createMessage, a8 as getAgentDefinition, a9 as makeAskResultTool, aa as makeAskTool, ab as makeAssignTool, ac as makeAwaitTasksTool, ad as makeCollabDebugTool, ae as makeDirectorSessionFactory, af as makeFleetEmitTool, ag as makeFleetHealthTool, ag as makeFleetSessionTool, ag as makeFleetTool, ag as makeFleetUsageTool, ah as makeKanbanQueueTool, ai as makeQualityGateTool, aj as makeRollUpTool, ak as makeSpawnTool, al as makeTerminateAllTool, am as makeTerminateTool, an as makeWorkCompleteTool, ao as resolveSubagentWorktreeDecision, ap as rosterSummaryFromConfigs, aq as subagentNeedsWorktree, ar as wrapSubagentRunnerWithWorktrees } from '../null-fleet-bus-BkptvIVo.js';
3
+ import { F as FleetBus, T as TaskSpec } from '../agent-subagent-runner-DCczSoQj.js';
4
+ export { a as AgentFactory, y as AgentFactoryResult, z as AgentRunnerOptions, E as BudgetExceededError, G as BudgetKind, H as BudgetLimits, I as BudgetNegotiationMode, J as BudgetThresholdDecision, K as BudgetThresholdHandler, L as BudgetThresholdSignal, N as BudgetUsage, Q as DECISION_TIMEOUT_MS, R as FleetEvent, U as FleetHandler, k as FleetUsage, l as FleetUsageAggregator, X as SubagentBudget, a1 as SubagentUsageSnapshot, a2 as TIMEOUT_PREEMPT_FRACTION, a4 as makeAgentSubagentRunner, a5 as withDisabledToolFiltering } from '../agent-subagent-runner-DCczSoQj.js';
5
+ import { E as EventBus, B as BrainArbiter, f as BrainDecisionOption, k as BrainRisk, h as BrainDecisionRequest, e as BrainDecision, i as BrainDecisionSource } from '../events-BOv8h6I1.js';
6
+ export { g as BrainDecisionQueue, j as BrainFallback, D as DefaultBrainArbiter, l as DefaultBrainArbiterOptions, H as HumanEscalatingBrainArbiter, O as ObservableBrainArbiter, w as formatHumanPrompt } from '../events-BOv8h6I1.js';
7
7
  import { b as Mailbox, c as MailboxSendInput, M as MailboxMessage, d as MailboxQuery, e as MailboxAckInput, f as MailboxAckBatchInput, a as MailboxAgentStatus, A as AgentRegistrationInput, g as AgentHeartbeatInput, P as PurgeOptions, j as PurgeResult, C as ClientRegistrationInput, h as ClientHeartbeatInput, i as ClientStatus } from '../mailbox-types-BGZWrYTJ.js';
8
8
  export { k as ClientSource, l as MailboxMessageType, m as MailboxTaskContext, R as ReadReceipts, n as RegisteredAgent, o as normalizeRecipient } from '../mailbox-types-BGZWrYTJ.js';
9
- import { b as AgentDefinition } from '../multi-agent-coordinator-4DC31QWu.js';
10
- export { T as AGENT_TOOL_PRESETS, c as AgentBudgetTier, d as AgentCapability, A as AgentPhase, e as DEFAULT_DISPATCH_ROLE, a as DefaultMultiAgentCoordinator, f as DispatchCandidate, D as DispatchClassifier, g as DispatchMethod, h as DispatchOptions, i as DispatchResult, H as HEAVY_BUDGET, L as LIGHT_BUDGET, M as MEDIUM_BUDGET, j as MultiAgentCoordinatorOptions, k as dispatchAgent, m as makeLLMClassifier, s as scoreAgents } from '../multi-agent-coordinator-4DC31QWu.js';
9
+ import { b as AgentDefinition } from '../multi-agent-coordinator-BRqtpn-a.js';
10
+ export { T as AGENT_TOOL_PRESETS, c as AgentBudgetTier, d as AgentCapability, A as AgentPhase, e as DEFAULT_DISPATCH_ROLE, a as DefaultMultiAgentCoordinator, f as DispatchCandidate, D as DispatchClassifier, g as DispatchMethod, h as DispatchOptions, i as DispatchResult, H as HEAVY_BUDGET, L as LIGHT_BUDGET, M as MEDIUM_BUDGET, j as MultiAgentCoordinatorOptions, k as dispatchAgent, m as makeLLMClassifier, s as scoreAgents } from '../multi-agent-coordinator-BRqtpn-a.js';
11
11
  import { A as AgentEntry } from '../session-registry-Dvg7i_IA.js';
12
12
  import { d as Context, g as Tool } from '../tool-LVSLiE1s.js';
13
- import { J as FleetSupervisorConfig, a as ModelMatrixEntry, C as Config, A as AdaptiveConcurrencyConfig } from '../config-BCAEJicb.js';
14
- import { G as GlobalMailbox } from '../global-mailbox-CNfgvRw3.js';
15
- export { aA as resolveProjectDir } from '../global-mailbox-CNfgvRw3.js';
13
+ import { J as FleetSupervisorConfig, a as ModelMatrixEntry, C as Config, A as AdaptiveConcurrencyConfig } from '../config-DkCbA3Bw.js';
14
+ import { G as GlobalMailbox } from '../global-mailbox-MDDFhLYh.js';
15
+ export { aA as resolveProjectDir } from '../global-mailbox-MDDFhLYh.js';
16
16
  import { L as Logger } from '../logger-B63L5bTg.js';
17
17
  import 'node:events';
18
18
  import '../director-state-B_GPa78Q.js';
19
- import '../worktree-manager-BBXdJq-Y.js';
20
- import '../index-D5HB7WkV.js';
21
- import '../pipeline-DM-CPTUs.js';
19
+ import '../worktree-manager-BrtjUFYk.js';
20
+ import '../index-Dd-PJJ8A.js';
21
+ import '../pipeline-ixSFe5jg.js';
22
22
  import '../permission-B6YAtNFz.js';
23
23
  import '../observability-D-HZN_mF.js';
24
24
  import '../secret-scrubber-3MHDDAtm.js';
@@ -684,7 +684,7 @@ declare function actionToAckInput(action: Exclude<MailboxMessageAction, 'soft-de
684
684
  * mailbox,
685
685
  * url: 'http://127.0.0.1:7788',
686
686
  * probeIntervalMs: 15_000,
687
- * onAlert: (event) => console.warn('mailbox bridge', event.kind),
687
+ * onAlert: (event) => console.warn(event),
688
688
  * });
689
689
  * await watchdog.start();
690
690
  * // ...later...