jinzd-ai-cli 0.4.254 → 0.4.256

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 (41) hide show
  1. package/README.md +2 -2
  2. package/README.zh-CN.md +2 -2
  3. package/dist/{batch-WRISEJGQ.js → batch-A6WZTY56.js} +3 -3
  4. package/dist/{chunk-ZRBGH245.js → chunk-2CGCEN7Q.js} +2 -2
  5. package/dist/{chunk-Q6MD47RH.js → chunk-3C6TKCRL.js} +3 -3
  6. package/dist/{chunk-6OEZMFMM.js → chunk-3F5FAUCI.js} +1 -1
  7. package/dist/{chunk-QXIKCU5R.js → chunk-AL3H7VI2.js} +1 -1
  8. package/dist/{chunk-TUPLHKYE.js → chunk-DQW3TJ4M.js} +1 -1
  9. package/dist/{chunk-OI247DUJ.js → chunk-FIXDD5WC.js} +1 -1
  10. package/dist/{chunk-XBCOYS22.js → chunk-IXGGIS3K.js} +1 -1
  11. package/dist/{chunk-5CCIFT5B.js → chunk-KTN7YDXC.js} +1 -1
  12. package/dist/{chunk-PSXIVQ3N.js → chunk-LEZB4KKZ.js} +1 -0
  13. package/dist/{chunk-KGJCRE6U.js → chunk-P5HO5RXI.js} +1 -1
  14. package/dist/{chunk-MBOEMIH2.js → chunk-TN62NEIY.js} +1 -1
  15. package/dist/{chunk-5ULLIOVC.js → chunk-TU3L3PW7.js} +5 -2
  16. package/dist/{chunk-TF5XR7NI.js → chunk-UPOFNYWD.js} +2 -2
  17. package/dist/{chunk-VCY6NH43.js → chunk-VEBTQK3D.js} +49 -23
  18. package/dist/{chunk-SCLXRJKE.js → chunk-VUGDRRX3.js} +4 -4
  19. package/dist/{chunk-EOZROPAY.js → chunk-X45KVQHD.js} +4 -4
  20. package/dist/ci-2YHS67DD.js +19 -0
  21. package/dist/{ci-format-ZQX57BPV.js → ci-format-AS3NBCVH.js} +2 -2
  22. package/dist/{constants-ASRW3Y6O.js → constants-RMUULNCF.js} +1 -1
  23. package/dist/doctor-cli-UOSY3GL6.js +17 -0
  24. package/dist/electron-server.js +58 -26
  25. package/dist/{hub-LBPFXAXM.js → hub-SIPD6DKN.js} +2 -2
  26. package/dist/{hub-server-XA7HTVLD.js → hub-server-QGUSMN22.js} +3 -0
  27. package/dist/index.js +34 -28
  28. package/dist/{persistent-memory-HJB6XTWD.js → persistent-memory-ELW2QNRA.js} +2 -2
  29. package/dist/{persistent-memory-LKWQ777N.js → persistent-memory-JIXASKVH.js} +2 -2
  30. package/dist/{pr-JM266VJT.js → pr-NI5ZF7LE.js} +7 -7
  31. package/dist/{run-tests-DAOPTU2O.js → run-tests-NSOI3UB5.js} +2 -2
  32. package/dist/{run-tests-CMCXT3ZW.js → run-tests-XZ4DN4NV.js} +2 -2
  33. package/dist/{server-4KFSPCPP.js → server-52KYUXTT.js} +7 -7
  34. package/dist/{server-ADRQ3MFV.js → server-WIBGSOFE.js} +16 -14
  35. package/dist/{task-orchestrator-OH5S26KX.js → task-orchestrator-BPXLRZTU.js} +13 -7
  36. package/dist/{usage-MKPF3XFL.js → usage-K7GM44EG.js} +3 -3
  37. package/dist/web/client/app.js +3329 -3312
  38. package/dist/web/client/index.html +70 -70
  39. package/package.json +19 -9
  40. package/dist/ci-JINX6RT6.js +0 -19
  41. package/dist/doctor-cli-CKJ7NEKC.js +0 -17
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  [![npm version](https://img.shields.io/npm/v/jinzd-ai-cli)](https://www.npmjs.com/package/jinzd-ai-cli)
13
13
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
14
- [![Node.js](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](https://nodejs.org)
14
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D20.18.1-brightgreen)](https://nodejs.org)
15
15
  [![Tests](https://img.shields.io/badge/tests-1639%20passing-brightgreen)]()
16
16
  [![GitHub Release](https://img.shields.io/github/v/release/jinzhengdong/ai-cli)](https://github.com/jinzhengdong/ai-cli/releases)
17
17
  [![CI](https://github.com/jinzhengdong/ai-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/jinzhengdong/ai-cli/actions/workflows/ci.yml)
@@ -66,7 +66,7 @@
66
66
  npm install -g jinzd-ai-cli
67
67
  ```
68
68
 
69
- Requires Node.js >= 20. After installation, use `aicli` to start.
69
+ Requires Node.js >= 20.18.1. After installation, use `aicli` to start.
70
70
 
71
71
  ### Electron Desktop App (Windows)
72
72
 
package/README.zh-CN.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  [![npm version](https://img.shields.io/npm/v/jinzd-ai-cli)](https://www.npmjs.com/package/jinzd-ai-cli)
13
13
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
14
- [![Node.js](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](https://nodejs.org)
14
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D20.18.1-brightgreen)](https://nodejs.org)
15
15
  [![Tests](https://img.shields.io/badge/tests-1097%20passing-brightgreen)]()
16
16
  [![GitHub Release](https://img.shields.io/github/v/release/jinzhengdong/ai-cli)](https://github.com/jinzhengdong/ai-cli/releases)
17
17
  [![CI](https://github.com/jinzhengdong/ai-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/jinzhengdong/ai-cli/actions/workflows/ci.yml)
@@ -54,7 +54,7 @@
54
54
  npm install -g jinzd-ai-cli
55
55
  ```
56
56
 
57
- 需要 Node.js >= 20。安装后使用 `aicli` 启动。
57
+ 需要 Node.js >= 20.18.1。安装后使用 `aicli` 启动。
58
58
 
59
59
  ### Electron 桌面应用(Windows)
60
60
 
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ConfigManager
4
- } from "./chunk-Q6MD47RH.js";
5
- import "./chunk-5ULLIOVC.js";
6
- import "./chunk-XBCOYS22.js";
4
+ } from "./chunk-3C6TKCRL.js";
5
+ import "./chunk-TU3L3PW7.js";
6
+ import "./chunk-IXGGIS3K.js";
7
7
  import {
8
8
  atomicWriteFileSync
9
9
  } from "./chunk-IW3Q7AE5.js";
@@ -3,13 +3,13 @@ import {
3
3
  detectsHallucinatedFileOp,
4
4
  parseToolCallArguments,
5
5
  schemaToJsonSchema
6
- } from "./chunk-PSXIVQ3N.js";
6
+ } from "./chunk-LEZB4KKZ.js";
7
7
  import {
8
8
  AuthError,
9
9
  ProviderError,
10
10
  ProviderNotFoundError,
11
11
  RateLimitError
12
- } from "./chunk-5ULLIOVC.js";
12
+ } from "./chunk-TU3L3PW7.js";
13
13
  import {
14
14
  atomicWriteFileSync
15
15
  } from "./chunk-IW3Q7AE5.js";
@@ -2,13 +2,13 @@
2
2
  import {
3
3
  ConfigError,
4
4
  EnvLoader
5
- } from "./chunk-5ULLIOVC.js";
5
+ } from "./chunk-TU3L3PW7.js";
6
6
  import {
7
7
  CONFIG_DIR_NAME,
8
8
  CONFIG_FILE_NAME,
9
9
  HISTORY_DIR_NAME,
10
10
  PLUGINS_DIR_NAME
11
- } from "./chunk-XBCOYS22.js";
11
+ } from "./chunk-IXGGIS3K.js";
12
12
  import {
13
13
  atomicWriteFileSync
14
14
  } from "./chunk-IW3Q7AE5.js";
@@ -351,7 +351,7 @@ var ConfigManager = class {
351
351
  return ConfigSchema.parse(raw);
352
352
  } catch (err) {
353
353
  throw new ConfigError(
354
- `Config file at ${this.configPath} is invalid. Delete it and run 'ai-cli config' to recreate.
354
+ `Config file at ${this.configPath} is invalid. Delete it and run 'aicli config' to recreate.
355
355
  ${err}`
356
356
  );
357
357
  }
@@ -6,7 +6,7 @@ import {
6
6
  MEMORY_FILE_NAME,
7
7
  MEMORY_MAX_CHARS,
8
8
  MEMORY_STORE_FILE_NAME
9
- } from "./chunk-XBCOYS22.js";
9
+ } from "./chunk-IXGGIS3K.js";
10
10
  import {
11
11
  DEFAULT_PATTERNS,
12
12
  redactString
@@ -6,7 +6,7 @@ import {
6
6
  MEMORY_FILE_NAME,
7
7
  MEMORY_MAX_CHARS,
8
8
  MEMORY_STORE_FILE_NAME
9
- } from "./chunk-5CCIFT5B.js";
9
+ } from "./chunk-KTN7YDXC.js";
10
10
  import {
11
11
  atomicWriteFileSync
12
12
  } from "./chunk-6BUTA5VW.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TEST_TIMEOUT
3
- } from "./chunk-5CCIFT5B.js";
3
+ } from "./chunk-KTN7YDXC.js";
4
4
 
5
5
  // src/tools/builtin/run-tests.ts
6
6
  import { execSync, spawnSync } from "child_process";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  VERSION
4
- } from "./chunk-XBCOYS22.js";
4
+ } from "./chunk-IXGGIS3K.js";
5
5
 
6
6
  // src/cli/ci-format.ts
7
7
  var DEFAULT_CI_THRESHOLDS = {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/core/constants.ts
4
- var VERSION = "0.4.254";
4
+ var VERSION = "0.4.256";
5
5
  var APP_NAME = "ai-cli";
6
6
  var CONFIG_DIR_NAME = ".aicli";
7
7
  var CONFIG_FILE_NAME = "config.json";
@@ -1,5 +1,5 @@
1
1
  // src/core/constants.ts
2
- var VERSION = "0.4.254";
2
+ var VERSION = "0.4.256";
3
3
  var APP_NAME = "ai-cli";
4
4
  var CONFIG_DIR_NAME = ".aicli";
5
5
  var CONFIG_FILE_NAME = "config.json";
@@ -824,6 +824,7 @@ var BudgetWarner = class {
824
824
  this.lowAt = Math.min(lowRaw, this.noteAt - 1);
825
825
  this.criticalAt = Math.min(criticalRaw, this.lowAt - 1);
826
826
  }
827
+ maxToolRounds;
827
828
  noteAt;
828
829
  lowAt;
829
830
  criticalAt;
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  CONFIG_DIR_NAME,
4
4
  PLUGINS_DIR_NAME
5
- } from "./chunk-XBCOYS22.js";
5
+ } from "./chunk-IXGGIS3K.js";
6
6
  import {
7
7
  atomicWriteFileSync
8
8
  } from "./chunk-IW3Q7AE5.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  TEST_TIMEOUT
4
- } from "./chunk-XBCOYS22.js";
4
+ } from "./chunk-IXGGIS3K.js";
5
5
 
6
6
  // src/tools/builtin/run-tests.ts
7
7
  import { execSync, spawnSync } from "child_process";
@@ -62,10 +62,11 @@ var ProviderError = class extends AiCliError {
62
62
  this.providerId = providerId;
63
63
  this.name = "ProviderError";
64
64
  }
65
+ providerId;
65
66
  };
66
67
  var AuthError = class extends ProviderError {
67
68
  constructor(providerId) {
68
- super(providerId, "Invalid or missing API key. Run: ai-cli config");
69
+ super(providerId, "Invalid or missing API key. Run: aicli config");
69
70
  this.name = "AuthError";
70
71
  }
71
72
  };
@@ -84,7 +85,7 @@ var ConfigError = class extends AiCliError {
84
85
  var ProviderNotFoundError = class extends AiCliError {
85
86
  constructor(providerId) {
86
87
  super(
87
- `Provider '${providerId}' is not configured. Run: ai-cli config`
88
+ `Provider '${providerId}' is not configured. Run: aicli config`
88
89
  );
89
90
  this.name = "ProviderNotFoundError";
90
91
  }
@@ -95,6 +96,7 @@ var ToolError = class extends AiCliError {
95
96
  this.toolName = toolName;
96
97
  this.name = "ToolError";
97
98
  }
99
+ toolName;
98
100
  };
99
101
  var NetworkError = class extends AiCliError {
100
102
  constructor(message, statusCode, cause) {
@@ -102,6 +104,7 @@ var NetworkError = class extends AiCliError {
102
104
  this.statusCode = statusCode;
103
105
  this.name = "NetworkError";
104
106
  }
107
+ statusCode;
105
108
  };
106
109
 
107
110
  export {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  truncateForPersist
4
- } from "./chunk-VCY6NH43.js";
4
+ } from "./chunk-VEBTQK3D.js";
5
5
  import {
6
6
  APP_NAME,
7
7
  CONFIG_DIR_NAME,
@@ -11,7 +11,7 @@ import {
11
11
  MCP_PROTOCOL_VERSION,
12
12
  MCP_TOOL_PREFIX,
13
13
  VERSION
14
- } from "./chunk-XBCOYS22.js";
14
+ } from "./chunk-IXGGIS3K.js";
15
15
  import {
16
16
  atomicWriteFileSync
17
17
  } from "./chunk-IW3Q7AE5.js";
@@ -7,7 +7,7 @@ import {
7
7
  searchPersistentMemories,
8
8
  touchMemoryReferences,
9
9
  updateMemoryEntry
10
- } from "./chunk-6OEZMFMM.js";
10
+ } from "./chunk-3F5FAUCI.js";
11
11
  import {
12
12
  indexProject
13
13
  } from "./chunk-GLSR2NR3.js";
@@ -23,31 +23,31 @@ import {
23
23
  runHook,
24
24
  runLifecycleHooks,
25
25
  runTool
26
- } from "./chunk-KGJCRE6U.js";
26
+ } from "./chunk-P5HO5RXI.js";
27
27
  import {
28
28
  buildTruncatedArgumentsError,
29
29
  getDangerLevel,
30
30
  isFileWriteTool,
31
31
  runLeanAgentLoop
32
- } from "./chunk-PSXIVQ3N.js";
32
+ } from "./chunk-LEZB4KKZ.js";
33
33
  import {
34
34
  EnvLoader,
35
35
  NetworkError,
36
36
  ToolError
37
- } from "./chunk-5ULLIOVC.js";
37
+ } from "./chunk-TU3L3PW7.js";
38
38
  import {
39
39
  fileCheckpoints
40
40
  } from "./chunk-4BKXL7SM.js";
41
41
  import {
42
42
  runTestsTool
43
- } from "./chunk-MBOEMIH2.js";
43
+ } from "./chunk-TN62NEIY.js";
44
44
  import {
45
45
  CONFIG_DIR_NAME,
46
46
  DEFAULT_MAX_TOOL_OUTPUT_CHARS_CAP,
47
47
  SUBAGENT_ALLOWED_TOOLS,
48
48
  SUBAGENT_DEFAULT_MAX_ROUNDS,
49
49
  SUBAGENT_MAX_ROUNDS_LIMIT
50
- } from "./chunk-XBCOYS22.js";
50
+ } from "./chunk-IXGGIS3K.js";
51
51
  import {
52
52
  loadChatIndex,
53
53
  searchChatMemory
@@ -163,6 +163,16 @@ function startEvictionTimer() {
163
163
  }
164
164
  }, 6e4).unref();
165
165
  }
166
+ function buildWrappedCommand(command, id, isWindows) {
167
+ const markerStart = `AICLI_MARKER_START:${id}`;
168
+ const markerEnd = `AICLI_MARKER_END:${id}`;
169
+ if (!isWindows) {
170
+ return `echo "${markerStart}"; ${command}; echo "${markerEnd}:$?"`;
171
+ }
172
+ const inner = `${WIN_UTF8_PREAMBLE} Write-Output "${markerStart}"; ${command}; $__ok = $?; $__ec = $LASTEXITCODE; $__code = if ($__ok) { 0 } elseif ($null -ne $__ec -and $__ec -ne 0) { $__ec } else { 1 }; Write-Output "${markerEnd}:$__code"`;
173
+ const b64 = Buffer.from(inner, "utf-8").toString("base64");
174
+ return `Invoke-Expression ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String('${b64}')))`;
175
+ }
166
176
  async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
167
177
  let entry = pool.get(sessionKey);
168
178
  if (!entry || entry.proc.exitCode !== null || entry.cwd !== cwd) {
@@ -179,9 +189,7 @@ async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
179
189
  entry.lastUsed = Date.now();
180
190
  startEvictionTimer();
181
191
  const id = `${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`;
182
- const markerStart = `AICLI_MARKER_START:${id}`;
183
- const markerEnd = `AICLI_MARKER_END:${id}`;
184
- const wrappedCmd = IS_WINDOWS2 ? `${WIN_UTF8_PREAMBLE} echo "${markerStart}"; ${command}; echo "${markerEnd}:0"` : `echo "${markerStart}"; ${command}; echo "${markerEnd}:$?"`;
192
+ const wrappedCmd = buildWrappedCommand(command, id, IS_WINDOWS2);
185
193
  return new Promise((resolve7) => {
186
194
  let stdout = "";
187
195
  let stderr = "";
@@ -190,6 +198,7 @@ async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
190
198
  let resolved = false;
191
199
  const markerStartPattern = `AICLI_MARKER_START:${id}`;
192
200
  const markerEndPattern = `AICLI_MARKER_END:${id}`;
201
+ const proc = entry.proc;
193
202
  const onData = (chunk) => {
194
203
  stdout += IS_WINDOWS2 ? decodeWindowsBuffer(chunk) : chunk.toString("utf-8");
195
204
  if (!resolved && stdout.includes(markerEndPattern)) {
@@ -204,9 +213,26 @@ async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
204
213
  const onErr = (chunk) => {
205
214
  stderr += IS_WINDOWS2 ? decodeWindowsBuffer(chunk) : chunk.toString("utf-8");
206
215
  };
207
- const proc = entry.proc;
216
+ const finishPoolFailure = (message, exitCode = null) => {
217
+ if (resolved) return;
218
+ resolved = true;
219
+ stdout = stripMarkerOutput(stdout, markerStartPattern, markerEndPattern);
220
+ stderr += `${stderr ? "\n" : ""}[pool terminated] ${message}`;
221
+ cleanup();
222
+ pool.delete(sessionKey);
223
+ resolve7({ stdout, stderr, exitCode: exitCode === 0 ? null : exitCode, timedOut, aborted });
224
+ };
225
+ const onClose = (code, signal) => {
226
+ const detail = signal ? `signal ${signal}` : `exit code ${code ?? "unknown"}`;
227
+ finishPoolFailure(`Shell exited before the completion marker (${detail}).`, code);
228
+ };
229
+ const onStdinError = (err) => {
230
+ finishPoolFailure(`Shell stdin failed: ${err.message}`);
231
+ };
208
232
  proc.stdout?.on("data", onData);
209
233
  proc.stderr?.on("data", onErr);
234
+ proc.once("close", onClose);
235
+ proc.stdin?.once("error", onStdinError);
210
236
  const timeoutTimer = setTimeout(() => {
211
237
  if (resolved) return;
212
238
  timedOut = true;
@@ -233,29 +259,26 @@ async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
233
259
  abortSignal?.addEventListener("abort", onAbort, { once: true });
234
260
  }
235
261
  const onError = (err) => {
236
- if (resolved) return;
237
- resolved = true;
238
- stderr += `
239
- [pool error] ${err.message}`;
240
- cleanup();
241
- resolve7({ stdout, stderr, exitCode: null, timedOut, aborted });
242
- pool.delete(sessionKey);
262
+ finishPoolFailure(`Shell process error: ${err.message}`);
243
263
  };
244
- proc.on("error", onError);
264
+ proc.once("error", onError);
245
265
  function cleanup() {
246
266
  clearTimeout(timeoutTimer);
247
267
  abortSignal?.removeEventListener("abort", onAbort);
248
268
  proc.stdout?.removeListener("data", onData);
249
269
  proc.stderr?.removeListener("data", onErr);
270
+ proc.removeListener("close", onClose);
250
271
  proc.removeListener("error", onError);
272
+ proc.stdin?.removeListener("error", onStdinError);
251
273
  }
252
274
  try {
253
- proc.stdin?.write(wrappedCmd + "\n");
254
- } catch {
255
- if (!resolved) {
256
- cleanup();
257
- pool.delete(sessionKey);
275
+ if (!proc.stdin) {
276
+ finishPoolFailure("Shell stdin is unavailable.");
277
+ } else {
278
+ proc.stdin.write(wrappedCmd + "\n");
258
279
  }
280
+ } catch (err) {
281
+ finishPoolFailure(`Shell stdin write failed: ${err instanceof Error ? err.message : String(err)}`);
259
282
  }
260
283
  });
261
284
  }
@@ -2181,6 +2204,7 @@ var ToolExecutor = class {
2181
2204
  constructor(registry) {
2182
2205
  this.registry = registry;
2183
2206
  }
2207
+ registry;
2184
2208
  /** 当前 session 消息索引,由 repl.ts / session-handler.ts 在每轮工具执行前设置 */
2185
2209
  static currentMessageIndex = 0;
2186
2210
  round = 0;
@@ -5413,6 +5437,8 @@ var SubAgentExecutor = class {
5413
5437
  this.runId = runId;
5414
5438
  this.prefix = agentPrefix(agentIndex);
5415
5439
  }
5440
+ registry;
5441
+ runId;
5416
5442
  round = 0;
5417
5443
  totalRounds = 0;
5418
5444
  prefix = PREFIX;
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ProviderRegistry
4
- } from "./chunk-ZRBGH245.js";
4
+ } from "./chunk-2CGCEN7Q.js";
5
5
  import {
6
6
  ConfigManager
7
- } from "./chunk-Q6MD47RH.js";
7
+ } from "./chunk-3C6TKCRL.js";
8
8
  import {
9
9
  getActivePluginAssets,
10
10
  getPendingHookTrust,
@@ -14,7 +14,7 @@ import {
14
14
  listHooks,
15
15
  listInstalledPlugins,
16
16
  resetStats
17
- } from "./chunk-KGJCRE6U.js";
17
+ } from "./chunk-P5HO5RXI.js";
18
18
  import {
19
19
  getGitRoot
20
20
  } from "./chunk-HOSJZMQS.js";
@@ -26,7 +26,7 @@ import {
26
26
  MCP_PROJECT_CONFIG_NAME,
27
27
  MEMORY_FILE_NAME,
28
28
  VERSION
29
- } from "./chunk-XBCOYS22.js";
29
+ } from "./chunk-IXGGIS3K.js";
30
30
 
31
31
  // src/diagnostics/doctor-report.ts
32
32
  import { existsSync as existsSync3, statSync as statSync2 } from "fs";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  evaluateCiGate,
4
4
  normalizeCiThresholds
5
- } from "./chunk-OI247DUJ.js";
5
+ } from "./chunk-FIXDD5WC.js";
6
6
  import {
7
7
  buildReviewPrompt,
8
8
  buildSecurityReviewPrompt,
@@ -10,13 +10,13 @@ import {
10
10
  } from "./chunk-HLWUDRBO.js";
11
11
  import {
12
12
  ProviderRegistry
13
- } from "./chunk-ZRBGH245.js";
13
+ } from "./chunk-2CGCEN7Q.js";
14
14
  import {
15
15
  ConfigManager
16
- } from "./chunk-Q6MD47RH.js";
16
+ } from "./chunk-3C6TKCRL.js";
17
17
  import {
18
18
  VERSION
19
- } from "./chunk-XBCOYS22.js";
19
+ } from "./chunk-IXGGIS3K.js";
20
20
 
21
21
  // src/cli/ci.ts
22
22
  import { execFileSync } from "child_process";
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ CI_COMMENT_MARKER,
4
+ countSeverity,
5
+ runCi
6
+ } from "./chunk-X45KVQHD.js";
7
+ import "./chunk-FIXDD5WC.js";
8
+ import "./chunk-HLWUDRBO.js";
9
+ import "./chunk-2CGCEN7Q.js";
10
+ import "./chunk-3C6TKCRL.js";
11
+ import "./chunk-LEZB4KKZ.js";
12
+ import "./chunk-TU3L3PW7.js";
13
+ import "./chunk-IXGGIS3K.js";
14
+ import "./chunk-IW3Q7AE5.js";
15
+ export {
16
+ CI_COMMENT_MARKER,
17
+ countSeverity,
18
+ runCi
19
+ };
@@ -6,8 +6,8 @@ import {
6
6
  formatCiResult,
7
7
  formatCiSarif,
8
8
  normalizeCiThresholds
9
- } from "./chunk-OI247DUJ.js";
10
- import "./chunk-XBCOYS22.js";
9
+ } from "./chunk-FIXDD5WC.js";
10
+ import "./chunk-IXGGIS3K.js";
11
11
  export {
12
12
  DEFAULT_CI_THRESHOLDS,
13
13
  detectCiGateSignals,
@@ -38,7 +38,7 @@ import {
38
38
  TEST_TIMEOUT,
39
39
  VERSION,
40
40
  buildUserIdentityPrompt
41
- } from "./chunk-XBCOYS22.js";
41
+ } from "./chunk-IXGGIS3K.js";
42
42
  export {
43
43
  AGENTIC_BEHAVIOR_GUIDELINE,
44
44
  APP_NAME,
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ formatDoctorReport,
4
+ runDoctorCli
5
+ } from "./chunk-VUGDRRX3.js";
6
+ import "./chunk-2CGCEN7Q.js";
7
+ import "./chunk-3C6TKCRL.js";
8
+ import "./chunk-P5HO5RXI.js";
9
+ import "./chunk-LEZB4KKZ.js";
10
+ import "./chunk-TU3L3PW7.js";
11
+ import "./chunk-HOSJZMQS.js";
12
+ import "./chunk-IXGGIS3K.js";
13
+ import "./chunk-IW3Q7AE5.js";
14
+ export {
15
+ formatDoctorReport,
16
+ runDoctorCli
17
+ };