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.
Files changed (60) hide show
  1. claxcode/__init__.py +3 -0
  2. claxcode/api/__init__.py +1 -0
  3. claxcode/api/chat.py +51 -0
  4. claxcode/api/session.py +66 -0
  5. claxcode/api/subagents.py +82 -0
  6. claxcode/api/tools.py +38 -0
  7. claxcode/cli.py +1214 -0
  8. claxcode/cli_completion.py +174 -0
  9. claxcode/config.py +54 -0
  10. claxcode/core/__init__.py +1 -0
  11. claxcode/core/agent.py +327 -0
  12. claxcode/core/checkpoint.py +100 -0
  13. claxcode/core/context.py +114 -0
  14. claxcode/core/models.py +446 -0
  15. claxcode/extensions/__init__.py +1 -0
  16. claxcode/extensions/hooks.py +131 -0
  17. claxcode/extensions/mcp.py +13 -0
  18. claxcode/extensions/plugins.py +10 -0
  19. claxcode/extensions/skills.py +205 -0
  20. claxcode/main.py +55 -0
  21. claxcode/memory/__init__.py +23 -0
  22. claxcode/memory/auto_memory.py +68 -0
  23. claxcode/memory/long_term.py +196 -0
  24. claxcode/memory/project_context.py +20 -0
  25. claxcode/memory/project_memory.py +194 -0
  26. claxcode/memory/session_store.py +206 -0
  27. claxcode/models/__init__.py +1 -0
  28. claxcode/models/session.py +25 -0
  29. claxcode/models/subagent.py +25 -0
  30. claxcode/models/tool.py +24 -0
  31. claxcode/security/__init__.py +1 -0
  32. claxcode/security/audit.py +54 -0
  33. claxcode/security/permissions.py +29 -0
  34. claxcode/skills/bug-fix/SKILL.md +33 -0
  35. claxcode/skills/code-review/SKILL.md +35 -0
  36. claxcode/skills/python-refactor/SKILL.md +22 -0
  37. claxcode/skills/task-workflow/SKILL.md +38 -0
  38. claxcode/subagents/__init__.py +1 -0
  39. claxcode/subagents/base.py +108 -0
  40. claxcode/subagents/executor.py +16 -0
  41. claxcode/subagents/explore.py +25 -0
  42. claxcode/subagents/planner.py +25 -0
  43. claxcode/tools/__init__.py +14 -0
  44. claxcode/tools/admin.py +170 -0
  45. claxcode/tools/base.py +19 -0
  46. claxcode/tools/browser.py +499 -0
  47. claxcode/tools/code_intelligence.py +68 -0
  48. claxcode/tools/custom_example.py +76 -0
  49. claxcode/tools/execution.py +114 -0
  50. claxcode/tools/file_operations.py +287 -0
  51. claxcode/tools/memory_tool.py +29 -0
  52. claxcode/tools/registry.py +35 -0
  53. claxcode/tools/search.py +157 -0
  54. claxcode/tools/ssh.py +534 -0
  55. claxcode/tools/web.py +83 -0
  56. claxcode-0.1.1.dist-info/METADATA +359 -0
  57. claxcode-0.1.1.dist-info/RECORD +60 -0
  58. claxcode-0.1.1.dist-info/WHEEL +4 -0
  59. claxcode-0.1.1.dist-info/entry_points.txt +3 -0
  60. 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,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.33.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ claxcode = claxcode.main:run
3
+ claxcode-cli = claxcode.cli:main
@@ -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.