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.
Files changed (85) hide show
  1. package/README.md +13 -141
  2. package/dist/bin.js +12028 -0
  3. package/dist/bin.js.map +7 -0
  4. package/package.json +28 -18
  5. package/dist/agent.d.ts +0 -166
  6. package/dist/agent.js +0 -858
  7. package/dist/agent.js.map +0 -1
  8. package/dist/bash-runner.d.ts +0 -79
  9. package/dist/bash-runner.js +0 -464
  10. package/dist/bash-runner.js.map +0 -1
  11. package/dist/cancellation.d.ts +0 -36
  12. package/dist/cancellation.js +0 -123
  13. package/dist/cancellation.js.map +0 -1
  14. package/dist/cli.d.ts +0 -117
  15. package/dist/cli.js +0 -1307
  16. package/dist/cli.js.map +0 -1
  17. package/dist/client.d.ts +0 -21
  18. package/dist/client.js +0 -17
  19. package/dist/client.js.map +0 -1
  20. package/dist/commands.d.ts +0 -123
  21. package/dist/commands.js +0 -660
  22. package/dist/commands.js.map +0 -1
  23. package/dist/config.d.ts +0 -51
  24. package/dist/config.js +0 -183
  25. package/dist/config.js.map +0 -1
  26. package/dist/credentials.d.ts +0 -12
  27. package/dist/credentials.js +0 -102
  28. package/dist/credentials.js.map +0 -1
  29. package/dist/events.d.ts +0 -288
  30. package/dist/events.js +0 -838
  31. package/dist/events.js.map +0 -1
  32. package/dist/model-adapter.d.ts +0 -138
  33. package/dist/model-adapter.js +0 -244
  34. package/dist/model-adapter.js.map +0 -1
  35. package/dist/model-selection.d.ts +0 -67
  36. package/dist/model-selection.js +0 -148
  37. package/dist/model-selection.js.map +0 -1
  38. package/dist/model-stream.d.ts +0 -128
  39. package/dist/model-stream.js +0 -582
  40. package/dist/model-stream.js.map +0 -1
  41. package/dist/project-instructions.d.ts +0 -99
  42. package/dist/project-instructions.js +0 -348
  43. package/dist/project-instructions.js.map +0 -1
  44. package/dist/providers.d.ts +0 -9
  45. package/dist/providers.js +0 -26
  46. package/dist/providers.js.map +0 -1
  47. package/dist/routing.d.ts +0 -170
  48. package/dist/routing.js +0 -669
  49. package/dist/routing.js.map +0 -1
  50. package/dist/semantic-classifier.d.ts +0 -66
  51. package/dist/semantic-classifier.js +0 -86
  52. package/dist/semantic-classifier.js.map +0 -1
  53. package/dist/session.d.ts +0 -162
  54. package/dist/session.js +0 -871
  55. package/dist/session.js.map +0 -1
  56. package/dist/system-prompt.d.ts +0 -16
  57. package/dist/system-prompt.js +0 -42
  58. package/dist/system-prompt.js.map +0 -1
  59. package/dist/terminal/editor.d.ts +0 -161
  60. package/dist/terminal/editor.js +0 -1060
  61. package/dist/terminal/editor.js.map +0 -1
  62. package/dist/terminal/input.d.ts +0 -61
  63. package/dist/terminal/input.js +0 -276
  64. package/dist/terminal/input.js.map +0 -1
  65. package/dist/terminal/markdown.d.ts +0 -20
  66. package/dist/terminal/markdown.js +0 -621
  67. package/dist/terminal/markdown.js.map +0 -1
  68. package/dist/terminal/screen.d.ts +0 -66
  69. package/dist/terminal/screen.js +0 -624
  70. package/dist/terminal/screen.js.map +0 -1
  71. package/dist/terminal/theme.d.ts +0 -23
  72. package/dist/terminal/theme.js +0 -101
  73. package/dist/terminal/theme.js.map +0 -1
  74. package/dist/terminal/ui.d.ts +0 -287
  75. package/dist/terminal/ui.js +0 -1819
  76. package/dist/terminal/ui.js.map +0 -1
  77. package/dist/tools.d.ts +0 -95
  78. package/dist/tools.js +0 -444
  79. package/dist/tools.js.map +0 -1
  80. package/dist/ui-state.d.ts +0 -51
  81. package/dist/ui-state.js +0 -194
  82. package/dist/ui-state.js.map +0 -1
  83. package/dist/web.d.ts +0 -56
  84. package/dist/web.js +0 -247
  85. package/dist/web.js.map +0 -1
package/README.md CHANGED
@@ -1,153 +1,25 @@
1
- # laoHuangCode
1
+ # laohuang
2
2
 
3
- 一个最小的 coding agent,基于 TypeScript/Node.js、官方 `openai` npm SDK
4
- Chat Completions 原生工具调用。
3
+ A minimal coding-agent CLI for local software work.
5
4
 
6
- 当前提供四个工具:`read`、`write`、`edit`、`bash`。所有工具均直接执行,当前原型
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 --global laohuang
26
- laohuang
8
+ npm install -g laohuang
27
9
  ```
28
10
 
29
- 首次启动会在终端中依次选择 DeepSeek 或 OpenAI、隐藏输入 API key、选择模型,
30
- 不需要设置环境变量。配置完成后,进入任意项目目录直接运行 `laohuang`。
31
-
32
- 从源码运行:
11
+ ## Usage
33
12
 
34
13
  ```bash
35
- git clone https://github.com/hxr223/laoHuangCode.git
36
- cd laoHuangCode
37
- npm ci
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
- 完整规则见 [模型配置文档](docs/configuration.md)。
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
- MIT
24
+ See the repository README for development and architecture details:
25
+ https://github.com/hxr223/laoHuangCode#readme