mycode-cli 0.3.2__py3-none-any.whl → 0.3.3__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.
mycode/cli/render.py CHANGED
@@ -669,7 +669,11 @@ class ReplyRenderer:
669
669
  self._thinking_collapsed = True
670
670
 
671
671
  if self._live is not None:
672
+ # Rich's stop() refreshes the last renderable once more before
673
+ # restoring the cursor. Blank it first so a final spinner frame
674
+ # can't get stranded in terminals that occasionally miss the clear.
672
675
  self._live.transient = True
676
+ self._live.update(Text(""))
673
677
  self._live.stop()
674
678
  self._live = None
675
679
 
@@ -13,6 +13,7 @@ import logging
13
13
  import re
14
14
  from collections import deque
15
15
  from dataclasses import dataclass
16
+ from datetime import date
16
17
  from pathlib import Path
17
18
 
18
19
  import yaml
@@ -35,9 +36,8 @@ You have four tools: read, write, edit, bash.
35
36
  - Use bash for file operations and exploration like `ls`, `find`, `rg`, etc.
36
37
  - Always set offset/limit when reading large files.
37
38
  - Always read files before editing them.
38
- - Use write only for new files or complete rewrites
39
- - Your response should be concise and relevant.
40
- - When available skills match the current task, prefer them over manual alternatives. To use a skill: read its `SKILL.md`, then follow the instructions inside.\
39
+ - Use write only for new files or complete rewrites.
40
+ - Your response should be concise and relevant.\
41
41
  """
42
42
 
43
43
 
@@ -62,7 +62,7 @@ def build_system_prompt(cwd: str, settings: Settings | None = None) -> str:
62
62
  if skills_prompt:
63
63
  parts.append(skills_prompt)
64
64
 
65
- parts.append(f"Current working directory: {resolved_cwd}")
65
+ parts.append(f"Current working directory: {resolved_cwd}\nCurrent date: {date.today().strftime('%Y-%m')}")
66
66
  return "\n\n".join(parts)
67
67
 
68
68
 
@@ -108,7 +108,7 @@ def load_instructions_prompt(cwd: str, settings: Settings | None = None) -> str:
108
108
  continue
109
109
 
110
110
  if text:
111
- sections.append(f"## {path}\n{text}")
111
+ sections.append(f"Instructions from: {path}\n{text}")
112
112
 
113
113
  if not sections:
114
114
  return ""
@@ -116,7 +116,7 @@ def load_instructions_prompt(cwd: str, settings: Settings | None = None) -> str:
116
116
  return "\n".join(
117
117
  [
118
118
  "<workspace_instructions>",
119
- "Instructions are ordered from global to current cwd. Later files are more specific.",
119
+ "Ordered from global to project; later instructions take precedence.",
120
120
  "",
121
121
  "\n\n".join(sections),
122
122
  "</workspace_instructions>",
@@ -308,12 +308,17 @@ def format_skills_for_prompt(skills: list[Skill]) -> str:
308
308
  if not skills:
309
309
  return ""
310
310
 
311
- lines = ["<available_skills>"]
311
+ lines = [
312
+ "When a task matches a skill's description, prefer it over manual alternatives — use the read tool to load the file at <location> and follow the instructions inside.",
313
+ "Relative paths inside a skill file resolve against the skill's directory (dirname of <location>).",
314
+ "<available_skills>",
315
+ ]
312
316
  for skill in skills:
313
- lines.append(f"- name: {skill.name}")
314
- lines.append(f" path: {skill.path}")
315
- lines.append(f" description: {skill.description}")
316
- lines.append("")
317
+ lines.append(" <skill>")
318
+ lines.append(f" <name>{skill.name}</name>")
319
+ lines.append(f" <description>{skill.description}</description>")
320
+ lines.append(f" <location>{skill.path}</location>")
321
+ lines.append(" </skill>")
317
322
  lines.append("</available_skills>")
318
323
  return "\n".join(lines)
319
324
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mycode-cli
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Minimal coding agent with web UI
5
5
  Project-URL: Homepage, https://github.com/legibet/mycode
6
6
  Project-URL: Repository, https://github.com/legibet/mycode
@@ -2,7 +2,7 @@ mycode/__init__.py,sha256=Pjjy4ieSZ44e5GZIgZ0XP8juR7u3xtg3hvMq_qLo3sU,39
2
2
  mycode/cli/__init__.py,sha256=NtPinpl7FtTPZ4ZrEWbY50A9aAnV0-U2PG0t9U0VKKw,30
3
3
  mycode/cli/chat.py,sha256=b6Y2aGhck9z4W0b43IX1g9tSp6sUnfASdHeEJL-IeaU,25618
4
4
  mycode/cli/main.py,sha256=9--KcBcV4pZnC7AYAacs8ygNojW_IKbafzJJ92kHw6Q,7706
5
- mycode/cli/render.py,sha256=e1N1jEVMXJDoE5Evb6VF4mSS1gftU1CfqIAF_LHubOw,26812
5
+ mycode/cli/render.py,sha256=zQrt-UBQuoFUgH-wHQ0rNxCM-RH_uB-pwoc7bLsbREQ,27083
6
6
  mycode/cli/runtime.py,sha256=xCkI3bMlYT_VeIM1ufwO9nozW37DBsqywxy8pYpLUFA,8974
7
7
  mycode/cli/theme.py,sha256=HS3C1kSoIONrSaiSx22AWRLk1n6-T-Tn5iohCMewAg4,3455
8
8
  mycode/core/__init__.py,sha256=0t7o7zWeo5ZdefBjKvC_4JZmft9AC35i1gfnC4tMvME,761
@@ -12,7 +12,7 @@ mycode/core/messages.py,sha256=4TxmchjaB-2S5raYqbSC9Ow1II4LmpFK2rufEb5UCOY,5301
12
12
  mycode/core/models.py,sha256=djc206r8ZTSgGJHlGpicPKYvC3xfrlHs1kBYz2jMksk,3631
13
13
  mycode/core/models_catalog.json,sha256=EHCPEyh91s2e7nIyyhFkhGm_tTf19p4V-Yw3e8GfWFU,73810
14
14
  mycode/core/session.py,sha256=SAYw4J3KS5k_GWLPoLmaBuPfzKd3lwhJ7CGL_108jPQ,18796
15
- mycode/core/system_prompt.py,sha256=jL-ojJIDHeZB12vpzo_a8oEJYEpv-_YcvbNoQrSpt2Q,10247
15
+ mycode/core/system_prompt.py,sha256=_pCx4CTXz5b_s2g0Qww7hi_209zS7sTkRBrJw9GkPR0,10550
16
16
  mycode/core/tools.py,sha256=Jx34RxihRKW-lwGAkY6yi1mE_tzINVUM_UInLIDkF30,36313
17
17
  mycode/core/utils.py,sha256=owQv38IWboxkF-7qcbWnkpMjK0susMRKX2QZLAznqKo,1196
18
18
  mycode/core/providers/__init__.py,sha256=iOlKJh-U6z5SMcMzEzW6n7MGcVEUGd3E7V6bAKKpJK0,2802
@@ -395,8 +395,8 @@ mycode/server/static/assets/xsl-CtQFsRM5.js,sha256=tHu7ObMZlHpXUl3BFOww6y5pe_RRv
395
395
  mycode/server/static/assets/yaml-Buea-lGh.js,sha256=p6i0_BT6e6M4WY9hGFo6E-SddFCDCvNnQHrmG5Y0vt4,10506
396
396
  mycode/server/static/assets/zenscript-DVFEvuxE.js,sha256=WKgS641xEh7jvW5RO4ogVVvsRPlo98N4vX7L_eBYZqc,3912
397
397
  mycode/server/static/assets/zig-VOosw3JB.js,sha256=fDaSkledibeB6Rt2pN8b-6YEKHx6XixCaSWTXvCMCEE,5340
398
- mycode_cli-0.3.2.dist-info/METADATA,sha256=lOtiEo-ukVmPvRXqgrPS4xTieg_0Y4uAP35-pra9UGs,6159
399
- mycode_cli-0.3.2.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
400
- mycode_cli-0.3.2.dist-info/entry_points.txt,sha256=A8fOMAxoAEKlijcCJuKYMHebmj4FuqvCBVijNY5V-hQ,48
401
- mycode_cli-0.3.2.dist-info/licenses/LICENSE,sha256=DSE6T-B9WhrWypr6H7y2kTZzoF1tef5xf7veUyImQsM,1064
402
- mycode_cli-0.3.2.dist-info/RECORD,,
398
+ mycode_cli-0.3.3.dist-info/METADATA,sha256=-PP6qKuIBT5WgwYXRdn__FdwRl5x0zNZLoVuCOiRwSc,6159
399
+ mycode_cli-0.3.3.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
400
+ mycode_cli-0.3.3.dist-info/entry_points.txt,sha256=A8fOMAxoAEKlijcCJuKYMHebmj4FuqvCBVijNY5V-hQ,48
401
+ mycode_cli-0.3.3.dist-info/licenses/LICENSE,sha256=DSE6T-B9WhrWypr6H7y2kTZzoF1tef5xf7veUyImQsM,1064
402
+ mycode_cli-0.3.3.dist-info/RECORD,,