nexus-agents 2.80.0 → 2.80.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 (104) hide show
  1. package/dist/{child-mcp-config-SM5I7USN.js → child-mcp-config-Q6UMCPGZ.js} +2 -2
  2. package/dist/{chunk-EKRMWVAH.js → chunk-23XU4LE2.js} +4 -4
  3. package/dist/{chunk-YGKPWUJ6.js → chunk-33LDLZCC.js} +2 -2
  4. package/dist/{chunk-BSIGP5XF.js → chunk-54UT2JUQ.js} +2 -2
  5. package/dist/{chunk-FAJAWO42.js → chunk-5WN3WGXG.js} +3 -3
  6. package/dist/{chunk-JXDDSNEK.js → chunk-7UM5XRGG.js} +2 -2
  7. package/dist/{chunk-4XGKCVJL.js → chunk-7ZKZ7K7J.js} +2 -2
  8. package/dist/{chunk-AYZ6P7CK.js → chunk-ALDKPBOZ.js} +2 -2
  9. package/dist/{chunk-6CJIKX6I.js → chunk-D3MQ4U2R.js} +44 -16
  10. package/dist/{chunk-6CJIKX6I.js.map → chunk-D3MQ4U2R.js.map} +1 -1
  11. package/dist/{chunk-2DBPZQLO.js → chunk-D4NEYNBO.js} +2 -2
  12. package/dist/{chunk-HBKZ2DJK.js → chunk-D5C5N5Q4.js} +2 -2
  13. package/dist/{chunk-ZU2Q3DWE.js → chunk-EPZMFIAX.js} +100 -7
  14. package/dist/chunk-EPZMFIAX.js.map +1 -0
  15. package/dist/{chunk-J5XEJHIQ.js → chunk-GODRGVF4.js} +3 -3
  16. package/dist/{chunk-EVZ7YR7H.js → chunk-HR7C4DSA.js} +3 -3
  17. package/dist/{chunk-JLWKHYIU.js → chunk-I5KYDT23.js} +2 -2
  18. package/dist/{chunk-SHVGZK4A.js → chunk-L7433REX.js} +3 -3
  19. package/dist/{chunk-GNRANMQ3.js → chunk-LDD272PW.js} +941 -874
  20. package/dist/chunk-LDD272PW.js.map +1 -0
  21. package/dist/{chunk-Q2U6SFN2.js → chunk-MUIA32LU.js} +2 -2
  22. package/dist/{chunk-RIUUFBX4.js → chunk-MVIYQMQM.js} +2 -2
  23. package/dist/{chunk-OO6MTUDS.js → chunk-NALIFUBD.js} +3 -3
  24. package/dist/{chunk-CTSESEFA.js → chunk-NCBWA6RU.js} +2 -2
  25. package/dist/{chunk-QVHXEQFM.js → chunk-O2ECPTFH.js} +3 -3
  26. package/dist/{chunk-FJHZW7CR.js → chunk-Q4DXTNGR.js} +2 -2
  27. package/dist/{chunk-UVALD724.js → chunk-SX3P2PD2.js} +2 -2
  28. package/dist/{chunk-YMT6H2HQ.js → chunk-T4E6UFFC.js} +7 -3
  29. package/dist/{chunk-YMT6H2HQ.js.map → chunk-T4E6UFFC.js.map} +1 -1
  30. package/dist/{chunk-SJUSQGKH.js → chunk-TFTP7EUQ.js} +7 -7
  31. package/dist/{chunk-VS4KB3AX.js → chunk-UEKTTIDA.js} +7 -7
  32. package/dist/{chunk-UGXR4PAY.js → chunk-WZ2T4T7N.js} +5 -5
  33. package/dist/{cli-circuit-breaker-JGX54DAD.js → cli-circuit-breaker-EUERR2HK.js} +4 -4
  34. package/dist/cli.js +89 -80
  35. package/dist/cli.js.map +1 -1
  36. package/dist/{composite-router-UYFYSMBT.js → composite-router-ZP72LQFH.js} +2 -2
  37. package/dist/{consensus-vote-BZ6JSN67.js → consensus-vote-TU3TQ4VH.js} +11 -11
  38. package/dist/{context-retriever-G23VVJ5S.js → context-retriever-OTLV46DF.js} +5 -5
  39. package/dist/{doctor-deep-OF2LXZ6A.js → doctor-deep-ZMBSG2DF.js} +3 -3
  40. package/dist/expert-bridge-IK4TY7HA.js +11 -0
  41. package/dist/{factory-I54TX7OY.js → factory-45NHZFLK.js} +4 -4
  42. package/dist/{factory-UHDCLEUE.js → factory-QDHYIYVE.js} +5 -5
  43. package/dist/index.d.ts +33 -0
  44. package/dist/index.js +24 -24
  45. package/dist/{init-opencode-FE7HVWQL.js → init-opencode-WFL4OXMB.js} +5 -5
  46. package/dist/{issue-triage-7NR5NQUY.js → issue-triage-UHFCGTEJ.js} +4 -4
  47. package/dist/{registry-command-NZLX7ZFV.js → registry-command-YMZPSW7S.js} +2 -2
  48. package/dist/{repo-security-plan-74GJWJSV.js → repo-security-plan-TGDXTSHS.js} +3 -3
  49. package/dist/{research-helpers-synthesize-LFPEXRIV.js → research-helpers-synthesize-5BAN353Y.js} +3 -3
  50. package/dist/{routing-memory-Y2LSEQVS.js → routing-memory-RG3U2MC2.js} +2 -2
  51. package/dist/{session-memory-RCNQJDJR.js → session-memory-C5GC2JAX.js} +3 -3
  52. package/dist/{setup-command-ZPLPOJF2.js → setup-command-OXJ32UAI.js} +10 -10
  53. package/dist/{setup-config-F7VRWXY3.js → setup-config-KNMVMGDD.js} +3 -3
  54. package/dist/{setup-custom-api-XTJ6YZM6.js → setup-custom-api-4EYRKCHB.js} +4 -4
  55. package/dist/{tool-memory-COZK6SR7.js → tool-memory-LUXUOE6Q.js} +4 -4
  56. package/dist/{weather-report-O4XOYGPK.js → weather-report-3KSDTC7T.js} +2 -2
  57. package/package.json +1 -1
  58. package/dist/chunk-GNRANMQ3.js.map +0 -1
  59. package/dist/chunk-ZU2Q3DWE.js.map +0 -1
  60. package/dist/expert-bridge-6ZLD2NWD.js +0 -11
  61. /package/dist/{child-mcp-config-SM5I7USN.js.map → child-mcp-config-Q6UMCPGZ.js.map} +0 -0
  62. /package/dist/{chunk-EKRMWVAH.js.map → chunk-23XU4LE2.js.map} +0 -0
  63. /package/dist/{chunk-YGKPWUJ6.js.map → chunk-33LDLZCC.js.map} +0 -0
  64. /package/dist/{chunk-BSIGP5XF.js.map → chunk-54UT2JUQ.js.map} +0 -0
  65. /package/dist/{chunk-FAJAWO42.js.map → chunk-5WN3WGXG.js.map} +0 -0
  66. /package/dist/{chunk-JXDDSNEK.js.map → chunk-7UM5XRGG.js.map} +0 -0
  67. /package/dist/{chunk-4XGKCVJL.js.map → chunk-7ZKZ7K7J.js.map} +0 -0
  68. /package/dist/{chunk-AYZ6P7CK.js.map → chunk-ALDKPBOZ.js.map} +0 -0
  69. /package/dist/{chunk-2DBPZQLO.js.map → chunk-D4NEYNBO.js.map} +0 -0
  70. /package/dist/{chunk-HBKZ2DJK.js.map → chunk-D5C5N5Q4.js.map} +0 -0
  71. /package/dist/{chunk-J5XEJHIQ.js.map → chunk-GODRGVF4.js.map} +0 -0
  72. /package/dist/{chunk-EVZ7YR7H.js.map → chunk-HR7C4DSA.js.map} +0 -0
  73. /package/dist/{chunk-JLWKHYIU.js.map → chunk-I5KYDT23.js.map} +0 -0
  74. /package/dist/{chunk-SHVGZK4A.js.map → chunk-L7433REX.js.map} +0 -0
  75. /package/dist/{chunk-Q2U6SFN2.js.map → chunk-MUIA32LU.js.map} +0 -0
  76. /package/dist/{chunk-RIUUFBX4.js.map → chunk-MVIYQMQM.js.map} +0 -0
  77. /package/dist/{chunk-OO6MTUDS.js.map → chunk-NALIFUBD.js.map} +0 -0
  78. /package/dist/{chunk-CTSESEFA.js.map → chunk-NCBWA6RU.js.map} +0 -0
  79. /package/dist/{chunk-QVHXEQFM.js.map → chunk-O2ECPTFH.js.map} +0 -0
  80. /package/dist/{chunk-FJHZW7CR.js.map → chunk-Q4DXTNGR.js.map} +0 -0
  81. /package/dist/{chunk-UVALD724.js.map → chunk-SX3P2PD2.js.map} +0 -0
  82. /package/dist/{chunk-SJUSQGKH.js.map → chunk-TFTP7EUQ.js.map} +0 -0
  83. /package/dist/{chunk-VS4KB3AX.js.map → chunk-UEKTTIDA.js.map} +0 -0
  84. /package/dist/{chunk-UGXR4PAY.js.map → chunk-WZ2T4T7N.js.map} +0 -0
  85. /package/dist/{cli-circuit-breaker-JGX54DAD.js.map → cli-circuit-breaker-EUERR2HK.js.map} +0 -0
  86. /package/dist/{composite-router-UYFYSMBT.js.map → composite-router-ZP72LQFH.js.map} +0 -0
  87. /package/dist/{consensus-vote-BZ6JSN67.js.map → consensus-vote-TU3TQ4VH.js.map} +0 -0
  88. /package/dist/{context-retriever-G23VVJ5S.js.map → context-retriever-OTLV46DF.js.map} +0 -0
  89. /package/dist/{doctor-deep-OF2LXZ6A.js.map → doctor-deep-ZMBSG2DF.js.map} +0 -0
  90. /package/dist/{expert-bridge-6ZLD2NWD.js.map → expert-bridge-IK4TY7HA.js.map} +0 -0
  91. /package/dist/{factory-I54TX7OY.js.map → factory-45NHZFLK.js.map} +0 -0
  92. /package/dist/{factory-UHDCLEUE.js.map → factory-QDHYIYVE.js.map} +0 -0
  93. /package/dist/{init-opencode-FE7HVWQL.js.map → init-opencode-WFL4OXMB.js.map} +0 -0
  94. /package/dist/{issue-triage-7NR5NQUY.js.map → issue-triage-UHFCGTEJ.js.map} +0 -0
  95. /package/dist/{registry-command-NZLX7ZFV.js.map → registry-command-YMZPSW7S.js.map} +0 -0
  96. /package/dist/{repo-security-plan-74GJWJSV.js.map → repo-security-plan-TGDXTSHS.js.map} +0 -0
  97. /package/dist/{research-helpers-synthesize-LFPEXRIV.js.map → research-helpers-synthesize-5BAN353Y.js.map} +0 -0
  98. /package/dist/{routing-memory-Y2LSEQVS.js.map → routing-memory-RG3U2MC2.js.map} +0 -0
  99. /package/dist/{session-memory-RCNQJDJR.js.map → session-memory-C5GC2JAX.js.map} +0 -0
  100. /package/dist/{setup-command-ZPLPOJF2.js.map → setup-command-OXJ32UAI.js.map} +0 -0
  101. /package/dist/{setup-config-F7VRWXY3.js.map → setup-config-KNMVMGDD.js.map} +0 -0
  102. /package/dist/{setup-custom-api-XTJ6YZM6.js.map → setup-custom-api-4EYRKCHB.js.map} +0 -0
  103. /package/dist/{tool-memory-COZK6SR7.js.map → tool-memory-LUXUOE6Q.js.map} +0 -0
  104. /package/dist/{weather-report-O4XOYGPK.js.map → weather-report-3KSDTC7T.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULTS
3
- } from "./chunk-BSIGP5XF.js";
3
+ } from "./chunk-54UT2JUQ.js";
4
4
  import {
5
5
  resolveInsideRoot
6
6
  } from "./chunk-NUBSJGQZ.js";
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  createAllAdapters,
12
12
  probeCli
13
- } from "./chunk-ZU2Q3DWE.js";
13
+ } from "./chunk-EPZMFIAX.js";
14
14
  import {
15
15
  CliNameSchema,
16
16
  DEFAULT_CAPABILITIES,
@@ -26,7 +26,7 @@ import {
26
26
  ok,
27
27
  symbols,
28
28
  writeLine
29
- } from "./chunk-YMT6H2HQ.js";
29
+ } from "./chunk-T4E6UFFC.js";
30
30
  import {
31
31
  detectSandbox,
32
32
  getLearningDir,
@@ -40,7 +40,7 @@ import {
40
40
  } from "./chunk-2JQXC3CK.js";
41
41
 
42
42
  // src/version.ts
43
- var VERSION = true ? "2.80.0" : "dev";
43
+ var VERSION = true ? "2.80.1" : "dev";
44
44
 
45
45
  // src/config/schemas-core.ts
46
46
  import { z } from "zod";
@@ -2107,7 +2107,7 @@ async function runDoctorFix(result) {
2107
2107
  writeLine2("\u2500".repeat(40));
2108
2108
  let fixCount = 0;
2109
2109
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
2110
- const { runSetup } = await import("./setup-command-ZPLPOJF2.js");
2110
+ const { runSetup } = await import("./setup-command-OXJ32UAI.js");
2111
2111
  const setupResult = runSetup({
2112
2112
  skipMcp: true,
2113
2113
  skipRules: true,
@@ -2121,7 +2121,7 @@ async function runDoctorFix(result) {
2121
2121
  }
2122
2122
  }
2123
2123
  if (!result.configFile.found) {
2124
- const { runConfigInitSync } = await import("./setup-config-F7VRWXY3.js");
2124
+ const { runConfigInitSync } = await import("./setup-config-KNMVMGDD.js");
2125
2125
  const configResult = runConfigInitSync(process.cwd(), false, false);
2126
2126
  if (configResult.success && configResult.created) {
2127
2127
  writeLine2(`\u2713 Generated config: ${configResult.path}`);
@@ -2219,4 +2219,4 @@ export {
2219
2219
  startStdioServer,
2220
2220
  closeServer
2221
2221
  };
2222
- //# sourceMappingURL=chunk-SJUSQGKH.js.map
2222
+ //# sourceMappingURL=chunk-TFTP7EUQ.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  getCliForModelId
3
- } from "./chunk-Q2U6SFN2.js";
3
+ } from "./chunk-MUIA32LU.js";
4
4
  import {
5
5
  MODEL_IDS,
6
6
  createLogger,
7
7
  getTimeProvider,
8
8
  isRateLimitText
9
- } from "./chunk-YMT6H2HQ.js";
9
+ } from "./chunk-T4E6UFFC.js";
10
10
 
11
11
  // src/pipeline/expert-bridge.ts
12
12
  function resolveCliFromModelString(model) {
@@ -21,7 +21,7 @@ var cachedMcpConfigPath = null;
21
21
  async function getMcpConfigPath() {
22
22
  if (cachedMcpConfigPath !== null) return cachedMcpConfigPath;
23
23
  try {
24
- const { generateMcpConfig } = await import("./child-mcp-config-SM5I7USN.js");
24
+ const { generateMcpConfig } = await import("./child-mcp-config-Q6UMCPGZ.js");
25
25
  const config = await generateMcpConfig();
26
26
  cachedMcpConfigPath = config.configPath;
27
27
  return cachedMcpConfigPath;
@@ -52,13 +52,13 @@ function adaptCompositeRouter(compositeRouter) {
52
52
  }
53
53
  async function getRouter() {
54
54
  if (cachedRouter !== null) return cachedRouter;
55
- const { createAllAdapters } = await import("./factory-I54TX7OY.js");
56
- const { createCompositeRouter } = await import("./composite-router-UYFYSMBT.js");
55
+ const { createAllAdapters } = await import("./factory-45NHZFLK.js");
56
+ const { createCompositeRouter } = await import("./composite-router-ZP72LQFH.js");
57
57
  const adapters = createAllAdapters();
58
58
  if (adapters.size === 0) return null;
59
59
  cachedRouter = adaptCompositeRouter(createCompositeRouter(adapters));
60
60
  try {
61
- const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-JGX54DAD.js");
61
+ const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-EUERR2HK.js");
62
62
  cachedCircuitBreaker = createCliCircuitBreakerIntegration([...adapters.values()]);
63
63
  } catch (error) {
64
64
  const msg = error instanceof Error ? error.message : String(error);
@@ -160,4 +160,4 @@ ${prompt}`;
160
160
  export {
161
161
  executeExpert
162
162
  };
163
- //# sourceMappingURL=chunk-VS4KB3AX.js.map
163
+ //# sourceMappingURL=chunk-UEKTTIDA.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runConfigInitSync
3
- } from "./chunk-2DBPZQLO.js";
3
+ } from "./chunk-D4NEYNBO.js";
4
4
  import {
5
5
  VERSION,
6
6
  checkApiKeys,
@@ -8,10 +8,10 @@ import {
8
8
  checkSqlite,
9
9
  defaultConfig,
10
10
  initDataDirectories
11
- } from "./chunk-SJUSQGKH.js";
11
+ } from "./chunk-TFTP7EUQ.js";
12
12
  import {
13
13
  probeAllClis
14
- } from "./chunk-ZU2Q3DWE.js";
14
+ } from "./chunk-EPZMFIAX.js";
15
15
  import {
16
16
  BUILT_IN_EXPERTS
17
17
  } from "./chunk-ZM4O442V.js";
@@ -25,7 +25,7 @@ import {
25
25
  getErrorMessage,
26
26
  getTimeProvider,
27
27
  symbols
28
- } from "./chunk-YMT6H2HQ.js";
28
+ } from "./chunk-T4E6UFFC.js";
29
29
  import {
30
30
  ensureGitignored,
31
31
  findRepoRoot
@@ -1974,4 +1974,4 @@ export {
1974
1974
  setupCommand,
1975
1975
  setupCommandAsync
1976
1976
  };
1977
- //# sourceMappingURL=chunk-UGXR4PAY.js.map
1977
+ //# sourceMappingURL=chunk-WZ2T4T7N.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  CliCircuitBreakerIntegration,
3
3
  createCliCircuitBreakerIntegration
4
- } from "./chunk-J5XEJHIQ.js";
5
- import "./chunk-JXDDSNEK.js";
6
- import "./chunk-YMT6H2HQ.js";
4
+ } from "./chunk-GODRGVF4.js";
5
+ import "./chunk-7UM5XRGG.js";
6
+ import "./chunk-T4E6UFFC.js";
7
7
  import "./chunk-2JQXC3CK.js";
8
8
  import "./chunk-UP2VWCW5.js";
9
9
  export {
10
10
  CliCircuitBreakerIntegration,
11
11
  createCliCircuitBreakerIntegration
12
12
  };
13
- //# sourceMappingURL=cli-circuit-breaker-JGX54DAD.js.map
13
+ //# sourceMappingURL=cli-circuit-breaker-EUERR2HK.js.map
package/dist/cli.js CHANGED
@@ -12,18 +12,18 @@ import {
12
12
  parseFindings,
13
13
  sumFindings
14
14
  } from "./chunk-3RZWLQSC.js";
15
- import "./chunk-4XGKCVJL.js";
15
+ import "./chunk-7ZKZ7K7J.js";
16
16
  import {
17
17
  buildOpenAICompatAdapters,
18
18
  loadUsageEvents,
19
19
  readOpenAICompatEnv,
20
20
  rollupByModel
21
- } from "./chunk-EVZ7YR7H.js";
21
+ } from "./chunk-HR7C4DSA.js";
22
22
  import {
23
23
  setupCommandAsync,
24
24
  verifyCommand
25
- } from "./chunk-UGXR4PAY.js";
26
- import "./chunk-2DBPZQLO.js";
25
+ } from "./chunk-WZ2T4T7N.js";
26
+ import "./chunk-D4NEYNBO.js";
27
27
  import {
28
28
  AuthHandler,
29
29
  DEFAULT_EXPERTS,
@@ -153,56 +153,61 @@ import {
153
153
  validateCommand,
154
154
  validateWorkflow,
155
155
  wrapInMarkdownFence
156
- } from "./chunk-GNRANMQ3.js";
156
+ } from "./chunk-LDD272PW.js";
157
157
  import "./chunk-AP2FD37C.js";
158
158
  import "./chunk-ED6VQWNG.js";
159
159
  import {
160
160
  resolveToken
161
- } from "./chunk-CTSESEFA.js";
161
+ } from "./chunk-NCBWA6RU.js";
162
162
  import {
163
163
  CATEGORY_DISPLAY_NAMES,
164
164
  DEFAULT_PR_REVIEW_CONFIG
165
165
  } from "./chunk-X2M7OF27.js";
166
- import "./chunk-FAJAWO42.js";
167
- import "./chunk-J5XEJHIQ.js";
168
- import "./chunk-VS4KB3AX.js";
166
+ import "./chunk-5WN3WGXG.js";
167
+ import "./chunk-GODRGVF4.js";
168
+ import "./chunk-UEKTTIDA.js";
169
169
  import {
170
170
  DEFAULT_VOTE_TIMEOUT_MS,
171
171
  ErrorPolicySchema,
172
172
  VOTER_ROLES,
173
173
  VoteThresholdSchema,
174
174
  createDefaultPolicyFirewall,
175
+ createSecureHandler,
175
176
  createUnifiedRegistry,
176
177
  executeVoting,
177
178
  getToolAnnotations,
179
+ getToolTimeout,
178
180
  registerConsensusVoteTool,
181
+ toSdkCallback,
179
182
  toolStructuredError,
180
- warnIfSimulatedOutsideTests
181
- } from "./chunk-6CJIKX6I.js";
182
- import "./chunk-JLWKHYIU.js";
183
- import "./chunk-YGKPWUJ6.js";
183
+ toolSuccessStructured,
184
+ warnIfSimulatedOutsideTests,
185
+ wrapToolWithTimeout
186
+ } from "./chunk-D3MQ4U2R.js";
187
+ import "./chunk-I5KYDT23.js";
188
+ import "./chunk-33LDLZCC.js";
184
189
  import {
185
190
  loadPapersRegistry,
186
191
  loadTechniquesRegistry,
187
192
  savePapersRegistry,
188
193
  synthesizeResearch
189
- } from "./chunk-FJHZW7CR.js";
194
+ } from "./chunk-Q4DXTNGR.js";
190
195
  import {
191
196
  classifyTrust,
192
197
  createFullGitHubProvider,
193
198
  evaluatePolicy,
194
199
  parsePRUrl,
195
200
  sanitizeInput
196
- } from "./chunk-QVHXEQFM.js";
197
- import "./chunk-UVALD724.js";
198
- import "./chunk-RIUUFBX4.js";
201
+ } from "./chunk-O2ECPTFH.js";
202
+ import "./chunk-SX3P2PD2.js";
203
+ import "./chunk-MVIYQMQM.js";
199
204
  import "./chunk-7J7PNOJQ.js";
200
205
  import "./chunk-BQ4YXGGQ.js";
201
- import "./chunk-SHVGZK4A.js";
206
+ import "./chunk-L7433REX.js";
202
207
  import {
203
208
  MemoryError,
204
209
  shutdownToolMemory
205
- } from "./chunk-OO6MTUDS.js";
210
+ } from "./chunk-NALIFUBD.js";
206
211
  import {
207
212
  CustomExpertDefinitionSchema,
208
213
  DATA_SUBDIRECTORIES,
@@ -221,12 +226,12 @@ import {
221
226
  loadConfig,
222
227
  runDoctor,
223
228
  validateNexusEnv
224
- } from "./chunk-SJUSQGKH.js";
225
- import "./chunk-Q2U6SFN2.js";
226
- import "./chunk-HBKZ2DJK.js";
229
+ } from "./chunk-TFTP7EUQ.js";
230
+ import "./chunk-MUIA32LU.js";
231
+ import "./chunk-D5C5N5Q4.js";
227
232
  import {
228
233
  DEFAULTS
229
- } from "./chunk-BSIGP5XF.js";
234
+ } from "./chunk-54UT2JUQ.js";
230
235
  import "./chunk-NUBSJGQZ.js";
231
236
  import {
232
237
  capitalize,
@@ -238,11 +243,11 @@ import {
238
243
  getAvailableClis,
239
244
  isRecord,
240
245
  probeAllClis
241
- } from "./chunk-ZU2Q3DWE.js";
242
- import "./chunk-JXDDSNEK.js";
246
+ } from "./chunk-EPZMFIAX.js";
247
+ import "./chunk-7UM5XRGG.js";
243
248
  import "./chunk-ZM4O442V.js";
244
249
  import "./chunk-PQHVC4BD.js";
245
- import "./chunk-AYZ6P7CK.js";
250
+ import "./chunk-ALDKPBOZ.js";
246
251
  import {
247
252
  API_TIMEOUTS,
248
253
  AgentCapability,
@@ -310,7 +315,7 @@ import {
310
315
  validateTimeout,
311
316
  writeEmptyLine,
312
317
  writeLine
313
- } from "./chunk-YMT6H2HQ.js";
318
+ } from "./chunk-T4E6UFFC.js";
314
319
  import {
315
320
  applyPortableMode,
316
321
  detectSandbox,
@@ -3238,6 +3243,9 @@ function safeExecSandboxed(commandString, options = {}) {
3238
3243
  if (options.cwd !== void 0) {
3239
3244
  execOptions.cwd = options.cwd;
3240
3245
  }
3246
+ if (options.stdin !== void 0) {
3247
+ execOptions.input = options.stdin;
3248
+ }
3241
3249
  const result = execSync(commandString, execOptions);
3242
3250
  return typeof result === "string" ? result.trim() : result.toString("utf-8").trim();
3243
3251
  } catch (error) {
@@ -5951,9 +5959,6 @@ function validateGitHubIssue(issueNumber) {
5951
5959
  });
5952
5960
  return output2 !== null;
5953
5961
  }
5954
- function escapeForShell(text) {
5955
- return text.replace(/'/g, "'\\''");
5956
- }
5957
5962
  function formatVoteComment(result) {
5958
5963
  const now = new Date(getTimeProvider().now()).toLocaleDateString("en-US", {
5959
5964
  timeZone: "America/New_York",
@@ -5990,11 +5995,10 @@ ${voteRows}
5990
5995
  }
5991
5996
  function recordVoteToGitHub(issueNumber, result) {
5992
5997
  const comment = formatVoteComment(result);
5993
- const escapedComment = escapeForShell(comment);
5994
- const output2 = safeExecSandboxed(
5995
- `gh issue comment ${String(issueNumber)} --body '${escapedComment}'`,
5996
- { context: "gh" }
5997
- );
5998
+ const output2 = safeExecSandboxed(`gh issue comment ${String(issueNumber)} --body-file -`, {
5999
+ context: "gh",
6000
+ stdin: comment
6001
+ });
5998
6002
  if (output2 !== null) {
5999
6003
  writeLine(
6000
6004
  `${colors.green}${symbols.check}${colors.reset} Vote recorded to issue #${String(issueNumber)}
@@ -6730,7 +6734,7 @@ function generateSprintTitle(duration) {
6730
6734
  month: "2-digit",
6731
6735
  day: "2-digit"
6732
6736
  });
6733
- return `sprint: ${dateStr} (${duration})`;
6737
+ return `sprint: ${dateStr} - ${duration}`;
6734
6738
  }
6735
6739
  function formatIssueForBody(issue) {
6736
6740
  const effort = issue.estimatedEffort !== void 0 ? ` (${issue.estimatedEffort})` : "";
@@ -6812,10 +6816,9 @@ function generateProposal(issues, options) {
6812
6816
  function createSprintIssue(proposal) {
6813
6817
  try {
6814
6818
  const escapedTitle = proposal.title.replace(/'/g, "'\\''");
6815
- const escapedBody = proposal.body.replace(/'/g, "'\\''");
6816
6819
  const output2 = safeExecSandboxed(
6817
- `gh issue create --title '${escapedTitle}' --body '${escapedBody}' --label 'epic'`,
6818
- { context: "gh" }
6820
+ `gh issue create --title '${escapedTitle}' --body-file - --label epic`,
6821
+ { context: "gh", stdin: proposal.body }
6819
6822
  );
6820
6823
  if (output2 === null) {
6821
6824
  return null;
@@ -16890,7 +16893,45 @@ function buildStructuredOutput(result) {
16890
16893
  };
16891
16894
  }
16892
16895
  var RUN_DEV_PIPELINE_DESCRIPTION = "Run the multi-agent development pipeline. Accepts direct task instructions, a plan file, or a spec file. Supports dry-run (plan+vote only).";
16893
- function registerDevPipelineTool(server, _deps) {
16896
+ async function runDevPipelineHandler(args, logger18) {
16897
+ const parsed = DevPipelineInputSchema.safeParse(args);
16898
+ if (!parsed.success) {
16899
+ return toolStructuredError({
16900
+ errorCategory: "validation",
16901
+ message: `Invalid input: ${formatZodError(parsed.error)}`
16902
+ });
16903
+ }
16904
+ const input = parsed.data;
16905
+ if (input.simulateVotes) {
16906
+ warnIfSimulatedOutsideTests("run_dev_pipeline", logger18);
16907
+ }
16908
+ try {
16909
+ const taskText = await resolveTaskInput(input);
16910
+ const stages = await createStages(input);
16911
+ const pipelineOptions = {
16912
+ ...input.sessionId !== void 0 ? { sessionId: input.sessionId } : {},
16913
+ ...input.dryRun ? { dryRun: true } : {},
16914
+ ...input.mode === "harness" ? { mode: "harness" } : {}
16915
+ };
16916
+ const hasOptions = Object.keys(pipelineOptions).length > 0;
16917
+ const result = await runDevPipeline(taskText, stages, hasOptions ? pipelineOptions : void 0);
16918
+ flushPipelineMemory();
16919
+ return toolSuccessStructured(buildStructuredOutput(result));
16920
+ } catch (error) {
16921
+ return toolStructuredError({
16922
+ errorCategory: "internal",
16923
+ message: `Pipeline error: ${getErrorMessage(error)}`
16924
+ });
16925
+ }
16926
+ }
16927
+ function registerDevPipelineTool(server, deps) {
16928
+ const logger18 = deps.logger ?? createLogger({ tool: "run_dev_pipeline" });
16929
+ const secureHandler = createSecureHandler(
16930
+ (args) => runDevPipelineHandler(args, logger18),
16931
+ { toolName: "run_dev_pipeline", rateLimiter: deps.rateLimiter, logger: logger18 }
16932
+ );
16933
+ const timeoutMs = getToolTimeout("run_dev_pipeline", deps.security);
16934
+ const wrapped = wrapToolWithTimeout("run_dev_pipeline", secureHandler, { timeoutMs, logger: logger18 });
16894
16935
  server.registerTool(
16895
16936
  "run_dev_pipeline",
16896
16937
  {
@@ -16898,41 +16939,9 @@ function registerDevPipelineTool(server, _deps) {
16898
16939
  inputSchema: DevPipelineInputSchema.shape,
16899
16940
  annotations: getToolAnnotations("run_dev_pipeline")
16900
16941
  },
16901
- async (args) => {
16902
- const input = DevPipelineInputSchema.parse(args);
16903
- if (input.simulateVotes) {
16904
- warnIfSimulatedOutsideTests("run_dev_pipeline", createLogger({ tool: "run_dev_pipeline" }));
16905
- }
16906
- try {
16907
- const taskText = await resolveTaskInput(input);
16908
- const stages = await createStages(input);
16909
- const pipelineOptions = {
16910
- ...input.sessionId !== void 0 ? { sessionId: input.sessionId } : {},
16911
- ...input.dryRun ? { dryRun: true } : {},
16912
- ...input.mode === "harness" ? { mode: "harness" } : {}
16913
- };
16914
- const hasOptions = Object.keys(pipelineOptions).length > 0;
16915
- const result = await runDevPipeline(
16916
- taskText,
16917
- stages,
16918
- hasOptions ? pipelineOptions : void 0
16919
- );
16920
- flushPipelineMemory();
16921
- const structured = buildStructuredOutput(result);
16922
- return {
16923
- content: [{ type: "text", text: JSON.stringify(structured, null, 2) }],
16924
- structuredContent: structured
16925
- };
16926
- } catch (error) {
16927
- return {
16928
- ...toolStructuredError({
16929
- errorCategory: "internal",
16930
- message: `Pipeline error: ${getErrorMessage(error)}`
16931
- })
16932
- };
16933
- }
16934
- }
16942
+ toSdkCallback(wrapped)
16935
16943
  );
16944
+ logger18.info("Registered run_dev_pipeline tool");
16936
16945
  }
16937
16946
 
16938
16947
  // src/cli-server-stpa.ts
@@ -18957,7 +18966,7 @@ function adaptConfigToLibrary(config) {
18957
18966
  }
18958
18967
  function createBeliefPromoter() {
18959
18968
  return async (event) => {
18960
- const { getToolMemory } = await import("./tool-memory-COZK6SR7.js");
18969
+ const { getToolMemory } = await import("./tool-memory-LUXUOE6Q.js");
18961
18970
  const tm = getToolMemory();
18962
18971
  await tm.recordBelief(
18963
18972
  `skill:${event.name}`,
@@ -19817,7 +19826,7 @@ async function handleResearchCommand(args) {
19817
19826
  }
19818
19827
  }
19819
19828
  async function handleRegistryCommand(args) {
19820
- const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-NZLX7ZFV.js");
19829
+ const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-YMZPSW7S.js");
19821
19830
  const subcommand = args.subcommand;
19822
19831
  if (!isValidRegistrySubcommand(subcommand)) {
19823
19832
  process.stdout.write(`${formatRegistryUsage()}
@@ -19865,7 +19874,7 @@ async function handleVerifyCommand(args) {
19865
19874
  async function handleDoctorCommand(args) {
19866
19875
  const exitCode = await doctorCommand({ fix: args.options.fix });
19867
19876
  if (args.options.deep) {
19868
- const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-OF2LXZ6A.js");
19877
+ const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-ZMBSG2DF.js");
19869
19878
  const diag = runDeepDiagnostics2();
19870
19879
  process.stdout.write(formatDeepDiagnostics2(diag) + "\n");
19871
19880
  }
@@ -19909,7 +19918,7 @@ async function handleInitCommand(args) {
19909
19918
  process.exit(result.success ? EXIT_CODES.SUCCESS : EXIT_CODES.SERVER_START_FAILED);
19910
19919
  }
19911
19920
  async function runInitOpencodeFlow(args) {
19912
- const { runInitOpencode } = await import("./init-opencode-FE7HVWQL.js");
19921
+ const { runInitOpencode } = await import("./init-opencode-WFL4OXMB.js");
19913
19922
  const opencodePath = args.options.opencode;
19914
19923
  if (opencodePath === void 0 || opencodePath === "") {
19915
19924
  process.stderr.write("Error: --opencode requires a path argument.\n");
@@ -19936,7 +19945,7 @@ async function runInitOpencodeFlow(args) {
19936
19945
  process.exit(EXIT_CODES.SUCCESS);
19937
19946
  }
19938
19947
  async function renderOpencodeValidate(opencodePath) {
19939
- const { runOpencodeValidate } = await import("./init-opencode-FE7HVWQL.js");
19948
+ const { runOpencodeValidate } = await import("./init-opencode-WFL4OXMB.js");
19940
19949
  const result = await runOpencodeValidate(opencodePath);
19941
19950
  if (!result.ok) {
19942
19951
  process.stderr.write(`init --opencode --validate: ${result.reason ?? "failed"}
@@ -19976,7 +19985,7 @@ async function handleSetupCommandAsync(args) {
19976
19985
  process.exit(exitCode === 0 ? EXIT_CODES.SUCCESS : EXIT_CODES.SERVER_START_FAILED);
19977
19986
  }
19978
19987
  async function runCustomApiSetup(args) {
19979
- const { configureCustomApi } = await import("./setup-custom-api-XTJ6YZM6.js");
19988
+ const { configureCustomApi } = await import("./setup-custom-api-4EYRKCHB.js");
19980
19989
  const baseUrl = args.options.customApi;
19981
19990
  if (baseUrl === void 0) return EXIT_CODES.SERVER_START_FAILED;
19982
19991
  const input = {