laohuang 0.4.2 → 0.5.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.
- package/README.md +13 -141
- package/dist/bin.js +12028 -0
- package/dist/bin.js.map +7 -0
- package/package.json +28 -18
- package/dist/agent.d.ts +0 -166
- package/dist/agent.js +0 -858
- package/dist/agent.js.map +0 -1
- package/dist/bash-runner.d.ts +0 -79
- package/dist/bash-runner.js +0 -464
- package/dist/bash-runner.js.map +0 -1
- package/dist/cancellation.d.ts +0 -36
- package/dist/cancellation.js +0 -123
- package/dist/cancellation.js.map +0 -1
- package/dist/cli.d.ts +0 -117
- package/dist/cli.js +0 -1307
- package/dist/cli.js.map +0 -1
- package/dist/client.d.ts +0 -21
- package/dist/client.js +0 -17
- package/dist/client.js.map +0 -1
- package/dist/commands.d.ts +0 -123
- package/dist/commands.js +0 -660
- package/dist/commands.js.map +0 -1
- package/dist/config.d.ts +0 -51
- package/dist/config.js +0 -183
- package/dist/config.js.map +0 -1
- package/dist/credentials.d.ts +0 -12
- package/dist/credentials.js +0 -102
- package/dist/credentials.js.map +0 -1
- package/dist/events.d.ts +0 -288
- package/dist/events.js +0 -838
- package/dist/events.js.map +0 -1
- package/dist/model-adapter.d.ts +0 -138
- package/dist/model-adapter.js +0 -244
- package/dist/model-adapter.js.map +0 -1
- package/dist/model-selection.d.ts +0 -67
- package/dist/model-selection.js +0 -148
- package/dist/model-selection.js.map +0 -1
- package/dist/model-stream.d.ts +0 -128
- package/dist/model-stream.js +0 -582
- package/dist/model-stream.js.map +0 -1
- package/dist/project-instructions.d.ts +0 -99
- package/dist/project-instructions.js +0 -348
- package/dist/project-instructions.js.map +0 -1
- package/dist/providers.d.ts +0 -9
- package/dist/providers.js +0 -26
- package/dist/providers.js.map +0 -1
- package/dist/routing.d.ts +0 -170
- package/dist/routing.js +0 -669
- package/dist/routing.js.map +0 -1
- package/dist/semantic-classifier.d.ts +0 -66
- package/dist/semantic-classifier.js +0 -86
- package/dist/semantic-classifier.js.map +0 -1
- package/dist/session.d.ts +0 -162
- package/dist/session.js +0 -871
- package/dist/session.js.map +0 -1
- package/dist/system-prompt.d.ts +0 -16
- package/dist/system-prompt.js +0 -42
- package/dist/system-prompt.js.map +0 -1
- package/dist/terminal/editor.d.ts +0 -161
- package/dist/terminal/editor.js +0 -1060
- package/dist/terminal/editor.js.map +0 -1
- package/dist/terminal/input.d.ts +0 -61
- package/dist/terminal/input.js +0 -276
- package/dist/terminal/input.js.map +0 -1
- package/dist/terminal/markdown.d.ts +0 -20
- package/dist/terminal/markdown.js +0 -621
- package/dist/terminal/markdown.js.map +0 -1
- package/dist/terminal/screen.d.ts +0 -66
- package/dist/terminal/screen.js +0 -624
- package/dist/terminal/screen.js.map +0 -1
- package/dist/terminal/theme.d.ts +0 -23
- package/dist/terminal/theme.js +0 -101
- package/dist/terminal/theme.js.map +0 -1
- package/dist/terminal/ui.d.ts +0 -287
- package/dist/terminal/ui.js +0 -1819
- package/dist/terminal/ui.js.map +0 -1
- package/dist/tools.d.ts +0 -95
- package/dist/tools.js +0 -444
- package/dist/tools.js.map +0 -1
- package/dist/ui-state.d.ts +0 -51
- package/dist/ui-state.js +0 -194
- package/dist/ui-state.js.map +0 -1
- package/dist/web.d.ts +0 -56
- package/dist/web.js +0 -247
- package/dist/web.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,153 +1,25 @@
|
|
|
1
|
-
#
|
|
1
|
+
# laohuang
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
Chat Completions 原生工具调用。
|
|
3
|
+
A minimal coding-agent CLI for local software work.
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
暂不提供权限确认。
|
|
8
|
-
|
|
9
|
-
同一次模型响应中的只读工具与多个 Bash 调用默认并发执行。实时事件按工具实际完成
|
|
10
|
-
顺序发出,回传模型的 `tool` 消息保持原始调用顺序。只要一个批次包含 `write` 或
|
|
11
|
-
`edit`,Agent 会保守地串行执行整个批次,避免读写或多次修改之间出现竞态。
|
|
12
|
-
|
|
13
|
-
交互终端采用后台 AgentSession:模型回复和 Bash 的 stderr/状态会实时显示,stdout
|
|
14
|
-
会保留在工具结果中但默认不刷到终端,
|
|
15
|
-
Agent 运行时仍可继续输入。后续输入由事件路由器放入 pending/held 队列,并在安全点
|
|
16
|
-
成批交给模型;当前任务可以通过 `/cancel` 或运行中的 `Ctrl+C` 协作式取消。
|
|
17
|
-
连续重复的工具调用和 Token、耗时预算会触发安全保护;保护触发后
|
|
18
|
-
Agent 会禁用工具并尝试基于已有信息完成一次最终回答。
|
|
19
|
-
|
|
20
|
-
## 快速开始
|
|
21
|
-
|
|
22
|
-
需要 Node.js 18+。面向普通用户的安装方式:
|
|
5
|
+
## Install
|
|
23
6
|
|
|
24
7
|
```bash
|
|
25
|
-
npm install
|
|
26
|
-
laohuang
|
|
8
|
+
npm install -g laohuang
|
|
27
9
|
```
|
|
28
10
|
|
|
29
|
-
|
|
30
|
-
不需要设置环境变量。配置完成后,进入任意项目目录直接运行 `laohuang`。
|
|
31
|
-
|
|
32
|
-
从源码运行:
|
|
11
|
+
## Usage
|
|
33
12
|
|
|
34
13
|
```bash
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
npm run build
|
|
39
|
-
node dist/cli.js
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## 模型配置
|
|
43
|
-
|
|
44
|
-
首次运行时,终端会提供两个供应商:
|
|
45
|
-
|
|
46
|
-
- DeepSeek:内置 `deepseek-v4-flash` 和 `deepseek-v4-pro`。
|
|
47
|
-
- OpenAI:使用输入的 API key 动态读取账户可用模型,也可手动输入模型名。
|
|
48
|
-
|
|
49
|
-
API key 使用隐藏输入,保存在独立的
|
|
50
|
-
`~/.config/laohuang/credentials.json` 中。普通模型配置保存在同目录的
|
|
51
|
-
`config.json`;两个文件均使用 `0600` 权限,目录使用 `0700` 权限。
|
|
52
|
-
|
|
53
|
-
```text
|
|
54
|
-
/model 交互选择供应商和模型
|
|
55
|
-
/model current 查看当前模型
|
|
56
|
-
/model deepseek deepseek-v4-pro 直接切换模型
|
|
57
|
-
/model openai <model-name> 直接切换 OpenAI 模型
|
|
58
|
-
/login 交互选择供应商并登录
|
|
59
|
-
/login deepseek 输入或覆盖 DeepSeek API key
|
|
60
|
-
/logout openai 删除保存的 OpenAI 凭据
|
|
61
|
-
/cancel 取消当前运行任务
|
|
62
|
-
/queue 查看 pending/held/dead-letter 与估算 token
|
|
63
|
-
/queue resume 恢复取消后保留的消息
|
|
64
|
-
/queue clear 清空 pending/held/dead-letter
|
|
65
|
-
/clear 清空当前对话上下文
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
认证和模型选择相互独立:`/login`、`/logout` 管理凭据,`/model` 只切换模型。
|
|
69
|
-
如果请求返回 401,Agent 会提示对应的 `/login <provider>` 命令。旧的
|
|
70
|
-
`/apikey set`、`/apikey remove` 暂时保留为兼容别名。
|
|
71
|
-
|
|
72
|
-
常用配置命令:
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
laohuang config list
|
|
76
|
-
laohuang config use default
|
|
14
|
+
laohuang --help
|
|
15
|
+
laohuang --version
|
|
16
|
+
laohuang config set --provider deepseek --model deepseek-v4-flash
|
|
77
17
|
laohuang doctor
|
|
78
18
|
```
|
|
79
19
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
进入希望 Agent 操作的项目目录后执行:
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
laohuang
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
输入任务,使用 `/help` 查看命令,使用 `/exit` 或 `Ctrl+D` 退出。通过 `/model`
|
|
91
|
-
切换供应商或模型时会保留当前对话上下文。
|
|
92
|
-
|
|
93
|
-
交互终端使用简洁的上下边框标识输入区域,不显示常驻状态或快捷键底栏。输入 `/` 会
|
|
94
|
-
立即显示命令、说明和参数补全;`Tab`/`Enter` 可接受当前补全,`/model` 会按
|
|
95
|
-
“供应商 → 模型”分层补全。终端还支持多行
|
|
96
|
-
编辑和当前会话输入历史:
|
|
97
|
-
|
|
98
|
-
- `Enter`:发送任务。
|
|
99
|
-
- `Alt+Enter`:插入换行。
|
|
100
|
-
- `↑` / `↓`:浏览历史输入。
|
|
101
|
-
- Agent 运行中按 `Ctrl+C`:取消当前任务。
|
|
102
|
-
- Agent 空闲时按 `Ctrl+C`:清空输入;500ms 内再按一次:退出。
|
|
103
|
-
- `Ctrl+D`:退出。
|
|
104
|
-
|
|
105
|
-
模型文本和 Bash stderr/状态采用 append-only inline 流式展示,工具输出按 tool call 分组;
|
|
106
|
-
被取消或截断的半条模型回复会保留在屏幕上并标记“未加入上下文”。完整的逐轮事件仍可
|
|
107
|
-
通过 Web 日志面板查看。输出被重定向或由程序调用 CLI 时,会自动回退到稳定的纯文本
|
|
108
|
-
格式。
|
|
109
|
-
|
|
110
|
-
### 验证交互终端
|
|
111
|
-
|
|
112
|
-
1. 在真实 TTY 中运行 `laohuang`。
|
|
113
|
-
2. 发送第一个问题并等待回答完成。
|
|
114
|
-
3. 发送第二个问题;向上滚动确认第一个问题和回答仍保留且未被改写。
|
|
115
|
-
4. 输入 `/` 和 `/e`,确认候选只占可见行数,`Tab` 可接受 `/exit`,继续编辑会移除补全层。
|
|
116
|
-
5. 任务运行中按 `Ctrl+C` 取消;空闲且编辑器为空时按 `Ctrl+D` 退出。
|
|
117
|
-
|
|
118
|
-
当前版本不会在工具执行前请求确认。请只在你信任的项目和环境中运行。
|
|
119
|
-
|
|
120
|
-
### Web 日志面板
|
|
121
|
-
|
|
122
|
-
```bash
|
|
123
|
-
laohuang --web
|
|
124
|
-
laohuang --web --web-port 9000
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
面板默认位于 <http://127.0.0.1:8765>,展示模型轮次、工具调用和最终
|
|
128
|
-
回复。它只监听本机,数据只存在内存中,进程退出后清空。
|
|
129
|
-
|
|
130
|
-
## 开发与发布检查
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
npm ci
|
|
134
|
-
npm run build
|
|
135
|
-
npm test
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
`npm run build` 通过 `tsc` 把 `src/` 编译到 `dist/`;`npm test` 使用 Node 自带的
|
|
139
|
-
`node:test` 运行 `test/` 下的离线测试套件,不需要网络访问。发布流程见
|
|
140
|
-
[发布流程](docs/publishing.md) 和 [npm 分发说明](docs/npm-distribution.md)。
|
|
141
|
-
|
|
142
|
-
## 安全边界
|
|
143
|
-
|
|
144
|
-
文件工具会限制在启动目录内并阻止符号链接逃逸;API key 不通过环境变量传递给
|
|
145
|
-
Bash。但 `bash` **没有操作系统级沙箱**,执行后仍能访问项目外文件、网络和其他
|
|
146
|
-
系统资源。公开使用前请阅读 [安全模型](docs/security.md)。
|
|
147
|
-
|
|
148
|
-
架构说明见 [docs/architecture.md](docs/architecture.md);设计文档归档在
|
|
149
|
-
[docs/superpowers/specs/](docs/superpowers/specs/)。
|
|
150
|
-
|
|
151
|
-
## License
|
|
20
|
+
Run `laohuang` in a project directory to start an interactive session. The CLI
|
|
21
|
+
loads local project instructions, uses saved provider profiles, and keeps file
|
|
22
|
+
and shell tool execution rooted in the current project.
|
|
152
23
|
|
|
153
|
-
|
|
24
|
+
See the repository README for development and architecture details:
|
|
25
|
+
https://github.com/hxr223/laoHuangCode#readme
|