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.
- package/README-en.md +85 -0
- package/README.md +85 -0
- package/bin/colyn +25 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +116 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/add.d.ts +6 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.helpers.d.ts +48 -0
- package/dist/commands/add.helpers.d.ts.map +1 -0
- package/dist/commands/add.helpers.js +251 -0
- package/dist/commands/add.helpers.js.map +1 -0
- package/dist/commands/add.js +286 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/checkout.d.ts +16 -0
- package/dist/commands/checkout.d.ts.map +1 -0
- package/dist/commands/checkout.js +428 -0
- package/dist/commands/checkout.js.map +1 -0
- package/dist/commands/completion.d.ts +10 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +380 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config.d.ts +11 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +338 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/index.d.ts +10 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +41 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/info.d.ts +6 -0
- package/dist/commands/info.d.ts.map +1 -0
- package/dist/commands/info.js +374 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.handlers.d.ts +27 -0
- package/dist/commands/init.handlers.d.ts.map +1 -0
- package/dist/commands/init.handlers.js +314 -0
- package/dist/commands/init.handlers.js.map +1 -0
- package/dist/commands/init.helpers.d.ts +42 -0
- package/dist/commands/init.helpers.d.ts.map +1 -0
- package/dist/commands/init.helpers.js +275 -0
- package/dist/commands/init.helpers.js.map +1 -0
- package/dist/commands/init.js +61 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/install.d.ts +6 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.helpers.d.ts +32 -0
- package/dist/commands/install.helpers.d.ts.map +1 -0
- package/dist/commands/install.helpers.js +124 -0
- package/dist/commands/install.helpers.js.map +1 -0
- package/dist/commands/install.js +104 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/list-project.d.ts +11 -0
- package/dist/commands/list-project.d.ts.map +1 -0
- package/dist/commands/list-project.js +260 -0
- package/dist/commands/list-project.js.map +1 -0
- package/dist/commands/list.d.ts +15 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.helpers.d.ts +50 -0
- package/dist/commands/list.helpers.d.ts.map +1 -0
- package/dist/commands/list.helpers.js +143 -0
- package/dist/commands/list.helpers.js.map +1 -0
- package/dist/commands/list.js +530 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/merge.d.ts +6 -0
- package/dist/commands/merge.d.ts.map +1 -0
- package/dist/commands/merge.helpers.d.ts +74 -0
- package/dist/commands/merge.helpers.d.ts.map +1 -0
- package/dist/commands/merge.helpers.js +307 -0
- package/dist/commands/merge.helpers.js.map +1 -0
- package/dist/commands/merge.js +260 -0
- package/dist/commands/merge.js.map +1 -0
- package/dist/commands/release.d.ts +6 -0
- package/dist/commands/release.d.ts.map +1 -0
- package/dist/commands/release.helpers.d.ts +61 -0
- package/dist/commands/release.helpers.d.ts.map +1 -0
- package/dist/commands/release.helpers.js +277 -0
- package/dist/commands/release.helpers.js.map +1 -0
- package/dist/commands/release.js +127 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/commands/remove.d.ts +6 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.helpers.d.ts +59 -0
- package/dist/commands/remove.helpers.d.ts.map +1 -0
- package/dist/commands/remove.helpers.js +190 -0
- package/dist/commands/remove.helpers.js.map +1 -0
- package/dist/commands/remove.js +137 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/repair.d.ts +6 -0
- package/dist/commands/repair.d.ts.map +1 -0
- package/dist/commands/repair.helpers.d.ts +5 -0
- package/dist/commands/repair.helpers.d.ts.map +1 -0
- package/dist/commands/repair.helpers.js +499 -0
- package/dist/commands/repair.helpers.js.map +1 -0
- package/dist/commands/repair.js +28 -0
- package/dist/commands/repair.js.map +1 -0
- package/dist/commands/status.d.ts +6 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +116 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/system-integration.d.ts +6 -0
- package/dist/commands/system-integration.d.ts.map +1 -0
- package/dist/commands/system-integration.helpers.d.ts +70 -0
- package/dist/commands/system-integration.helpers.d.ts.map +1 -0
- package/dist/commands/system-integration.helpers.js +313 -0
- package/dist/commands/system-integration.helpers.js.map +1 -0
- package/dist/commands/system-integration.js +132 -0
- package/dist/commands/system-integration.js.map +1 -0
- package/dist/commands/tmux.d.ts +11 -0
- package/dist/commands/tmux.d.ts.map +1 -0
- package/dist/commands/tmux.js +500 -0
- package/dist/commands/tmux.js.map +1 -0
- package/dist/commands/todo.d.ts +6 -0
- package/dist/commands/todo.d.ts.map +1 -0
- package/dist/commands/todo.helpers.d.ts +50 -0
- package/dist/commands/todo.helpers.d.ts.map +1 -0
- package/dist/commands/todo.helpers.js +297 -0
- package/dist/commands/todo.helpers.js.map +1 -0
- package/dist/commands/todo.js +579 -0
- package/dist/commands/todo.js.map +1 -0
- package/dist/commands/update.d.ts +18 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.helpers.d.ts +89 -0
- package/dist/commands/update.helpers.d.ts.map +1 -0
- package/dist/commands/update.helpers.js +335 -0
- package/dist/commands/update.helpers.js.map +1 -0
- package/dist/commands/update.js +187 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/core/config-loader.d.ts +47 -0
- package/dist/core/config-loader.d.ts.map +1 -0
- package/dist/core/config-loader.js +188 -0
- package/dist/core/config-loader.js.map +1 -0
- package/dist/core/config-merger.d.ts +29 -0
- package/dist/core/config-merger.d.ts.map +1 -0
- package/dist/core/config-merger.js +100 -0
- package/dist/core/config-merger.js.map +1 -0
- package/dist/core/config-migration.d.ts +64 -0
- package/dist/core/config-migration.d.ts.map +1 -0
- package/dist/core/config-migration.js +340 -0
- package/dist/core/config-migration.js.map +1 -0
- package/dist/core/config-new.d.ts +19 -0
- package/dist/core/config-new.d.ts.map +1 -0
- package/dist/core/config-new.js +58 -0
- package/dist/core/config-new.js.map +1 -0
- package/dist/core/config-schema.d.ts +221 -0
- package/dist/core/config-schema.d.ts.map +1 -0
- package/dist/core/config-schema.js +168 -0
- package/dist/core/config-schema.js.map +1 -0
- package/dist/core/config.d.ts +55 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +143 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/dev-server.d.ts +29 -0
- package/dist/core/dev-server.d.ts.map +1 -0
- package/dist/core/dev-server.js +54 -0
- package/dist/core/dev-server.js.map +1 -0
- package/dist/core/discovery.d.ts +51 -0
- package/dist/core/discovery.d.ts.map +1 -0
- package/dist/core/discovery.js +247 -0
- package/dist/core/discovery.js.map +1 -0
- package/dist/core/env.d.ts +13 -0
- package/dist/core/env.d.ts.map +1 -0
- package/dist/core/env.js +75 -0
- package/dist/core/env.js.map +1 -0
- package/dist/core/git.d.ts +31 -0
- package/dist/core/git.d.ts.map +1 -0
- package/dist/core/git.js +56 -0
- package/dist/core/git.js.map +1 -0
- package/dist/core/paths.d.ts +86 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +256 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/tmux-config.d.ts +174 -0
- package/dist/core/tmux-config.d.ts.map +1 -0
- package/dist/core/tmux-config.js +545 -0
- package/dist/core/tmux-config.js.map +1 -0
- package/dist/core/tmux-config.legacy.d.ts +243 -0
- package/dist/core/tmux-config.legacy.d.ts.map +1 -0
- package/dist/core/tmux-config.legacy.js +896 -0
- package/dist/core/tmux-config.legacy.js.map +1 -0
- package/dist/core/tmux.d.ts +214 -0
- package/dist/core/tmux.d.ts.map +1 -0
- package/dist/core/tmux.js +712 -0
- package/dist/core/tmux.js.map +1 -0
- package/dist/core/toolchain-resolver.d.ts +51 -0
- package/dist/core/toolchain-resolver.d.ts.map +1 -0
- package/dist/core/toolchain-resolver.js +364 -0
- package/dist/core/toolchain-resolver.js.map +1 -0
- package/dist/core/worktree-status.d.ts +20 -0
- package/dist/core/worktree-status.d.ts.map +1 -0
- package/dist/core/worktree-status.js +67 -0
- package/dist/core/worktree-status.js.map +1 -0
- package/dist/i18n/index.d.ts +36 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +157 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/locales/en.d.ts +866 -0
- package/dist/i18n/locales/en.d.ts.map +1 -0
- package/dist/i18n/locales/en.js +985 -0
- package/dist/i18n/locales/en.js.map +1 -0
- package/dist/i18n/locales/zh-CN.d.ts +865 -0
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
- package/dist/i18n/locales/zh-CN.js +985 -0
- package/dist/i18n/locales/zh-CN.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/builtin/gradle.d.ts +9 -0
- package/dist/plugins/builtin/gradle.d.ts.map +1 -0
- package/dist/plugins/builtin/gradle.js +164 -0
- package/dist/plugins/builtin/gradle.js.map +1 -0
- package/dist/plugins/builtin/maven.d.ts +9 -0
- package/dist/plugins/builtin/maven.d.ts.map +1 -0
- package/dist/plugins/builtin/maven.js +127 -0
- package/dist/plugins/builtin/maven.js.map +1 -0
- package/dist/plugins/builtin/npm.d.ts +9 -0
- package/dist/plugins/builtin/npm.d.ts.map +1 -0
- package/dist/plugins/builtin/npm.js +238 -0
- package/dist/plugins/builtin/npm.js.map +1 -0
- package/dist/plugins/builtin/pip.d.ts +9 -0
- package/dist/plugins/builtin/pip.d.ts.map +1 -0
- package/dist/plugins/builtin/pip.js +210 -0
- package/dist/plugins/builtin/pip.js.map +1 -0
- package/dist/plugins/builtin/xcode.d.ts +12 -0
- package/dist/plugins/builtin/xcode.d.ts.map +1 -0
- package/dist/plugins/builtin/xcode.js +438 -0
- package/dist/plugins/builtin/xcode.js.map +1 -0
- package/dist/plugins/index.d.ts +13 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +24 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/manager.d.ts +93 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +270 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/utils.d.ts +42 -0
- package/dist/plugins/utils.d.ts.map +1 -0
- package/dist/plugins/utils.js +175 -0
- package/dist/plugins/utils.js.map +1 -0
- package/dist/types/index.d.ts +104 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/plugin.d.ts +200 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +19 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/utils/logger.d.ts +42 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +80 -0
- package/dist/utils/logger.js.map +1 -0
- package/docs/en/manual/04-command-reference/README.md +58 -0
- package/docs/en/manual/README.md +108 -0
- package/docs/zh-CN/manual/04-command-reference/README.md +58 -0
- package/docs/zh-CN/manual/README.md +108 -0
- package/package.json +65 -0
- package/shell/colyn.sh +55 -0
- package/shell/completion.bash +270 -0
- package/shell/completion.zsh +167 -0
|
@@ -0,0 +1,985 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* English translations (default)
|
|
3
|
+
*/
|
|
4
|
+
export const en = {
|
|
5
|
+
// Common
|
|
6
|
+
common: {
|
|
7
|
+
error: 'Error',
|
|
8
|
+
success: 'Success',
|
|
9
|
+
hint: 'Hint',
|
|
10
|
+
canceled: 'Canceled',
|
|
11
|
+
unknown: 'Unknown',
|
|
12
|
+
unknownError: 'Unknown error',
|
|
13
|
+
yes: 'Yes',
|
|
14
|
+
no: 'No',
|
|
15
|
+
and: 'and',
|
|
16
|
+
files: '{{count}} file',
|
|
17
|
+
files_other: '{{count}} files',
|
|
18
|
+
commits: '{{count}} commit',
|
|
19
|
+
commits_other: '{{count}} commits',
|
|
20
|
+
},
|
|
21
|
+
// CLI
|
|
22
|
+
cli: {
|
|
23
|
+
description: 'Git worktree management tool',
|
|
24
|
+
noColorOption: 'Disable color output',
|
|
25
|
+
// Commander.js built-in texts
|
|
26
|
+
usage: 'Usage:',
|
|
27
|
+
options: 'Options:',
|
|
28
|
+
commands: 'Commands:',
|
|
29
|
+
arguments: 'Arguments:',
|
|
30
|
+
versionDescription: 'output the version number',
|
|
31
|
+
helpDescription: 'display help for command',
|
|
32
|
+
helpCommand: 'help [command]',
|
|
33
|
+
helpCommandDescription: 'display help for command',
|
|
34
|
+
showHelpHint: '(Run with --help for usage information)',
|
|
35
|
+
missingArgument: 'Missing required argument: {{arg}}',
|
|
36
|
+
},
|
|
37
|
+
// Logger
|
|
38
|
+
logger: {
|
|
39
|
+
hintPrefix: 'Hint:',
|
|
40
|
+
errorPrefix: 'Error:',
|
|
41
|
+
},
|
|
42
|
+
// Commands
|
|
43
|
+
commands: {
|
|
44
|
+
// add command
|
|
45
|
+
add: {
|
|
46
|
+
description: 'Create a new worktree',
|
|
47
|
+
branchNameEmpty: 'Branch name cannot be empty',
|
|
48
|
+
branchNameEmptyHint: 'Please provide a branch name parameter',
|
|
49
|
+
invalidBranchName: 'Invalid branch name',
|
|
50
|
+
invalidBranchNameHint: 'Branch name can only contain letters, numbers, underscores, hyphens, and slashes',
|
|
51
|
+
notInitialized: 'Current directory not initialized',
|
|
52
|
+
notInitializedHint: 'Please run colyn init first to initialize the project',
|
|
53
|
+
notGitRepo: 'Current directory is not a git repository',
|
|
54
|
+
notGitRepoHint: 'Please run this command in a git repository',
|
|
55
|
+
missingEnvFile: 'Main branch directory is missing .env.local file',
|
|
56
|
+
missingEnvFileHint: 'Please configure environment variables in the main branch directory first',
|
|
57
|
+
branchExists: 'Branch "{{branch}}" already has a worktree',
|
|
58
|
+
branchExistsHint: 'ID: {{id}}, Path: {{path}}',
|
|
59
|
+
usingLocalBranch: 'Using local branch: {{branch}}',
|
|
60
|
+
checkingRemote: 'Checking remote branches...',
|
|
61
|
+
creatingFromRemote: 'Creating branch from remote: {{branch}}',
|
|
62
|
+
createdFromRemote: 'Created branch from remote: {{branch}}',
|
|
63
|
+
creatingNewBranch: 'Creating new branch based on main: {{branch}}',
|
|
64
|
+
createdNewBranch: 'Created new branch: {{branch}}',
|
|
65
|
+
branchHandleFailed: 'Branch handling failed',
|
|
66
|
+
creatingWorktree: 'Creating worktree...',
|
|
67
|
+
worktreeCreated: 'Worktree created: task-{{id}}',
|
|
68
|
+
worktreeCreateFailed: 'Failed to create worktree',
|
|
69
|
+
branchAlreadyUsed: 'Branch "{{branch}}" is already associated with an existing worktree',
|
|
70
|
+
branchAlreadyUsedHint: `Worktree info:
|
|
71
|
+
ID: {{id}}
|
|
72
|
+
Path: {{path}}
|
|
73
|
+
Port: {{port}}
|
|
74
|
+
|
|
75
|
+
Hints:
|
|
76
|
+
- To switch to this worktree: cd {{path}}
|
|
77
|
+
- To delete this worktree: colyn remove {{id}}
|
|
78
|
+
- Or use a different branch name`,
|
|
79
|
+
branchUsedByOther: 'Branch "{{branch}}" is used by another worktree',
|
|
80
|
+
branchUsedByOtherHint: `This branch is currently used by:
|
|
81
|
+
{{path}}
|
|
82
|
+
|
|
83
|
+
Hints:
|
|
84
|
+
- This might be from another colyn project or manually created worktree
|
|
85
|
+
- To remove it manually: git worktree remove "{{path}}"
|
|
86
|
+
- Or use a different branch name`,
|
|
87
|
+
branchUsedUnknown: 'Branch "{{branch}}" is used by another worktree',
|
|
88
|
+
branchUsedUnknownHint: `Hints:
|
|
89
|
+
- Run "git worktree list" to see all worktrees
|
|
90
|
+
- Remove unwanted worktree: git worktree remove <path>
|
|
91
|
+
- Or use a different branch name`,
|
|
92
|
+
worktreeError: 'Error occurred while creating worktree',
|
|
93
|
+
worktreeErrorHint: `Error: {{error}}
|
|
94
|
+
|
|
95
|
+
Hints:
|
|
96
|
+
- Check if the branch exists
|
|
97
|
+
- Check if the worktree directory is writable
|
|
98
|
+
- Run "git worktree list" to see existing worktrees`,
|
|
99
|
+
configuringEnv: 'Configuring environment variables...',
|
|
100
|
+
envConfigured: 'Environment variables configured',
|
|
101
|
+
envConfigFailed: 'Failed to configure environment variables',
|
|
102
|
+
successTitle: 'Worktree created successfully!',
|
|
103
|
+
worktreeInfo: 'Worktree info:',
|
|
104
|
+
infoId: 'ID: {{id}}',
|
|
105
|
+
infoBranch: 'Branch: {{branch}}',
|
|
106
|
+
infoPath: 'Path: {{path}}',
|
|
107
|
+
infoPort: 'Port: {{port}}',
|
|
108
|
+
nextSteps: 'Next steps:',
|
|
109
|
+
step1: '1. Enter worktree directory:',
|
|
110
|
+
step2: '2. Start dev server (port auto-configured):',
|
|
111
|
+
step3: '3. View all worktrees:',
|
|
112
|
+
tmuxWindowCreated: 'Created Window {{windowIndex}}: {{windowName}}',
|
|
113
|
+
tmuxWindowSwitched: 'Automatically switched to Window {{windowIndex}}',
|
|
114
|
+
tmuxWindowCreatedInSession: 'Created Window {{windowIndex}}: {{windowName}} in background session "{{sessionName}}"',
|
|
115
|
+
tmuxPaneClaude: ' |- Claude Code (left 60%)',
|
|
116
|
+
tmuxPaneDevServer: ' |- Dev Server (top-right 12%)',
|
|
117
|
+
tmuxPaneBash: ' `- Bash (bottom-right 28%)',
|
|
118
|
+
tmuxHintTitle: 'Hint: Colyn supports tmux integration for a better multi-worktree experience',
|
|
119
|
+
tmuxHintAttach: ` Run 'tmux attach -t {{session}}' to enter tmux environment`,
|
|
120
|
+
installingDeps: 'Installing project dependencies...',
|
|
121
|
+
depsInstalled: 'Dependencies installed',
|
|
122
|
+
depsInstallFailed: 'Failed to install dependencies (you can run install manually)',
|
|
123
|
+
},
|
|
124
|
+
// list command
|
|
125
|
+
list: {
|
|
126
|
+
description: 'List all worktrees',
|
|
127
|
+
jsonOption: 'Output in JSON format',
|
|
128
|
+
pathsOption: 'Output paths only (one per line)',
|
|
129
|
+
noMainOption: 'Do not show main branch',
|
|
130
|
+
refreshOption: 'Auto-refresh on file changes',
|
|
131
|
+
optionConflict: 'Option conflict: --json and --paths cannot be used together',
|
|
132
|
+
optionConflictHint: 'Please choose one output format',
|
|
133
|
+
refreshConflict: 'Option conflict: --refresh cannot be used with --json or --paths',
|
|
134
|
+
refreshConflictHint: 'Refresh mode only supports table output',
|
|
135
|
+
refreshingData: 'Refreshing data...',
|
|
136
|
+
watchMode: 'Watching for file changes (press Ctrl+C to exit)',
|
|
137
|
+
watchError: 'File watch error: {{error}}',
|
|
138
|
+
refreshStopped: 'Refresh stopped',
|
|
139
|
+
noWorktrees: 'No worktrees',
|
|
140
|
+
noWorktreesHint: 'Hint: Use colyn add <branch> to create a new worktree',
|
|
141
|
+
tableId: 'ID',
|
|
142
|
+
tableBranch: 'Branch',
|
|
143
|
+
tablePort: 'Port',
|
|
144
|
+
tableGit: 'Git',
|
|
145
|
+
tableDiff: 'Diff',
|
|
146
|
+
tablePath: 'Path',
|
|
147
|
+
tableWtStatus: 'Status',
|
|
148
|
+
tableWtStatusShort: 'st.',
|
|
149
|
+
tmuxSwitchHint: 'Use Ctrl-b 0-9 to switch to the corresponding Window',
|
|
150
|
+
gitColumnHelp: `Git column abbreviations:
|
|
151
|
+
M - Modified (uncommitted changes)
|
|
152
|
+
S - Staged (changes added to index)
|
|
153
|
+
? - Untracked (new files not in git)`,
|
|
154
|
+
},
|
|
155
|
+
// release command
|
|
156
|
+
release: {
|
|
157
|
+
description: 'Run release process in main branch directory (default: patch)',
|
|
158
|
+
versionArgument: 'version type (patch/minor/major) or version (e.g. 1.2.3)',
|
|
159
|
+
versionMissing: 'Please specify a version type or version number',
|
|
160
|
+
versionMissingHint: 'Examples: colyn release patch / colyn release 1.2.3',
|
|
161
|
+
execFailed: 'Failed to execute release script',
|
|
162
|
+
runInMain: 'Running release script in main branch directory: {{path}}',
|
|
163
|
+
noUpdateOption: 'Skip automatic update of all worktrees',
|
|
164
|
+
verboseOption: 'Output detailed logs from failed commands',
|
|
165
|
+
updatingWorktrees: 'Updating all worktrees...',
|
|
166
|
+
updateFailed: '⚠ Failed to update worktrees, but release completed successfully',
|
|
167
|
+
currentDirNotClean: 'Current directory has uncommitted changes',
|
|
168
|
+
currentDirNotCleanHint: 'Please commit or stash changes before releasing:\ncd "{{path}}"\ngit add .\ngit commit -m "..."\n\nDetected {{count}} changed file(s):\n{{files}}',
|
|
169
|
+
branchNotMerged: 'Branch "{{branch}}" has not been merged to "{{main}}"',
|
|
170
|
+
branchNotMergedHint: 'Please merge the branch to main branch before releasing:\ncolyn merge {{branch}}\n\nOr run release from main branch directory',
|
|
171
|
+
invalidVersion: 'Invalid version format: {{version}}',
|
|
172
|
+
invalidVersionHint: 'Version format should be: 1.2.3',
|
|
173
|
+
step1: 'Step 1: Check git status',
|
|
174
|
+
step2: 'Step 2: Determine new version',
|
|
175
|
+
step3: 'Step 3: Install dependencies',
|
|
176
|
+
step4: 'Step 4: Run code quality check',
|
|
177
|
+
step5: 'Step 5: Build project',
|
|
178
|
+
step6: 'Step 6: Update version',
|
|
179
|
+
step7: 'Step 7: Create git commit',
|
|
180
|
+
step8: 'Step 8: Create git tag',
|
|
181
|
+
step9: 'Step 9: Push to remote',
|
|
182
|
+
step10: 'Step 10: Publish to package registry',
|
|
183
|
+
workingDirNotClean: 'Working directory not clean',
|
|
184
|
+
workingDirNotCleanHint: 'Please commit or stash all changes',
|
|
185
|
+
workingDirClean: 'Working directory clean',
|
|
186
|
+
currentBranch: 'Current branch: {{branch}}',
|
|
187
|
+
currentVersion: 'Current version: {{version}}',
|
|
188
|
+
newVersion: 'New version: {{old}} -> {{new}}',
|
|
189
|
+
runningInstall: 'Installing dependencies...',
|
|
190
|
+
installSucceeded: 'Dependencies installed successfully',
|
|
191
|
+
runningLint: 'Running lint...',
|
|
192
|
+
lintPassed: 'Lint check passed',
|
|
193
|
+
runningBuild: 'Running build...',
|
|
194
|
+
buildSucceeded: 'Build succeeded',
|
|
195
|
+
targetVersion: 'Target version: {{version}}',
|
|
196
|
+
versionUpdated: 'Version updated: {{old}} -> {{new}}',
|
|
197
|
+
commitCreated: 'Created commit: {{message}}',
|
|
198
|
+
commitSkipped: 'No version file changes, skipping commit',
|
|
199
|
+
commitFailed: 'Failed to create commit',
|
|
200
|
+
commitFailedHint: 'Error: {{error}}',
|
|
201
|
+
tagCreated: 'Created tag: {{tag}}',
|
|
202
|
+
tagFailed: 'Failed to create tag',
|
|
203
|
+
tagFailedHint: 'Error: {{error}}',
|
|
204
|
+
pushing: 'Pushing...',
|
|
205
|
+
pushedBranch: 'Pushed to branch: {{branch}}',
|
|
206
|
+
pushedTag: 'Pushed tag: {{tag}}',
|
|
207
|
+
pushSucceeded: 'Pushed to remote repository',
|
|
208
|
+
runningPublish: 'Publishing to package registry...',
|
|
209
|
+
checkingPublishable: 'Checking toolchain publishability...',
|
|
210
|
+
publishSucceeded: 'Published to package registry',
|
|
211
|
+
publishSkippedForToolchain: 'Skipped {{toolchain}} ({{path}}): publish conditions not met',
|
|
212
|
+
publishSkippedAll: 'No publishable toolchain found, publish stage skipped',
|
|
213
|
+
publishSkippedSummary: 'Skipped {{count}} toolchain(s) that do not meet publish conditions',
|
|
214
|
+
pushFailed: 'Push failed',
|
|
215
|
+
pushFailedHint: 'Error: {{error}}',
|
|
216
|
+
releaseComplete: 'Release complete!',
|
|
217
|
+
releaseInfo: 'Release info:',
|
|
218
|
+
releaseVersion: 'Version: v{{version}}',
|
|
219
|
+
releaseBranch: 'Branch: {{branch}}',
|
|
220
|
+
releaseTag: 'Tag: v{{version}}',
|
|
221
|
+
nextSteps: 'Next steps:',
|
|
222
|
+
nextStep1: '1. Create GitHub Release:',
|
|
223
|
+
nextStep2: '2. Update installation docs (if needed)',
|
|
224
|
+
nextStep3: '3. Notify users of new release',
|
|
225
|
+
rollbackHint: 'If rollback is needed, run:',
|
|
226
|
+
},
|
|
227
|
+
// init command
|
|
228
|
+
init: {
|
|
229
|
+
description: 'Initialize worktree management structure',
|
|
230
|
+
portOption: 'Main branch dev server port',
|
|
231
|
+
yesOption: 'Skip confirmation prompt when initializing existing project',
|
|
232
|
+
alreadyInProject: 'Current directory is already in a colyn project',
|
|
233
|
+
alreadyInProjectHint: 'Project root: {{root}}\nPlease do not run init in a project subdirectory',
|
|
234
|
+
invalidPort: 'Invalid port number',
|
|
235
|
+
invalidPortHint: 'Port must be between 1-65535',
|
|
236
|
+
nonInteractivePort: 'Cannot prompt for port in non-interactive mode',
|
|
237
|
+
nonInteractivePortHint: 'Please provide port with --port <port>',
|
|
238
|
+
enterPort: 'Enter main branch dev server port',
|
|
239
|
+
portValidation: 'Port must be between 1-65535',
|
|
240
|
+
directoryConflict: 'Main branch directory name "{{name}}" conflicts with existing file',
|
|
241
|
+
directoryConflictHint: 'Please rename the file before running init',
|
|
242
|
+
creatingStructure: 'Creating directory structure...',
|
|
243
|
+
structureCreated: 'Directory structure created',
|
|
244
|
+
movingFiles: 'Moving project files...',
|
|
245
|
+
moving: 'Moving: {{file}}',
|
|
246
|
+
filesMoved: 'Project files moved',
|
|
247
|
+
moveFilesFailed: 'Failed to move files',
|
|
248
|
+
moveFilesError: 'Error occurred while moving files',
|
|
249
|
+
moveFilesErrorHint: 'Please check file permissions or manually restore directory structure',
|
|
250
|
+
configuringEnv: 'Configuring environment file...',
|
|
251
|
+
envConfigured: 'Environment variables configured',
|
|
252
|
+
envConfigFailed: 'Failed to configure environment variables',
|
|
253
|
+
configuringGitignore: 'Configuring .gitignore...',
|
|
254
|
+
gitignoreConfigured: '.gitignore configured (added .env.local)',
|
|
255
|
+
gitignoreSkipped: '.gitignore already has ignore rules, skipped',
|
|
256
|
+
gitignoreFailed: 'Failed to configure .gitignore',
|
|
257
|
+
successTitle: 'Initialization successful!',
|
|
258
|
+
directoryStructure: 'Directory structure:',
|
|
259
|
+
mainDirComment: '# Main branch directory',
|
|
260
|
+
mainDirCommentEmpty: '# Main branch directory (initialize your project here)',
|
|
261
|
+
worktreesDirComment: '# Worktrees directory',
|
|
262
|
+
configDirComment: '# Config directory',
|
|
263
|
+
configInfo: 'Configuration:',
|
|
264
|
+
mainBranch: 'Main branch: {{branch}}',
|
|
265
|
+
port: 'Port: {{port}}',
|
|
266
|
+
nextSteps: 'Next steps:',
|
|
267
|
+
step1CreateWorktree: '1. Create worktree:',
|
|
268
|
+
step2ListWorktrees: '2. View worktree list:',
|
|
269
|
+
step1EnterDir: '1. Enter main branch directory:',
|
|
270
|
+
step2InitGit: '2. Initialize git repository (if not already):',
|
|
271
|
+
step3InitProject: '3. Initialize your project (e.g., npm/yarn init)',
|
|
272
|
+
step4CreateWorktree: '4. Create worktree:',
|
|
273
|
+
detectedInitialized: 'Detected initialized, entering completion mode...',
|
|
274
|
+
createMainDir: 'Create main branch directory: {{name}}',
|
|
275
|
+
createWorktreesDir: 'Create worktrees directory',
|
|
276
|
+
createConfigDir: 'Create .colyn config directory',
|
|
277
|
+
checkEnvLocal: 'Check and configure .env.local',
|
|
278
|
+
checkGitignore: 'Check and configure .gitignore',
|
|
279
|
+
completionDone: 'Completion done!',
|
|
280
|
+
noCompletionNeeded: 'All configurations are complete, no completion needed.',
|
|
281
|
+
detectedExistingFiles: 'Detected existing files, will perform the following:',
|
|
282
|
+
existingStep1: '1. Create main branch directory and worktrees directory',
|
|
283
|
+
existingStep2: '2. Move all files in current directory to {{name}}/ directory',
|
|
284
|
+
currentFileList: 'Current directory file list:',
|
|
285
|
+
moreFiles: '... and {{count}} more files',
|
|
286
|
+
confirmContinue: 'Confirm to continue initialization?',
|
|
287
|
+
nonInteractiveConfirm: 'Cannot prompt for confirmation in non-interactive mode',
|
|
288
|
+
nonInteractiveConfirmHint: 'Use --yes to continue initialization without prompt',
|
|
289
|
+
initCanceled: 'Initialization canceled',
|
|
290
|
+
tmuxDetectedInSession: 'Detected inside a tmux session',
|
|
291
|
+
tmuxUseCurrentSession: 'Using current session: {{session}}',
|
|
292
|
+
tmuxWindow0Set: 'Window 0 (main) configured',
|
|
293
|
+
tmuxDetectedNotInSession: 'Detected outside tmux',
|
|
294
|
+
tmuxSessionCreated: 'Created tmux session: {{session}}',
|
|
295
|
+
tmuxPaneClaude: ' |- Claude Code (left 60%)',
|
|
296
|
+
tmuxPaneDevServer: ' |- Dev Server (top-right 12%)',
|
|
297
|
+
tmuxPaneBash: ' `- Bash (bottom-right 28%)',
|
|
298
|
+
tmuxAttachHint: `Hint: Run 'tmux attach -t {{session}}' to enter workspace`,
|
|
299
|
+
noPluginsDetected: 'No toolchain detected. Please select plugins to enable (multi-select, press Enter to skip):',
|
|
300
|
+
selectPlugins: 'Select toolchain plugins',
|
|
301
|
+
},
|
|
302
|
+
// merge command
|
|
303
|
+
merge: {
|
|
304
|
+
description: 'Merge worktree branch back to main branch',
|
|
305
|
+
pushOption: 'Auto push to remote after merge',
|
|
306
|
+
noPushOption: 'Do not push after merge (skip prompt)',
|
|
307
|
+
noRebaseOption: 'Use merge instead of rebase to update worktree',
|
|
308
|
+
noUpdateOption: 'Do not auto-update after merge',
|
|
309
|
+
updateAllOption: 'Update all worktrees after merge',
|
|
310
|
+
verboseOption: 'Show detailed step information',
|
|
311
|
+
noFetchOption: 'Skip fetching latest code from remote',
|
|
312
|
+
cannotAutoDetect: 'Cannot auto-detect worktree',
|
|
313
|
+
cannotAutoDetectHint: `Please run this command in a worktree directory, or specify ID/branch name:
|
|
314
|
+
colyn merge <id>
|
|
315
|
+
colyn merge <branch-name>
|
|
316
|
+
|
|
317
|
+
View all worktrees:
|
|
318
|
+
colyn list`,
|
|
319
|
+
worktreeNotFound: 'Cannot find worktree with ID {{id}}',
|
|
320
|
+
worktreeNotFoundHint: `The WORKTREE value in current directory's .env.local may be outdated
|
|
321
|
+
|
|
322
|
+
View all worktrees:
|
|
323
|
+
colyn list`,
|
|
324
|
+
branchNotFound: 'Cannot find worktree for branch "{{branch}}"',
|
|
325
|
+
branchNotFoundHint: `View all worktrees:
|
|
326
|
+
colyn list`,
|
|
327
|
+
detectedWorktree: 'Detected worktree:',
|
|
328
|
+
detectedBranchLabel: 'Branch',
|
|
329
|
+
detectedPathLabel: 'Path',
|
|
330
|
+
preCheck: 'Running pre-checks...',
|
|
331
|
+
preCheckPassed: 'Pre-checks passed',
|
|
332
|
+
preCheckFailed: 'Pre-checks failed',
|
|
333
|
+
mainDirClean: '✓ Main branch working directory clean',
|
|
334
|
+
worktreeDirClean: '✓ Worktree working directory clean',
|
|
335
|
+
dirHasUncommitted: '{{name}} directory has uncommitted changes',
|
|
336
|
+
dirHasUncommittedHint: `{{name}} directory: {{path}}
|
|
337
|
+
|
|
338
|
+
Changed files ({{count}}):
|
|
339
|
+
{{files}}
|
|
340
|
+
|
|
341
|
+
Hints:
|
|
342
|
+
- View status: cd "{{path}}" && git status
|
|
343
|
+
- Commit changes: git add . && git commit -m "..."
|
|
344
|
+
- Or stash: git stash`,
|
|
345
|
+
step1Title: 'Step 1/2: Update main branch code in worktree',
|
|
346
|
+
step1Dir: ' Directory: {{path}}',
|
|
347
|
+
step1Cmd: ' Execute: git merge {{branch}}',
|
|
348
|
+
step1CmdRebase: ' Execute: git rebase {{branch}}',
|
|
349
|
+
mergingMain: 'Merging main branch into worktree...',
|
|
350
|
+
rebasingMain: 'Rebasing main branch onto worktree...',
|
|
351
|
+
mainMergeFailed: 'Failed to merge main branch',
|
|
352
|
+
mainRebaseFailed: 'Failed to rebase main branch',
|
|
353
|
+
mainMerged: 'Main branch merged into worktree',
|
|
354
|
+
mainRebased: 'Main branch rebased onto worktree',
|
|
355
|
+
step2Title: 'Step 2/2: Merge worktree branch into main',
|
|
356
|
+
step2Dir: ' Directory: {{path}}',
|
|
357
|
+
step2Cmd: ' Execute: git merge --no-ff {{branch}}',
|
|
358
|
+
mergingWorktree: 'Merging worktree into main branch...',
|
|
359
|
+
worktreeMergeFailed: 'Failed to merge into main branch',
|
|
360
|
+
worktreeMerged: 'Worktree merged into main branch',
|
|
361
|
+
mergeComplete: 'Merge complete!',
|
|
362
|
+
unexpectedConflict: 'Unexpected conflict while merging into main branch',
|
|
363
|
+
unexpectedConflictHint: `This should not happen. Please check git status and resolve manually.
|
|
364
|
+
Main branch directory: {{path}}`,
|
|
365
|
+
mergeFailed: 'Failed to merge into main branch',
|
|
366
|
+
pushToRemote: 'Pushing to remote repository...',
|
|
367
|
+
pushed: 'Pushed to remote repository',
|
|
368
|
+
pushFailed: 'Push failed',
|
|
369
|
+
shouldPush: 'Push to remote repository?',
|
|
370
|
+
mergeSuccess: 'Merge successful!',
|
|
371
|
+
mergeInfo: 'Merge info:',
|
|
372
|
+
mainBranchLabel: 'Main branch: {{branch}}',
|
|
373
|
+
mergeBranchLabel: 'Merged branch: {{branch}}',
|
|
374
|
+
commitLabel: 'Commit: {{hash}} Merge branch \'{{branch}}\'',
|
|
375
|
+
mergeAndPushed: 'Merge complete and pushed to remote!',
|
|
376
|
+
mergeCompleteNoPush: 'Merge complete!',
|
|
377
|
+
pushLaterHint: 'Hint: You can push later manually:',
|
|
378
|
+
nextSteps: 'Next steps:',
|
|
379
|
+
step1ViewCode: '1. View merged code:',
|
|
380
|
+
step2ContinueWorktree: '2. To continue using worktree:',
|
|
381
|
+
step3RemoveWorktree: '3. To delete worktree:',
|
|
382
|
+
conflictTitle: 'Conflict while merging {{main}} into {{branch}}',
|
|
383
|
+
conflictFiles: 'Conflict files:',
|
|
384
|
+
resolveSteps: 'Resolution steps:',
|
|
385
|
+
resolveStep1: '1. Enter worktree directory to resolve conflicts:',
|
|
386
|
+
resolveStep2: '2. Edit conflict files, resolve conflict markers',
|
|
387
|
+
resolveStep3: '3. Add resolved files:',
|
|
388
|
+
resolveStep4: '4. Complete merge:',
|
|
389
|
+
resolveStep4Rebase: '4. Continue rebase:',
|
|
390
|
+
resolveStep4RebaseAbort: '5. To abort rebase:',
|
|
391
|
+
resolveStep5: '5. Re-run merge command:',
|
|
392
|
+
pushFailedTitle: 'Failed to push to remote repository',
|
|
393
|
+
pushFailedError: 'Error: {{error}}',
|
|
394
|
+
pushFailedHint: 'Local merge complete, you can push later manually:',
|
|
395
|
+
updatingCurrentWorktree: 'Updating current worktree...',
|
|
396
|
+
updatingAllWorktrees: 'Updating all worktrees...',
|
|
397
|
+
updatePartialSuccess: '⚠ Some worktrees failed to update, see details above',
|
|
398
|
+
skipBuildOption: 'Skip lint and build checks',
|
|
399
|
+
skippingBuild: 'Skipping lint and build checks (--skip-build)',
|
|
400
|
+
runningLint: 'Running lint check...',
|
|
401
|
+
lintPassed: 'Lint check passed',
|
|
402
|
+
lintFailed: 'Lint check failed',
|
|
403
|
+
lintFailedHint: 'Error: {{error}}',
|
|
404
|
+
runningBuild: 'Running build check...',
|
|
405
|
+
buildPassed: 'Build succeeded',
|
|
406
|
+
buildFailed: 'Build failed',
|
|
407
|
+
buildFailedHint: 'Error: {{error}}',
|
|
408
|
+
},
|
|
409
|
+
// update command
|
|
410
|
+
update: {
|
|
411
|
+
description: 'Update worktree with main branch code',
|
|
412
|
+
noRebaseOption: 'Use merge instead of rebase',
|
|
413
|
+
allOption: 'Update all worktrees',
|
|
414
|
+
noFetchOption: 'Skip fetching latest code from remote',
|
|
415
|
+
cannotAutoDetect: 'Cannot auto-detect worktree',
|
|
416
|
+
cannotAutoDetectHint: `Please run this command in a worktree directory, or specify ID/branch name:
|
|
417
|
+
colyn update <id>
|
|
418
|
+
colyn update <branch-name>
|
|
419
|
+
|
|
420
|
+
View all worktrees:
|
|
421
|
+
colyn list`,
|
|
422
|
+
worktreeNotFound: 'Cannot find worktree with ID {{id}}',
|
|
423
|
+
worktreeNotFoundHint: `The WORKTREE value in current directory's .env.local may be outdated
|
|
424
|
+
|
|
425
|
+
View all worktrees:
|
|
426
|
+
colyn list`,
|
|
427
|
+
branchNotFound: 'Cannot find worktree for branch "{{branch}}"',
|
|
428
|
+
branchNotFoundHint: `View all worktrees:
|
|
429
|
+
colyn list`,
|
|
430
|
+
detectedWorktree: 'Detected worktree:',
|
|
431
|
+
branchLabel: 'Branch',
|
|
432
|
+
pathLabel: 'Path',
|
|
433
|
+
pullingMain: 'Pulling main branch latest code...',
|
|
434
|
+
pullSuccess: 'Main branch updated',
|
|
435
|
+
pullFailed: 'Failed to pull main branch',
|
|
436
|
+
pullFailedHint: 'Please check network connection or remote repository configuration\nError: {{error}}',
|
|
437
|
+
checkingStatus: 'Checking working directory status...',
|
|
438
|
+
statusClean: 'Working directory clean',
|
|
439
|
+
statusDirty: 'Working directory has uncommitted changes',
|
|
440
|
+
dirHasUncommitted: '{{name}} has uncommitted changes',
|
|
441
|
+
dirHasUncommittedHint: `{{name}} directory: {{path}}
|
|
442
|
+
|
|
443
|
+
Changed files ({{count}}):
|
|
444
|
+
{{files}}
|
|
445
|
+
|
|
446
|
+
Hints:
|
|
447
|
+
- View status: cd "{{path}}" && git status
|
|
448
|
+
- Commit changes: git add . && git commit -m "..."
|
|
449
|
+
- Or stash: git stash`,
|
|
450
|
+
updating: 'Updating with {{strategy}}...',
|
|
451
|
+
updateDir: ' Directory: {{path}}',
|
|
452
|
+
updateCmd: ' Execute: {{cmd}}',
|
|
453
|
+
updateSuccess: 'Update successful',
|
|
454
|
+
updateFailed: 'Update failed',
|
|
455
|
+
updateComplete: 'Update complete!',
|
|
456
|
+
mainBranchLabel: 'Main branch ({{branch}})',
|
|
457
|
+
strategyLabel: 'Strategy',
|
|
458
|
+
rebaseConflictTitle: 'Rebase failed, conflicts exist',
|
|
459
|
+
mergeConflictTitle: 'Merge failed, conflicts exist',
|
|
460
|
+
conflictFiles: 'Conflict files:',
|
|
461
|
+
resolveSteps: 'Resolution steps:',
|
|
462
|
+
rebaseStep1: '1. Edit conflict files, resolve conflict markers',
|
|
463
|
+
rebaseStep2: '2. Add resolved files:',
|
|
464
|
+
rebaseStep3: '3. Continue rebase:',
|
|
465
|
+
rebaseStep4: '4. To abort rebase:',
|
|
466
|
+
mergeStep1: '1. Edit conflict files, resolve conflict markers',
|
|
467
|
+
mergeStep2: '2. Add resolved files:',
|
|
468
|
+
mergeStep3: '3. Complete merge:',
|
|
469
|
+
mergeStep4: '4. To abort merge:',
|
|
470
|
+
noWorktrees: 'No worktrees found',
|
|
471
|
+
noWorktreesHint: 'Please use colyn add to create a worktree first',
|
|
472
|
+
foundWorktrees: 'Found {{count}} worktrees:',
|
|
473
|
+
batchUpdating: 'Batch updating (strategy: {{strategy}})...',
|
|
474
|
+
batchResult: 'Update results:',
|
|
475
|
+
batchSucceeded: '✓ {{count}} worktrees updated successfully',
|
|
476
|
+
batchFailed: '✗ {{count}} worktrees failed to update',
|
|
477
|
+
batchSkipped: '○ {{count}} worktrees skipped',
|
|
478
|
+
failedDetails: 'Failed details:',
|
|
479
|
+
dirtySkipped: 'Working directory not clean, skipped',
|
|
480
|
+
hasConflict: 'Conflicts exist, please resolve manually',
|
|
481
|
+
},
|
|
482
|
+
// remove command
|
|
483
|
+
remove: {
|
|
484
|
+
description: 'Delete worktree',
|
|
485
|
+
forceOption: 'Force delete (ignore uncommitted changes)',
|
|
486
|
+
yesOption: 'Skip confirmation prompt',
|
|
487
|
+
cannotAutoDetect: 'Cannot auto-detect worktree',
|
|
488
|
+
cannotAutoDetectHint: `Please run this command in a worktree directory, or specify ID/branch name:
|
|
489
|
+
colyn remove <id>
|
|
490
|
+
colyn remove <branch-name>
|
|
491
|
+
|
|
492
|
+
View all worktrees:
|
|
493
|
+
colyn list`,
|
|
494
|
+
worktreeNotFound: 'Cannot find worktree with ID {{id}}',
|
|
495
|
+
worktreeNotFoundHint: `The WORKTREE value in current directory's .env.local may be outdated
|
|
496
|
+
|
|
497
|
+
View all worktrees:
|
|
498
|
+
colyn list`,
|
|
499
|
+
branchNotFound: 'Cannot find worktree for branch "{{branch}}"',
|
|
500
|
+
branchNotFoundHint: `View all worktrees:
|
|
501
|
+
colyn list`,
|
|
502
|
+
toBeDeleted: 'Worktree to be deleted:',
|
|
503
|
+
uncommittedChanges: 'Detected uncommitted changes',
|
|
504
|
+
changedFiles: 'Changed files:',
|
|
505
|
+
moreFiles: '... and {{count}} more files',
|
|
506
|
+
cannotDelete: 'Cannot delete: uncommitted changes exist',
|
|
507
|
+
cannotDeleteHint: `Please commit or stash changes first, or use --force to force delete:
|
|
508
|
+
cd "{{path}}"
|
|
509
|
+
git add . && git commit -m "..."
|
|
510
|
+
|
|
511
|
+
Or force delete:
|
|
512
|
+
colyn remove {{id}} --force`,
|
|
513
|
+
unmergedWarning: 'Branch "{{branch}}" has not been merged into {{main}}',
|
|
514
|
+
unmergedWarningHint: 'Deleting may lose unmerged changes',
|
|
515
|
+
confirmDelete: 'Are you sure you want to delete this worktree?',
|
|
516
|
+
deleteCanceled: 'Delete canceled',
|
|
517
|
+
deleting: 'Deleting worktree...',
|
|
518
|
+
deleteFailed: 'Failed to delete worktree',
|
|
519
|
+
deleted: 'Worktree deleted',
|
|
520
|
+
deleteBranch: 'Also delete local branch "{{branch}}"?',
|
|
521
|
+
skipDeleteBranchPrompt: 'Skipped branch deletion prompt (--yes). Local branch is kept by default.',
|
|
522
|
+
deletingBranch: 'Deleting branch...',
|
|
523
|
+
branchDeleted: 'Branch "{{branch}}" deleted',
|
|
524
|
+
branchDeleteFailed: 'Failed to delete branch: {{error}}',
|
|
525
|
+
successTitle: 'Worktree deleted',
|
|
526
|
+
deleteInfo: 'Delete info:',
|
|
527
|
+
branchStatus: 'Branch: {{branch}}{{status}}',
|
|
528
|
+
branchStatusDeleted: ' (deleted)',
|
|
529
|
+
branchStatusKept: ' (kept)',
|
|
530
|
+
switchedToMain: 'Auto-switched to main branch directory:',
|
|
531
|
+
},
|
|
532
|
+
// checkout command
|
|
533
|
+
checkout: {
|
|
534
|
+
description: 'Switch branch in worktree',
|
|
535
|
+
coDescription: 'Alias for checkout',
|
|
536
|
+
noFetchOption: 'Skip fetching remote branch info',
|
|
537
|
+
inMainBranch: 'Currently in main branch directory',
|
|
538
|
+
inMainBranchHint: `Please specify worktree ID, or switch to worktree directory:
|
|
539
|
+
colyn checkout <worktree-id> <branch>
|
|
540
|
+
colyn list # View all worktrees`,
|
|
541
|
+
cannotDetermineWorktree: 'Cannot determine target worktree',
|
|
542
|
+
cannotDetermineWorktreeHint: `Please specify worktree ID:
|
|
543
|
+
colyn checkout <worktree-id> <branch>
|
|
544
|
+
colyn list # View all worktrees`,
|
|
545
|
+
alreadyOnBranch: 'Already on branch {{branch}}',
|
|
546
|
+
checkingStatus: 'Checking working directory status...',
|
|
547
|
+
dirClean: 'Working directory clean',
|
|
548
|
+
dirHasChanges: 'Working directory has uncommitted changes',
|
|
549
|
+
cannotSwitchToMain: 'Cannot switch to main branch in worktree',
|
|
550
|
+
cannotSwitchToMainHint: 'Please use main branch directory directly:\n cd "{{path}}"',
|
|
551
|
+
branchUsedByOther: 'Branch {{branch}} is already used in task-{{id}}',
|
|
552
|
+
branchUsedByOtherHint: 'Please switch to that worktree directory:\n cd "{{path}}"',
|
|
553
|
+
branchNotMerged: '⚠ Current branch {{branch}} has not been merged into main branch',
|
|
554
|
+
branchNotMergedInfo: 'If you switch branches, these changes will remain on the original branch.',
|
|
555
|
+
confirmSwitch: 'Continue switching?',
|
|
556
|
+
switchCanceled: 'Switch canceled',
|
|
557
|
+
fetchingRemote: 'Fetching latest branch info from remote...',
|
|
558
|
+
fetchedRemote: 'Fetched remote branch info',
|
|
559
|
+
fetchFailed: 'Failed to fetch remote branch info',
|
|
560
|
+
mainBranchUpdated: '✓ {{message}}',
|
|
561
|
+
mainBranchUpdateMsg: 'Main branch updated (merged {{count}} commits)',
|
|
562
|
+
switchingTo: 'Switching to branch {{branch}}...',
|
|
563
|
+
switchedTo: 'Switched to branch {{branch}}',
|
|
564
|
+
switchedToTrack: 'Switched to branch {{branch}} (tracking {{remote}})',
|
|
565
|
+
switchedToNew: 'Created and switched to new branch {{branch}}',
|
|
566
|
+
switchFailed: 'Failed to switch branch',
|
|
567
|
+
gitCheckoutFailed: 'Git checkout failed',
|
|
568
|
+
branchMerged: '✓ Branch {{branch}} has been merged into main branch',
|
|
569
|
+
deleteOldBranch: 'Delete old branch {{branch}}?',
|
|
570
|
+
deletingBranch: 'Deleting branch {{branch}}...',
|
|
571
|
+
branchDeleted: 'Deleted branch {{branch}}',
|
|
572
|
+
branchDeleteFailed: 'Failed to delete branch',
|
|
573
|
+
branchDeleteHint: 'Hint: {{error}}',
|
|
574
|
+
branchDeleteManual: 'You can delete later manually: git branch -d {{branch}}',
|
|
575
|
+
successTitle: 'Switched to branch {{branch}}',
|
|
576
|
+
logsArchived: 'Logs archived to: .claude/logs/archived/{{branch}}/ ({{count}} items)',
|
|
577
|
+
oldBranchDeleted: 'Old branch {{branch}} deleted',
|
|
578
|
+
currentStatus: 'Current status:',
|
|
579
|
+
statusWorktree: 'Worktree: task-{{id}}',
|
|
580
|
+
statusBranch: 'Branch: {{branch}}',
|
|
581
|
+
statusPath: 'Path: {{path}}',
|
|
582
|
+
argError: 'Argument error',
|
|
583
|
+
argErrorHint: 'Usage: colyn checkout [worktree-id] <branch>',
|
|
584
|
+
tmuxWindowRenamed: 'tmux window name updated to: {{windowName}}',
|
|
585
|
+
},
|
|
586
|
+
// info command
|
|
587
|
+
info: {
|
|
588
|
+
description: 'Show current directory colyn project info',
|
|
589
|
+
shortOption: 'Output short identifier (with branch info)',
|
|
590
|
+
fieldOption: 'Output specified field (can be used multiple times)',
|
|
591
|
+
formatOption: 'Format output using template string',
|
|
592
|
+
separatorOption: 'Separator for multiple fields (default: tab)',
|
|
593
|
+
invalidField: 'Invalid field name: {{field}}',
|
|
594
|
+
invalidFieldHint: 'Valid fields: {{fields}}',
|
|
595
|
+
notInWorktree: 'Current directory is not in worktree or main branch',
|
|
596
|
+
notInWorktreeHint: 'Please switch to main branch directory or a worktree directory',
|
|
597
|
+
notColynProject: 'Current directory is not in a colyn project',
|
|
598
|
+
notColynProjectHint: '--format and --field options require a colyn project',
|
|
599
|
+
labelProject: 'Project:',
|
|
600
|
+
labelProjectPath: 'Project Path:',
|
|
601
|
+
labelWorktreeId: 'Worktree ID:',
|
|
602
|
+
labelWorktreeDir: 'Worktree Dir:',
|
|
603
|
+
labelWorktreePath: 'Worktree Path:',
|
|
604
|
+
labelBranch: 'Branch:',
|
|
605
|
+
labelRepository: 'Repository:',
|
|
606
|
+
labelRepositoryPath: 'Repo Path:',
|
|
607
|
+
labelDirectory: 'Directory:',
|
|
608
|
+
labelDirectoryPath: 'Path:',
|
|
609
|
+
mainIndicator: '0 (main)',
|
|
610
|
+
labelStatus: 'Status:',
|
|
611
|
+
labelLastUpdatedAt: 'Last Updated:',
|
|
612
|
+
statusNeverSet: '(never set)',
|
|
613
|
+
},
|
|
614
|
+
// status command
|
|
615
|
+
status: {
|
|
616
|
+
description: 'Query or set the workflow status of the current worktree',
|
|
617
|
+
getDescription: 'Get current worktree status (default)',
|
|
618
|
+
setDescription: 'Set current worktree status',
|
|
619
|
+
jsonOption: 'Output in JSON format',
|
|
620
|
+
statusArgument: 'Status value: idle | running | waiting-confirm | finish',
|
|
621
|
+
labelStatus: 'Status:',
|
|
622
|
+
labelUpdatedAt: 'Updated:',
|
|
623
|
+
neverUpdated: '(never set)',
|
|
624
|
+
statusUpdated: 'Status updated: {{status}}',
|
|
625
|
+
invalidStatus: 'Invalid status value: {{status}}',
|
|
626
|
+
invalidStatusHint: 'Valid statuses: idle, running, waiting-confirm, finish',
|
|
627
|
+
},
|
|
628
|
+
// repair command
|
|
629
|
+
repair: {
|
|
630
|
+
description: 'Check and repair project configuration (use after moving directory)',
|
|
631
|
+
notGitRepo: 'Main branch directory is not a git repository',
|
|
632
|
+
notGitRepoHint: 'Please make sure to run repair command in a git project',
|
|
633
|
+
checkingMainEnv: 'Checking main branch .env.local...',
|
|
634
|
+
mainEnvCorrect: 'Main branch .env.local configuration correct',
|
|
635
|
+
mainEnvFixed: 'Fixed main branch .env.local',
|
|
636
|
+
mainEnvFailed: 'Failed to fix main branch .env.local',
|
|
637
|
+
checkingWorktreeEnv: 'Checking worktree task-{{id}} .env.local...',
|
|
638
|
+
worktreeEnvCorrect: 'Worktree task-{{id}} .env.local configuration correct',
|
|
639
|
+
worktreeEnvFixed: 'Fixed worktree task-{{id}} .env.local',
|
|
640
|
+
worktreeEnvFailed: 'Failed to fix worktree task-{{id}} .env.local',
|
|
641
|
+
repairingGit: 'Repairing git worktree connections...',
|
|
642
|
+
gitRepaired: 'Git worktree connections repaired',
|
|
643
|
+
gitRepairFailed: 'Git worktree repair failed',
|
|
644
|
+
detectingOrphans: 'Detecting and repairing orphan worktree directories...',
|
|
645
|
+
noOrphans: 'No orphan worktree directories found',
|
|
646
|
+
orphansRepaired: 'Repaired {{count}} path-invalid worktrees',
|
|
647
|
+
orphansFound: 'Found {{count}} orphan worktree directories',
|
|
648
|
+
repairComplete: 'Repair complete!',
|
|
649
|
+
repairSummary: 'Repair summary:',
|
|
650
|
+
fixedItems: '✓ Fixed {{count}} configuration items',
|
|
651
|
+
allCorrect: '✓ All configurations correct, no repair needed',
|
|
652
|
+
failedItems: '⚠ {{count}} items failed to repair (see details below)',
|
|
653
|
+
repairedOrphans: '✓ Repaired {{count}} path-invalid worktrees',
|
|
654
|
+
trueOrphans: '⚠ Found {{count}} orphan worktree directories',
|
|
655
|
+
noOrphansFound: '✓ No orphan worktree directories found',
|
|
656
|
+
detailsTitle: 'Details:',
|
|
657
|
+
configCorrect: '✓ Configuration correct',
|
|
658
|
+
repairFailed: '✗ Repair failed: {{error}}',
|
|
659
|
+
repairedOrphansTitle: 'Repaired path-invalid worktrees:',
|
|
660
|
+
orphanRepaired: '✓ {{dir}} (git path updated)',
|
|
661
|
+
repairFailedTitle: 'Failed to repair worktrees:',
|
|
662
|
+
orphanFailed: '✗ {{dir}}: {{error}}',
|
|
663
|
+
trueOrphansTitle: 'Orphan worktree directories:',
|
|
664
|
+
orphanDir: '- {{dir}} (directory exists but git does not recognize)',
|
|
665
|
+
orphanSuggestion: 'Suggested action:',
|
|
666
|
+
orphanSuggestionHint: 'Run colyn remove to clean up, or manually delete the directory',
|
|
667
|
+
addPort: 'Add PORT={{port}}',
|
|
668
|
+
addWorktree: 'Add WORKTREE={{value}}',
|
|
669
|
+
updateWorktree: 'WORKTREE: {{old}} → {{new}}',
|
|
670
|
+
updatePort: 'PORT: {{old}} → {{new}}',
|
|
671
|
+
gitRepairDetail: 'Git worktree connections repaired',
|
|
672
|
+
initializingPlugins: 'Checking .gitignore rules for runtime config files...',
|
|
673
|
+
pluginsInitialized: '.gitignore check complete',
|
|
674
|
+
pluginsInitFailed: '.gitignore check failed (non-fatal)',
|
|
675
|
+
},
|
|
676
|
+
// config command
|
|
677
|
+
config: {
|
|
678
|
+
description: 'Manage configuration',
|
|
679
|
+
getDescription: 'Get a configuration value',
|
|
680
|
+
setDescription: 'Set a configuration value',
|
|
681
|
+
userOption: 'Operate on user-level config',
|
|
682
|
+
jsonOption: 'Output in JSON format',
|
|
683
|
+
title: 'Tmux Configuration Info',
|
|
684
|
+
userConfig: 'User Config',
|
|
685
|
+
projectConfig: 'Project Config',
|
|
686
|
+
effectiveConfig: 'Effective Configuration',
|
|
687
|
+
availableBuiltinCommands: 'Available Builtin Commands',
|
|
688
|
+
path: 'Path',
|
|
689
|
+
status: 'Status',
|
|
690
|
+
exists: 'exists',
|
|
691
|
+
notExists: 'not exists',
|
|
692
|
+
content: 'Content',
|
|
693
|
+
default: '(default)',
|
|
694
|
+
noCommand: '(no command)',
|
|
695
|
+
builtin: '(builtin)',
|
|
696
|
+
autoClaudeDesc: 'Continue Claude session (auto-detect existing session)',
|
|
697
|
+
autoDevServerDesc: 'Start dev server (auto-detect package.json)',
|
|
698
|
+
invalidKey: 'Invalid config key "{{key}}", valid keys are: {{validKeys}}',
|
|
699
|
+
invalidLang: 'Invalid language value "{{value}}", valid values are: {{validLangs}}',
|
|
700
|
+
setSuccess: 'Config set: {{key}} = {{value}} ({{scope}})',
|
|
701
|
+
userScope: 'user',
|
|
702
|
+
projectScope: 'project',
|
|
703
|
+
},
|
|
704
|
+
// completion command
|
|
705
|
+
completion: {
|
|
706
|
+
description: 'Generate shell auto-completion script',
|
|
707
|
+
installOption: 'Show installation instructions',
|
|
708
|
+
usage: 'Usage: colyn completion <shell>',
|
|
709
|
+
supportedShells: 'Supported shells:',
|
|
710
|
+
bashDesc: 'Generate Bash completion script',
|
|
711
|
+
zshDesc: 'Generate Zsh completion script',
|
|
712
|
+
options: 'Options:',
|
|
713
|
+
installDesc: 'Show installation instructions',
|
|
714
|
+
examples: 'Examples:',
|
|
715
|
+
unsupportedShell: 'Unsupported shell: {{shell}}',
|
|
716
|
+
unsupportedShellHint: 'Supported shells: {{shells}}',
|
|
717
|
+
cannotReadScript: 'Cannot read {{shell}} completion script',
|
|
718
|
+
cannotReadScriptHint: 'Please ensure the project is fully installed, script path: shell/completion.{{shell}}',
|
|
719
|
+
// Field descriptions for zsh completion
|
|
720
|
+
fieldProject: 'Project name',
|
|
721
|
+
fieldProjectPath: 'Project path',
|
|
722
|
+
fieldWorktreeId: 'Worktree ID',
|
|
723
|
+
fieldWorktreeDir: 'Worktree directory name',
|
|
724
|
+
fieldBranch: 'Branch name',
|
|
725
|
+
installTitle: '📝 Manual installation instructions:',
|
|
726
|
+
installStep1: '1. Add the following to {{config}}:',
|
|
727
|
+
installStep2: '2. Reload configuration:',
|
|
728
|
+
installAuto: 'Or run the following command to auto-install:',
|
|
729
|
+
},
|
|
730
|
+
// system-integration command
|
|
731
|
+
systemIntegration: {
|
|
732
|
+
description: 'Configure shell integration (supports auto directory switching and command completion)',
|
|
733
|
+
windowsNotSupported: '⚠ Windows platform does not support auto configuration',
|
|
734
|
+
windowsManualHint: 'Please refer to documentation for manual shell integration configuration:',
|
|
735
|
+
detectingEnv: 'Detecting system environment...',
|
|
736
|
+
shellType: '✓ Shell type: {{type}}',
|
|
737
|
+
configFile: '✓ Config file: {{path}}',
|
|
738
|
+
installPath: '✓ Colyn install path: {{path}}',
|
|
739
|
+
shellScriptNotFound: 'Shell integration script not found',
|
|
740
|
+
shellScriptNotFoundHint: `Path: {{path}}
|
|
741
|
+
|
|
742
|
+
Possible reasons:
|
|
743
|
+
- colyn installation incomplete
|
|
744
|
+
|
|
745
|
+
Solution:
|
|
746
|
+
Reinstall: npm install -g colyn`,
|
|
747
|
+
completionNotFound: '⚠ Completion script not found: {{path}}',
|
|
748
|
+
completionNotFoundHint: 'Will only configure shell integration',
|
|
749
|
+
configuringShell: 'Configuring shell integration...',
|
|
750
|
+
configCreated: '✓ Created {{file}}',
|
|
751
|
+
configAdded: '✓ Added shell integration to {{file}}',
|
|
752
|
+
completionAdded: '✓ Added completion script to {{file}}',
|
|
753
|
+
configUpdated: '✓ Updated shell integration in {{file}}',
|
|
754
|
+
completionUpdated: '✓ Updated completion script',
|
|
755
|
+
installComplete: 'Installation complete!',
|
|
756
|
+
updateComplete: 'Update complete!',
|
|
757
|
+
activateConfig: 'Activate configuration:',
|
|
758
|
+
activateMethod1: 'Method 1 (recommended): Reopen terminal',
|
|
759
|
+
activateMethod2: 'Method 2: Run command:',
|
|
760
|
+
features: 'Features:',
|
|
761
|
+
featureAutoSwitch: '✓ colyn command supports auto directory switching',
|
|
762
|
+
featureCompletion: '✓ Use Tab key for auto-completion',
|
|
763
|
+
configuringClaudeHooks: 'Configuring Claude Code hooks...',
|
|
764
|
+
claudeHooksAdded: '✓ Claude Code status hooks configured',
|
|
765
|
+
claudeHooksUpdated: '✓ Claude Code status hooks updated',
|
|
766
|
+
claudeHooksFailed: '⚠ Failed to configure Claude Code hooks (Claude Code may not be installed)',
|
|
767
|
+
},
|
|
768
|
+
// tmux command
|
|
769
|
+
tmux: {
|
|
770
|
+
description: 'Manage tmux session and windows for the project',
|
|
771
|
+
startDescription: 'Start and repair tmux session and windows',
|
|
772
|
+
stopDescription: 'Stop the current project tmux session',
|
|
773
|
+
forceOption: 'Skip confirmation and stop directly',
|
|
774
|
+
confirmStop: 'Confirm to stop current session "{{sessionName}}"? This will disconnect you.',
|
|
775
|
+
stopCanceled: 'Canceled',
|
|
776
|
+
sessionNotExists: 'Session "{{sessionName}}" does not exist',
|
|
777
|
+
stoppingSession: 'Stopping tmux session "{{sessionName}}"...',
|
|
778
|
+
detachingAndStopping: 'Detaching and stopping session "{{sessionName}}"...',
|
|
779
|
+
sessionStopped: 'Stopped tmux session "{{sessionName}}"',
|
|
780
|
+
stopFailed: 'Failed to stop tmux session "{{sessionName}}"',
|
|
781
|
+
notInstalled: 'tmux is not installed',
|
|
782
|
+
installHint: 'Please install tmux first (e.g. brew install tmux)',
|
|
783
|
+
repairing: 'Checking and repairing tmux session and windows...',
|
|
784
|
+
sessionCreateFailed: 'Failed to create tmux session',
|
|
785
|
+
sessionCreateFailedHint: 'Please verify tmux is running and you can create session manually: tmux new -s {{sessionName}}',
|
|
786
|
+
failedWindowsTitle: 'Failed windows:',
|
|
787
|
+
renameWindowFailed: 'Rename failed: {{currentName}} -> {{expectedName}}',
|
|
788
|
+
createWindowFailed: 'Failed to create window',
|
|
789
|
+
repairComplete: 'Tmux repair complete',
|
|
790
|
+
repairSummary: 'Summary',
|
|
791
|
+
repairCreatedSession: ' ✓ Created tmux session: {{sessionName}}',
|
|
792
|
+
repairCreatedWindows: ' ✓ Created {{count}} tmux window(s)',
|
|
793
|
+
repairRenamedWindows: ' ✓ Renamed {{count}} tmux window(s)',
|
|
794
|
+
repairExistingWindows: ' ✓ {{count}} tmux window(s) already exist (layout preserved)',
|
|
795
|
+
repairFailedWindows: ' ⚠ {{count}} tmux window(s) failed to repair',
|
|
796
|
+
repairDetails: 'Details',
|
|
797
|
+
createdWindowsTitle: 'Created tmux windows:',
|
|
798
|
+
createdWindowItem: ' ✓ Window {{id}}: {{name}}',
|
|
799
|
+
renamedWindowsTitle: 'Renamed tmux windows:',
|
|
800
|
+
renamedWindowItem: ' ✓ Window {{id}}: {{oldName}} -> {{newName}}',
|
|
801
|
+
failedWindowItem: ' ✗ Window {{id}}: {{error}}',
|
|
802
|
+
failedWindowItemCompact: ' - Window {{id}}: {{error}}',
|
|
803
|
+
createdSessionAndWindows: 'Created session "{{sessionName}}" and {{count}} window(s)',
|
|
804
|
+
createdSession: 'Created session "{{sessionName}}"',
|
|
805
|
+
createdWindows: 'Created {{count}} tmux window(s)',
|
|
806
|
+
windowsCreateFailed: '{{count}} tmux window(s) failed to create',
|
|
807
|
+
allWindowsExist: 'All tmux windows already exist',
|
|
808
|
+
switchingSession: 'Switching to session "{{sessionName}}"...',
|
|
809
|
+
switchedSession: 'Switched to session "{{sessionName}}"',
|
|
810
|
+
switchSessionFailed: 'Failed to switch session',
|
|
811
|
+
attachingSession: 'Attaching to session "{{sessionName}}"...',
|
|
812
|
+
passthroughNotEnabled: 'tmux allow-passthrough is not enabled',
|
|
813
|
+
passthroughDescription: 'When enabled, colyn can automatically update iTerm2 tab titles even when pane 0 is running Claude or other interactive programs',
|
|
814
|
+
passthroughConfirm: 'Would you like to enable allow-passthrough in your tmux config?',
|
|
815
|
+
passthroughSkipped: 'Skipped. Continuing (iTerm2 tab titles may not update when pane 0 is busy)',
|
|
816
|
+
passthroughUnsupported: 'Your tmux version does not support allow-passthrough (requires tmux 3.3+). iTerm2 tab titles may not update when pane 0 is busy',
|
|
817
|
+
passthroughAdded: 'Added allow-passthrough setting to {{configPath}}',
|
|
818
|
+
passthroughReloadHint: 'Please reload your tmux config:\n tmux source-file {{configPath}}',
|
|
819
|
+
passthroughRerunHint: 'After reloading, run colyn tmux start again',
|
|
820
|
+
},
|
|
821
|
+
// todo command
|
|
822
|
+
todo: {
|
|
823
|
+
description: 'Manage Todo tasks',
|
|
824
|
+
add: {
|
|
825
|
+
description: 'Add a Todo task',
|
|
826
|
+
invalidFormat: 'Invalid Todo ID format, expected {type}/{name}',
|
|
827
|
+
alreadyExists: 'Todo "{{todoId}}" already exists',
|
|
828
|
+
success: 'Added Todo: {{todoId}} - {{message}}',
|
|
829
|
+
emptyMessage: 'Task message cannot be empty',
|
|
830
|
+
emptyName: 'Name cannot be empty',
|
|
831
|
+
editorCanceled: 'Edit canceled, todo not added',
|
|
832
|
+
editorFailed: 'Cannot open editor: {{editor}}',
|
|
833
|
+
selectType: 'Select task type',
|
|
834
|
+
inputName: 'Enter task name (e.g. login, fix-crash)',
|
|
835
|
+
},
|
|
836
|
+
start: {
|
|
837
|
+
description: 'Start a Todo task (create corresponding branch)',
|
|
838
|
+
notFound: 'Todo "{{todoId}}" not found',
|
|
839
|
+
notPending: 'Todo "{{todoId}}" is not in pending status',
|
|
840
|
+
checkoutFailed: 'Failed to create branch, Todo status unchanged',
|
|
841
|
+
success: 'Todo "{{todoId}}" marked as completed',
|
|
842
|
+
noClipboardOption: 'Skip copying message to clipboard',
|
|
843
|
+
messageTitle: 'Task message:',
|
|
844
|
+
clipboardCopied: 'Copied to clipboard',
|
|
845
|
+
clipboardFailed: 'Failed to copy to clipboard',
|
|
846
|
+
noPending: 'No pending tasks',
|
|
847
|
+
selectTodo: 'Select a task to start',
|
|
848
|
+
},
|
|
849
|
+
list: {
|
|
850
|
+
description: 'List Todo tasks',
|
|
851
|
+
completedOption: 'Show completed tasks',
|
|
852
|
+
archivedOption: 'Show archived tasks',
|
|
853
|
+
idOnlyOption: 'Output todo IDs only, one per line (for script integration)',
|
|
854
|
+
jsonOption: 'Output in JSON format',
|
|
855
|
+
jsonConflict: 'Option conflict: --json and --id-only cannot be used together',
|
|
856
|
+
empty: 'No tasks',
|
|
857
|
+
headerType: 'Type',
|
|
858
|
+
headerName: 'Name',
|
|
859
|
+
headerMessage: 'Message',
|
|
860
|
+
headerStatus: 'Status',
|
|
861
|
+
headerCreatedAt: 'Created',
|
|
862
|
+
statusPending: 'Pending',
|
|
863
|
+
statusCompleted: 'Completed',
|
|
864
|
+
statusArchived: 'Archived',
|
|
865
|
+
},
|
|
866
|
+
remove: {
|
|
867
|
+
description: 'Remove a Todo task',
|
|
868
|
+
yesOption: 'Skip confirmation and remove directly',
|
|
869
|
+
notFound: 'Todo "{{todoId}}" not found',
|
|
870
|
+
confirm: 'Confirm remove Todo "{{todoId}}"?',
|
|
871
|
+
success: 'Removed Todo: {{todoId}}',
|
|
872
|
+
canceled: 'Remove canceled',
|
|
873
|
+
selectTodo: 'Select a task to remove',
|
|
874
|
+
},
|
|
875
|
+
archive: {
|
|
876
|
+
description: 'Archive all completed Todo tasks',
|
|
877
|
+
yesOption: 'Skip confirmation and archive directly',
|
|
878
|
+
noCompleted: 'No completed tasks to archive',
|
|
879
|
+
confirm: 'Confirm archive {{count}} completed task(s)?',
|
|
880
|
+
success: 'Archived {{count}} task(s)',
|
|
881
|
+
canceled: 'Archive canceled',
|
|
882
|
+
},
|
|
883
|
+
uncomplete: {
|
|
884
|
+
description: 'Revert a completed Todo task back to pending',
|
|
885
|
+
notFound: 'Todo "{{todoId}}" not found',
|
|
886
|
+
notCompleted: 'Todo "{{todoId}}" is not in completed status',
|
|
887
|
+
noBranch: 'Not in a worktree branch, please specify a Todo ID',
|
|
888
|
+
success: 'Todo "{{todoId}}" reverted to pending',
|
|
889
|
+
usingCurrentBranch: 'Using current branch name: {{branch}}',
|
|
890
|
+
},
|
|
891
|
+
edit: {
|
|
892
|
+
description: 'Edit the message of a Todo task',
|
|
893
|
+
notFound: 'Todo "{{todoId}}" not found',
|
|
894
|
+
noTodos: 'No Todo tasks available to edit',
|
|
895
|
+
selectTodo: 'Select a Todo task to edit',
|
|
896
|
+
isCompleted: 'Todo "{{todoId}}" is completed. Revert to pending?',
|
|
897
|
+
revertCanceled: 'Canceled, Todo status unchanged',
|
|
898
|
+
success: 'Todo "{{todoId}}" message updated',
|
|
899
|
+
messageEmpty: 'Message cannot be empty',
|
|
900
|
+
editorFailed: 'Editor exited unexpectedly, message not updated',
|
|
901
|
+
},
|
|
902
|
+
},
|
|
903
|
+
// list-project command
|
|
904
|
+
listProject: {
|
|
905
|
+
description: 'List all projects in tmux sessions',
|
|
906
|
+
jsonOption: 'Output in JSON format',
|
|
907
|
+
pathsOption: 'Output paths only (one per line)',
|
|
908
|
+
optionConflict: 'Option conflict: --json and --paths cannot be used together',
|
|
909
|
+
optionConflictHint: 'Please choose one output format',
|
|
910
|
+
tmuxNotInstalled: 'tmux is not installed',
|
|
911
|
+
tmuxInstallHint: 'Please install tmux first: brew install tmux (macOS) or apt install tmux (Linux)',
|
|
912
|
+
noProjects: 'No projects found',
|
|
913
|
+
noProjectsHint: 'Hint: Use colyn init to initialize a project, and colyn tmux to create a tmux session',
|
|
914
|
+
noProjectsFound: 'No projects found',
|
|
915
|
+
tableSession: 'Session',
|
|
916
|
+
tableProject: 'Project',
|
|
917
|
+
tablePath: 'Path',
|
|
918
|
+
tableWorktrees: 'Worktrees',
|
|
919
|
+
projectWorktrees: 'Worktrees for {{project}}',
|
|
920
|
+
},
|
|
921
|
+
},
|
|
922
|
+
// Toolchain resolver
|
|
923
|
+
toolchain: {
|
|
924
|
+
unrecognizedDirectory: 'Subdirectory {{path}} was not recognized by any toolchain',
|
|
925
|
+
selectForDirectory: 'Select toolchain for {{path}}',
|
|
926
|
+
noToolchain: '(No toolchain)',
|
|
927
|
+
monoRepoDetected: 'Mono Repo structure detected, found {{count}} sub-projects',
|
|
928
|
+
singleProjectDetected: 'Single project detected ({{toolchain}})',
|
|
929
|
+
subProjectSkipped: 'Subdirectory {{path}} does not exist in current Worktree, skipping',
|
|
930
|
+
},
|
|
931
|
+
// Plugin system
|
|
932
|
+
plugins: {
|
|
933
|
+
autoMigrated: 'ℹ Auto-configured toolchain plugins: {{plugins}}',
|
|
934
|
+
autoMigratedNone: 'ℹ Toolchain configured (no matching plugins detected)',
|
|
935
|
+
autoMigratedHint: 'To change, edit the plugins field in .colyn/settings.json',
|
|
936
|
+
xcode: {
|
|
937
|
+
autoSelectedScheme: 'Auto-selected scheme: {{scheme}}',
|
|
938
|
+
noSharedSchemes: 'No shared scheme found, please enter manually',
|
|
939
|
+
selectScheme: 'Select Xcode scheme',
|
|
940
|
+
inputScheme: 'Enter scheme name (view in Xcode → Product → Scheme)',
|
|
941
|
+
inferredDestination: 'Inferred target platform: {{destination}}',
|
|
942
|
+
selectDestination: 'Select target platform',
|
|
943
|
+
},
|
|
944
|
+
},
|
|
945
|
+
// Errors
|
|
946
|
+
errors: {
|
|
947
|
+
notGitRepo: 'Not a git repository',
|
|
948
|
+
projectNotInitialized: 'Project not initialized',
|
|
949
|
+
projectNotInitializedHint: 'Please run colyn init first to initialize the project',
|
|
950
|
+
projectRootNotFound: 'Project root not found',
|
|
951
|
+
projectRootNotFoundHint: 'Current directory is not in a colyn project, please run colyn init first',
|
|
952
|
+
mainDirNotFound: 'Main branch directory not found',
|
|
953
|
+
worktreesDirNotFound: 'Worktrees directory not found',
|
|
954
|
+
pathExistsNotDir: 'Path exists but is not a directory: {{path}}',
|
|
955
|
+
pathNotFound: 'Directory not found: {{path}}',
|
|
956
|
+
workingDirNotClean: 'Working directory not clean, uncommitted changes exist',
|
|
957
|
+
workingDirNotCleanHint: 'Please commit or stash changes before running init',
|
|
958
|
+
cannotGetMainPort: 'Cannot get main branch port',
|
|
959
|
+
cannotGetMainPortHint: 'Please ensure PORT is configured in {{path}}',
|
|
960
|
+
worktreeConfigIncomplete: 'Worktree configuration incomplete',
|
|
961
|
+
worktreeConfigIncompleteHint: 'Missing WORKTREE variable in .env.local\nFile path: {{path}}\n\nPlease ensure .env.local contains WORKTREE configuration',
|
|
962
|
+
worktreeConfigInvalid: 'Worktree configuration invalid',
|
|
963
|
+
worktreeConfigInvalidHint: 'WORKTREE value in .env.local is not a valid number: "{{value}}"\nFile path: {{path}}',
|
|
964
|
+
worktreeConfigMismatch: 'Worktree configuration mismatch',
|
|
965
|
+
worktreeConfigMismatchHint: `Directory name does not match WORKTREE value in .env.local
|
|
966
|
+
|
|
967
|
+
Directory: {{dirName}} (ID: {{dirId}})
|
|
968
|
+
WORKTREE: {{envId}}
|
|
969
|
+
|
|
970
|
+
Possible causes:
|
|
971
|
+
- .env.local was manually modified
|
|
972
|
+
- Directory was renamed
|
|
973
|
+
|
|
974
|
+
Please correct WORKTREE value in .env.local to {{dirId}}, or check if directory is correct`,
|
|
975
|
+
},
|
|
976
|
+
// Output labels
|
|
977
|
+
output: {
|
|
978
|
+
projectRoot: 'Project root',
|
|
979
|
+
mainBranchDir: 'Main branch directory',
|
|
980
|
+
worktreeDir: 'Worktree directory',
|
|
981
|
+
configDir: 'Config directory',
|
|
982
|
+
subDir: 'Subdirectory ({{path}})',
|
|
983
|
+
},
|
|
984
|
+
};
|
|
985
|
+
//# sourceMappingURL=en.js.map
|