yycode 0.3.2__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 (131) hide show
  1. agent/__init__.py +33 -0
  2. agent/acp/__init__.py +2 -0
  3. agent/acp/approval_adapter.py +134 -0
  4. agent/acp/content_adapter.py +45 -0
  5. agent/acp/jsonrpc.py +92 -0
  6. agent/acp/server.py +197 -0
  7. agent/acp/session_manager.py +193 -0
  8. agent/acp/update_adapter.py +192 -0
  9. agent/app_paths.py +25 -0
  10. agent/approval.py +169 -0
  11. agent/cancellation.py +52 -0
  12. agent/change_snapshot.py +186 -0
  13. agent/context_compressor.py +116 -0
  14. agent/graph.py +137 -0
  15. agent/llm_retry.py +434 -0
  16. agent/logger.py +97 -0
  17. agent/lsp/__init__.py +13 -0
  18. agent/lsp/client.py +151 -0
  19. agent/lsp/manager.py +234 -0
  20. agent/lsp/types.py +119 -0
  21. agent/message_context_manager.py +322 -0
  22. agent/message_format.py +105 -0
  23. agent/nodes/llm_node.py +58 -0
  24. agent/nodes/state.py +12 -0
  25. agent/nodes/task_guard_node.py +50 -0
  26. agent/nodes/tools_node.py +70 -0
  27. agent/plan_snapshot.py +70 -0
  28. agent/providers/__init__.py +13 -0
  29. agent/providers/anthropic_provider.py +268 -0
  30. agent/providers/base.py +52 -0
  31. agent/providers/openai_provider.py +279 -0
  32. agent/providers/text_tool_calls.py +118 -0
  33. agent/runtime/approval_service.py +184 -0
  34. agent/runtime/context.py +43 -0
  35. agent/runtime/tool_events.py +368 -0
  36. agent/runtime/tool_executor.py +208 -0
  37. agent/runtime/tool_output.py +261 -0
  38. agent/runtime/tool_registry.py +91 -0
  39. agent/runtime/tool_scheduler.py +35 -0
  40. agent/runtime/workflow_guard.py +217 -0
  41. agent/runtime/workspace.py +5 -0
  42. agent/runtime/workspace_tools.py +22 -0
  43. agent/session.py +787 -0
  44. agent/session_replay.py +95 -0
  45. agent/session_store.py +186 -0
  46. agent/skills.py +254 -0
  47. agent/streaming.py +248 -0
  48. agent/subagent.py +634 -0
  49. agent/task_memory.py +340 -0
  50. agent/todo_manager.py +304 -0
  51. agent/tool_retry.py +106 -0
  52. agent/tui/__init__.py +14 -0
  53. agent/tui/app.py +1325 -0
  54. agent/tui/approval.py +53 -0
  55. agent/tui/commands/__init__.py +6 -0
  56. agent/tui/commands/base.py +48 -0
  57. agent/tui/commands/clear.py +37 -0
  58. agent/tui/commands/help.py +27 -0
  59. agent/tui/commands/registry.py +94 -0
  60. agent/tui/help_content.py +108 -0
  61. agent/tui/renderers.py +1961 -0
  62. agent/tui/runner.py +439 -0
  63. agent/tui/state.py +653 -0
  64. main.py +465 -0
  65. tools/__init__.py +50 -0
  66. tools/apply_patch.py +305 -0
  67. tools/bash.py +76 -0
  68. tools/diff_utils.py +139 -0
  69. tools/edit_file.py +40 -0
  70. tools/git_diff.py +72 -0
  71. tools/git_show.py +65 -0
  72. tools/grep.py +149 -0
  73. tools/list_files.py +90 -0
  74. tools/list_skills.py +24 -0
  75. tools/load_skill.py +30 -0
  76. tools/lsp_definition.py +27 -0
  77. tools/lsp_diagnostics.py +32 -0
  78. tools/lsp_document_symbols.py +23 -0
  79. tools/lsp_hover.py +29 -0
  80. tools/lsp_references.py +37 -0
  81. tools/lsp_utils.py +38 -0
  82. tools/lsp_workspace_symbols.py +23 -0
  83. tools/read_file.py +61 -0
  84. tools/read_many_files.py +50 -0
  85. tools/safety.py +50 -0
  86. tools/subagent.py +57 -0
  87. tools/todo.py +89 -0
  88. tools/verify.py +107 -0
  89. tools/web_search.py +250 -0
  90. tools/workspace.py +36 -0
  91. tools/workspace_state.py +60 -0
  92. tools/write_file.py +88 -0
  93. utils/__init__.py +5 -0
  94. utils/retry.py +13 -0
  95. yycode-0.3.2.data/data/skills/code_review.md +61 -0
  96. yycode-0.3.2.data/data/skills/code_workflow.md +404 -0
  97. yycode-0.3.2.data/data/skills/drawio/SKILL.md +636 -0
  98. yycode-0.3.2.data/data/skills/drawio/agents/openai.yaml +19 -0
  99. yycode-0.3.2.data/data/skills/drawio/assets/demo-erd.drawio +84 -0
  100. yycode-0.3.2.data/data/skills/drawio/assets/demo-layered-cn.drawio +91 -0
  101. yycode-0.3.2.data/data/skills/drawio/assets/demo-layered-cn.png +0 -0
  102. yycode-0.3.2.data/data/skills/drawio/assets/demo-layered.drawio +112 -0
  103. yycode-0.3.2.data/data/skills/drawio/assets/demo-layered.png +0 -0
  104. yycode-0.3.2.data/data/skills/drawio/assets/demo-ml.drawio +90 -0
  105. yycode-0.3.2.data/data/skills/drawio/assets/demo-ring-cn.drawio +68 -0
  106. yycode-0.3.2.data/data/skills/drawio/assets/demo-ring-cn.png +0 -0
  107. yycode-0.3.2.data/data/skills/drawio/assets/demo-ring.drawio +86 -0
  108. yycode-0.3.2.data/data/skills/drawio/assets/demo-ring.png +0 -0
  109. yycode-0.3.2.data/data/skills/drawio/assets/demo-sequence.drawio +116 -0
  110. yycode-0.3.2.data/data/skills/drawio/assets/demo-star-cn.drawio +66 -0
  111. yycode-0.3.2.data/data/skills/drawio/assets/demo-star-cn.png +0 -0
  112. yycode-0.3.2.data/data/skills/drawio/assets/demo-star.drawio +79 -0
  113. yycode-0.3.2.data/data/skills/drawio/assets/demo-star.png +0 -0
  114. yycode-0.3.2.data/data/skills/drawio/assets/demo-uml-class.drawio +64 -0
  115. yycode-0.3.2.data/data/skills/drawio/assets/microservices-example.drawio +173 -0
  116. yycode-0.3.2.data/data/skills/drawio/assets/microservices-example.png +0 -0
  117. yycode-0.3.2.data/data/skills/drawio/assets/workflow-cn.drawio +120 -0
  118. yycode-0.3.2.data/data/skills/drawio/assets/workflow-cn.png +0 -0
  119. yycode-0.3.2.data/data/skills/drawio/assets/workflow.drawio +120 -0
  120. yycode-0.3.2.data/data/skills/drawio/assets/workflow.png +0 -0
  121. yycode-0.3.2.data/data/skills/drawio/docs/index.html +469 -0
  122. yycode-0.3.2.data/data/skills/drawio/docs/zh.html +456 -0
  123. yycode-0.3.2.data/data/skills/drawio/references/style-extraction.md +254 -0
  124. yycode-0.3.2.data/data/skills/drawio/styles/schema.json +112 -0
  125. yycode-0.3.2.data/data/skills/plan.md +115 -0
  126. yycode-0.3.2.data/data/skills/ppt/SKILL.md +254 -0
  127. yycode-0.3.2.dist-info/METADATA +12 -0
  128. yycode-0.3.2.dist-info/RECORD +131 -0
  129. yycode-0.3.2.dist-info/WHEEL +5 -0
  130. yycode-0.3.2.dist-info/entry_points.txt +2 -0
  131. yycode-0.3.2.dist-info/top_level.txt +4 -0
@@ -0,0 +1,254 @@
1
+ ---
2
+ name: ppt
3
+ description: Use when the user asks to create, edit, outline, review, convert, or extract content from PowerPoint presentations. Prefer editable .pptx output, use optional local tools such as python-pptx, Marp, Pandoc, or LibreOffice when available, and provide graceful fallbacks when they are missing.
4
+ license: MIT
5
+ compatibility: Skill instructions work without extra software. Creating/editing .pptx requires python-pptx or another local generator; exporting to PDF/images requires LibreOffice, PowerPoint, or Marp/Pandoc depending on workflow.
6
+ platforms: [macos, linux, windows]
7
+ metadata: {"yoyoagent":{"emoji":"📊","category":"documents","requires_optional_bins":["libreoffice","soffice","marp","pandoc"],"requires_optional_python":["python-pptx"],"outputs":["pptx","pdf","png","markdown"]}}
8
+ ---
9
+
10
+ # PowerPoint / Presentation Skill
11
+
12
+ ## Overview
13
+
14
+ Use this skill for presentation work: planning slide decks, generating editable `.pptx` files, converting Markdown to slides, exporting presentations, reviewing slides, and extracting text from existing deck files.
15
+
16
+ The skill itself does **not** require local software to be installed. It is an instruction layer. Actual file generation or conversion depends on optional local tools. Always detect what is available first and choose the least surprising workflow.
17
+
18
+ ## When to Use
19
+
20
+ Use this skill when the user asks for:
21
+
22
+ - A PowerPoint, PPT, PPTX, keynote-style deck, or slide presentation.
23
+ - A presentation outline, speaker notes, or slide-by-slide storyboard.
24
+ - Converting Markdown or notes into slides.
25
+ - Editing or restructuring an existing `.pptx`.
26
+ - Extracting text, agenda, or talking points from an existing presentation.
27
+ - Exporting slides to PDF or images.
28
+
29
+ Do not use this skill when a simple prose answer, table, or diagram is enough.
30
+
31
+ ## Dependency Strategy
32
+
33
+ Before creating or converting files, check which local capabilities exist. Do not assume they are installed.
34
+
35
+ ### Optional tools
36
+
37
+ | Capability | Preferred local option | Notes |
38
+ |---|---|---|
39
+ | Create/edit `.pptx` | Python package `python-pptx` | Best default for editable decks. |
40
+ | Markdown to slides | Marp CLI `marp` | Good for fast Markdown-first decks; `.pptx` export may require browser dependencies depending on setup. |
41
+ | Markdown/doc conversion | Pandoc `pandoc` | Useful for Markdown/HTML/PDF conversion; PPTX output support depends on installed Pandoc. |
42
+ | Export `.pptx` to PDF | LibreOffice `libreoffice` / `soffice` | Good cross-platform CLI fallback, but rendering may differ from PowerPoint. |
43
+ | Export via native Office | PowerPoint / Keynote | Usually manual or platform-specific automation; ask before using GUI automation. |
44
+
45
+ ### Suggested detection commands
46
+
47
+ Use safe read-only checks before relying on a tool:
48
+
49
+ ```bash
50
+ python - <<'PY'
51
+ try:
52
+ import pptx
53
+ print('python-pptx: available')
54
+ except Exception as exc:
55
+ print(f'python-pptx: missing ({exc})')
56
+ PY
57
+
58
+ python -m pip show python-pptx
59
+ marp --version
60
+ pandoc --version
61
+ libreoffice --version
62
+ soffice --version
63
+ ```
64
+
65
+ If a dependency is missing, do not fail immediately. Offer one of these fallbacks:
66
+
67
+ 1. Produce a slide outline in Markdown.
68
+ 2. Generate a `.md` Marp-compatible deck if Marp is unavailable but the user can render later.
69
+ 3. Provide a Python script that can generate `.pptx` once `python-pptx` is installed.
70
+ 4. Ask permission to install the missing dependency if installation is appropriate in the environment.
71
+
72
+ ## Recommended Workflows
73
+
74
+ ### 1. Presentation planning only
75
+
76
+ Use this when the user asks for structure, content, or messaging but not a file.
77
+
78
+ 1. Clarify audience, goal, duration, language, tone, and desired number of slides if missing.
79
+ 2. Produce a slide-by-slide outline:
80
+ - slide title
81
+ - key message
82
+ - bullets
83
+ - visual suggestion
84
+ - speaker notes if useful
85
+ 3. Keep each slide focused on one idea.
86
+ 4. Ask whether to turn the outline into a file.
87
+
88
+ ### 2. Create an editable `.pptx`
89
+
90
+ Prefer this for explicit PowerPoint/PPTX output.
91
+
92
+ 1. Check for `python-pptx`.
93
+ 2. If available, create a small generation script and run it to write the `.pptx`.
94
+ 3. Use a clean default theme:
95
+ - 16:9 widescreen
96
+ - title slide
97
+ - section/title-and-content slides
98
+ - readable font sizes
99
+ - consistent accent color
100
+ - speaker notes when requested, if supported by the chosen library/workflow
101
+ 4. Save generated scripts beside the output only if useful to the user; otherwise keep temporary scripts in a temp path.
102
+ 5. If `python-pptx` is missing, ask whether to install it or generate Markdown/script fallback.
103
+
104
+ Minimal Python pattern:
105
+
106
+ ```python
107
+ from pptx import Presentation
108
+ from pptx.util import Inches, Pt
109
+
110
+ prs = Presentation()
111
+ prs.slide_width = Inches(13.333)
112
+ prs.slide_height = Inches(7.5)
113
+
114
+ slide = prs.slides.add_slide(prs.slide_layouts[0])
115
+ slide.shapes.title.text = "Deck Title"
116
+ slide.placeholders[1].text = "Subtitle"
117
+
118
+ slide = prs.slides.add_slide(prs.slide_layouts[1])
119
+ slide.shapes.title.text = "Slide Title"
120
+ body = slide.placeholders[1].text_frame
121
+ body.text = "Main point"
122
+ for bullet in ["Supporting point", "Evidence", "Next step"]:
123
+ p = body.add_paragraph()
124
+ p.text = bullet
125
+ p.level = 1
126
+ p.font.size = Pt(24)
127
+
128
+ prs.save("output.pptx")
129
+ ```
130
+
131
+ ### 3. Markdown-first deck
132
+
133
+ Use this when the user wants fast iteration or version-control-friendly slides.
134
+
135
+ 1. Generate a `slides.md` file using Marp-compatible Markdown.
136
+ 2. Include frontmatter only if appropriate:
137
+
138
+ ```markdown
139
+ ---
140
+ marp: true
141
+ theme: default
142
+ paginate: true
143
+ ---
144
+
145
+ # Title
146
+
147
+ Subtitle
148
+
149
+ ---
150
+
151
+ ## Slide Title
152
+
153
+ - Point A
154
+ - Point B
155
+ ```
156
+
157
+ 3. If `marp` is installed, export with:
158
+
159
+ ```bash
160
+ marp slides.md --pptx
161
+ marp slides.md --pdf
162
+ ```
163
+
164
+ 4. If Marp is not installed, leave the Markdown deck and explain how to render it later.
165
+
166
+ ### 4. Convert or export an existing deck
167
+
168
+ Before converting, preserve the original file.
169
+
170
+ 1. Confirm input path exists and output format.
171
+ 2. Prefer LibreOffice CLI for `.pptx` to `.pdf` conversion when installed:
172
+
173
+ ```bash
174
+ libreoffice --headless --convert-to pdf --outdir ./out input.pptx
175
+ # or
176
+ soffice --headless --convert-to pdf --outdir ./out input.pptx
177
+ ```
178
+
179
+ 3. Warn that layout fidelity can vary across renderers.
180
+ 4. If conversion is critical, recommend manual review in PowerPoint/Keynote/LibreOffice.
181
+
182
+ ### 5. Read or analyze an existing `.pptx`
183
+
184
+ 1. Check whether `python-pptx` is available.
185
+ 2. Extract slide titles and text.
186
+ 3. Summarize structure, content gaps, consistency, and improvement suggestions.
187
+ 4. Do not overwrite the original unless explicitly requested.
188
+
189
+ Example extraction pattern:
190
+
191
+ ```python
192
+ from pptx import Presentation
193
+
194
+ prs = Presentation("input.pptx")
195
+ for index, slide in enumerate(prs.slides, start=1):
196
+ texts = []
197
+ for shape in slide.shapes:
198
+ if hasattr(shape, "text") and shape.text.strip():
199
+ texts.append(shape.text.strip())
200
+ print(f"Slide {index}")
201
+ print("\n".join(texts))
202
+ ```
203
+
204
+ ## Design Guidelines
205
+
206
+ - Prefer clear narrative over dense slides.
207
+ - Use one main message per slide.
208
+ - Keep titles action-oriented when possible.
209
+ - Use bullets sparingly; prefer concise phrases.
210
+ - Include visual suggestions for data, architecture, timelines, and comparisons.
211
+ - For technical decks, include assumptions, constraints, trade-offs, and next steps.
212
+ - For business decks, include problem, impact, recommendation, plan, and ask.
213
+
214
+ ## Interaction Guidelines
215
+
216
+ Ask only the missing questions that materially affect the output:
217
+
218
+ - Audience and goal.
219
+ - Desired slide count or presentation duration.
220
+ - Language and tone.
221
+ - Output format: outline, Markdown, `.pptx`, PDF, or images.
222
+ - Branding/theme requirements.
223
+ - Whether local dependency installation is allowed.
224
+
225
+ If the request is simple, proceed with sensible defaults and state them briefly.
226
+
227
+ ## Safety and File Handling
228
+
229
+ - Treat presentation generation and conversion as local file operations.
230
+ - Do not install packages or run GUI automation without user approval.
231
+ - Do not overwrite existing files unless the user explicitly asks.
232
+ - Prefer writing new outputs with descriptive names, e.g. `deck-v1.pptx`.
233
+ - For conversions, keep the source file unchanged.
234
+ - For large or sensitive decks, summarize only the requested content and avoid unnecessary copying.
235
+
236
+ ## Fallback Responses
237
+
238
+ If no PPT-related tooling is installed, still be useful:
239
+
240
+ - Provide a polished slide outline.
241
+ - Provide Marp-compatible Markdown.
242
+ - Provide a ready-to-run Python script for `python-pptx`.
243
+ - Explain the exact install command appropriate for the platform only after asking or when the user requests it.
244
+
245
+ Common install options:
246
+
247
+ ```bash
248
+ python -m pip install python-pptx
249
+ brew install marp-cli
250
+ brew install pandoc
251
+ brew install --cask libreoffice
252
+ ```
253
+
254
+ Use platform-specific alternatives when not on macOS.
@@ -0,0 +1,12 @@
1
+ Metadata-Version: 2.4
2
+ Name: yycode
3
+ Version: 0.3.2
4
+ Summary: Terminal coding agent with TUI, plain input mode, tools, skills, and ACP support
5
+ Requires-Python: >=3.10
6
+ Requires-Dist: anthropic>=0.40.0
7
+ Requires-Dist: openai>=1.0.0
8
+ Requires-Dist: tiktoken>=0.12.0
9
+ Requires-Dist: langgraph>=0.2.0
10
+ Requires-Dist: langchain-core>=0.3.0
11
+ Requires-Dist: python-dotenv>=1.0.0
12
+ Requires-Dist: textual>=0.80.0
@@ -0,0 +1,131 @@
1
+ main.py,sha256=No210cbcHXPcv90A24b8POAErabh2QToHRpl7b4YS2U,15696
2
+ agent/__init__.py,sha256=5dHSQmucTi20_kzm5wka5O9Vkr7Y0gL3VeiffDLS6KA,754
3
+ agent/app_paths.py,sha256=y2Zgce4yFxZhbB1cHQHiMcDJ7RxqCP_4azOLuvkg89w,747
4
+ agent/approval.py,sha256=vwvEPpdUA6f9FZsnnkNlEusS-5GZgXlUL9riCYYJDSc,5979
5
+ agent/cancellation.py,sha256=xmZVUQyoSPX8H6OjvBCm1zDMGrPe-2cINKtC9uoiGX0,1571
6
+ agent/change_snapshot.py,sha256=eSqRLvBnX26CV_daCkCMgbliq6OrNAHAXQoXhcnCokw,6144
7
+ agent/context_compressor.py,sha256=pl_jvj6MYxOkCD2lA1fMXRD21JD7p3nBMyPIuh_Zl50,4166
8
+ agent/graph.py,sha256=yw0qDilAuCzwsoiq1lEYSd8b6luZHeBcvBhkGIJ3owc,4132
9
+ agent/llm_retry.py,sha256=5QgM8-yWme-3-ZKroXu-CGEWdFBMMYKSEoGBJs2dXYY,14642
10
+ agent/logger.py,sha256=TrS6zAbfUI-k2MJj_C87tnwLKOSRA6UEU7J7GY5mk2c,2649
11
+ agent/message_context_manager.py,sha256=M5APSaQeivQ3i3k_mtQg1iWMqraMbTh4utz0ZpAbALM,11412
12
+ agent/message_format.py,sha256=FzAec-NPRxfBmUI4eJ2CbAFsV71rpN0QMU-s70zebIQ,3782
13
+ agent/plan_snapshot.py,sha256=n5BrOkR8dGQb7vLSMkLt0kmoILnOznc3HGum0B2Ntgs,2033
14
+ agent/session.py,sha256=JevqEWIwJIKl8LFlJ_lbhxU8Dhjhl5IaB9G-b6f8DzQ,35510
15
+ agent/session_replay.py,sha256=wHLdWSaIMbRClCJD_2iknPNroOc3N2BOcyf53cREitU,3078
16
+ agent/session_store.py,sha256=f-SQ35hnJCvUy48hv8OwKNqAQS2yNAHuVGJteGk5azU,6019
17
+ agent/skills.py,sha256=YcoBuQkTpxOafR68A-YFc7ac_32Ynt2NePnSHLBXJkQ,8056
18
+ agent/streaming.py,sha256=vV60_DJ1kx07yLyMiRuhSL_lzkb5blIkpvCSSSURSq4,9054
19
+ agent/subagent.py,sha256=DMYU50Y78fEICwyLI6-liNllKQNLB7H6Sh-BWuNbVMQ,25405
20
+ agent/task_memory.py,sha256=-S7pd0pWCEoNIDUQLEpO-i4TriTRCsZ8YmhgqdWjaj4,11643
21
+ agent/todo_manager.py,sha256=G3oNzsZ1T0dlan_FsJ5S1feJUDdlYkiPmAuD3gTr_0M,11930
22
+ agent/tool_retry.py,sha256=4uSBpvBYNAwS099JhIThJtfReo_BXd4Z5Axug-VBVbE,3333
23
+ agent/acp/__init__.py,sha256=WWSCJfw5BzRu6UjYVDfsiGzaz0SWn7YRz7Y7i_4O0sY,41
24
+ agent/acp/approval_adapter.py,sha256=ymTL6uONRV5iWKoC9LgY2M9pvq_eox16M2-sbeGI_kU,4731
25
+ agent/acp/content_adapter.py,sha256=ZLlU65vrRfqlJrJa91GnhmPBkGwhqCWi6rQM90_EVjA,1868
26
+ agent/acp/jsonrpc.py,sha256=qRUQu99-dUCGdp5XQCFfBMxBxK5bv46Iy2VfOMjIUh4,2701
27
+ agent/acp/server.py,sha256=BIy__8d3-PqShwW2VpLGB6Ai7mQS70vCqDE79HKByU8,6411
28
+ agent/acp/session_manager.py,sha256=NaP7UFW_jPR3SqicraTlAlVrlMX2EoIT5s4JDxpTLNk,7247
29
+ agent/acp/update_adapter.py,sha256=O9AQagGy2dxwqqqnjr74pFiCdIjimcwmmZ2-9pxr3Tc,7358
30
+ agent/lsp/__init__.py,sha256=FP5CWdGgB2RLm-B86os1N09MSCD1mZu48g2_NTeuTOo,303
31
+ agent/lsp/client.py,sha256=gQ54h5PnmRD0tSlAiYcHyiWmwwFpMv1LWdXzAnRTW3Y,6123
32
+ agent/lsp/manager.py,sha256=3h7Dc8zPVuBpVM0T880493sAbehHz3pQ8SyO1nh2ZyE,8878
33
+ agent/lsp/types.py,sha256=a6wylCrf7cTg4ySbZU5S3X27dRbrD6_o2sRLveCHrgQ,2915
34
+ agent/nodes/llm_node.py,sha256=rxiUhUhJhWlY5zn7kY5ysdycqobOLOSrMMexT-j_x1M,2068
35
+ agent/nodes/state.py,sha256=8yZNDfzMTTv0yZvOY40YMN0jPFvq7bdCtxHfY-7u2oQ,293
36
+ agent/nodes/task_guard_node.py,sha256=yOy9jBu5gnL2FpHBYDQaJyk7L6k3eB_EDSUE2k41nPE,1738
37
+ agent/nodes/tools_node.py,sha256=UTS6W-zqqP0n-GdyWkIjIDUDp_RqiwRrGcTP48nEEKk,2712
38
+ agent/providers/__init__.py,sha256=YbXYi7k-sjWtrCt10uoFgNzJVh8PpKfdpCDu-12oAYg,295
39
+ agent/providers/anthropic_provider.py,sha256=E76Zf_DRPGL_CTiHAdsYkGDMmJJZOeRCAkXOcv1oP4w,10269
40
+ agent/providers/base.py,sha256=rD1uX1S_SEpNo4aiSo-jfMzAPqdf4OVg5S8u_68KtpM,1344
41
+ agent/providers/openai_provider.py,sha256=vigPeLGXnn5kyY7ktSCArqTGzbr2vP4AqSAn19VbmOs,10992
42
+ agent/providers/text_tool_calls.py,sha256=XRHjXqGrvIB9smbLQGGhphQa4A3YpZizfgOgQNqzuPA,3620
43
+ agent/runtime/approval_service.py,sha256=BtkU5X1Swygk_Aq-K2AuprVQqaT9drBl524oYduV9CI,6416
44
+ agent/runtime/context.py,sha256=GIlhNZ9K_9r4vjPkH8WBpZktfztIwWlMt4-8I-KqO10,1427
45
+ agent/runtime/tool_events.py,sha256=r83ohqrD-gwB603rFiQsOpwA2gwY2gR-hTNT0l1U_6w,11874
46
+ agent/runtime/tool_executor.py,sha256=46ENuVQqXufrcOWGn1C7Zlcz3USFnJvFyPtrWqMxPmw,7991
47
+ agent/runtime/tool_output.py,sha256=aUDLpDTrDEo7qPnMACcne5TTnoEOXVDmYGw4RQSnpnQ,9119
48
+ agent/runtime/tool_registry.py,sha256=FtumVHDb-SVY4Iq3ep-YCS4Ra9_84jIvMpJKvHU4utI,3758
49
+ agent/runtime/tool_scheduler.py,sha256=KxCxHyPI1lNaiYtNtFr7zAY_y4YW66dqAZy5kmnhWQY,1068
50
+ agent/runtime/workflow_guard.py,sha256=mEkHUH9WZoDl0oRJm1HLUCqTabJA760Bu7JzD2Nclqw,7071
51
+ agent/runtime/workspace.py,sha256=_QckaMQNmjMEZYA30xjz0F8G3katkhse6Mpi9N8w67k,162
52
+ agent/runtime/workspace_tools.py,sha256=r7e2BEE_QNFWpo9k6_7M5znV9kgrmEB-HCBtHQ8eR-A,439
53
+ agent/tui/__init__.py,sha256=5eVTz_yc8tU8IrVLUVqysuYSmJoZM0iYh6qDbyHmBR8,337
54
+ agent/tui/app.py,sha256=DUwIIIKUs_VT80lZGXpjpxj7GKGCaeTCpVQgv27EhSQ,57304
55
+ agent/tui/approval.py,sha256=kxPdtia4-1x9UUzrQ7snG7b73_3EN8xS5rutrWOoPfo,1992
56
+ agent/tui/help_content.py,sha256=9EdAVY8AG2d59wGbY5gSEpB3diPmTvvTrSJ_XSHhL_s,3820
57
+ agent/tui/renderers.py,sha256=tSAiMsUjJG1rECzETk2_7aYTRy4PmSyy6D-Hjblzvb8,74033
58
+ agent/tui/runner.py,sha256=_bF1kC2EgM92DHXuev8mnszz3nYMzAwx86F0uQ5Ipzc,17946
59
+ agent/tui/state.py,sha256=XszhykE0MLrnhs3Ej0ceUXt6n3uJP65rres7LrVKljY,26140
60
+ agent/tui/commands/__init__.py,sha256=RVrleZSPd3og0p15SlQd-1ppqejdySWm8QmiRvSYlA4,246
61
+ agent/tui/commands/base.py,sha256=9lEMyBivJuDb5GUH5WDSGrl9-gVrH5hxVZqHilw3tqk,1143
62
+ agent/tui/commands/clear.py,sha256=bUdn6uHEjdDsDDs68z17wXs2j52ciUfyj72lc6qdeeY,1175
63
+ agent/tui/commands/help.py,sha256=B_pASK6VnGGTeXWhcazlOwYqhLctYHL3Cv3_WXxlHf0,680
64
+ agent/tui/commands/registry.py,sha256=GU77dkYXSM8aGJQSla8TIBGMRtT7PYfh7zXui-fiUJQ,3652
65
+ tools/__init__.py,sha256=PHa3xVvlW1SvKi8Wi50j5ZKphCqyf-QpQoOOeJsI1dk,1521
66
+ tools/apply_patch.py,sha256=g6DodIPjSM9FqEUF6912qoiCp7RzGo0cULmQWz8Vd6s,10421
67
+ tools/bash.py,sha256=c0T4jYmgY3AZ2s-PjMWZvz_kaSZGmXA_iVORtZOZEk0,2329
68
+ tools/diff_utils.py,sha256=6qkwytCjHz6cUIuhRopNpVX7yQCPf1d3Ips64d-wFD8,4642
69
+ tools/edit_file.py,sha256=ED8mxARkEQtV3kcyeAOfK_HJUnn2TTW3iI2Q46b961E,1095
70
+ tools/git_diff.py,sha256=scVVBbOQPJ9pEtd42lkNCS2AERudqxGjWh2kzyEYNu0,2105
71
+ tools/git_show.py,sha256=3EMCObRITzULyqx-vK5iT39GNt9_3ovmi4xnZH0rnl4,2009
72
+ tools/grep.py,sha256=3PJwHjvIy5vfbMF9yaKGY6jW4RfEMMMaXVxPvAbLTII,4555
73
+ tools/list_files.py,sha256=-RQ1rlbRrUAS1R0nTclBAKDUR8yu0FYuyGvNlzs8VXU,2822
74
+ tools/list_skills.py,sha256=wRw9tc2pvD7j5g8KZemFhkd61rws_UC9_ElyHwpWfN0,698
75
+ tools/load_skill.py,sha256=HD5-2WdYxgkCByKKm7in-aSql26VQHbkbnY9Nmu6deA,907
76
+ tools/lsp_definition.py,sha256=XExTv6rx1dS9BEnOsxwkdSTGqgo5brYSN1p4rXTXQds,1125
77
+ tools/lsp_diagnostics.py,sha256=To5-LcbWwE_K4KQX2Viv8bvx8m7nRlx57h6JzZMEC8c,1167
78
+ tools/lsp_document_symbols.py,sha256=7H-8GVt_LClrqGpm3cf-BnANt7Jg61vimRWTWIm8CqM,859
79
+ tools/lsp_hover.py,sha256=mGme4yppbAbIpHR1WSCZNKf-8rox_9ToE1JILBC45C0,1172
80
+ tools/lsp_references.py,sha256=4pz1nwdOmqLBkGgNXiV7YX7BgHu7--C7n5GgiASOhc0,1343
81
+ tools/lsp_utils.py,sha256=f1FR9bSaoSk4nBG5Xy7M1oN9Ytn1w3XVfGWQbl8Ye6U,1320
82
+ tools/lsp_workspace_symbols.py,sha256=0h1EZ4cAh3H3Cp-X0uG1yCApAZ9Zzi4vyHLR-Z8byeQ,828
83
+ tools/read_file.py,sha256=IJTKSRaibSFtvMvLv9TtBkRmOuyZVgHtJa_F6xemEFk,1821
84
+ tools/read_many_files.py,sha256=9cOhfnoI_lbrwbiHTWeQ6UUo4IRL90GGPFwoOs8H_U8,1598
85
+ tools/safety.py,sha256=75hPWyTvlKrXDr5czQhi-oeiPpW35cMifNZFj9qQ0z4,1922
86
+ tools/subagent.py,sha256=rgb_BAhXXDQFz6nWg_ebJHby6NiWy6kLV_fVrz3zDcM,1999
87
+ tools/todo.py,sha256=UptOeBvFg-nVx1IMB5vCRUV0eDI-MyDmVNBWrgMEbSE,2926
88
+ tools/verify.py,sha256=mLZIRtN_U9H1663bayjitZjWKe5HL0DeY3wv6v8nfy4,3693
89
+ tools/web_search.py,sha256=Eiw_tF6cmJlGupxPz_CM2oHPhQeOItTFV2atsODpBF4,8742
90
+ tools/workspace.py,sha256=Lw0OSBDipfHRAlKfkcYIcr5uhidcvbPsDe6sG7buzzc,1416
91
+ tools/workspace_state.py,sha256=igIxRs2DeYigD6cXYoYkgs_ZlK3IbL5r8D7tZuAOqA4,1718
92
+ tools/write_file.py,sha256=69mUNbmjRKgh6a0yEaSFeKwJ0WJnKaqswN86MeGpdMA,2775
93
+ utils/__init__.py,sha256=rahS_3cnLmvqnbMeU9fvUQQstiZWH8CvUY6MTtu5Eds,173
94
+ utils/retry.py,sha256=PEBWuypZt4y8Auxse1hMe8KIBA4eoSfAmcc1ZC-ZXd4,249
95
+ yycode-0.3.2.data/data/skills/code_review.md,sha256=m-CdDWMSx5IHhou6f09yjxDLkpm-G01u3Wk-DqIQbcI,1877
96
+ yycode-0.3.2.data/data/skills/code_workflow.md,sha256=bfyNhrtJHa66N9iROB1byW0isqcEHUuoxzWoc80e_Vs,14357
97
+ yycode-0.3.2.data/data/skills/plan.md,sha256=mG9HMU8IkzD0y9hJR4hlTYM0feUCyYVzBFbIWCXMWwQ,3559
98
+ yycode-0.3.2.data/data/skills/drawio/SKILL.md,sha256=mXx7zRbCCFEmwJDTHrJB3xydJx9T4j5bB8N_8A5lvNI,40467
99
+ yycode-0.3.2.data/data/skills/drawio/agents/openai.yaml,sha256=Gb_815xH-6JWMyo7Qe2IikNO8V1skl2IOTRwaEui5xA,749
100
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-erd.drawio,sha256=SzK6eQvFtnBQI00j0F88NdYU68fKgHx1RusWk_mhOFM,7300
101
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-layered-cn.drawio,sha256=fXUUqLHBu-A_N-MX_RvHHXJ5gFcH-DLc3aQAnePq0-Y,6614
102
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-layered-cn.png,sha256=_Xwq6ymacKqB2mpU3mBsRQG_n7636LbyjGVqaEDwSpg,99781
103
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-layered.drawio,sha256=_OjuetSdJ3GvQi9648jwFAj1h-Y_4jdorn2mQaBtn5U,7109
104
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-layered.png,sha256=6pz07S29cb7DItBnCtGS6d4d-5OBcq9OhW-VIJK0Ewg,109259
105
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-ml.drawio,sha256=0AdvOccGUa50PP81uhk-tFQSlXpOqVg0dyWF1PT-kg8,4629
106
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-ring-cn.drawio,sha256=ulEz5cyJgi-Aw8FUSVogV4mlFekEF4Lmcdtv4DYjfbk,4865
107
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-ring-cn.png,sha256=1f6KDT8Ea3TFOMUkEdXy-t0Sxs9ceUH6k_vSa69lL9w,80974
108
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-ring.drawio,sha256=CGGEircxkAWNpwXQYT7IP6UYN04J295rCi-mnCHIi08,5295
109
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-ring.png,sha256=v3CZP284Jm19rqZqAHfrDBGzRS30q9SvyYIwXwqEaBI,81228
110
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-sequence.drawio,sha256=kmz2HBskU5ZE-jOfRlvQMCg2Its1OPMcYNJlp_betzI,6396
111
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-star-cn.drawio,sha256=Lmry_amUbInfQWT-s4ufiqBe_PnT8xunzOkfN0PWiIo,4264
112
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-star-cn.png,sha256=DVmQ0GLGfM8z6sECHKy55izNdarrrF4wSJY9V0Rd6yI,89623
113
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-star.drawio,sha256=dZcpkr6QDtBEkBD8z_pPjIxMHRzfFJZvBYPRtB8Q9ak,4679
114
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-star.png,sha256=83-d9CecgqHx4UTPpxJ1CuUEUdii926GzILB03GienQ,97388
115
+ yycode-0.3.2.data/data/skills/drawio/assets/demo-uml-class.drawio,sha256=RgAjxqL8tf8p5brXOu7AnWLaIsU8YKJHCdGua7h9Jtg,5316
116
+ yycode-0.3.2.data/data/skills/drawio/assets/microservices-example.drawio,sha256=N3nBGB7eIDQjx3SYsGqOx7GZjwbgaIMi-FLSNMBimFM,12200
117
+ yycode-0.3.2.data/data/skills/drawio/assets/microservices-example.png,sha256=vVVxA_1T_pYv7CyfEVW0RwDXF4aw73I0qDV8sNuomrU,144610
118
+ yycode-0.3.2.data/data/skills/drawio/assets/workflow-cn.drawio,sha256=H3nDad6wbIF6QqkFIcRrrDfmQCQbTvUfLdedr0CpEm0,7195
119
+ yycode-0.3.2.data/data/skills/drawio/assets/workflow-cn.png,sha256=jRTXnF1Aya8Xo9Xsjx6r-4Zfc7bH4cBDLY_SaYpFgJ0,150331
120
+ yycode-0.3.2.data/data/skills/drawio/assets/workflow.drawio,sha256=eIu8-n5h6SsjXgxA6wwYSzsJZhNKx5QJeSmR81hlPLk,7167
121
+ yycode-0.3.2.data/data/skills/drawio/assets/workflow.png,sha256=ZZkzYxmn1ojKboy7yalTQ2NbDcrPvKzvYUtuqQCFqR0,154667
122
+ yycode-0.3.2.data/data/skills/drawio/docs/index.html,sha256=TrTCY9pUIuo1FBrx77j54Utaj3nXrpvIOopmcQ_Xw7M,23247
123
+ yycode-0.3.2.data/data/skills/drawio/docs/zh.html,sha256=9qzt-uwVcn3xMk5NZMu7Ms1gqFc_7r65HrmowTKevXc,22781
124
+ yycode-0.3.2.data/data/skills/drawio/references/style-extraction.md,sha256=iJD2IviK3uWK6lsnN8FZ8PXq_HKvxcCNiA_Tcjybjdc,17263
125
+ yycode-0.3.2.data/data/skills/drawio/styles/schema.json,sha256=KPSZi_nbirOETqALe3wi6oepq5DnarcO95l9C9wN6wY,3949
126
+ yycode-0.3.2.data/data/skills/ppt/SKILL.md,sha256=3HWn5TFAiy70AJXiexsN00gSSBe2UACN_mKVglFzV8Y,8720
127
+ yycode-0.3.2.dist-info/METADATA,sha256=xpUfN-z0VqYyEL_hc15lVHL07E9-BT1tMOoHmrD81P0,394
128
+ yycode-0.3.2.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
129
+ yycode-0.3.2.dist-info/entry_points.txt,sha256=U9d462_KSKcj0XBh-htz9I7IC_kvrhMr0cc717qz9Vk,37
130
+ yycode-0.3.2.dist-info/top_level.txt,sha256=5YX_ct0lv8fsspG7xgCaV24QD2myktydvj4wnpPqHYE,23
131
+ yycode-0.3.2.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ yycode = main:main
@@ -0,0 +1,4 @@
1
+ agent
2
+ main
3
+ tools
4
+ utils