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.
Files changed (169) hide show
  1. {yycode-0.3.2 → yycode-0.3.3}/PKG-INFO +1 -1
  2. {yycode-0.3.2 → yycode-0.3.3}/README.md +35 -3
  3. {yycode-0.3.2 → yycode-0.3.3}/pyproject.toml +1 -1
  4. {yycode-0.3.2 → yycode-0.3.3}/yycode.egg-info/PKG-INFO +1 -1
  5. {yycode-0.3.2 → yycode-0.3.3}/agent/__init__.py +0 -0
  6. {yycode-0.3.2 → yycode-0.3.3}/agent/acp/__init__.py +0 -0
  7. {yycode-0.3.2 → yycode-0.3.3}/agent/acp/approval_adapter.py +0 -0
  8. {yycode-0.3.2 → yycode-0.3.3}/agent/acp/content_adapter.py +0 -0
  9. {yycode-0.3.2 → yycode-0.3.3}/agent/acp/jsonrpc.py +0 -0
  10. {yycode-0.3.2 → yycode-0.3.3}/agent/acp/server.py +0 -0
  11. {yycode-0.3.2 → yycode-0.3.3}/agent/acp/session_manager.py +0 -0
  12. {yycode-0.3.2 → yycode-0.3.3}/agent/acp/update_adapter.py +0 -0
  13. {yycode-0.3.2 → yycode-0.3.3}/agent/app_paths.py +0 -0
  14. {yycode-0.3.2 → yycode-0.3.3}/agent/approval.py +0 -0
  15. {yycode-0.3.2 → yycode-0.3.3}/agent/cancellation.py +0 -0
  16. {yycode-0.3.2 → yycode-0.3.3}/agent/change_snapshot.py +0 -0
  17. {yycode-0.3.2 → yycode-0.3.3}/agent/context_compressor.py +0 -0
  18. {yycode-0.3.2 → yycode-0.3.3}/agent/graph.py +0 -0
  19. {yycode-0.3.2 → yycode-0.3.3}/agent/llm_retry.py +0 -0
  20. {yycode-0.3.2 → yycode-0.3.3}/agent/logger.py +0 -0
  21. {yycode-0.3.2 → yycode-0.3.3}/agent/lsp/__init__.py +0 -0
  22. {yycode-0.3.2 → yycode-0.3.3}/agent/lsp/client.py +0 -0
  23. {yycode-0.3.2 → yycode-0.3.3}/agent/lsp/manager.py +0 -0
  24. {yycode-0.3.2 → yycode-0.3.3}/agent/lsp/types.py +0 -0
  25. {yycode-0.3.2 → yycode-0.3.3}/agent/message_context_manager.py +0 -0
  26. {yycode-0.3.2 → yycode-0.3.3}/agent/message_format.py +0 -0
  27. {yycode-0.3.2 → yycode-0.3.3}/agent/nodes/llm_node.py +0 -0
  28. {yycode-0.3.2 → yycode-0.3.3}/agent/nodes/state.py +0 -0
  29. {yycode-0.3.2 → yycode-0.3.3}/agent/nodes/task_guard_node.py +0 -0
  30. {yycode-0.3.2 → yycode-0.3.3}/agent/nodes/tools_node.py +0 -0
  31. {yycode-0.3.2 → yycode-0.3.3}/agent/plan_snapshot.py +0 -0
  32. {yycode-0.3.2 → yycode-0.3.3}/agent/providers/__init__.py +0 -0
  33. {yycode-0.3.2 → yycode-0.3.3}/agent/providers/anthropic_provider.py +0 -0
  34. {yycode-0.3.2 → yycode-0.3.3}/agent/providers/base.py +0 -0
  35. {yycode-0.3.2 → yycode-0.3.3}/agent/providers/openai_provider.py +0 -0
  36. {yycode-0.3.2 → yycode-0.3.3}/agent/providers/text_tool_calls.py +0 -0
  37. {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/approval_service.py +0 -0
  38. {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/context.py +0 -0
  39. {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/tool_events.py +0 -0
  40. {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/tool_executor.py +0 -0
  41. {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/tool_output.py +0 -0
  42. {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/tool_registry.py +0 -0
  43. {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/tool_scheduler.py +0 -0
  44. {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/workflow_guard.py +0 -0
  45. {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/workspace.py +0 -0
  46. {yycode-0.3.2 → yycode-0.3.3}/agent/runtime/workspace_tools.py +0 -0
  47. {yycode-0.3.2 → yycode-0.3.3}/agent/session.py +0 -0
  48. {yycode-0.3.2 → yycode-0.3.3}/agent/session_replay.py +0 -0
  49. {yycode-0.3.2 → yycode-0.3.3}/agent/session_store.py +0 -0
  50. {yycode-0.3.2 → yycode-0.3.3}/agent/skills.py +0 -0
  51. {yycode-0.3.2 → yycode-0.3.3}/agent/streaming.py +0 -0
  52. {yycode-0.3.2 → yycode-0.3.3}/agent/subagent.py +0 -0
  53. {yycode-0.3.2 → yycode-0.3.3}/agent/task_memory.py +0 -0
  54. {yycode-0.3.2 → yycode-0.3.3}/agent/todo_manager.py +0 -0
  55. {yycode-0.3.2 → yycode-0.3.3}/agent/tool_retry.py +0 -0
  56. {yycode-0.3.2 → yycode-0.3.3}/agent/tui/__init__.py +0 -0
  57. {yycode-0.3.2 → yycode-0.3.3}/agent/tui/app.py +0 -0
  58. {yycode-0.3.2 → yycode-0.3.3}/agent/tui/approval.py +0 -0
  59. {yycode-0.3.2 → yycode-0.3.3}/agent/tui/commands/__init__.py +0 -0
  60. {yycode-0.3.2 → yycode-0.3.3}/agent/tui/commands/base.py +0 -0
  61. {yycode-0.3.2 → yycode-0.3.3}/agent/tui/commands/clear.py +0 -0
  62. {yycode-0.3.2 → yycode-0.3.3}/agent/tui/commands/help.py +0 -0
  63. {yycode-0.3.2 → yycode-0.3.3}/agent/tui/commands/registry.py +0 -0
  64. {yycode-0.3.2 → yycode-0.3.3}/agent/tui/help_content.py +0 -0
  65. {yycode-0.3.2 → yycode-0.3.3}/agent/tui/renderers.py +0 -0
  66. {yycode-0.3.2 → yycode-0.3.3}/agent/tui/runner.py +0 -0
  67. {yycode-0.3.2 → yycode-0.3.3}/agent/tui/state.py +0 -0
  68. {yycode-0.3.2 → yycode-0.3.3}/main.py +0 -0
  69. {yycode-0.3.2 → yycode-0.3.3}/setup.cfg +0 -0
  70. {yycode-0.3.2 → yycode-0.3.3}/skills/code_review.md +0 -0
  71. {yycode-0.3.2 → yycode-0.3.3}/skills/code_workflow.md +0 -0
  72. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/SKILL.md +0 -0
  73. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/agents/openai.yaml +0 -0
  74. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-erd.drawio +0 -0
  75. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-layered-cn.drawio +0 -0
  76. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-layered-cn.png +0 -0
  77. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-layered.drawio +0 -0
  78. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-layered.png +0 -0
  79. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-ml.drawio +0 -0
  80. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-ring-cn.drawio +0 -0
  81. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-ring-cn.png +0 -0
  82. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-ring.drawio +0 -0
  83. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-ring.png +0 -0
  84. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-sequence.drawio +0 -0
  85. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-star-cn.drawio +0 -0
  86. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-star-cn.png +0 -0
  87. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-star.drawio +0 -0
  88. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-star.png +0 -0
  89. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/demo-uml-class.drawio +0 -0
  90. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/microservices-example.drawio +0 -0
  91. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/microservices-example.png +0 -0
  92. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/workflow-cn.drawio +0 -0
  93. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/workflow-cn.png +0 -0
  94. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/workflow.drawio +0 -0
  95. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/assets/workflow.png +0 -0
  96. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/docs/index.html +0 -0
  97. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/docs/zh.html +0 -0
  98. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/references/style-extraction.md +0 -0
  99. {yycode-0.3.2 → yycode-0.3.3}/skills/drawio/styles/schema.json +0 -0
  100. {yycode-0.3.2 → yycode-0.3.3}/skills/plan.md +0 -0
  101. {yycode-0.3.2 → yycode-0.3.3}/skills/ppt/SKILL.md +0 -0
  102. {yycode-0.3.2 → yycode-0.3.3}/tests/test_acp.py +0 -0
  103. {yycode-0.3.2 → yycode-0.3.3}/tests/test_anthropic_provider.py +0 -0
  104. {yycode-0.3.2 → yycode-0.3.3}/tests/test_apply_patch_tool.py +0 -0
  105. {yycode-0.3.2 → yycode-0.3.3}/tests/test_code_navigation_tools.py +0 -0
  106. {yycode-0.3.2 → yycode-0.3.3}/tests/test_compatibility_primitives.py +0 -0
  107. {yycode-0.3.2 → yycode-0.3.3}/tests/test_grep_tool.py +0 -0
  108. {yycode-0.3.2 → yycode-0.3.3}/tests/test_llm_retry.py +0 -0
  109. {yycode-0.3.2 → yycode-0.3.3}/tests/test_lsp_tools.py +0 -0
  110. {yycode-0.3.2 → yycode-0.3.3}/tests/test_main_input.py +0 -0
  111. {yycode-0.3.2 → yycode-0.3.3}/tests/test_message_context_manager.py +0 -0
  112. {yycode-0.3.2 → yycode-0.3.3}/tests/test_message_format.py +0 -0
  113. {yycode-0.3.2 → yycode-0.3.3}/tests/test_openai_provider_reasoning.py +0 -0
  114. {yycode-0.3.2 → yycode-0.3.3}/tests/test_safety.py +0 -0
  115. {yycode-0.3.2 → yycode-0.3.3}/tests/test_session_store.py +0 -0
  116. {yycode-0.3.2 → yycode-0.3.3}/tests/test_skills.py +0 -0
  117. {yycode-0.3.2 → yycode-0.3.3}/tests/test_streaming.py +0 -0
  118. {yycode-0.3.2 → yycode-0.3.3}/tests/test_streaming_events.py +0 -0
  119. {yycode-0.3.2 → yycode-0.3.3}/tests/test_subagent.py +0 -0
  120. {yycode-0.3.2 → yycode-0.3.3}/tests/test_task_guard.py +0 -0
  121. {yycode-0.3.2 → yycode-0.3.3}/tests/test_task_memory.py +0 -0
  122. {yycode-0.3.2 → yycode-0.3.3}/tests/test_task_state.py +0 -0
  123. {yycode-0.3.2 → yycode-0.3.3}/tests/test_text_tool_calls.py +0 -0
  124. {yycode-0.3.2 → yycode-0.3.3}/tests/test_token_counting.py +0 -0
  125. {yycode-0.3.2 → yycode-0.3.3}/tests/test_tool_concurrency.py +0 -0
  126. {yycode-0.3.2 → yycode-0.3.3}/tests/test_tool_metadata.py +0 -0
  127. {yycode-0.3.2 → yycode-0.3.3}/tests/test_tui_approval.py +0 -0
  128. {yycode-0.3.2 → yycode-0.3.3}/tests/test_tui_commands.py +0 -0
  129. {yycode-0.3.2 → yycode-0.3.3}/tests/test_tui_runner.py +0 -0
  130. {yycode-0.3.2 → yycode-0.3.3}/tests/test_tui_state.py +0 -0
  131. {yycode-0.3.2 → yycode-0.3.3}/tests/test_verify_tool.py +0 -0
  132. {yycode-0.3.2 → yycode-0.3.3}/tests/test_web_search_tool.py +0 -0
  133. {yycode-0.3.2 → yycode-0.3.3}/tests/test_workspace_tools.py +0 -0
  134. {yycode-0.3.2 → yycode-0.3.3}/tests/test_write_tools_diff.py +0 -0
  135. {yycode-0.3.2 → yycode-0.3.3}/tools/__init__.py +0 -0
  136. {yycode-0.3.2 → yycode-0.3.3}/tools/apply_patch.py +0 -0
  137. {yycode-0.3.2 → yycode-0.3.3}/tools/bash.py +0 -0
  138. {yycode-0.3.2 → yycode-0.3.3}/tools/diff_utils.py +0 -0
  139. {yycode-0.3.2 → yycode-0.3.3}/tools/edit_file.py +0 -0
  140. {yycode-0.3.2 → yycode-0.3.3}/tools/git_diff.py +0 -0
  141. {yycode-0.3.2 → yycode-0.3.3}/tools/git_show.py +0 -0
  142. {yycode-0.3.2 → yycode-0.3.3}/tools/grep.py +0 -0
  143. {yycode-0.3.2 → yycode-0.3.3}/tools/list_files.py +0 -0
  144. {yycode-0.3.2 → yycode-0.3.3}/tools/list_skills.py +0 -0
  145. {yycode-0.3.2 → yycode-0.3.3}/tools/load_skill.py +0 -0
  146. {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_definition.py +0 -0
  147. {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_diagnostics.py +0 -0
  148. {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_document_symbols.py +0 -0
  149. {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_hover.py +0 -0
  150. {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_references.py +0 -0
  151. {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_utils.py +0 -0
  152. {yycode-0.3.2 → yycode-0.3.3}/tools/lsp_workspace_symbols.py +0 -0
  153. {yycode-0.3.2 → yycode-0.3.3}/tools/read_file.py +0 -0
  154. {yycode-0.3.2 → yycode-0.3.3}/tools/read_many_files.py +0 -0
  155. {yycode-0.3.2 → yycode-0.3.3}/tools/safety.py +0 -0
  156. {yycode-0.3.2 → yycode-0.3.3}/tools/subagent.py +0 -0
  157. {yycode-0.3.2 → yycode-0.3.3}/tools/todo.py +0 -0
  158. {yycode-0.3.2 → yycode-0.3.3}/tools/verify.py +0 -0
  159. {yycode-0.3.2 → yycode-0.3.3}/tools/web_search.py +0 -0
  160. {yycode-0.3.2 → yycode-0.3.3}/tools/workspace.py +0 -0
  161. {yycode-0.3.2 → yycode-0.3.3}/tools/workspace_state.py +0 -0
  162. {yycode-0.3.2 → yycode-0.3.3}/tools/write_file.py +0 -0
  163. {yycode-0.3.2 → yycode-0.3.3}/utils/__init__.py +0 -0
  164. {yycode-0.3.2 → yycode-0.3.3}/utils/retry.py +0 -0
  165. {yycode-0.3.2 → yycode-0.3.3}/yycode.egg-info/SOURCES.txt +0 -0
  166. {yycode-0.3.2 → yycode-0.3.3}/yycode.egg-info/dependency_links.txt +0 -0
  167. {yycode-0.3.2 → yycode-0.3.3}/yycode.egg-info/entry_points.txt +0 -0
  168. {yycode-0.3.2 → yycode-0.3.3}/yycode.egg-info/requires.txt +0 -0
  169. {yycode-0.3.2 → yycode-0.3.3}/yycode.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yycode
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Terminal coding agent with TUI, plain input mode, tools, skills, and ACP support
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: anthropic>=0.40.0
@@ -34,10 +34,23 @@ uv --version
34
34
 
35
35
  ### 2. 安装 yycode 命令
36
36
 
37
- 如果只是使用 yycode,推荐直接用 `uv tool install` 安装命令:
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
- uv tool install git+https://github.com/on-my-yycode/yycode.git
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
- 如果是从 GitHub 分支安装且需要强制刷新:
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 风格时间线、工具活动摘要、审批弹窗和历史浏览
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "yycode"
3
- version = "0.3.2"
3
+ version = "0.3.3"
4
4
  description = "Terminal coding agent with TUI, plain input mode, tools, skills, and ACP support"
5
5
  requires-python = ">=3.10"
6
6
  dependencies = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yycode
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Terminal coding agent with TUI, plain input mode, tools, skills, and ACP support
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: anthropic>=0.40.0
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