colyn-cli 3.1.4

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 (263) hide show
  1. package/README-en.md +85 -0
  2. package/README.md +85 -0
  3. package/bin/colyn +25 -0
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +116 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/add.d.ts +6 -0
  9. package/dist/commands/add.d.ts.map +1 -0
  10. package/dist/commands/add.helpers.d.ts +48 -0
  11. package/dist/commands/add.helpers.d.ts.map +1 -0
  12. package/dist/commands/add.helpers.js +251 -0
  13. package/dist/commands/add.helpers.js.map +1 -0
  14. package/dist/commands/add.js +286 -0
  15. package/dist/commands/add.js.map +1 -0
  16. package/dist/commands/checkout.d.ts +16 -0
  17. package/dist/commands/checkout.d.ts.map +1 -0
  18. package/dist/commands/checkout.js +428 -0
  19. package/dist/commands/checkout.js.map +1 -0
  20. package/dist/commands/completion.d.ts +10 -0
  21. package/dist/commands/completion.d.ts.map +1 -0
  22. package/dist/commands/completion.js +380 -0
  23. package/dist/commands/completion.js.map +1 -0
  24. package/dist/commands/config.d.ts +11 -0
  25. package/dist/commands/config.d.ts.map +1 -0
  26. package/dist/commands/config.js +338 -0
  27. package/dist/commands/config.js.map +1 -0
  28. package/dist/commands/index.d.ts +10 -0
  29. package/dist/commands/index.d.ts.map +1 -0
  30. package/dist/commands/index.js +41 -0
  31. package/dist/commands/index.js.map +1 -0
  32. package/dist/commands/info.d.ts +6 -0
  33. package/dist/commands/info.d.ts.map +1 -0
  34. package/dist/commands/info.js +374 -0
  35. package/dist/commands/info.js.map +1 -0
  36. package/dist/commands/init.d.ts +6 -0
  37. package/dist/commands/init.d.ts.map +1 -0
  38. package/dist/commands/init.handlers.d.ts +27 -0
  39. package/dist/commands/init.handlers.d.ts.map +1 -0
  40. package/dist/commands/init.handlers.js +314 -0
  41. package/dist/commands/init.handlers.js.map +1 -0
  42. package/dist/commands/init.helpers.d.ts +42 -0
  43. package/dist/commands/init.helpers.d.ts.map +1 -0
  44. package/dist/commands/init.helpers.js +275 -0
  45. package/dist/commands/init.helpers.js.map +1 -0
  46. package/dist/commands/init.js +61 -0
  47. package/dist/commands/init.js.map +1 -0
  48. package/dist/commands/install.d.ts +6 -0
  49. package/dist/commands/install.d.ts.map +1 -0
  50. package/dist/commands/install.helpers.d.ts +32 -0
  51. package/dist/commands/install.helpers.d.ts.map +1 -0
  52. package/dist/commands/install.helpers.js +124 -0
  53. package/dist/commands/install.helpers.js.map +1 -0
  54. package/dist/commands/install.js +104 -0
  55. package/dist/commands/install.js.map +1 -0
  56. package/dist/commands/list-project.d.ts +11 -0
  57. package/dist/commands/list-project.d.ts.map +1 -0
  58. package/dist/commands/list-project.js +260 -0
  59. package/dist/commands/list-project.js.map +1 -0
  60. package/dist/commands/list.d.ts +15 -0
  61. package/dist/commands/list.d.ts.map +1 -0
  62. package/dist/commands/list.helpers.d.ts +50 -0
  63. package/dist/commands/list.helpers.d.ts.map +1 -0
  64. package/dist/commands/list.helpers.js +143 -0
  65. package/dist/commands/list.helpers.js.map +1 -0
  66. package/dist/commands/list.js +530 -0
  67. package/dist/commands/list.js.map +1 -0
  68. package/dist/commands/merge.d.ts +6 -0
  69. package/dist/commands/merge.d.ts.map +1 -0
  70. package/dist/commands/merge.helpers.d.ts +74 -0
  71. package/dist/commands/merge.helpers.d.ts.map +1 -0
  72. package/dist/commands/merge.helpers.js +307 -0
  73. package/dist/commands/merge.helpers.js.map +1 -0
  74. package/dist/commands/merge.js +260 -0
  75. package/dist/commands/merge.js.map +1 -0
  76. package/dist/commands/release.d.ts +6 -0
  77. package/dist/commands/release.d.ts.map +1 -0
  78. package/dist/commands/release.helpers.d.ts +61 -0
  79. package/dist/commands/release.helpers.d.ts.map +1 -0
  80. package/dist/commands/release.helpers.js +277 -0
  81. package/dist/commands/release.helpers.js.map +1 -0
  82. package/dist/commands/release.js +127 -0
  83. package/dist/commands/release.js.map +1 -0
  84. package/dist/commands/remove.d.ts +6 -0
  85. package/dist/commands/remove.d.ts.map +1 -0
  86. package/dist/commands/remove.helpers.d.ts +59 -0
  87. package/dist/commands/remove.helpers.d.ts.map +1 -0
  88. package/dist/commands/remove.helpers.js +190 -0
  89. package/dist/commands/remove.helpers.js.map +1 -0
  90. package/dist/commands/remove.js +137 -0
  91. package/dist/commands/remove.js.map +1 -0
  92. package/dist/commands/repair.d.ts +6 -0
  93. package/dist/commands/repair.d.ts.map +1 -0
  94. package/dist/commands/repair.helpers.d.ts +5 -0
  95. package/dist/commands/repair.helpers.d.ts.map +1 -0
  96. package/dist/commands/repair.helpers.js +499 -0
  97. package/dist/commands/repair.helpers.js.map +1 -0
  98. package/dist/commands/repair.js +28 -0
  99. package/dist/commands/repair.js.map +1 -0
  100. package/dist/commands/status.d.ts +6 -0
  101. package/dist/commands/status.d.ts.map +1 -0
  102. package/dist/commands/status.js +116 -0
  103. package/dist/commands/status.js.map +1 -0
  104. package/dist/commands/system-integration.d.ts +6 -0
  105. package/dist/commands/system-integration.d.ts.map +1 -0
  106. package/dist/commands/system-integration.helpers.d.ts +70 -0
  107. package/dist/commands/system-integration.helpers.d.ts.map +1 -0
  108. package/dist/commands/system-integration.helpers.js +313 -0
  109. package/dist/commands/system-integration.helpers.js.map +1 -0
  110. package/dist/commands/system-integration.js +132 -0
  111. package/dist/commands/system-integration.js.map +1 -0
  112. package/dist/commands/tmux.d.ts +11 -0
  113. package/dist/commands/tmux.d.ts.map +1 -0
  114. package/dist/commands/tmux.js +500 -0
  115. package/dist/commands/tmux.js.map +1 -0
  116. package/dist/commands/todo.d.ts +6 -0
  117. package/dist/commands/todo.d.ts.map +1 -0
  118. package/dist/commands/todo.helpers.d.ts +50 -0
  119. package/dist/commands/todo.helpers.d.ts.map +1 -0
  120. package/dist/commands/todo.helpers.js +297 -0
  121. package/dist/commands/todo.helpers.js.map +1 -0
  122. package/dist/commands/todo.js +579 -0
  123. package/dist/commands/todo.js.map +1 -0
  124. package/dist/commands/update.d.ts +18 -0
  125. package/dist/commands/update.d.ts.map +1 -0
  126. package/dist/commands/update.helpers.d.ts +89 -0
  127. package/dist/commands/update.helpers.d.ts.map +1 -0
  128. package/dist/commands/update.helpers.js +335 -0
  129. package/dist/commands/update.helpers.js.map +1 -0
  130. package/dist/commands/update.js +187 -0
  131. package/dist/commands/update.js.map +1 -0
  132. package/dist/core/config-loader.d.ts +47 -0
  133. package/dist/core/config-loader.d.ts.map +1 -0
  134. package/dist/core/config-loader.js +188 -0
  135. package/dist/core/config-loader.js.map +1 -0
  136. package/dist/core/config-merger.d.ts +29 -0
  137. package/dist/core/config-merger.d.ts.map +1 -0
  138. package/dist/core/config-merger.js +100 -0
  139. package/dist/core/config-merger.js.map +1 -0
  140. package/dist/core/config-migration.d.ts +64 -0
  141. package/dist/core/config-migration.d.ts.map +1 -0
  142. package/dist/core/config-migration.js +340 -0
  143. package/dist/core/config-migration.js.map +1 -0
  144. package/dist/core/config-new.d.ts +19 -0
  145. package/dist/core/config-new.d.ts.map +1 -0
  146. package/dist/core/config-new.js +58 -0
  147. package/dist/core/config-new.js.map +1 -0
  148. package/dist/core/config-schema.d.ts +221 -0
  149. package/dist/core/config-schema.d.ts.map +1 -0
  150. package/dist/core/config-schema.js +168 -0
  151. package/dist/core/config-schema.js.map +1 -0
  152. package/dist/core/config.d.ts +55 -0
  153. package/dist/core/config.d.ts.map +1 -0
  154. package/dist/core/config.js +143 -0
  155. package/dist/core/config.js.map +1 -0
  156. package/dist/core/dev-server.d.ts +29 -0
  157. package/dist/core/dev-server.d.ts.map +1 -0
  158. package/dist/core/dev-server.js +54 -0
  159. package/dist/core/dev-server.js.map +1 -0
  160. package/dist/core/discovery.d.ts +51 -0
  161. package/dist/core/discovery.d.ts.map +1 -0
  162. package/dist/core/discovery.js +247 -0
  163. package/dist/core/discovery.js.map +1 -0
  164. package/dist/core/env.d.ts +13 -0
  165. package/dist/core/env.d.ts.map +1 -0
  166. package/dist/core/env.js +75 -0
  167. package/dist/core/env.js.map +1 -0
  168. package/dist/core/git.d.ts +31 -0
  169. package/dist/core/git.d.ts.map +1 -0
  170. package/dist/core/git.js +56 -0
  171. package/dist/core/git.js.map +1 -0
  172. package/dist/core/paths.d.ts +86 -0
  173. package/dist/core/paths.d.ts.map +1 -0
  174. package/dist/core/paths.js +256 -0
  175. package/dist/core/paths.js.map +1 -0
  176. package/dist/core/tmux-config.d.ts +174 -0
  177. package/dist/core/tmux-config.d.ts.map +1 -0
  178. package/dist/core/tmux-config.js +545 -0
  179. package/dist/core/tmux-config.js.map +1 -0
  180. package/dist/core/tmux-config.legacy.d.ts +243 -0
  181. package/dist/core/tmux-config.legacy.d.ts.map +1 -0
  182. package/dist/core/tmux-config.legacy.js +896 -0
  183. package/dist/core/tmux-config.legacy.js.map +1 -0
  184. package/dist/core/tmux.d.ts +214 -0
  185. package/dist/core/tmux.d.ts.map +1 -0
  186. package/dist/core/tmux.js +712 -0
  187. package/dist/core/tmux.js.map +1 -0
  188. package/dist/core/toolchain-resolver.d.ts +51 -0
  189. package/dist/core/toolchain-resolver.d.ts.map +1 -0
  190. package/dist/core/toolchain-resolver.js +364 -0
  191. package/dist/core/toolchain-resolver.js.map +1 -0
  192. package/dist/core/worktree-status.d.ts +20 -0
  193. package/dist/core/worktree-status.d.ts.map +1 -0
  194. package/dist/core/worktree-status.js +67 -0
  195. package/dist/core/worktree-status.js.map +1 -0
  196. package/dist/i18n/index.d.ts +36 -0
  197. package/dist/i18n/index.d.ts.map +1 -0
  198. package/dist/i18n/index.js +157 -0
  199. package/dist/i18n/index.js.map +1 -0
  200. package/dist/i18n/locales/en.d.ts +866 -0
  201. package/dist/i18n/locales/en.d.ts.map +1 -0
  202. package/dist/i18n/locales/en.js +985 -0
  203. package/dist/i18n/locales/en.js.map +1 -0
  204. package/dist/i18n/locales/zh-CN.d.ts +865 -0
  205. package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
  206. package/dist/i18n/locales/zh-CN.js +985 -0
  207. package/dist/i18n/locales/zh-CN.js.map +1 -0
  208. package/dist/index.d.ts +2 -0
  209. package/dist/index.d.ts.map +1 -0
  210. package/dist/index.js +4 -0
  211. package/dist/index.js.map +1 -0
  212. package/dist/plugins/builtin/gradle.d.ts +9 -0
  213. package/dist/plugins/builtin/gradle.d.ts.map +1 -0
  214. package/dist/plugins/builtin/gradle.js +164 -0
  215. package/dist/plugins/builtin/gradle.js.map +1 -0
  216. package/dist/plugins/builtin/maven.d.ts +9 -0
  217. package/dist/plugins/builtin/maven.d.ts.map +1 -0
  218. package/dist/plugins/builtin/maven.js +127 -0
  219. package/dist/plugins/builtin/maven.js.map +1 -0
  220. package/dist/plugins/builtin/npm.d.ts +9 -0
  221. package/dist/plugins/builtin/npm.d.ts.map +1 -0
  222. package/dist/plugins/builtin/npm.js +238 -0
  223. package/dist/plugins/builtin/npm.js.map +1 -0
  224. package/dist/plugins/builtin/pip.d.ts +9 -0
  225. package/dist/plugins/builtin/pip.d.ts.map +1 -0
  226. package/dist/plugins/builtin/pip.js +210 -0
  227. package/dist/plugins/builtin/pip.js.map +1 -0
  228. package/dist/plugins/builtin/xcode.d.ts +12 -0
  229. package/dist/plugins/builtin/xcode.d.ts.map +1 -0
  230. package/dist/plugins/builtin/xcode.js +438 -0
  231. package/dist/plugins/builtin/xcode.js.map +1 -0
  232. package/dist/plugins/index.d.ts +13 -0
  233. package/dist/plugins/index.d.ts.map +1 -0
  234. package/dist/plugins/index.js +24 -0
  235. package/dist/plugins/index.js.map +1 -0
  236. package/dist/plugins/manager.d.ts +93 -0
  237. package/dist/plugins/manager.d.ts.map +1 -0
  238. package/dist/plugins/manager.js +270 -0
  239. package/dist/plugins/manager.js.map +1 -0
  240. package/dist/plugins/utils.d.ts +42 -0
  241. package/dist/plugins/utils.d.ts.map +1 -0
  242. package/dist/plugins/utils.js +175 -0
  243. package/dist/plugins/utils.js.map +1 -0
  244. package/dist/types/index.d.ts +104 -0
  245. package/dist/types/index.d.ts.map +1 -0
  246. package/dist/types/index.js +21 -0
  247. package/dist/types/index.js.map +1 -0
  248. package/dist/types/plugin.d.ts +200 -0
  249. package/dist/types/plugin.d.ts.map +1 -0
  250. package/dist/types/plugin.js +19 -0
  251. package/dist/types/plugin.js.map +1 -0
  252. package/dist/utils/logger.d.ts +42 -0
  253. package/dist/utils/logger.d.ts.map +1 -0
  254. package/dist/utils/logger.js +80 -0
  255. package/dist/utils/logger.js.map +1 -0
  256. package/docs/en/manual/04-command-reference/README.md +58 -0
  257. package/docs/en/manual/README.md +108 -0
  258. package/docs/zh-CN/manual/04-command-reference/README.md +58 -0
  259. package/docs/zh-CN/manual/README.md +108 -0
  260. package/package.json +65 -0
  261. package/shell/colyn.sh +55 -0
  262. package/shell/completion.bash +270 -0
  263. package/shell/completion.zsh +167 -0
@@ -0,0 +1,200 @@
1
+ /**
2
+ * 工具链插件类型定义
3
+ */
4
+ /**
5
+ * repairSettings 的上下文对象
6
+ *
7
+ * 在 colyn init / colyn repair 时传入各插件的 repairSettings 方法。
8
+ */
9
+ export interface RepairSettingsContext {
10
+ /** 项目根目录(.colyn 的父目录) */
11
+ projectRoot: string;
12
+ /** 主分支目录路径(包含项目代码文件) */
13
+ worktreePath: string;
14
+ /** 当前已保存的工具链专属配置(来自 settings.toolchain.settings 或 projects[i].toolchain.settings) */
15
+ currentSettings: Record<string, unknown>;
16
+ /** 是否处于非交互式模式(如 CI 环境,不能弹出交互提问) */
17
+ nonInteractive: boolean;
18
+ }
19
+ /**
20
+ * 插件命令执行失败时抛出的异常
21
+ *
22
+ * lint / build / install / publish / init 失败时插件必须抛出此类型,
23
+ * 以便 PluginManager 在 verbose 模式下将命令输出展示给用户。
24
+ */
25
+ export declare class PluginCommandError extends Error {
26
+ /** 失败命令的完整输出(stdout + stderr) */
27
+ readonly output: string;
28
+ constructor(message: string, output: string);
29
+ }
30
+ /**
31
+ * 端口分配配置
32
+ * null 表示该工具链不需要端口(如库项目、CLI 工具)
33
+ */
34
+ export interface PortConfig {
35
+ /** 配置文件中的键名,如 "PORT"、"server.port" */
36
+ key: string;
37
+ /** 默认端口号 */
38
+ defaultPort: number;
39
+ }
40
+ /**
41
+ * 工具链插件接口
42
+ *
43
+ * 所有方法均为可选,插件只需实现其关心的扩展点。
44
+ * 未实现的扩展点由 colyn 核心跳过或使用默认行为。
45
+ */
46
+ export interface ToolchainPlugin {
47
+ /** 插件唯一标识符,如 'npm' | 'maven' | 'gradle' | 'pip' */
48
+ name: string;
49
+ /** 用于界面展示的名称,如 'Node.js (npm)' */
50
+ displayName: string;
51
+ /**
52
+ * 检测项目是否使用此工具链
53
+ *
54
+ * 通常通过扫描项目特定文件(package.json / pom.xml 等)判断。
55
+ *
56
+ * @param worktreePath 执行检测的目录路径
57
+ * @returns true 表示匹配,false 表示不匹配
58
+ */
59
+ detect(worktreePath: string): boolean | Promise<boolean>;
60
+ /**
61
+ * 返回端口分配配置
62
+ *
63
+ * 返回 null 表示该工具链不需要端口(如库项目)。
64
+ * colyn 根据返回值决定是否为该插件分配 worktree 端口。
65
+ */
66
+ portConfig?(): PortConfig | null;
67
+ /**
68
+ * 读取配置文件,返回统一键值对
69
+ *
70
+ * 执行策略:按插件注册顺序依次尝试,第一个返回非 null 的结果生效。
71
+ * 插件自行决定从 worktreePath 下的哪个文件读取(如 .env.local)。
72
+ *
73
+ * @param worktreePath worktree 目录路径
74
+ * @returns 键值对,或 null 表示读取失败(文件不存在或格式不支持)
75
+ */
76
+ readRuntimeConfig?(worktreePath: string): Promise<Record<string, string> | null>;
77
+ /**
78
+ * 将键值对写入配置文件(支持原生格式)
79
+ *
80
+ * @param worktreePath worktree 目录路径(由插件自行决定写入哪个配置文件)
81
+ * @param config 要写入的键值对
82
+ */
83
+ writeRuntimeConfig?(worktreePath: string, config: Record<string, string>): Promise<void>;
84
+ /**
85
+ * 返回 dev server 启动命令
86
+ *
87
+ * 供 terminal session 插件调用,以便在终端中自动启动 dev server。
88
+ * 工具链插件只负责返回命令,不负责执行。
89
+ *
90
+ * @param worktreePath 执行命令检测的目录路径
91
+ * @returns 命令数组(如 ['npm', 'run', 'dev']),或 null 表示无 dev server
92
+ */
93
+ devServerCommand?(worktreePath: string): string[] | null | Promise<string[] | null>;
94
+ /**
95
+ * 返回运行时配置文件名
96
+ *
97
+ * colyn 会确保该文件名被添加到 .gitignore。
98
+ * 返回 null 表示该工具链无运行时配置文件需要忽略。
99
+ *
100
+ * @returns 文件名(如 '.env.local'、'application-local.properties'),或 null
101
+ */
102
+ getRuntimeConfigFileName?(): string | null;
103
+ /**
104
+ * 检查并修复插件专属项目配置
105
+ *
106
+ * 在 `colyn init` 和 `colyn repair` 时调用。
107
+ * 插件应扫描项目结构,识别必要的配置项(如 Xcode 的 scheme / destination)。
108
+ * 如果无法自动确定,可通过交互式提问让用户填写。
109
+ * 结果由 colyn 保存到 `.colyn/settings.json` 的 `toolchain.settings` 或 `projects[i].toolchain.settings` 字段。
110
+ *
111
+ * **典型用途**:Xcode 插件通过此方法询问用户 scheme 和 destination,
112
+ * 供后续 `build` 命令使用。
113
+ *
114
+ * @param context 包含 worktreePath、当前已保存工具链配置、非交互模式标志
115
+ * @returns 工具链专属配置键值对(将完整覆盖对应 toolchain.settings)
116
+ */
117
+ repairSettings?(context: RepairSettingsContext): Promise<Record<string, unknown>>;
118
+ /**
119
+ * 安装项目依赖
120
+ *
121
+ * 触发场景:
122
+ * - `colyn add` 后:在新建 worktree 目录下安装依赖
123
+ * - `colyn release` 前:在主分支目录下安装依赖,确保依赖最新
124
+ *
125
+ * @param worktreePath 执行安装的目录路径(worktree 或主分支目录)
126
+ * @throws {PluginCommandError} 安装失败时,output 包含命令输出
127
+ */
128
+ install?(worktreePath: string): Promise<void>;
129
+ /**
130
+ * 执行代码质量检查
131
+ *
132
+ * 触发时机:`colyn merge` 前(预检)和 `colyn release` 前
133
+ *
134
+ * **缺失处理**:如果工具链没有 lint 脚本,插件应**静默跳过**(不抛出异常)。
135
+ *
136
+ * @param worktreePath 执行检查的目录路径
137
+ * @throws {PluginCommandError} lint 失败时,output 包含命令输出
138
+ */
139
+ lint?(worktreePath: string): Promise<void>;
140
+ /**
141
+ * 构建项目
142
+ *
143
+ * 在 `colyn release` 时调用。不实现则跳过。
144
+ *
145
+ * **缺失处理**:如果工具链没有 build 脚本,插件应**静默跳过**(不抛出异常)。
146
+ *
147
+ * @param worktreePath 执行构建的目录路径
148
+ * @throws {PluginCommandError} build 失败时,output 包含命令输出
149
+ */
150
+ build?(worktreePath: string): Promise<void>;
151
+ /**
152
+ * 读取项目当前版本号
153
+ *
154
+ * 在 `colyn release` 时调用,用于确定基础版本以计算 major/minor/patch 增量。
155
+ * 未实现则视为版本不可读(用户需提供完整版本号)。
156
+ *
157
+ * @param worktreePath 执行读取的目录路径
158
+ * @returns 版本号字符串(如 "1.2.0"),或 null 表示无法读取
159
+ */
160
+ readVersion?(worktreePath: string): Promise<string | null>;
161
+ /**
162
+ * 更新项目版本号
163
+ *
164
+ * 在 `colyn release` 时调用。
165
+ *
166
+ * **缺失处理**:已激活插件若未实现此方法,PluginManager 报错终止 release。
167
+ *
168
+ * @param worktreePath 执行版本更新的目录路径
169
+ * @param version 新版本号(如 "1.2.0")
170
+ */
171
+ bumpVersion?(worktreePath: string, version: string): Promise<void>;
172
+ /**
173
+ * 发布到包管理服务
174
+ *
175
+ * 在 `colyn release` 完成 push 后调用。
176
+ * 由各插件执行对应的发布命令:
177
+ * - npm: publish 到 npmjs.com
178
+ * - maven/gradle: publish 到配置的仓库
179
+ * - pip: publish 到配置的 Python 包仓库
180
+ * - xcode: 视项目类型执行对应发布动作(或静默跳过)
181
+ *
182
+ * **缺失处理**:未实现则跳过。
183
+ *
184
+ * @param worktreePath 执行发布的目录路径
185
+ * @throws {PluginCommandError} 发布失败时,output 包含命令输出
186
+ */
187
+ publish?(worktreePath: string): Promise<void>;
188
+ /**
189
+ * 检查当前项目是否满足发布条件
190
+ *
191
+ * 在 `colyn release` 的发布阶段前调用。
192
+ * 返回 false 表示当前工具链在该目录下不应执行发布(例如 npm private 包)。
193
+ *
194
+ * **缺失处理**:未实现时,默认视为可发布。
195
+ *
196
+ * @param worktreePath 执行检查的目录路径
197
+ */
198
+ checkPublishable?(worktreePath: string): Promise<boolean>;
199
+ }
200
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,qFAAqF;IACrF,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,mCAAmC;IACnC,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK5C;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAK9B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IAMpB;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAMzD;;;;;OAKG;IACH,UAAU,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC;IAEjC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAEjF;;;;;OAKG;IACH,kBAAkB,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAMzF;;;;;;;;OAQG;IACH,gBAAgB,CAAC,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAMpF;;;;;;;OAOG;IACH,wBAAwB,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC;IAE3C;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAMlF;;;;;;;;;OASG;IACH,OAAO,CAAC,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;;;;;;;OASG;IACH,IAAI,CAAC,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;;;;;;OASG;IACH,KAAK,CAAC,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C;;;;;;;;OAQG;IACH,WAAW,CAAC,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE3D;;;;;;;;;OASG;IACH,WAAW,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;;;;;;;OASG;IACH,gBAAgB,CAAC,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3D"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 工具链插件类型定义
3
+ */
4
+ /**
5
+ * 插件命令执行失败时抛出的异常
6
+ *
7
+ * lint / build / install / publish / init 失败时插件必须抛出此类型,
8
+ * 以便 PluginManager 在 verbose 模式下将命令输出展示给用户。
9
+ */
10
+ export class PluginCommandError extends Error {
11
+ /** 失败命令的完整输出(stdout + stderr) */
12
+ output;
13
+ constructor(message, output) {
14
+ super(message);
15
+ this.name = 'PluginCommandError';
16
+ this.output = output;
17
+ }
18
+ }
19
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH;;;;;GAKG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,iCAAiC;IACxB,MAAM,CAAS;IAExB,YAAY,OAAe,EAAE,MAAc;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
@@ -0,0 +1,42 @@
1
+ import { CommandResult } from '../types/index.js';
2
+ /**
3
+ * 输出到 stderr(彩色,给用户看)
4
+ */
5
+ export declare function output(message: string): void;
6
+ /**
7
+ * 输出空行到 stderr
8
+ */
9
+ export declare function outputLine(): void;
10
+ /**
11
+ * 输出成功信息到 stderr
12
+ */
13
+ export declare function outputSuccess(message: string): void;
14
+ /**
15
+ * 输出错误信息到 stderr
16
+ */
17
+ export declare function outputError(message: string): void;
18
+ /**
19
+ * 输出警告信息到 stderr
20
+ */
21
+ export declare function outputWarning(message: string): void;
22
+ /**
23
+ * 输出普通信息到 stderr
24
+ */
25
+ export declare function outputInfo(message: string): void;
26
+ /**
27
+ * 输出高亮信息到 stderr
28
+ */
29
+ export declare function outputBold(message: string): void;
30
+ /**
31
+ * 输出提示步骤到 stderr
32
+ */
33
+ export declare function outputStep(message: string): void;
34
+ /**
35
+ * 输出命令结果到 stdout(JSON 格式,给 bash 解析)
36
+ */
37
+ export declare function outputResult(result: CommandResult): void;
38
+ /**
39
+ * 格式化并显示错误到 stderr
40
+ */
41
+ export declare function formatError(error: unknown): void;
42
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG9D;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5C;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAOxD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAWhD"}
@@ -0,0 +1,80 @@
1
+ import chalk from 'chalk';
2
+ import { ColynError } from '../types/index.js';
3
+ import { t } from '../i18n/index.js';
4
+ /**
5
+ * 输出到 stderr(彩色,给用户看)
6
+ */
7
+ export function output(message) {
8
+ process.stderr.write(message + '\n');
9
+ }
10
+ /**
11
+ * 输出空行到 stderr
12
+ */
13
+ export function outputLine() {
14
+ process.stderr.write('\n');
15
+ }
16
+ /**
17
+ * 输出成功信息到 stderr
18
+ */
19
+ export function outputSuccess(message) {
20
+ output(chalk.green(`✓ ${message}`));
21
+ }
22
+ /**
23
+ * 输出错误信息到 stderr
24
+ */
25
+ export function outputError(message) {
26
+ output(chalk.red(`✗ ${message}`));
27
+ }
28
+ /**
29
+ * 输出警告信息到 stderr
30
+ */
31
+ export function outputWarning(message) {
32
+ output(chalk.yellow(`⚠ ${message}`));
33
+ }
34
+ /**
35
+ * 输出普通信息到 stderr
36
+ */
37
+ export function outputInfo(message) {
38
+ output(chalk.gray(message));
39
+ }
40
+ /**
41
+ * 输出高亮信息到 stderr
42
+ */
43
+ export function outputBold(message) {
44
+ output(chalk.bold(message));
45
+ }
46
+ /**
47
+ * 输出提示步骤到 stderr
48
+ */
49
+ export function outputStep(message) {
50
+ output(chalk.cyan(message));
51
+ }
52
+ /**
53
+ * 输出命令结果到 stdout(JSON 格式,给 bash 解析)
54
+ */
55
+ export function outputResult(result) {
56
+ // 默认不输出机器结果,避免污染人类可读的终端输出。
57
+ // 仅 shell 包装器在需要时设置 COLYN_OUTPUT_JSON=1。
58
+ if (process.env.COLYN_OUTPUT_JSON !== '1') {
59
+ return;
60
+ }
61
+ console.log(JSON.stringify(result));
62
+ }
63
+ /**
64
+ * 格式化并显示错误到 stderr
65
+ */
66
+ export function formatError(error) {
67
+ if (error instanceof ColynError) {
68
+ output(chalk.red(`\n✗ ${error.message}`));
69
+ if (error.hint) {
70
+ output(chalk.yellow(` ${t('logger.hintPrefix')} ${error.hint}\n`));
71
+ }
72
+ }
73
+ else if (error instanceof Error) {
74
+ output(chalk.red(`\n✗ ${t('logger.errorPrefix')} ${error.message}\n`));
75
+ }
76
+ else {
77
+ output(chalk.red(`\n✗ ${t('common.unknownError')}\n`));
78
+ }
79
+ }
80
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAErC;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,2BAA2B;IAC3B,yCAAyC;IACzC,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,EAAE,CAAC;QAC1C,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
@@ -0,0 +1,58 @@
1
+ # Command Reference
2
+
3
+ This section provides detailed reference documentation for all Colyn commands.
4
+
5
+ ---
6
+
7
+ ## Table of Contents
8
+
9
+ - [Global Options](01-worktree.md#global-options)
10
+
11
+ ### Worktree Management
12
+
13
+ - [colyn init](01-worktree.md#colyn-init) — Initialize Worktree management structure
14
+ - [colyn add](01-worktree.md#colyn-add) — Create a new Worktree
15
+ - [colyn list](01-worktree.md#colyn-list) — List all Worktrees
16
+ - [colyn list-project](01-worktree.md#colyn-list-project) — List Worktrees across all projects
17
+ - [colyn merge](01-worktree.md#colyn-merge) — Merge Worktree into main branch
18
+ - [colyn remove](01-worktree.md#colyn-remove) — Remove a Worktree
19
+
20
+ ### Branch & Status
21
+
22
+ - [colyn checkout](02-branch-status.md#colyn-checkout) — Switch branches in a Worktree
23
+ - [colyn info](02-branch-status.md#colyn-info) — Show project info for current directory
24
+ - [colyn status](02-branch-status.md#colyn-status) — Query or set workflow status
25
+
26
+ ### System & Configuration
27
+
28
+ - [colyn repair](03-system-config.md#colyn-repair) — Check and repair project configuration
29
+ - [colyn config](03-system-config.md#colyn-config) — Manage Colyn configuration
30
+ - [colyn completion](03-system-config.md#colyn-completion) — Generate shell auto-completion script
31
+ - [colyn setup](03-system-config.md#colyn-setup) — Configure shell integration
32
+
33
+ ### Workflow Tools
34
+
35
+ - [colyn release](04-workflow.md#colyn-release) — Publish a new version
36
+ - [colyn todo](04-workflow.md#colyn-todo) — Manage project Todo task list
37
+
38
+ ---
39
+
40
+ ## Quick Reference
41
+
42
+ | Command | Alias | Purpose |
43
+ |---------|-------|---------|
44
+ | `colyn init` | - | Initialize project |
45
+ | `colyn add` | - | Create Worktree |
46
+ | `colyn list` | - | List Worktrees |
47
+ | `colyn list-project` | `lsp` | List all projects |
48
+ | `colyn merge` | - | Merge branch |
49
+ | `colyn remove` | - | Remove Worktree |
50
+ | `colyn checkout` | `co` | Switch branch |
51
+ | `colyn info` | - | View location info |
52
+ | `colyn status` | `st` | Query/set workflow status |
53
+ | `colyn repair` | - | Repair configuration |
54
+ | `colyn config` | - | Manage configuration |
55
+ | `colyn completion` | - | Generate completion script |
56
+ | `colyn setup` | - | Configure shell integration |
57
+ | `colyn release` | - | Publish version |
58
+ | `colyn todo` | - | Manage todo tasks |
@@ -0,0 +1,108 @@
1
+ # Colyn User Manual
2
+
3
+ **Version**: 2.5.5
4
+ **Last Updated**: 2026-02-10
5
+
6
+ ---
7
+
8
+ ## Welcome to Colyn
9
+
10
+ Colyn is a powerful Git Worktree management tool designed for developers who need to work on multiple features in parallel. It simplifies the creation and management of Git worktrees, handles port allocation automatically, supports tmux integration, and makes multi-branch parallel development effortless.
11
+
12
+ ### Core Features
13
+
14
+ - **Simplified Worktree Management**: Create and manage git worktrees with a single command, no complex commands required
15
+ - **Automatic Port Allocation**: Intelligently assigns dev server ports to avoid conflicts
16
+ - **Automatic Directory Switching**: Automatically switches to the target directory after command execution
17
+ - **Smart Branch Handling**: Automatically identifies local branches, remote branches, or creates new ones
18
+ - **Auto-completion**: Supports Bash/Zsh Tab key completion for commands, options, and arguments
19
+ - **tmux Integration**: Efficient worktree management and switching within tmux
20
+ - **Cross-platform Support**: Full support for macOS, Linux, and Windows
21
+
22
+ ### Use Cases
23
+
24
+ Colyn is especially well-suited for the following scenarios:
25
+
26
+ - **Parallel Feature Development**: Develop multiple features simultaneously without frequently switching branches
27
+ - **Multi-version Testing**: Run dev servers on different branches simultaneously for comparison testing
28
+ - **Bug Fixes**: Maintain your current development state while quickly switching to a bugfix branch
29
+ - **Code Review**: Review others' branch code in an isolated environment
30
+ - **AI-assisted Development**: Use AI tools like Claude Code to achieve "Parallel Vibe Coding"
31
+
32
+ ---
33
+
34
+ ## Manual Structure
35
+
36
+ This user manual contains the following chapters:
37
+
38
+ 0. **[User Story: From Solo Developer to an AI Team](00-user-story.md)** - See what Colyn can do through a complete real-world scenario
39
+ 1. **[Quick Start](01-quick-start.md)** - Get up and running in 5 minutes
40
+ 2. **[Installation Guide](02-installation.md)** - Detailed installation instructions
41
+ 3. **[Core Concepts](03-core-concepts.md)** - Understanding how Colyn works
42
+ 4. **[Command Reference](04-command-reference/README.md)** - Detailed documentation for all commands (organized by category)
43
+ 5. **[Advanced Usage](05-advanced-usage.md)** - Advanced features and techniques
44
+ 6. **[tmux Integration](06-tmux-integration.md)** - Efficient workflows in a tmux environment
45
+ 7. **[Best Practices](07-best-practices.md)** - Recommended workflows and tips
46
+ 8. **[Troubleshooting](08-troubleshooting.md)** - Common issues and solutions
47
+ 9. **[Glossary](09-glossary.md)** - Quick reference for terms and concepts
48
+ 10. **[Configuration System](10-configuration.md)** - Complete configuration file guide
49
+ 11. **[Plugin System](11-plugin-system.md)** - Multi-language toolchain support (npm / Maven / Gradle / pip)
50
+
51
+ ---
52
+
53
+ ## Quick Navigation
54
+
55
+ ### New Users
56
+
57
+ If this is your first time using Colyn:
58
+
59
+ 1. Read [User Story](00-user-story.md) to quickly understand what problem Colyn solves
60
+ 2. Read [Quick Start](01-quick-start.md) to learn the basics
61
+ 3. Check [Core Concepts](03-core-concepts.md) to understand how it works
62
+ 4. Refer to [Command Reference](04-command-reference/README.md) to learn specific commands
63
+
64
+ ### Existing Users
65
+
66
+ If you are already using Colyn:
67
+
68
+ - Need help with a specific command → [Command Reference](04-command-reference/README.md)
69
+ - Configuration file setup → [Configuration System](10-configuration.md)
70
+ - Having an issue → [Troubleshooting](08-troubleshooting.md)
71
+ - Looking up a term → [Glossary](09-glossary.md)
72
+ - Learning advanced techniques → [Advanced Usage](05-advanced-usage.md)
73
+
74
+ ### tmux Users
75
+
76
+ If you use tmux:
77
+
78
+ - Complete tmux integration guide → [tmux Integration](06-tmux-integration.md)
79
+ - Shortcuts and workflows → [Best Practices](07-best-practices.md)
80
+
81
+ ---
82
+
83
+ ## Getting Help
84
+
85
+ ### Command-line Help
86
+
87
+ View help at any time from the command line:
88
+
89
+ ```bash
90
+ # View all commands
91
+ colyn --help
92
+
93
+ # View help for a specific command
94
+ colyn init --help
95
+ colyn add --help
96
+ ```
97
+
98
+ ### Project Information
99
+
100
+ - **GitHub Repository**: [github.com/colinhan/colyn](https://github.com/colinhan/colyn)
101
+ - **Issue Tracker**: [GitHub Issues](https://github.com/colinhan/colyn/issues)
102
+ - **Version History**: [CHANGELOG.md](../CHANGELOG.md)
103
+
104
+ ---
105
+
106
+ ## Get Started
107
+
108
+ Ready? Begin your Colyn journey with [Quick Start](01-quick-start.md)!
@@ -0,0 +1,58 @@
1
+ # 命令参考手册
2
+
3
+ 本章节提供 Colyn 所有命令的详细参考文档。
4
+
5
+ ---
6
+
7
+ ## 目录
8
+
9
+ - [全局选项](01-worktree.md#全局选项)
10
+
11
+ ### Worktree 管理
12
+
13
+ - [colyn init](01-worktree.md#colyn-init) — 初始化 Worktree 管理结构
14
+ - [colyn add](01-worktree.md#colyn-add) — 创建新 Worktree
15
+ - [colyn list](01-worktree.md#colyn-list) — 列出所有 Worktree
16
+ - [colyn list-project](01-worktree.md#colyn-list-project) — 列出所有项目的 Worktree
17
+ - [colyn merge](01-worktree.md#colyn-merge) — 合并 Worktree 到主分支
18
+ - [colyn remove](01-worktree.md#colyn-remove) — 删除 Worktree
19
+
20
+ ### 分支与状态
21
+
22
+ - [colyn checkout](02-branch-status.md#colyn-checkout) — 在 Worktree 中切换分支
23
+ - [colyn info](02-branch-status.md#colyn-info) — 显示当前目录的项目信息
24
+ - [colyn status](02-branch-status.md#colyn-status) — 查询或设置工作流状态
25
+
26
+ ### 系统与配置
27
+
28
+ - [colyn repair](03-system-config.md#colyn-repair) — 检查并修复项目配置
29
+ - [colyn config](03-system-config.md#colyn-config) — 管理 Colyn 配置
30
+ - [colyn completion](03-system-config.md#colyn-completion) — 生成 shell 自动补全脚本
31
+ - [colyn setup](03-system-config.md#colyn-setup) — 配置 shell 集成
32
+
33
+ ### 工作流工具
34
+
35
+ - [colyn release](04-workflow.md#colyn-release) — 发布新版本
36
+ - [colyn todo](04-workflow.md#colyn-todo) — 管理项目 Todo 任务列表
37
+
38
+ ---
39
+
40
+ ## 快速查阅
41
+
42
+ | 命令 | 别名 | 用途 |
43
+ |------|------|------|
44
+ | `colyn init` | - | 初始化项目 |
45
+ | `colyn add` | - | 创建 Worktree |
46
+ | `colyn list` | - | 列出 Worktree |
47
+ | `colyn list-project` | `lsp` | 列出所有项目 |
48
+ | `colyn merge` | - | 合并分支 |
49
+ | `colyn remove` | - | 删除 Worktree |
50
+ | `colyn checkout` | `co` | 切换分支 |
51
+ | `colyn info` | - | 查看位置信息 |
52
+ | `colyn status` | `st` | 查询/设置工作流状态 |
53
+ | `colyn repair` | - | 修复配置 |
54
+ | `colyn config` | - | 管理配置 |
55
+ | `colyn completion` | - | 生成补全脚本 |
56
+ | `colyn setup` | - | 配置 shell 集成 |
57
+ | `colyn release` | - | 发布版本 |
58
+ | `colyn todo` | - | 管理待办任务 |