gitcoach-cli 1.0.0

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 (185) hide show
  1. package/bin/run.js +80 -0
  2. package/dist/analytics/index.d.ts +3 -0
  3. package/dist/analytics/index.d.ts.map +1 -0
  4. package/dist/analytics/index.js +3 -0
  5. package/dist/analytics/index.js.map +1 -0
  6. package/dist/analytics/stats-calculator.d.ts +24 -0
  7. package/dist/analytics/stats-calculator.d.ts.map +1 -0
  8. package/dist/analytics/stats-calculator.js +135 -0
  9. package/dist/analytics/stats-calculator.js.map +1 -0
  10. package/dist/analytics/tracker.d.ts +36 -0
  11. package/dist/analytics/tracker.d.ts.map +1 -0
  12. package/dist/analytics/tracker.js +103 -0
  13. package/dist/analytics/tracker.js.map +1 -0
  14. package/dist/commands/config.d.ts +7 -0
  15. package/dist/commands/config.d.ts.map +1 -0
  16. package/dist/commands/config.js +12 -0
  17. package/dist/commands/config.js.map +1 -0
  18. package/dist/commands/index.d.ts +9 -0
  19. package/dist/commands/index.d.ts.map +1 -0
  20. package/dist/commands/index.js +154 -0
  21. package/dist/commands/index.js.map +1 -0
  22. package/dist/commands/init.d.ts +7 -0
  23. package/dist/commands/init.d.ts.map +1 -0
  24. package/dist/commands/init.js +45 -0
  25. package/dist/commands/init.js.map +1 -0
  26. package/dist/commands/quick.d.ts +12 -0
  27. package/dist/commands/quick.d.ts.map +1 -0
  28. package/dist/commands/quick.js +112 -0
  29. package/dist/commands/quick.js.map +1 -0
  30. package/dist/commands/stats.d.ts +7 -0
  31. package/dist/commands/stats.d.ts.map +1 -0
  32. package/dist/commands/stats.js +42 -0
  33. package/dist/commands/stats.js.map +1 -0
  34. package/dist/config/defaults.d.ts +37 -0
  35. package/dist/config/defaults.d.ts.map +1 -0
  36. package/dist/config/defaults.js +33 -0
  37. package/dist/config/defaults.js.map +1 -0
  38. package/dist/config/index.d.ts +3 -0
  39. package/dist/config/index.d.ts.map +1 -0
  40. package/dist/config/index.js +3 -0
  41. package/dist/config/index.js.map +1 -0
  42. package/dist/config/user-config.d.ts +33 -0
  43. package/dist/config/user-config.d.ts.map +1 -0
  44. package/dist/config/user-config.js +106 -0
  45. package/dist/config/user-config.js.map +1 -0
  46. package/dist/i18n/index.d.ts +8 -0
  47. package/dist/i18n/index.d.ts.map +1 -0
  48. package/dist/i18n/index.js +45 -0
  49. package/dist/i18n/index.js.map +1 -0
  50. package/dist/i18n/locales/en.json +353 -0
  51. package/dist/i18n/locales/es.json +353 -0
  52. package/dist/i18n/locales/fr.json +353 -0
  53. package/dist/index.d.ts +9 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +11 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/services/analysis-service.d.ts +24 -0
  58. package/dist/services/analysis-service.d.ts.map +1 -0
  59. package/dist/services/analysis-service.js +158 -0
  60. package/dist/services/analysis-service.js.map +1 -0
  61. package/dist/services/copilot-service.d.ts +30 -0
  62. package/dist/services/copilot-service.d.ts.map +1 -0
  63. package/dist/services/copilot-service.js +385 -0
  64. package/dist/services/copilot-service.js.map +1 -0
  65. package/dist/services/git-service.d.ts +75 -0
  66. package/dist/services/git-service.d.ts.map +1 -0
  67. package/dist/services/git-service.js +230 -0
  68. package/dist/services/git-service.js.map +1 -0
  69. package/dist/services/index.d.ts +5 -0
  70. package/dist/services/index.d.ts.map +1 -0
  71. package/dist/services/index.js +5 -0
  72. package/dist/services/index.js.map +1 -0
  73. package/dist/services/prevention-service.d.ts +29 -0
  74. package/dist/services/prevention-service.d.ts.map +1 -0
  75. package/dist/services/prevention-service.js +213 -0
  76. package/dist/services/prevention-service.js.map +1 -0
  77. package/dist/ui/components/box.d.ts +16 -0
  78. package/dist/ui/components/box.d.ts.map +1 -0
  79. package/dist/ui/components/box.js +100 -0
  80. package/dist/ui/components/box.js.map +1 -0
  81. package/dist/ui/components/index.d.ts +5 -0
  82. package/dist/ui/components/index.d.ts.map +1 -0
  83. package/dist/ui/components/index.js +5 -0
  84. package/dist/ui/components/index.js.map +1 -0
  85. package/dist/ui/components/prompt.d.ts +19 -0
  86. package/dist/ui/components/prompt.d.ts.map +1 -0
  87. package/dist/ui/components/prompt.js +62 -0
  88. package/dist/ui/components/prompt.js.map +1 -0
  89. package/dist/ui/components/spinner.d.ts +8 -0
  90. package/dist/ui/components/spinner.d.ts.map +1 -0
  91. package/dist/ui/components/spinner.js +24 -0
  92. package/dist/ui/components/spinner.js.map +1 -0
  93. package/dist/ui/components/table.d.ts +25 -0
  94. package/dist/ui/components/table.d.ts.map +1 -0
  95. package/dist/ui/components/table.js +72 -0
  96. package/dist/ui/components/table.js.map +1 -0
  97. package/dist/ui/index.d.ts +3 -0
  98. package/dist/ui/index.d.ts.map +1 -0
  99. package/dist/ui/index.js +3 -0
  100. package/dist/ui/index.js.map +1 -0
  101. package/dist/ui/menus/add-menu.d.ts +6 -0
  102. package/dist/ui/menus/add-menu.d.ts.map +1 -0
  103. package/dist/ui/menus/add-menu.js +60 -0
  104. package/dist/ui/menus/add-menu.js.map +1 -0
  105. package/dist/ui/menus/branch-menu.d.ts +8 -0
  106. package/dist/ui/menus/branch-menu.d.ts.map +1 -0
  107. package/dist/ui/menus/branch-menu.js +141 -0
  108. package/dist/ui/menus/branch-menu.js.map +1 -0
  109. package/dist/ui/menus/commit-menu.d.ts +7 -0
  110. package/dist/ui/menus/commit-menu.d.ts.map +1 -0
  111. package/dist/ui/menus/commit-menu.js +129 -0
  112. package/dist/ui/menus/commit-menu.js.map +1 -0
  113. package/dist/ui/menus/config-menu.d.ts +3 -0
  114. package/dist/ui/menus/config-menu.d.ts.map +1 -0
  115. package/dist/ui/menus/config-menu.js +97 -0
  116. package/dist/ui/menus/config-menu.js.map +1 -0
  117. package/dist/ui/menus/help-menu.d.ts +3 -0
  118. package/dist/ui/menus/help-menu.d.ts.map +1 -0
  119. package/dist/ui/menus/help-menu.js +133 -0
  120. package/dist/ui/menus/help-menu.js.map +1 -0
  121. package/dist/ui/menus/history-menu.d.ts +3 -0
  122. package/dist/ui/menus/history-menu.d.ts.map +1 -0
  123. package/dist/ui/menus/history-menu.js +129 -0
  124. package/dist/ui/menus/history-menu.js.map +1 -0
  125. package/dist/ui/menus/index.d.ts +8 -0
  126. package/dist/ui/menus/index.d.ts.map +1 -0
  127. package/dist/ui/menus/index.js +8 -0
  128. package/dist/ui/menus/index.js.map +1 -0
  129. package/dist/ui/menus/main-menu.d.ts +4 -0
  130. package/dist/ui/menus/main-menu.d.ts.map +1 -0
  131. package/dist/ui/menus/main-menu.js +134 -0
  132. package/dist/ui/menus/main-menu.js.map +1 -0
  133. package/dist/ui/menus/pull-menu.d.ts +7 -0
  134. package/dist/ui/menus/pull-menu.d.ts.map +1 -0
  135. package/dist/ui/menus/pull-menu.js +69 -0
  136. package/dist/ui/menus/pull-menu.js.map +1 -0
  137. package/dist/ui/menus/push-menu.d.ts +8 -0
  138. package/dist/ui/menus/push-menu.d.ts.map +1 -0
  139. package/dist/ui/menus/push-menu.js +160 -0
  140. package/dist/ui/menus/push-menu.js.map +1 -0
  141. package/dist/ui/menus/setup-menu.d.ts +5 -0
  142. package/dist/ui/menus/setup-menu.d.ts.map +1 -0
  143. package/dist/ui/menus/setup-menu.js +234 -0
  144. package/dist/ui/menus/setup-menu.js.map +1 -0
  145. package/dist/ui/menus/stash-menu.d.ts +3 -0
  146. package/dist/ui/menus/stash-menu.d.ts.map +1 -0
  147. package/dist/ui/menus/stash-menu.js +205 -0
  148. package/dist/ui/menus/stash-menu.js.map +1 -0
  149. package/dist/ui/menus/undo-menu.d.ts +3 -0
  150. package/dist/ui/menus/undo-menu.d.ts.map +1 -0
  151. package/dist/ui/menus/undo-menu.js +197 -0
  152. package/dist/ui/menus/undo-menu.js.map +1 -0
  153. package/dist/ui/themes/colored.d.ts +35 -0
  154. package/dist/ui/themes/colored.d.ts.map +1 -0
  155. package/dist/ui/themes/colored.js +85 -0
  156. package/dist/ui/themes/colored.js.map +1 -0
  157. package/dist/ui/themes/index.d.ts +39 -0
  158. package/dist/ui/themes/index.d.ts.map +1 -0
  159. package/dist/ui/themes/index.js +9 -0
  160. package/dist/ui/themes/index.js.map +1 -0
  161. package/dist/ui/themes/monochrome.d.ts +35 -0
  162. package/dist/ui/themes/monochrome.d.ts.map +1 -0
  163. package/dist/ui/themes/monochrome.js +80 -0
  164. package/dist/ui/themes/monochrome.js.map +1 -0
  165. package/dist/utils/error-helper.d.ts +10 -0
  166. package/dist/utils/error-helper.d.ts.map +1 -0
  167. package/dist/utils/error-helper.js +55 -0
  168. package/dist/utils/error-helper.js.map +1 -0
  169. package/dist/utils/helpers.d.ts +16 -0
  170. package/dist/utils/helpers.d.ts.map +1 -0
  171. package/dist/utils/helpers.js +95 -0
  172. package/dist/utils/helpers.js.map +1 -0
  173. package/dist/utils/index.d.ts +4 -0
  174. package/dist/utils/index.d.ts.map +1 -0
  175. package/dist/utils/index.js +4 -0
  176. package/dist/utils/index.js.map +1 -0
  177. package/dist/utils/logger.d.ts +24 -0
  178. package/dist/utils/logger.d.ts.map +1 -0
  179. package/dist/utils/logger.js +71 -0
  180. package/dist/utils/logger.js.map +1 -0
  181. package/dist/utils/validators.d.ts +10 -0
  182. package/dist/utils/validators.d.ts.map +1 -0
  183. package/dist/utils/validators.js +78 -0
  184. package/dist/utils/validators.js.map +1 -0
  185. package/package.json +71 -0
@@ -0,0 +1,353 @@
1
+ {
2
+ "app": {
3
+ "name": "GitSense",
4
+ "tagline": "Your AI-Powered Git Coach",
5
+ "version": "v{{version}}",
6
+ "welcome": "Welcome to GitSense!",
7
+ "goodbye": "Goodbye! Happy coding!"
8
+ },
9
+ "menu": {
10
+ "title": "Main Menu",
11
+ "status": "Status",
12
+ "statusDesc": "View current changes",
13
+ "add": "Add",
14
+ "addDesc": "Stage files for commit",
15
+ "commit": "Commit",
16
+ "commitDesc": "Save your changes",
17
+ "push": "Push",
18
+ "pushDesc": "Upload to remote",
19
+ "pull": "Pull",
20
+ "pullDesc": "Download changes",
21
+ "branch": "Branch",
22
+ "branchDesc": "Manage branches",
23
+ "undo": "Undo",
24
+ "undoDesc": "Undo actions",
25
+ "history": "History",
26
+ "historyDesc": "View commit history",
27
+ "stash": "Stash",
28
+ "stashDesc": "Save work temporarily",
29
+ "config": "Settings",
30
+ "configDesc": "Configure GitSense",
31
+ "stats": "Statistics",
32
+ "statsDesc": "View your progress",
33
+ "help": "Help",
34
+ "helpDesc": "Get assistance",
35
+ "quit": "Quit",
36
+ "quitDesc": "Exit GitSense",
37
+ "back": "Back",
38
+ "backDesc": "Return to previous menu"
39
+ },
40
+ "commands": {
41
+ "status": {
42
+ "title": "Repository Status",
43
+ "clean": "Working tree is clean. Nothing to commit.",
44
+ "staged": "Staged changes (ready to commit):",
45
+ "unstaged": "Unstaged changes:",
46
+ "untracked": "Untracked files:",
47
+ "branch": "On branch: {{branch}}",
48
+ "ahead": "Your branch is ahead of '{{remote}}' by {{count}} commit(s).",
49
+ "behind": "Your branch is behind '{{remote}}' by {{count}} commit(s).",
50
+ "diverged": "Your branch and '{{remote}}' have diverged."
51
+ },
52
+ "add": {
53
+ "title": "Stage Files",
54
+ "selectFiles": "Select files to stage:",
55
+ "noFiles": "No files to stage.",
56
+ "allFiles": "Stage all files",
57
+ "success": "Successfully staged {{count}} file(s).",
58
+ "staged": "Staged: {{file}}"
59
+ },
60
+ "commit": {
61
+ "title": "Commit Changes",
62
+ "noStaged": "No staged changes to commit. Use 'Add' first.",
63
+ "enterMessage": "Enter commit message:",
64
+ "generateAI": "Generate commit message with AI",
65
+ "generating": "Generating commit message...",
66
+ "suggested": "Suggested message: {{message}}",
67
+ "useGenerated": "Use this message?",
68
+ "editMessage": "Edit message",
69
+ "success": "Successfully committed: {{message}}",
70
+ "cancelled": "Commit cancelled.",
71
+ "emptyToCancel": "(Leave empty to cancel)",
72
+ "messageTooShort": "Commit message must be at least 3 characters",
73
+ "copilotUnavailable": "GitHub Copilot CLI not available - enter message manually",
74
+ "aiGenerationFailed": "AI generation failed - enter message manually",
75
+ "enterManually": "Enter your commit message:"
76
+ },
77
+ "push": {
78
+ "title": "Push Changes",
79
+ "confirm": "Push {{count}} commit(s) to {{remote}}/{{branch}}?",
80
+ "nothingToPush": "Nothing to push. Your branch is up to date.",
81
+ "pushing": "Pushing to {{remote}}...",
82
+ "success": "Successfully pushed to {{remote}}/{{branch}}.",
83
+ "failed": "Push failed: {{error}}",
84
+ "forcePush": "Force push",
85
+ "forcePushWarning": "Force push will overwrite remote history. Are you sure?",
86
+ "remoteBehind": "Remote has {{count}} new commit(s). You should pull first!",
87
+ "behindAction": "What would you like to do?",
88
+ "pullThenPush": "Pull first, then push",
89
+ "noUpstream": "Branch '{{branch}}' has no upstream. {{count}} commit(s) will be pushed.",
90
+ "firstPush": "First Push"
91
+ },
92
+ "pull": {
93
+ "title": "Pull Changes",
94
+ "pulling": "Pulling from {{remote}}...",
95
+ "success": "Successfully pulled {{count}} commit(s).",
96
+ "upToDate": "Already up to date.",
97
+ "conflicts": "Merge conflicts detected. Please resolve them manually.",
98
+ "failed": "Pull failed: {{error}}"
99
+ },
100
+ "branch": {
101
+ "title": "Branch Management",
102
+ "current": "Current branch: {{branch}}",
103
+ "list": "Available branches:",
104
+ "create": "Create new branch",
105
+ "switch": "Switch branch",
106
+ "delete": "Delete branch",
107
+ "enterName": "Enter branch name:",
108
+ "createSuccess": "Created branch: {{branch}}",
109
+ "switchSuccess": "Switched to branch: {{branch}}",
110
+ "deleteSuccess": "Deleted branch: {{branch}}",
111
+ "deleteConfirm": "Delete branch '{{branch}}'? This cannot be undone.",
112
+ "cannotDeleteCurrent": "Cannot delete the current branch."
113
+ },
114
+ "undo": {
115
+ "title": "Undo Actions",
116
+ "selectAction": "What would you like to undo?",
117
+ "softReset": "Undo last commit (keep files)",
118
+ "softResetDesc": "Removes commit but keeps your changes staged",
119
+ "hardReset": "Undo last commit (delete all)",
120
+ "hardResetDesc": "Removes commit AND deletes all changes",
121
+ "unstage": "Unstage files",
122
+ "unstageDesc": "Remove files from staging area",
123
+ "restore": "Discard file changes",
124
+ "restoreDesc": "Revert files to last commit",
125
+ "whatItDoes": "What this does:",
126
+ "softResetExplain": "This will undo your last commit but keep all your file changes. You can then edit and commit again.",
127
+ "hardResetWarning": "This will permanently delete your last commit AND all uncommitted changes. This cannot be undone!",
128
+ "unstageExplain": "This will remove selected files from the staging area. Your changes will remain in the working directory.",
129
+ "restoreWarning": "This will permanently discard all changes to selected files. Your work will be lost!",
130
+ "noCommits": "No commits to undo.",
131
+ "lastCommit": "Last commit:",
132
+ "confirmSoftReset": "Undo this commit? (files will be kept)",
133
+ "confirmHardReset": "Are you sure? This will DELETE all changes!",
134
+ "confirmHardReset2": "FINAL WARNING: Type 'yes' to confirm permanent deletion",
135
+ "softResetSuccess": "Commit undone! Your changes are still staged.",
136
+ "hardResetSuccess": "Commit and all changes have been deleted.",
137
+ "filesKept": "Your files are still staged. You can edit and commit again.",
138
+ "noStagedFiles": "No files are currently staged.",
139
+ "stagedFiles": "Staged files:",
140
+ "selectFilesToUnstage": "Select files to unstage:",
141
+ "unstageSuccess": "{{count}} file(s) unstaged successfully.",
142
+ "noModifiedFiles": "No modified files to restore.",
143
+ "modifiedFiles": "Modified files:",
144
+ "selectFilesToRestore": "Select files to restore:",
145
+ "confirmRestore": "Discard changes to {{count}} file(s)? This cannot be undone!",
146
+ "restoreSuccess": "{{count}} file(s) restored to last commit."
147
+ },
148
+ "history": {
149
+ "title": "Commit History",
150
+ "recentCommits": "Recent commits:",
151
+ "noCommits": "No commits yet in this repository.",
152
+ "viewMore": "Load more commits",
153
+ "selectCommit": "Select a commit to view details:",
154
+ "commitDetails": "Commit Details",
155
+ "commitNotFound": "Commit not found.",
156
+ "changedFiles": "Changed files in this commit:"
157
+ },
158
+ "stash": {
159
+ "title": "Stash - Save Work Temporarily",
160
+ "selectAction": "What would you like to do?",
161
+ "save": "Save current work",
162
+ "saveDesc": "Stash all uncommitted changes",
163
+ "list": "View stashes",
164
+ "listDesc": "See all saved stashes",
165
+ "apply": "Apply a stash",
166
+ "applyDesc": "Restore changes (keep stash)",
167
+ "pop": "Pop latest stash",
168
+ "popDesc": "Restore and delete latest stash",
169
+ "drop": "Delete a stash",
170
+ "dropDesc": "Permanently remove a stash",
171
+ "whatItDoes": "What this does:",
172
+ "saveExplain": "This will save all your uncommitted changes and clean your working directory. You can restore them later.",
173
+ "applyExplain": "This will restore the selected stash but keep it in the stash list.",
174
+ "popExplain": "This will restore the latest stash and remove it from the list.",
175
+ "dropWarning": "This will permanently delete the selected stash. This cannot be undone!",
176
+ "nothingToStash": "No changes to stash. Your working tree is already clean.",
177
+ "enterMessage": "Enter a description (optional):",
178
+ "saveSuccess": "Changes stashed successfully!",
179
+ "workingTreeClean": "Your working directory is now clean.",
180
+ "noStashes": "No stashes saved.",
181
+ "yourStashes": "Your stashes:",
182
+ "selectStash": "Select a stash to apply:",
183
+ "selectStashToDrop": "Select a stash to delete:",
184
+ "applySuccess": "Stash applied successfully!",
185
+ "stashKept": "The stash is still saved. Use 'pop' to apply and remove.",
186
+ "popSuccess": "Stash applied and removed!",
187
+ "confirmDrop": "Delete this stash? This cannot be undone!",
188
+ "dropSuccess": "Stash deleted."
189
+ }
190
+ },
191
+ "time": {
192
+ "justNow": "just now",
193
+ "minutesAgo": "{{count}} min ago",
194
+ "hoursAgo": "{{count}} hours ago",
195
+ "daysAgo": "{{count}} days ago",
196
+ "weeksAgo": "{{count}} weeks ago",
197
+ "monthsAgo": "{{count}} months ago"
198
+ },
199
+ "warnings": {
200
+ "title": "Warning",
201
+ "dangerous": "dangerous",
202
+ "uncommittedChanges": "You have uncommitted changes that will be lost!",
203
+ "uncommittedChangesAction": "Commit or stash your changes before proceeding.",
204
+ "forcePush": "Force push will overwrite remote history!",
205
+ "forcePushAction": "This action cannot be undone. Make sure you know what you're doing.",
206
+ "wrongBranch": "You are on branch '{{current}}', not '{{expected}}'.",
207
+ "wrongBranchAction": "Switch to the correct branch before proceeding.",
208
+ "detachedHead": "You are in a detached HEAD state!",
209
+ "detachedHeadAction": "Create a branch to save your work.",
210
+ "noRemote": "No remote repository configured.",
211
+ "notGitRepo": "This directory is not a Git repository.",
212
+ "copilotUnavailable": "GitHub Copilot CLI is not available. Some features may be limited."
213
+ },
214
+ "errors": {
215
+ "title": "Error",
216
+ "generic": "An error occurred: {{message}}",
217
+ "gitNotInstalled": "Git is not installed or not in PATH.",
218
+ "networkError": "Network error. Please check your connection.",
219
+ "permissionDenied": "Permission denied. Check your credentials.",
220
+ "invalidInput": "Invalid input: {{message}}",
221
+ "branchExists": "Branch '{{branch}}' already exists.",
222
+ "branchNotFound": "Branch '{{branch}}' not found.",
223
+ "mergeConflict": "Merge conflict in {{file}}.",
224
+ "explainWithAI": "Would you like an AI explanation of this error?",
225
+ "analyzing": "Analyzing error...",
226
+ "explanation": "Explanation",
227
+ "noExplanation": "Could not explain the error",
228
+ "explainFailed": "Failed to get explanation"
229
+ },
230
+ "success": {
231
+ "title": "Success",
232
+ "operationComplete": "Operation completed successfully.",
233
+ "saved": "Changes saved.",
234
+ "configUpdated": "Configuration updated."
235
+ },
236
+ "setup": {
237
+ "welcome": "Welcome to GitSense Setup!",
238
+ "selectLanguage": "Select your preferred language:",
239
+ "selectTheme": "Select your preferred theme:",
240
+ "selectLevel": "What is your Git experience level?",
241
+ "complete": "Setup complete! You're ready to use GitSense.",
242
+ "tip": "Tip: You can change these settings anytime in the config menu.",
243
+ "notGitRepo": "This directory is not a Git repository.",
244
+ "menuTitle": "What would you like to do?",
245
+ "init": "Init",
246
+ "initDesc": "Initialize a new Git repository",
247
+ "clone": "Clone",
248
+ "cloneDesc": "Clone an existing repository",
249
+ "quitDesc": "Exit GitSense",
250
+ "initInProgress": "Initializing Git repository...",
251
+ "initSuccess": "Git repository initialized successfully!",
252
+ "addRemoteQuestion": "Would you like to add a remote origin?",
253
+ "remoteUrlPrompt": "Enter the remote URL (GitHub, GitLab, etc.):",
254
+ "remoteUrlRequired": "Remote URL is required.",
255
+ "remoteUrlInvalid": "Please enter a valid Git URL.",
256
+ "remoteAdded": "Remote 'origin' added: {{url}}",
257
+ "repoReady": "Your repository is ready! You can now start working.",
258
+ "cloneUrlPrompt": "Enter the repository URL to clone:",
259
+ "cloneUrlRequired": "Repository URL is required.",
260
+ "cloneDirPrompt": "Enter directory name (leave empty for default):",
261
+ "cloneInProgress": "Cloning repository...",
262
+ "cloneSuccess": "Repository cloned successfully to '{{dir}}'!",
263
+ "cloneNextStep": "Run 'cd {{dir}}' then 'gitsense' to start.",
264
+ "gitignoreQuestion": "Would you like to create a .gitignore file?",
265
+ "gitignoreType": "Select project type:",
266
+ "gitignoreNode": "Node.js",
267
+ "gitignorePython": "Python",
268
+ "gitignoreJava": "Java",
269
+ "gitignoreGeneric": "Generic",
270
+ "gitignoreCreated": ".gitignore file created!"
271
+ },
272
+ "config": {
273
+ "title": "Settings",
274
+ "language": "Language",
275
+ "theme": "Theme",
276
+ "experienceLevel": "Experience Level",
277
+ "showTips": "Show Tips",
278
+ "confirmDestructive": "Confirm Destructive Actions",
279
+ "autoCommitMsg": "Auto-generate Commit Messages",
280
+ "defaultBranch": "Default Branch",
281
+ "reset": "Reset to Defaults",
282
+ "resetConfirm": "Reset all settings to defaults?"
283
+ },
284
+ "stats": {
285
+ "title": "Your Statistics",
286
+ "totalCommits": "Total Commits",
287
+ "errorsPrevented": "Errors Prevented",
288
+ "aiCommits": "AI-Generated Commits",
289
+ "timeSaved": "Estimated Time Saved",
290
+ "noData": "No statistics yet. Start using GitSense!",
291
+ "aiPercentage": "AI-assisted commits: {{percentage}}%",
292
+ "mistakesAvoided": "You've avoided {{count}} potential mistake(s)!"
293
+ },
294
+ "tips": {
295
+ "beginner": {
296
+ "status": "Use 'Status' to see what files have changed before committing.",
297
+ "add": "Stage files with 'Add' before committing. Think of staging as preparing your changes.",
298
+ "commit": "Write clear commit messages that explain WHY you made the change.",
299
+ "push": "Push regularly to back up your work on the remote server.",
300
+ "pull": "Pull before starting work to avoid merge conflicts.",
301
+ "branch": "Use branches to work on features without affecting the main code."
302
+ },
303
+ "intermediate": {
304
+ "commit": "Use conventional commits (feat:, fix:, docs:) for better history.",
305
+ "rebase": "Consider rebasing for a cleaner history before merging."
306
+ }
307
+ },
308
+ "help": {
309
+ "title": "Help",
310
+ "selectAction": "What would you like to do?",
311
+ "askQuestion": "Ask a Git question (AI)",
312
+ "quickHelp": "Quick reference",
313
+ "about": "About GitSense",
314
+ "askHint": "Ask any Git question in natural language. Leave empty to cancel.",
315
+ "askExamples": "Examples: \"How do I undo my last commit?\" or \"What is a rebase?\"",
316
+ "enterQuestion": "Your question:",
317
+ "questionTooShort": "Please enter a more detailed question",
318
+ "thinking": "Thinking...",
319
+ "answer": "Answer",
320
+ "noAnswer": "Could not get an answer",
321
+ "errorAsking": "Error getting answer",
322
+ "copilotUnavailable": "GitHub Copilot CLI is not available. Install it to ask questions.",
323
+ "quickRefTitle": "Quick Reference",
324
+ "navigation": "Navigation:",
325
+ "navArrows": "Use arrow keys to navigate menus",
326
+ "navEnter": "Press Enter to select an option",
327
+ "navCtrlC": "Press Ctrl+C to exit at any time",
328
+ "mainCommands": "Main Commands:",
329
+ "additionalCommands": "Additional Commands:",
330
+ "tips": "Tips:",
331
+ "tip1": "GitSense warns you before dangerous operations",
332
+ "tip2": "AI can generate commit messages from your changes",
333
+ "tip3": "Change experience level in settings for more/less guidance",
334
+ "aboutDesc": "GitSense is an interactive CLI tool that helps developers master Git",
335
+ "aboutDesc2": "through guided menus, intelligent suggestions, and real-time error prevention.",
336
+ "features": "Features:",
337
+ "feature1": "Interactive menus for all Git operations",
338
+ "feature2": "AI-generated commit messages with Copilot CLI",
339
+ "feature3": "Error prevention and warnings",
340
+ "feature4": "Multilingual support (EN, FR, ES)",
341
+ "feature5": "Beginner, Intermediate, and Expert modes"
342
+ },
343
+ "prompts": {
344
+ "confirm": "Are you sure?",
345
+ "yes": "Yes",
346
+ "no": "No",
347
+ "cancel": "Cancel",
348
+ "continue": "Continue",
349
+ "pressEnter": "Press Enter to continue...",
350
+ "select": "Select an option",
351
+ "enterValue": "Enter value"
352
+ }
353
+ }