jinzd-ai-cli 0.4.240 → 0.4.241
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.
- package/README.md +2 -2
- package/README.zh-CN.md +6 -6
- package/dist/{batch-QVWTKZF4.js → batch-K66BLTLJ.js} +2 -2
- package/dist/{chunk-D3636NWD.js → chunk-2LLQOMMW.js} +1 -1
- package/dist/{chunk-4MBOMN32.js → chunk-3AIR7N5M.js} +3 -3
- package/dist/{chunk-MJJDVV7I.js → chunk-CHFFEVVT.js} +3 -3
- package/dist/{chunk-3RAG6N4A.js → chunk-GORPFFV4.js} +3 -3
- package/dist/{chunk-UKIDVNA5.js → chunk-IV6GCDVR.js} +1 -1
- package/dist/{chunk-O5DZLCMC.js → chunk-LXSUPLCK.js} +2 -2
- package/dist/{chunk-SCE4HTKR.js → chunk-NAQPP3GZ.js} +1 -1
- package/dist/{chunk-4URJHGUY.js → chunk-PGHTAKIA.js} +1 -1
- package/dist/{chunk-FK3WUEP6.js → chunk-SMQHEJSH.js} +1 -1
- package/dist/{chunk-ATUYVDK7.js → chunk-ZPXMT2B6.js} +1 -1
- package/dist/{ci-TVGNRBCM.js → ci-T2ABDMMQ.js} +4 -4
- package/dist/{ci-format-MYXIMFBH.js → ci-format-S2PPU27O.js} +2 -2
- package/dist/{constants-CGQSCJPK.js → constants-RS7OUU7X.js} +1 -1
- package/dist/{doctor-cli-7EVHTO7C.js → doctor-cli-TGAW6RAP.js} +4 -4
- package/dist/electron-server.js +2 -2
- package/dist/{hub-JAHPVHAL.js → hub-GL5ZU6WS.js} +1 -1
- package/dist/index.js +18 -18
- package/dist/{pr-D22NW3CL.js → pr-TJFKUZ4B.js} +4 -4
- package/dist/{run-tests-PRGRUUKE.js → run-tests-EWMU34A4.js} +1 -1
- package/dist/{run-tests-L4UAFYAB.js → run-tests-KEI7IXTB.js} +2 -2
- package/dist/{server-ACSCQHUV.js → server-E545UIX7.js} +4 -4
- package/dist/{server-CXF4XPEZ.js → server-UVS2D4M6.js} +8 -8
- package/dist/{task-orchestrator-SFGLDJEX.js → task-orchestrator-PWXV2EBN.js} +4 -4
- package/dist/{usage-MCATLIB3.js → usage-EDJ6QOWB.js} +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
- **PWA Support** — Install Web UI as a desktop/mobile app, accessible over LAN
|
|
48
48
|
- **Hierarchical Context** — 3-layer context files (global / project / subdirectory) auto-injected; supports native AICLI.md, Claude-compatible CLAUDE.md, and Codex-compatible AGENTS.md with override files
|
|
49
49
|
- **Headless Mode** — `ai-cli -p "prompt"` for CI/CD pipelines and scripting
|
|
50
|
-
- **
|
|
50
|
+
- **48 REPL Commands** — Session management, checkpointing, code review, security review/scan, rewind, scaffolding, cross-session history search, chat-memory recall, smart model routing (`/route`), and more
|
|
51
51
|
- **GitHub Actions CI/CD** — Automated testing on Node 20/22 + npm publish on release tags
|
|
52
52
|
- **PR Review CLI** *(v0.4.216+)* — `aicli pr review|security-review|summarize` reviews `main...HEAD`, custom `--base/--head`, or GitHub PR URLs; optional `--agents security,bugs,tests,maintainability`; never posts comments unless `--post` is explicit
|
|
53
53
|
- **CI Review Artifacts** *(v0.4.216+)* — `aicli ci` emits Markdown, JSON, or SARIF and gates on security-high, test-failure, and lint-failure findings in read-only review mode
|
|
@@ -456,7 +456,7 @@ Environment variables take precedence over config file values:
|
|
|
456
456
|
| `AICLI_API_KEY_OPENAI` | OpenAI API Key |
|
|
457
457
|
| `AICLI_API_KEY_OPENROUTER` | OpenRouter API Key |
|
|
458
458
|
| `AICLI_API_KEY_ZHIPU` | Zhipu API Key |
|
|
459
|
-
| `AICLI_API_KEY_KIMI` | Kimi API Key |
|
|
459
|
+
| `AICLI_API_KEY_KIMI` | Kimi API Key |
|
|
460
460
|
| `AICLI_API_KEY_QWEN` | Qwen / Alibaba Cloud API Key |
|
|
461
461
|
| `AICLI_PROVIDER` | Default provider ID |
|
|
462
462
|
| `AICLI_NO_STREAM` | Set to `1` to disable streaming |
|
package/README.zh-CN.md
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
- **对话分支**(v0.4.74+)— REPL 内 `/branch list/new/switch/delete/rename/diff/cherry-pick`,Web UI 回放面板每条消息旁 🌿 "fork here" 按钮,任意位置开辟新分支探索不同方向,原对话保持不变;v0.4.81 起所有子命令支持 id / title / 唯一前缀
|
|
24
24
|
- **符号索引**(v0.4.76+,C1;v0.4.143 起多语言)— tree-sitter 持久化索引(TS / JS / TSX / JSX / Python / Go / Rust / Java / C/C++)+ 3 个只读 AI 工具(`find_symbol` / `get_outline` / `find_references`)+ `/index status/rebuild/clear`;启动后台增量刷新,`write_file` 后自动 upsert
|
|
25
25
|
- **语义代码搜索**(v0.4.77+,C2)— `search_code` AI 工具 + 本地 sentence embedding(`paraphrase-multilingual-MiniLM-L12-v2`,117 MB 一次性下载,384 维,CPU 运行);支持中英文自然语言查询代码;`/index semantic-rebuild/semantic-clear` 管理
|
|
26
|
-
- **MCP Server 模式**(v0.4.84+,E1)— `aicli mcp-serve` 把 aicli 反转为 MCP 服务器(JSON-RPC 2.0 over stdio),把
|
|
26
|
+
- **MCP Server 模式**(v0.4.84+,E1)— `aicli mcp-serve` 把 aicli 反转为 MCP 服务器(JSON-RPC 2.0 over stdio),把 30 个内置工具(含 `find_symbol` / `search_code` / `run_tests`)输出给 Claude Desktop / Cursor / 任何 MCP 客户端;支持 `--tools` 白名单、`--cwd` 覆盖、`--allow-destructive`
|
|
27
27
|
- **Session 敏感数据脱敏**(v0.4.88+)— 统一 redactor 在 session **落盘前**自动替换 `password=` / `api_key` / bearer token / OpenAI key 为 `[REDACTED:*]`;查询文本也走脱敏,secret 不会进 embedding 或日志;`/security status` + `/security scan` 审计
|
|
28
28
|
- **类人长期记忆**(v0.4.89+,B4)— 聊天记录语义索引跨 session 可召回 + `recall_memory` AI 工具 + `/memory rebuild/refresh/status/recall/index-clear`;AI 看到"上次"/"之前"/指代不明时自动回忆。复用 C2 的 MiniLM embedder
|
|
29
29
|
- **Web UI Memory 面板**(v0.4.90+,B4)— sidebar 新增 🧠 Memory 标签页,跨 session 语义搜索;每条 hit 带 **➕ Inject**(把片段作为 markdown 引用块塞进聊天输入框,用户可在上面继续打字编辑——不是静默注入上下文)和 **↗ Load**(跳转对应 session);顶部"➕ Inject top 3"一键批量
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
- **PWA 支持** — Web UI 可安装为桌面/移动应用,支持局域网访问
|
|
38
38
|
- **三层级上下文** — 全局 / 项目 / 子目录上下文文件自动注入;支持原生 `AICLI.md`、Claude 兼容 `CLAUDE.md`、Codex 兼容 `AGENTS.md` 及 override 文件
|
|
39
39
|
- **无头模式** — `aicli -p "提示词"` 用于 CI/CD 管道和脚本
|
|
40
|
-
- **
|
|
40
|
+
- **48 个 REPL 命令** — 会话管理、检查点、代码审查、安全审查/扫描、对话回退、脚手架、聊天记忆召回、智能模型路由(`/route`)等
|
|
41
41
|
- **GitHub Actions CI/CD** — Node 20/22 自动测试 + Release tag 自动发布 npm
|
|
42
42
|
- **跨平台** — Windows、macOS、Linux
|
|
43
43
|
|
|
@@ -92,7 +92,7 @@ aicli
|
|
|
92
92
|
### Web UI
|
|
93
93
|
|
|
94
94
|
```bash
|
|
95
|
-
aicli web # 在 localhost:
|
|
95
|
+
aicli web # 在 localhost:3000 启动
|
|
96
96
|
aicli web --port 8080 # 自定义端口
|
|
97
97
|
aicli web --host 0.0.0.0 # 局域网访问(手机/平板)
|
|
98
98
|
```
|
|
@@ -144,7 +144,7 @@ aicli
|
|
|
144
144
|
|
|
145
145
|
## 内置工具(Agentic 能力)
|
|
146
146
|
|
|
147
|
-
AI 在对话中可自主调用
|
|
147
|
+
AI 在对话中可自主调用 30 个工具:
|
|
148
148
|
|
|
149
149
|
| 工具 | 安全级别 | 说明 |
|
|
150
150
|
|------|---------|------|
|
|
@@ -220,7 +220,7 @@ AI 在对话中可自主调用 28 个工具:
|
|
|
220
220
|
|
|
221
221
|
**多行输入**:行末加 `\` 续行,或直接粘贴多行内容(自动检测合并)。
|
|
222
222
|
|
|
223
|
-
在 REPL 中输入 `/help` 查看全部
|
|
223
|
+
在 REPL 中输入 `/help` 查看全部 48 个命令。
|
|
224
224
|
|
|
225
225
|
## CLI 参数
|
|
226
226
|
|
|
@@ -414,7 +414,7 @@ Auto Mode 不会被项目配置静默开启。用 `/permissions recently-denied`
|
|
|
414
414
|
| `AICLI_API_KEY_OPENAI` | OpenAI API Key |
|
|
415
415
|
| `AICLI_API_KEY_OPENROUTER` | OpenRouter API Key |
|
|
416
416
|
| `AICLI_API_KEY_ZHIPU` | 智谱 API Key |
|
|
417
|
-
| `AICLI_API_KEY_KIMI` | Kimi API Key |
|
|
417
|
+
| `AICLI_API_KEY_KIMI` | Kimi API Key |
|
|
418
418
|
| `AICLI_API_KEY_QWEN` | Qwen / Alibaba Cloud API Key |
|
|
419
419
|
| `AICLI_PROVIDER` | 默认 Provider |
|
|
420
420
|
| `AICLI_NO_STREAM` | 设为 `1` 禁用流式输出 |
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ConfigManager
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IV6GCDVR.js";
|
|
5
5
|
import "./chunk-5ULLIOVC.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-SMQHEJSH.js";
|
|
7
7
|
import {
|
|
8
8
|
atomicWriteFileSync
|
|
9
9
|
} from "./chunk-IW3Q7AE5.js";
|
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
listHooks,
|
|
12
12
|
listInstalledPlugins,
|
|
13
13
|
resetStats
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2LLQOMMW.js";
|
|
15
15
|
import {
|
|
16
16
|
ConfigManager
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-IV6GCDVR.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-
|
|
29
|
+
} from "./chunk-SMQHEJSH.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-
|
|
5
|
+
} from "./chunk-PGHTAKIA.js";
|
|
6
6
|
import {
|
|
7
7
|
buildReviewPrompt,
|
|
8
8
|
buildSecurityReviewPrompt,
|
|
@@ -13,10 +13,10 @@ import {
|
|
|
13
13
|
} from "./chunk-QYQI7ZWK.js";
|
|
14
14
|
import {
|
|
15
15
|
ConfigManager
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-IV6GCDVR.js";
|
|
17
17
|
import {
|
|
18
18
|
VERSION
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-SMQHEJSH.js";
|
|
20
20
|
|
|
21
21
|
// src/cli/ci.ts
|
|
22
22
|
import { execFileSync } from "child_process";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
runHook,
|
|
15
15
|
runLifecycleHooks,
|
|
16
16
|
runTool
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-2LLQOMMW.js";
|
|
18
18
|
import {
|
|
19
19
|
getDangerLevel,
|
|
20
20
|
isFileWriteTool,
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
} from "./chunk-4BKXL7SM.js";
|
|
34
34
|
import {
|
|
35
35
|
runTestsTool
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-NAQPP3GZ.js";
|
|
37
37
|
import {
|
|
38
38
|
CONFIG_DIR_NAME,
|
|
39
39
|
DEFAULT_MAX_TOOL_OUTPUT_CHARS_CAP,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
SUBAGENT_ALLOWED_TOOLS,
|
|
44
44
|
SUBAGENT_DEFAULT_MAX_ROUNDS,
|
|
45
45
|
SUBAGENT_MAX_ROUNDS_LIMIT
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-SMQHEJSH.js";
|
|
47
47
|
import {
|
|
48
48
|
loadChatIndex,
|
|
49
49
|
searchChatMemory
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
truncateForPersist
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-GORPFFV4.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-
|
|
14
|
+
} from "./chunk-SMQHEJSH.js";
|
|
15
15
|
import {
|
|
16
16
|
atomicWriteFileSync
|
|
17
17
|
} from "./chunk-IW3Q7AE5.js";
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
CI_COMMENT_MARKER,
|
|
4
4
|
countSeverity,
|
|
5
5
|
runCi
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-CHFFEVVT.js";
|
|
7
|
+
import "./chunk-PGHTAKIA.js";
|
|
8
8
|
import "./chunk-HLWUDRBO.js";
|
|
9
9
|
import "./chunk-QYQI7ZWK.js";
|
|
10
10
|
import "./chunk-O3XSFPYH.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-IV6GCDVR.js";
|
|
12
12
|
import "./chunk-5ULLIOVC.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-SMQHEJSH.js";
|
|
14
14
|
import "./chunk-IW3Q7AE5.js";
|
|
15
15
|
export {
|
|
16
16
|
CI_COMMENT_MARKER,
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
formatDoctorReport,
|
|
4
4
|
runDoctorCli
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-3AIR7N5M.js";
|
|
6
6
|
import "./chunk-QYQI7ZWK.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-2LLQOMMW.js";
|
|
8
8
|
import "./chunk-O3XSFPYH.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-IV6GCDVR.js";
|
|
10
10
|
import "./chunk-5ULLIOVC.js";
|
|
11
11
|
import "./chunk-HOSJZMQS.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-SMQHEJSH.js";
|
|
13
13
|
import "./chunk-IW3Q7AE5.js";
|
|
14
14
|
export {
|
|
15
15
|
formatDoctorReport,
|
package/dist/electron-server.js
CHANGED
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
VERSION,
|
|
39
39
|
buildUserIdentityPrompt,
|
|
40
40
|
runTestsTool
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-ZPXMT2B6.js";
|
|
42
42
|
import {
|
|
43
43
|
hasSemanticIndex,
|
|
44
44
|
semanticSearch
|
|
@@ -16095,7 +16095,7 @@ async function handleSecurityReview(args, ctx) {
|
|
|
16095
16095
|
async function handleTest(args, ctx) {
|
|
16096
16096
|
ctx.send({ type: "info", message: "\u{1F9EA} Running tests..." });
|
|
16097
16097
|
try {
|
|
16098
|
-
const { executeTests } = await import("./run-tests-
|
|
16098
|
+
const { executeTests } = await import("./run-tests-EWMU34A4.js");
|
|
16099
16099
|
const argStr = args.join(" ").trim();
|
|
16100
16100
|
let testArgs = {};
|
|
16101
16101
|
if (argStr) {
|
|
@@ -154,7 +154,7 @@ ${content}`);
|
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
async function runTaskMode(config, providers, configManager, topic) {
|
|
157
|
-
const { TaskOrchestrator } = await import("./task-orchestrator-
|
|
157
|
+
const { TaskOrchestrator } = await import("./task-orchestrator-PWXV2EBN.js");
|
|
158
158
|
const orchestrator = new TaskOrchestrator(config, providers, configManager);
|
|
159
159
|
let interrupted = false;
|
|
160
160
|
const onSigint = () => {
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
scanProject,
|
|
15
15
|
sessionHasMeaningfulContent,
|
|
16
16
|
setupProxy
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-LXSUPLCK.js";
|
|
18
18
|
import {
|
|
19
19
|
buildReviewPrompt,
|
|
20
20
|
buildSecurityReviewPrompt
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
theme,
|
|
53
53
|
undoStack,
|
|
54
54
|
updateMemoryApproval
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-GORPFFV4.js";
|
|
56
56
|
import "./chunk-K3CF65QH.js";
|
|
57
57
|
import "./chunk-UUSRWSSX.js";
|
|
58
58
|
import "./chunk-CKH4KQ4E.js";
|
|
@@ -74,7 +74,7 @@ import {
|
|
|
74
74
|
formatDoctorReport,
|
|
75
75
|
loadContextFiles,
|
|
76
76
|
writeCrashLog
|
|
77
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-3AIR7N5M.js";
|
|
78
78
|
import {
|
|
79
79
|
ProviderRegistry
|
|
80
80
|
} from "./chunk-QYQI7ZWK.js";
|
|
@@ -94,7 +94,7 @@ import {
|
|
|
94
94
|
trustHook,
|
|
95
95
|
trustPlugin,
|
|
96
96
|
untrustHook
|
|
97
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-2LLQOMMW.js";
|
|
98
98
|
import {
|
|
99
99
|
CONTENT_ONLY_STREAM_REMINDER,
|
|
100
100
|
TEE_FINAL_USER_NUDGE,
|
|
@@ -116,7 +116,7 @@ import {
|
|
|
116
116
|
} from "./chunk-O3XSFPYH.js";
|
|
117
117
|
import {
|
|
118
118
|
ConfigManager
|
|
119
|
-
} from "./chunk-
|
|
119
|
+
} from "./chunk-IV6GCDVR.js";
|
|
120
120
|
import {
|
|
121
121
|
AuthError,
|
|
122
122
|
ProviderError,
|
|
@@ -130,7 +130,7 @@ import {
|
|
|
130
130
|
import {
|
|
131
131
|
fileCheckpoints
|
|
132
132
|
} from "./chunk-4BKXL7SM.js";
|
|
133
|
-
import "./chunk-
|
|
133
|
+
import "./chunk-NAQPP3GZ.js";
|
|
134
134
|
import {
|
|
135
135
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
136
136
|
AUTHOR,
|
|
@@ -149,7 +149,7 @@ import {
|
|
|
149
149
|
SKILLS_DIR_NAME,
|
|
150
150
|
VERSION,
|
|
151
151
|
buildUserIdentityPrompt
|
|
152
|
-
} from "./chunk-
|
|
152
|
+
} from "./chunk-SMQHEJSH.js";
|
|
153
153
|
import {
|
|
154
154
|
buildChatIndex,
|
|
155
155
|
clearChatIndex,
|
|
@@ -1370,7 +1370,7 @@ No tools match "${filter}".
|
|
|
1370
1370
|
const { join: join6 } = await import("path");
|
|
1371
1371
|
const { existsSync: existsSync5 } = await import("fs");
|
|
1372
1372
|
const { getGitRoot: getGitRoot2 } = await import("./git-context-EXOEHQSF.js");
|
|
1373
|
-
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-
|
|
1373
|
+
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-RS7OUU7X.js");
|
|
1374
1374
|
const { approveProject, hashMcpFile } = await import("./project-trust-NKYHL3VZ.js");
|
|
1375
1375
|
const cwd = process.cwd();
|
|
1376
1376
|
const projectRoot = getGitRoot2(cwd) ?? cwd;
|
|
@@ -2349,7 +2349,7 @@ function createReviewCommands() {
|
|
|
2349
2349
|
usage: "/test [command|filter]",
|
|
2350
2350
|
async execute(args, ctx) {
|
|
2351
2351
|
try {
|
|
2352
|
-
const { executeTests } = await import("./run-tests-
|
|
2352
|
+
const { executeTests } = await import("./run-tests-KEI7IXTB.js");
|
|
2353
2353
|
const argStr = args.join(" ").trim();
|
|
2354
2354
|
let testArgs = {};
|
|
2355
2355
|
if (argStr) {
|
|
@@ -7803,7 +7803,7 @@ program.command("web").description("Start Web UI server with browser-based chat
|
|
|
7803
7803
|
console.error("Error: Invalid port number. Must be between 1 and 65535.");
|
|
7804
7804
|
process.exit(1);
|
|
7805
7805
|
}
|
|
7806
|
-
const { startWebServer } = await import("./server-
|
|
7806
|
+
const { startWebServer } = await import("./server-UVS2D4M6.js");
|
|
7807
7807
|
await startWebServer({ port, host: options.host });
|
|
7808
7808
|
});
|
|
7809
7809
|
program.command("user [action] [username]").description("Manage Web UI users (list | create <name> | delete <name> | reset-password <name> | logout-all <name> | migrate <name>)").action(async (action, username) => {
|
|
@@ -7970,11 +7970,11 @@ program.command("sessions").description("List recent conversation sessions").opt
|
|
|
7970
7970
|
console.log(footer + "\n");
|
|
7971
7971
|
});
|
|
7972
7972
|
program.command("usage").description("Show token + cost usage grouped by provider/model (cross-session)").option("--days <n>", "Only the last N days (inclusive of today)").option("--month <ym>", "Only a specific month, format YYYY-MM (e.g. 2026-06)").option("--json", "Output as JSON (for scripting)").action(async (options) => {
|
|
7973
|
-
const { runUsageCli } = await import("./usage-
|
|
7973
|
+
const { runUsageCli } = await import("./usage-EDJ6QOWB.js");
|
|
7974
7974
|
await runUsageCli(options);
|
|
7975
7975
|
});
|
|
7976
7976
|
program.command("doctor").description("Health check: API keys, config, MCP, recent crashes, tool usage, disk usage").option("--json", "Output as JSON (for scripting)").option("--reset-stats", "Reset accumulated tool usage statistics").action(async (options) => {
|
|
7977
|
-
const { runDoctorCli } = await import("./doctor-cli-
|
|
7977
|
+
const { runDoctorCli } = await import("./doctor-cli-TGAW6RAP.js");
|
|
7978
7978
|
const argv = process.argv.slice(2);
|
|
7979
7979
|
await runDoctorCli({
|
|
7980
7980
|
json: !!options.json || argv.includes("--json"),
|
|
@@ -7983,7 +7983,7 @@ program.command("doctor").description("Health check: API keys, config, MCP, rece
|
|
|
7983
7983
|
});
|
|
7984
7984
|
program.command("batch <action> [arg] [arg2]").description("Anthropic Message Batches: submit | list | status <id> | results <id> [out] | cancel <id>").option("--dry-run", "Parse and validate input without submitting (submit only)").action(async (action, arg, arg2, options) => {
|
|
7985
7985
|
try {
|
|
7986
|
-
const batch = await import("./batch-
|
|
7986
|
+
const batch = await import("./batch-K66BLTLJ.js");
|
|
7987
7987
|
switch (action) {
|
|
7988
7988
|
case "submit":
|
|
7989
7989
|
if (!arg) {
|
|
@@ -8026,7 +8026,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
|
|
|
8026
8026
|
}
|
|
8027
8027
|
});
|
|
8028
8028
|
program.command("mcp-serve").description("Start an MCP server over STDIO, exposing aicli's built-in tools to Claude Desktop / Cursor / other MCP clients").option("--allow-destructive", "Allow bash / run_interactive / task_create (always destructive in MCP mode)").option("--allow-outside-cwd", "Allow tool path arguments to escape the sandbox root \u2014 disabled by default").option("--tools <list>", "Comma-separated whitelist of tools to expose (default: all eligible tools)").option("--cwd <path>", "Working directory AND sandbox root (default: current directory)").action(async (options) => {
|
|
8029
|
-
const { startMcpServer } = await import("./server-
|
|
8029
|
+
const { startMcpServer } = await import("./server-E545UIX7.js");
|
|
8030
8030
|
await startMcpServer({
|
|
8031
8031
|
allowDestructive: !!options.allowDestructive,
|
|
8032
8032
|
allowOutsideCwd: !!options.allowOutsideCwd,
|
|
@@ -8039,7 +8039,7 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
8039
8039
|
console.error(`Unknown pr action: ${action}. Use review | security-review | summarize.`);
|
|
8040
8040
|
process.exit(1);
|
|
8041
8041
|
}
|
|
8042
|
-
const { runPrCli } = await import("./pr-
|
|
8042
|
+
const { runPrCli } = await import("./pr-TJFKUZ4B.js");
|
|
8043
8043
|
const result = await runPrCli({
|
|
8044
8044
|
action,
|
|
8045
8045
|
target,
|
|
@@ -8059,8 +8059,8 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
8059
8059
|
process.exit(result.exitCode);
|
|
8060
8060
|
});
|
|
8061
8061
|
program.command("ci").description("Headless PR review (code + security) \u2014 reads git/gh diff, optionally posts to PR. Designed for GitHub Actions.").option("--pr <num>", "PR number or URL; diff fetched via gh pr diff <value>", (v) => /^#?\d+$/.test(v) ? parseInt(v.replace(/^#/, ""), 10) : v).option("--base <ref>", "Base ref for git diff <ref>...HEAD (ignored when --pr set)").option("--post", "Post review as a PR comment (requires gh CLI + GH_TOKEN, needs --pr)").option("--no-update", "Always create a new comment instead of updating the previous aicli review").option("--skip-code", "Skip the code review section").option("--skip-security", "Skip the security review section").option("--detailed", "Use the detailed code-review prompt").option("--max-diff <n>", "Max diff chars sent to the model (default 30000)", (v) => parseInt(v, 10)).option("--provider <id>", "Override provider (default: config.defaultProvider)").option("--model <id>", "Override model").option("--dry-run", "Print result to stdout instead of posting (overrides --post)").option("--json", "Output a structured JSON report").option("--markdown", "Output Markdown report (default)").option("--sarif", "Output SARIF 2.1.0 for code scanning artifacts").option("--fail-on-security-high", "Fail when the security review contains HIGH/CRITICAL findings (default)").option("--no-fail-on-security-high", "Do not fail on security HIGH/CRITICAL findings").option("--fail-on-test-failure", "Fail when the report mentions test failures (default)").option("--no-fail-on-test-failure", "Do not fail on test failure findings").option("--fail-on-lint-failure", "Fail when the report mentions lint/typecheck failures (default)").option("--no-fail-on-lint-failure", "Do not fail on lint/typecheck failure findings").action(async (options) => {
|
|
8062
|
-
const { runCi } = await import("./ci-
|
|
8063
|
-
const { formatCiResult } = await import("./ci-format-
|
|
8062
|
+
const { runCi } = await import("./ci-T2ABDMMQ.js");
|
|
8063
|
+
const { formatCiResult } = await import("./ci-format-S2PPU27O.js");
|
|
8064
8064
|
const formats = [options.json, options.markdown, options.sarif].filter(Boolean).length;
|
|
8065
8065
|
if (formats > 1) {
|
|
8066
8066
|
console.error("Choose only one output format: --json, --markdown, or --sarif.");
|
|
@@ -8218,7 +8218,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
|
|
|
8218
8218
|
config.get("customProviders"),
|
|
8219
8219
|
config.getConfigDir()
|
|
8220
8220
|
);
|
|
8221
|
-
const { startHub } = await import("./hub-
|
|
8221
|
+
const { startHub } = await import("./hub-GL5ZU6WS.js");
|
|
8222
8222
|
await startHub(
|
|
8223
8223
|
{
|
|
8224
8224
|
topic: topic ?? "",
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
countSeverity,
|
|
4
4
|
runCi
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-CHFFEVVT.js";
|
|
6
|
+
import "./chunk-PGHTAKIA.js";
|
|
7
7
|
import {
|
|
8
8
|
buildReviewPrompt,
|
|
9
9
|
buildSecurityReviewPrompt,
|
|
@@ -15,11 +15,11 @@ import {
|
|
|
15
15
|
import "./chunk-O3XSFPYH.js";
|
|
16
16
|
import {
|
|
17
17
|
ConfigManager
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-IV6GCDVR.js";
|
|
19
19
|
import "./chunk-5ULLIOVC.js";
|
|
20
20
|
import {
|
|
21
21
|
VERSION
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-SMQHEJSH.js";
|
|
23
23
|
import "./chunk-IW3Q7AE5.js";
|
|
24
24
|
|
|
25
25
|
// src/cli/pr.ts
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ToolRegistry
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-GORPFFV4.js";
|
|
5
5
|
import "./chunk-K3CF65QH.js";
|
|
6
6
|
import "./chunk-UUSRWSSX.js";
|
|
7
7
|
import "./chunk-CKH4KQ4E.js";
|
|
8
8
|
import "./chunk-BXP6YZ2P.js";
|
|
9
9
|
import {
|
|
10
10
|
runTool
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-2LLQOMMW.js";
|
|
12
12
|
import {
|
|
13
13
|
getDangerLevel,
|
|
14
14
|
schemaToJsonSchema
|
|
@@ -16,10 +16,10 @@ import {
|
|
|
16
16
|
import "./chunk-5ULLIOVC.js";
|
|
17
17
|
import "./chunk-HOSJZMQS.js";
|
|
18
18
|
import "./chunk-4BKXL7SM.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-NAQPP3GZ.js";
|
|
20
20
|
import {
|
|
21
21
|
VERSION
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-SMQHEJSH.js";
|
|
23
23
|
import "./chunk-5MYPIQ3Y.js";
|
|
24
24
|
import "./chunk-KHYD3WXE.js";
|
|
25
25
|
import "./chunk-KCEO2XJ4.js";
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
scanDirTree,
|
|
24
24
|
scanProject,
|
|
25
25
|
setupProxy
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-LXSUPLCK.js";
|
|
27
27
|
import {
|
|
28
28
|
buildReviewPrompt,
|
|
29
29
|
buildSecurityReviewPrompt
|
|
@@ -67,7 +67,7 @@ import {
|
|
|
67
67
|
truncateOutput,
|
|
68
68
|
undoStack,
|
|
69
69
|
updateMemoryApproval
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-GORPFFV4.js";
|
|
71
71
|
import "./chunk-K3CF65QH.js";
|
|
72
72
|
import "./chunk-UUSRWSSX.js";
|
|
73
73
|
import "./chunk-CKH4KQ4E.js";
|
|
@@ -85,7 +85,7 @@ import {
|
|
|
85
85
|
buildDoctorReport,
|
|
86
86
|
formatDoctorReport,
|
|
87
87
|
loadContextFiles
|
|
88
|
-
} from "./chunk-
|
|
88
|
+
} from "./chunk-3AIR7N5M.js";
|
|
89
89
|
import {
|
|
90
90
|
ProviderRegistry
|
|
91
91
|
} from "./chunk-QYQI7ZWK.js";
|
|
@@ -103,7 +103,7 @@ import {
|
|
|
103
103
|
runTool,
|
|
104
104
|
setPluginEnabled,
|
|
105
105
|
trustPlugin
|
|
106
|
-
} from "./chunk-
|
|
106
|
+
} from "./chunk-2LLQOMMW.js";
|
|
107
107
|
import {
|
|
108
108
|
CONTENT_ONLY_STREAM_REMINDER,
|
|
109
109
|
TEE_FINAL_USER_NUDGE,
|
|
@@ -122,7 +122,7 @@ import {
|
|
|
122
122
|
} from "./chunk-O3XSFPYH.js";
|
|
123
123
|
import {
|
|
124
124
|
ConfigManager
|
|
125
|
-
} from "./chunk-
|
|
125
|
+
} from "./chunk-IV6GCDVR.js";
|
|
126
126
|
import "./chunk-5ULLIOVC.js";
|
|
127
127
|
import {
|
|
128
128
|
formatGitContextForPrompt,
|
|
@@ -130,7 +130,7 @@ import {
|
|
|
130
130
|
getGitRoot
|
|
131
131
|
} from "./chunk-HOSJZMQS.js";
|
|
132
132
|
import "./chunk-4BKXL7SM.js";
|
|
133
|
-
import "./chunk-
|
|
133
|
+
import "./chunk-NAQPP3GZ.js";
|
|
134
134
|
import {
|
|
135
135
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
136
136
|
AUTHOR,
|
|
@@ -147,7 +147,7 @@ import {
|
|
|
147
147
|
SKILLS_DIR_NAME,
|
|
148
148
|
VERSION,
|
|
149
149
|
buildUserIdentityPrompt
|
|
150
|
-
} from "./chunk-
|
|
150
|
+
} from "./chunk-SMQHEJSH.js";
|
|
151
151
|
import "./chunk-5MYPIQ3Y.js";
|
|
152
152
|
import "./chunk-KHYD3WXE.js";
|
|
153
153
|
import {
|
|
@@ -1599,7 +1599,7 @@ async function handleSecurityReview(args, ctx) {
|
|
|
1599
1599
|
async function handleTest(args, ctx) {
|
|
1600
1600
|
ctx.send({ type: "info", message: "\u{1F9EA} Running tests..." });
|
|
1601
1601
|
try {
|
|
1602
|
-
const { executeTests } = await import("./run-tests-
|
|
1602
|
+
const { executeTests } = await import("./run-tests-KEI7IXTB.js");
|
|
1603
1603
|
const argStr = args.join(" ").trim();
|
|
1604
1604
|
let testArgs = {};
|
|
1605
1605
|
if (argStr) {
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
ToolRegistry,
|
|
4
4
|
googleSearchContext,
|
|
5
5
|
truncateOutput
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GORPFFV4.js";
|
|
7
7
|
import "./chunk-K3CF65QH.js";
|
|
8
8
|
import "./chunk-UUSRWSSX.js";
|
|
9
9
|
import "./chunk-CKH4KQ4E.js";
|
|
10
10
|
import "./chunk-BXP6YZ2P.js";
|
|
11
11
|
import {
|
|
12
12
|
runTool
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-2LLQOMMW.js";
|
|
14
14
|
import {
|
|
15
15
|
getDangerLevel,
|
|
16
16
|
runLeanAgentLoop
|
|
@@ -18,10 +18,10 @@ import {
|
|
|
18
18
|
import "./chunk-5ULLIOVC.js";
|
|
19
19
|
import "./chunk-HOSJZMQS.js";
|
|
20
20
|
import "./chunk-4BKXL7SM.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-NAQPP3GZ.js";
|
|
22
22
|
import {
|
|
23
23
|
SUBAGENT_ALLOWED_TOOLS
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-SMQHEJSH.js";
|
|
25
25
|
import "./chunk-5MYPIQ3Y.js";
|
|
26
26
|
import "./chunk-KHYD3WXE.js";
|
|
27
27
|
import "./chunk-KCEO2XJ4.js";
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
} from "./chunk-E44DTERW.js";
|
|
9
9
|
import {
|
|
10
10
|
ConfigManager
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IV6GCDVR.js";
|
|
12
12
|
import "./chunk-5ULLIOVC.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-SMQHEJSH.js";
|
|
14
14
|
import "./chunk-IW3Q7AE5.js";
|
|
15
15
|
|
|
16
16
|
// src/cli/usage.ts
|