yycode 0.3.2__tar.gz → 0.3.3__tar.gz
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.
- {yycode-0.3.2 → yycode-0.3.3}/PKG-INFO +1 -1
- {yycode-0.3.2 → yycode-0.3.3}/README.md +35 -3
- {yycode-0.3.2 → yycode-0.3.3}/pyproject.toml +1 -1
- {yycode-0.3.2 → yycode-0.3.3}/yycode.egg-info/PKG-INFO +1 -1
- {yycode-0.3.2 → yycode-0.3.3}/agent/__init__.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/acp/__init__.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/acp/approval_adapter.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/acp/content_adapter.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/acp/jsonrpc.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/acp/server.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/acp/session_manager.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/acp/update_adapter.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/app_paths.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/approval.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/cancellation.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/change_snapshot.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/context_compressor.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/graph.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/llm_retry.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/logger.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/lsp/__init__.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/lsp/client.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/lsp/manager.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/lsp/types.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/message_context_manager.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/message_format.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/nodes/llm_node.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/nodes/state.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/nodes/task_guard_node.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/nodes/tools_node.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/plan_snapshot.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/providers/__init__.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/providers/anthropic_provider.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/providers/base.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/providers/openai_provider.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/providers/text_tool_calls.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/approval_service.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/context.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/tool_events.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/tool_executor.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/tool_output.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/tool_registry.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/tool_scheduler.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/workflow_guard.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/workspace.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/workspace_tools.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/session.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/session_replay.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/session_store.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/skills.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/streaming.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/subagent.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/task_memory.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/todo_manager.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/tool_retry.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/tui/__init__.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/tui/app.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/tui/approval.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/tui/commands/__init__.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/tui/commands/base.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/tui/commands/clear.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/tui/commands/help.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/tui/commands/registry.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/tui/help_content.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/tui/renderers.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/tui/runner.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/agent/tui/state.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/main.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/setup.cfg +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/code_review.md +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/code_workflow.md +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/SKILL.md +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/agents/openai.yaml +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-erd.drawio +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-layered-cn.drawio +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-layered-cn.png +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-layered.drawio +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-layered.png +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-ml.drawio +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-ring-cn.drawio +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-ring-cn.png +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-ring.drawio +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-ring.png +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-sequence.drawio +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-star-cn.drawio +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-star-cn.png +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-star.drawio +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-star.png +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-uml-class.drawio +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/microservices-example.drawio +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/microservices-example.png +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/workflow-cn.drawio +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/workflow-cn.png +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/workflow.drawio +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/workflow.png +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/docs/index.html +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/docs/zh.html +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/references/style-extraction.md +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/styles/schema.json +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/plan.md +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/skills/ppt/SKILL.md +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_acp.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_anthropic_provider.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_apply_patch_tool.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_code_navigation_tools.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_compatibility_primitives.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_grep_tool.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_llm_retry.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_lsp_tools.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_main_input.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_message_context_manager.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_message_format.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_openai_provider_reasoning.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_safety.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_session_store.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_skills.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_streaming.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_streaming_events.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_subagent.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_task_guard.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_task_memory.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_task_state.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_text_tool_calls.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_token_counting.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_tool_concurrency.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_tool_metadata.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_tui_approval.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_tui_commands.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_tui_runner.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_tui_state.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_verify_tool.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_web_search_tool.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_workspace_tools.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tests/test_write_tools_diff.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/__init__.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/apply_patch.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/bash.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/diff_utils.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/edit_file.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/git_diff.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/git_show.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/grep.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/list_files.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/list_skills.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/load_skill.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_definition.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_diagnostics.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_document_symbols.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_hover.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_references.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_utils.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_workspace_symbols.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/read_file.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/read_many_files.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/safety.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/subagent.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/todo.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/verify.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/web_search.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/workspace.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/workspace_state.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/tools/write_file.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/utils/__init__.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/utils/retry.py +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/yycode.egg-info/SOURCES.txt +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/yycode.egg-info/dependency_links.txt +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/yycode.egg-info/entry_points.txt +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/yycode.egg-info/requires.txt +0 -0
- {yycode-0.3.2 → yycode-0.3.3}/yycode.egg-info/top_level.txt +0 -0
|
@@ -34,10 +34,23 @@ uv --version
|
|
|
34
34
|
|
|
35
35
|
### 2. 安装 yycode 命令
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
yycode 已发布到 PyPI:
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
https://pypi.org/project/yycode/
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
如果只是使用 yycode,推荐直接从 PyPI 安装命令:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
uv tool install yycode
|
|
47
|
+
yycode --help
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
也可以使用 pip 安装:
|
|
38
51
|
|
|
39
52
|
```bash
|
|
40
|
-
|
|
53
|
+
pip install yycode
|
|
41
54
|
yycode --help
|
|
42
55
|
```
|
|
43
56
|
|
|
@@ -56,7 +69,7 @@ yycode --acp
|
|
|
56
69
|
uv tool upgrade yycode
|
|
57
70
|
```
|
|
58
71
|
|
|
59
|
-
|
|
72
|
+
如果要安装 GitHub 分支上的预览版本,或者需要强制刷新本地工具环境:
|
|
60
73
|
|
|
61
74
|
```bash
|
|
62
75
|
uv tool install --force git+https://github.com/on-my-yycode/yycode.git
|
|
@@ -167,6 +180,23 @@ git add pyproject.toml uv.lock
|
|
|
167
180
|
git commit -m "Bump version to 0.4.0"
|
|
168
181
|
git tag v0.4.0
|
|
169
182
|
git push origin dev master --tags
|
|
183
|
+
|
|
184
|
+
# 构建并发布到 PyPI
|
|
185
|
+
uv build
|
|
186
|
+
uv publish --token <your-pypi-token>
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
仓库也提供 GitHub Actions 自动发布流程:`.github/workflows/publish-pypi.yml`。在 GitHub 仓库设置中添加 secret:
|
|
190
|
+
|
|
191
|
+
```text
|
|
192
|
+
PYPI_API_TOKEN=<your-pypi-token>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
之后每次提交到 `master` 都会自动执行:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
uv build
|
|
199
|
+
uv publish
|
|
170
200
|
```
|
|
171
201
|
|
|
172
202
|
用户升级:
|
|
@@ -181,6 +211,8 @@ uv tool upgrade yycode
|
|
|
181
211
|
uv tool install --force git+https://github.com/on-my-yycode/yycode.git
|
|
182
212
|
```
|
|
183
213
|
|
|
214
|
+
PyPI token 只应通过本地命令、CI secret 或凭据管理器使用,不要提交到仓库、文档或聊天记录中。如果 token 泄露,应立即在 PyPI 后台撤销并重新生成。
|
|
215
|
+
|
|
184
216
|
## 功能特性
|
|
185
217
|
|
|
186
218
|
- 🖥️ **TUI 终端界面** - 基于 Textual 的现代终端 UI,支持紧凑 Transcript 风格时间线、工具活动摘要、审批弹窗和历史浏览
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|