nexus-agents 2.26.1 → 2.28.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 (49) hide show
  1. package/README.md +7 -7
  2. package/dist/{chunk-X33QNBGA.js → chunk-E7EX2KQJ.js} +3 -5
  3. package/dist/{chunk-X33QNBGA.js.map → chunk-E7EX2KQJ.js.map} +1 -1
  4. package/dist/{chunk-BOWNZMPH.js → chunk-L2SHSW4T.js} +3017 -1300
  5. package/dist/chunk-L2SHSW4T.js.map +1 -0
  6. package/dist/{chunk-ARNVVQ5W.js → chunk-LKSTILEE.js} +1213 -117
  7. package/dist/chunk-LKSTILEE.js.map +1 -0
  8. package/dist/{chunk-L3LQ3RP5.js → chunk-QZEAD6AG.js} +10339 -6289
  9. package/dist/chunk-QZEAD6AG.js.map +1 -0
  10. package/dist/{chunk-LCHCASB7.js → chunk-UGNLR4NZ.js} +2 -2
  11. package/dist/{chunk-UVQ7R4C4.js → chunk-YSDUVCCZ.js} +137 -717
  12. package/dist/chunk-YSDUVCCZ.js.map +1 -0
  13. package/dist/cli.d.ts +8 -1
  14. package/dist/cli.js +644 -216
  15. package/dist/cli.js.map +1 -1
  16. package/dist/{dist-Y5F6UM2N.js → dist-H5XNXVAV.js} +1384 -1295
  17. package/dist/dist-H5XNXVAV.js.map +1 -0
  18. package/dist/doctor-deep-BDE2PHVX.js +11 -0
  19. package/dist/index.d.ts +4299 -7411
  20. package/dist/index.js +588 -132
  21. package/dist/index.js.map +1 -1
  22. package/dist/{setup-command-VNF3KTCJ.js → setup-command-SS7LMN7Y.js} +5 -6
  23. package/dist/setup-config-DSMOOLVW.js +9 -0
  24. package/dist/workflows/templates/code-review.yaml +1 -1
  25. package/dist/workflows/templates/refactoring.yaml +1 -1
  26. package/dist/workflows/templates/research-review.yaml +19 -4
  27. package/dist/workflows/templates/security-audit.yaml +1 -1
  28. package/dist/workflows/templates/standards-review.yaml +1 -1
  29. package/package.json +12 -12
  30. package/src/workflows/templates/code-review.yaml +1 -1
  31. package/src/workflows/templates/refactoring.yaml +1 -1
  32. package/src/workflows/templates/research-review.yaml +19 -4
  33. package/src/workflows/templates/security-audit.yaml +1 -1
  34. package/src/workflows/templates/standards-review.yaml +1 -1
  35. package/dist/chunk-ARNVVQ5W.js.map +0 -1
  36. package/dist/chunk-BOWNZMPH.js.map +0 -1
  37. package/dist/chunk-L3LQ3RP5.js.map +0 -1
  38. package/dist/chunk-LCDOP543.js +0 -365
  39. package/dist/chunk-LCDOP543.js.map +0 -1
  40. package/dist/chunk-PGNRXCYY.js +0 -776
  41. package/dist/chunk-PGNRXCYY.js.map +0 -1
  42. package/dist/chunk-UVQ7R4C4.js.map +0 -1
  43. package/dist/dist-Y5F6UM2N.js.map +0 -1
  44. package/dist/doctor-deep-I2J5CRFG.js +0 -13
  45. package/dist/setup-config-VQSWWJ5O.js +0 -9
  46. /package/dist/{chunk-LCHCASB7.js.map → chunk-UGNLR4NZ.js.map} +0 -0
  47. /package/dist/{doctor-deep-I2J5CRFG.js.map → doctor-deep-BDE2PHVX.js.map} +0 -0
  48. /package/dist/{setup-command-VNF3KTCJ.js.map → setup-command-SS7LMN7Y.js.map} +0 -0
  49. /package/dist/{setup-config-VQSWWJ5O.js.map → setup-config-DSMOOLVW.js.map} +0 -0
@@ -1,365 +0,0 @@
1
- import {
2
- detectTaskCategory
3
- } from "./chunk-BOWNZMPH.js";
4
-
5
- // src/config/defaults-types.ts
6
- import { z } from "zod";
7
- function isKnownCliName(cli) {
8
- return cli === "claude" || cli === "gemini" || cli === "codex" || cli === "opencode" || cli === "default";
9
- }
10
- var positiveInt = z.number().int().positive();
11
- var nonNegativeInt = z.number().int().nonnegative();
12
- var durationMs = z.number().int().positive().describe("Duration in milliseconds");
13
- var TimeoutProfileSchema = z.object({
14
- simple: durationMs.describe("Timeout for simple tasks"),
15
- standard: durationMs.describe("Timeout for standard tasks"),
16
- complex: durationMs.describe("Timeout for complex tasks")
17
- });
18
- var RetryDefaultsSchema = z.object({
19
- maxRetries: nonNegativeInt.max(10).describe("Maximum retry attempts"),
20
- baseDelayMs: durationMs.describe("Base delay between retries"),
21
- maxDelayMs: durationMs.describe("Maximum delay between retries"),
22
- jitterFactor: z.number().min(0).max(1).describe("Jitter factor (0-1)")
23
- });
24
- var RateLimitDefaultsSchema = z.object({
25
- requestsPerMinute: positiveInt.max(1e3).describe("Max requests per minute"),
26
- enabled: z.boolean().describe("Whether rate limiting is enabled"),
27
- maxConcurrent: positiveInt.max(100).describe("Max concurrent requests"),
28
- capacity: positiveInt.describe("Token bucket capacity"),
29
- refillRate: positiveInt.describe("Token refill rate"),
30
- refillIntervalMs: durationMs.describe("Token refill interval")
31
- });
32
- var CircuitBreakerDefaultsSchema = z.object({
33
- failureThreshold: z.number().int().min(1).max(100).describe("Failures before opening"),
34
- resetTimeoutMs: durationMs.describe("Time before attempting reset"),
35
- halfOpenSuccessThreshold: z.number().int().min(1).max(10).describe("Successes to close"),
36
- countTimeoutsAsFailures: z.boolean().describe("Count timeouts as failures"),
37
- countAuthFailuresAsFailures: z.boolean().describe("Count auth failures as failures"),
38
- halfOpenMaxRequests: positiveInt.describe("Max requests in half-open state")
39
- });
40
- var ToolRateLimitConfigSchema = z.object({
41
- capacity: positiveInt.describe("Token bucket capacity"),
42
- refillRate: positiveInt.describe("Token refill rate"),
43
- refillIntervalMs: durationMs.describe("Token refill interval")
44
- });
45
- var WorkerDefaultsSchema = z.object({
46
- maxWorkers: positiveInt.max(32).describe("Maximum worker threads"),
47
- poolSize: positiveInt.max(32).describe("Worker pool size"),
48
- idleTimeoutMs: durationMs.describe("Worker idle timeout"),
49
- workflowMaxParallel: positiveInt.max(10).describe("Max parallel workflow tasks"),
50
- testParallelism: positiveInt.max(16).describe("Test parallelism"),
51
- evaluationMaxWorkers: positiveInt.max(16).describe("Evaluation worker count"),
52
- eventBusMaxHistory: nonNegativeInt.max(1e4).describe("Event bus history limit"),
53
- swarmObserverMaxEvents: nonNegativeInt.max(1e4).describe("Swarm observer event limit")
54
- });
55
- var TimeoutDefaultsSchema = z.object({
56
- cliMs: durationMs.describe("Default CLI timeout"),
57
- cliSimpleMs: durationMs.describe("Simple CLI task timeout"),
58
- cliComplexMs: durationMs.describe("Complex CLI task timeout"),
59
- apiMs: durationMs.describe("Default API timeout"),
60
- apiMaxMs: durationMs.describe("Maximum API timeout"),
61
- workflowMs: durationMs.describe("Default workflow timeout"),
62
- workflowMaxMs: durationMs.describe("Maximum workflow timeout"),
63
- stepMs: durationMs.describe("Default step timeout"),
64
- mcpMs: durationMs.describe("Default MCP timeout"),
65
- mcpMaxMs: durationMs.describe("Maximum MCP timeout"),
66
- healthCheckMs: durationMs.describe("Health check timeout"),
67
- testGlobalMs: durationMs.describe("Global test timeout"),
68
- testTaskMs: durationMs.describe("Task test timeout"),
69
- circuitBreakerResetMs: durationMs.describe("Circuit breaker reset timeout")
70
- });
71
-
72
- // src/config/timeouts.ts
73
- var CLI_TIMEOUTS = {
74
- claude: { simple: 3e4, standard: 12e4, complex: 6e5 },
75
- gemini: { simple: 3e4, standard: 12e4, complex: 6e5 },
76
- codex: { simple: 1e4, standard: 6e4, complex: 3e5 },
77
- opencode: { simple: 3e4, standard: 12e4, complex: 6e5 },
78
- default: { simple: 3e4, standard: 12e4, complex: 6e5 }
79
- };
80
- var VOTE_TIMEOUTS = {
81
- /** Default per-agent vote timeout. */
82
- defaultMs: 18e4,
83
- /** Minimum allowed vote timeout (floor for env override). */
84
- minMs: 3e4,
85
- /** Maximum allowed vote timeout (cap for env override). */
86
- maxMs: 6e5,
87
- /** Default max retries per agent. */
88
- maxRetries: 2
89
- };
90
- var MCP_TIMEOUTS = {
91
- /** Default timeout for MCP tool handlers. */
92
- defaultMs: 6e4,
93
- /** Maximum allowed MCP tool timeout. */
94
- maxMs: 9e5,
95
- /** Per-tool timeout overrides for long-running tools. */
96
- perTool: {
97
- orchestrate: 9e5,
98
- // 15 min — multi-step agent orchestration
99
- consensus_vote: 6e5,
100
- // 10 min — 5-6 agents voting in parallel via Promise.all
101
- execute_expert: 9e5,
102
- // 15 min — complex expert reasoning tasks
103
- run_workflow: 9e5
104
- // 15 min — multi-step workflow execution
105
- }
106
- };
107
- var WORKFLOW_TIMEOUTS = {
108
- /** Per-step timeout. */
109
- stepMs: 3e5,
110
- /** Overall workflow timeout. */
111
- workflowMs: 3e5,
112
- /** Maximum workflow timeout. */
113
- workflowMaxMs: 18e5,
114
- /** Maximum retry delay between steps. */
115
- maxRetryDelayMs: 3e4
116
- };
117
- var GRAPH_TIMEOUTS = {
118
- /** Default graph execution timeout. */
119
- defaultMs: 12e4,
120
- /** Maximum graph steps before abort. */
121
- maxSteps: 100
122
- };
123
- var PER_CLI_TASK_TIMEOUTS = {
124
- /** Default per-CLI timeout for parallel dispatch. */
125
- defaultMs: 3e5,
126
- /** Minimum per-CLI timeout. */
127
- minMs: 1e3,
128
- /** Maximum per-CLI timeout. */
129
- maxMs: 6e5,
130
- /** Parallel exploration per-CLI timeout (shorter for quick scans). */
131
- explorationMs: 12e4
132
- };
133
- var API_TIMEOUTS = {
134
- /** Default API request timeout. */
135
- defaultMs: 3e4,
136
- /** Maximum API request timeout. */
137
- maxMs: 3e5,
138
- /** arXiv API timeout. */
139
- arxivMs: 3e4,
140
- /** Source discovery API timeout. */
141
- sourceMs: 3e4,
142
- /** V2 delegate pipeline timeout. */
143
- v2DelegateMs: 3e4,
144
- /** Provider API call timeout. */
145
- providerMs: 3e4,
146
- /** GitHub API request timeout. */
147
- githubApiMs: 1e4
148
- };
149
- var WORKER_TIMEOUTS = {
150
- /** Default per-worker execution timeout. */
151
- defaultMs: 6e4,
152
- /** Minimum allowed worker timeout. */
153
- minMs: 5e3,
154
- /** Maximum allowed worker timeout. */
155
- maxMs: 3e5
156
- };
157
- var INTERNAL_TIMEOUTS = {
158
- /** Health check timeout. */
159
- healthCheckMs: 5e3,
160
- /** Circuit breaker reset timeout. */
161
- circuitBreakerResetMs: 3e4,
162
- /** Self-evaluation command timeout. */
163
- selfEvalMs: 12e4,
164
- /** Wave scheduler per-task timeout. */
165
- waveTaskMs: 6e4,
166
- /** Puppeteer orchestration timeout. */
167
- puppeteerMs: 3e5
168
- };
169
- var EXPERT_TIMEOUTS = {
170
- /** Complex reasoning tasks: architecture, security_review, planning. */
171
- complexMs: 6e5,
172
- /** Standard tasks: code_generation, testing, code_review, etc. */
173
- standardMs: 3e5,
174
- /** Minimum allowed expert timeout. */
175
- minMs: 3e4,
176
- /** Maximum allowed expert timeout. */
177
- maxMs: 9e5,
178
- /** Categories considered complex (longer timeout). */
179
- complexCategories: [
180
- "architecture",
181
- "security_review",
182
- "planning",
183
- "research"
184
- ]
185
- };
186
- var HEARTBEAT_TIMEOUTS = {
187
- /** Agent is considered slow after this duration without heartbeat. */
188
- slowThresholdMs: 6e4,
189
- /** Agent is considered stalled (no heartbeat) after this duration. */
190
- stalledThresholdMs: 12e4,
191
- /** Absolute maximum agent execution time (safety cap). */
192
- absoluteMaxMs: 9e5,
193
- /** Periodic heartbeat emission interval (Issue #1087). */
194
- heartbeatIntervalMs: 15e3
195
- };
196
- var TIMEOUT_GUARD = {
197
- /** Default operation timeout for the guard middleware. */
198
- defaultMs: 6e4,
199
- /** Maximum allowed timeout for any guarded operation. */
200
- maxMs: 9e5,
201
- /** Fraction of timeout at which to emit near-timeout warning. */
202
- nearTimeoutThreshold: 0.8
203
- };
204
- var REFLECTIVE_TIMEOUTS = {
205
- /** Timeout for reflection LLM call (aggressive — keeps retrieval fast). */
206
- reflectionMs: 2e3,
207
- /** Cache TTL in milliseconds. */
208
- cacheTtlMs: 3e5
209
- };
210
- var STEP_EXECUTOR_TIMEOUTS = {
211
- /** Default step timeout. */
212
- defaultMs: 3e5,
213
- /** Default retry delay between step attempts. */
214
- retryDelayMs: 1e3
215
- };
216
- var CACHE_TIMEOUTS = {
217
- /** Reputation model cache TTL. */
218
- reputationTtlMs: 3e5,
219
- /** Rate limiter token refill interval. */
220
- rateLimitRefillMs: 1e3
221
- };
222
- var CLI_SUBPROCESS_TIMEOUTS = {
223
- /** CLI adapter spawn timeout (detect/startup). */
224
- spawnMs: 1e4,
225
- /** Docker version check timeout. */
226
- dockerCheckMs: 5e3,
227
- /** gh CLI command timeout. */
228
- ghCommandMs: 3e4,
229
- /** CLI status probe timeout. */
230
- statusProbeMs: 5e3,
231
- /** Environment setup timeout. */
232
- envSetupMs: 3e3,
233
- /** Release validation (long-running). */
234
- releaseValidateMs: 12e4,
235
- /** Release build (longest-running). */
236
- releaseBuildMs: 18e4,
237
- /** Graph workflow execution timeout. */
238
- graphWorkflowMs: 6e4,
239
- /** Self-development plan phase duration. */
240
- selfDevPlanMs: 3e5,
241
- /** Self-development refine phase duration. */
242
- selfDevRefineMs: 18e4,
243
- /** Self-development vote phase duration. */
244
- selfDevVoteMs: 12e4,
245
- /** Collaboration protocol session timeout. */
246
- collaborationMs: 6e4,
247
- /** Maximum wait time for CI checks (auto-merge). */
248
- ciWaitMaxMs: 3e5,
249
- /** CI check polling interval (auto-merge). */
250
- ciPollIntervalMs: 15e3
251
- };
252
- var BACKOFF_CONFIG = {
253
- /** Base delay multiplier in milliseconds. */
254
- baseDelayMs: 1e3,
255
- /** Exponent base for exponential backoff (delay = base^attempt * baseDelayMs). */
256
- exponentBase: 2
257
- };
258
- var AGENT_ROUTER_TIMEOUTS = {
259
- /** Default router timeout per message. */
260
- defaultMs: 3e4,
261
- /** Default max retries for message routing. */
262
- maxRetries: 3,
263
- /** Default delay between retries. */
264
- retryDelayMs: 1e3
265
- };
266
- var CODEX_MCP_TIMEOUTS = {
267
- /** Default execution timeout. */
268
- defaultMs: 12e4,
269
- /** Default max retries. */
270
- maxRetries: 2
271
- };
272
- var TEST_TIMEOUTS = {
273
- /** Global test run timeout. */
274
- globalMs: 6e5,
275
- /** Per-task test timeout. */
276
- taskMs: 12e4
277
- };
278
- function getCliTimeoutProfile(cli) {
279
- if (isKnownCliName(cli)) {
280
- return CLI_TIMEOUTS[cli];
281
- }
282
- return CLI_TIMEOUTS.default;
283
- }
284
- function getCliTimeout(cli, complexity) {
285
- return getCliTimeoutProfile(cli)[complexity];
286
- }
287
- function getExpertTaskTimeout(taskDescription) {
288
- const envOverride = resolveEnvTimeout(
289
- "NEXUS_EXPERT_TIMEOUT_MS",
290
- 0,
291
- EXPERT_TIMEOUTS.minMs,
292
- EXPERT_TIMEOUTS.maxMs
293
- );
294
- if (envOverride > 0) return envOverride;
295
- const match = detectTaskCategory(taskDescription);
296
- const category = match?.category ?? "exploration";
297
- const isComplex = EXPERT_TIMEOUTS.complexCategories.includes(category);
298
- return isComplex ? EXPERT_TIMEOUTS.complexMs : EXPERT_TIMEOUTS.standardMs;
299
- }
300
- var TIMEOUT_ENV_VARS = {
301
- vote: "NEXUS_VOTE_TIMEOUT_MS",
302
- mcp: "NEXUS_MCP_TIMEOUT_MS",
303
- workflow: "NEXUS_WORKFLOW_TIMEOUT_MS",
304
- graph: "NEXUS_GRAPH_TIMEOUT_MS",
305
- expert: "NEXUS_EXPERT_TIMEOUT_MS",
306
- worker: "NEXUS_WORKER_TIMEOUT_MS"
307
- };
308
- function resolveVoteTimeout() {
309
- return resolveEnvTimeout(
310
- TIMEOUT_ENV_VARS.vote,
311
- VOTE_TIMEOUTS.defaultMs,
312
- VOTE_TIMEOUTS.minMs,
313
- VOTE_TIMEOUTS.maxMs
314
- );
315
- }
316
- function resolveWorkerTimeout() {
317
- return resolveEnvTimeout(
318
- TIMEOUT_ENV_VARS.worker,
319
- WORKER_TIMEOUTS.defaultMs,
320
- WORKER_TIMEOUTS.minMs,
321
- WORKER_TIMEOUTS.maxMs
322
- );
323
- }
324
- function resolveEnvTimeout(envVar, defaultMs, minMs, maxMs) {
325
- const envVal = process.env[envVar];
326
- if (envVal !== void 0) {
327
- const parsed = Number(envVal);
328
- if (!Number.isNaN(parsed) && parsed > 0) {
329
- return Math.min(Math.max(parsed, minMs), maxMs);
330
- }
331
- }
332
- return defaultMs;
333
- }
334
- function validateTimeout(requestedMs, minMs = VOTE_TIMEOUTS.minMs, maxMs = VOTE_TIMEOUTS.maxMs) {
335
- const clamped = Math.min(Math.max(requestedMs, minMs), maxMs);
336
- return { value: clamped, clamped: clamped !== requestedMs };
337
- }
338
-
339
- export {
340
- CLI_TIMEOUTS,
341
- VOTE_TIMEOUTS,
342
- MCP_TIMEOUTS,
343
- WORKFLOW_TIMEOUTS,
344
- GRAPH_TIMEOUTS,
345
- PER_CLI_TASK_TIMEOUTS,
346
- API_TIMEOUTS,
347
- WORKER_TIMEOUTS,
348
- INTERNAL_TIMEOUTS,
349
- HEARTBEAT_TIMEOUTS,
350
- TIMEOUT_GUARD,
351
- REFLECTIVE_TIMEOUTS,
352
- STEP_EXECUTOR_TIMEOUTS,
353
- CACHE_TIMEOUTS,
354
- CLI_SUBPROCESS_TIMEOUTS,
355
- BACKOFF_CONFIG,
356
- AGENT_ROUTER_TIMEOUTS,
357
- CODEX_MCP_TIMEOUTS,
358
- TEST_TIMEOUTS,
359
- getCliTimeout,
360
- getExpertTaskTimeout,
361
- resolveVoteTimeout,
362
- resolveWorkerTimeout,
363
- validateTimeout
364
- };
365
- //# sourceMappingURL=chunk-LCDOP543.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/config/defaults-types.ts","../src/config/timeouts.ts"],"sourcesContent":["/**\n * Type definitions for configuration defaults.\n *\n * Provides type safety for the centralized defaults system.\n * Includes Zod schemas for runtime validation at config boundaries.\n *\n * @module config/defaults-types\n */\n\nimport { z } from 'zod';\nimport type { CliNameLiteral } from './model-capabilities-types.js';\n\n// ============================================================================\n// CLI Timeout Types\n// ============================================================================\n\n/**\n * Task complexity levels for CLI timeout selection.\n */\nexport type TaskComplexity = 'simple' | 'standard' | 'complex';\n\n/**\n * Timeout profile structure for CLI tools.\n */\nexport interface TimeoutProfile {\n /** Timeout for simple tasks (single function, quick analysis) in ms */\n readonly simple: number;\n /** Timeout for standard tasks (multi-file changes, moderate analysis) in ms */\n readonly standard: number;\n /** Timeout for complex tasks (codebase-wide changes, deep analysis) in ms */\n readonly complex: number;\n}\n\n/**\n * Known CLI names for timeout profiles.\n * Extends CliNameLiteral with 'default' for fallback timeout profiles.\n */\nexport type KnownCliName = CliNameLiteral | 'default';\n\n// ============================================================================\n// Defaults Type Definitions\n// ============================================================================\n\n/**\n * Mutable type for timeout defaults (for functions returning overridden values).\n */\nexport interface TimeoutDefaults {\n cliMs: number;\n cliSimpleMs: number;\n cliComplexMs: number;\n apiMs: number;\n apiMaxMs: number;\n workflowMs: number;\n workflowMaxMs: number;\n stepMs: number;\n mcpMs: number;\n mcpMaxMs: number;\n healthCheckMs: number;\n testGlobalMs: number;\n testTaskMs: number;\n circuitBreakerResetMs: number;\n}\n\n/**\n * Mutable type for rate limit defaults.\n */\nexport interface RateLimitDefaults {\n requestsPerMinute: number;\n enabled: boolean;\n maxConcurrent: number;\n capacity: number;\n refillRate: number;\n refillIntervalMs: number;\n}\n\n/**\n * Type for tool rate limit configuration.\n */\nexport interface ToolRateLimitConfig {\n readonly capacity: number;\n readonly refillRate: number;\n readonly refillIntervalMs: number;\n}\n\n/**\n * Mutable type for retry defaults.\n */\nexport interface RetryDefaults {\n maxRetries: number;\n baseDelayMs: number;\n maxDelayMs: number;\n jitterFactor: number;\n}\n\n/**\n * Mutable type for worker defaults.\n */\nexport interface WorkerDefaults {\n maxWorkers: number;\n poolSize: number;\n idleTimeoutMs: number;\n workflowMaxParallel: number;\n testParallelism: number;\n evaluationMaxWorkers: number;\n eventBusMaxHistory: number;\n swarmObserverMaxEvents: number;\n}\n\n/**\n * Mutable type for circuit breaker defaults.\n */\nexport interface CircuitBreakerDefaults {\n failureThreshold: number;\n resetTimeoutMs: number;\n halfOpenSuccessThreshold: number;\n countTimeoutsAsFailures: boolean;\n countAuthFailuresAsFailures: boolean;\n halfOpenMaxRequests: number;\n}\n\n// ============================================================================\n// Type Guards\n// ============================================================================\n\n/**\n * Type guard for task complexity.\n */\nexport function isTaskComplexity(value: unknown): value is TaskComplexity {\n return value === 'simple' || value === 'standard' || value === 'complex';\n}\n\n/**\n * Type guard for known CLI names.\n */\nexport function isKnownCliName(cli: string): cli is KnownCliName {\n return (\n cli === 'claude' ||\n cli === 'gemini' ||\n cli === 'codex' ||\n cli === 'opencode' ||\n cli === 'default'\n );\n}\n\n// ============================================================================\n// Zod Schemas for Runtime Validation\n// ============================================================================\n\n/**\n * Positive integer validator.\n */\nconst positiveInt = z.number().int().positive();\n\n/**\n * Non-negative integer validator.\n */\nconst nonNegativeInt = z.number().int().nonnegative();\n\n/**\n * Positive duration in milliseconds validator.\n */\nconst durationMs = z.number().int().positive().describe('Duration in milliseconds');\n\n/**\n * Schema for TimeoutProfile.\n */\nexport const TimeoutProfileSchema = z.object({\n simple: durationMs.describe('Timeout for simple tasks'),\n standard: durationMs.describe('Timeout for standard tasks'),\n complex: durationMs.describe('Timeout for complex tasks'),\n});\n\n/**\n * Schema for RetryDefaults.\n */\nexport const RetryDefaultsSchema = z.object({\n maxRetries: nonNegativeInt.max(10).describe('Maximum retry attempts'),\n baseDelayMs: durationMs.describe('Base delay between retries'),\n maxDelayMs: durationMs.describe('Maximum delay between retries'),\n jitterFactor: z.number().min(0).max(1).describe('Jitter factor (0-1)'),\n});\n\n/**\n * Schema for RateLimitDefaults.\n */\nexport const RateLimitDefaultsSchema = z.object({\n requestsPerMinute: positiveInt.max(1000).describe('Max requests per minute'),\n enabled: z.boolean().describe('Whether rate limiting is enabled'),\n maxConcurrent: positiveInt.max(100).describe('Max concurrent requests'),\n capacity: positiveInt.describe('Token bucket capacity'),\n refillRate: positiveInt.describe('Token refill rate'),\n refillIntervalMs: durationMs.describe('Token refill interval'),\n});\n\n/**\n * Schema for CircuitBreakerDefaults.\n */\nexport const CircuitBreakerDefaultsSchema = z.object({\n failureThreshold: z.number().int().min(1).max(100).describe('Failures before opening'),\n resetTimeoutMs: durationMs.describe('Time before attempting reset'),\n halfOpenSuccessThreshold: z.number().int().min(1).max(10).describe('Successes to close'),\n countTimeoutsAsFailures: z.boolean().describe('Count timeouts as failures'),\n countAuthFailuresAsFailures: z.boolean().describe('Count auth failures as failures'),\n halfOpenMaxRequests: positiveInt.describe('Max requests in half-open state'),\n});\n\n/**\n * Schema for ToolRateLimitConfig.\n */\nexport const ToolRateLimitConfigSchema = z.object({\n capacity: positiveInt.describe('Token bucket capacity'),\n refillRate: positiveInt.describe('Token refill rate'),\n refillIntervalMs: durationMs.describe('Token refill interval'),\n});\n\n/**\n * Schema for WorkerDefaults.\n */\nexport const WorkerDefaultsSchema = z.object({\n maxWorkers: positiveInt.max(32).describe('Maximum worker threads'),\n poolSize: positiveInt.max(32).describe('Worker pool size'),\n idleTimeoutMs: durationMs.describe('Worker idle timeout'),\n workflowMaxParallel: positiveInt.max(10).describe('Max parallel workflow tasks'),\n testParallelism: positiveInt.max(16).describe('Test parallelism'),\n evaluationMaxWorkers: positiveInt.max(16).describe('Evaluation worker count'),\n eventBusMaxHistory: nonNegativeInt.max(10000).describe('Event bus history limit'),\n swarmObserverMaxEvents: nonNegativeInt.max(10000).describe('Swarm observer event limit'),\n});\n\n/**\n * Schema for TimeoutDefaults.\n */\nexport const TimeoutDefaultsSchema = z.object({\n cliMs: durationMs.describe('Default CLI timeout'),\n cliSimpleMs: durationMs.describe('Simple CLI task timeout'),\n cliComplexMs: durationMs.describe('Complex CLI task timeout'),\n apiMs: durationMs.describe('Default API timeout'),\n apiMaxMs: durationMs.describe('Maximum API timeout'),\n workflowMs: durationMs.describe('Default workflow timeout'),\n workflowMaxMs: durationMs.describe('Maximum workflow timeout'),\n stepMs: durationMs.describe('Default step timeout'),\n mcpMs: durationMs.describe('Default MCP timeout'),\n mcpMaxMs: durationMs.describe('Maximum MCP timeout'),\n healthCheckMs: durationMs.describe('Health check timeout'),\n testGlobalMs: durationMs.describe('Global test timeout'),\n testTaskMs: durationMs.describe('Task test timeout'),\n circuitBreakerResetMs: durationMs.describe('Circuit breaker reset timeout'),\n});\n","/**\n * Centralized Timeout Configuration\n *\n * Single source of truth for ALL timeout values in nexus-agents.\n * Every timeout-related constant should be defined here and imported\n * by consumers — never hardcoded elsewhere.\n *\n * Taxonomy:\n * - **CLI**: Per-CLI subprocess execution timeouts by task complexity\n * - **Vote**: Consensus voting round timeouts\n * - **MCP**: MCP tool handler timeouts (default + per-tool overrides)\n * - **Workflow**: Workflow step and overall execution timeouts\n * - **Graph**: Graph workflow execution timeouts\n * - **API**: External API request timeouts\n * - **Internal**: Health checks, circuit breakers, wave scheduling\n *\n * Environment variable overrides: use `resolveTimeout()` for categories\n * that support runtime configuration.\n *\n * @module config/timeouts\n * (Source: Issue #984 — Centralize timeout configuration)\n */\n\nimport type { TaskComplexity, KnownCliName, TimeoutProfile } from './defaults-types.js';\nimport { isKnownCliName } from './defaults-types.js';\nimport { detectTaskCategory } from './task-specialization.js';\n\n// Re-export types that consumers need\nexport type { TaskComplexity, KnownCliName, TimeoutProfile };\nexport { isKnownCliName };\n\n// ============================================================================\n// Central Timeout Constants\n// ============================================================================\n\n/**\n * Per-CLI timeout profiles by task complexity.\n *\n * Values based on real-world performance testing (Issues #357, #366, #983):\n * - Claude: Consistent 30-120s across complexity levels\n * - Gemini: 30-180s — complex tasks need extra buffer for large context\n * - Codex: 10-90s — optimized for code generation, increased per #983\n *\n * When both defaults-timeout-profiles.ts and cli-timeout-profiles.ts\n * had conflicting values, the Issue #366 values (from observed failures)\n * take precedence.\n */\nexport const CLI_TIMEOUTS = {\n claude: { simple: 30_000, standard: 120_000, complex: 600_000 },\n gemini: { simple: 30_000, standard: 120_000, complex: 600_000 },\n codex: { simple: 10_000, standard: 60_000, complex: 300_000 },\n opencode: { simple: 30_000, standard: 120_000, complex: 600_000 },\n default: { simple: 30_000, standard: 120_000, complex: 600_000 },\n} as const satisfies Record<KnownCliName, TimeoutProfile>;\n\n/**\n * Consensus voting timeouts.\n * Increased from 90s to 120s per Issue #983 for slower CLIs.\n */\nexport const VOTE_TIMEOUTS = {\n /** Default per-agent vote timeout. */\n defaultMs: 180_000,\n /** Minimum allowed vote timeout (floor for env override). */\n minMs: 30_000,\n /** Maximum allowed vote timeout (cap for env override). */\n maxMs: 600_000,\n /** Default max retries per agent. */\n maxRetries: 2,\n} as const;\n\n/**\n * MCP tool handler timeouts.\n * Used by the tool middleware wrapper (CVE-2026-0621 mitigation).\n */\nexport const MCP_TIMEOUTS = {\n /** Default timeout for MCP tool handlers. */\n defaultMs: 60_000,\n /** Maximum allowed MCP tool timeout. */\n maxMs: 900_000,\n /** Per-tool timeout overrides for long-running tools. */\n perTool: {\n orchestrate: 900_000, // 15 min — multi-step agent orchestration\n consensus_vote: 600_000, // 10 min — 5-6 agents voting in parallel via Promise.all\n execute_expert: 900_000, // 15 min — complex expert reasoning tasks\n run_workflow: 900_000, // 15 min — multi-step workflow execution\n } as Readonly<Record<string, number>>,\n} as const;\n\n/**\n * Workflow execution timeouts.\n */\nexport const WORKFLOW_TIMEOUTS = {\n /** Per-step timeout. */\n stepMs: 300_000,\n /** Overall workflow timeout. */\n workflowMs: 300_000,\n /** Maximum workflow timeout. */\n workflowMaxMs: 1_800_000,\n /** Maximum retry delay between steps. */\n maxRetryDelayMs: 30_000,\n} as const;\n\n/**\n * Graph workflow execution timeouts.\n */\nexport const GRAPH_TIMEOUTS = {\n /** Default graph execution timeout. */\n defaultMs: 120_000,\n /** Maximum graph steps before abort. */\n maxSteps: 100,\n} as const;\n\n/**\n * Per-CLI task dispatch timeouts (consensus plans, triangulated review).\n * Used when dispatching tasks to multiple CLIs in parallel.\n */\nexport const PER_CLI_TASK_TIMEOUTS = {\n /** Default per-CLI timeout for parallel dispatch. */\n defaultMs: 300_000,\n /** Minimum per-CLI timeout. */\n minMs: 1_000,\n /** Maximum per-CLI timeout. */\n maxMs: 600_000,\n /** Parallel exploration per-CLI timeout (shorter for quick scans). */\n explorationMs: 120_000,\n} as const;\n\n/**\n * External API request timeouts.\n */\nexport const API_TIMEOUTS = {\n /** Default API request timeout. */\n defaultMs: 30_000,\n /** Maximum API request timeout. */\n maxMs: 300_000,\n /** arXiv API timeout. */\n arxivMs: 30_000,\n /** Source discovery API timeout. */\n sourceMs: 30_000,\n /** V2 delegate pipeline timeout. */\n v2DelegateMs: 30_000,\n /** Provider API call timeout. */\n providerMs: 30_000,\n /** GitHub API request timeout. */\n githubApiMs: 10_000,\n} as const;\n\n/**\n * Worker dispatch timeouts (AOrchestra multi-worker execution).\n * (Source: Issue #1313 — Worker dispatch resilience)\n */\nexport const WORKER_TIMEOUTS = {\n /** Default per-worker execution timeout. */\n defaultMs: 60_000,\n /** Minimum allowed worker timeout. */\n minMs: 5_000,\n /** Maximum allowed worker timeout. */\n maxMs: 300_000,\n} as const;\n\n/**\n * Internal system timeouts (health checks, circuit breakers, etc.).\n */\nexport const INTERNAL_TIMEOUTS = {\n /** Health check timeout. */\n healthCheckMs: 5_000,\n /** Circuit breaker reset timeout. */\n circuitBreakerResetMs: 30_000,\n /** Self-evaluation command timeout. */\n selfEvalMs: 120_000,\n /** Wave scheduler per-task timeout. */\n waveTaskMs: 60_000,\n /** Puppeteer orchestration timeout. */\n puppeteerMs: 300_000,\n} as const;\n\n/**\n * Expert execution timeouts by inferred task complexity.\n * Complex reasoning tasks (architecture, security, planning) need longer\n * timeouts than standard code generation or documentation tasks.\n * (Source: Issue #1028 — Dynamic expert timeout)\n * (Updated: Issue #1045 — E2E testing revealed 180s insufficient for\n * architecture design tasks; consensus_vote proves 94s is normal for\n * complex deliberation, so 300s gives adequate headroom)\n * (Updated: RCA — real model API calls take 30-60s/turn; even standard\n * expert tasks need 2-3 turns minimum, so 90s caused universal timeouts)\n */\nexport const EXPERT_TIMEOUTS = {\n /** Complex reasoning tasks: architecture, security_review, planning. */\n complexMs: 600_000,\n /** Standard tasks: code_generation, testing, code_review, etc. */\n standardMs: 300_000,\n /** Minimum allowed expert timeout. */\n minMs: 30_000,\n /** Maximum allowed expert timeout. */\n maxMs: 900_000,\n /** Categories considered complex (longer timeout). */\n complexCategories: [\n 'architecture',\n 'security_review',\n 'planning',\n 'research',\n ] as readonly string[],\n} as const;\n\n/**\n * Agent heartbeat monitoring thresholds.\n * (Source: Issue #1046 — Centralize scattered timeouts)\n */\nexport const HEARTBEAT_TIMEOUTS = {\n /** Agent is considered slow after this duration without heartbeat. */\n slowThresholdMs: 60_000,\n /** Agent is considered stalled (no heartbeat) after this duration. */\n stalledThresholdMs: 120_000,\n /** Absolute maximum agent execution time (safety cap). */\n absoluteMaxMs: 900_000,\n /** Periodic heartbeat emission interval (Issue #1087). */\n heartbeatIntervalMs: 15_000,\n} as const;\n\n/**\n * MCP middleware timeout guard defaults.\n * (Source: Issue #1046 — Centralize scattered timeouts)\n */\nexport const TIMEOUT_GUARD = {\n /** Default operation timeout for the guard middleware. */\n defaultMs: 60_000,\n /** Maximum allowed timeout for any guarded operation. */\n maxMs: 900_000,\n /** Fraction of timeout at which to emit near-timeout warning. */\n nearTimeoutThreshold: 0.8,\n} as const;\n\n/**\n * Reflective memory retriever timeouts and cache settings.\n * (Source: Issue #1046 — Centralize scattered timeouts)\n */\nexport const REFLECTIVE_TIMEOUTS = {\n /** Timeout for reflection LLM call (aggressive — keeps retrieval fast). */\n reflectionMs: 2_000,\n /** Cache TTL in milliseconds. */\n cacheTtlMs: 300_000,\n} as const;\n\n/**\n * Workflow step executor defaults.\n * (Source: Issue #1046 — Centralize scattered timeouts)\n */\nexport const STEP_EXECUTOR_TIMEOUTS = {\n /** Default step timeout. */\n defaultMs: 300_000,\n /** Default retry delay between step attempts. */\n retryDelayMs: 1_000,\n} as const;\n\n/**\n * Cache TTL and rate limiter intervals.\n * (Source: Issue #1046 — Centralize scattered timeouts)\n */\nexport const CACHE_TIMEOUTS = {\n /** Reputation model cache TTL. */\n reputationTtlMs: 300_000,\n /** Rate limiter token refill interval. */\n rateLimitRefillMs: 1_000,\n} as const;\n\n/**\n * CLI subprocess spawn and command timeouts.\n * Used when spawning external processes (gh, docker, CLI adapters).\n * (Source: Timeout audit — centralize scattered hardcoded values)\n */\nexport const CLI_SUBPROCESS_TIMEOUTS = {\n /** CLI adapter spawn timeout (detect/startup). */\n spawnMs: 10_000,\n /** Docker version check timeout. */\n dockerCheckMs: 5_000,\n /** gh CLI command timeout. */\n ghCommandMs: 30_000,\n /** CLI status probe timeout. */\n statusProbeMs: 5_000,\n /** Environment setup timeout. */\n envSetupMs: 3_000,\n /** Release validation (long-running). */\n releaseValidateMs: 120_000,\n /** Release build (longest-running). */\n releaseBuildMs: 180_000,\n /** Graph workflow execution timeout. */\n graphWorkflowMs: 60_000,\n /** Self-development plan phase duration. */\n selfDevPlanMs: 300_000,\n /** Self-development refine phase duration. */\n selfDevRefineMs: 180_000,\n /** Self-development vote phase duration. */\n selfDevVoteMs: 120_000,\n /** Collaboration protocol session timeout. */\n collaborationMs: 60_000,\n /** Maximum wait time for CI checks (auto-merge). */\n ciWaitMaxMs: 300_000,\n /** CI check polling interval (auto-merge). */\n ciPollIntervalMs: 15_000,\n} as const;\n\n/**\n * Exponential backoff configuration for CLI adapter retries.\n * (Source: Issue #1220 — Centralize hardcoded values)\n */\nexport const BACKOFF_CONFIG = {\n /** Base delay multiplier in milliseconds. */\n baseDelayMs: 1_000,\n /** Exponent base for exponential backoff (delay = base^attempt * baseDelayMs). */\n exponentBase: 2,\n} as const;\n\n/**\n * Agent message router timeouts.\n * (Source: Issue #1220 — Centralize hardcoded values)\n */\nexport const AGENT_ROUTER_TIMEOUTS = {\n /** Default router timeout per message. */\n defaultMs: 30_000,\n /** Default max retries for message routing. */\n maxRetries: 3,\n /** Default delay between retries. */\n retryDelayMs: 1_000,\n} as const;\n\n/**\n * Codex MCP adapter execution defaults.\n * (Source: Issue #1220 — Centralize hardcoded values)\n */\nexport const CODEX_MCP_TIMEOUTS = {\n /** Default execution timeout. */\n defaultMs: 120_000,\n /** Default max retries. */\n maxRetries: 2,\n} as const;\n\n/**\n * Test framework timeouts (not for production code).\n */\nexport const TEST_TIMEOUTS = {\n /** Global test run timeout. */\n globalMs: 600_000,\n /** Per-task test timeout. */\n taskMs: 120_000,\n} as const;\n\n// ============================================================================\n// Accessor Functions\n// ============================================================================\n\n/**\n * Gets the timeout profile for a specific CLI.\n *\n * @param cli - CLI name (claude, gemini, codex)\n * @returns TimeoutProfile for the CLI (or default for unknown CLIs)\n */\nexport function getCliTimeoutProfile(cli: string): TimeoutProfile {\n if (isKnownCliName(cli)) {\n return CLI_TIMEOUTS[cli];\n }\n return CLI_TIMEOUTS.default;\n}\n\n/**\n * Gets timeout for a task based on CLI and complexity.\n *\n * @param cli - CLI name\n * @param complexity - Task complexity level\n * @returns Timeout in milliseconds\n */\nexport function getCliTimeout(cli: string, complexity: TaskComplexity): number {\n return getCliTimeoutProfile(cli)[complexity];\n}\n\n/**\n * Gets the timeout for an expert task based on task description complexity.\n *\n * Uses `detectTaskCategory()` to infer category, then maps to timeout tier.\n * Supports `NEXUS_EXPERT_TIMEOUT_MS` env override.\n *\n * @param taskDescription - Task text to analyze for complexity\n * @returns Timeout in milliseconds\n * (Source: Issue #1028 — Dynamic expert timeout)\n */\nexport function getExpertTaskTimeout(taskDescription: string): number {\n const envOverride = resolveEnvTimeout(\n 'NEXUS_EXPERT_TIMEOUT_MS',\n 0,\n EXPERT_TIMEOUTS.minMs,\n EXPERT_TIMEOUTS.maxMs\n );\n if (envOverride > 0) return envOverride;\n\n const match = detectTaskCategory(taskDescription);\n const category = match?.category ?? 'exploration';\n const isComplex = EXPERT_TIMEOUTS.complexCategories.includes(category);\n return isComplex ? EXPERT_TIMEOUTS.complexMs : EXPERT_TIMEOUTS.standardMs;\n}\n\n// ============================================================================\n// Environment Variable Resolution\n// ============================================================================\n\n/** Environment variable names for timeout overrides. */\nexport const TIMEOUT_ENV_VARS = {\n vote: 'NEXUS_VOTE_TIMEOUT_MS',\n mcp: 'NEXUS_MCP_TIMEOUT_MS',\n workflow: 'NEXUS_WORKFLOW_TIMEOUT_MS',\n graph: 'NEXUS_GRAPH_TIMEOUT_MS',\n expert: 'NEXUS_EXPERT_TIMEOUT_MS',\n worker: 'NEXUS_WORKER_TIMEOUT_MS',\n} as const;\n\n/**\n * Resolves vote timeout with environment variable override.\n * Clamps to [VOTE_TIMEOUTS.minMs, VOTE_TIMEOUTS.maxMs].\n *\n * @returns Resolved vote timeout in milliseconds\n */\nexport function resolveVoteTimeout(): number {\n return resolveEnvTimeout(\n TIMEOUT_ENV_VARS.vote,\n VOTE_TIMEOUTS.defaultMs,\n VOTE_TIMEOUTS.minMs,\n VOTE_TIMEOUTS.maxMs\n );\n}\n\n/**\n * Resolves worker dispatch timeout with environment variable override.\n * Clamps to [WORKER_TIMEOUTS.minMs, WORKER_TIMEOUTS.maxMs].\n *\n * @returns Resolved worker timeout in milliseconds\n * (Source: Issue #1313 — Worker dispatch resilience)\n */\nexport function resolveWorkerTimeout(): number {\n return resolveEnvTimeout(\n TIMEOUT_ENV_VARS.worker,\n WORKER_TIMEOUTS.defaultMs,\n WORKER_TIMEOUTS.minMs,\n WORKER_TIMEOUTS.maxMs\n );\n}\n\n/**\n * Resolves a timeout from an environment variable with min/max clamping.\n *\n * @param envVar - Environment variable name\n * @param defaultMs - Default timeout if env var is not set\n * @param minMs - Minimum allowed value (floor)\n * @param maxMs - Maximum allowed value (cap)\n * @returns Resolved timeout in milliseconds\n */\nexport function resolveEnvTimeout(\n envVar: string,\n defaultMs: number,\n minMs: number,\n maxMs: number\n): number {\n const envVal = process.env[envVar];\n if (envVal !== undefined) {\n const parsed = Number(envVal);\n if (!Number.isNaN(parsed) && parsed > 0) {\n return Math.min(Math.max(parsed, minMs), maxMs);\n }\n }\n return defaultMs;\n}\n\n/**\n * Validates and clamps a requested timeout to safe bounds.\n *\n * @param requestedMs - Requested timeout in milliseconds\n * @param minMs - Minimum allowed (default: VOTE_TIMEOUTS.minMs)\n * @param maxMs - Maximum allowed (default: VOTE_TIMEOUTS.maxMs)\n * @returns Object with clamped value and whether it was modified\n */\nexport function validateTimeout(\n requestedMs: number,\n minMs: number = VOTE_TIMEOUTS.minMs,\n maxMs: number = VOTE_TIMEOUTS.maxMs\n): { value: number; clamped: boolean } {\n const clamped = Math.min(Math.max(requestedMs, minMs), maxMs);\n return { value: clamped, clamped: clamped !== requestedMs };\n}\n"],"mappings":"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","names":[]}