claxcode 0.1.1__py3-none-any.whl
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.
- claxcode/__init__.py +3 -0
- claxcode/api/__init__.py +1 -0
- claxcode/api/chat.py +51 -0
- claxcode/api/session.py +66 -0
- claxcode/api/subagents.py +82 -0
- claxcode/api/tools.py +38 -0
- claxcode/cli.py +1214 -0
- claxcode/cli_completion.py +174 -0
- claxcode/config.py +54 -0
- claxcode/core/__init__.py +1 -0
- claxcode/core/agent.py +327 -0
- claxcode/core/checkpoint.py +100 -0
- claxcode/core/context.py +114 -0
- claxcode/core/models.py +446 -0
- claxcode/extensions/__init__.py +1 -0
- claxcode/extensions/hooks.py +131 -0
- claxcode/extensions/mcp.py +13 -0
- claxcode/extensions/plugins.py +10 -0
- claxcode/extensions/skills.py +205 -0
- claxcode/main.py +55 -0
- claxcode/memory/__init__.py +23 -0
- claxcode/memory/auto_memory.py +68 -0
- claxcode/memory/long_term.py +196 -0
- claxcode/memory/project_context.py +20 -0
- claxcode/memory/project_memory.py +194 -0
- claxcode/memory/session_store.py +206 -0
- claxcode/models/__init__.py +1 -0
- claxcode/models/session.py +25 -0
- claxcode/models/subagent.py +25 -0
- claxcode/models/tool.py +24 -0
- claxcode/security/__init__.py +1 -0
- claxcode/security/audit.py +54 -0
- claxcode/security/permissions.py +29 -0
- claxcode/skills/bug-fix/SKILL.md +33 -0
- claxcode/skills/code-review/SKILL.md +35 -0
- claxcode/skills/python-refactor/SKILL.md +22 -0
- claxcode/skills/task-workflow/SKILL.md +38 -0
- claxcode/subagents/__init__.py +1 -0
- claxcode/subagents/base.py +108 -0
- claxcode/subagents/executor.py +16 -0
- claxcode/subagents/explore.py +25 -0
- claxcode/subagents/planner.py +25 -0
- claxcode/tools/__init__.py +14 -0
- claxcode/tools/admin.py +170 -0
- claxcode/tools/base.py +19 -0
- claxcode/tools/browser.py +499 -0
- claxcode/tools/code_intelligence.py +68 -0
- claxcode/tools/custom_example.py +76 -0
- claxcode/tools/execution.py +114 -0
- claxcode/tools/file_operations.py +287 -0
- claxcode/tools/memory_tool.py +29 -0
- claxcode/tools/registry.py +35 -0
- claxcode/tools/search.py +157 -0
- claxcode/tools/ssh.py +534 -0
- claxcode/tools/web.py +83 -0
- claxcode-0.1.1.dist-info/METADATA +359 -0
- claxcode-0.1.1.dist-info/RECORD +60 -0
- claxcode-0.1.1.dist-info/WHEEL +4 -0
- claxcode-0.1.1.dist-info/entry_points.txt +3 -0
- claxcode-0.1.1.dist-info/licenses/LICENSE +201 -0
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: claxcode
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: ClaxCode — An agentic coding assistant powered by FastAPI
|
|
5
|
+
License: MIT
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Requires-Python: >=3.11
|
|
8
|
+
Requires-Dist: aiosqlite>=0.20.0
|
|
9
|
+
Requires-Dist: fastapi>=0.115.0
|
|
10
|
+
Requires-Dist: httpx>=0.27.0
|
|
11
|
+
Requires-Dist: paramiko>=3.4.0
|
|
12
|
+
Requires-Dist: prompt-toolkit>=3.0.43
|
|
13
|
+
Requires-Dist: pydantic-settings>=2.6.0
|
|
14
|
+
Requires-Dist: pydantic>=2.9.0
|
|
15
|
+
Requires-Dist: python-dotenv>=1.0.1
|
|
16
|
+
Requires-Dist: python-multipart>=0.0.12
|
|
17
|
+
Requires-Dist: sqlalchemy[asyncio]>=2.0.36
|
|
18
|
+
Requires-Dist: uvicorn[standard]>=0.32.0
|
|
19
|
+
Provides-Extra: anthropic
|
|
20
|
+
Requires-Dist: anthropic>=0.39.0; extra == 'anthropic'
|
|
21
|
+
Provides-Extra: browser
|
|
22
|
+
Requires-Dist: playwright>=1.49.0; extra == 'browser'
|
|
23
|
+
Provides-Extra: dev
|
|
24
|
+
Requires-Dist: mypy>=1.13.0; extra == 'dev'
|
|
25
|
+
Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
|
|
26
|
+
Requires-Dist: pytest-httpx>=0.34.0; extra == 'dev'
|
|
27
|
+
Requires-Dist: pytest>=8.3.0; extra == 'dev'
|
|
28
|
+
Requires-Dist: ruff>=0.8.0; extra == 'dev'
|
|
29
|
+
Provides-Extra: openai
|
|
30
|
+
Requires-Dist: openai>=1.54.0; extra == 'openai'
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
|
|
33
|
+
# ClaxCode
|
|
34
|
+
|
|
35
|
+
> 开源、自托管的终端 AI 编程助手:接入你选择的模型,在终端中完成代码阅读、编辑、测试与调试。
|
|
36
|
+
|
|
37
|
+
ClaxCode is an open-source agentic coding assistant for the terminal, inspired by Claude Code. It supports OpenAI-compatible providers, Anthropic, Ollama and custom HTTP APIs, with local sessions, memories, file snapshots and audit logs.
|
|
38
|
+
|
|
39
|
+
当前版本:`0.1.1`。项目仍处于早期阶段,欢迎 Issue、反馈和 PR。
|
|
40
|
+
|
|
41
|
+
## 核心特性
|
|
42
|
+
|
|
43
|
+
- **Agentic 工作流**:理解上下文、流式生成、调用工具、验证结果,最多自主迭代 10 轮。
|
|
44
|
+
- **模型自由选择**:OpenAI、OpenAI 兼容服务、Anthropic、Ollama、自定义 HTTP API。
|
|
45
|
+
- **终端原生体验**:`@` 文件模糊补全、命令与参数补全、中文路径、历史建议、多行输入。
|
|
46
|
+
- **权限与回滚**:5 种权限模式、逐项审批、编辑前快照、回滚和审计日志。
|
|
47
|
+
- **分层记忆**:会话恢复、全局用户偏好、项目滚动摘要、项目/全局长期记忆。
|
|
48
|
+
- **可扩展**:Skills、Shell Hooks、子代理和自动发现工具。
|
|
49
|
+
- **双前端**:交互式 CLI + FastAPI SSE 服务,支持非交互式脚本调用。
|
|
50
|
+
- **200 个自动化测试**:测试不需要真实 LLM 密钥或公网。
|
|
51
|
+
|
|
52
|
+
## 安装
|
|
53
|
+
|
|
54
|
+
要求:**Python 3.11+**,支持 Windows、macOS 和 Linux。
|
|
55
|
+
|
|
56
|
+
### 从 PyPI 安装
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
python -m pip install claxcode
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 从源码安装
|
|
63
|
+
|
|
64
|
+
在源码目录中执行:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
python -m venv .venv
|
|
68
|
+
|
|
69
|
+
# Windows
|
|
70
|
+
.\.venv\Scripts\activate
|
|
71
|
+
|
|
72
|
+
# macOS / Linux
|
|
73
|
+
source .venv/bin/activate
|
|
74
|
+
|
|
75
|
+
python -m pip install -e ".[dev]"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
可选能力:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
python -m pip install "claxcode[anthropic]" # Anthropic SDK
|
|
82
|
+
python -m pip install "claxcode[browser]" # 浏览器工具
|
|
83
|
+
playwright install chromium # browser extra 安装后执行
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## 首次配置
|
|
87
|
+
|
|
88
|
+
直接运行根级初始化命令:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
claxcode-cli init
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
按提示输入模型提供商、模型名称、接口地址和 API Key。API Key 使用隐藏输入;已有配置会先要求确认,不会直接覆盖。
|
|
95
|
+
|
|
96
|
+
全局配置文件位置:
|
|
97
|
+
|
|
98
|
+
- Windows:`%USERPROFILE%\.claxcode\.env`
|
|
99
|
+
- macOS / Linux:`~/.claxcode/.env`
|
|
100
|
+
|
|
101
|
+
配置示例:
|
|
102
|
+
|
|
103
|
+
```env
|
|
104
|
+
LLM_PROVIDER=generic_openai
|
|
105
|
+
LLM_API_KEY=your-api-key
|
|
106
|
+
LLM_BASE_URL=https://your-endpoint/v1
|
|
107
|
+
LLM_MODEL=your-model
|
|
108
|
+
LLM_TEMPERATURE=0.2
|
|
109
|
+
LLM_MAX_TOKENS=4096
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
支持的 Provider:
|
|
113
|
+
|
|
114
|
+
| Provider | `LLM_PROVIDER` | 说明 |
|
|
115
|
+
|---|---|---|
|
|
116
|
+
| OpenAI | `openai` | OpenAI API |
|
|
117
|
+
| OpenAI 兼容 | `generic_openai` | DeepSeek、DashScope、vLLM、LM Studio 等兼容端点 |
|
|
118
|
+
| Anthropic | `anthropic` | 需要 `anthropic` extra |
|
|
119
|
+
| Ollama | `ollama` | 本地模型,可通过 `LLM_CUSTOM_CONFIG` 设置 Ollama 选项 |
|
|
120
|
+
| 自定义 HTTP | `custom_http` | 使用请求模板与响应解析器适配其他 API |
|
|
121
|
+
|
|
122
|
+
配置覆盖优先级:
|
|
123
|
+
|
|
124
|
+
```text
|
|
125
|
+
--env 指定文件 > 当前项目 .env > 用户全局 .env
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
修改配置后重启 CLI。进入交互界面后可用 `/config` 查看当前生效配置。
|
|
129
|
+
|
|
130
|
+
> 不要把真实 API Key 提交到 Git。项目 `.env` 和用户全局配置都已设计为本地配置。
|
|
131
|
+
|
|
132
|
+
## 开始使用
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# 在当前目录启动交互式助手
|
|
136
|
+
claxcode-cli
|
|
137
|
+
|
|
138
|
+
# 指定项目与权限模式
|
|
139
|
+
claxcode-cli --project /path/to/project --mode auto_safe
|
|
140
|
+
|
|
141
|
+
# 单发模式,适合脚本调用
|
|
142
|
+
claxcode-cli --print "总结一下这个项目的结构"
|
|
143
|
+
|
|
144
|
+
# 查看版本
|
|
145
|
+
claxcode-cli --version
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
交互示例:
|
|
149
|
+
|
|
150
|
+
```text
|
|
151
|
+
❯ 帮我重构 @claxcode/core/context.py,并补充类型标注
|
|
152
|
+
❯ 分析一下 @"docs/设计 说明.md"
|
|
153
|
+
❯ !git status
|
|
154
|
+
❯ #回答保持简洁,并优先给出可执行步骤
|
|
155
|
+
❯ /mode auto_safe
|
|
156
|
+
❯ /rollback list
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
输入规则:
|
|
160
|
+
|
|
161
|
+
- `@path`:引用项目内文本文件;支持模糊补全、中文路径和 `@"带 空格的路径"`。
|
|
162
|
+
- `!command`:直接执行 Shell;Ctrl+C 中止并返回输入提示。
|
|
163
|
+
- `#text`:保存一条全局自动记忆。
|
|
164
|
+
- Enter 提交,Alt+Enter 换行;Ctrl+C 清空非空输入,空输入时退出。
|
|
165
|
+
- `/` 补全内置命令、技能命令和常用参数。
|
|
166
|
+
|
|
167
|
+
## 权限与安全
|
|
168
|
+
|
|
169
|
+
| 模式 | 行为 |
|
|
170
|
+
|---|---|
|
|
171
|
+
| `ask`(默认) | 只读工具自动放行;写入和执行逐项询问 |
|
|
172
|
+
| `plan` | 只读规划,阻止写入和命令执行 |
|
|
173
|
+
| `auto_safe` | 允许读写和 Web,阻止命令执行 |
|
|
174
|
+
| `auto_edit` | 允许全部工具 |
|
|
175
|
+
| `yolo` | 完全无沙箱,谨慎使用 |
|
|
176
|
+
|
|
177
|
+
主 Agent 的写入工具会在执行前创建快照:
|
|
178
|
+
|
|
179
|
+
- `/rollback list`:查看快照。
|
|
180
|
+
- `/rollback [n]`:确认后回滚最近 n 个快照。
|
|
181
|
+
- `/audit [n]`:查看主 Agent 最近工具调用记录。
|
|
182
|
+
|
|
183
|
+
本地会话、记忆、快照和审计数据默认保存在 `.claxcode/` 或用户目录。**发送给模型的提示、代码和文件内容会离开本机并传输至对应模型服务商**,请根据项目敏感程度选择 Provider。
|
|
184
|
+
|
|
185
|
+
API 服务默认仅监听 `127.0.0.1`,当前没有身份认证。不要直接暴露到不可信网络;直接工具调用和 executor 子代理不经过主 Agent 的完整权限管线。
|
|
186
|
+
|
|
187
|
+
## 常用命令
|
|
188
|
+
|
|
189
|
+
| 命令 | 说明 |
|
|
190
|
+
|---|---|
|
|
191
|
+
| `/help` | 显示内置命令与技能命令 |
|
|
192
|
+
| `/version` | 查看版本号 |
|
|
193
|
+
| `/config` | 查看当前模型与运行配置 |
|
|
194
|
+
| `/mode [mode]` | 查看或切换权限模式 |
|
|
195
|
+
| `/clear` | 清除当前会话上下文 |
|
|
196
|
+
| `/project [list\|switch\|info]` | 项目信息、列表与完整切换 |
|
|
197
|
+
| `/memory` | 查看记忆总览 |
|
|
198
|
+
| `/memory list\|search\|learn\|forget` | 管理长期记忆和全局自动记忆 |
|
|
199
|
+
| `/compact` | 保存本次总结并融合更新项目滚动摘要 |
|
|
200
|
+
| `/init` | 初始化项目信息并生成 `CLAUDE.md` |
|
|
201
|
+
| `/skills [list\|reload\|create]` | 技能列表、热重载与创建 |
|
|
202
|
+
| `/tools` | 列出全部工具 |
|
|
203
|
+
| `/rollback [n\|list]` | 快照列表或回滚 |
|
|
204
|
+
| `/audit [n]` | 查看审计日志 |
|
|
205
|
+
| `/debug` | 切换调试输出 |
|
|
206
|
+
| `/exit` `/quit` | 退出 |
|
|
207
|
+
|
|
208
|
+
根级命令 `claxcode-cli init` 用于**全局模型配置**;交互命令 `/init` 用于**项目初始化**,两者用途不同。
|
|
209
|
+
|
|
210
|
+
## 分层记忆
|
|
211
|
+
|
|
212
|
+
| 层 | 存储 | 用途 |
|
|
213
|
+
|---|---|---|
|
|
214
|
+
| 会话消息 | SQLite | 每轮保存,CLI 启动时恢复项目最近会话 |
|
|
215
|
+
| 全局自动记忆 | `~/.claxcode/auto_memory.json` | 稳定的用户偏好和事实,下一轮即可生效 |
|
|
216
|
+
| 长期记忆 | SQLite | 保存项目或全局历史事件,按当前问题进行中文相关性检索 |
|
|
217
|
+
| 项目记忆 | SQLite + `CLAUDE.md` | 分别保存滚动项目状态与稳定项目约定 |
|
|
218
|
+
|
|
219
|
+
`/compact` 会分别生成本次总结和项目滚动摘要,并立即持久化清空后的会话。上下文过长时也会自动压缩早期消息。
|
|
220
|
+
|
|
221
|
+
## 工具与子代理
|
|
222
|
+
|
|
223
|
+
内置 **35 个工具**:
|
|
224
|
+
|
|
225
|
+
- 文件操作 ×7、搜索 ×3、执行 ×3。
|
|
226
|
+
- Web ×2、浏览器 ×9(可选)、SSH ×5。
|
|
227
|
+
- 代码智能 ×3,以及记忆、管理和示例工具。
|
|
228
|
+
|
|
229
|
+
子代理:
|
|
230
|
+
|
|
231
|
+
| 类型 | 权限 | 用途 |
|
|
232
|
+
|---|---|---|
|
|
233
|
+
| `explore` | 只读 | 代码库探索与答疑 |
|
|
234
|
+
| `planner` | 只读 | 方案设计与任务拆解 |
|
|
235
|
+
| `executor` | 全部工具 | 独立上下文执行实现 |
|
|
236
|
+
|
|
237
|
+
## Skills
|
|
238
|
+
|
|
239
|
+
一个 Skill 是包含 `SKILL.md` 的目录,可选 `tools.py` 注册专属工具。
|
|
240
|
+
|
|
241
|
+
加载顺序为内置 → 用户级 → 项目级,同名后者覆盖前者:
|
|
242
|
+
|
|
243
|
+
- 内置:`claxcode/skills/`
|
|
244
|
+
- 用户:`~/.claxcode/skills/`、`~/.agent/skills/`
|
|
245
|
+
- 项目:`.claxcode/skills/`、`.agent/skills/`、`skills/`
|
|
246
|
+
|
|
247
|
+
```text
|
|
248
|
+
/skills create my-skill
|
|
249
|
+
/skills reload
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Skill 的 `tools.py` 会通过 `exec()` 加载,不要加载不可信来源的 Skill。
|
|
253
|
+
|
|
254
|
+
## Shell Hooks
|
|
255
|
+
|
|
256
|
+
在 `~/.claxcode/hooks.json` 或项目 `.claxcode/hooks.json` 中配置:
|
|
257
|
+
|
|
258
|
+
```json
|
|
259
|
+
{
|
|
260
|
+
"PreToolUse": [
|
|
261
|
+
{"match": "run_shell", "command": "python scripts/guard.py"},
|
|
262
|
+
{"match": "write_file|edit_file", "command": "python scripts/check_branch.py"}
|
|
263
|
+
],
|
|
264
|
+
"PostToolUse": [
|
|
265
|
+
{"match": "write_file", "command": "python scripts/lint_changed.py"}
|
|
266
|
+
]
|
|
267
|
+
}
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
`match` 是工具名正则。Pre Hook 非零退出会阻止工具;超时或启动失败不会阻塞主流程。Hooks 本身是 Shell 命令,只使用可信配置。
|
|
271
|
+
|
|
272
|
+
## HTTP API
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
claxcode
|
|
276
|
+
# http://127.0.0.1:8000
|
|
277
|
+
GET /health -> ok
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
主要接口:
|
|
281
|
+
|
|
282
|
+
- `POST /sessions`、`GET /sessions`、`GET/DELETE /sessions/{id}`
|
|
283
|
+
- `POST /sessions/{id}/chat`:SSE 流式聊天
|
|
284
|
+
- `GET /tools`、`POST /tools/invoke`
|
|
285
|
+
- `POST /subagents`、`GET /subagents/{id}`、`POST /subagents/{id}/stream`
|
|
286
|
+
|
|
287
|
+
## 当前限制与计划
|
|
288
|
+
|
|
289
|
+
当前暂不支持:
|
|
290
|
+
|
|
291
|
+
- 图片/视觉输入。
|
|
292
|
+
- MCP 客户端。
|
|
293
|
+
- IDE 插件。
|
|
294
|
+
- `/resume` 会话列表选择器;CLI 目前自动恢复项目最近会话。
|
|
295
|
+
|
|
296
|
+
计划方向:MCP、任务清单工具、会话选择器和插件系统。欢迎围绕这些方向讨论与贡献。
|
|
297
|
+
|
|
298
|
+
## 开发与贡献
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
python -m pip install -e ".[dev]"
|
|
302
|
+
pytest
|
|
303
|
+
ruff check claxcode tests
|
|
304
|
+
mypy claxcode
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
贡献建议:
|
|
308
|
+
|
|
309
|
+
1. 先通过 Issue 描述问题或使用场景,再提交聚焦的小改动。
|
|
310
|
+
2. 新功能和缺陷修复应包含快速、无需真实 LLM 或公网的测试。
|
|
311
|
+
3. 遵循现有 async/await、类型标注和目录结构,不引入未声明依赖。
|
|
312
|
+
4. 修改命令或架构行为时同步更新 README 与 `AGENTS.md`。
|
|
313
|
+
5. 不提交 `.env`、`.claxcode/`、真实凭据或本机运行数据。
|
|
314
|
+
|
|
315
|
+
静态检查目前仍有历史存量告警;贡献代码至少不应新增告警。架构与扩展细节见 [AGENTS.md](AGENTS.md)。
|
|
316
|
+
|
|
317
|
+
### 发布到 PyPI
|
|
318
|
+
|
|
319
|
+
本地检查发布包:
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
python -m build
|
|
323
|
+
python -m twine check dist/*
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
仓库使用 `.github/workflows/publish.yml` 自动发布:推送 `v*` 标签,或在 GitHub Actions 中手动运行 **Publish to PyPI**。工作流会依次运行测试、构建和包检查,然后通过 OpenID Connect 发布,无需保存 PyPI Token。
|
|
327
|
+
|
|
328
|
+
发布前需要:
|
|
329
|
+
|
|
330
|
+
1. 更新 `pyproject.toml` 中的版本号并提交。
|
|
331
|
+
2. 在 PyPI 配置 Trusted Publisher:项目 `claxcode`、所有者 `lliiang`、仓库 `claxcode-cli`、工作流 `publish.yml`、环境 `pypi`。
|
|
332
|
+
3. 在 GitHub `Settings → Environments` 创建 `pypi` 环境。
|
|
333
|
+
4. 推送版本标签,例如 `git tag v0.2.0 && git push origin v0.2.0`。
|
|
334
|
+
|
|
335
|
+
## 常见问题
|
|
336
|
+
|
|
337
|
+
**Windows 提示 `claxcode-cli` 不是命令?**
|
|
338
|
+
|
|
339
|
+
确认 Python 的 `Scripts` 目录已加入 PATH,或使用:
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
python -m claxcode.cli
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
**终端出现乱码?**
|
|
346
|
+
|
|
347
|
+
CLI 会尝试启用 UTF-8。仍有问题时建议使用 Windows Terminal,或先执行 `chcp 65001`。
|
|
348
|
+
|
|
349
|
+
**如何使用有头浏览器?**
|
|
350
|
+
|
|
351
|
+
直接要求 Agent 使用有头浏览器,或在配置中设置 `BROWSER_HEADLESS=false`。
|
|
352
|
+
|
|
353
|
+
**如何中止耗时操作?**
|
|
354
|
+
|
|
355
|
+
输入或工具执行期间可使用 Ctrl+C;SSH 等长任务会轮询取消标记。
|
|
356
|
+
|
|
357
|
+
## License
|
|
358
|
+
|
|
359
|
+
MIT
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
claxcode/__init__.py,sha256=AItp_H801nPq-WrhOLCj8Pzy0n3pWumhIYN7WEd8xG4,90
|
|
2
|
+
claxcode/cli.py,sha256=SDe73fL297WYYlzJwPnzZO5LldzDcRQgGYHdZsdLkl4,49761
|
|
3
|
+
claxcode/cli_completion.py,sha256=IeCkxu2Y7nl27FHwdzGwlDBzZ6ALQ1bFJ70sxX3M7UM,6344
|
|
4
|
+
claxcode/config.py,sha256=y5qyto6mkzBiPZekUxM3E7bOzL1dMAM79L2j5_l7680,1402
|
|
5
|
+
claxcode/main.py,sha256=wRjuHGLP1lVo1kZ38kZc0leMB4F6ewpDS1-0AbEm63I,1341
|
|
6
|
+
claxcode/api/__init__.py,sha256=4r4HIuLEiTTnD4VEBvARSj7x6eQFcfE5_EHxTv8IPts,31
|
|
7
|
+
claxcode/api/chat.py,sha256=1ZuCCeChDt6cgJ2VkBb1k2ueElLpynjCOWSpzqsiPuY,1502
|
|
8
|
+
claxcode/api/session.py,sha256=2gZsZ3ahezG-74pBVGxmiJBLnzvlMZrK8zpmGycYil4,2137
|
|
9
|
+
claxcode/api/subagents.py,sha256=IoGpUPu_D3qO3mE4UYHCob6lBi4bXWcF4gCUVtjOW5A,2672
|
|
10
|
+
claxcode/api/tools.py,sha256=bDAvWjuic-2FiKCmnVNphCOYlK2rZ9fRfZYstD_2_v0,1163
|
|
11
|
+
claxcode/core/__init__.py,sha256=BCJ_Fr0526tPL0iZYyWl9dg-ssj2d7bF4u2ODC6S6uk,32
|
|
12
|
+
claxcode/core/agent.py,sha256=lIrD3NjFNkNNH3jswXfApLTRkFo3Yq_lfRYQkeKS63g,14012
|
|
13
|
+
claxcode/core/checkpoint.py,sha256=eqAgervUdUl4mnWEvFjjAmp9f0TMszL-Zv3ZhZcrLDU,4036
|
|
14
|
+
claxcode/core/context.py,sha256=AuQFnPiynFkbCYhdn8oO9JVZLwFahuFb3eOMYPTfJpQ,4517
|
|
15
|
+
claxcode/core/models.py,sha256=ahk2pZunxcaYByykq8RtVJKvVJot3jnjtSk01G5K_sM,16877
|
|
16
|
+
claxcode/extensions/__init__.py,sha256=-q3phaob8yc7Wt2BISwG5Fgu-8VlPB2joexyfyG27sA,37
|
|
17
|
+
claxcode/extensions/hooks.py,sha256=wL1tl0JJOQ6ww1BFYSww_ADsV6t1mBfxq73ajdQ-9Bk,4702
|
|
18
|
+
claxcode/extensions/mcp.py,sha256=qsa3kA9eCaCrjjDVW5qHY4iwEU_o7mOwdM8xez8IadI,310
|
|
19
|
+
claxcode/extensions/plugins.py,sha256=Wojh1qTfipdFNs2dDpn59exBv7xaF7WnmcoxCmqf_Vs,199
|
|
20
|
+
claxcode/extensions/skills.py,sha256=1ATfZJ-qmbeoTGkDR0Z0giyLFLXkDsg7L1wzrtaDcfk,8020
|
|
21
|
+
claxcode/memory/__init__.py,sha256=MRnl6tz00_maeLt-Iw4kXRaYCkOrdGWQKRE6yBSchWM,527
|
|
22
|
+
claxcode/memory/auto_memory.py,sha256=bgRWfXsu5dyA4QI-gBSuZ4z54_srOZD5kmaGYugOGFI,2379
|
|
23
|
+
claxcode/memory/long_term.py,sha256=IufnsYvGvBtbbL2vqDqYoW3SwjVuxH7vAlb8kzhxwBU,7628
|
|
24
|
+
claxcode/memory/project_context.py,sha256=ymAiWqTYAyDXBU8KYDzczD52BWyZaIBIiM6oMbXwSRk,558
|
|
25
|
+
claxcode/memory/project_memory.py,sha256=K454G0gaOjs1DieWTFt1IRK78Feh03ydmmpJ8ibFEGI,6048
|
|
26
|
+
claxcode/memory/session_store.py,sha256=neyNzKOtSzekSCNtRc7ycITaTYtKVWihKGYNKP7sN3o,7545
|
|
27
|
+
claxcode/models/__init__.py,sha256=0cVebl5SOSwu-y6zL39IqX0HiLuVUhKzRTqTH9bkTuk,36
|
|
28
|
+
claxcode/models/session.py,sha256=PD1UVFbX_Q1UEh_apy8JlfPZGWo0NPV-IePr8vGvWdY,632
|
|
29
|
+
claxcode/models/subagent.py,sha256=x01x_NDg-AweTLLouHQqc-yDo12G09wfcv_UNtpYnWQ,655
|
|
30
|
+
claxcode/models/tool.py,sha256=ONCThDLYMusCZCyZ9nTH5zMFCDX3qQ5zBtsfML4vwpA,414
|
|
31
|
+
claxcode/security/__init__.py,sha256=0KiVc_-KZE_2UEcsdOYAHsu44Zno5FpHG8MYVLj3e_I,45
|
|
32
|
+
claxcode/security/audit.py,sha256=6aas24ONlEj-ShMTJpuSj8gb1R0plkD9I7PjLgxYgps,1726
|
|
33
|
+
claxcode/security/permissions.py,sha256=NsLVxgDCeXx1lE4GPzGzopxrj9bzNvWMPWOix8GNPQ8,947
|
|
34
|
+
claxcode/skills/bug-fix/SKILL.md,sha256=yLQBJSKrXC6lPxUu5Awmjf_Cuy31PB4Yt8HQRejJklk,1319
|
|
35
|
+
claxcode/skills/code-review/SKILL.md,sha256=v8JvPLPcFEj4snyuac75pLE1R6kihep4VLksubMOJNc,1508
|
|
36
|
+
claxcode/skills/python-refactor/SKILL.md,sha256=GNlgTNG0KIsS7UrhJEU3wlkc5GGOMOCPahxKwxHrwqc,708
|
|
37
|
+
claxcode/skills/task-workflow/SKILL.md,sha256=QHRPRHA1KR9Zbdv6iBrOr4s6UxCmfITtelFPW12Xo7A,1624
|
|
38
|
+
claxcode/subagents/__init__.py,sha256=6mASm-pfZkWTdPS41MUH69nPiXhRBatTnOmYJ73qr1Q,36
|
|
39
|
+
claxcode/subagents/base.py,sha256=YpZrhH33wi5tQ_lkJsooU6crLxMbgSZkm1y3KzpWCaA,3985
|
|
40
|
+
claxcode/subagents/executor.py,sha256=F2rZpAsxr-GXJ5s0IPsDRYV2Ry8eAxsXTktm4SzcMn4,454
|
|
41
|
+
claxcode/subagents/explore.py,sha256=55e4DlCqoEneCrpSzoGfN6ksqPwzhlC8elFyGDrTr_4,581
|
|
42
|
+
claxcode/subagents/planner.py,sha256=BghA8sLgxxdvN77n8Ws-ofKngum6xBsx2CMdPdVsDZs,594
|
|
43
|
+
claxcode/tools/__init__.py,sha256=wBkBYm2wOGFM0yKYulBEq6stcX_ejYuPQ67iLU9P4J0,434
|
|
44
|
+
claxcode/tools/admin.py,sha256=YL1dJYkKNWSyrM0ZJdDnHWJZyqBeNZuXuK-GcFIb34A,5657
|
|
45
|
+
claxcode/tools/base.py,sha256=LQuHzG1e1h6_i0zePQjw-k_AOPfr5zfTN6CNgyILREA,445
|
|
46
|
+
claxcode/tools/browser.py,sha256=CqhLqRcuLGNHA0gmUjBMyNFlWtw61SaWYC_rSzcJmRc,18414
|
|
47
|
+
claxcode/tools/code_intelligence.py,sha256=MV7-F4T5MbCOYpwRIcRR0i8S9vHqyvITqB0iaPgCR4o,2198
|
|
48
|
+
claxcode/tools/custom_example.py,sha256=O4gExu92io5CfazsmzXGzCW6gUm81V2auVowCcgSAZE,2665
|
|
49
|
+
claxcode/tools/execution.py,sha256=kllMSAvL8DB_FlgVNymGKz6CjXn_3Yl-NPLl7IUsn9I,3675
|
|
50
|
+
claxcode/tools/file_operations.py,sha256=4a5aTyHGOmjNFvXgqkFohociNZLB1jVwz8A8BXWJJVM,10240
|
|
51
|
+
claxcode/tools/memory_tool.py,sha256=6iBfN1drbsYcUa56CZiRyvcVK-GbvKPReCY3FgOxSRY,1007
|
|
52
|
+
claxcode/tools/registry.py,sha256=kukX_zDgwNl4OiLAlo9aiVslKVf2OkX2KB27oQPZPKw,856
|
|
53
|
+
claxcode/tools/search.py,sha256=cY8fHVRqqTjcpBnitvCPIBFRbxVVAsTrrtHzGusYeSc,5147
|
|
54
|
+
claxcode/tools/ssh.py,sha256=QoTgjUlcj0mm_pVUrRKcE_tOwOWuj03mRkNBSj9AvGk,17627
|
|
55
|
+
claxcode/tools/web.py,sha256=v5Kw6MYq0si7HEhzmoUjOvqVwFn45u4HN446CKbhCD4,2718
|
|
56
|
+
claxcode-0.1.1.dist-info/METADATA,sha256=uKM1bEy4oi6wWHW8iM4YFX_s-4OnfNcaADqyZLnHXR4,11790
|
|
57
|
+
claxcode-0.1.1.dist-info/WHEEL,sha256=2iZrJkDIkeDh0k9SikKMqFuRP-ua6mb4Ir1AsER4BEw,87
|
|
58
|
+
claxcode-0.1.1.dist-info/entry_points.txt,sha256=5fSVQmpGM0AFcX__ImW5OBLd9x71NqRDpIO87mRkk30,80
|
|
59
|
+
claxcode-0.1.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
60
|
+
claxcode-0.1.1.dist-info/RECORD,,
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
36
|
+
Object form, made available under the License, as indicated by a
|
|
37
|
+
copyright notice that is included in or attached to the work
|
|
38
|
+
(an example is provided in the Appendix below).
|
|
39
|
+
|
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
41
|
+
form, that is based on (or derived from) the Work and for which the
|
|
42
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
43
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
44
|
+
of this License, Derivative Works shall not include works that remain
|
|
45
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
46
|
+
the Work and Derivative Works thereof.
|
|
47
|
+
|
|
48
|
+
"Contribution" shall mean any work of authorship, including
|
|
49
|
+
the original version of the Work and any modifications or additions
|
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
|
+
|
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
64
|
+
subsequently incorporated within the Work.
|
|
65
|
+
|
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
|
72
|
+
|
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
78
|
+
where such license applies only to those patent claims licensable
|
|
79
|
+
by such Contributor that are necessarily infringed by their
|
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
82
|
+
institute patent litigation against any entity (including a
|
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
85
|
+
or contributory patent infringement, then any patent licenses
|
|
86
|
+
granted to You under this License for that Work shall terminate
|
|
87
|
+
as of the date such litigation is filed.
|
|
88
|
+
|
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
91
|
+
modifications, and in Source or Object form, provided that You
|
|
92
|
+
meet the following conditions:
|
|
93
|
+
|
|
94
|
+
(a) You must give any other recipients of the Work or
|
|
95
|
+
Derivative Works a copy of this License; and
|
|
96
|
+
|
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
|
98
|
+
stating that You changed the files; and
|
|
99
|
+
|
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
|
102
|
+
attribution notices from the Source form of the Work,
|
|
103
|
+
excluding those notices that do not pertain to any part of
|
|
104
|
+
the Derivative Works; and
|
|
105
|
+
|
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
|
108
|
+
include a readable copy of the attribution notices contained
|
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
|
110
|
+
pertain to any part of the Derivative Works, in at least one
|
|
111
|
+
of the following places: within a NOTICE text file distributed
|
|
112
|
+
as part of the Derivative Works; within the Source form or
|
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
|
114
|
+
within a display generated by the Derivative Works, if and
|
|
115
|
+
wherever such third-party notices normally appear. The contents
|
|
116
|
+
of the NOTICE file are for informational purposes only and
|
|
117
|
+
do not modify the License. You may add Your own attribution
|
|
118
|
+
notices within Derivative Works that You distribute, alongside
|
|
119
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
120
|
+
that such additional attribution notices cannot be construed
|
|
121
|
+
as modifying the License.
|
|
122
|
+
|
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
|
124
|
+
may provide additional or different license terms and conditions
|
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
128
|
+
the conditions stated in this License.
|
|
129
|
+
|
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
133
|
+
this License, without any additional terms or conditions.
|
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
135
|
+
the terms of any separate license agreement you may have executed
|
|
136
|
+
with Licensor regarding such Contributions.
|
|
137
|
+
|
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
140
|
+
except as required for reasonable and customary use in describing the
|
|
141
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
142
|
+
|
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
|
152
|
+
|
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
|
158
|
+
incidental, or consequential damages of any character arising as a
|
|
159
|
+
result of this License or out of the use or inability to use the
|
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
162
|
+
other commercial damages or losses), even if such Contributor
|
|
163
|
+
has been advised of the possibility of such damages.
|
|
164
|
+
|
|
165
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
168
|
+
or other liability obligations and/or rights consistent with this
|
|
169
|
+
License. However, in accepting such obligations, You may act only
|
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
174
|
+
of your accepting any such warranty or additional liability.
|
|
175
|
+
|
|
176
|
+
END OF TERMS AND CONDITIONS
|
|
177
|
+
|
|
178
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
179
|
+
|
|
180
|
+
To apply the Apache License to your work, attach the following
|
|
181
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
182
|
+
replaced with your own identifying information. (Don't include
|
|
183
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
184
|
+
comment syntax for the file format. We also recommend that a
|
|
185
|
+
file or class name and description of purpose be included on the
|
|
186
|
+
same "printed page" as the copyright notice for easier
|
|
187
|
+
identification within third-party archives.
|
|
188
|
+
|
|
189
|
+
Copyright [yyyy] [name of copyright owner]
|
|
190
|
+
|
|
191
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
|
+
you may not use this file except in compliance with the License.
|
|
193
|
+
You may obtain a copy of the License at
|
|
194
|
+
|
|
195
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
196
|
+
|
|
197
|
+
Unless required by applicable law or agreed to in writing, software
|
|
198
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
199
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
200
|
+
See the License for the specific language governing permissions and
|
|
201
|
+
limitations under the License.
|