mosscode 0.1.0__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 (91) hide show
  1. mosscode/__init__.py +10 -0
  2. mosscode/__main__.py +3 -0
  3. mosscode/agent.py +486 -0
  4. mosscode/agents/__init__.py +249 -0
  5. mosscode/agents/builtin/explore.md +16 -0
  6. mosscode/agents/builtin/general.md +12 -0
  7. mosscode/agents/builtin/plan.md +16 -0
  8. mosscode/agents/runtime.py +685 -0
  9. mosscode/agents/tasks.py +193 -0
  10. mosscode/appearance.py +184 -0
  11. mosscode/builtin_commands.py +1363 -0
  12. mosscode/cli.py +547 -0
  13. mosscode/commands.py +254 -0
  14. mosscode/compaction.py +259 -0
  15. mosscode/config.py +337 -0
  16. mosscode/context.py +102 -0
  17. mosscode/conversation.py +1046 -0
  18. mosscode/coordinator.py +54 -0
  19. mosscode/doctor.py +303 -0
  20. mosscode/hooks/__init__.py +22 -0
  21. mosscode/hooks/actions.py +151 -0
  22. mosscode/hooks/conditions.py +170 -0
  23. mosscode/hooks/config.py +404 -0
  24. mosscode/hooks/engine.py +401 -0
  25. mosscode/hooks/events.py +48 -0
  26. mosscode/launcher.py +177 -0
  27. mosscode/mcp_client.py +460 -0
  28. mosscode/mcp_config.py +216 -0
  29. mosscode/member_ui.py +289 -0
  30. mosscode/memory.py +291 -0
  31. mosscode/memory_extract.py +245 -0
  32. mosscode/messages.py +216 -0
  33. mosscode/paths.py +31 -0
  34. mosscode/permissions.py +733 -0
  35. mosscode/prompts.py +483 -0
  36. mosscode/providers.py +587 -0
  37. mosscode/scrollback.py +106 -0
  38. mosscode/security.py +282 -0
  39. mosscode/serialization.py +121 -0
  40. mosscode/session.py +563 -0
  41. mosscode/setup.py +248 -0
  42. mosscode/skills/__init__.py +455 -0
  43. mosscode/skills/builtin/commit/SKILL.md +15 -0
  44. mosscode/skills/builtin/review/SKILL.md +15 -0
  45. mosscode/skills/builtin/test/SKILL.md +13 -0
  46. mosscode/skills/builtin/test/scripts/detect.py +96 -0
  47. mosscode/skills/builtin/test/tool.json +9 -0
  48. mosscode/teams/__init__.py +216 -0
  49. mosscode/teams/backends.py +259 -0
  50. mosscode/teams/board.py +230 -0
  51. mosscode/teams/lock.py +173 -0
  52. mosscode/teams/mailbox.py +172 -0
  53. mosscode/teams/member.py +427 -0
  54. mosscode/teams/merge.py +207 -0
  55. mosscode/teams/pane.py +20 -0
  56. mosscode/teams/pane_app.py +167 -0
  57. mosscode/teams/process.py +371 -0
  58. mosscode/teams/runtime.py +1355 -0
  59. mosscode/teams/view.py +182 -0
  60. mosscode/tool_budget.py +86 -0
  61. mosscode/tools/__init__.py +38 -0
  62. mosscode/tools/agent.py +127 -0
  63. mosscode/tools/base.py +384 -0
  64. mosscode/tools/diffing.py +16 -0
  65. mosscode/tools/execution.py +99 -0
  66. mosscode/tools/files.py +287 -0
  67. mosscode/tools/memory.py +65 -0
  68. mosscode/tools/plan.py +30 -0
  69. mosscode/tools/process.py +216 -0
  70. mosscode/tools/search.py +229 -0
  71. mosscode/tools/search_worker.py +243 -0
  72. mosscode/tools/shell.py +121 -0
  73. mosscode/tools/skill.py +118 -0
  74. mosscode/tools/team.py +447 -0
  75. mosscode/tools/windows_job.py +75 -0
  76. mosscode/tui.py +2325 -0
  77. mosscode/usage.py +68 -0
  78. mosscode/windows_inline.py +148 -0
  79. mosscode/worktree/__init__.py +29 -0
  80. mosscode/worktree/changes.py +59 -0
  81. mosscode/worktree/git.py +125 -0
  82. mosscode/worktree/manager.py +462 -0
  83. mosscode/worktree/meta.py +82 -0
  84. mosscode/worktree/names.py +52 -0
  85. mosscode/worktree/setup.py +119 -0
  86. mosscode-0.1.0.dist-info/METADATA +92 -0
  87. mosscode-0.1.0.dist-info/RECORD +91 -0
  88. mosscode-0.1.0.dist-info/WHEEL +5 -0
  89. mosscode-0.1.0.dist-info/entry_points.txt +3 -0
  90. mosscode-0.1.0.dist-info/licenses/LICENSE +21 -0
  91. mosscode-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,119 @@
1
+ """Make a fresh worktree usable. Every step is best effort; failures become warnings."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import os
6
+ import shutil
7
+ from pathlib import Path, PurePosixPath
8
+
9
+ from . import git
10
+ from .git import WorktreeError
11
+
12
+ # MossCode's own local files; nothing with secrets unless .worktreeinclude lists it.
13
+ LOCAL_FILES = (".mosscode/permissions.local.yaml", ".mosscode/hooks.local.yaml")
14
+ INCLUDE_FILE = ".worktreeinclude"
15
+ WORKTREES = ".mosscode/worktrees/"
16
+
17
+
18
+ def copy_local(top: Path, worktree: Path, project: str, warnings: list[str]) -> list[str]:
19
+ """Relative to the project directory (MossCode may run in a subdirectory of the repository)."""
20
+ copied = []
21
+ for name in LOCAL_FILES:
22
+ relative = str(PurePosixPath(project) / name) if project else name
23
+ if _copy(top / relative, worktree / relative, relative, warnings):
24
+ copied.append(relative)
25
+ return copied
26
+
27
+
28
+ def _copy(source: Path, target: Path, label: str, warnings: list[str]) -> bool:
29
+ if not source.is_file() or target.exists() or target.is_symlink():
30
+ return False
31
+ try:
32
+ target.parent.mkdir(parents=True, exist_ok=True)
33
+ shutil.copy2(source, target)
34
+ return True
35
+ except OSError as exc:
36
+ warnings.append(f"未能复制 {label}:{exc.strerror or exc}")
37
+ return False
38
+
39
+
40
+ def _junction(source: Path, target: Path) -> None:
41
+ import _winapi
42
+
43
+ _winapi.CreateJunction(str(source), str(target))
44
+
45
+
46
+ def create_links(top: Path, worktree: Path, links, warnings: list[str]) -> list[str]:
47
+ """Symbolic link first; a directory falls back to a junction where Windows refuses the privilege."""
48
+ made = []
49
+ for relative in links:
50
+ source, target = top / relative, worktree / relative
51
+ if not source.exists() or target.exists() or target.is_symlink():
52
+ continue
53
+ try:
54
+ target.parent.mkdir(parents=True, exist_ok=True)
55
+ os.symlink(source, target, target_is_directory=source.is_dir())
56
+ except OSError as exc:
57
+ if os.name == "nt" and getattr(exc, "winerror", None) == 1314 and source.is_dir():
58
+ try:
59
+ _junction(source, target)
60
+ except OSError as inner:
61
+ warnings.append(f"未能链接 {relative}:{inner.strerror or inner}")
62
+ continue
63
+ else:
64
+ reason = (
65
+ "Windows 上创建文件的符号链接需要特权"
66
+ if getattr(exc, "winerror", None) == 1314
67
+ else (exc.strerror or str(exc))
68
+ )
69
+ warnings.append(f"未能链接 {relative}:{reason}")
70
+ continue
71
+ made.append(relative)
72
+ return made
73
+
74
+
75
+ def unlink(path: Path) -> None:
76
+ """Remove a link itself, never what it points to."""
77
+ try:
78
+ os.unlink(path)
79
+ except (IsADirectoryError, PermissionError):
80
+ os.rmdir(path) # A junction or a directory symlink on Windows.
81
+
82
+
83
+ def is_link(path: Path) -> bool:
84
+ return path.is_symlink() or path.is_junction()
85
+
86
+
87
+ def copy_included(top: Path, worktree: Path, skip, warnings: list[str]) -> list[str]:
88
+ """Git itself matches the gitignore-style patterns of .worktreeinclude against untracked files."""
89
+ include = top / INCLUDE_FILE
90
+ if not include.is_file():
91
+ return []
92
+ try:
93
+ listed = git.run_git(
94
+ [
95
+ "ls-files",
96
+ "--others",
97
+ "--ignored",
98
+ f"--exclude-from={include}",
99
+ "--",
100
+ ".",
101
+ f":(exclude){WORKTREES.rstrip('/')}",
102
+ ],
103
+ top,
104
+ )
105
+ except WorktreeError as exc:
106
+ warnings.append(f"未能读取 {INCLUDE_FILE} 匹配的文件:{exc}")
107
+ return []
108
+ if listed.returncode != 0:
109
+ warnings.append(f"未能读取 {INCLUDE_FILE} 匹配的文件:{listed.stderr.strip()[:200]}")
110
+ return []
111
+ skip = tuple(item.rstrip("/") + "/" for item in skip)
112
+ copied = []
113
+ for relative in listed.stdout.splitlines():
114
+ relative = relative.strip()
115
+ if not relative or relative.startswith(WORKTREES) or (relative + "/").startswith(skip):
116
+ continue
117
+ if _copy(top / relative, worktree / relative, relative, warnings):
118
+ copied.append(relative)
119
+ return copied
@@ -0,0 +1,92 @@
1
+ Metadata-Version: 2.4
2
+ Name: mosscode
3
+ Version: 0.1.0
4
+ Summary: A terminal coding agent: tools, permissions, MCP, skills, hooks, sub-agents and agent teams.
5
+ Author: yzd11
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/yzd11/mosscode
8
+ Project-URL: Source, https://github.com/yzd11/mosscode
9
+ Project-URL: Issues, https://github.com/yzd11/mosscode/issues
10
+ Project-URL: Changelog, https://github.com/yzd11/mosscode/blob/main/CHANGELOG.md
11
+ Keywords: coding-agent,ai,llm,terminal,cli,mcp,anthropic,openai
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: Microsoft :: Windows
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Operating System :: MacOS
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
22
+ Classifier: Topic :: Software Development
23
+ Requires-Python: >=3.12
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: anthropic<2,>=1.12
27
+ Requires-Dist: openai<4,>=3.26
28
+ Requires-Dist: textual<9,>=8.2
29
+ Requires-Dist: PyYAML<7,>=6.0
30
+ Requires-Dist: pydantic<3,>=2.13
31
+ Requires-Dist: mcp<1.31,>=1.30
32
+ Requires-Dist: jsonschema<5,>=4.23
33
+ Requires-Dist: httpx<1,>=0.27
34
+ Provides-Extra: dev
35
+ Requires-Dist: pytest>=8; extra == "dev"
36
+ Requires-Dist: pytest-asyncio>=1; extra == "dev"
37
+ Requires-Dist: httpx2<3,>=2; extra == "dev"
38
+ Requires-Dist: ruff==0.17.3; extra == "dev"
39
+ Dynamic: license-file
40
+
41
+ # MossCode
42
+
43
+ 终端里的 coding agent:读写文件、运行命令、搜索代码,按权限档位请你确认后执行。支持 Anthropic Messages、OpenAI Responses 和 Chat Completions 三种协议,可以接入 MCP 工具、Skill、Hook、子 Agent 和 Agent 团队。
44
+
45
+ ## 安装
46
+
47
+ 需要 Python 3.12 或更高版本。推荐用 [uv](https://docs.astral.sh/uv/) 或 [pipx](https://pipx.pypa.io/) 安装成独立的命令:
48
+
49
+ ```
50
+ uv tool install mosscode
51
+ ```
52
+
53
+ 或
54
+
55
+ ```
56
+ pipx install mosscode
57
+ ```
58
+
59
+ 升级用 `uv tool upgrade mosscode`(或 `pipx upgrade mosscode`)。安装后得到 `moss` 和 `mosscode` 两个相同的命令。
60
+
61
+ ## 第一次运行
62
+
63
+ ```
64
+ moss
65
+ ```
66
+
67
+ 找不到配置时,`moss` 在终端里逐项询问协议、服务地址、模型和凭据,写入 `~/.mosscode/config.yaml` 后进入界面。凭据推荐放在环境变量中,配置里只写变量名。`moss doctor` 检查安装、配置和依赖工具,不发送请求。
68
+
69
+ ```
70
+ moss "解释这个项目的入口" # 启动后立即发送
71
+ moss -c # 恢复本项目最近的会话
72
+ moss -p "列出 src 下的模块" # 无界面模式,运行一个任务后退出
73
+ ```
74
+
75
+ ## 功能
76
+
77
+ - 本地工具:读、写、编辑、命令、glob、grep;相邻的只读调用并发执行。
78
+ - 四个权限档位与分层规则,危险命令分级确认,只读的计划模式。
79
+ - MCP 外部工具、Skill、生命周期 Hook。
80
+ - 子 Agent、后台任务、git 工作树隔离和 Agent 团队。
81
+ - 上下文自动压缩、会话存档与恢复、记忆笔记、项目指令 `AGENTS.md`。
82
+
83
+ 支持 Windows、Linux 和 macOS。搜索优先使用 PATH 中的 [ripgrep](https://github.com/BurntSushi/ripgrep),没有时退回内置实现。
84
+
85
+ ## 文档
86
+
87
+ - [项目主页与完整说明](https://github.com/yzd11/mosscode)
88
+ - [参考文档](https://github.com/yzd11/mosscode/tree/main/docs/reference)
89
+ - [更新日志](https://github.com/yzd11/mosscode/blob/main/CHANGELOG.md)
90
+ - [问题反馈](https://github.com/yzd11/mosscode/issues)
91
+
92
+ MIT 许可证。
@@ -0,0 +1,91 @@
1
+ mosscode/__init__.py,sha256=JOWJQK4eQv6XcfqPtnKLBPjCIx3fVer_18i8TJksiJA,333
2
+ mosscode/__main__.py,sha256=s4DEeuFooeuagsxeZxDmhHHRbEKF9j1dIwaIZrz5GgI,35
3
+ mosscode/agent.py,sha256=o9djhM6LVuzUULBT8C5HyxB0xdrZSALbu4enGQ-U4w0,22915
4
+ mosscode/appearance.py,sha256=0q90OkelIjGU3AJqfPbqNgrwxqDWJkMbCP73grTPbtk,6585
5
+ mosscode/builtin_commands.py,sha256=nsuNx2Ssyt520dooUnkah2PSCrAfN_nY5_8_Llno6Hg,54940
6
+ mosscode/cli.py,sha256=L6yQOm8B8pjGDjIAonUa72XsWJ6W8G5qBV7b0scABPk,22533
7
+ mosscode/commands.py,sha256=ooUv9plfmXfxsu4odvNdcgccBpJaNV3Vucf3RyvVy6g,10528
8
+ mosscode/compaction.py,sha256=nZi-P79ucJ-RtDvKXAFZTbSy1ZWlTcw-XvHhf7I7GHw,11480
9
+ mosscode/config.py,sha256=FHEip3eszJlrCueCL8dxQTXaLmdWcRSnP7HycXSJlRU,15420
10
+ mosscode/context.py,sha256=Mx_M8AB6s9TuXyzNWrhq3gCzLwygG29Q7LF0iR_43v4,3987
11
+ mosscode/conversation.py,sha256=0MUGJp44-HIjsGpNHFtylsrq0RLVN-bQm5Yx8MbbueE,47976
12
+ mosscode/coordinator.py,sha256=cD2kotCJXZV8Y0VFbLdXA8UgRmFQ9gQHkwHB7p4t7l8,2830
13
+ mosscode/doctor.py,sha256=osCjam8HtRGOND_mXCJgUTO3nwHQsspc-4whulzR5BI,11439
14
+ mosscode/launcher.py,sha256=NnT4b0FQS8cs_w32pDD09AW4HBwQI3NS6O_v31wGV5g,7425
15
+ mosscode/mcp_client.py,sha256=M433865nZK1X-LIMxxWYVJFkakXwsnzI5_3yrE2hqvM,19971
16
+ mosscode/mcp_config.py,sha256=1pqY5_0SoQdxvpEkHzt3Fkorm8LkOmYonDXRUDrk_jY,9704
17
+ mosscode/member_ui.py,sha256=Fu4MbWkwQeJ5DRNiJCvLSPazo-LPhCL0hftXa5oEH_w,10879
18
+ mosscode/memory.py,sha256=8sG2TLPIU1oV3BbkaiB1qR6KtTX9VqbyUXh8GzZm6aQ,13211
19
+ mosscode/memory_extract.py,sha256=5AJNziVC1sCqwIzvWECWYPDheHcLcm8nZf6xj8Xx1UQ,10666
20
+ mosscode/messages.py,sha256=YL8jzNfLUiTMZO4SLmfwnbiO0pKPKRHtzvAEAXec2Oo,5328
21
+ mosscode/paths.py,sha256=uMWw02JcgDmxGCt5tqhL2NZfV39sJZwf8EBknkZkZY8,1006
22
+ mosscode/permissions.py,sha256=SJBaFXP3KXR5MKDzCyMsub16hO5yl7o0k7WztGmOgt4,34285
23
+ mosscode/prompts.py,sha256=CXyrI_9JFVvbDTfrUhf6m48ZmJuXs94MKKSFRPvwXkE,20594
24
+ mosscode/providers.py,sha256=OcuSQW_lnVdFceNd0Ut_iT3F855IMEd1Pj6h6bq8BAo,27308
25
+ mosscode/scrollback.py,sha256=eKByzbFdoySrOwDoYoBYjpaQTiDVnomfYaPr1hvyr4Q,3721
26
+ mosscode/security.py,sha256=S4dKn8cuB4XpNWKbAUiaf_NCtfZTVfCSz9eb_dxHJ0M,9779
27
+ mosscode/serialization.py,sha256=zMRQFe-1DOnct5Kw1fnjZLg60z_FuIxyyLg47PML_BI,4290
28
+ mosscode/session.py,sha256=lw1_3n0sg91emcXamDTOI2wPYiJPwxUxuAitgd7uhYs,20458
29
+ mosscode/setup.py,sha256=ghVm72awMZrWyaM37MMcGDT7-Vc6dGGySwpTHh3LdBo,10529
30
+ mosscode/tool_budget.py,sha256=ZY2TNzbEzwbAmch_gNCIwBm9iJ90HfMfXr_RkFdRcfs,3271
31
+ mosscode/tui.py,sha256=Ug1fWEoMfk52M0ZWIvj48Auh_sQl0ZzUqlIYanX-LBA,106350
32
+ mosscode/usage.py,sha256=e23VRVgIq9bn76XbeXjgE_K6u_IwIL7WoQRPwRJukz0,2864
33
+ mosscode/windows_inline.py,sha256=Gjh2oCeW1APxxezGuuyGE6wVV0W15YBkeRlFI1Jl20E,6486
34
+ mosscode/agents/__init__.py,sha256=inF3Z2uL6anV9PNb0Rg6y3iria41VdhXVtTEeoZFNCA,10235
35
+ mosscode/agents/runtime.py,sha256=RiHtDUqcKo8yBS0D0vj2SM4ZYWstDKFszMJSSNrLohg,30387
36
+ mosscode/agents/tasks.py,sha256=E9JPmPj34nE9UAKVNQAWxY6NAbc5DuYB5Dk9KFELaHE,7076
37
+ mosscode/agents/builtin/explore.md,sha256=loECrIpbdmniu6l5Svr6SXR8ZtJGDHDydWufDkrL3p4,926
38
+ mosscode/agents/builtin/general.md,sha256=aa4t64oMVJHiSWpkNHG50HiyyAmS2hEka9wMo2x337s,741
39
+ mosscode/agents/builtin/plan.md,sha256=Xu8oFCHx3aWR7NXMoQGzCQ8zrzIBXGVVYgwWcVZEMxA,811
40
+ mosscode/hooks/__init__.py,sha256=s5tcNDmohbOVdsH0ntnZ_j5JR8VbXuagOOEUgsmgU5U,540
41
+ mosscode/hooks/actions.py,sha256=kDRerW05xGhOY8BuRTzx3IDRqR6ta8y5FGgxtoB7QtA,5858
42
+ mosscode/hooks/conditions.py,sha256=F7LpMxFTPU0Dmc2uIj0Qvu3B1DvuewqbPWJt9b8BAQI,6566
43
+ mosscode/hooks/config.py,sha256=iJFnJr6owwQtDdgFejMGZXG__eR-WwPoC5rYjFlvodM,17438
44
+ mosscode/hooks/engine.py,sha256=eBWkWsttjBgpCrckmsXB5cNa_JDFveFmaIYWTA0g9VU,16043
45
+ mosscode/hooks/events.py,sha256=aXHnSk6MShXErJIXJRIm2NgqNo9vLbOxLYkJpgAkhcY,2269
46
+ mosscode/skills/__init__.py,sha256=fjtQREDDmTABWqlLPy9YYrXVx8VJwPMbXKrQJHiSO3c,18067
47
+ mosscode/skills/builtin/commit/SKILL.md,sha256=eUVbtGl2scI2R001AbT4Saqb4RuDAs9p3lzYxs-BJdw,981
48
+ mosscode/skills/builtin/review/SKILL.md,sha256=x5N3es3Fl7PiUGSjGcRqsENbBPUWu6N7MC0D_yRn48I,812
49
+ mosscode/skills/builtin/test/SKILL.md,sha256=TAcllr_-vR4Dia9TwzZk3T_P4wCnLBrEYDVF1z_2dvk,657
50
+ mosscode/skills/builtin/test/tool.json,sha256=5PXBaevyFblkvn12tX-7Uw_Dv6zm4qVE4VqzmMlptVE,330
51
+ mosscode/skills/builtin/test/scripts/detect.py,sha256=GRAf6tsMBdXaJKn1CoenMBrawcA_Vj0I5r49KiRskfA,3710
52
+ mosscode/teams/__init__.py,sha256=RekEsgKGIALDj1wi91DXTs_oaHnMMcGMO64mvFEqtk0,8181
53
+ mosscode/teams/backends.py,sha256=ZiR8ZNYvQNqAitRpfwA0BPHFIH9brvyXnrzWGRC4e2k,9560
54
+ mosscode/teams/board.py,sha256=yTwZknUXRtpKV8iOQ6-air8cnOvim_gao2GiAknAGWw,9211
55
+ mosscode/teams/lock.py,sha256=WfVWT6-GxFkypAK7DzlGvXk_mny0QVEKEzHxpQrxX-E,5707
56
+ mosscode/teams/mailbox.py,sha256=Zb2b4GAQODYDJnX_V5ahSAKxg22dmLgsU7XlQ9FARo8,7231
57
+ mosscode/teams/member.py,sha256=RVEWjmfLE--_-cH8kh1nvEyJt8lirLcC_pt6hgnzoL4,18934
58
+ mosscode/teams/merge.py,sha256=CdQlYyPTxa-BRBEpqde0hS_zmqoxYjjneUbSsR6p9jA,8449
59
+ mosscode/teams/pane.py,sha256=yxee7vWMbMggyRbscij_7PlbDHpg7SuuGW6119eK8w8,477
60
+ mosscode/teams/pane_app.py,sha256=PMD9LQITJhZzc6GpC0Yiv3ODJ202_h4yuIMdWIvS3_s,7035
61
+ mosscode/teams/process.py,sha256=xbuCQuAKkIDqGl-mMVNZYN3f0AjvX7fOjk7NsoTy7po,14787
62
+ mosscode/teams/runtime.py,sha256=SDG3M7ZNbw-EFbO8KHMoby4MNO7uWbnEnLsw8pPPxi8,63203
63
+ mosscode/teams/view.py,sha256=xY0toVVdHNZ2IQ3b_VgtnV4SgnuxtFbUdTdzDWXimps,7214
64
+ mosscode/tools/__init__.py,sha256=seiA3DtvHtYlCLKXlQC-F0no6Yok2OJJHwaoduD5VKc,1336
65
+ mosscode/tools/agent.py,sha256=GIARzz4NqYF5FC8BVSkloUcm9GCYM-Wdc1asPGUiJuo,5753
66
+ mosscode/tools/base.py,sha256=LEfXXQJq9YpJIuFaDRQu51r1OVk59PkPtG-W8kh0DSE,17804
67
+ mosscode/tools/diffing.py,sha256=yAWexSKdfNA2AtSTRY-35NALhAJXCQd33K9QmOpdfek,724
68
+ mosscode/tools/execution.py,sha256=vgRgMJcUizcx2vW2l-K24ECW0IDe9SLk9fxLf7JO7-I,4057
69
+ mosscode/tools/files.py,sha256=OkGKPyhkqJi9AK2HpMGLIebyIODaxkrIl_qQf90-7AA,12702
70
+ mosscode/tools/memory.py,sha256=15PAgoOcTOQbNMbV9unRY3McoyEhYA70oOlZs_hl7yM,3634
71
+ mosscode/tools/plan.py,sha256=hvC8svdzMwOUY7K2rk9_7P6N2-GiIKJJu3ST6FwIXrY,1401
72
+ mosscode/tools/process.py,sha256=uukHwVCs3yCLvAaO16Rj4ymRCU_zh-iENf_iKVCFSgQ,9058
73
+ mosscode/tools/search.py,sha256=MfalVtm2NHh6PELsSEyzEoFqDmpkN3pMari5yF_zVww,9942
74
+ mosscode/tools/search_worker.py,sha256=t91qhHxnVZ8FMt-WVZHWEAUZe6VYplXc3yMUvMxkFVo,9108
75
+ mosscode/tools/shell.py,sha256=vMT9mYoLeHO5XkiLPWAig3mj-Hm3zH1rRKF9rUYcav8,5096
76
+ mosscode/tools/skill.py,sha256=BAB6zUSWxhIUhuDqeW9pIJTpLgRY42cGiADdXQeFOTM,4794
77
+ mosscode/tools/team.py,sha256=ZRNUQyEi5a6veYSA5Zpbeovb6fO6c2ifcZtRGtsRJvU,16813
78
+ mosscode/tools/windows_job.py,sha256=no5TNJRk0vwt2NqRXz3IcFD0F_t4fFO43PFz8fJF_TQ,2834
79
+ mosscode/worktree/__init__.py,sha256=xQs_xUeLrPLYrlxafXYBBcLqY43wJrwj6PXGj0x7xec,783
80
+ mosscode/worktree/changes.py,sha256=umbYsN_5THzE18-TYVaRO2_oB6LdyH71fkDCuXbzas4,2315
81
+ mosscode/worktree/git.py,sha256=QYFqh6HiRBXCko9XJQflp2PQjXRudumT48NMuB5_SAw,4864
82
+ mosscode/worktree/manager.py,sha256=_8q82GWTKWWhCzh7wgMNH-kStgQMpjeeCQ4jxcc8EEg,19324
83
+ mosscode/worktree/meta.py,sha256=52GKbhb0tKL-M_DbR7qMmTQgS0f1-pkx1AkWMo5gP_k,3064
84
+ mosscode/worktree/names.py,sha256=frSf71_2Xe8ZM-BQR7N26blo9M1OVT8G5OH0Zqy3Q9Y,1885
85
+ mosscode/worktree/setup.py,sha256=kglFi2sFjA4Y-V_E0dTt-Z_sVnORlYrXMHhXQnuJ0Dc,4362
86
+ mosscode-0.1.0.dist-info/licenses/LICENSE,sha256=qNPN-zZk0lwO5yyKEzJGXBkjWr5UxZqROAS_MSG_R0o,1062
87
+ mosscode-0.1.0.dist-info/METADATA,sha256=_ZqxB8JFZ29l47j80gn33GA8RopuTJp-fora545-Yfw,3630
88
+ mosscode-0.1.0.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
89
+ mosscode-0.1.0.dist-info/entry_points.txt,sha256=21eBTJcC7Cq3kPVFfDaX9U6fGvKFOujiWQtEvbI_JVM,82
90
+ mosscode-0.1.0.dist-info/top_level.txt,sha256=bMsf3W5VwIvwhEggmjyn9Xjyz8RvCgZzIQ_-H7EHEZo,9
91
+ mosscode-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.2.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ moss = mosscode.launcher:main
3
+ mosscode = mosscode.launcher:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 yzd11
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ mosscode